JoyAI-Echo 提示词经验与模型问题总结
本文记录长时间测试 JoyAI-Echo 后形成的提示词经验、常见问题和实际结论。重点是:哪些场景稳、哪些场景不稳、怎样写更容易出好结果,以及哪些问题不要指望靠提示词彻底解决。
1. 总体结论
JoyAI-Echo 更适合:
- 风景空镜
- 产品特写
- 美食特写
- 慢到中速人物动作
- 稳定构图的单人/双人镜头
- 电影感氛围片
- 有明确视觉锚点的多镜头故事
不太适合:
- 快速奔跑、格斗、群体混战
- 大量人群复杂互动
- 清晰可读的中文文字/字幕/广告牌
- 快速镜头切换中的精确物理动作
- 长时间单镜头内发生太复杂的时代/场景变化
- 需要 100% 正确口型同步的长中文台词
2. 中文提示词能不能用
可以用中文。Gemma-3 文本编码器具备多语言理解能力,中文场景描述能被识别。
但实践经验是:
| 维度 | 中文提示词 | 英文提示词 |
|---|---|---|
| 基本画面理解 | 可用 | 更稳 |
| 镜头语言 | 略弱 | 更准确 |
| 光影/摄影术语 | 略弱 | 更准确 |
| 中文台词 | 必须中文 | 不适用 |
| 文字乱码问题 | 一样存在 | 一样存在 |
实际建议:
- 给普通用户:中文提示词可接受。
- 给高质量生产:中英混写或英文更稳。
- 台词内容:可以用中文。
- 摄影术语:可保留英文,例如
locked-off shot,tracking shot,shallow depth of field。
3. 最稳定的提示词结构
推荐每个 shot 包含这些信息:
主体是什么
场景在哪里
动作发生顺序
镜头如何拍
光线和色调
背景元素
声音设计
不要塞过多抽象概念
示例:
{
"prompt": "一个锁定不动的电影感广角镜头,清晨的上海街道从晴朗天气突然转入暴雨。开场天空湛蓝,阳光照在湿润的柏油路上;几秒内乌云从远处迅速压来,树叶被强风吹动,雨点密集砸下,路面积水反光。镜头固定不动,地平线水平,画面中只有街道、树木、车辆远景和雨幕。声音是风声、雷声、雨声和远处车流声。",
"seconds": 6,
"aspect": "landscape"
}
4. 节奏慢的问题
4.1 为什么会慢
扩散视频模型天然倾向于慢动作,因为慢变化更容易保持时序一致性。
常见导致慢的词:
- 缓慢
- 慢慢
- 逐渐
- 缓缓
- gentle
- slowly
- drifting
- lingering
- calm
- low and sustained
如果 prompt 写了大量这类词,模型会真的生成慢镜头。
4.2 怎么让节奏更快
使用这些词:
- 迅速
- 几秒内
- 突然
- 爆发性
- 紧凑
- 快步
- 干脆
- rapidly
- within seconds
- brisk
- decisive
- energetic
- fast tracking shot
更重要的是:缩短 shot 时长。
推荐:
| 场景 | seconds |
|---|---|
| 快节奏动作 | 4–6 秒 |
| 普通镜头 | 6–8 秒 |
| 口播/对白 | 6–10 秒 |
| 大景氛围 | 7–10 秒 |
如果一个动作只需要 3 秒,却给了 10 秒,模型会把动作摊平,结果看起来慢。
5. 字幕乱码与中文字符问题
5.1 结论
JoyAI-Echo 很难稳定生成正确中文字符。广告牌、字幕、店招、报纸、屏幕文字经常会变成伪汉字或乱码。
这是模型层面限制,不是单纯 prompt 写法问题。
5.2 为什么会乱码
原因包括:
- 视频 VAE 压缩会把汉字笔画当作高频纹理。
- 文本编码器理解语义,不会把具体字形传给生成模型。
- 训练视频中的文字通常本来就是模糊、远景或运动状态。
- 视频模型没有专门的字体渲染能力。
5.3 为什么反字幕提示词会有副作用
曾经尝试过自动追加:
no text, no Chinese characters, no subtitles, no signs
结果发现有明显副作用:模型可能因为看到 text / Chinese / subtitles 这些 token,反而激活文字形态,导致伪字幕更严重。
这就是扩散模型常见的“白熊效应”:你越说不要某个东西,模型越可能注意到它。
因此最终决定:
服务端不再自动追加任何无字幕/无文字提示词。
5.4 更可靠的做法
做法 A:避免文字场景
不要写:
街道两侧有中文招牌、店铺牌匾、广告牌
改成:
街道两侧是纯色木质门面、抽象彩色灯带、空白发光面板
做法 B:把文字区域换成材质
例如历史街景:
所有灯笼、门面、布幡都是纯色表面和自然材质,不承担可读信息。
注意不要反复堆叠“无文字/无汉字”这类否定。
做法 C:后期叠加文字
如果业务上必须要正确中文,最稳方案是:
- 让模型生成空白招牌或纯色面板。
- 后期用 FFmpeg / AE / PS 叠加真实文字。
示例:
ffmpeg -i input.mp4 -vf "drawtext=fontfile='C:/Windows/Fonts/msyh.ttc':text='京东超市':fontsize=72:fontcolor=white:x=(w-text_w)/2:y=120" -c:a copy output.mp4
做法 D:裁底
如果模型稳定在底部生成伪字幕条,可以后期裁掉底部 8–12%。这比提示词硬控更可靠。
6. 广告牌能不能生成正确中文
基本不能稳定做到。
偶尔可能出现简单单字,例如:
- 茶
- 酒
- 福
- 面
但多字组合如“京东超市”“唐宋变迁”“欢迎光临”基本不可靠。
如果必须有正确文字:后期叠加。
如果只是氛围:
- 用远景。
- 用虚化。
- 用英文短词,如
CAFE,SHOP,TEA。 - 用抽象符号、色块、灯带替代。
7. 人物一致性
跨镜头人物一致性依赖 Memory Bank 和固定 ID 描述。
如果同一人物多镜头出现,建议:
ID_A 是一位二十多岁的中国女性,肩长黑发,五官清秀,身材修长。
ID_A 穿浅米色风衣、白色 T 恤、深蓝色牛仔裤、白色帆布鞋。
ID_A 的声音是清亮温柔的年轻女声,语速自然。
这些基础句在每个镜头里尽量保持一致。
变化部分单独写:
她的表情从惊讶转为放松。
她的风衣被雨水打湿。
不要把基础身份描述每次改写,否则容易变脸。
8. 人物数量建议
| 人数 | 稳定性 |
|---|---|
| 0 人 | 最稳 |
| 1 人 | 稳 |
| 2 人 | 可用 |
| 3+ 人 | 容易乱 |
| 大人群 | 高风险 |
如果要表现大时代、城市群像、校园放学,建议:
- 主体最多 1–2 个清晰人物。
- 其他人写成远处虚化剪影。
- 不要要求每个人都有精确动作。
9. 动作复杂度
模型不擅长快速复杂运动。
高风险:
- 狂奔
- 打斗
- 马战
- 人群奔跑
- 跳跃翻滚
- 多人交互
可替代写法:
| 高风险写法 | 更稳写法 |
|---|---|
| 狂奔 | 快步小跑几步 |
| 激烈打斗 | 两人迅速错身而过,衣摆被风掀起 |
| 战场厮杀 | 远处烟尘、旗帜、火光和残破城门 |
| 人群冲散 | 远处虚化人群快速撑伞穿过雨幕 |
10. 纯景物与空镜
纯景物通常比人物更稳,适合:
- 古城
- 雨景
- 山水
- 城市天际线
- 产品广告
- 历史氛围片
但纯景物也容易慢。建议:
- 写清楚环境变化:风、云、雨、光线、雾、叶子、雪。
- 不要只写“镜头缓慢推进”。
- 如果不想镜头乱动,写“锁定机位、三脚架固定、无变焦”。
11. 历史变迁题材经验
“唐朝到宋朝的历史变迁”这类抽象题材很难在一个镜头里完全准确表现。
更稳的方式:
方式 A:多 shot 分时代
shot1 盛唐都城
shot2 战乱烟尘
shot3 宋代水乡
shot4 文人书房
优点:每个镜头目标明确。
方式 B:同一地点时光飞逝
同一条古城中轴线,建筑、季节、光线快速变化。
优点:视觉统一,但模型可能只理解一部分时代变化。
方式 C:小人物见证历史
用一位史官、茶人或老者作为锚点。人物一致性更好,叙事更清楚,但人物生成风险增加。
12. 音频经验
JoyAI-Echo 是音视频联合生成,背景噪音有时会比较大。
由于服务端已不再自动追加音频提示,建议在 prompt 里自己写清楚:
声音只有雨声、风声和远处车流声,没有音乐,没有人声。
或口播场景:
声音焦点是说话者清晰的人声,背景保持安静。
注意不要自相矛盾,例如同一个 prompt 里同时写:
有轻柔背景音乐
完全静音
模型会混乱。
13. 推荐测试顺序
为了判断系统是否稳定,建议按从易到难测试:
- 产品特写
- 美食特写
- 猫咪/动物日常
- 风景空镜
- 单人人物动作
- 口播
- 汽车/高速运动
- 历史变迁/复杂叙事
项目里已有测试样例:
prompts/test_samples/
14. 最重要的实践原则
- 不要指望提示词 100% 解决模型结构性问题。
- 服务端不要偷偷改 prompt。
- 把复杂视频拆成多个 shot。
- 每个 shot 控制在 5–8 秒更稳。
- 画面里必须正确的文字,交给后期。
- 多用正向描述,少用否定堆叠。
- 同一角色跨镜头时,身份/服装/声音描述保持一致。
- 用 seed 多次抽卡,记录好成功 seed。