h3-prompt-benchmark.md 8.01 KB

H3 电影级提示词质量评分 Benchmark

用于评估 h3-prompt-writer skill 产出的提示词质量。依据来自 h3-prompt-guide.md(H3 官方方法论)

  • 通用电影摄影语言体系 + Veo/Seedance/Kling 等主流文生视频模型官方提示词指南的综合调研,调研全文见 <code>deep-research-cinematic-prompt.md</code>(调研 产出,非项目权威文档,仅作依据存档;正式结论已经吸收进本文件和 h3-prompt-guide.md)。

打分方式

  • 满分 100(纯文生模式满分基数 92,最终分 = 实得分 / 92 × 100,因为「8. 素材引用规范性」8分不适用)。
  • 第 10 维「输出格式合规性」是硬性 gate,不计入百分制:不合规直接判定本次测试不合格,需先修正 技术参数(分辨率/帧数),修正后再进入其余 9 维打分。
  • 维度 1/2/6/7 是硬门槛型:这几维任一维度得分低于该维满分的 50%,即使总分凑够 95,也判定不合格 (防止"总分刷上去但关键维度烂"的情况)。
  • 目标:skill 产出的提示词稳定拿到 ≥95 分(且不触发硬门槛熔断)才算通过。

评分维度

1. 三段公式完整性(14分,硬门槛)

  • 参考素材说明处理正确:有素材写清楚每个 @图片N/@视频N 的用途,无素材合理整段跳过(3分)
  • 核心创意句五要素齐全:主体(1)+地点(1)+事件(1)+题材风格(1)+运镜(1)(5分)
  • 画面过程说明存在且按时间/分镜组织,结构清晰可辨认(3分)
  • "想要"与"不想要"两部分区分清晰,不混写(3分)

2. 视觉具体化程度(14分,硬门槛)

  • 全篇无"意会型"抽象比喻(如"仿佛""某种感觉""有灵魂"):零处扣分满分,每出现一处扣2分(6分)
  • 关键视觉元素(颜色/材质/光影方向/质地/尺寸)有具体可视化修饰,覆盖率高(8分)

3. 镜头语言专业度(10分)

  • 使用了准确的景别术语(英文或中文均可,如"中景""close-up")(2分)
  • 运镜术语具体化拆解,不写笼统的"环绕运镜"这类词(如写成 truck left+pan right)(3分)
  • 光线/构图/色彩分级术语覆盖至少2类(如key light、shallow DOF、film grain 任选其二)(3分)
  • 术语用法准确,无误用(如把 dolly 和 pan 混淆)(2分)

4. 时间轴/分镜结构化(12分,视频时长≥10s时必需)

  • 按 shot 或时间段分段描述(4分)
  • 每段包含景别+内容+运镜+动作+音效等要素完整,不是单一维度的流水账(4分)
  • 分镜时长与内容量匹配(无"3秒说一大段台词"这类明显不匹配)(4分)

5. 声音设计分层(10分)

  • 区分对话(如有,引号标注具体台词内容)/ 配乐 / 环境音效三层,不混为一谈(4分)
  • 配乐用相对时序描述("某事件后进入/停止"),不写死绝对秒数或分贝数值(3分)
  • 台词具体化到原文,或明确写出"人物不说话"的约束(3分)

6. 约束一致性(12分,硬门槛)

  • 正向要求与负向排除之间没有逻辑矛盾(如同时要BGM又说不要BGM)(6分)
  • 负向描述写成具体画面(如"空旷荒野无建筑无道路")而非简单否定词堆砌(如"不要丑、不要低质量")(6分)

7. 已知坑规避(12分,硬门槛,H3专属)

  • 未出现"不要字幕"这类已知反效果负向词(3分)
  • 无对白角色场景,主动加了"保持安静/嘴巴自然闭合/无口型变化"约束防止自动念白(若场景有角色且不需要 说话才适用;场景本就无角色则此项自动满分)(3分)
  • 视频内需要出现的文字/Logo/标题/按钮文案,原文一字不差写出(若不需要文字则此项自动满分)(3分)
  • 未使用已知会诱发"莫名变暗/聚光灯效应"的负向表述(如"压低背景""聚焦暗化"),改用正向曝光一致性 描述(3分)

