Zum Hauptinhalt springen

Ü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

Die Audioausgabe ist modellabhängig. In TokenLab sind Veo 3- und Seedance-Anfragen standardmäßig mit Audio aktiviert, wenn output_audio weggelassen wird. Wenn ein Modell Audiosteuerung unterstützt, verwenden Sie output_audio, um sie explizit umzuschalten. Die Aliase outputAudio und generate_audio werden aus Kompatibilitätsgründen akzeptiert und müssen mit output_audio übereinstimmen, wenn mehrere Felder gesendet werden. 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

model
string
Standard:"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
prompt
string
erforderlich
Textbeschreibung des Videos. Für die meisten öffentlichen Videomodelle ist dieses Feld erforderlich.
operation
string
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_url
string
Startbild-URL für Bild-zu-Video. Für die breiteste Kompatibilität sollte image_url bevorzugt werden.
image
string
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_images
array
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_id
string
TokenLab Seedance-Material-ID aus Material erstellen oder aus der automatischen Bildvorbereitung. Verwenden Sie sie nach ACTIVE mit Seedance-Modellen, die die TokenLab-Materialbibliothek verwenden können.
material_asset_ids
array
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.
Wenn das ausgewählte Seedance-Modell die TokenLab-Materialbibliothek verwenden kann, bereitet TokenLab Bildfelder (image, image_url, image_urls, reference_images, start_image, end_image) vor der Generierung als wiederverwendbare Materialien vor. Ist die Vorbereitung nach 60 Sekunden nicht abgeschlossen, gibt die API 409 seedance_material_preparing mit auto_material_asset_ids zurück; versuchen Sie es erneut, sobald diese Materialien ACTIVE sind. Kann das ausgewählte Modell die Materialbibliothek nicht verwenden, laufen normale Bildeingaben über den regulären Bildpfad und explizite Material-IDs schlagen sicher mit einem Materialverfügbarkeitsfehler fehl.
reference_image_type
string
Optionales Rollenfeld für Modelle, die zwischen asset und style unterscheiden.
kling_elements
array
Kling 3.0-Elementreferenzen. Nur für bildkonditionierte Anfragen mit kling-3.0-video unterstützt. Definieren Sie 1-3 Elemente; jedes Element enthält name, optional description und element_input_urls mit 2-4 Bild-URLs. Referenzieren Sie ein Element im prompt mit @name. Kombinieren Sie kling_elements nicht mit output_audio=true; lassen Sie output_audio weg oder setzen Sie es für Elementreferenzen auf false.
video_url
string
Ö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_urls
array
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_url
string
Öffentlich erreichbare Audio-URL für audio-to-video-Modelle.
audio_urls
array
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_id
string
Task-ID für bestimmte Fortsetzungs-, Erweiterungs- oder abgeleitete Flows.
extend_at
integer
Modellspezifischer Startoffset für bestimmte video-extension-Flows.
extend_times
string
Modellspezifischer Multiplikator oder Wiederholungszähler für bestimmte video-extension-Flows.
duration
integer
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.
seconds
integer
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_ratio
string
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.
resolution
string
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_audio
boolean
Kanonischer, modellabhängiger Schalter für Audioausgabe. Veo 3 und Seedance verwenden bei Auslassung standardmäßig true. kling-3.0-video akzeptiert diese Auswahl für Anfragen ohne Elementreferenzen und erzeugt bei Auslassung standardmäßig stumme Ausgabe. Kombinieren Sie output_audio=true nicht mit kling_elements.
draft
boolean
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_id
string
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.
ratio
string
Kompatibilitätsalias für aspect_ratio. Wenn ratio und aspect_ratio gemeinsam gesendet werden, müssen sie identisch sein.
generate_audio
boolean
Kompatibilitätsalias für output_audio. Wenn generate_audio, output_audio und outputAudio gemeinsam auftreten, müssen alle Werte übereinstimmen.
execution_expires_after
integer
Optionale Ausführungsablaufzeit in Sekunden für kompatible Videomodelle. Seedance verwendet bei Auslassung standardmäßig 172800 Sekunden.
priority
integer
Optionale Task-Priorität von 0 bis 9 für kompatible Videomodelle. Kombinieren Sie priority nicht mit service_tier=flex.
safety_identifier
string
Optionale Sicherheitskennung des Endnutzers für kompatible Videomodelle. Wenn sie für Seedance fehlt, verwendet TokenLab den Wert von user, sofern vorhanden.
service_tier
string
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.
frames
integer
Optionale Bildanzahl für kompatible Videomodelle. Seedance 2.0-Modelle und Seedance 1.5 Pro unterstützen dieses Feld nicht.
camera_fixed
boolean
Optionaler Festkamera-Schalter für kompatible Videomodelle. Seedance 2.0-Modelle unterstützen dieses Feld nicht.
fps
integer
Bildrate (1–120). Nur bei Modellen wirksam, die FPS öffentlich unterstützen.
negative_prompt
string
Inhalte, die in der Generierung vermieden werden sollen.
seed
integer
Zufallswert für reproduzierbare Generierung. Seedance verwendet bei Auslassung -1 als Zufallswert.
cfg_scale
number
Prompt-Treue (0–20), nur bei unterstützenden Modellen wirksam.
motion_strength
number
Bewegungsstärke (0–1), nur bei unterstützenden Modellen wirksam.
start_image
string
Startframe-Bild-URL oder kompatibler Bildeingang für start-end-to-video.
end_image
string
Endframe-Bild-URL oder kompatibler Bildeingang für start-end-to-video.
size
string
Modellspezifische Größenstufe für kompatible Videomodelle.
watermark
boolean
Optionaler Wasserzeichen-Schalter für Modelle, die ihn anbieten. Seedance verwendet bei Auslassung standardmäßig false.
effect_type
string
Modellspezifischer Effekt-Selektor für bestimmte Editier- oder Effekt-Flows.
user
string
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.0",
    "prompt": "A sleek product reveal with cinematic camera movement",
    "operation": "text-to-video",
    "duration": -1,
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "output_audio": true
  }'

