从 fal、Replicate或 WaveSpeed 迁移过来
把 Seedance 2.0 和 Qwen-Image 的调用迁到 /v1:认证、型号 ID、每个字段、异步任务和回调,以及不能直接沿用的部分。
不只是换个接口地址
三家都一样,只换接口地址和 Key 是不够的。每个请求还要做这些改动:
- Key:
Authorization: Bearer,Key 以sk_test_或sk_live_开头。 - 型号 ID 放在请求体的
model里,文字、首帧和参考图共用一个 ID。 - 每个生成请求都带
Idempotency-Key请求头。 - 价格上限:
max_credits,或POST /v1/quotes返回的quote_id。 - 结果是一个任务:轮询
GET /v1/jobs/{id},或接收本站带签名的回调。
- 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}读取。
认证
请求发到哪里,怎么认证。
| 平台 | 接口地址 | 认证请求头 |
|---|---|---|
| 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 Keys 页面申请。Key 只显示一次。开发者 API Key 花的是开发者 API 余额,同一个 Key 也可以作为 Bearer 请求头用在 MCP 服务上。
型号 ID
三家的 ID 写在 URL 里;本站的写在请求体的 model 里。本站一个 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 | 文字、首帧和参考图共用一个 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 | 文字、首帧和参考图共用一个 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 里 | 请求体里一个 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 逐个字段对照
本站的图片请求体比三家的精简:用尺寸和画幅代替自由设定的像素,一个任务一张图,没有采样器设置。
| 本站 | fal | Replicate | WaveSpeed | 说明 |
|---|---|---|---|---|
model | 在 URL 里 | 在 URL 里 | 在 URL 里 | 请求体里四个 ID:Image Mini 和 Image Fast,各有出图和改图两个。 |
prompt | prompt | prompt | prompt | 同样的文字直接沿用。 |
size | image_size | 无 | size | 1K 或 2K,默认 1K。和画幅一起决定固定尺寸,每边最多 2048 像素。不能自由设定宽高。 |
aspect_ratio | image_size | aspect_ratio | size | 16:9、9:16 或 1:1,默认 1:1。不影响价格。 |
image_url | image_urls | image | images | 仅限改图模型:必须是一张原图,以 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
异步任务和回调
四家都在后台运行任务。各家对每一步的叫法:
| 步骤 | 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_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 分钟、5 分钟、30 分钟、2 小时和 6 小时后重试。10 秒内返回 2xx 即算送达。 | 最多重试 31 次,直到保存的结果过期。 | 可能会重试:要处理重复投递。 | 最多重试 3 次。 |
| 输出文件 | 签名链接 24 小时有效;重新读取任务即可拿到新链接。文件保留 12 个月。 | 按你的媒体过期设置处理。 | 通过 API 创建的预测,输出一小时后删除。 | 最多保留 7 天。 |
| 一次调用等结果 | 没有:每个任务都是异步的。通过 MCP 时,wait_for_job 最多等 60 秒。 | POST https://fal.run/<endpoint id> | Prefer: wait=n | enable_sync_mode |
本站的回调内容就是任务本身,签名也是本站自己的:校验三家回调的代码会拒绝本站的回调。 怎么校验本站的回调
幂等
每个生成请求都要带 Idempotency-Key 请求头,1 至 255 个可见 ASCII 字符。24 小时内用同一个键,返回同一个任务和 HTTP 200,所以超时后重试不会多建任务,也不会多扣费。
截至 2026-10-22,三家的文档都没有为创建任务提供幂等键:fal 建议按 request_id 给回调去重,WaveSpeed 要求只提交一次,重新提交前先查找任务。每个任务给一个键,每次重试都沿用它。
不兼容的部分
以下内容原样发送,在本站会失败或被拒绝:
- 三家的客户端库(fal_client、replicate、wavespeed)不会调用 /v1。请用普通 HTTP、OpenAPI 文档或 MCP 服务。
- 三家的返回结构:本站的任务是带
outputs[].url的 Job,不是 fal 的结果、Replicate 的预测,也不是 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 也拒绝这种组合。
- 一次调用等待结果(fal.run、Replicate 的
Prefer: wait、WaveSpeed 的enable_sync_mode):本站每个任务都是异步的。 - 一个任务多张图、PNG 或 WebP 输出、自由设定宽高、改图时用多张原图、LoRA 和采样器设置。
- 三家的回调校验方式:本站的投递带
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
}'本站自己的价格
本站每个任务执行前先用积分报价(1 美元 = 100 积分),花费不会超过报价或 max_credits。
fal、Replicate 和 WaveSpeed 的收费见它们自己的页面。本站的比价页列出了它们公布的 Seedance 2.0 价格,每个都注明了读取日期。
| 型号 | 480p,每秒 | 720p,每秒 |
|---|---|---|
Seedance 2.0 Fastseedance-2.0-fast | $0.031 | $0.067 |
Seedance 2.0 Miniseedance-2.0-mini | $0.020 | $0.042 |
| 型号 | 1K,每张 | 2K,每张 |
|---|---|---|
Qwen-Image-2512 · Lightning 4-stepqwen-image-2512-lightning | 1 积分 | 3 积分 |
Qwen-Image-2512qwen-image-2512 | 2 积分 | 6 积分 |
Qwen-Image-Edit-2511 · Lightningqwen-image-edit-2511-lightning | 2 积分 | 4 积分 |
Qwen-Image-Edit-2511qwen-image-edit-2511 | 3 积分 | 10 积分 |
出处
三家的字段名和行为,以它们公开页面在 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