8. 素材引用规范性(8分,仅 ref2va/fl2va 模式适用,纯文生模式此项跳过、满分基数改为92)

  • 每个引用编号都标注了用途(人物参考/场景参考/风格参考/动作参考/关键帧等)(4分)
  • 编号顺序与提交时 reference_image_urls/first_frame_url 实际顺序一致(4分)

9. 密度与长度匹配(8分)

  • 提示词长度与视频时长/画面复杂度相称:简单单镜头案例不过度堆砌形容词,复杂多分镜案例不因偷懒 只写一两句笼统描述(8分)

10. 输出格式合规性(gate,不计分,pass/fail)

  • width/height/frames 组合在 raylight/scripts/server.py 的 RESOLUTION_CEILINGS 安全范围内
  • 字段类型正确(数值型字段不是字符串等低级错误)

打分记录格式

每轮测试用如下表格记录,方便跨轮对比收敛趋势:

轮次 测试用例 模式 1 2 3 4 5 6 7 8 9 gate 总分 硬门槛熔断

2026-08-23 实测收敛记录(h3-prompt-writer skill v1→v5)

打分者:与生成提示词的 agent 相互独立的评审 agent(不共享上下文,只读 benchmark 文件本身打分), 避免自评分数虚高。测试用例 A =「北京烤鸭产品广告」(纯文生,产品/无角色场景), 测试用例 B =「雨夜公寓对峙」(纯文生,双角色对白剧情场景,用于验证 A 上的修复能否泛化到不同题材)。

轮次 用例 自评/盲测 总分 熔断 本轮主要问题
1 A 自评 94.6 否 (首次自评,未发现结构性问题)
1 B 自评 95.65 否
1 C(ref2va案例,非正式记录) 自评 95.5 否
2(skill改进后) A v2 自评 98.4 否 自评虚高,未发现真实问题
2 A v2 独立盲测 94.6 否 负向描述是类别否定非具体画面;展示台材质缺失;静态分镜动作要素偏弱;环境音重复
3(针对性修复) A v3 独立盲测 94.6 否 分数不变但问题变了:中段漏写环境音(为避免重复整句删掉);结尾2秒塞3个动作;负向清单只具体化了1条
4(针对性修复) A v4 独立盲测 89.1 否 新发现:全篇按"15秒"叙事但实际提交300帧≈12.5秒,时长与内容不匹配,末段被压缩后更挤;"固定机位"与"dolly in推近"自相矛盾
5(针对性修复) A v5 独立盲测 96.7 否 ✅ 达标。时长精确对齐、运镜表述自洽、材质/尺寸具体化到位
6(泛化验证,新题材) B v1 独立盲测 92.4 否 环境元素只写了1-2件(漏墙面/家具/窗户);无对白角色缺"嘴巴自然闭合"约束(skill里已有此规则但生成时漏用);曝光负向表述踩"亮度分区"雷区边缘
7(针对性修复) B v2 独立盲测 93.5 否 环境元素补齐;防念白约束补上;但"亮度分区"雷区词从负向句挪到正向句,词根仍在(本轮新引入)
8(针对性修复) B v3 独立盲测 96.7 否 ✅ 达标。彻底删除"亮/暗+分区"类词汇,改用纯光源物理行为描述;分镜密度问题部分改善(未根治但不影响达标)

结论:两个不同题材(产品广告 / 双角色对白剧情)最终都独立盲测稳定 ≥95 分,判定收敛。过程中 两次「自评虚高、独立盲测发现真实问题」(轮2的94.6 vs 98.4、以及后续多轮"分数不变/下降但问题在 变化")说明自评有系统性偏高风险,后续用这个 skill 时如果要验证提示词质量,应该用独立的、没有 参与生成过程的视角重新审视,不要相信生成者自己的质量判断。收敛过程中最有价值的两个教训: (1) 提示词里的时长陈述必须跟实际提交的 frames/24 精确对齐,不能照抄案例来源的"标准时长"; (2) 想避开一个已知雷区词时,要检查词根本身有没有被换个句式重新带回来,不能只看"这句是不是负向句"。