Video & Materialien

Video erstellen

Erstellt eine Video-Generierungsaufgabe

POST
/v1/videos/generations

Überblick

Die Video-Generierung ist asynchron. Nach dem Absenden einer Anfrage erhalten Sie eine task_id und eine poll_url. Anschließend pollen Sie den Task, bis das endgültige Ergebnis vorliegt.

Polling-Verhalten

Für das zuverlässigste Polling-Verhalten verwenden Sie genau die poll_url, die in der Create-Response zurückgegeben wird.

Wenn eine Create-Response poll_url zurückgibt, verwenden Sie genau diese URL. Wenn sie auf /v1/tasks/{id} zeigt, behandeln Sie sie als kanonischen festen Status-Endpunkt.

Modell- und Medienverhalten

Das Audioverhalten hängt vom Modell und Vorgang ab. Videos können Ton enthalten, auch wenn kein Audioschalter angeboten wird. Weglassen ist nicht dasselbe wie false.

  • veo3.1 und veo3.1-fast erzeugen gemäß Gemini API immer Audio. Auch die Videogenerierung mit wan-2.6 und wan-2.7 bietet keine Stummschaltung. Lassen Sie output_audio weg oder setzen Sie es auf true, soweit die Modelldetails dies erlauben.
  • hailuo-h3 und Grok-Videomodelle erzeugen natives Audio. Senden Sie keine Audioschalter, die nicht in den Modelldetails stehen.
  • Seedance 1.5/2.x und viduq3-pro / viduq3-turbo aktivieren Audio standardmäßig und unterstützen stumme Ausgabe. PixVerse C1/V5.6/V6 deaktivieren Audio standardmäßig. Verwenden Sie output_audio nur bei Vorgängen, die es aufführen. Vidu akzeptiert auch das deklarierte boolesche Feld audio.
  • audio_url / audio_urls liefern Eingabe- oder Referenzaudio und schalten die Audioausgabe nicht um. Videobearbeitung, Bewegungsübertragung und Stiltransfer können die ursprüngliche Tonspur behalten. Originalton beibehalten bedeutet nicht stummschalten.

Zulässige Werte und Audiopreise stehen in den Modelldetails. Unterstützte Aliase outputAudio, generate_audio und boolesches audio müssen bei gemeinsamer Angabe mit output_audio übereinstimmen. Versionen und Vorgänge derselben Modellfamilie können unterschiedliche Audiosteuerungen haben.

Für Produktionsintegrationen sollten Sie öffentlich erreichbare https-URLs für Bild-, Video- und Audioeingaben bevorzugen. Kompatible Modelle unterstützen weiterhin Inline-data:-URLs, aber große base64-Payloads erschweren Retry, Beobachtbarkeit und Debugging.

Request-Body

modelstringStandard: veo3.1

Video-Modell-ID. Verwenden Sie die von TokenLab angezeigten Modell-IDs wie veo3.1, wan-2.7, happyhorse-1.0, viduq3, pixverse-v6 oder kling-3.0-video; waehlen Sie text-to-video, image-to-video, reference-to-video oder andere Varianten mit operation. Siehe Video Generation Guide und Models API.

PixVerse

  • Modell: pixverse-c1, pixverse-v6, pixverse-v5.6
  • Operationen: text-to-video, image-to-video, start-end-to-video, reference-to-video
  • Audio-Auswahl: output_audio, Standard false

Auf TokenLab akzeptieren die obigen PixVerse-Modelle operation=video-extension nicht.

HappyHorse

  • Modell: happyhorse-1.0
  • Operationen: text-to-video, image-to-video, reference-to-video, video-to-video
  • Audio-Auswahl: Senden Sie output_audio nicht
promptstring

Textbeschreibung des Videos. Für die meisten öffentlichen Videomodelle ist dieses Feld erforderlich.

operationstring

Auszuführende Video-Operation. Unterstützte Werte sind text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video und motion-control. TokenLab kann die Operation aus den Eingaben ableiten, aber in Produktion wird eine explizite Angabe empfohlen.

