fal、 Replicateまたは WaveSpeed からの 移行
Seedance 2.0とQwen-Imageの呼び出しを/v1に移行します:認証、モデルID、すべてのフィールド、非同期ジョブとWebhook、そして引き継げないもの。
ベース URLの 置き 換えだけでは 済みません
3社のどれから移行する場合も、ベースURLとキーを変えるだけでは足りません。すべてのリクエストで、ほかにも次の点が変わります:
- キー:
Authorization: Bearerで、sk_test_またはsk_live_で始まるキーを使います。 - モデルIDはボディの
modelに入れます。テキスト、開始フレーム、参照画像を1つのIDでまかないます。 - すべての生成リクエストに
Idempotency-Keyヘッダーを付けます。 - 価格の上限:
max_credits、またはPOST /v1/quotesで取得したquote_id。 - 結果はジョブとして返ります:
GET /v1/jobs/{id}をポーリングするか、当サービスの署名付きWebhookを受信します。
- fal
- 当サービスに最も近い形です:Seedanceのフィールド名の多くはfalのものです。ほかに、
image_urlsをreference_image_urlsに名前を変え、durationは数値で送り、fal_webhookはボディのwebhook_urlに移します。 - Replicate
- フィールドを
inputから出してください。ほかに、imageをimage_urlに、reference_imagesをreference_image_urlsに、webhookをwebhook_urlに名前を変えます。 - WaveSpeed
- ほかに、
imageをimage_urlに、reference_imagesをreference_image_urlsに名前を変え、standard_webhookはボディのwebhook_urlに移します。結果はGET /v1/jobs/{id}から読み取ります。
認証
リクエストの送信先と認証の方法。
| プラットフォーム | ベースURL | 認証ヘッダー |
|---|---|---|
| Pershot | https://api.pershot.app/v1 | Authorization: Bearer $API_KEY |
| fal | https://queue.fal.run | Authorization: Key $FAL_KEY |
| Replicate | https://api.replicate.com/v1 | Authorization: Bearer $REPLICATE_API_TOKEN |
| WaveSpeed | https://api.wavespeed.ai/api/v3 | Authorization: Bearer $WAVESPEED_API_KEY |
開発者APIは申請制です。スタジオの「APIキー」から申請してください。キーは1回だけ表示されます。開発者APIキーは開発者API残高を消費し、同じキーをBearerヘッダーとしてMCPサーバーでも使えます。
モデル ID
各社のIDはURLに入り、当サービスのIDはボディのmodelに入ります。当サービスの1つのIDで、テキスト、開始フレーム、参照画像をまかなえます:どれになるかは送るフィールドで決まります。
| 当サービス | fal | Replicate | WaveSpeed | 備考 |
|---|---|---|---|---|
seedance-2.0-fast | bytedance/seedance-2.0/fast/text-to-videobytedance/seedance-2.0/fast/image-to-videobytedance/seedance-2.0/fast/reference-to-video | bytedance/seedance-2.0-fast | bytedance/seedance-2.0-fast/text-to-videobytedance/seedance-2.0-fast/image-to-video | テキスト、開始フレーム、参照画像に共通の1つのID。 |
seedance-2.0-mini | bytedance/seedance-2.0/mini/text-to-videobytedance/seedance-2.0/mini/image-to-videobytedance/seedance-2.0/mini/reference-to-video | bytedance/seedance-2.0-mini | bytedance/seedance-2.0-mini/text-to-video | テキスト、開始フレーム、参照画像に共通の1つのID。 |
qwen-image-2512 | fal-ai/qwen-image-2512 | qwen/qwen-image-2512 | wavespeed-ai/qwen-image/text-to-image-2512 | 同じオープンウェイトです。 |
qwen-image-2512-lightning | fal-ai/qwen-image-2512/lora | なし | なし | 当サービスの4ステップのLightningティア。falは/loraエンドポイントでLoRAとして実行しています。ReplicateとWaveSpeedには、すぐに使えるLightningモデルは見つかりませんでした。 |
qwen-image-edit-2511 | fal-ai/qwen-image-edit-2511 | qwen/qwen-image-edit-2511 | wavespeed-ai/qwen-image/edit-2511 | 同じオープンウェイトです。 |
qwen-image-edit-2511-lightning | fal-ai/qwen-image-edit-2511/lora | なし | なし | 当サービスの4ステップのLightningティア。falは/loraエンドポイントでLoRAとして実行しています。ReplicateとWaveSpeedには、すぐに使えるLightningモデルは見つかりませんでした。 |
- AIエージェント向け
- AIエージェント向けのテキスト:入力、指定できる値、設定ごとの価格、リクエスト例
seedance-2.0-fastseedance-2.0-miniqwen-image-2512-lightningqwen-image-2512qwen-image-edit-2511-lightningqwen-image-edit-2511
Seedance 2.0を フィールド ごとに
falにあるフィールドは、当サービスもfalの名前に合わせています。異なる点は備考に記載しています。フィールドはJSONボディの最上位に置きます。Replicateではinputで包みます。
| 当サービス | fal | Replicate | WaveSpeed | 備考 |
|---|---|---|---|---|
model | URL内 | URL内 | URL内 | ボディに1つのIDで、テキスト、開始フレーム、参照画像に対応します。各社のIDはURLに入ります。 |
prompt | prompt | prompt | prompt | 同じテキストをそのまま使えます。 |
duration | duration | duration | duration | 整数で4〜15、デフォルトは5。falは文字列で送り、autoも選べます。Replicateは自動に-1を使います。当サービスには自動の長さはありません。 |
resolution | resolution | resolution | resolution | 480pまたは720p、デフォルトは720p。WaveSpeedは1080pと4kも掲載しています。当サービスでは、より高い解像度は別のステップのenhanceで行います。 |
aspect_ratio | aspect_ratio | aspect_ratio | aspect_ratio | 16:9、9:16、1:1のいずれかで、デフォルトは16:9。auto、adaptive、4:3、3:4、21:9はありません。 |
generate_audio | generate_audio | generate_audio | generate_audio | 意味は同じで、デフォルトはオン。オンでもオフでも価格は同じです。 |
image_url | image_url | image | image | 開始フレーム。falと同じ名前で、ReplicateとWaveSpeedではimageです。参照画像とは併用できません。 |
reference_image_urls | image_urls | reference_images | reference_images | 最大9枚の画像で、プロンプトでは@image1、@image2と参照します。falとは異なり、falではimage_urlsです。 |
seed | なし | seed | なし | 受け付けますが使いません:Seedance 2.0はシードを受け取りません。falとWaveSpeedにはシードの項目がありません。 |
quote_id | なし | なし | なし | 新規:quote_idとmax_creditsのどちらか一方だけを送ります。ジョブの費用がこれを超えることはありません。 |
max_credits | なし | なし | なし | 新規:quote_idとmax_creditsのどちらか一方だけを送ります。ジョブの費用がこれを超えることはありません。 |
webhook_url | fal_webhookクエリ文字列 | webhook | standard_webhookクエリ文字列 | ボディに入れます。falとは異なります(falはクエリ文字列でfal_webhookを受け取ります)。 |
end_user_id | end_user_id | なし | なし | falと同じ名前です。承認済みの開発者アカウント向け(申請制):ご自身のユーザーIDで、使用状況に表示されます。 |
project_id | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
shot_id | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
routing_preference | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
enhance | なし | なし | なし | 当サービスのみ、任意:レンダリング後のAIアップスケールで、AI Enhancedと表示されます。 |
Idempotency-Keyヘッダー | なし | なし | なし | 新規・必須:24時間以内に同じキーを送ると、同じジョブが返されます。 |
当サービスに対応するものがない、各社のSeedanceフィールド。そのまま送ると、不明なフィールドとして拒否されます(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を フィールド ごとに
当サービスの画像のボディは各社より小さくなっています:自由なピクセル数ではなくサイズとアスペクト比、1ジョブにつき1枚、サンプラーの設定はありません。
| 当サービス | fal | Replicate | WaveSpeed | 備考 |
|---|---|---|---|---|
model | URL内 | URL内 | URL内 | ボディに4つのID:Image MiniとImage Fastに、それぞれ生成用と編集用があります。 |
prompt | prompt | prompt | prompt | 同じテキストをそのまま使えます。 |
size | image_size | なし | size | 1Kまたは2K、デフォルトは1K。アスペクト比と組み合わせて固定サイズが決まり、1辺は最大2048 pxです。幅と高さを自由に指定することはできません。 |
aspect_ratio | image_size | aspect_ratio | size | 16:9、9:16、1:1のいずれかで、デフォルトは1:1。価格は変わりません。 |
image_url | image_urls | image | images | 編集モデルのみ:元画像をちょうど1枚、URLで渡します。各社はリストで受け取ります。 |
seed | seed | seed | seed | 意味は同じです。 |
quote_id | なし | なし | なし | 新規:quote_idとmax_creditsのどちらか一方だけを送ります。ジョブの費用がこれを超えることはありません。 |
max_credits | なし | なし | なし | 新規:quote_idとmax_creditsのどちらか一方だけを送ります。ジョブの費用がこれを超えることはありません。 |
webhook_url | fal_webhookクエリ文字列 | webhook | standard_webhookクエリ文字列 | ボディに入れます。falとは異なります(falはクエリ文字列でfal_webhookを受け取ります)。 |
end_user_id | なし | なし | なし | 当サービスのみ、任意、承認済みの開発者アカウント向け(申請制):ご自身のユーザーIDで、使用状況に表示されます。 |
project_id | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
shot_id | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
routing_preference | なし | なし | なし | 当サービスのみ、任意:プロジェクトと仕入れ先のルーティング。 |
Idempotency-Keyヘッダー | なし | なし | なし | 新規・必須:24時間以内に同じキーを送ると、同じジョブが返されます。 |
当サービスに対応するものがない、各社のQwen-Imageフィールド。そのまま送ると、不明なフィールドとして拒否されます(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
非同期 ジョブと Webhook
4つのサービスはいずれも、ジョブをバックグラウンドで実行します。各サービスでのステップの呼び方:
| ステップ | Pershot | fal | Replicate | WaveSpeed |
|---|---|---|---|---|
| 作成 | POST /v1/videos/generationsPOST /v1/images/generations202 → { id: "job_…" } | POST https://queue.fal.run/<endpoint id>→ request_id, status_url, response_url | POST /v1/models/{owner}/{name}/predictions{ "input": { … } } | POST /api/v3/<model id>→ data.id |
| ポーリング | GET /v1/jobs/{id} | GET status_urlGET response_url | GET /v1/predictions/{id} | GET /api/v3/predictions/{id}/result |
| ステータス | queuedprocessingsucceededfailedcancelledunknown | IN_QUEUEIN_PROGRESSCOMPLETED | startingprocessingsucceededfailedcanceled | createdcompletedfailedcancelledtimeoutdeleted |
| Webhook | webhook_url (body) | ?fal_webhook=… | webhook (body)webhook_events_filter | ?standard_webhook=…?webhook=… (legacy) |
| 署名 | X-Signature: t=…,v1=…HMAC-SHA256, whsec_…X-Event-Id | X-Fal-Webhook-SignatureED25519, JWKS | webhook-idwebhook-timestampwebhook-signature | webhook-idwebhook-timestampwebhook-signature |
| 配信の再試行 | 1 min、5 min、30 min、2 h、6 hの後。10秒以内に2xxが返れば配信済みとみなします。 | 保存された結果の期限が切れるまで、最大31回再試行。 | 再試行される場合があります:重複に対応してください。 | 最大3回再試行。 |
| 出力ファイル | 署名付きリンクは24時間有効で、ジョブを再度取得すると新しいリンクが得られます。ファイルは12か月間保持されます。 | メディアの有効期限の設定に従います。 | APIで作成したpredictionの出力は、1時間後に削除されます。 | 最大7日間保持。 |
| 1回の呼び出しで待つ | なし:すべてのジョブは非同期です。MCPでは、wait_for_jobが最大60秒待ちます。 | POST https://fal.run/<endpoint id> | Prefer: wait=n | enable_sync_mode |
当サービスのWebhookのボディはジョブそのもので、署名も当サービス独自のものです:各社のWebhookを検証するコードでは、当サービスのWebhookは拒否されます。 当サービスのWebhookの検証方法
べき 等性
すべての生成リクエストにIdempotency-Keyヘッダー(表示可能なASCII文字で1〜255文字)が必要です。24時間以内に同じキーを送るとHTTP 200で同じジョブが返されるため、タイムアウト後に再試行しても、2つ目のジョブが作成されたり課金されたりすることはありません。
2026-10-22時点で、3社ともジョブ作成用のべき等キーをドキュメントに記載していません:falはrequest_idでWebhookの重複を排除するよう勧めており、WaveSpeedは1回だけ送信し、再送信の前にタスクを探すよう求めています。ジョブごとに1つのキーを決め、再試行のたびに同じキーを使ってください。
互換性の ない 点
次のものは、そのまま送ると失敗するか拒否されます:
- 各社のクライアントライブラリ(fal_client、replicate、wavespeed)は/v1を呼び出しません。通常のHTTP、OpenAPIドキュメント、またはMCPサーバーを使ってください。
- 各社のレスポンスの形:当サービスのジョブは
outputs[].urlを持つJobで、falのresult、Replicateのprediction、WaveSpeedのdataラッパーではありません。 - 終了フレーム:falの
end_image_url、Replicateのlast_frame_image、WaveSpeedのlast_image。 - 参照動画と参照音声:falの
video_urlsとaudio_urls、ReplicateとWaveSpeedのreference_videosとreference_audios。 - 自動の長さや自動のアスペクト比、4:3、3:4、21:9のアスペクト比、1080pや4Kでのレンダリング。当サービスでは、より高い解像度は別のステップ
enhanceで行い、AI Enhancedと表示されます。 - 開始フレームと参照画像の併用。Replicateでもこの組み合わせは拒否されます。
- 1回の呼び出しで結果を待つこと(fal.run、Replicateの
Prefer: wait、WaveSpeedのenable_sync_mode):当サービスのジョブはすべて非同期です。 - 1ジョブで複数の画像、PNGやWebPでの出力、幅と高さの自由な指定、編集での複数の元画像、LoRA、サンプラーの設定。
- 各社のWebhook検証:当サービスの配信には
X-Signatureが付きます。これはwhsec_シークレットによるHMAC-SHA256で、falのED25519署名やwebhook-signatureヘッダーではありません。 - 後払い:クレジットは前払いで、すべてのジョブに上限があり、
max_creditsを超えるジョブは拒否され、課金されません。 - 長期間有効な出力リンク:当サービスのリンクは24時間有効です。ジョブを再度取得すると新しいリンクが得られます。
移行前と 移行後
開始フレーム付きの同じSeedance 2.0 Fastリクエストを、各プラットフォームのドキュメントどおりに示し、続いて/v1での書き方を示します。価格の上限は当サービスの料金エンジンから算出しています。
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
}'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
}'当サービスの 価格
当サービスのジョブはすべて、実行前にクレジットで見積もられ(US$1 = 100クレジット)、見積もりやmax_creditsを超えることはありません。
fal、Replicate、WaveSpeedの料金は各社のページに掲載されています。当サービスの価格比較ページでは、各社が公表しているSeedance 2.0の価格を、それぞれ取得した日付とともに掲載しています。
| モデル | 480p、1秒あたり | 720p、1秒あたり |
|---|---|---|
Seedance 2.0 Fastseedance-2.0-fast | $0.031 | $0.067 |
Seedance 2.0 Miniseedance-2.0-mini | $0.020 | $0.042 |
| モデル | 1K、1枚あたり | 2K、1枚あたり |
|---|---|---|
Qwen-Image-2512 · Lightning 4-stepqwen-image-2512-lightning | 1 cr | 3 cr |
Qwen-Image-2512qwen-image-2512 | 2 cr | 6 cr |
Qwen-Image-Edit-2511 · Lightningqwen-image-edit-2511-lightning | 2 cr | 4 cr |
Qwen-Image-Edit-2511qwen-image-edit-2511 | 3 cr | 10 cr |
出典
各社のフィールド名と動作は、2026-10-22時点の公開ページの内容に基づいています。切り替える前に各社のドキュメントを確認してください:
- fal
- fal.ai/models/bytedance/seedance-2.0/fast/text-to-video/llms.txtfal.ai/models/bytedance/seedance-2.0/fast/image-to-video/llms.txtfal.ai/models/bytedance/seedance-2.0/fast/reference-to-video/llms.txtfal.ai/models/fal-ai/qwen-image-2512/llms.txtfal.ai/models/fal-ai/qwen-image-edit-2511/llms.txtfal.ai/docs/model-apis/model-endpoints/queuefal.ai/docs/model-apis/model-endpoints/webhooks
- Replicate
- replicate.com/bytedance/seedance-2.0-fast/llms.txtreplicate.com/qwen/qwen-image-2512/llms.txtreplicate.com/qwen/qwen-image-edit-2511/llms.txtreplicate.com/docs/reference/httpreplicate.com/docs/topics/webhooks/verify-webhook
- WaveSpeed
- wavespeed.ai/models/bytedance/seedance-2.0-fast/text-to-videowavespeed.ai/models/bytedance/seedance-2.0-fast/image-to-videowavespeed.ai/models/wavespeed-ai/qwen-image/text-to-image-2512wavespeed.ai/models/wavespeed-ai/qwen-image/edit-2511wavespeed.ai/docs/submit-taskwavespeed.ai/docs/how-to-use-webhookswavespeed.ai/docs/verify-webhookswavespeed.ai/docs/data-retention-policy