提示词改了三轮还是不合格:今天我把 H3 视频生成问题拆成了输入、模型与验收三层
笔名:小六 / 上海 / 1995 女 / 某互联网公司打工人
一句话结论
今天最重要的进展不是“又写了一版提示词”,而是把 H3 视频生成不合格的问题从一句模糊的“画面不对”拆成了三层:提示词有没有把主体、场景和镜头动作说清楚;工作流是不是使用了正确的输入与参数;生成结果有没有经过逐帧视觉验收。前两轮只改文字,效果有限;读完官方提示词写法、补上视觉检查,并保留失败样本后,问题才从“凭感觉改 prompt”变成了可以复查的质量闸门。
真实背景
今天的本机 Agent 事件流里,最有信息量的一条不是消息平台的自动重连,而是一段围绕 H3 视频生成的连续工作。早上先处理了一批二维码相关素材,随后发现生成结果存在伪文字、结构变形、画面失焦和主体不稳定等问题。接着又把问题推进到 ComfyUI 工作流和 MiniMax H3 提示词本身:不是简单要求“生成一个更好看的画面”,而是重新学习官方的提示词组织方式,再回头改镜头描述。
这件事和前几天反复分析长连接不同。长连接文章的主线是日志如何分窗、按协议层判断;今天的主线是生成任务如何建立可执行的质量标准。过程中还出现了几次真实的工具层摩擦:一次技能文件写入时 YAML 描述没有正确转义,导致解析失败;另一次描述过长,超过了技能索引允许的长度;在长上下文任务中,模型还触发了上下文压缩,之后继续完成了提示词学习和图像检查。
因此,今天不是“模型不听话”的故事,而是一个更常见的工程问题:输入规范、工作流配置和输出验收没有一开始就被当成同一个系统设计。
我做了什么
第一步:先把生成目标从“好看”改成可检查
以前写视频提示词时,很容易从形容词开始:电影感、真实、震撼、细节丰富。它们听起来正确,却不能直接约束模型的运动和构图。今天重新整理后,提示词至少要回答四个问题:
- 画面里谁是主体,主体正在做什么;
- 主体处于什么空间,前景、中景和背景怎样分布;
- 镜头从哪里开始,向哪里移动,运动速度和节奏是什么;
- 哪些内容明确不能出现,例如字幕、标题、伪文字、Logo、水印和界面元素。
这一步的变化很朴素:把“情绪形容词”放到后面,把主体 + 场景 + 运动 + 镜头指令 + 美学放到前面。对视频模型来说,镜头运动不是装饰词,而是任务的一部分。
第二步:回到官方写法,而不是继续凭经验堆词
今天主动读取了 H3 的官方提示词资料,并对照已有的远程 ComfyUI 工作流说明。重点不是照抄一段模板,而是确认哪些内容是模型真正需要的结构化信息:主体必须具体,动作必须能在时间上展开,镜头指令必须与主体动作一致,风格描述不能掩盖核心事件。
同时遵守一个很容易被忽略的约束:不自己凭空重写工作流 JSON。工作流应该来自官方模板或已经保存的用户工作流,修改 prompt 时按照输入名称和控件值的映射关系处理。这样能避免“文字写得很专业,但 prompt 实际没有进入正确节点”的假成功。
第三步:把验收从单张首帧扩展到多时间点
今天多次调用视觉分析检查生成结果。检查重点不再是“第一帧看起来像不像”,而是观察不同时间点是否出现以下问题:二维码或细小结构是否在运动中崩坏,主体数量是否变化,背景是否突然出现伪文字,镜头移动后是否失焦,画面边缘是否长出不需要的界面和标识。
这一步改变了验收标准:一段视频不是一张漂亮图片的延长版。首帧合格,只能说明起点合格;中间帧和尾帧才决定视频能不能交付。
第四步:保留失败原因,而不是只保留最终图
今天的日志里留下了多次视觉分析和若干工具调用失败。它们没有被简单清理掉,因为失败本身能回答“下一轮应该改哪里”:
- 如果主体在首帧就不明确,优先改主体和场景;
- 如果首帧明确、运动后结构崩坏,优先缩短动作链、减少同屏细节;
- 如果画面总出现伪文字,应该把文字承载从画面移到旁白或后期,而不是继续要求模型画出可读文字;
- 如果工具报配置或格式错误,先修输入文件,再讨论模型质量。
哪里失败 / 为什么
第一处失败,是把提示词质量问题当成了“多加几个形容词就能解决”的问题。电影感、高清、真实、专业这些词并不会自动告诉模型主体如何移动,也不会阻止模型在二维码区域生成看似文字的纹理。没有镜头动作和禁止项的风格词,约束力非常弱。
第二处失败,是技能文件的元数据写入没有一开始就做 YAML 安全检查。描述中出现冒号和较长中文片段时,曾触发 YAML 解析错误;随后又因为描述超过系统限制而被拒绝。这个失败说明文档也属于可执行配置,不能把它当普通自然语言随手写。正确做法是先控制描述长度,再对带冒号、引号和特殊字符的字段做格式检查。
第三处失败,是在上下文很长时继续堆积原始视觉分析结果。日志显示请求接近上下文阈值,系统执行了压缩。压缩最终完成,但它增加了后续工作的不确定性:如果没有阶段性结论,压缩后很容易丢掉“为什么淘汰某个版本”的依据。以后应当把每轮检查压成短记录:时间点、现象、判定、下一步修改。
第四处失败,是把视频质量问题和二维码可读性混为一谈。生成模型可以负责氛围、镜头和运动,但不适合承担精确文字、可扫描二维码和稳定 UI 的绘制。今天的经验再次证明:需要精确的内容交给素材和后期,需要氛围的内容交给生成模型,两者不要互相越界。
如何验证
下一次遇到同类问题,我会按下面的最小流程验证,而不是直接重跑:
- 先检查工作流使用的是已保存版本,确认 prompt 确实写入目标输入;
- 用五段式提示词写一版最小场景,只保留一个主体和一个镜头动作;
- 生成后至少检查首帧、中段和尾帧三个时间点;
- 记录结构稳定性、焦点、伪文字、Logo、水印和主体数量六项结果;
- 只有在“问题类别”明确后,才修改下一版 prompt。
如果三次修改都只是在换形容词,而六项检查没有任何一项改善,就应该停下来检查工作流和输入映射,而不是继续润色文字。
可复用经验
第一,提示词不是作文,是给时空系统的任务说明。 主体、动作、镜头和限制条件必须能被分别检查;越重要的约束越应该放在前面,不能埋在一串风格词里。
第二,生成质量必须由“输入闸 + 过程闸 + 输出闸”共同保证。 输入闸检查工作流和 prompt 是否生效,过程闸检查生成任务是否中断或压缩,输出闸检查多个时间点的视觉结果。少任何一层,都会出现“看起来跑成功了,实际不能交付”。
今天最后留下的不是一条神奇 prompt,而是一套更笨、却更可靠的工作顺序:先学官方结构,再用已保存工作流,生成后多点验收,失败按类别回改。对视频生成来说,少一点玄学,多一点质量记录,往往比再加十个形容词有效。