image_urlstring

Startbild-URL für Bild-zu-Video. Für die breiteste Kompatibilität sollte image_url bevorzugt werden.

imagestring

Inline-Bild als data:-URL (zum Beispiel data:image/jpeg;base64,...). Wird von kompatiblen Modellen unterstützt, aber image_url ist in der Praxis robuster.

reference_imagesarray

Referenzbilder für Flows mit dedizierter Referenz-Konditionierung. Die zulässige Anzahl ist modellabhängig. Für seedance-2.0 und seedance-2.0-fast unterstützt TokenLab derzeit bis zu 9 Referenzbilder sowie zusätzlich bis zu 3 Referenzvideos und 3 Referenzaudios. Für Modellauswahl, 4K-Grenzen und Mini-Hinweise siehe den Leitfaden zu Seedance 2.0 Videomodellen. Öffentliche https-URLs werden empfohlen; kompatible Modelle akzeptieren auch data:-URLs. Für grok-imagine-video akzeptiert reference-to-video bis zu 7 Bildreferenzen und duration ist auf 10 Sekunden begrenzt. grok-imagine-video-1.5-preview ist nur image-to-video und akzeptiert keine Referenzbilder.

material_asset_idstring

TokenLab Seedance-Material-ID aus Material erstellen. Verwenden Sie sie nach ACTIVE mit Seedance-Modellen, die die TokenLab-Materialbibliothek verwenden können.

material_asset_idsarray

Mehrere TokenLab Seedance-Material-IDs. Sie teilen sich das Seedance-Bildreferenzlimit mit reference_images; das ausgewählte Modell muss die TokenLab-Materialbibliothek verwenden können.

Normale Bild-URLs werden als Bildeingaben verwendet und erzeugen keine wiederverwendbaren Materialien. Erstellen Sie diese über die Material-API und verwenden Sie ihre TokenLab-IDs oder asset://asset-YYYYMMDDHHMMSS-xxxxx-URIs. Bei 409 seedance_material_preparing für explizite Materialien prüfen Sie die zurückgegebenen inactive_asset_ids und wiederholen die Anfrage nach dem Status ACTIVE.

reference_image_typestring

Optionales Rollenfeld für Modelle, die zwischen asset und style unterscheiden.

kling_elementsarray

Verwenden Sie kling_elements nur, wenn die aktuellen öffentlichen Modelldetails dieses Feld nennen. Senden Sie Bildeingaben und 1–3 Elemente mit name, optionaler description und 2–4 element_input_urls; referenzieren Sie sie im prompt mit @name. Nicht mit output_audio=true kombinieren.

video_urlstring

Öffentlich erreichbare Quellvideo-URL. Erforderlich für Video-URL-basierte video-to-video-Flows und für motion-control; einige abgeleitete Flows verwenden stattdessen task_id.

video_urlsarray

Zusätzliche Referenzvideo-Eingaben für Modelle mit multimodaler Referenz-Konditionierung. Die zulässige Anzahl ist modellabhängig. Für seedance-2.0 und seedance-2.0-fast unterstützt TokenLab derzeit bis zu 3 Referenzvideos.

audio_urlstring

Öffentliche Audio-URL für einen vom Modell unterstützten audiogesteuerten Vorgang oder eine Audioreferenz.

audio_urlsarray

Zusätzliche Referenzaudio-Eingaben für Modelle mit multimodaler Referenz-Konditionierung. Die zulässige Anzahl ist modellabhängig. Für seedance-2.0 und seedance-2.0-fast unterstützt TokenLab derzeit bis zu 3 Referenzaudios.

task_idstring

Task-ID für bestimmte Fortsetzungs-, Erweiterungs- oder abgeleitete Flows.

extend_atinteger

Modellspezifischer Startoffset für bestimmte video-extension-Flows.

extend_timesstring

Modellspezifischer Multiplikator oder Wiederholungszähler für bestimmte video-extension-Flows.

durationinteger