Antwort

id
string
Kanonische asynchrone Aufgaben-ID. Wenn id und task_id beide vorhanden sind, behandeln Sie sie als dieselbe Aufgabe.
task_id
string
Eindeutige Task-ID für das Polling.
poll_url
string
Empfohlene Polling-URL für diesen Task. Verwenden Sie diesen Pfad unverändert.
billing_transaction_id
string
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.
status
string
Initialer Status: pending.
created
integer
Unix-Zeitstempel der Task-Erstellung.
model
string
Verwendetes Modell.
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"
  }'
{
  "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,
        "aspect_ratio": "16:9"
    }
)

Kling 3.0 Elements

Verwenden Sie kling_elements mit kling-3.0-video, wenn Sie Elementreferenzen benötigen. Senden Sie eine bildkonditionierte Anfrage (image_url, image_urls, start_image oder end_image) und referenzieren Sie jedes Element im Prompt mit @name. Kombinieren Sie kling_elements nicht mit output_audio=true; lassen Sie output_audio weg oder setzen Sie es für Elementreferenzen auf false.
response = requests.post("https://api.tokenlab.sh/v1/videos/generations",
    headers=headers,
    json={
        "model": "kling-3.0-video",
        "prompt": "Place @hero_bag on a studio turntable with soft product lighting.",
        "operation": "image-to-video",
        "image_url": "https://example.com/studio-start.png",
        "duration": 5,
        "resolution": "720p",
        "kling_elements": [
            {
                "name": "hero_bag",
                "description": "black leather handbag",
                "element_input_urls": [
                    "https://example.com/bag-front.png",
                    "https://example.com/bag-side.png"
                ]
            }
        ]
    }
)

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",
        "prompt": "Smooth transition from day to night",
        "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 grok-imagine-video video-to-video senden Sie eine öffentliche HTTPS-.mp4-URL in video_url. TokenLab übersetzt sie in den xAI-REST-Body video.url. Sie können resolution auf 480p oder 720p setzen; duration und aspect_ratio werden für diesen Edit-Flow nicht akzeptiert. 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.",
        "resolution": "720p"
    }
)

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" \
  -H "Authorization: Bearer sk-your-api-key"

curl "https://api.tokenlab.sh/v1/models/veo3.1" \
  -H "Authorization: Bearer sk-your-api-key"
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.