Source: https://ailoot.ai/models/he/happyhorse-1-1-r2v/
Canonical: https://ailoot.ai/models/he/happyhorse-1-1-r2v/
Language: he

# happyhorse-1.1-r2v

[Markdown](https://ailoot.ai/models/he/happyhorse-1-1-r2v/index.md) · [JSON](https://ailoot.ai/models/he/happyhorse-1-1-r2v/facts.json)

## [happyhorse-1.1-r2v](https://ailoot.ai/models/he/happyhorse-1-1-r2v/)

מודל ליצירת וידאו מתמונות ייחוס ומתסריט טקסטואלי. מסייע לשמור על מראה הדמויות, העצמים והסגנון החזותי בסצנה חדשה.

- [**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-1.1-r2v`](https://ailoot.ai/models/he/happyhorse-1-1-r2v/#method-0)
- [**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-r2v`](https://ailoot.ai/models/he/happyhorse-1-1-r2v/#method-1)
- [**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-r2v-latest`](https://ailoot.ai/models/he/happyhorse-1-1-r2v/#method-2)

על המודל

התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.

HappyHorse-1.1-R2V יוצר סצנת וידאו חדשה מתמונות ייחוס וממשימה טקסטואלית. Alibaba מייעדת את המודל לשמירה על דמויות מזוהות, עצמים וסגנון חזותי בעת יצירת תנועה. תמונות הייחוס קובעות את תוכן הסצנה ואת המראה שלה, והטקסט מתאר כיצד האלמנטים צריכים לפעול זה עם זה.

#### תפקידן של דוגמאות חזותיות

אפשר להשתמש בתמונה אחת עד תשע תמונות. הן יכולות להגדיר דמות, עצם, סביבה או סגנון אמנותי. בתיאור אפשר לציין את מספר תמונת הייחוס ואת העצם המסוים שמופיע בה, כדי לקשר את החומר החזותי לחלק הרצוי של הפעולה. זה מועיל במיוחד כשצריך לאחד אלמנטים מכמה תמונות בקומפוזיציה אחת.

בשונה מהמצב שמתחיל בפריים נתון, תמונות הייחוס משמשות כאן בסיס לתוכן של סצנה חדשה. המשימה הטקסטואלית היא חובה: היא קושרת בין מראה העצמים לפעולה, לתנועת המצלמה ולבימוי הכולל. היצרן מדגיש עקביות חזותית ותנועה קולנועית; התוצאה היא עדיין יצירה חדשה, ולא עריכה של תמונות המקור.

מתקבלים JPEG, JPG, PNG ו־WEBP, בגודל של עד 20 מגה־בייט לכל קובץ. הצלע הקצרה של התמונה חייבת להיות באורך של לפחות 400 פיקסלים; מומלץ להשתמש בחומרים ברמת 720P ומעלה. הקלט במצב זה מורכב מתמונות ומטקסט בלבד.

#### משך, פריים וצליל

התוצאה נשמרת ב־MP4 בקצב של 24 פריימים לשנייה. משך הסרטון מוגדר כמספר שלם בין 3 ל־15 שניות. אפשר לבחור רזולוציה של 480P, 720P או 1080P; נתמכת יצירת פס קול.

זמינים פריימים אופקיים, אנכיים וריבועיים: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 ו־21:9. בחירת הפורמט מסייעת להגדיר מראש את מרחב הקומפוזיציה של הסצנה החדשה.

הטקסט יכול להיות בכל שפה. המגבלה היא 5000 תווים שאינם סיניים או 2500 תווים סיניים, והחלק העודף נחתך. התפקידים החשובים ביותר של תמונות הייחוס, הפעולה והתנועה צריכים להיכלל בנפח זה. זרע האקראיות הראשוני עשוי לכוון את הדמיון בין גרסאות, אך אינו מבטיח שחזור מדויק של אותו סרטון.

**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-1.1-r2v`

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos)

Alibaba /`happyhorse-1.1-r2v`

מזהה מודל ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### התחלה

מודל ליצירת וידאו מתמונות ייחוס ומתסריט טקסטואלי. מסייע לשמור על מראה הדמויות, העצמים והסגנון החזותי בסצנה חדשה.

סוגי קלט נתמכים

טקסט · תמונות

תוצאות

וידאו

### זמין ב-Ailoot · קלט ושיטות

**Ailoot · וידאו** `POST /v1/videos/generations`

סוגי קלט

`text`, `image`

סוגי פלט

`video`

פורמט פלט

mp4

| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
| --- | --- | --- | --- | --- |
| שדה`model` | סוג`string` | דרישהחובה | ערכים ומגבלות happyhorse-1.1-r2v | ברירת מחדל— |
| שדה`prompt` | סוג`string` | דרישהחובה | ערכים ומגבלות אורך מזערי: ⁦1⁩ | ברירת מחדל— |
| שדה`duration` | סוג`integer` | דרישהרשות | ערכים ומגבלות מינימום: ⁦3⁩ מקסימום: ⁦15⁩ יחידה: שניות | ברירת מחדל⁦5⁩ |
| שדה`resolution` | סוג`string` | דרישהרשות | ערכים ומגבלות 480P, 720P, 1080P | ברירת מחדל720P |
| שדה`ratio` | סוג`string` | דרישהרשות | ערכים ומגבלות 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | ברירת מחדל16:9 |
| שדה`image_urls` | סוג`https_url\|data_image_url[]` | דרישהחובה | ערכים ומגבלות מספר פריטים מזערי: ⁦1⁩ מספר פריטים מרבי: ⁦9⁩ מספר בייטים מרבי לאחר פענוח: ⁦20,971,520⁩ סוגי MIME: image/jpeg, image/png, image/webp | ברירת מחדל— |

שילובים של חומרי קלט

**reference\_images\_to\_video** · נדרש: prompt, image\_urls

פרמטרים ומחזור חיים של השיטה

| פרמטר | מפרט |
| --- | --- |
| פרמטר`content_type` | מפרטapplication/json |
| פרמטר`required` | מפרטmodel, prompt, image\_urls |
| פרמטר`material_types` | מפרטtext, image |
| פרמטר`optional` | מפרטduration, resolution, ratio |
| פרמטר`duration_integer_range` | מפרט3, 15 |
| פרמטר`default_duration` | מפרט5 |
| פרמטר`resolution` | מפרט480P, 720P, 1080P |
| פרמטר`default_resolution` | מפרט720P |
| פרמטר`ratio` | מפרט16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| פרמטר`ratio_must_omit` | מפרטfalse |
| פרמטר`image_urls` | מפרט{"min\_count":1,"max\_count":9,"schemes":\["https","נתוני תמונת רסטר ב־base64"\],"max\_data\_image\_bytes":20971520} |

מחזור חיים: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

### תעריפים

#### תעריפי שיטות Ailoot

פלט

⁦‏0.18 ‏$⁩ *לכל שנייה ברזולוציית 1080p*

פלט

⁦‏0.07 ‏$⁩ *לכל שנייה ברזולוציית 480p*

פלט

⁦‏0.14 ‏$⁩ *לכל שנייה ברזולוציית 720p*

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. [איך פועלים שריון הסכום והסדרת החיוב →](https://ailoot.ai/docs/he/billing/reserve/)

### דוגמאות לבקשות

#### Ailoot · וידאו

תמונת ייחוס

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### קבלה ושמירה של תוצאות

#### Ailoot · וידאו

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### בדיקת מצב המשימה

GET · אחזור מצב

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### שמירת כל הנכסים שהושלמו

GET · אחזור כל הנכסים שהושלמו

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

קריאות תוכן נוספות

GET · אחזור תוכן

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### שמירת כל התוצאות שהושלמו

שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.

יש לשמור כל פריט נתונים ואינדקס פלט שהוחזרו. content\_url מתייחס רק לראשון; יש לאחזר כל נתיב תוכן או נכס ממשיים. GET לתוכן ללא index אינו מחזיר את כל הפלטים.

##### כשצריך לבדוק את התגובה המקורית

יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.

שדות התגובה

| שדה | סוג |
| --- | --- |
| שדה`id` | סוגstring |
| שדה`object` | סוגstring |
| שדה`model` | סוגstring |
| שדה`status` | סוגstring |
| שדה`content_url` | סוגsigned URL |
| שדה`data[]` | סוגsigned URL |
| שדה`usage` | סוגobject |
| שדה`result_pending_check` | סוגboolean |

שגיאות והשלבים הבאים

| תגובה | תנאי | השלב הבא |
| --- | --- | --- |
| תגובה⁦400⁩ · `invalid_request_error` | תנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים | השלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה. |
| תגובה⁦409⁩ · `video_not_ready` | תנאיתוכן התוצאה המקורית עדיין אינו זמין | השלב הבאיש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After. |
| תגובה`server_error` | תנאיהתשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה | השלב הבאשמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה. |

### כינויים

#### כינויים למודל

**Ailoot** [`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

#### מזהי מודלים קשורים IDs

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-r2v`

[`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos)

Alibaba /`happyhorse-r2v`

מזהה מודל ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### התחלה

מודל ליצירת וידאו מתמונות ייחוס ומתסריט טקסטואלי. מסייע לשמור על מראה הדמויות, העצמים והסגנון החזותי בסצנה חדשה.

סוגי קלט נתמכים

טקסט · תמונות

תוצאות

וידאו

### זמין ב-Ailoot · קלט ושיטות

**Ailoot · וידאו** `POST /v1/videos/generations`

סוגי קלט

`text`, `image`

סוגי פלט

`video`

פורמט פלט

mp4

| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
| --- | --- | --- | --- | --- |
| שדה`model` | סוג`string` | דרישהחובה | ערכים ומגבלות happyhorse-r2v | ברירת מחדל— |
| שדה`prompt` | סוג`string` | דרישהחובה | ערכים ומגבלות אורך מזערי: ⁦1⁩ | ברירת מחדל— |
| שדה`duration` | סוג`integer` | דרישהרשות | ערכים ומגבלות מינימום: ⁦3⁩ מקסימום: ⁦15⁩ יחידה: שניות | ברירת מחדל⁦5⁩ |
| שדה`resolution` | סוג`string` | דרישהרשות | ערכים ומגבלות 480P, 720P, 1080P | ברירת מחדל720P |
| שדה`ratio` | סוג`string` | דרישהרשות | ערכים ומגבלות 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | ברירת מחדל16:9 |
| שדה`image_urls` | סוג`https_url\|data_image_url[]` | דרישהחובה | ערכים ומגבלות מספר פריטים מזערי: ⁦1⁩ מספר פריטים מרבי: ⁦9⁩ מספר בייטים מרבי לאחר פענוח: ⁦20,971,520⁩ סוגי MIME: image/jpeg, image/png, image/webp | ברירת מחדל— |

שילובים של חומרי קלט

**reference\_images\_to\_video** · נדרש: prompt, image\_urls

פרמטרים ומחזור חיים של השיטה

| פרמטר | מפרט |
| --- | --- |
| פרמטר`material_types` | מפרטtext, image |
| פרמטר`required` | מפרטnull |
| פרמטר`optional_controls` | מפרטnull |

מחזור חיים: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

### תעריפים

#### תעריפי שיטות Ailoot

פלט

⁦‏0.18 ‏$⁩ *לכל שנייה ברזולוציית 1080p*

פלט

⁦‏0.07 ‏$⁩ *לכל שנייה ברזולוציית 480p*

פלט

⁦‏0.14 ‏$⁩ *לכל שנייה ברזולוציית 720p*

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. [איך פועלים שריון הסכום והסדרת החיוב →](https://ailoot.ai/docs/he/billing/reserve/)

### דוגמאות לבקשות

#### Ailoot · וידאו

תמונת ייחוס

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### קבלה ושמירה של תוצאות

#### Ailoot · וידאו

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### בדיקת מצב המשימה

GET · אחזור מצב

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### שמירת כל הנכסים שהושלמו

GET · אחזור כל הנכסים שהושלמו

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

קריאות תוכן נוספות

GET · אחזור תוכן

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### שמירת כל התוצאות שהושלמו

שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.

יש לשמור כל פריט נתונים ואינדקס פלט שהוחזרו. content\_url מתייחס רק לראשון; יש לאחזר כל נתיב תוכן או נכס ממשיים. GET לתוכן ללא index אינו מחזיר את כל הפלטים.

##### כשצריך לבדוק את התגובה המקורית

יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.

שדות התגובה

| שדה | סוג |
| --- | --- |
| שדה`id` | סוגstring |
| שדה`object` | סוגstring |
| שדה`model` | סוגstring |
| שדה`status` | סוגstring |
| שדה`content_url` | סוגsigned URL |
| שדה`data[]` | סוגsigned URL |
| שדה`usage` | סוגobject |
| שדה`result_pending_check` | סוגboolean |

שגיאות והשלבים הבאים

| תגובה | תנאי | השלב הבא |
| --- | --- | --- |
| תגובה⁦400⁩ · `invalid_request_error` | תנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים | השלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה. |
| תגובה⁦409⁩ · `video_not_ready` | תנאיתוכן התוצאה המקורית עדיין אינו זמין | השלב הבאיש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After. |
| תגובה`server_error` | תנאיהתשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה | השלב הבאשמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה. |

### כינויים

#### כינויים למודל

**Ailoot** [`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

#### מזהי מודלים קשורים IDs

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

**Ailoot · וידאו** `POST /v1/videos/generations` `happyhorse-r2v-latest`

[`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

Alibaba /`happyhorse-r2v-latest`

מזהה מודל ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### התחלה

מודל ליצירת וידאו מתמונות ייחוס ומתסריט טקסטואלי. מסייע לשמור על מראה הדמויות, העצמים והסגנון החזותי בסצנה חדשה.

סוגי קלט נתמכים

טקסט · תמונות

תוצאות

וידאו

### זמין ב-Ailoot · קלט ושיטות

**Ailoot · וידאו** `POST /v1/videos/generations`

סוגי קלט

`text`, `image`

סוגי פלט

`video`

פורמט פלט

mp4

| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
| --- | --- | --- | --- | --- |
| שדה`model` | סוג`string` | דרישהחובה | ערכים ומגבלות happyhorse-r2v-latest | ברירת מחדל— |
| שדה`prompt` | סוג`string` | דרישהחובה | ערכים ומגבלות אורך מזערי: ⁦1⁩ | ברירת מחדל— |
| שדה`duration` | סוג`integer` | דרישהרשות | ערכים ומגבלות מינימום: ⁦3⁩ מקסימום: ⁦15⁩ יחידה: שניות | ברירת מחדל⁦5⁩ |
| שדה`resolution` | סוג`string` | דרישהרשות | ערכים ומגבלות 480P, 720P, 1080P | ברירת מחדל720P |
| שדה`ratio` | סוג`string` | דרישהרשות | ערכים ומגבלות 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | ברירת מחדל16:9 |
| שדה`image_urls` | סוג`https_url\|data_image_url[]` | דרישהחובה | ערכים ומגבלות מספר פריטים מזערי: ⁦1⁩ מספר פריטים מרבי: ⁦9⁩ מספר בייטים מרבי לאחר פענוח: ⁦20,971,520⁩ סוגי MIME: image/jpeg, image/png, image/webp | ברירת מחדל— |

שילובים של חומרי קלט

**reference\_images\_to\_video** · נדרש: prompt, image\_urls

פרמטרים ומחזור חיים של השיטה

| פרמטר | מפרט |
| --- | --- |
| פרמטר`material_types` | מפרטtext, image |
| פרמטר`required` | מפרטnull |
| פרמטר`optional_controls` | מפרטnull |

מחזור חיים: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

### תעריפים

#### תעריפי שיטות Ailoot

פלט

⁦‏0.18 ‏$⁩ *לכל שנייה ברזולוציית 1080p*

פלט

⁦‏0.07 ‏$⁩ *לכל שנייה ברזולוציית 480p*

פלט

⁦‏0.14 ‏$⁩ *לכל שנייה ברזולוציית 720p*

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. [איך פועלים שריון הסכום והסדרת החיוב →](https://ailoot.ai/docs/he/billing/reserve/)

### דוגמאות לבקשות

#### Ailoot · וידאו

תמונת ייחוס

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### קבלה ושמירה של תוצאות

#### Ailoot · וידאו

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### בדיקת מצב המשימה

GET · אחזור מצב

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### שמירת כל הנכסים שהושלמו

GET · אחזור כל הנכסים שהושלמו

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

קריאות תוכן נוספות

GET · אחזור תוכן

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### שמירת כל התוצאות שהושלמו

שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.

יש לשמור כל פריט נתונים ואינדקס פלט שהוחזרו. content\_url מתייחס רק לראשון; יש לאחזר כל נתיב תוכן או נכס ממשיים. GET לתוכן ללא index אינו מחזיר את כל הפלטים.

##### כשצריך לבדוק את התגובה המקורית

יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.

שדות התגובה

| שדה | סוג |
| --- | --- |
| שדה`id` | סוגstring |
| שדה`object` | סוגstring |
| שדה`model` | סוגstring |
| שדה`status` | סוגstring |
| שדה`content_url` | סוגsigned URL |
| שדה`data[]` | סוגsigned URL |
| שדה`usage` | סוגobject |
| שדה`result_pending_check` | סוגboolean |

שגיאות והשלבים הבאים

| תגובה | תנאי | השלב הבא |
| --- | --- | --- |
| תגובה⁦400⁩ · `invalid_request_error` | תנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים | השלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה. |
| תגובה⁦409⁩ · `video_not_ready` | תנאיתוכן התוצאה המקורית עדיין אינו זמין | השלב הבאיש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After. |
| תגובה`server_error` | תנאיהתשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה | השלב הבאשמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה. |

### כינויים

#### כינויים למודל

**Ailoot** [`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

#### מזהי מודלים קשורים IDs

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/he/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

FAQ · happyhorse-1.1-r2v

אילו קלטים ותוצאות זמינים?

`POST /v1/videos/generations` · `happyhorse-1.1-r2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-r2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-r2v-latest`: `text`, `image` → `video`

באילו שדות הבקשה משתמשת?

`POST /v1/videos/generations` · `happyhorse-1.1-r2v`: `model`, `prompt`, `duration`, `resolution`, `ratio`, `image_urls` `POST /v1/videos/generations` · `happyhorse-r2v`: `model`, `prompt`, `duration`, `resolution`, `ratio`, `image_urls` `POST /v1/videos/generations` · `happyhorse-r2v-latest`: `model`, `prompt`, `duration`, `resolution`, `ratio`, `image_urls`

אילו מגבלות חלות?

`POST /v1/videos/generations` · `happyhorse-1.1-r2v`: `duration.minimum`: `3`; `duration.maximum`: `15` `POST /v1/videos/generations` · `happyhorse-r2v`: `duration.minimum`: `3`; `duration.maximum`: `15` `POST /v1/videos/generations` · `happyhorse-r2v-latest`: `duration.minimum`: `3`; `duration.maximum`: `15`

חברו Ailoot ל- Claude Code, OpenCode, Hermes או ליישום שלכם.

## החברה ופורטפוליו הפרויקטים שלה

החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.

## קנו אסימונים בהנחה.

הנחת מנוי לעבודה קבועה. קודי הנחה עד 50% על רכישת אסימונים.

מנוי

בחרו מסלול עם הנחה לבקשות הקבועות שלכם.

קוד הנחה עד 50%

הזינו קוד ברכישה. המחיר יחושב מחדש לפי המבצע הפעיל.

הוצאות בהיסטוריה

המודל, האסימונים והסכום נשמרים לכל בקשה.

[בחירת מנוי](https://ailoot.ai/docs/he/billing/subscriptions/) · [מחירי מודלים](https://ailoot.ai/models/he/)

## חברו API למוצר שאתם מוכרים.

SaaS, יישומים ובוטים לפי ההצעה והסכם הרישוי של Ailoot. למכירה מחדש בקשו רישיון משווק.

יישום מסחרי

שלבו יצירת טקסט, תמונות, וידאו ושמע בתכונות בתשלום של השירות שלכם.

רישיון למכירה מחדש

שלחו תיאור פרויקט ואופן מתן גישה. בקשו תנאי שימוש ומכירה מחדש בכתב.

מסמכים באתר

ההצעה, הסכם הרישוי ומדיניות עיבוד הנתונים זמינים לפני החיבור.

[בקשת רישיון למכירה מחדש](mailto:support@ailoot.ai) · [ההצעה והסכם הרישוי](https://ailoot.ai/legal/offer?lang=he)

## Ailoot · החברה ופורטפוליו הפרויקטים שלה





Ailoot נשענת על ניסיון תפעולי מצטבר, בסיס לקוחות רחב, שירות יציב ובקרה שוטפת של KPI.





החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.





Ailoot משתמשת בניסיון התפעולי הזה כדי לספק גישת API ליכולות AI במוצרי לקוחות, בסוכנים, באפליקציות ובאוטומציות.