Dauer des generierten Ausgabevideos in Sekunden. Für Seedance 1.5/2.0-Modelle wird bei Auslassung 5 verwendet; -1 lässt das Modell innerhalb des unterstützten Bereichs wählen, und die Abrechnung wird bis zum Task-Abschluss konservativ geschätzt.

secondsinteger

Kompatibilitätsalias für duration. Wenn seconds und duration gemeinsam gesendet werden, müssen sie identisch sein. Für Seedance hat seconds=-1 dieselbe Auto-Dauer-Bedeutung wie duration=-1.

aspect_ratiostring

Kanonisches Seitenverhältnis, zum Beispiel adaptive, 16:9, 9:16, 1:1, 4:3, 3:4 oder 21:9. Seedance verwendet bei Auslassung standardmäßig adaptive.

resolutionstring

Modellabhängige Ausgabeauflösung. Seedance verwendet standardmäßig 720p; seedance-2.0 unterstützt 480p, 720p, 1080p und 4k, während seedance-2.0-fast und seedance-2.0-mini auf 480p und 720p begrenzt sind.

output_audioboolean

Audiowahl für Vorgänge, die dieses Feld deklarieren. Ohne Angabe gilt der Modellstandard; false fordert nur dann stumme Ausgabe an, wenn dies erlaubt ist. Siehe Audiohinweise und Modelldetails.

draftboolean

Seedance 1.5 Pro Draft-Workflow-Schalter. Verwenden Sie draft=true mit Seedance-Modellen, die Draft-Aufgaben unterstützen. Nicht zusammen mit draft_task_id senden.

draft_task_idstring

Seedance 1.5 Pro Draft-Promotion-Task-ID. Senden Sie eine frühere Draft-Task-ID, um das finale Video zu erstellen; dies ist kein generisches Videofeld.

ratiostring

Kompatibilitätsalias für aspect_ratio. Wenn ratio und aspect_ratio gemeinsam gesendet werden, müssen sie identisch sein.

generate_audioboolean

Kompatibilitätsalias für output_audio. Wenn generate_audio, output_audio und outputAudio gemeinsam auftreten, müssen alle Werte übereinstimmen.

execution_expires_afterinteger

Optionale Ausführungsablaufzeit in Sekunden für kompatible Videomodelle. Seedance verwendet bei Auslassung standardmäßig 172800 Sekunden.

priorityinteger

Optionale Task-Priorität von 0 bis 9 für kompatible Videomodelle. Kombinieren Sie priority nicht mit service_tier=flex.

safety_identifierstring

Optionale Sicherheitskennung des Endnutzers für kompatible Videomodelle. Wenn sie für Seedance fehlt, verwendet TokenLab den Wert von user, sofern vorhanden.

service_tierstring

default wird für Seedance 2.0-Modelle als kompatibler No-op akzeptiert. flex ist nur erlaubt, wenn das ausgewählte Modell es unterstützt.

framesinteger

Optionale Bildanzahl für kompatible Videomodelle. Seedance 2.0-Modelle und Seedance 1.5 Pro unterstützen dieses Feld nicht.

camera_fixedboolean

Optionaler Festkamera-Schalter für kompatible Videomodelle. Seedance 2.0-Modelle unterstützen dieses Feld nicht.

fpsinteger

Bildrate (1–120). Nur bei Modellen wirksam, die FPS öffentlich unterstützen.

negative_promptstring

Inhalte, die in der Generierung vermieden werden sollen.

seedinteger

Zufallswert für reproduzierbare Generierung. Seedance verwendet bei Auslassung -1 als Zufallswert.

cfg_scalenumber

Prompt-Treue (0–20), nur bei unterstützenden Modellen wirksam.

motion_strengthnumber

Bewegungsstärke (0–1), nur bei unterstützenden Modellen wirksam.

start_imagestring

Startframe-Bild-URL oder kompatibler Bildeingang für start-end-to-video.

end_imagestring

Endframe-Bild-URL oder kompatibler Bildeingang für start-end-to-video.

sizestring

