Skip to Content
APIVideogenerierungVideo erstellen

Video erstellen

Senden Sie eine Videogenerierungsaufgabe ab. Die Anfrage gibt sofort 202 Accepted mit einer Aufgaben-id und einer Polling-URL zurück — die Generierung läuft asynchron. Fragen Sie die Aufgabe ab oder erhalten Sie einen Webhook, und lesen Sie anschließend das Ergebnis mit Videostatus abrufen.

POST https://api.ofox.io/v1/videos

Anfrageparameter

ParameterTypPflichtBeschreibung
modelstringModell-Slug, z. B. bytedance/seedance-2.5 oder bytedance/seedance-2.0
promptstringTextbeschreibung des Videos
durationintegerVideolänge in Sekunden
resolutionstring480p / 720p / 1080p / 1K / 2K / 4K
aspect_ratiostring16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9 / 9:21
sizestringExakte Pixel WIDTHxHEIGHT (z. B. 1280x720), Alternative zu resolution + aspect_ratio
frame_imagesarrayFrame-Steuerung (Bild-zu-Video / erster-und-letzter Frame). Vorhanden ⇒ wird als Bild-zu-Video behandelt. Siehe unten
input_referencesarraySteuert Motiv / Stil (Referenz-zu-Video), keine präzisen Frame-Anker. Siehe unten
real_personbooleanStandard false. Bei Referenzbildern realer Personen auf true setzen, um sie vor der Generierung vorzuverarbeiten; mindestens eine Bildreferenz erforderlich
generate_audiobooleanStandardmäßig true bei Modellen, die Audioausgabe unterstützen
seedintegerDeterministischer Generierungs-Seed (nicht bei allen Anbietern garantiert)
callback_urlstringWebhook-URL für terminalen Zustand, muss HTTPS sein (siehe Webhooks)
providerobjecttype legt den bereitstellenden Anbieter fest, options reicht anbieterspezifische Parameter durch. Siehe Provider-Routing

frame_images[]-Element

Jedes Element fixiert einen Frame der Ausgabe. frame_type ist first_frame oder last_frame.

{ "type": "image_url", "image_url": { "url": "https://example.com/first.jpg" }, "frame_type": "first_frame" }

input_references[]-Element

Übergeben Sie Bild- / Audio- / Videoreferenzen per type — sie steuern Motiv, Stil und Konsistenz, aber keine präzisen Frame-Anker:

{ "type": "image_url", "image_url": { "url": "https://example.com/subject.jpg" } } { "type": "audio_url", "audio_url": { "url": "https://example.com/voice.mp3" } } { "type": "video_url", "video_url": { "url": "https://example.com/ref.mp4" } }
MediumtypeMaximale AnzahlWeitere Einschränkungen
Bildimage_url≤ 9
Audioaudio_url≤ 3≤ 15s pro Clip
Videovideo_url≤ 1

Eine Überschreitung eines Limits gibt 400 too_many_references zurück (siehe Fehler).

frame_images und input_references schließen sich gegenseitig aus — eine einzelne Anfrage nutzt entweder das eine oder das andere, niemals beide. Wenn beides gesendet wird, gibt die API 400 references_conflict zurück.

real_person: Referenzbilder realer Personen

Den einstufigen Ofox-Ablauf, den Vergleich mit der Seedance-Asset-Registrierung und praktische Hinweise für erneute Versuche finden Sie unter Referenzbilder realer Personen.

Setzen Sie das Top-Level-Feld real_person auf true, wenn ein Referenzbild eine erkennbare reale Person enthält. Ofox führt vor dem Absenden der Generierungsanfrage eine datenschutzfreundliche Vorverarbeitung für jedes Bild im gewählten Referenzfeld durch. Der Standardwert ist false; bestehende Anfragen bleiben unverändert.

{ "model": "bytedance/seedance-2.0", "prompt": "Die Person geht durch einen filmischen Nachtmarkt", "real_person": true, "input_references": [ { "type": "image_url", "image_url": { "url": "https://example.com/person.jpg" } } ] }

real_person kann mit Bildern in frame_images oder input_references verwendet werden; diese beiden Felder bleiben gegenseitig ausgeschlossen. Mindestens eine Bildreferenz ist erforderlich, andernfalls gibt die API 400 invalid_request zurück.

Die Vorverarbeitung kann Fehlablehnungen durch Anti-Deepfake-Prüfungen des Upstream-Anbieters reduzieren, umgeht aber keine Inhaltsrichtlinien und garantiert keine Annahme. Der Anbieter kann die Anfrage weiterhin ablehnen; ein abgelehnter Job wird nicht berechnet. Korrigieren Sie die Eingabe oder versuchen Sie es erneut. Details finden Sie unter real_person-Vorverarbeitungsfehler.

Generierungsmodus (implizit)

Es gibt kein Feld gen_mode. Der Modus wird daraus abgeleitet, welche Eingaben Sie senden:

ModusErkannt wenn
text2videoWeder frame_images noch input_references
img2videoframe_images mit einem first_frame
img2video_endframe_images mit first_frame + last_frame
imgref2videoinput_references, nur Bilder
mixref2videoinput_references mit Mischung aus Bild / Audio / Video

Antwort

202 Accepted — die Aufgabe wird mit status: "pending" und einer polling_url angenommen:

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "pending", "polling_url": "https://api.ofox.io/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

Fragen Sie polling_url ab (oder warten Sie auf einen Webhook), bis die Aufgabe einen terminalen Zustand erreicht — siehe Videostatus abrufen.

Anfragebeispiele

Ein /v1/videos-Schema deckt jeden Generierungsmodus ab; der Modus wird implizit aus Ihren Eingaben gewählt. Jedes folgende Beispiel läuft unverändert.

Keine frame_images / input_references → Text-zu-Video.

Terminal
# Optional: einen Anbieter festlegen. Ohne das Feld routet die Plattform selbst # "provider": { "type": "byteplus" } curl -X POST https://api.ofox.io/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.5", "prompt": "A golden retriever running on the beach at sunset", "duration": 5, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }'

Kombinierbare Optionen

Die folgenden Felder sind unabhängig vom Generierungsmodus — fügen Sie beliebige davon zu jedem obigen Request Body hinzu.

Erhalten Sie einen POST an Ihren Endpunkt, wenn die Aufgabe einen terminalen Zustand erreicht, statt per Polling abzufragen.

{ "model": "bytedance/seedance-2.5", "prompt": "...", "callback_url": "https://your-app.example/webhooks/ofox-video" }

callback_url muss HTTPS verwenden. Siehe Webhooks für Payload und Signatur.

Last updated on