happyhorse-1.1-r2v
Modell zur Videogenerierung aus Referenzbildern und einem Textszenario. Hilft dabei, das Aussehen von Figuren, Objekte und den visuellen Stil in einer neuen Szene beizubehalten.
- Ailoot · Videogenerierung
POST /v1/videos/generationshappyhorse-1.1-r2v - Ailoot · Videogenerierung
POST /v1/videos/generationshappyhorse-r2v - Ailoot · Videogenerierung
POST /v1/videos/generationshappyhorse-r2v-latest
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
HappyHorse-1.1-R2V erzeugt eine neue Videoszene aus Referenzbildern und einer Textvorgabe. Alibaba richtet das Modell darauf aus, wiedererkennbare Figuren, Objekte und den visuellen Stil bei der Erzeugung von Bewegung zu erhalten. Die Referenzen bestimmen Inhalt und Erscheinungsbild der Szene, der Text beschreibt das Zusammenspiel dieser Elemente.
Rollen der visuellen Vorlagen
Es lassen sich ein bis neun Bilder verwenden. Sie können eine Figur, einen Gegenstand, die Umgebung oder die künstlerische Gestaltung vorgeben. In der Beschreibung können die Nummer der Referenz und ein konkretes Objekt darin genannt werden, um das Bildmaterial mit dem entsprechenden Teil der Handlung zu verknüpfen. Das ist besonders hilfreich, wenn Elemente mehrerer Bilder in einer Komposition zusammengeführt werden sollen.
Anders als im Modus mit einem Ausgangsbild dienen die Referenzen hier als inhaltliche Anker für eine neue Szene. Die Textvorgabe ist erforderlich: Sie verbindet das Aussehen der Objekte mit Handlung, Kamerabewegung und der gesamten Inszenierung. Der Hersteller hebt visuelle Konsistenz und filmische Bewegung hervor; das Ergebnis bleibt eine Generierung und ist keine Montage der Ausgangsbilder.
Akzeptiert werden JPEG, JPG, PNG und WEBP mit jeweils bis zu 20 MB. Die kurze Bildseite muss mindestens 400 Pixel lang sein; empfohlen wird Material mit 720P oder höher. Die Eingabe dieses Modus besteht ausdrücklich aus Bildern und Text.
Dauer, Bildformat und Ton
Das Ergebnis wird als MP4 mit 24 Bildern pro Sekunde gespeichert. Die Dauer wird als ganze Zahl von 3 bis 15 Sekunden angegeben. Die Auflösung lässt sich zwischen 480P, 720P und 1080P wählen; die Erzeugung einer Tonspur wird unterstützt.
Verfügbar sind horizontale, vertikale und quadratische Bildformate: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 und 21:9. Die Formatwahl hilft, den kompositorischen Raum der neuen Szene im Voraus festzulegen.
Der Text kann in jeder Sprache verfasst sein. Das Limit beträgt 5000 nichtchinesische oder 2500 chinesische Zeichen; der überschüssige Teil wird verworfen. Die wichtigsten Rollen der Referenzen sowie Handlung und Bewegung müssen in diesen Umfang passen. Der Zufalls-Seed kann die Ähnlichkeit von Varianten beeinflussen, garantiert aber keine exakte Wiederholung eines Clips.
Ailoot · Videogenerierung POST /v1/videos/generations happyhorse-1.1-r2v
happyhorse-1.1-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Start
Modell zur Videogenerierung aus Referenzbildern und einem Textszenario. Hilft dabei, das Aussehen von Figuren, Objekte und den visuellen Stil in einer neuen Szene beizubehalten.
- Zulässige Eingaben
- Text · Bilder
- Ergebnisse
- Video
In Ailoot verfügbar · Eingaben und Methoden
Ailoot · Videogenerierung POST /v1/videos/generations
- Eingabetypen
text,image- Ausgabetypen
video- Ausgabeformat
- mp4
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits happyhorse-1.1-r2v | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Mindestlänge: 1 | Standard— |
Feldduration | Typinteger | AnforderungOptional | Werte und Limits Minimum: 3 Maximum: 15 Einheit: Sekunden | Standard5 |
Feldresolution | Typstring | AnforderungOptional | Werte und Limits 480P, 720P, 1080P | Standard720P |
Feldratio | Typstring | AnforderungOptional | Werte und Limits 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feldimage_urls | Typhttps_url|data_image_url[] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 Maximale Anzahl Elemente: 9 Maximale Anzahl dekodierter Bytes: 20.971.520 MIME-Typen: image/jpeg, image/png, image/webp | Standard— |
Kombinationen von Eingabematerialien
reference_images_to_video · Erforderlich: prompt, image_urls
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragmodel, prompt, image_urls |
Parametermaterial_types | Vertragtext, image |
Parameteroptional | Vertragduration, resolution, ratio |
Parameterduration_integer_range | Vertrag3, 15 |
Parameterdefault_duration | Vertrag5 |
Parameterresolution | Vertrag480P, 720P, 1080P |
Parameterdefault_resolution | Vertrag720P |
Parameterratio | Vertrag16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Parameterratio_must_omit | Vertragfalse |
Parameterimage_urls | Vertrag{"min_count":1,"max_count":9,"schemes":["https","Rasterdaten als base64"],"max_data_image_bytes":20971520} |
Lebenszyklus: 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
Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.
Tarife
Ailoot-Methodentarife
POST /v1/videos/generations- Ausgabe
- 0,18 $ pro Sekunde bei 1080p
- Ausgabe
- 0,07 $ pro Sekunde bei 480p
- Ausgabe
- 0,14 $ pro Sekunde bei 720p
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot · Videogenerierung
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
Ergebnisse abrufen und speichern
Ailoot · Videogenerierung
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Auftragsstatus prüfen
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
Alle fertiggestellten Dateien speichern
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
Abrufe anderer Inhalte
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
Alle fertiggestellten Ergebnisse aufbewahren
Speichern Sie jedes fertiggestellte Video oder jede zurückgegebene Datei; rufen Sie jede tatsächlich zurückgegebene Datei-URL ab.
Bewahren Sie jedes zurückgegebene Datenelement und jeden Ausgabeindex auf. content_url bezeichnet nur die erste Ausgabe; rufen Sie jeden tatsächlichen Inhaltspfad/jedes Asset ab. GET des Inhalts ohne index liefert nicht alle Ausgaben.
Wenn die ursprüngliche Antwort geprüft werden muss
Lesen Sie den vorhandenen ursprünglichen Auftrag aus; wiederholen Sie eine Übermittlung mit unklarem Ausgang niemals.
Antwortfelder
| Feld | Typ |
|---|---|
Feldid | Typstring |
Feldobject | Typstring |
Feldmodel | Typstring |
Feldstatus | Typstring |
Feldcontent_url | Typsigned URL |
Felddata[] | Typsigned URL |
Feldusage | Typobject |
Feldresult_pending_check | Typboolean |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |
Antwort409 · video_not_ready | BedingungUrsprünglicher Ergebnisinhalt noch nicht verfügbar | Nächster SchrittFragen Sie die ursprünglich zurückgegebene ID regelmäßig ab und beachten Sie Retry-After. |
Antwortserver_error | BedingungDie zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert | Nächster SchrittDie ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden. |
Aliasnamen
Modellaliasnamen
Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
Ailoot · Videogenerierung POST /v1/videos/generations happyhorse-r2v
happyhorse-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Start
Modell zur Videogenerierung aus Referenzbildern und einem Textszenario. Hilft dabei, das Aussehen von Figuren, Objekte und den visuellen Stil in einer neuen Szene beizubehalten.
- Zulässige Eingaben
- Text · Bilder
- Ergebnisse
- Video
In Ailoot verfügbar · Eingaben und Methoden
Ailoot · Videogenerierung POST /v1/videos/generations
- Eingabetypen
text,image- Ausgabetypen
video- Ausgabeformat
- mp4
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits happyhorse-r2v | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Mindestlänge: 1 | Standard— |
Feldduration | Typinteger | AnforderungOptional | Werte und Limits Minimum: 3 Maximum: 15 Einheit: Sekunden | Standard5 |
Feldresolution | Typstring | AnforderungOptional | Werte und Limits 480P, 720P, 1080P | Standard720P |
Feldratio | Typstring | AnforderungOptional | Werte und Limits 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feldimage_urls | Typhttps_url|data_image_url[] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 Maximale Anzahl Elemente: 9 Maximale Anzahl dekodierter Bytes: 20.971.520 MIME-Typen: image/jpeg, image/png, image/webp | Standard— |
Kombinationen von Eingabematerialien
reference_images_to_video · Erforderlich: prompt, image_urls
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametermaterial_types | Vertragtext, image |
Parameterrequired | Vertragnull |
Parameteroptional_controls | Vertragnull |
Lebenszyklus: 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
Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.
Tarife
Ailoot-Methodentarife
POST /v1/videos/generations- Ausgabe
- 0,18 $ pro Sekunde bei 1080p
- Ausgabe
- 0,07 $ pro Sekunde bei 480p
- Ausgabe
- 0,14 $ pro Sekunde bei 720p
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot · Videogenerierung
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
Ergebnisse abrufen und speichern
Ailoot · Videogenerierung
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Auftragsstatus prüfen
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
Alle fertiggestellten Dateien speichern
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
Abrufe anderer Inhalte
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
Alle fertiggestellten Ergebnisse aufbewahren
Speichern Sie jedes fertiggestellte Video oder jede zurückgegebene Datei; rufen Sie jede tatsächlich zurückgegebene Datei-URL ab.
Bewahren Sie jedes zurückgegebene Datenelement und jeden Ausgabeindex auf. content_url bezeichnet nur die erste Ausgabe; rufen Sie jeden tatsächlichen Inhaltspfad/jedes Asset ab. GET des Inhalts ohne index liefert nicht alle Ausgaben.
Wenn die ursprüngliche Antwort geprüft werden muss
Lesen Sie den vorhandenen ursprünglichen Auftrag aus; wiederholen Sie eine Übermittlung mit unklarem Ausgang niemals.
Antwortfelder
| Feld | Typ |
|---|---|
Feldid | Typstring |
Feldobject | Typstring |
Feldmodel | Typstring |
Feldstatus | Typstring |
Feldcontent_url | Typsigned URL |
Felddata[] | Typsigned URL |
Feldusage | Typobject |
Feldresult_pending_check | Typboolean |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |
Antwort409 · video_not_ready | BedingungUrsprünglicher Ergebnisinhalt noch nicht verfügbar | Nächster SchrittFragen Sie die ursprünglich zurückgegebene ID regelmäßig ab und beachten Sie Retry-After. |
Antwortserver_error | BedingungDie zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert | Nächster SchrittDie ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden. |
Aliasnamen
Modellaliasnamen
Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
Ailoot · Videogenerierung POST /v1/videos/generations happyhorse-r2v-latest
happyhorse-r2v-latesthappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Start
Modell zur Videogenerierung aus Referenzbildern und einem Textszenario. Hilft dabei, das Aussehen von Figuren, Objekte und den visuellen Stil in einer neuen Szene beizubehalten.
- Zulässige Eingaben
- Text · Bilder
- Ergebnisse
- Video
In Ailoot verfügbar · Eingaben und Methoden
Ailoot · Videogenerierung POST /v1/videos/generations
- Eingabetypen
text,image- Ausgabetypen
video- Ausgabeformat
- mp4
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits happyhorse-r2v-latest | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Mindestlänge: 1 | Standard— |
Feldduration | Typinteger | AnforderungOptional | Werte und Limits Minimum: 3 Maximum: 15 Einheit: Sekunden | Standard5 |
Feldresolution | Typstring | AnforderungOptional | Werte und Limits 480P, 720P, 1080P | Standard720P |
Feldratio | Typstring | AnforderungOptional | Werte und Limits 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feldimage_urls | Typhttps_url|data_image_url[] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 Maximale Anzahl Elemente: 9 Maximale Anzahl dekodierter Bytes: 20.971.520 MIME-Typen: image/jpeg, image/png, image/webp | Standard— |
Kombinationen von Eingabematerialien
reference_images_to_video · Erforderlich: prompt, image_urls
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametermaterial_types | Vertragtext, image |
Parameterrequired | Vertragnull |
Parameteroptional_controls | Vertragnull |
Lebenszyklus: 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
Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.
Tarife
Ailoot-Methodentarife
POST /v1/videos/generations- Ausgabe
- 0,18 $ pro Sekunde bei 1080p
- Ausgabe
- 0,07 $ pro Sekunde bei 480p
- Ausgabe
- 0,14 $ pro Sekunde bei 720p
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot · Videogenerierung
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
Ergebnisse abrufen und speichern
Ailoot · Videogenerierung
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Auftragsstatus prüfen
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
Alle fertiggestellten Dateien speichern
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
Abrufe anderer Inhalte
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
Alle fertiggestellten Ergebnisse aufbewahren
Speichern Sie jedes fertiggestellte Video oder jede zurückgegebene Datei; rufen Sie jede tatsächlich zurückgegebene Datei-URL ab.
Bewahren Sie jedes zurückgegebene Datenelement und jeden Ausgabeindex auf. content_url bezeichnet nur die erste Ausgabe; rufen Sie jeden tatsächlichen Inhaltspfad/jedes Asset ab. GET des Inhalts ohne index liefert nicht alle Ausgaben.
Wenn die ursprüngliche Antwort geprüft werden muss
Lesen Sie den vorhandenen ursprünglichen Auftrag aus; wiederholen Sie eine Übermittlung mit unklarem Ausgang niemals.
Antwortfelder
| Feld | Typ |
|---|---|
Feldid | Typstring |
Feldobject | Typstring |
Feldmodel | Typstring |
Feldstatus | Typstring |
Feldcontent_url | Typsigned URL |
Felddata[] | Typsigned URL |
Feldusage | Typobject |
Feldresult_pending_check | Typboolean |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |
Antwort409 · video_not_ready | BedingungUrsprünglicher Ergebnisinhalt noch nicht verfügbar | Nächster SchrittFragen Sie die ursprünglich zurückgegebene ID regelmäßig ab und beachten Sie Retry-After. |
Antwortserver_error | BedingungDie zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert | Nächster SchrittDie ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden. |
Aliasnamen
Modellaliasnamen
Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · happyhorse-1.1-r2v
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/videos/generations·happyhorse-1.1-r2v:text,image→videoPOST /v1/videos/generations·happyhorse-r2v:text,image→videoPOST /v1/videos/generations·happyhorse-r2v-latest:text,image→video- Welche Felder verwendet die Anfrage?
POST /v1/videos/generations·happyhorse-1.1-r2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-r2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-r2v-latest:model,prompt,duration,resolution,ratio,image_urls- Welche Grenzen gelten?
POST /v1/videos/generations·happyhorse-1.1-r2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-r2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-r2v-latest:duration.minimum:3;duration.maximum:15