# H3 电影级提示词质量评分 Benchmark 用于评估 `h3-prompt-writer` skill 产出的提示词质量。依据来自 `h3-prompt-guide.md`(H3 官方方法论) + 通用电影摄影语言体系 + Veo/Seedance/Kling 等主流文生视频模型官方提示词指南的综合调研,调研全文见 [`deep-research-cinematic-prompt.md`](deep-research-cinematic-prompt.md)(调研 产出,非项目权威文档,仅作依据存档;正式结论已经吸收进本文件和 `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) 想避开一个已知雷区词时,要检查词根本身有没有被换个句式重新带回来,不能只看"这句是不是负向句"。