搜「h3图生视频提示词怎么写」的人,多数不是不知道提示词结构,而是已经写了一版、出片不对,想知道问题出在提示词还是参数上。先给判断:在图生视频里,提示词负责“动什么、怎么动、镜头怎么走”,首帧图决定主体长相和构图。首帧里没有的东西写进提示词,常见结果是元素被硬塞进去,或被直接忽略;首帧里已有的东西反复描述,反而容易让模型把主体重画一遍。所以写提示词之前,先确认版本、权限和入口,比反复替换形容词有用。
h3图生视频的提示词建议按“主体、动作、镜头、约束”四段写:句子短,一段只放一个动作,画面里已有的对象不重复描写。动手前先确认三件事:模型版本,看页面版本下拉框或请求体里的 model 字段;账号权限,看控制台的能力或额度页;入口位置,确认页面或接口是图生视频而不是文生视频。提示词能控制的是动作、镜头和风格,主体长相与构图主要由首帧图决定,这两部分不要指望用文字强行改动。
h3图生视频提示词之前先确认这三件事
这三个前提缺一个,后面提示词怎么改都像在猜。
一、模型版本。h3 可能是多个版本或子型号,不同版本对镜头类词(推、拉、环绕)和时长上限的支持不一样。网页端一般看生成页顶部的版本下拉框或模型名称字段;接口侧看请求体里的 model 字段,以及返回结果里回显的模型名。自建服务或命令行环境可以先列一遍可用模型:
curl -s "$BASE/models" -H "Authorization: Bearer $KEY" | jq -r '.data[].id'
把 $BASE 和 $KEY 换成你环境里的地址和密钥,看输出里 h3 相关条目有几个、完整名字是什么。写请求时直接用列出来的完整名字,不要自己简写成 h3。
二、权限。图生视频通常是单独开的能力,账号能跑文生视频不代表能用图生视频。控制台里找“用量”“额度”或“能力”这一栏,看有没有图生视频的开关和剩余额度;接口侧最直接的判断是返回 403 或 permission denied 一类信息。
三、入口位置。网页端要确认进的是“图生视频”标签页,页面里必须有上传首帧图的框;只有提示词输入框、没有图片上传位,那是文生视频入口。接口侧看路径是否是 image-to-video 一类,请求体里是否有 image 字段。
h3图生视频提示词:最短可用路径
按顺序做五步,每步只看一个结果。

- 确认首帧图尺寸。用
python3 -c "from PIL import Image;im=Image.open('assets/coffee-first.png');print(im.size)",该看到例如 (1280, 720),与你打算填的分辨率一致。 - 把提示词写成文件。在 prompts/coffee-cup.txt 里按四段写,该看到的是四行、每行一个方面,没有形容词堆叠。
主体:白色陶瓷咖啡杯,杯口有薄薄一层热气。 动作:热气缓慢上升并轻微飘散,杯身保持静止。 镜头:固定机位,浅景深,暖色侧光从左后方来。 约束:杯子不旋转、不移出桌面,画面不出现人手和文字。 - 发请求。先把请求体存成 payload.json,字段名以你环境里的接口文档为准:
再执行{ "model": "h3", "image": "https://cdn.example.com/coffee-first.png", "prompt": "(把 prompts/coffee-cup.txt 的四段内容合成一段贴进来)", "duration": 5, "resolution": "1280x720", "seed": 20240607 }curl -s -X POST "$BASE/image-to-video" -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d @payload.json | jq -r '.id, .status',该看到一个任务 id 和 queued 或 running 状态。 - 轮询任务。
curl -s "$BASE/tasks/$ID" -H "Authorization: Bearer $KEY" | jq -r '.status, .video_url',该看到 succeeded 和一条视频地址。 - 下载后抽首帧对比。把视频第一帧和原图并排看,主体形状和位置没有明显漂移,才算这段提示词可用。
h3图生视频提示词:一个真实场景的完整做法
场景:一张 1280×720 的 PNG 静物图,木质桌面上放一只白色陶瓷咖啡杯,杯口偏右上入画;目标是给商品详情页顶部出一条 5 秒无声短片,单主体、机位固定。各项配置落在哪里如下。
- 首帧图放在 assets/coffee-first.png,网页端在“首帧图”上传框选它;接口侧对应 image 字段,用可以公网访问的图片地址比传 base64 省事。
- 提示词写在 prompts/coffee-cup.txt,内容就是上面那四段,把手、文字、杯子旋转写进约束段。
- 模型版本:网页端在生成页顶部下拉框选 h3;接口侧 model 填 /models 里列出的完整名字。
- 时长与分辨率:网页端在“时长”和“比例或分辨率”两处选 5 秒、1280×720;接口侧对应 duration 和 resolution。这两项通常是固定枚举,先看参数表再填。
- seed:网页端在“高级设置”里,接口侧是 seed 字段。第一版先固定一个值,后面只改提示词,这样才判断得出是哪一边在起作用。
- 固定镜头:不一定有单独开关,一般靠提示词里写“固定机位”,同时动作段不出现“环绕”“推近”这类词。
出第一条成片后,只改动作段做对比,模型、时长、分辨率、seed 都别动。这样三五个版本内基本能收敛到可用的写法。
h3图生视频提示词:跑不通先查这三处
一、提示词像没生效,画面几乎是静帧。典型表现是任务状态 succeeded,但视频只是轻微抖动。先看 prompts 文件里有没有动词:只写“白色咖啡杯”这种名词堆叠,模型没有可执行的动作。再看动作和首帧构图是否冲突,比如俯拍桌面图却写“镜头环绕一周”。检查位置是提示词文件本身和首帧图;改法是把动作段压到一句话,例如“热气缓慢上升”,跑一次对比。
二、请求直接失败,返回 400 或 invalid parameter。常见原因是 duration、resolution、aspect_ratio 不在允许的枚举里,或 image 传了没带前缀的 base64。响应体里的 error.message 一般会点名哪个字段有问题;对着接口文档的参数表核对 payload.json 里的字段名和取值,注意不同实现里字段叫法会有出入。
三、主体变形,像换了个东西。多半是首帧图分辨率偏低,或主体在画面里占比太小,模型倾向重新画一遍。检查位置是首帧图的元信息(用第一步那条 PIL 命令就能看到宽高),以及提示词里是否描述了首帧中并不存在的元素。这种情况下先换一张更干净、主体占画面比例更大的首帧图,再谈提示词。