Vidu: Q2 Text-to-Video
Vidu Q2 יוצר וידאו מהנחיות טקסט לסצנה, עם משך של 1–10 שניות, פלט 540p, 720p או 1080p וחמישה יחסי ממדים. פרופיל viduq2 המסוים הזה משתמש בפרומפט לקביעת הסגנון והתנועה ומחזיר את התוצאה דרך משימה אסינכרונית.
על המודל
התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.
Vidu Q2 יוצר וידאו מסצנה כתובה דרך פרופיל הטקסט לווידאו הנבחר באמצעות viduq2. הקלט הנדרש הוא מזהה המודל המדויק ופרומפט המתאר את הסצנה. השתמשו בו לרעיון מוצר קצר, למבט המבסס את המיקום או לפעולת דמות שאפשר להגדיר במילים את המראה והתנועה שלה. שיטת העבודה המוגדרת כאן היא יצירת וידאו מטקסט; התיאור שלה אינו משייך למזהה מצב נפרד של תמונת ייחוס או עריכת וידאו.
בנו את ההנחיות סביב רצף גלוי. זהו את נושא הצילום, המיקום, הפעולה, גודל השוט, תנועת המצלמה והקומפוזיציה הסופית. לרעיון מוצר, תארו אובייקט על שולחן, אור הנע על החומר שלו והתקרבות איטית של המצלמה המסתיימת בפרט מזוהה. לסצנת מיקום, בססו את הסביבה לפני התנועה אל נקודת המוקד. התאימו את הפעולה לאורך הקליפ שנבחר כדי שלסצנה יהיה מקום לסיום המיועד.
מגבלת הפרומפט היא 2,000 תווים. שימו תחילה את נושא הצילום ואת הפעולה העיקריים, ואז הוסיפו פרטי תאורה, חומר, סביבה ומצלמה המשנים את התוצאה הרצויה. הגדירו את הסגנון החזותי בפרומפט. המדריך הייעודי של Q2 אומר שהפרמטרים הנפרדים style ו-movement_amplitude אינם משפיעים על המודל הזה, ולכן ההגדרות המוכנות general או anime ואפשרויות עוצמת התנועה אינן תחליף לתיאור סצנה ברור.
הגדרת המשך של המודל מקבלת שניות שלמות מאחת עד עשר. אפשרויות הרזולוציה הייעודיות של Q2 הן 540p, 720p ו-1080p, כש-720p היא ברירת המחדל המתועדת. בחרו יחד משך ורזולוציה לפי הפעולה והיעד. חשיפה קצרה ותנועה ארוכה יותר זקוקות לתזמון שונה; הגדלת המשך המבוקש צריכה לשרת את הרצף הגלוי, במקום רק למתוח הנחיות שלא השתנו. בדקו את המידות ואת האורך בפועל של הקליפ שהוחזר בעת הכנתו להצבה הסופית.
אפשרויות aspect_ratio המתועדות הן 16:9, 9:16, 3:4, 4:3 ו-1:1, עם 16:9 כברירת המחדל. המדריך כולל במפורש 3:4 ו-4:3 למשפחת Q2. בחרו את המסגרת לפני היצירה ותארו קומפוזיציה המתאימה לה: שמרו על נושא צילום ראשי ברור במבט אנכי, או השתמשו ברוחב המסגרת האופקית להצגת הסביבה. השאירו את מבט הסיום ברור מספיק לעמוד המיועד, למצגת או להוספת כיתוב בהמשך.
שדה seed שולט בשונות. השמטתו או מתן 0 בוחרים ערך אקראי; ערך שאינו אפס בוחר באפשרות ה-seed הקבוע המתועדת ליצירה חוזרת הניתנת לשחזור. שמרו את ה-seed שהוחזר עם הפרומפט וההגדרות כשמשווים גרסאות. הפעולה המשותפת מתעדת גם את בקרות audio ו-off_peak במיוחד למודלי Q3. האפשרויות האלה של Q3 אינן יכולות המשויכות לפרופיל Q2 הזה; תכננו את הבקשה סביב קלט הטקסט ופלט הווידאו המתועדים שלו.
היצירה אסינכרונית. השליחה מחזירה task_id ומצב התחלתי, כאשר created משמש למשימה שנוצרה זה עתה. שמרו את זהות המשימה הזאת בעת מעקב אחר העיבוד. שאילתת התוצאה המתועדת משתמשת ב-state=success לתוצאה מוצלחת ומחזירה מערך creations. לכל רשומה יש כתובת וידאו ב-creations[].url; שמרו כל וידאו שהוחזר, במקום להניח שבמשימה תמיד יש בדיוק תוצר אחד.
תיעוד התוצאה מדווח גם על משך הווידאו בפועל, על fps ועל ממדי הרזולוציה — רוחב וגובה. שמרו את הערכים המדווחים האלה עם הקליפ שהושלם, במקום להתייחס לקצב הפריימים או למידות של דוגמה כאל מפרט קבוע של Q2. התגובה ליצירת המשימה כוללת ערך credits לצד תצורת הבקשה. שמרו עם התוצאה את המטא־נתונים המדווחים של המשימה ואת זהותה לאחר השלמה, כך שכל וידאו יישאר קשור להגדרות היצירה שלו.
בדקו את הרצף כולו מול ההנחיות המקוריות: מראה נושא הצילום, צורת האובייקט, כיוון התנועה, רציפות המצלמה ומבט הסיום המיועד. לתיקון, זהו את הפרט המסוים שלא תאם להנחיות ושמרו את החלקים שהצליחו בסצנה. שמרו יחד את הפרומפט, המזהה המדויק, ההגדרות, זהות המשימה וקובצי הווידאו שהושלמו, כדי שהשוואה בהמשך תהיה מבוססת על התוצרים בפועל.
Ailoot Ultra · וידאו POST /v1/videos viduq2
viduq2התחלה
Vidu Q2 יוצר וידאו מהנחיות טקסט לסצנה, עם משך של 1–10 שניות, פלט 540p, 720p או 1080p וחמישה יחסי ממדים. פרופיל viduq2 המסוים הזה משתמש בפרומפט לקביעת הסגנון והתנועה ומחזיר את התוצאה דרך משימה אסינכרונית.
- סוגי קלט נתמכים
- טקסט
- תוצאות
- וידאו
זמין ב-Ailoot · קלט ושיטות
Ailoot Ultra · וידאו POST /v1/videos
- סוגי קלט
text- סוגי פלט
video
| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
|---|---|---|---|---|
שדהmodel | סוגstring | דרישהחובה | ערכים ומגבלות viduq2 | ברירת מחדל— |
שדהprompt | סוגstring | דרישהחובה | ערכים ומגבלות תנאים: תארו את הסצנה שתיווצר. המגבלה המתועדת היא 2000 תווים; Ailoot בודקת שהמחרוזת אינה ריקה ושומרת את הטקסט. | ברירת מחדל— |
שדהduration | סוגinteger | דרישהרשות | ערכים ומגבלות מינימום: 1 מקסימום: 10 תנאים: התיאור הייחודי למודל viduq2 מציין 1–10 שניות שלמות. לא מתועד משך ברירת מחדל ייחודי למודל. יחידה: שניות | ברירת מחדל— |
שדהseed | סוגstring | דרישהרשות | ערכים ומגבלות תנאים: יש להשמיט או לשלוח את המחרוזת "0" לקבלת אקראיות. ערך seed שונה מאפס שנמסר בוחר בהתנהגות המתועדת של seed קבוע; לא מצוין טווח מספרי. | ברירת מחדל— |
שדהaspect_ratio | סוגstring | דרישהרשות | ערכים ומגבלות 16:9, 9:16, 3:4, 4:3, 1:1 | ברירת מחדל16:9 |
שדהresolution | סוגstring | דרישהרשות | ערכים ומגבלות 540p, 720p, 1080p תנאים: הרשימה הייחודית למודל viduq2 מתעדת את המדרגות האלה עבור 1–10 שניות. enum משותף וטבלה מזכירים גם 360p; תחולתו סותרת את הרשימה הזו ואינה נקבעת כאן. | ברירת מחדל720p |
שדהstyle | סוגstring | דרישהרשות | ערכים ומגבלות general, anime תנאים: מבנה הבקשה המשותף מקבל את השדה הזה, אך התיעוד מציין במפורש שאין לו השפעה עבור viduq2. | ברירת מחדלgeneral |
שדהmovement_amplitude | סוגstring | דרישהרשות | ערכים ומגבלות auto, small, medium, large תנאים: מבנה הבקשה המשותף מקבל את השדה הזה, אך התיעוד מציין במפורש שאין לו השפעה במודלי q2. | ברירת מחדלauto |
שילובים של חומרי קלט
פרמטרים ומחזור חיים של השיטה
| פרמטר | מפרט |
|---|---|
פרמטרcontent_type | מפרטapplication/json |
פרמטרrequired | מפרטmodel, prompt |
פרמטרoptional | מפרטduration, seed, aspect_ratio, resolution, style, movement_amplitude |
פרמטרmaterial_types | מפרטtext |
פרמטרadditional_properties | מפרטtrue |
פרמטרvalidation_scope | מפרטAiloot מאמתת שמחרוזות model/prompt אינן ריקות. הטיפוסים והמגבלות האופציונליים שלהלן הם חוזה הבקשה המתועד; יתר שדות הבקשה נשמרים עבור המודל שנבחר. |
כינויים לשיטה: /v1/videos/generations
מחזור חיים: 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
יש ליצור פעם אחת ולשמור את id הציבורי ואת polling_url שהוחזרו.
יש לבדוק את הפעולה המקורית במחזוריות ולקרוא את state; ערך success ותוצאה בבעלותכם ב־creations[].url הם התנאים להשלמה.
יש להוריד כל כתובת URL של וידאו בבעלותכם שהוחזרה; אין להסיק מהדוגמה מספר פלטים קבוע, משך קבוע או קצב פריימים קבוע.
תעריפים
אופן חישוב החיוב הסופי
התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.
מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.
- מצב מהיר
- לא צוין כאשר נבחר מצב מהיר
- מצב Flex
- לא צוין כאשר נבחר מצב flex
- מאמץ חשיבה מרבי
- לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
תעריפים משוערים להשוואה
מחירים לפי תצורה
התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.
| תצורה | טבלת תעריפים | כמות חזויה | חיוב |
|---|---|---|---|
| תצורהתעריפי בסיס לטוקנים | טבלת תעריפיםתעריף בסיס | כמות חזויה— | חיוב קלט · טוקני קלט · אומדן להשוואה בלבד — / 1K טוקנים פלט · טוקני פלט · אומדן להשוואה בלבד — / 1K טוקנים קלט · קריאה מהמטמון · אומדן להשוואה בלבד — / 1K טוקנים קלט · כתיבה למטמון · אומדן להשוואה בלבד — / 1K טוקנים קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד — / 1K טוקנים |
| תצורהעלות יצירה משוערת | טבלת תעריפים— | כמות חזויהאומדן ליצירה אחת | חיוב פלט · עלות יצירה משוערת · אומדן להשוואה בלבד $5.12 אומדן לפני היצירה אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה. |
לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →
דוגמאות לבקשות
Ailoot Ultra · וידאו
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
value=item.get("url") if isinstance(item,dict) else None
values=[value] if isinstance(value,str) else value
if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
for u in values:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
קבלה ושמירה של תוצאות
Ailoot Ultra · וידאו
JSON משמר את state ואת מערך creations בפורמט המקורי, עם תוספת של id/provider_task_id/polling_url ציבוריים. כתובות הווידאו שנבחרו ריקות לפני הפרסום והופכות לכתובות חתומות בבעלות Ailoot לאחר ההשלמה.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
שמירת כל התוצאות שהושלמו
שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.
יש להוריד כל כתובת URL ממשית שהוחזרה ב־creations[].url; אינדקס תוכן מזהה פלט ממשי אחד שהוחזר.
כשצריך לבדוק את התגובה המקורית
ההצהרה המקובעת אינה מונה מצב כשל סופי. יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק את אותה פעולה בכל מצב בלתי מוכר או בשגיאת result_pending_check; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.
שדות התגובה
| שדה | סוג | משמעות |
|---|---|---|
שדהid | סוגstring | משמעותמזהה ציבורי של משימת Ailoot או של פעולה שהוחזר. |
שדהprovider_task_id | סוגstring | משמעותמזהה המשימה המקורי, הנפרד מ־id הציבורי. |
שדהpolling_url | סוגstring | משמעותנתיב האיתור של Ailoot שהוחזר עבור המשימה המקורית. |
שדהtask_id | סוגstring when supplied | משמעותהמזהה המקורי המופיע בתגובת היצירה. |
שדהstate | סוגstring when supplied | משמעותמצב המשימה בממשק המקורי: created למצב ההמתנה המקובע ו־success להשלמה. |
שדהerr_code | סוגstring when supplied | משמעותאבחון המשימה; המפרט השמור אינו מגדיר רשימה מונה של קודי שגיאה. |
שדהcreations[].url | סוגstring|string[] | משמעותכל כתובת URL שנבחרה של וידאו שהושלם מוחלפת בכתובת URL חתומה בבעלות Ailoot. |
שדהcreations[].video.duration | סוגnumber when supplied | משמעותמשך הווידאו שהוחזר; יש לבדוק את התוצאה הממשית שהושלמה. |
שדהcreations[].video.fps | סוגinteger when supplied | משמעותקצב הפריימים שהוחזר; אין הבטחה לקצב פריימים קבוע. |
שדהcreations[].video.resolution.width | סוגinteger when supplied | משמעותרוחב הפלט שהוחזר בפיקסלים. |
שדהcreations[].video.resolution.height | סוגinteger when supplied | משמעותגובה הפלט שהוחזר בפיקסלים. |
שגיאות והשלבים הבאים
| תגובה | תנאי | השלב הבא |
|---|---|---|
תגובה400 · invalid_request_error | תנאיJSON/model לא תקפים, מחרוזות חובה חסרות או ריקות, או אינדקס תוכן לא תקף. | השלב הבא |
תגובה401 · authentication_error | תנאימפתח API לא תקף של Ailoot. | השלב הבא |
תגובה403 · permission_error | תנאיהקבוצה של מפתח ה־API אינה מורשית להשתמש בנתיב המדיה הזה. | השלב הבא |
תגובה404 · not_found_error | תנאיהמשימה המקורית או הפלט המבוקש חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה. | השלב הבא |
תגובה502 · result_pending_check | תנאיהשליחה המקורית או הסטטוס אינם שלמים או שלא ניתן ליישב ביניהם; יש לשמור את המזהה המקורי ולא לשלוח שוב. | השלב הבא |
תגובה503 · result_pending_check | תנאיהקישור המקורי, הנתיב או המדיה שבבעלותכם עדיין נבדקים; יש להמשיך לבדוק את הפעולה המקורית הזו. | השלב הבא |
תגובה503 · server_error | תנאישירות המדיה או אחסון המשימה המקורית אינם זמינים. | השלב הבא |
כינויים
כינויים למודל
Ailoot Ultra viduq2
כינויים לנתיבי שיטות
/v1/videos/generations
מזהי מודלים קשורים IDs
FAQ · Vidu: Q2 Text-to-Video
- אילו קלטים ותוצאות זמינים?
POST /v1/videos·viduq2:text→video- באילו שדות הבקשה משתמשת?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- אילו מגבלות חלות?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10