# 换装跳舞直播间 — 开发任务规划(第 0 期 + 第一期) 需求见 `docs/todo/dressup-dance-room.md`(下称"需求文档"),设计见 `docs/todo/dressup-dance-room-mvcp.md`(下称"MVCP"),现状基线见 `docs/done/live-channel-v1.md`。需求文档第 9 节给的是**依赖顺序参考**, 本文把它落到可以派活的任务粒度:每条任务给**验收标准**(能跑/能看的 东西,不是"完成了"),并标出哪些能并行、哪些必须等第 0 期结论。 工时是**粗估**,单位人天,按熟悉这套代码的一个人算,用来排先后不用来 考核。 --- ## 0. 已确认的前提(写在最前面,避免执行时反复回头查) - **第 0 期 S1/S2/S4 已于 2026-09-02 跑完,全部通过**,证据见 `spike/s1-s2-s4-2026-09-02/RESULTS.md`。结论:**一步法(路径 B)成立, 没有 Stage1**——人物图+衣服图直接进 H3 Console 的 `ref2va`,一次调用 出换装跳舞视频,`reference_video_urls` 字段真实生效,素材上传走 H3 Console 自带的 `POST /v1/assets` 端点(新发现,已补进 `H3-CONSOLE.md`)。 下面第 1 节的 spike 描述保留作记录,**不用再执行**;第 2 节的任务表 已按这个结论同步更新。 - **第一~三期全程不调用 fal.ai,不调用任何视觉模型,零按次成本。** 视频生成全部在内部 2080Ti 集群(4 卡 × 22G,`H3-CONSOLE.md`)上跑, 一次调用完成换装+跳舞,Codex `gpt-image-2` 两步法(路径 A)不再需要, `CODEX-IMAGEGEN.md` 降级为技术储备文档。 - `appearanceDescriptor`(人物)/`garmentDescriptor`(衣服)= `characters`/ `garments` 两个**管理员手写**字段,分别对应 M.15 模板的 ``/ ``,不拼接、不依赖视觉模型。 - 第一期不涉及:账号、积分、支付、审核、`dance.html` 观众端。**第一期 唯一的用户界面是后台**。 --- ## 1. 第 0 期:技术验证 spike ✅ **全部完成(2026-09-02)** **目的**:用最小代价证伪三个假设,避免在错误的地基上写产品代码。 **产出物**:全部丢在 `spike/` 目录下,是一次性脚本,**不进产品代码**, 验证完把结论写回需求文档第 8 节即可。 **总工时**:约 3–5 人天,串行做也就一周内。**实际结果:S1/S2/S4 全过**, 证据和方法见 `spike/s1-s2-s4-2026-09-02/RESULTS.md`;S3(Codex 两步法) 虽然也验证通过但**没被采用**,因为 S1 直接过了,一步法更省事。下面各 spike 的原始描述保留作记录。 ### S1 —— H3 一步法实测(最高优先,可能删掉整个 Stage1)✅ **过(2026-09-02)** | | | |---|---| | **做什么** | 手工准备 1 张人物图 + 1 张衣服图 + 1 条参考跳舞视频(都传到一个 H3 能访问到的地址),按 MVCP M.15 模板改写成"一步法"版本(``=人物、``=衣服、`` 在 `retention_analysis` 标 `attribute_transfer`),`POST /v1/videos` 提交,轮询取回 mp4 | | **怎么验** | 人眼看 3–5 组不同人物×衣服的产出 | | **验收标准** | ① 任务能提交成功、`partition` 落到 `ref2va`;② 产出视频里**人脸与人物图一致**;③ **身上的衣服确实换成了衣服图那件**;④ 动作跟参考视频对得上。四条全过 = 路径 B 成立 | | **过了会怎样** | **Stage1、`composed_images` 表、图片模型选型、图片去重缓存全部删掉**,MVCP 的 M.6 整节作废,流水线从两段变一段 | | **没过会怎样** | 走 S3(路径 A),Stage1 保留 | | **工时** | 1 | | **实测结果** | **四条验收标准全过**(job `eac9f8fe1c36`,10s/480×832/ref2va)。人脸大体一致(头发有轻微变长变蓬松的漂移,不是像素级复刻);换装准确(红色旗袍金边侧开衩全部还原);动作跟参考视频的 hip-hop 风格/幅度高度一致。**副作用**:产出角色的鞋子是模型自选的(黑色短靴),prompt 未提鞋子——跟 Codex 路径 A 遇到的"鞋子自作主张"是同一类问题,正式模板要显式规定鞋子处理方式。**结论:路径 B 成立,Stage1 删除**,MVCP 已同步(M.6 作废、M.13/M.15 重写)| ### S2 —— `reference_video_urls` 实测(Stage2 的地基)✅ **过(2026-09-02)** | | | |---|---| | **做什么** | 单独验这个字段本身:固定一张参考图,只改 `reference_video_urls` 有/无,各提交一次 | | **背景** | `H3-CONSOLE.md` 原话是这个字段"未实测,仅从控制台 UI tab 推断存在"。**整个 Stage2 设计、M.15 模板、`dance_refs` 表都建在这个推断上** | | **验收标准** | ① 带 `reference_video_urls` 提交不报错;② 产出视频的**动作/节奏明显受参考视频影响**(跟不带的那条对比看得出差别);③ 记录参考视频的时长/格式/分辨率限制(H13 说视频 ≤3 条、单段 2–15s) | | **没过会怎样** | **设计级返工**:舞蹈动作只能靠 `motionDescriptor` 文字描述驱动,`dance_refs` 从"参考视频库"退化成"动作描述库 + 配乐库",M.15 模板要去掉 `