文生视频、图生视频、参考生视频都在这一页。同一个能力的接口是
POST ,代码怎么调见帮助文档。
本页用你当前的登录会话,不用填 Key。
dolly in、crane shot、whip pan 这类行话,
模型对它们的理解很不稳定。改成方向 + 幅度 + 速度:
camera moves forward slowly, about half a meter。<d>[Chinese] 好久不见。</d>——
方括号里写语种,台词本身该是中文就写中文。标签外的部分照旧用英文。rewrite_prompt:true,由本地模型先把你这段按上面的规则重写一遍再送去渲染。
改写本身也要过一遍模型,会另外记一点 token。steps 只能 20–60。20 是硬下限,而且低于 20 的坑很阴——
画面看着正常,音轨是坏的,所以本页会直接夹回 20。
resolution 出的是方形,边长最大 992(1024 会被 400 拒,
因为 1024² 超了像素预算 1,032,192)。想要更大的画面不能等比放大,只能横竖着摆:
产物只留 7 天。列表来自 GET /v1/video/jobs,点「播放」就地看,点「下载」存到本地。
页面上能做的,接口都能做。三段式:提交拿 job_id,轮询等 done,
再取内容下 mp4。别在 done 之前去拉 content,会返 409。
# 1) 提交,立刻返回 job_id 和这一单的报价 price
curl /v1/video/generations \
-H "Authorization: Bearer 你的Key" \
-H "Content-Type: application/json" \
-d '{"prompt":"A fisherman mends a net at dawn ...",
"task":"t2v","duration":5.0,"resolution":768,"steps":20}'
# 2) 轮询。5~10 秒一次就够,别更密
curl -H "Authorization: Bearer 你的Key" \
/v1/video/jobs/$JOB_ID
# 3) status 变成 done 之后取 mp4
curl -H "Authorization: Bearer 你的Key" -o out.mp4 \
/v1/video/jobs/$JOB_ID/content
# 参考图/视频先上传(≤64MB),拿到的 ref 填进上面的 first_frame / ref_image 等字段
curl -H "Authorization: Bearer 你的Key" \
-F "file=@ref.png" -F "task=i2v" \
/v1/video/uploads
# 提交错了想撤:DELETE。不退费,但能把卡让给下一个人
curl -X DELETE -H "Authorization: Bearer 你的Key" \
/v1/video/jobs/$JOB_ID
| 字段 | 取值 | 说明 |
|---|---|---|
prompt | 字符串,≤ 20000 字符 | 必填。写法见上面那段折叠提示 |
task | t2v / i2v / r2v | 默认 t2v。选了 i2v / r2v 就必须给对应的媒体字段 |
duration | 秒,浮点 | 默认 5.0。帧数只能取 17k+5 @24fps,所以会向上吸附——填 5.0 实际是 124 帧 / 5.17 秒。时长翻倍,耗时和报价都不止翻倍 |
resolution | 方形边长,≤ 992 | 默认 768。1024 会被 400 拒(1024² 超像素预算)。和 width/height 二选一 |
width / height | 像素,乘积 ≤ 1,032,192 | 要横幅/竖幅时用,会覆盖 resolution。横 1344×768、竖 768×1344 |
steps | 整数,20 – 60 | 默认 20,也是硬下限。低于 20 时画面正常但音轨会坏 |
seed | 整数 | 不给就随机。响应里会带回实际用的 seed,想复现就记下来 |
first_frame / last_frame | upload 返回的 ref | i2v 用,至少给一个 |
ref_image / ref_image_2 / ref_video | upload 返回的 ref | r2v 用,图和视频至少给一个 |
ref_video_audio | true / false | r2v;true 时沿用参考视频的音轨 |
ref_image_size | match / max | r2v;默认 match,跟随参考图尺寸 |
rewrite_prompt | true / false | true 时先由本地模型按写法规则重写一遍 prompt,另计 token。真的改写了的话,响应 danlu.prompt_rewritten 里会同时给 original 和 used 两份——不会悄悄改你的输入,本页也会把对比显示出来 |
400 unknown field(s): … 并列出全部可接受字段——
这是故意的,静默套默认值是最难发现的一类失败。像素预算之类的边界由上游判,
它的 400 会点名超了哪条、边界是多少,网关原样透出来。price 里,按
60 × own_eta_s 算——也就是按机器实际要占多久收,和出片好不好无关,
失败重试也要重新排一次。本页在你改参数时就先本地估一个数给你看,但真正扣的是服务端返回的 price。
用量随时在我的面板里看。
错误码沿用全站那一套:400 参数不对或有未知字段、401 没登录、
404 任务不存在——别人的任务也返 404(返 403 等于承认这个 id 存在)、
409 还没生成完就去取 content、410 成品过期已清、
413 上传超过 64MB、429 并发(1 个)或 24 小时上限(10 个)到顶、
502 视频后端没响应、503 视频功能未启用。