这是 woven-tote-bag-creative 这条 run 的第一版默认草稿(04_video_draft.mp4)。它和后来的《Smooth Summer Orbit》交付版来自同一个 run-id、同一份 00_inputs 快照、同一张 Hero shot,差别只在三处:
- 创意选择:Candidate 1「The Bag That Doesn’t Move (Summer Does)」——包不动,夏天动,以 stop-motion / freeze / jump / 悬停成轨道作为视觉语言。
- tag:无显式
--tag,所以走默认part1/part2,storyboard prompt 当时还允许 panel 内 framing notes 与 motion arrows。 - 拼接参数:
tools/ffmpeg_variants.py::stitch_videos()当时还没有 fps 参数,内部写死 30fps,Seedance 24fps 源片被强转,引入重复帧。
成片本身可以播放(854×480 / 30fps / 29.87s),但 Phase 5 的 Claude Vision 抽帧审查明确指出”有 stop-motion / hold / jump 造成的卡顿感”。深入复盘把卡顿来源拆成两层:
- 创意层:Candidate 1 brief 里反复出现 stop-motion、3 帧、冻结、悬停成轨道——Seedance 被这些词导向出有顿挫的运动。
- 工程层:
fps=30强转 24fps 的 Seedance 源片,补帧机制引入重复帧,放大了顿挫感。
两层都被证据化:analysis_stutter_contact.jpg(多帧接触表)、analysis_stutter_frames/(逐帧样本)被作为”为什么必须修”的输入沉淀下来。随后三项系统级修复被设计出来:
prompts/03_storyboard_prompt_template.md显式禁止箭头 / panel 编号 / 手写注释 / diagram lines。prompts/04_seedance_timeline_template.md锁定单一主角 + 单一产品,禁止背景替身。tools/ffmpeg_variants.py::stitch_videos()加 fps 参数,默认 24fps。
这些修复之后跑出的就是 v2 的《Smooth Summer Orbit》。
把这一版作为作品集条目保留下来,不是把”上一稿”塞进交付物清单,而是因为这条 pipeline 的默认行为就是「序列化 · 不覆盖 · 以 tag 区别」——v1 和 v2 必须并存,才能对照;能对照,才有判断。敢留下失败版本才是这条流水线最反传统的地方。
也因此,这一版的存在价值不在于成片本身的质量,而在于它把”为什么这条流水线长成现在这样”的因果链摊在了桌面上:可见、可对照、可复盘、可继续修。