商品页 H3 视频
目标是准确、清楚地展示商品,不做带货口播、UGC 表演、营销剧情或购买 CTA。回复保持简短。
默认入口
生成新视频时先执行本技能,不要先直接调用或研究 comfy-mcp。本技能已经内置工作流及三条分支的切换方法;正常出片不下载服务器工作流、不查询 object_info、不分析节点或接线。
用户明确只要创意、导演方案或分镜时使用 video-director;明确只要 H3 提示词且不要生成时使用 h3-prompt-writing。这两类请求不进入路线选择,不查询余额,也不提交生成任务。
用户给出现有视频并要求分析、拆解、仿拍参考或保存参考模板时,先使用同级 video-reference-analysis。单纯分析视频不进入生成路线选择,不查询余额,也不连接 ComfyUI。分析所得参考模板只提供创意结构,不属于本技能 templates/ 中已经成片验证的生成模板。
路线选择
若用户在本次消息中已经明确指定“本地/ComfyUI”“MiniMax API”或“Grok API”,按其选择继续;只说“API”时仍需确认具体供应商。否则在提交任何生成任务前必须让用户选择,不能默认任何路线。
仅在用户尚未选择路线、需要显示路线菜单,或用户明确选择/切换到付费 API 时查询对应 API 信息;用户已经明确只用本地时不运行任何 quote 或 balance。先取得费用估算所需的输出时长和素材数量。MiniMax 国区账户运行同级 minimax-h3-api/scripts/minimax_h3.py quote 计算 768P、2K 两档预计费用,再运行 balance 查询当前按量余额。Grok 运行同级 grok-video-api/scripts/grok_video.py quote 计算 480p、720p、1080p 三档美元预计费用;xAI 官方未提供余额查询接口,明确显示“余额:请在 xAI Console 查看”,不得伪造余额。所有报价和余额查询都不会创建视频任务。
当前内置报价只适用于国区人民币按量账户。国际账户可以显示 balance 返回的美元余额,但必须把预计费用标为“国际区报价暂不可用”,并在取得可靠的国际区预计费用前停止付费创建;不得把国区人民币报价套到国际账户。
用三项简短显示并等待选择:
1. 本地 ComfyUI(不产生 MiniMax API 费用)
2. MiniMax API(余额:<币种> <金额>;预计:768P <币种> <金额> / 2K <币种> <金额>)
3. Grok API(余额:请在 xAI Console 查看;预计:480p $<金额> / 720p $<金额> / 1080p $<金额>)
预计费用必须注明对应时长;MiniMax 包含参考视频或超过 5 张参考图片时使用 quote 的完整估算,Grok 单图生视频把一张图片输入费计入报价。用户选择付费 API 但没有同时选分辨率时,再要求明确选择该供应商支持的分辨率。选择前不连接 ComfyUI、不分析工作流,也不调用任何付费创建接口。
生成前剧本确认
路线和导演方案确定后,先向用户展示一份可直接检查的最终剧本,至少包含核心目标、时长与画幅、素材用途、完整时间线、主要动作、对白或声音以及结尾画面,然后明确询问“是否确认按这版剧本生成?”。无论使用新导演方案还是已验证模板,都必须执行这一步。
必须等用户在看到当前版本后明确确认,才能转换最终 H3 提示词、上传素材、准备或提交本地工作流、运行 API dry-run 或调用任何创建接口。用户选择路线、选择分辨率、此前说“直接生成”,都不等于确认一份尚未展示的剧本。用户要求修改后,更新剧本并完整展示修改后的版本,原确认立即失效,必须重新确认。
工作流程
- 接收商品图和用户要求,以本次输入为准,不从历史任务继承时长或其他规格。其他关键信息缺失时只问必要问题。
- 查看
templates/*.json(忽略_template.json),按展示方式、主要镜头目标、时长、画幅和参考图数量选择最接近的已验证模板;品类名称只作辅助。用户指定了video-reference-analysis/templates/中的参考模板时,把它交给video-director作为创意结构参考,但仍需按当前商品重新编排,不能把它当成已验证生成模板。没有合适模板时读取同级技能video-director,先产出可执行导演方案。若只有素材和“宣传一下”这类宽泛要求,由video-director给出三个拍法真正不同的一句话方案并请用户选择;选择前不写完整剧本、不提交生成。 - 按“生成前剧本确认”展示适配当前素材的最终剧本并等待明确确认;未确认或修改后未重新确认时停止在这里。
- 确认后按所选路线准备提示词。MiniMax/ComfyUI 路线读取同级技能
h3-prompt-writing,只把用户确认的导演方案或模板剧本转换成完整 H3 提示词;Grok 路线把确认剧本压缩为一个完整视频提示词,不使用 H3 专有标签或多模态结构。不得自行增加新的剧情、功能或镜头。 - 用户选择本地后才通过
comfy-mcp出片。有本机图片时先用upload_file上传绝对路径并记录返回的服务器文件名;0 张图不上传。把完整 H3 提示词保存为临时 UTF-8 文本,然后运行scripts/prepare_workflow.py --prompt-file <提示词文件> --duration <秒> --ratio <画幅> [--image <服务器文件名> ...] [--megapixels <值>] --output <临时工作流.json>。设置 ComfyUI 分辨率时查看内置工作流里的Note: Size Settings Reference对照表;用户未明确要求分辨率时不传--megapixels,脚本默认使用0.5(16:9 时约960×544)。只有用户明确要求其他百万像素值或输出尺寸时才按对照表覆盖。脚本只读取插件内置资产并写出临时副本,不读取、覆盖或保存用户在 ComfyUI 服务器上的持久工作流。它会自动选择 0 图 T2VA、1 图单图 Ref2VA 或 2–3 图多图 Ref2VA,并完成分支、节点、枚举、提示词、画幅、时长、分辨率和素材设置;不要再手动解析内置 JSON。 - 本地路线用
run_workflow提交脚本输出的临时工作流并记录prompt_id。生成成功后用fetch_outputs下载到员工当前工作区并提供本地成片链接,不能只报告服务器成功。 - 只要已经调用
run_workflow,在成片下载完成或任务已明确失败后,都运行python scripts/free_comfy_memory.py。脚本会先查询全局/queue:如果还有正在运行或等待的连续任务就跳过;只有queue_running=0且queue_pending=0时,才向同一台 ComfyUI 的/free提交{"unload_models": true, "free_memory": true}。绝不为了释放内存中断其他任务。清理成功后说明模型和缓存已卸载,下一次生成需要重新加载;清理失败或因连续任务跳过时单独说明,不把已经成功下载的成片改报为失败。若run_workflow超时且任务是否结束仍不明确,也只运行脚本检查队列,不得强制停止 ComfyUI。普通/free后仍明显占用大量内存时,才建议用户正常重启 ComfyUI,不自动结束服务器进程。 - 素材上传、工作流准备或生成失败时只报告一条真实错误;不搜索替代工作流、不推测模型问题、不自动改走付费 API。只有准备脚本报告内置节点不匹配时,维护者才读取 references/comfy-workflow-map.md 并刷新资产。
- 用户选择 MiniMax API 后才读取同级技能
minimax-h3-api;选择 Grok API 后才读取同级技能grok-video-api。客户端优先读取当前用户dsvideo/providers.json中的minimax或grok配置,旧环境变量只作兼容覆盖。若用户切换路线,重新运行本次请求对应的报价和可用余额检查,重新展示费用,不复用之前任务的信息。Grok 当前只接文生视频和单张首图生视频;多张参考图不静默丢弃,改为说明限制并让用户决定保留哪张。剧本确认与付费规格确认是两个独立门槛,两者都完成后才能提交。不得因任一路线失败自动切换到另一条路线。
模板
- 模板复用镜头结构、节奏和提示词骨架;商品颜色、外形、文字、部件、功能和卖点仍以本次素材为准。
- 只有用户明确确认成片可用并要求“保存为模板”时,才参考
templates/_template.json新建模板;不自动保存草稿。 - 模板写入本技能源码的
templates/,文件名使用简短英文小写连字符。若当前只有已安装缓存而没有插件源码,不写缓存,改为输出模板 JSON 交给维护者入库。 - API Key 只允许保存在当前用户的
dsvideo/providers.json,不得写入模板、仓库或插件缓存。模板也不得保存任务 ID、人员信息、本机素材绝对路径,或覆盖模型、步数、CFG、采样器、调度器等 ComfyUI 参数。
交付时只说明成片位置、使用的模板(若有)、模式、时长和画幅;不要向用户展开技能缓存、文件搜索、硬件或模型探测过程。