Seedance 实验:多音频参考 + 缩放fit(无 lipsync)

数据来自 task 716bc0eb(Tiles Survive 英文口播,29.2s,4 段)· 模型 byte-seedance-2-omni-mini · 直连 unified-api 真机跑

实验设计

脚本出音频 → 按 ≤15s / ≥4s 打包成窗 → 每窗直接生成 seedance → 结果时间缩放到脚本段时长 → 拼接 → 配音,完全不走 lipsync。含两个未验证假设:①一窗多段就传多个 ref_audio(@audio1/@audio2);②缩放代替 lipsync 就够 fit。

脚本段时长ref_audioduration结果
Aseg0 [0–8]8.0s1 个 (@audio1)8✓ 成功
Bseg1+seg2 [8–22]14.0s2 个 (@audio1+@audio2)14✗ 失败 2/2
Cseg3 [22–29.16]7.16s1 个 (@audio1)7✓ 成功
B′对照同 B 窗,改回单音频合并14.0s1 个 (@audio1)14✓ 成功

结论① 多音频参考(@audio1+@audio2)不稳 · 不推荐

B 窗传 2 个 ref_audio + 两段式 prompt → 连续失败 2 次,都是同一个错:output video may contain sensitive information(输出被安全审核拦)。
关键对照:完全相同的窗([8–22]、同一张图、同样的词),改回单个合并音频一次成功。原 task 716bc0eb 里这个窗本来也是单音频、成功的。
→ 变量只有「2 个 ref_audio」。多半是塞两段音频后模型产出画面畸变触发过滤。多音频这条路在 mini 上不可靠。

@image1 = the exact first/starting frame of this clip: the video opens on precisely this image. @audio1 and @audio2 = the two voice tracks of the person speaking, played back to back in order. The person in @image1 speaks to camera in one continuous take: first, in sync with @audio1, they say: "And then, oh man, they get chopped right up into tiny little pieces. Oh my god, honestly the way they all pile up like that is just so oddly satisfying to watch!"; then, in sync with @audio2, they say: "Wait, hold on, now the delivery trucks are totally stuck down there. Come on, we really need to clear this bottleneck fast!". 人物在说话时,做出一些小幅度的手势,点头,微笑,自然的身体动作。相机保持固定,人物保持看向镜头。 One single speaker only, no second person, no clone. No subtitles, no on-screen text, no watermark.

结论② 缩放 fit 代替 lipsync 可行

seedance 对 duration 参数很守时——8s 请求出 8.10s、14s 出 14.08s、7s 出 7.10s,误差 <0.1s。所以只要对整段做一次线性 setpts 缩放(factor 0.99~1.01)就 fit 到脚本段时长,根本不用 lipsync。下面是三窗单音频原片 + 缩放拼接成片(配真实配音)。

窗 A 原片 · 1 audio8.10s → fit 8.0s
窗 B′ 原片 · 单音频14.08s → fit 14.0s
窗 C 原片 · 1 audio7.10s → fit 7.16s

🎬 最终实验成片:seedance 原声(Fish 只做参考)· 缩放fit · 无lipsync

架构确认:Fish 只当 ref_audio 驱动 seedance 生成,成片音轨=seedance 自己生成的原声,音画一起缩放到脚本段时长后拼接。因为原片音画本就同步,连 lipsync 都不需要。29.15s。

✅ 原声版(采纳方案)seedance 原声 · av 同步缩放 · 无 Fish 混音
对照:Fish 混音版(弃)丢原声、只缩放画面、贴 Fish 音轨

建议

多音频参考放弃:mini 上 2/2 失败,改单音频立刻成功。要一窗覆盖多脚本段,就合并成一段音频喂单个 @audio1(现在 v7 runner 就是这么做的)。
缩放 fit 采纳:seedance 守时,线性缩放足够 fit,可作为 EN/DE/JA/KO 的「无 lipsync」快速档(省掉每窗 sync-3)。要不要我在 runner 里加 digital_human.lipsync:false 开关,走「对齐/缩放但跳过 sync-3」这条快速链路?