Zum Inhalt springen

Umstieg von fal, Replicateoder WaveSpeed

Aufrufe an Seedance 2.0 und Qwen-Image auf /v1 umstellen: Authentifizierung, Modell-IDs, jedes Feld, asynchrone Aufträge und Webhooks und was sich nicht übernehmen lässt.

Plattform-Doku geprüft2026-10-22OpenAPIllms.txt

Nicht nur eine neue Basis-URL

Bei keiner der drei reicht es, die Basis-URL und den Schlüssel zu ändern. Jede Anfrage ändert sich außerdem so:

  • Der Schlüssel: Authorization: Bearer mit einem Schlüssel, der mit sk_test_ oder sk_live_ beginnt.
  • Die Modell-ID steht im Body als model, und eine ID deckt Text, ein Startbild und Referenzen ab.
  • Ein Idempotency-Key-Header bei jeder Generierungsanfrage.
  • Eine Preisobergrenze: max_credits oder eine quote_id von POST /v1/quotes.
  • Das Ergebnis ist ein Auftrag: Frag GET /v1/jobs/{id} ab oder empfange unseren signierten Webhook.
fal
Am nächsten an unserer API: Die meisten Seedance-Feldnamen stammen von fal. Benenne außerdem image_urls in reference_image_urls um, sende duration als Zahl und verschiebe fal_webhook als webhook_url in den Body.
Replicate
Nimm die Felder aus input heraus. Benenne außerdem image in image_url, reference_images in reference_image_urls und webhook in webhook_url um.
WaveSpeed
Benenne außerdem image in image_url und reference_images in reference_image_urls um und verschiebe standard_webhook als webhook_url in den Body. Lies Ergebnisse über GET /v1/jobs/{id}.

Authentifizierung

Wohin Anfragen gehen und wie sie signiert werden.

PlattformBasis-URLAuth-Header
Pershothttps://api.pershot.app/v1Authorization: Bearer $API_KEY
falhttps://queue.fal.runAuthorization: Key $FAL_KEY
Replicatehttps://api.replicate.com/v1Authorization: Bearer $REPLICATE_API_TOKEN
WaveSpeedhttps://api.wavespeed.ai/api/v3Authorization: Bearer $WAVESPEED_API_KEY

Zugang zur Entwickler-API gibt es auf Antrag: Beantrage ihn im Studio unter API-Schlüssel. Der Schlüssel wird einmal angezeigt. Ein Entwicklerschlüssel verbraucht das Entwickler-API-Guthaben, und derselbe Schlüssel funktioniert als Bearer-Header am MCP-Server.

Modell-IDs

Bei den anderen steht die ID in der URL, bei uns im Body als model. Eine unserer IDs deckt Text, ein Startbild und Referenzen ab: Die Felder, die du sendest, entscheiden.

Modell-IDs auf jeder Plattform
Bei unsfalReplicateWaveSpeedHinweise
seedance-2.0-fastbytedance/seedance-2.0/fast/text-to-videobytedance/seedance-2.0/fast/image-to-videobytedance/seedance-2.0/fast/reference-to-videobytedance/seedance-2.0-fastbytedance/seedance-2.0-fast/text-to-videobytedance/seedance-2.0-fast/image-to-videoEine ID für Text, ein Startbild und Referenzbilder.
seedance-2.0-minibytedance/seedance-2.0/mini/text-to-videobytedance/seedance-2.0/mini/image-to-videobytedance/seedance-2.0/mini/reference-to-videobytedance/seedance-2.0-minibytedance/seedance-2.0-mini/text-to-videoEine ID für Text, ein Startbild und Referenzbilder.
qwen-image-2512fal-ai/qwen-image-2512qwen/qwen-image-2512wavespeed-ai/qwen-image/text-to-image-2512Dieselben offenen Gewichte.
qwen-image-2512-lightningfal-ai/qwen-image-2512/lorakeinskeinsUnsere 4-Schritt-Stufe Lightning. fal betreibt sie als LoRA auf seinem /lora-Endpunkt; auf Replicate oder WaveSpeed haben wir kein fertiges Lightning-Modell gefunden.
qwen-image-edit-2511fal-ai/qwen-image-edit-2511qwen/qwen-image-edit-2511wavespeed-ai/qwen-image/edit-2511Dieselben offenen Gewichte.
qwen-image-edit-2511-lightningfal-ai/qwen-image-edit-2511/lorakeinskeinsUnsere 4-Schritt-Stufe Lightning. fal betreibt sie als LoRA auf seinem /lora-Endpunkt; auf Replicate oder WaveSpeed haben wir kein fertiges Lightning-Modell gefunden.
Für KI-Agenten
Klartext für KI-Agenten: Eingaben, zulässige Werte, jeder Preis und ein Anfragebeispielseedance-2.0-fastseedance-2.0-miniqwen-image-2512-lightningqwen-image-2512qwen-image-edit-2511-lightningqwen-image-edit-2511

