brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
video-review审查多 clip 视频的连贯性问题(含妆造与音色穿帮),通过修改 prompt + 多模态参考素材并用 Seedance 重新生成来修复,而非 FFmpeg 后处理。
Independent GitHub snapshot · Automated classification · Original documentation governs
穿帮修复 = 修改 prompt + 加上正确的 reference_image / reference_video / reference_audio + Seedance 重新生成,而不是 FFmpeg 滤镜/转场/调色。
FFmpeg 只用于三件事:
reference_video,由 changdu clip-extract-tail 包装)changdu clip-concat,保留音视频)视频_ClipXXX.mp4 和 视频_ClipXXX.prompt.txtasset-create --type Image 入库)changdu voice-asset-from-clip 提取并入库主角音色样本(可选但强烈推荐)对每个 clip 提取首帧、中帧、尾帧用于人工/AI 比对:
mkdir -p analysis
for clip in 视频_Clip*.mp4; do
stem="${clip%.mp4}"
ffmpeg -y -i "$clip" -vf "select=eq(n\,0)" -vframes 1 -q:v 1 "analysis/${stem}_first.jpg"
ffmpeg -y -sseof -1 -i "$clip" -update 1 -q:v 1 "analysis/${stem}_last.jpg"
total=$(ffprobe -v error -select_streams v:0 -count_frames -show_entries stream=nb_read_frames -of csv=p=0 "$clip")
mid=$((total / 2))
ffmpeg -y -i "$clip" -vf "select=eq(n\,$mid)" -vframes 1 -q:v 1 "analysis/${stem}_mid.jpg"
done
对相邻 clip 的衔接帧(Clip N 尾帧 vs Clip N+1 首帧)以及音轨进行检查,常见 9 类问题:
| 类别 | 检查内容 | 严重程度 |
|---|---|---|
| TRANSITION | 前一 clip 尾部提前展示下一 clip 内容(叙事泄漏) | 高 |
| CHARACTER | 角色外观不一致(发型、伤疤、面部特征变化) | 高 |
| MAKEUP | 妆容/眉形/口红色/盘发等细节漂移(即便整张脸"像"也算穿帮) | 高 |
| TWIN | 同一画面出现两个几乎一模一样的角色(双胞胎问题) | 高 |
| PROP | 道具变化(武器形状、数量、位置不一致)或道具与参考图不符 | 中 |
| SCENE | 场景布局不一致(柱子数量、墙壁颜色变化)或人物站位与场景空间不符 | 中 |
| VOICE | 角色音色变化(同一人物不同 clip 听感不同、性别错乱、口音切换) | 高 |
| BINDING | prompt 中角色/道具出现时缺少 @图片N 绑定,导致模型无法锚定参考图 | 高 |
| DETAIL | 其他细节(月亮形状、光照方向不一致) | 低 |
音色检查方式:
# 抽取每个 clip 的音轨片段做比对
mkdir -p analysis_audio
for clip in 视频_Clip*.mp4; do
stem="${clip%.mp4}"
ffmpeg -y -ss 6 -i "$clip" -t 6 -vn -acodec libmp3lame -q:a 2 "analysis_audio/${stem}_voice.mp3"
done
# 人耳过一遍,或者上传到 ASR/声纹比对工具
每个穿帮点的修复方式:
| 修复方式 | 适用穿帮类别 | 操作 |
|---|---|---|
| REGEN | CHARACTER / MAKEUP / PROP / SCENE / DETAIL | 修改 prompt 强化对应锚定块 + clip-regen 重新生成 |
| REGEN-CHAIN | 同一处穿帮波及连续多个 clip | 修改 prompt 后用 clip-chain-regen 链式重生(默认 ref_video 衔接) |
| VOICE-FIX | VOICE 类穿帮 | 用第 1 个 clip 提取音色样本 + clip-regen --voice-asset <id> 重生该 clip;同时在 prompt 中补充音色特征描述词 |
| BINDING-FIX | BINDING 类穿帮 | 检查 prompt 中所有角色/道具是否都用了 @图片N 格式,补全遗漏的绑定 |
| TWIN-FIX | TWIN 类穿帮 | 在 prompt 末尾追加"视频全程不要在同一画面中复制相同人物,不要多人同脸";检查是否使用了三视图(禁止);确保每个角色有独立的面部特写参考图 |
| TRIM | 叙事泄漏(clip 尾部多余内容) | changdu clip-trim --trim-tail Xs 裁剪 |
不使用 FFmpeg 调色、xfade 转场等后处理。这些操作会破坏音频、引入新的不一致。
输出修复计划:
修复计划:
- Clip003: TRIM(尾部 2s 叙事泄漏)
- Clip004: REGEN-MAKEUP(眼影色变化 → 强化【妆造锁定】+ 加 ref_video 抽 Clip003 尾段 + 重生)
- Clip005: VOICE-FIX(女主音色变粗 → 加 --voice-asset asset-qingluo-voice 重生)
- Clip006: REGEN(主角缺失 → 修改 prompt 确保主角全程在场)
- Clip007-009: REGEN-CHAIN(连续 3 段服装色差 → clip-chain-regen --continuity-mode ref_video)
修复前先检查所有 prompt 质量(含妆造/音色/视频参考三条新规则):
changdu prompt-optimize --dir ./ --check
先修改 视频_ClipXXX.prompt.txt,根据穿帮类型强化对应约束块:
然后用 Seedance 重新生成。CHARACTER / MAKEUP 类穿帮强烈推荐使用 --prev-clip 自动抽尾段做 reference_video,再叠加 ref_image 做"双锚定",效果远胜单首帧:
changdu clip-regen \
--clip 4 --prompt-dir ./ \
--asset <角色三视图ID> --asset <场景ID> \
--prev-clip ./视频_Clip003.mp4 \
--prev-tail-seconds 5 \
--voice-asset <音色样本ID> \
--prompt-header '图片1是男主三视图,图片2是场景。视频1 是 Clip003 尾段,请保持人物外观、妆造与位置连续。' \
--ratio 16:9 --duration 15
重新生成后,再次提取关键帧确认问题已修复。
当连续多个 clip 都被同一处穿帮污染时,用 clip-chain-regen 一次性重生:
changdu clip-chain-regen \
--clips 7,8,9 --prompt-dir ./ \
--asset <角色三视图ID> --asset <场景ID> \
--regen-prev \
--continuity-mode ref_video \
--voice-asset <音色样本ID> \
--prompt-header '图片1是男主三视图,图片2是场景。' \
--ratio 16:9 --duration 15
第 1 步——若还没有音色样本,从最早一段音色正确的 clip 提取并入库:
changdu voice-asset-from-clip \
--input ./视频_Clip001.mp4 \
--group-id <主角素材组ID> \
--start 6 --duration 8
# 输出:音色 Asset ID: asset-xxxxx
第 2 步——给穿帮的 clip 重生时加 --voice-asset 或 --ref-audio:
changdu clip-regen \
--clip 5 --prompt-dir ./ \
--asset <角色三视图ID> --asset <场景ID> \
--voice-asset asset-xxxxx \
--prev-clip ./视频_Clip004.mp4 \
--prompt-header '图片1是女主三视图。视频1 是 Clip004 尾段,仅作妆造与位置参考。音轨1 锁定女主音色。' \
--ratio 16:9 --duration 15
同一集后续如果仍出现 VOICE 漂移,建议直接走链式:
changdu clip-chain-regen --clips 5,6,7 --prompt-dir ./ \
--asset <角色ID> --voice-asset asset-xxxxx \
--continuity-mode ref_video --ratio 16:9 --duration 15
changdu clip-trim \
--input 视频_Clip003.mp4 \
--output 视频_Clip003.mp4 \
--trim-tail 2.0
用 clip-concat 拼接所有 clip(保留完整音视频):
changdu clip-concat \
--input-dir ./ \
--output 最终版.mp4
对修复后的视频重复 Step 1-2(含音轨抽取),确认问题已解决。最多迭代 2 轮。
角色名@图片N 格式,每次提及道具都用 道具名@图片N 格式,绝不能省略--ref-video 传入reference_audio: <voice_asset_id>,并在生成命令侧 --voice-asset 传入。prompt 中必须加音色特征描述(如"低厚温润中年男声的音色"),不只写"音频N的音色"--ref-video 时必须用一句自然语言说明每个参考视频的语义角色("视频1 是上一段尾部,仅作外观与位置参考,不要复刻其运镜")storyboard-to-seedance-prompt(提示词规范,含妆造/音色/视频参考三块)novel-to-video(整体工作流)asset-management(音色样本与视频参考素材入库)changdu CLI 命令:
clip-extract-tail:抽前段尾段做 reference_videovoice-extract / voice-asset-from-clip:抽音色 / 一键入库clip-regen:用 Seedance 重新生成穿帮 clip(支持 --prev-clip、--voice-asset、--ref-video、--ref-audio)clip-chain-regen:链式重生(默认 --continuity-mode ref_video)clip-trim:裁剪叙事泄漏clip-concat:拼接成片(保留音视频)prompt-optimize:提示词质量检查(含妆造/音色/视频参考三条新规则)