Modellspezifische Größenstufe für kompatible Videomodelle.

watermarkboolean

Optionaler Wasserzeichen-Schalter für Modelle, die ihn anbieten. Seedance verwendet bei Auslassung standardmäßig false.

effect_typestring

Modellspezifischer Effekt-Selektor für bestimmte Editier- oder Effekt-Flows.

userstring

Eindeutige Kennung des Endnutzers. Für Seedance verwendet TokenLab diesen Wert auch als safety_identifier, wenn dieses Feld fehlt.

Kompatibilitätshinweise

  • Kanonische öffentliche Felder bleiben in snake_case: aspect_ratio, output_audio, reference_images und reference_image_type.
  • Aus Kompatibilitätsgründen akzeptiert TokenLab auch ratio, generate_audio, outputAudio, seconds, referenceImages und referenceImageType.
  • Wenn kanonische Felder und Alias-Felder gemeinsam gesendet werden, müssen ihre Werte übereinstimmen; widersprüchliche Aliase werden vor Task-Erstellung abgelehnt.
  • Wenn operation weggelassen wird, leitet TokenLab sie aus den Eingaben ab. Für Produktionstraffic wird eine explizite operation weiterhin empfohlen.

Best Practices für Eingaben

  • Für image_url, reference_images, video_url und audio_url sollten öffentlich erreichbare https-URLs bevorzugt werden.
  • Vermeiden Sie möglichst, base64 und Remote-URLs innerhalb derselben Anfrage zu mischen.
  • Remote-Medien-URLs sollten lange genug gültig sein, um Wiederholungen und die asynchrone Task-Erstellung abzudecken.

Seedance-Parameter

Für Seedance 1.5/2.0-Modelle folgt der einheitliche Endpunkt den TokenLab-Feldnamen und akzeptiert zusätzlich die kompatiblen Aliase seconds, ratio und generate_audio. Weggelassene Seedance-Parameter verwenden diese Standardwerte: duration=5, resolution=720p, aspect_ratio=adaptive, output_audio=true, watermark=false, return_last_frame=false, execution_expires_after=172800, priority=0 und seed=-1.

duration=-1 oder seconds=-1 lässt Seedance die Ausgabedauer innerhalb des unterstützten Modellbereichs wählen. TokenLab schätzt die Kosten bis zum Task-Abschluss konservativ und rechnet anschließend nach der abgeschlossenen Task-Usage ab, wenn diese verfügbar ist. service_tier=default wird für Seedance 2.0 als kompatibler No-op akzeptiert; service_tier=flex, frames und camera_fixed werden abgelehnt, wenn das ausgewählte Modell sie nicht unterstützt.

Seedance-Beispiel

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A sleek product reveal with cinematic camera movement",
    "operation": "text-to-video",
    "duration": -1,
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "output_audio": true
  }'

Antwort

Ergebnis-, Fehler-, Zeitstempel- und Modellfelder werden zurückgegeben, wenn sie für den Task verfügbar sind.

idstring

Kanonische asynchrone Aufgaben-ID. Wenn id und task_id beide vorhanden sind, behandeln Sie sie als dieselbe Aufgabe.

task_idstring

Eindeutige Task-ID für das Polling.

poll_urlstring

Empfohlene Polling-URL für diesen Task. Verwenden Sie diesen Pfad unverändert.

billing_transaction_idstring

TokenLab-Abrechnungstransaktions-ID, wenn die Abrechnung bereits abgeschlossen ist. Dies ist die Kennung für Dashboard/Abgleich und getrennt von der asynchronen id / task_id.

statusstring

Task-Status: pending, processing, completed, failed.

createdinteger

Unix-Zeitstempel der Task-Erstellung.

modelstring

Verwendetes Modell.

videoobject

Einzelnes Videoobjekt mit url, duration, width und height, falls verfügbar.

videosarray

Video-Array, wenn die Generierungsaufgabe mehrere Ausgaben zurückgibt.

errorstring | object

Fehlermeldung (falls fehlgeschlagen).

