1实现原理 · 为什么它能做到
它不是单点工具而是一条「资产流水线」:从一句旅行主题出发,串起四格照片墙→切图→角色卡→视频提示词/生成→音乐提示词→成片拼接→QA 共 12 个任务。
Build a repeatable "virtual couple travel vlog" asset pipeline from a short theme such as "a young Japanese couple in Paris" or "a Chinese couple in northern Normandy."
身份一致性的关键设计:先用一次生成出 4x4 拼版把 16 张照片锁进同一模型上下文,再本地切成四张 2x2,而不是各自文生图四张。
Prefer generating one 4x4 contact sheet in a single image task, then splitting it into four 2x2 sheets. Do not generate four independent 2x2 text-to-image sheets unless there is already a strong locked character reference image.
切图由本地 Python/Pillow 脚本完成,且被指定为唯一默认裁切路径(不许用设计工具,也不许回退到独立 2x2 生成)。
Use [scripts/split-grid.py](scripts/split-grid.py) to split the approved 4x4 image into four 2x2 memory sheets. This is the only default crop route.
角色卡有硬规格(1:1、七面板、上四下三、纯白底、转身表语言),并默认只用 Codex Image Gen / gpt-image-2 生成。
Generate character cards with Codex Image Gen / `gpt-image-2`, not Topview, unless the user explicitly asks for Topview for this step after being warned about possible lower model quality.
视频段不绑死平台:先跑一个「provider 检测」脚本,有连接就自动化、没有就给完整的手动交付包。
After the four 2x2 sheets, character cards, and video prompts are ready, run [scripts/check-video-providers.py](scripts/check-video-providers.py).
Topview 自动化通过一个包装脚本调用,目标是避免跨平台 shell 引号问题:把参考图组织成 JSON 后交给 video_gen.py。
Before submitting video tasks, pause for an explicit queue decision:
付费前必须有闸门:提交前展示设置、积分估算与等待预估,并让用户选普通队列或 Quick Generate(额外 15 积分),绝不静默花费。
Do not continue to video submission until the user answers.
所有资产落在用户选定的输出根目录下的项目文件夹,且明令不删文件、不静默安装第三方技能/包。
Never delete files. If cleanup is needed, ask the user for explicit second confirmation first.
音乐与剪辑都走「有原则的退让」:音乐只写中文提示词交人工生成;剪辑按简单/进阶分叉(FFmpeg vs Remotion/HyperFrames),并明确 HyperFrames 不做源视频生成。
Do not use Gemini CLI or any automatic music generation tool by default. Always write the final Chinese music prompt to `audio/music_prompt_zh.txt`
产出结构固定成契约(brief/prompts/images/videos/audio/qa),便于跨会话续做与人工接管。
- `brief.md` - theme, couple profile, location, style notes.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | FFmpeg / FFprobe |
| package | Python Pillow(PIL) |
| cli | Node / npm / npx(Remotion 与 HyperFrames 路径) |
| cli | Topview skill 的 video_gen.py(第三方技能,付费平台) |
| cli | HyperFrames CLI(npx hyperframes lint / inspect / render) |
| api | 第三方视频/图像平台 API 密钥(仅检测存在性,不调用):Seedance / Krea / Lovart / LibTV |
| cli | Codex Image Gen(gpt-image-2)与 imagegen 技能——角色卡与记忆图的首选图像路径 |
4风险提醒 风险提醒:橙色 · 评估后使用
- 供应链面:核心步骤依赖第三方技能与 npx 远程包。 — Topview skill、Remotion 插件、npx hyperframes/create-video 均为外部依赖;文档虽要求安装前做 poison/backdoor audit 与资源检查、且默认『不安装任何第三方视频编辑技能』,但执行与否取决于使用者。
- 真实网络端点不在本仓库,无法从源码审计外发对象。 — Topview/Seedance/Krea/Lovart/LibTV 的域名与鉴权逻辑位于第三方技能或平台侧;本次侦查只能确认「本仓库不直接联网」与「只检测 key 是否存在」,外发内容为参考图+提示词这一结论基于上游文档描述。
- 真实费用与耗时不可精确预测。 — tooling.md 记录上海 Standard Omni 试跑:四段 15 秒 720p 按 18 积分/段、共 72 积分计费,每段完成约 451–587 秒;技能明确这只是观测值,且提交前 ETA 通常不可得。
- 真人肖像与隐私风险由使用者承担。 — README 建议公开演示使用纯 AI 数字人情侣、不使用真实人物照片,但工作流本身支持上传真人参考图,无技术限制。
- 长流程的失败点较多(图像生成 → 裁切 → 角色卡 → 视频 → 剪辑)。 — 文档用「每步 3 次尝试上限 + 手动交付包」缓解,但整体仍是多平台协作,任一环不可用都会落到人工接管。
5第二遍独立确认
- [ok] 「仓库内无直接网络调用」是否成立 — 全仓 https?:// 扫描中本技能目录零命中;5 个脚本 import 仅 argparse/json/os/shutil/importlib/subprocess/sys/time/pathlib/PIL,无 urllib/requests/socket/http。
- [ok] 密钥是否会被回显(凭证泄露风险) — first_env() 只返回命中的环境变量名,print_table() 打印的 evidence 列即该变量名;未出现 os.environ.get(name) 取值的输出路径,结论:不回显密钥值。
- [ok] 外部依赖条目逐条反查 — FFmpeg/FFprobe/Node/npm/npx/PIL 在 check-tools.py 的 results 列表中逐项存在;Topview 路径解析在 run-topview-omni.py 与 check-video-providers.py 两处互证;npx hyperframes 三连命令在 SKILL.md 与 tooling.md 两处出现。
- [unlocatable] Topview 平台域名(未能定位) — 本仓库内没有任何 Topview/Seedance/Krea/Lovart/LibTV 的域名或端点字符串,只有平台名与「本机是否安装/是否配置 key」的判断。真实网络端点位于被引用的第三方技能与平台侧,超出本次可读源范围,按纪律标为待补,不臆测域名。
- [ok] 付费闸门是否真的落在流程里(而非口号) — SKILL.md 有独立的 Topview 段要求提交前展示设置/积分/等待并等用户回答;task_list.md Task 6 给出「Do not submit video tasks until the user replies」与逐次/整批授权规则;tooling.md 提供决策话术模板。「不静默花费」在指令层有三处互证。
- [ok] 写入范围是否被限定在输出根目录内 — SKILL.md Operating Rules 第一条要求所有资产存于 <Output Root>/<Project Title>/;assemble-vlog.py 的工作目录默认取输出文件父目录;split-grid.py 的 output_dir 由参数传入。未发现写到技能目录或系统目录的路径(唯一例外是 npx 自身的缓存行为,属工具侧)。
- [ok] HyperFrames 定位是否前后一致(防止第一遍读错) — SKILL.md『HyperFrames editing only』段、README『HyperFrames 不再作为四段源视频的生成 provider 使用』、tooling.md『Do not use HyperFrames as the source provider』三处口径一致,第一遍所述成立。
- [ok] 任务清单完整性 — task_list.md 实含 Task -1、Task 0 至 Task 10 共 12 段,与 SKILL.md Task List 的 12 条编号一一对应;每条带 Acceptance 或 Fallback,非空壳。
6结论
c85905174ced23a9…fcee81beb6