Seedance 2.0, Feld für Feld

Unsere Namen folgen fal, wo fal das Feld hat, und die Hinweise sagen, wo sie abweichen. Die Felder stehen auf der obersten Ebene des JSON-Bodys; Replicate verpackt sie in input.

Anfragefelder für Seedance 2.0 auf jeder Plattform
Bei unsfalReplicateWaveSpeedHinweise
modelin der URLin der URLin der URLEine ID im Body für Text, ein Startbild und Referenzen. Bei den anderen steht sie in der URL.
promptpromptpromptpromptDer Text bleibt gleich.
durationdurationdurationdurationEine ganze Zahl, 4 bis 15, Standard 5. fal sendet einen String und bietet auto; Replicate nutzt -1 für automatisch. Eine automatische Länge gibt es hier nicht.
resolutionresolutionresolutionresolution480p oder 720p, Standard 720p. WaveSpeed führt auch 1080p und 4k; hier sind höhere Auflösungen der separate Schritt enhance.
aspect_ratioaspect_ratioaspect_ratioaspect_ratio16:9, 9:16 oder 1:1, Standard 16:9. Kein auto, adaptive, 4:3, 3:4 oder 21:9.
generate_audiogenerate_audiogenerate_audiogenerate_audioGleiche Bedeutung, standardmäßig an. Der Preis ist mit und ohne gleich.
image_urlimage_urlimageimageDas Startbild. Derselbe Name wie bei fal; Replicate und WaveSpeed nennen es image. Nicht zusammen mit Referenzbildern.
reference_image_urlsimage_urlsreference_imagesreference_imagesBis zu 9 Bilder, im Prompt @image1, @image2. Anders als bei fal, das es image_urls nennt.
seedkeinsseedkeinsWird akzeptiert und nicht genutzt: Seedance 2.0 nimmt keinen Seed an. fal und WaveSpeed führen keinen.
quote_idkeinskeinskeinsNeu: Sende genau eins von beiden, quote_id oder max_credits. Ein Auftrag kostet nie mehr.
max_creditskeinskeinskeinsNeu: Sende genau eins von beiden, quote_id oder max_credits. Ein Auftrag kostet nie mehr.
webhook_urlfal_webhookQuery-Stringwebhookstandard_webhookQuery-StringIm Body. Anders als bei fal, das fal_webhook in der Query-String erwartet.
end_user_idend_user_idkeinskeinsDerselbe Name wie bei fal. Für freigegebene Entwicklerkonten (Zugang auf Antrag): deine eigene Nutzer-ID, sichtbar in der Nutzung.
project_idkeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
shot_idkeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
routing_preferencekeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
enhancekeinskeinskeinsNur bei uns, optional: eine KI-Hochskalierung nach der Generierung, gekennzeichnet als AI Enhanced.
Idempotency-KeyHeaderkeinskeinskeinsNeu und erforderlich: Derselbe Schlüssel innerhalb von 24 Stunden liefert denselben Auftrag.

Seedance-Felder der anderen ohne Gegenstück bei uns. Unverändert gesendet, werden sie als unbekannte Felder abgelehnt (400 invalid_request).

fal
end_image_urlvideo_urlsaudio_urlsbitrate_modecodec
Replicate
last_frame_imagereference_videosreference_audios
WaveSpeed
last_imagereference_videosreference_audiosenable_web_search

Qwen-Image, Feld für Feld

Unser Bild-Body ist kleiner als ihrer: eine Größe und ein Seitenverhältnis statt freier Pixelmaße, ein Bild pro Auftrag und keine Sampler-Einstellungen.