Anfrage

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1",
    "prompt": "A cat walking through a garden, cinematic lighting",
    "operation": "text-to-video",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'

Antwort

Response
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "veo3.1",
  "created": 1706000000
}

Bild-zu-Video

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "resolution": "768p"
    }
)

Kling-3.0-Elemente

Verwenden Sie kling_elements nur, wenn die aktuellen öffentlichen Modelldetails dieses Feld nennen. Senden Sie Bildeingaben und 1–3 Elemente mit name, optionaler description und 2–4 element_input_urls; referenzieren Sie sie im prompt mit @name. Nicht mit output_audio=true kombinieren.

Referenzbild-zu-Video

Verwenden Sie operation=reference-to-video, wenn das Modell eine dedizierte Referenz-Konditionierung unterstützt. Im Modelldetails von TokenLab werden Bildreferenzen über reference_images übergeben, multimodale Referenzvideos und -audios über video_urls und audio_urls. Für seedance-2.0 und seedance-2.0-fast unterstützt TokenLab derzeit bis zu 9 Referenzbilder sowie zusätzlich bis zu 3 Referenzvideos und 3 Referenzaudios. Für Modellauswahl, 4K-Grenzen und Mini-Hinweise siehe den Leitfaden zu Seedance 2.0 Videomodellen. duration steuert nur die Länge des generierten Outputs; es setzt kein separates Limit für die Dauer des Referenzvideo-Eingangs. Für grok-imagine-video akzeptiert reference-to-video bis zu 7 Bildreferenzen (reference_images oder image_urls) und duration ist auf 10 Sekunden begrenzt. Kombinieren Sie Referenzbilder nicht mit image_url / image als Startbild-Eingaben. grok-imagine-video-1.5-preview ist nur image-to-video.

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity and palette while adding subtle motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)

Start- und Endframe-Steuerung

Verwenden Sie start_image und end_image, um ersten und letzten Frame zu kontrollieren.

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)

Video-zu-Video

Für video-to-video mit grok-imagine-video senden Sie eine öffentliche HTTPS-.mp4-URL als video_url und die Bearbeitungsanweisung als prompt. Lassen Sie resolution, duration und aspect_ratio für diese Operation weg.

Wenn ein Modell ein bestehendes Video als Haupteingabe akzeptiert, verwenden Sie operation=video-to-video.

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "grok-imagine-video",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Enhance the clip while preserving the original motion."
    }
)

Bewegungssteuerung

Wenn ein Modell sowohl ein Motivbild als auch ein Bewegungsreferenzvideo benötigt, verwenden Sie operation=motion-control. TokenLab normalisiert die öffentliche Form image_url + video_url in das Motion-Control-Anfrageformat dieses Modells.

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)

Modellerkennung

Der öffentliche Videomodellbestand und die unterstützten Operationen ändern sich mit der Zeit. Verwenden Sie die Models API als aktuelle Referenz, bevor Sie einen modellspezifischen Flow integrieren:

curl "https://api.tokenlab.sh/v1/models?recommended_for=video"

curl "https://api.tokenlab.sh/v1/models/veo3.1"

Lesen Sie die Modelldetail-Antwort, bevor Sie sich auf modellspezifische Operationen oder Felder verlassen. Operationen wie audio-to-video und video-extension sind modellspezifisch; prüfen Sie die aktuelle Verfügbarkeit dort, statt sich auf statische Beispiele auf dieser Seite zu verlassen.

Autorisierung

BearerAuth
AuthorizationBearer <token>

API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.

Ort: header

Header

X-TokenLab-Delivery-Policy?string

Zustellungsrichtlinie pro Anfrage. Überschreibt die API-Key- und Workspace-Standardeinstellungen. Versucht automatisch zuerst TokenLab Verified und kann vor der Ausgabe, der Annahme der Anfrage oder der Erstellung persistenter Ressourcen einmalig auf Official umstellen.

Zulässige Werte

  • "auto"
  • "verified"
  • "official"

Anfragekörper

application/json

Antwort

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json