Prompt 扩展:让 Wan2.2 的视频细节更丰富
为什么要扩展 prompt
Wan2.2 官方强烈建议开启 prompt 扩展。原始 prompt 通常比较短、比较概括,扩展会自动补充场景细节、光照、镜头语言等,让生成出来的视频画面更丰富、动作更连贯。
方式一:DashScope 云端 API(推荐)
这是最简单的方式,依赖阿里通义千问大模型的文本理解能力。
先去阿里云百炼控制台申请 DashScope API Key,然后设置环境变量:
set DASH_API_KEY=你的_key
如果是阿里云国际站用户,还需要设置:
set DASH_API_URL=https://dashscope-intl.aliyuncs.com/api/v1
然后在推理命令里加上 --use_prompt_extend 和扩展方法:
torchrun --nproc_per_node=8 generate.py \
--task t2v-A14B \
--size 1280*720 \
--ckpt_dir ./Wan2.2-T2V-A14B \
--dit_fsdp --t5_fsdp --ulysses_size 8 \
--prompt "两只穿拳击服的猫在舞台上打架" \
--use_prompt_extend \
--prompt_extend_method dashscope \
--prompt_extend_target_lang zh
默认会用 qwen-plus 模型做文本扩展。如果是图生视频任务,会用 qwen-vl-max。可以通过 --prompt_extend_model 替换扩展模型。
方式二:本地 Qwen 模型(不联网)
如果你不想用云端 API,也可以下载 Qwen 系列模型在本地做扩展。支持的本地模型:
- 文本扩展:Qwen/Qwen2.5-14B-Instruct、7B-Instruct、3B-Instruct
- 图文扩展(图生视频):Qwen/Qwen2.5-VL-7B-Instruct、3B-Instruct
本地模型放在 GPU 上跑,显存消耗额外增加。大模型扩展效果更好,但显存占用更大,需要自己权衡。
命令示例:
torchrun --nproc_per_node=8 generate.py \
--task t2v-A14B \
--size 1280*720 \
--ckpt_dir ./Wan2.2-T2V-A14B \
--dit_fsdp --t5_fsdp --ulysses_size 8 \
--prompt "两只穿拳击服的猫在舞台上打架" \
--use_prompt_extend \
--prompt_extend_method local_qwen \
--prompt_extend_target_lang zh \
--prompt_extend_model Qwen/Qwen2.5-7B-Instruct
--prompt_extend_model 可以写 HuggingFace 仓库名,也可以写本地模型路径。
实际效果对比
扩展后的 prompt 通常会变成这样:
| 原始 prompt | 扩展后 |
|---|---|
| "两只猫在打架" | "两只拟人化的猫穿着舒适的拳击服和亮色手套,在聚光灯照射的舞台上激烈地扭打。拳击手套相互碰撞发出砰砰声,毛发在空气中飞散。背景是暗红的拳击场围栏和热情的观众..." |
扩展对视频的细节丰富度和动作连贯性都有提升,建议默认开启。
注意事项
- prompt 扩展会增加一点额外推理时间(几秒到几十秒,取决于模型)
- DashScope 方式有免费额度,超出后按量计费
- 本地方式下载 Qwen 模型需要额外磁盘空间(7B 约 15GB,14B 约 28GB)