Anfragefelder für Qwen-Image auf jeder Plattform
Bei unsfalReplicateWaveSpeedHinweise
modelin der URLin der URLin der URLVier IDs im Body: Image Mini und Image Fast, jeweils zum Generieren und Bearbeiten.
promptpromptpromptpromptDer Text bleibt gleich.
sizeimage_sizekeinssize1K oder 2K, Standard 1K. Zusammen mit dem Seitenverhältnis ergibt das eine feste Größe, höchstens 2048 px pro Seite. Keine freie Breite und Höhe.
aspect_ratioimage_sizeaspect_ratiosize16:9, 9:16 oder 1:1, Standard 1:1. Es ändert den Preis nicht.
image_urlimage_urlsimageimagesNur Bearbeitungsmodelle: genau ein Ausgangsbild, als URL. Die anderen nehmen eine Liste.
seedseedseedseedGleiche Bedeutung.
quote_idkeinskeinskeinsNeu: Sende genau eins von beiden, quote_id oder max_credits. Ein Auftrag kostet nie mehr.
max_creditskeinskeinskeinsNeu: Sende genau eins von beiden, quote_id oder max_credits. Ein Auftrag kostet nie mehr.
webhook_urlfal_webhookQuery-Stringwebhookstandard_webhookQuery-StringIm Body. Anders als bei fal, das fal_webhook in der Query-String erwartet.
end_user_idkeinskeinskeinsNur bei uns, optional, für freigegebene Entwicklerkonten (Zugang auf Antrag): deine eigene Nutzer-ID, sichtbar in der Nutzung.
project_idkeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
shot_idkeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
routing_preferencekeinskeinskeinsNur bei uns, optional: Projekte und Anbieter-Routing.
Idempotency-KeyHeaderkeinskeinskeinsNeu und erforderlich: Derselbe Schlüssel innerhalb von 24 Stunden liefert denselben Auftrag.

Qwen-Image-Felder der anderen ohne Gegenstück bei uns. Unverändert gesendet, werden sie als unbekannte Felder abgelehnt (400 invalid_request).

fal
negative_promptnum_inference_stepsguidance_scalenum_imagesoutput_formataccelerationenable_safety_checkersync_modeloras
Replicate
negative_promptstrengthwidthheightguidancenum_inference_stepsgo_fastoutput_formatoutput_qualitydisable_safety_checkerlora_weightslora_scale
WaveSpeed
widthheightoutput_formatenable_base64_outputenable_sync_mode

Asynchrone Aufträge und Webhooks

Alle vier führen Aufträge im Hintergrund aus. So nennt jede Plattform die Schritte:

Aufträge und Webhooks auf jeder Plattform
SchrittPershotfalReplicateWaveSpeed
ErstellenPOST /v1/videos/generationsPOST /v1/images/generations202 → { id: "job_…" }POST https://queue.fal.run/<endpoint id>→ request_id, status_url, response_urlPOST /v1/models/{owner}/{name}/predictions{ "input": { … } }POST /api/v3/<model id>→ data.id
AbfragenGET /v1/jobs/{id}GET status_urlGET response_urlGET /v1/predictions/{id}GET /api/v3/predictions/{id}/result
StatusqueuedprocessingsucceededfailedcancelledunknownIN_QUEUEIN_PROGRESSCOMPLETEDstartingprocessingsucceededfailedcanceledcreatedcompletedfailedcancelledtimeoutdeleted
Webhookwebhook_url (body)?fal_webhook=…webhook (body)webhook_events_filter?standard_webhook=…?webhook=… (legacy)
SignaturX-Signature: t=…,v1=…HMAC-SHA256, whsec_…X-Event-IdX-Fal-Webhook-SignatureED25519, JWKSwebhook-idwebhook-timestampwebhook-signaturewebhook-idwebhook-timestampwebhook-signature
WiederholungenNach 1 min, 5 min, 30 min, 2 h und 6 h. Ein 2xx innerhalb von 10 Sekunden gilt als zugestellt.Bis zu 31 Wiederholungen, bis das gespeicherte Ergebnis abläuft.Wiederholt eventuell: Rechne mit Duplikaten.Bis zu 3 Wiederholungen.
AusgabedateienSignierte Links, 24 Stunden gültig; ruf den Auftrag erneut ab, um einen frischen zu bekommen. Dateien werden 12 Monate aufbewahrt.Richten sich nach deinen Einstellungen zum Medienablauf.Bei Predictions über die API nach einer Stunde entfernt.Bis zu 7 Tage aufbewahrt.
In einem Aufruf wartenGibt es nicht: Jeder Auftrag läuft asynchron. Über MCP wartet wait_for_job bis zu 60 Sekunden.POST https://fal.run/<endpoint id>Prefer: wait=nenable_sync_mode

Unser Webhook-Body ist der Auftrag selbst, und die Signatur ist unsere eigene: Code, der deren Webhooks prüft, lehnt unsere ab. So prüfst du unsere

Idempotenz

Jede Generierungsanfrage braucht einen Idempotency-Key-Header mit 1 bis 255 sichtbaren ASCII-Zeichen. Derselbe Schlüssel innerhalb von 24 Stunden liefert denselben Auftrag mit HTTP 200, also erzeugt oder berechnet eine Wiederholung nach einem Timeout nie einen zweiten Auftrag.

