界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

video-review

video-review

【开发与工程】审查多 clip 视频的连贯性问题(含妆造与音色穿帮),通过修改 prompt + 多模态参考素材并用 Seedance 重新生成来修复,而非 FFmpeg 后处理。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: video-review description: 审查多 clip 视频的连贯性问题(含妆造与音色穿帮),通过修改 prompt + 多模态参考素材并用 Seedance 重新生成来修复,而非 FFmpeg 后处理。

视频连贯性审查与修复

核心原则

穿帮修复 = 修改 prompt + 加上正确的 reference_image / reference_video / reference_audio + Seedance 重新生成,而不是 FFmpeg 滤镜/转场/调色。

FFmpeg 只用于三件事:

  1. 提取关键帧(人工/AI 比对用)
  2. 抽前段尾段(做下一段的 reference_video,由 changdu clip-extract-tail 包装)
  3. 拼接最终成片(changdu clip-concat,保留音视频)

前置条件

  • 已安装 changdu CLI 和 ffmpeg
  • 视频目录中包含 视频_ClipXXX.mp4 和 视频_ClipXXX.prompt.txt
  • 主角已有"角色三视图"图片素材(建议先用 asset-create --type Image 入库)
  • 第 1 个 clip 完成后已用 changdu voice-asset-from-clip 提取并入库主角音色样本(可选但强烈推荐)

工作流

Step 1:提取关键帧(视觉比对)

对每个 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

Step 2:逐对比较,识别穿帮

对相邻 clip 的衔接帧(Clip N 尾帧 vs Clip N+1 首帧)以及音轨进行检查,常见 9 类问题:

类别检查内容严重程度
TRANSITION前一 clip 尾部提前展示下一 clip 内容(叙事泄漏)高
CHARACTER角色外观不一致(发型、伤疤、面部特征变化)高
MAKEUP妆容/眉形/口红色/盘发等细节漂移(即便整张脸"像"也算穿帮)高
TWIN同一画面出现两个几乎一模一样的角色(双胞胎问题)高
PROP道具变化(武器形状、数量、位置不一致)或道具与参考图不符中
SCENE场景布局不一致(柱子数量、墙壁颜色变化)或人物站位与场景空间不符中
VOICE角色音色变化(同一人物不同 clip 听感不同、性别错乱、口音切换)高
BINDINGprompt 中角色/道具出现时缺少 @图片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/声纹比对工具

Step 3:生成修复计划

每个穿帮点的修复方式:

修复方式适用穿帮类别操作
REGENCHARACTER / MAKEUP / PROP / SCENE / DETAIL修改 prompt 强化对应锚定块 + clip-regen 重新生成
REGEN-CHAIN同一处穿帮波及连续多个 clip修改 prompt 后用 clip-chain-regen 链式重生(默认 ref_video 衔接)
VOICE-FIXVOICE 类穿帮用第 1 个 clip 提取音色样本 + clip-regen --voice-asset <id> 重生该 clip;同时在 prompt 中补充音色特征描述词
BINDING-FIXBINDING 类穿帮检查 prompt 中所有角色/道具是否都用了 @图片N 格式,补全遗漏的绑定
TWIN-FIXTWIN 类穿帮在 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)

Step 4:提示词预检

修复前先检查所有 prompt 质量(含妆造/音色/视频参考三条新规则):

changdu prompt-optimize --dir ./ --check

Step 5:执行修复

5.1 重新生成(REGEN)— 穿帮修复的核心方式

先修改 视频_ClipXXX.prompt.txt,根据穿帮类型强化对应约束块:

  • 角色穿帮(CHARACTER) → 在【角色锚定】中更精确描述当前状态
  • 妆造穿帮(MAKEUP) → 把妆容/发型/五官精修拆出独立【妆造锁定】块,写明眉形/眼影/口红/盘发
  • 道具穿帮(PROP) → 在【道具锁定】中明确形状/数量/位置
  • 场景穿帮(SCENE) → 在【场景锁定】中增加更多固定细节
  • 主角缺失 → 在分镜描述中每个时段都明确提及主角

然后用 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

重新生成后,再次提取关键帧确认问题已修复。

5.2 链式重生(REGEN-CHAIN)

当连续多个 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

5.3 音色修复(VOICE-FIX)

第 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

5.4 裁剪叙事泄漏(TRIM)

changdu clip-trim \
  --input 视频_Clip003.mp4 \
  --output 视频_Clip003.mp4 \
  --trim-tail 2.0

Step 6:重新拼接

用 clip-concat 拼接所有 clip(保留完整音视频):

changdu clip-concat \
  --input-dir ./ \
  --output 最终版.mp4

Step 7:二次审查

对修复后的视频重复 Step 1-2(含音轨抽取),确认问题已解决。最多迭代 2 轮。

修改 prompt 的要诀

  1. 角色锚定:在 prompt 开头明确当前外观状态(如"束冠短发,左颊有血痕,右手持单刀")
  2. @图片N 绑定:确保 prompt 中每次提及角色都用 角色名@图片N 格式,每次提及道具都用 道具名@图片N 格式,绝不能省略
  3. 妆造锁定:把眉形 / 眼影 / 口红 / 盘发 / 鬓角等细节单独成块,避免被其他描述淹没。角色有妆造变化时,确保使用对应妆造的参考图
  4. 道具锁定:明确列出每个角色手持/佩戴的道具及尺寸形状;有道具参考图时在 prompt 开头绑定(如「图片4为U盘道具参考」)
  5. 场景锁定:用固定短语描述场景,同一场景的 clip 使用完全相同的描述;有场景360度视频时通过 --ref-video 传入
  6. 范围限制:只描述当前 15 秒内的事,加"本段仅展示上述动作"
  7. 否定约束:对容易出错的细节加否定描述
  8. 反双胞胎:多角色同画面时加"视频全程不要在同一画面中复制相同人物,不要多人同脸"
  9. 主角在场:每个时段的分镜描述中都要提到主角的动作/位置
  10. 音色锚定:凡有台词必须显式声明 reference_audio: <voice_asset_id>,并在生成命令侧 --voice-asset 传入。prompt 中必须加音色特征描述(如"低厚温润中年男声的音色"),不只写"音频N的音色"
  11. 视频参考说明:传 --ref-video 时必须用一句自然语言说明每个参考视频的语义角色("视频1 是上一段尾部,仅作外观与位置参考,不要复刻其运镜")
  12. 参考图分工:每张图只承担一种职责(面部/全身/场景/道具),禁止混用

关联技能

  • storyboard-to-seedance-prompt(提示词规范,含妆造/音色/视频参考三块)
  • novel-to-video(整体工作流)
  • asset-management(音色样本与视频参考素材入库)
  • changdu CLI 命令:
    • clip-extract-tail:抽前段尾段做 reference_video
    • voice-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:提示词质量检查(含妆造/音色/视频参考三条新规则)
我的收藏