ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

huashu-design 终渲质检闭环:ai-review-video.py 视频理解评审实战指南

huashu-design 终渲质检闭环:ai-review-video.py 视频理解评审实战指南 AI 技能【免费下载链接】huashu-designHuashu Design · HTML-native design skill for Claude Code · Claude Code 里 HTML 原生的设计 skill · 高保真原型 / 幻灯片 / 动画 20 设计哲学 5 维评审 MP4 导出 · Agent-agnostic项目地址https://gitcode.com/gh_mirrors/hu/huashu-design点击查看免费下载本指南基于 references/ai-video-review.md 展开结合仓库内 scripts/cloud/ai-review-video.py 的完整源码实现系统讲解 Huashu Design 项目在「终渲后、交付前」如何用视频理解模型doubao-seed-2-0-lite替代人肉全片重看产出按固定 checklist 组织的结构化评审报告。读完本文你将掌握何时该跑评审、一条命令怎么落地、ffmpeg 客观检测与模型语义判断如何分层协作、八项 checklist 与三级严重度如何解读以及这套闭环的已知边界与实测基准。一、定位为什么需要一道AI 看片质检Huashu Design 的产物形态是动画 MP4高保真原型、幻灯片、信息图等渲染链路已经相当自动化但成片是否可交付长期依赖人肉逐帧重看成本高、且容易漏掉长片中段的细节问题。ai-review-video.py的出现就是把这道工序交给视频理解模型终渲 60fps 成片出来后把 MP4 切段压缩后喂给 seed-2.0-lite按固定 checklist 逐项挑毛病汇总成一份带时间点、带严重度、带附录证据的结构化 markdown 报告。需要特别强调它的定位边界它是终渲后、交付前的最后一道质检作用是替代人肉全片重看不替代逐帧的 verify-video.sh 硬校验。两者是分工关系而非替代关系详见第五节。同时它是一道可选的云能力压缩后的视频段会发送到火山方舟官方接口ark.cn-beijing.volces.com使用你自己的ARK_API_KEY需要--yes或HUASHU_CLOUD_OK1显式确认。数据流向声明见仓库根 SECURITY.mdai-review-video.py是仓库内两个触云脚本之一核心渲染管线 100% 本地、零网络调用、零 API key。不想用云的话本地免费替代方案是 scripts/verify-video.sh 截帧人工看。二、何时用评审的触发时机按文档给定的四类时机终渲 60fps 成片出来后、交付/混音前跑一遍SFX 混音版出来后再跑一遍注意音效 onset 核对只在有音轨时生效见第四节调用链路改完大问题重渲后复检不要在试渲 30fps 阶段跑——分辨率与节奏未定调用纯属浪费。这个时机的选择背后是成本考量--segment-len默认 60 秒一段、--model默认doubao-seed-2-0-lite-260215文档给出 210 秒成片的实测成本为 6 次 API 调用、6-10 分钟、tokens 约 18 万 in / 2 万 outlite 档费用分钱级。在 30fps 试渲阶段跑等于给肯定要改的中间产物付钱。三、快速上手命令与参数全解3.1 标准调用cd 项目目录 unset ALL_PROXY # 脚本内已免疫代理unset是双保险 uv run ~/.claude/skills/huashu-design/scripts/cloud/ai-review-video.py \ --video 成片.mp4 \ --context 导演稿.md \ # 强烈建议带上模型靠它区分「设计意图」和「bug」 --yes # 确认视频段发送火山方舟或 HUASHU_CLOUD_OK1ARK_API_KEY配在 skill 根目录.env已 gitignore或环境变量脚本只提取这一个变量报告落盘视频同目录视频名-AI评审.md可用--output修改--segment-len默认 60 秒一段--model默认doubao-seed-2-0-lite-260215。3.2 全部命令行参数对应源码 argparse 定义源码 scripts/cloud/ai-review-video.py 中main()的参数定义如下参数必选默认值说明--video是—成片路径mp4脚本会先校验文件存在--context否无导演稿/分幕说明 md 路径读取前 12000 字符作为评审上下文--segment-len否60分段长度秒按此切段并逐段送审--model否doubao-seed-2-0-lite-260215视频理解模型--output/-o否视频同目录视频名-AI评审.md报告输出路径--yes否无确认将压缩视频段发送火山方舟或设环境变量HUASHU_CLOUD_OK1源码里有几个值得注意的默认实现细节ai-review-video.pykey 读取load_api_key()优先读环境变量ARK_API_KEY其次读 skill 根目录.env路径由Path(__file__).resolve().parents[2] / .env定位且只逐行提取ARK_API_KEY这一个变量不把 .env 整文件灌进环境key 缺失或为your_前缀占位值时直接拒绝运行L78-L89代理免疫session.trust_env False不继承本机代理配置规避ALL_PROXY等残留代理导致的 TLS 报错L285-L286命令行的unset ALL_PROXY是双保险确认门不带--yes且无HUASHU_CLOUD_OK1时脚本打印将发送的 host 与内容后直接退出L269-L274与 SECURITY.md 声明的 consent gate 一致。四、调用链路三层混合不是纯模型这是整套设计最核心的部分评审不是把整片丢给模型随便看看而是 ffmpeg 客观检测 模型分段看片 模型全片低清 pass 文本汇总的四步流水线。源码 ai-review-video.py 的 docstring 完整描述了这条链路。4.1 第一步ffmpeg 客观检测确定性不会漏在送模型之前先在本机用 ffprobe/ffmpeg 拿到三类确定性的客观数据时长与音轨探测probe()L99-L105ffprobe 读取 format.duration 与 stream 的 codec_type判断是否存在音轨音效 onset 时间表detect_audio_onsets()L108-L120对音轨跑silencedetectnoise-45dB:d0.3从 stderr 中正则提取silence_end时间点反推音效 onset片头非静音开场即有声时会补 0.0s。这一步存在的原因很关键模型听不到视频音轨文档注明 2026-07-17 实测所以音画对位检查必须靠本地 onset 表 模型核对画面完成静止段清单detect_static_segments()L123-L132对画面跑freezedetectn0.001:d3.0找出 ≥3 秒完全静止的区间并在 L296-L304 做相邻区间合并间隔 0.2s 的合并。这些数据随后会以时间表的形式嵌入每段的 prompt见 4.2让模型在事实给定的前提下做判断而不是靠猜。4.2 第二步模型分段看片60s/段逐段送审按--segment-len切段bounds循环L316-L321每段用compress()L135-L144压成1280 宽 / 15fps / crf28扁平动画约 0.5MB/分钟若压缩产物超过MAX_SEGMENT_MB 8源码 L50 定义会自动再压一档960 宽 / 10fps / crf32。每段的 prompt 由segment_prompt()L195-L222生成核心结构声明你是动画成片质检员严格挑毛病不夸片子给出片段对应的原片时间范围并要求报告统一用原片时间分:秒嵌入导演稿--context传入用于区分设计意图与 bug嵌入八项 checklist见第五节嵌入本段内的静止段客观检测表要求模型逐条判断刻意 hold 还是真死段嵌入本段内音效 onset 时间表要求模型核对这些时间点画面上是否有值得配音效的事件没有对应事件的时间点 音效打空嵌入严重度规则与输出格式约束markdown按①-⑧逐项每项下- [原片分:秒] 严重度emoji 具体描述不确定标「存疑」不编造。4.3 第三步模型全片低清 pass跨段视角分段评审只管段内细节跨段的叙事连贯、hero 贯穿、整体节奏需要全片视角。global_prompt()L225-L236把全片压成960 宽 / 10fps / crf30单独送审且明确告知模型这是评审用压缩画质低是正常的不要报画质问题只做三件事A. 叙事连贯性哪些时间点是 PowerPoint 式硬切整页突变无过渡B. hero/主体贯穿性贯穿全片的主体元素在哪些切换处断裂、消失或突变C. 整体节奏哪些区间拖长时间无新信息、哪些区间赶。注意这里的硬切定义与 references/camera-language.md §7 的转场三层词汇表挂钩——文档明确说 checklist ④ 的过渡分类按该文件 §7 扩展六式[流白/穿暗场/虚焦接力/黑场字卡/whip-pan/mask-wipe]、hidden-cut、travel[共享元素归位/字腔穿越]裸切 未包装的硬切记⚡。阅读评审报告时对硬切的判罚应回到 camera-language.md 的转场语法理解。4.4 第四步文本汇总 callask_model()L151-L192把分段原始记录 全片评审记录交给synthesis_prompt()L239-L251合并按 checklist ①-⑧ 逐项组织每项按时间顺序列发现同一问题被多段重复报的合并成一条分段与全片评审矛盾时两说并存并标「存疑」保留每条发现的时间点和严重度 emoji不新增原始记录里没有的发现开头给问题总数⚠️x ⚡y z统计行和三句话以内总评。若汇总 call 失败脚本自动退化为原始记录直接拼接L368-L372不会因此丢数据。4.5 请求实现与失败处理ask_model()的请求体是 Volcano Ark 的 responses 接口格式视频以 base64 的data:video/mp4;base64,...作为input_video类型内容prompt 作为input_textL151-L157。失败处理遵循诚实原则单段送审失败会记录到failures列表不中断其他段所有送审调用均失败时直接退出拒绝编造评审结果L357-L359报告头会如实写出分段成功/失败数、全片 pass 是否失败、失败段的时间范围调用失败网络/key/额度绝不伪装成正常结果L374-L388。4.6 报告结构与附录报告头部包含模型名、评审时间、片长、分段成功/失败数、音效 onset 数、静止段数、tokens 用量等元信息正文为汇总结果最后固定附带两个附录L390-L398附录 · 客观检测数据静止段 ≥3s 完整清单、音效 onset 时间表明确标注ffmpeg非模型判断附录 · 各段原始评审记录全片 pass 与每段分段评审的原文供人工复核时追查每条结论的出处。五、checklist 八项与三级严重度5.1 评审清单源码CHECKLIST常量L52-L65编号检查项判定要点①黑帧/空窗/渲染残缺整帧或大面积黑屏、白屏、元素未渲染、明显破图②文字问题字卡/标签被裁切、溢出容器、错字、乱码、字叠字③元素重叠遮挡不该重叠的元素互相遮挡、层级错误、穿模④叙事连贯性过渡分三类硬切整页突变无衔接、交叉淡入淡出透明度渐隐、morph元素连续变形/位移。报告必须写明看到的是哪一类不要把淡入淡出误报成硬切硬切⚡淡入淡出在导演稿要求 morph 时「过渡偷懒」⑤hero/主体贯穿性贯穿全片的主体元素是否在场景切换中断裂、消失、突变位置⑥节奏死段结合 ffmpeg 静止段检测表≥3s 完全静止区间判断每个区间是刻意 hold字卡阅读/弹幕停留/收尾定格还是真死段画面无信息可读还停着⑦音效打点结合 onset 时间表核对每个音效时间点画面是否有对应事件转场/字卡落定/撞击/元素出现没有对应事件音效打空⑧构图明显失衡、大片无意义空白、重要元素贴边或被挤到角落5.2 三级严重度源码SEVERITY_RULE常量L67-L71⚠️ 致命 交付前必须修黑帧、错字、文字被裁、元素叠死、明显破图⚡ 重要 观感明显受损硬切感、hero 断裂、超 3 秒死段、构图明显失衡 建议 锦上添花的改进点。文档特别提示⑦ 的 onset 核对只在有音轨时生效——无音轨成片在 scripts/verify-video.sh 里已经被判为半成品铁律的违反项skill 铁律动画默认交付形态是带 SFXBGM 的 MP4无声半成品而 references/audio-design-rules.md 进一步给出了 SFX 打点的对齐精度规范同帧 0ms 误差/前置 1-2 帧/whoosh、后置 1-2 帧 impact可作为 ⑦ 人工复核时的参照。六、局限用报告前必读文档用一整节声明这套闭环的边界理解这些边界才能正确使用报告模型听不到声音⑦ 是音轨 onset 时刻画面有没有事件的单向核对判断不了音效选得对不对、音量对不对、BGM 情绪对不对——音质判断仍需人耳看不到帧级细节1-2 帧的闪烁、细微抖动、精确色值偏差、亚像素对齐抓不到这些仍靠 verify-video.sh 截帧人工看过渡类型判断偏严压缩到 15fps 后快速交叉淡出可能被报成「硬切」分段与全片 pass 矛盾时汇总会标「存疑」——存疑项自己抽帧确认再改「刻意 hold vs 死段」是模型意见b-roll 垫口播的长定格常被放行成片独立观看时要自己再判失败处理调用失败网络/key/额度会如实写进报告头绝不编造评审结果失败段的时间范围会标出未被评审覆盖的区间要人工补看。七、实测基准客观检测层是下限保证文档给出的首跑实测对象是B00-前三分钟主线-SFX.mp4210s结论很有参考价值模型自主发现幕间过渡问题和 hero 断点方向正确但把 fade 误报为硬切对应第六节过渡判断偏严的局限纯模型抓死段只中 3/14接入freezedetect客观检测后全覆盖。这组数据直接支撑了整套架构的设计哲学客观检测层是这套闭环的下限保证确定性、不会漏模型负责语义判断什么算问题、什么算设计意图。这也是为什么 ⑥ 的 prompt 里模型的任务不是找死段而是对表判断——死段列表由 ffmpeg 保证不漏模型只做刻意 hold 还是真死段的价值判断。八、与本地校验的分工verify-video.shai-review-video.py不替代、也替代不了 scripts/verify-video.sh。后者是产物侧硬校验PASS/FAIL不靠 agent 目测检查项全部是确定性指标verification.md 有完整的命令示例分辨率/帧率--width/--height/--fps时长误差±2% 或 ±0.2s 取大者audio stream 存在性无音轨直接 FAIL--no-audio用于明确声明的中间产物首尾黑帧blackdetect录制起点偏移/loop 回跳的典型症状刻意黑场开场用--allow-black-openLUFS 响度成品目标 -14±4越界给 WARN 提示检查混音增益。exit code 非 0 就不许交付。这套硬校验管的是格式与信号的确定性正确AI 评审管的是观感与语义的问题发现两者叠加才是完整质检先 verify-video.sh 把关硬指标再 ai-review-video.py 扫语义问题最后人针对「存疑」项抽帧确认。九、落地建议小结接入时机固定为终渲后、混音后、大改重渲后三跑试渲阶段不跑每次必带--context 导演稿.md这是区分设计意图和bug的关键输入报告只信①-⑧ 时间点 严重度 附录原文的结构化部分过渡类型类结论硬切/淡入淡出默认打折扣先抽帧再改音画对位⑦记得结合 sfx-cues.sh 的 cue 表和 audio-design-rules.md 的对齐精度规范复核模型只能核对有没有事件判断不了音效选得对不对客观检测附录静止段/onset 表是可复用的工程数据不止服务于本次评审——它本身就是节奏与打点的机器验证依据。赞分享AI 技能【免费下载链接】huashu-designHuashu Design · HTML-native design skill for Claude Code · Claude Code 里 HTML 原生的设计 skill · 高保真原型 / 幻灯片 / 动画 20 设计哲学 5 维评审 MP4 导出 · Agent-agnostic项目地址https://gitcode.com/gh_mirrors/hu/huashu-design点击查看免费下载相关推荐Huashu Design 设计评审深度指南五维度评分、场景侧重与修复清单实战Huashu Design 设计评审深度指南五维度评分、场景侧重与修复清单实战 本指南以 Huashu Design 仓库中的 references/critAI 技能Repomix 多 Agent 代码评审闭环review-loop 迭代评审与修复工作流深入解析Repomix 多 Agent 代码评审闭环review loop 迭代评审与修复工作流深入解析 导读 .agents/commands/code/revie开发工具MCP 服务AI 应用用 pi 的 implement-and-review 模板搭建实现—评审—返修闭环Subagent 链式工作流实战解析用 pi 的 implement and review 模板搭建实现—评审—返修闭环Subagent 链式工作流实战解析 implement and re人工智能大模型AI Agent代码智能体AI 应用工具调用上一篇如何在React Native中集成react-native-cookies从安装到使用的快速入门下一篇终极Gradle灾难恢复指南从崩溃到重生的完整备份方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表