Keine der drei dokumentiert einen Idempotenzschlüssel für das Erstellen eines Auftrags (Stand 2026-10-22): fal empfiehlt, Webhooks anhand von request_id zu deduplizieren, und WaveSpeed bittet darum, einmal einzureichen und vor einem erneuten Einreichen nach dem Task zu suchen. Gib jedem Auftrag einen Schlüssel und verwende ihn bei jeder Wiederholung erneut.

Was nicht kompatibel ist

Unverändert gesendet, schlagen diese hier fehl oder werden abgelehnt:

  • Die Client-Bibliotheken der drei (fal_client, replicate, wavespeed) rufen /v1 nicht auf. Nutze einfaches HTTP, das OpenAPI-Dokument oder den MCP-Server.
  • Die Antwortformate der drei: Ein Auftrag ist hier ein Job mit outputs[].url, kein fal-Ergebnis, keine Replicate-Prediction und kein WaveSpeed-Wrapper data.
  • Endbilder: fal end_image_url, Replicate last_frame_image, WaveSpeed last_image.
  • Referenzvideos und Referenzaudio: fal video_urls und audio_urls, Replicate und WaveSpeed reference_videos und reference_audios.
  • Eine automatische Länge oder ein automatisches Seitenverhältnis, die Seitenverhältnisse 4:3, 3:4 und 21:9 sowie Generierungen in 1080p oder 4K. Höhere Auflösungen sind hier ein separater Schritt, enhance, gekennzeichnet als AI Enhanced.
  • Ein Startbild zusammen mit Referenzbildern. Auch Replicate lehnt das ab.
  • In einem Aufruf auf das Ergebnis warten (fal.run, Prefer: wait bei Replicate, enable_sync_mode bei WaveSpeed): Jeder Auftrag läuft hier asynchron.
  • Mehrere Bilder pro Auftrag, Ausgabe als PNG oder WebP, freie Breite und Höhe, mehrere Ausgangsbilder für eine Bearbeitung, LoRAs und Sampler-Einstellungen.
  • Die Webhook-Prüfung der drei: Unsere Zustellungen tragen X-Signature, einen HMAC-SHA256 mit deinem whsec_-Secret, nicht die ED25519-Signatur von fal oder den webhook-signature-Header.
  • Bezahlen nach Nutzung: Credits sind im Voraus bezahlt, jeder Auftrag hat eine Obergrenze, und ein Auftrag über max_credits wird abgelehnt, nicht berechnet.
  • Langlebige Ausgabe-Links: Unsere gelten 24 Stunden. Ruf den Auftrag erneut ab, um einen frischen zu bekommen.

Vorher und nachher

Dieselbe Anfrage an Seedance 2.0 Fast mit Startbild, wie jede Plattform sie dokumentiert, dann über /v1. Die Preisobergrenze stammt aus unserer Preis-Engine.

Vorher
curl -X POST https://queue.fal.run/bytedance/seedance-2.0/fast/image-to-video \
  -H "Authorization: Key $FAL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Slow dolly-in on a ceramic mug on a wooden table, morning window light",
    "image_url": "https://example.com/first-frame.jpg",
    "duration": "5",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }'
Nachher: /v1
curl https://api.pershot.app/v1/videos/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast",
    "prompt": "Slow dolly-in on a ceramic mug on a wooden table, morning window light",
    "image_url": "https://example.com/first-frame.jpg",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true,
    "max_credits": 34
  }'

Es sind unsere Preise

Jeder Auftrag bekommt hier vor dem Start ein Preisangebot in Credits (1 US$ = 100 Credits) und kostet nie mehr als sein Preisangebot oder max_credits.

Was fal, Replicate und WaveSpeed berechnen, steht auf deren eigenen Seiten. Unsere Vergleichsseiten listen ihre veröffentlichten Preise für Seedance 2.0 auf, jeweils mit dem Datum, an dem sie abgelesen wurden.

Unsere API-Sätze pro abgerechneter Sekunde
Modell480p, pro Sekunde720p, pro Sekunde
Seedance 2.0 Fastseedance-2.0-fast0,031 $0,067 $
Seedance 2.0 Miniseedance-2.0-mini0,020 $0,042 $
Unsere Credits pro Bild
Modell1K, pro Bild2K, pro Bild
Qwen-Image-2512 · Lightning 4-stepqwen-image-2512-lightning1 cr3 cr
Qwen-Image-2512qwen-image-25122 cr6 cr
Qwen-Image-Edit-2511 · Lightningqwen-image-edit-2511-lightning2 cr4 cr
Qwen-Image-Edit-2511qwen-image-edit-25113 cr10 cr

Quellen

Feldnamen und Verhalten der drei, wie ihre öffentlichen Seiten sie am 2026-10-22 zeigten. Prüfe ihre Dokumentation, bevor du umsteigst: