AI 视频生产管线¶
主题:从剧本到成片的完整技术链路
适用项目:Suchka-Velvet、CineCog-Studio
完整流程¶
剧本/分镜
→ 角色参考图(Gemini / ComfyUI Z-Image)
→ 关键帧生成(Wan 2.2 / Seedance)
→ I2V 运动视频(gpu-local ComfyUI)
→ TTS 配音(Fun-CosyVoice 3.0)
→ LongCat-Video-Avatar lipsync
→ MMAudio 音效
→ ffmpeg 混音
→ 后期合成(MP4 输出)
图像生成¶
本地(gpu-local ComfyUI)¶
| 模型 | 用途 | 参数 |
|---|---|---|
| Z-Image Base | 高质量角色肖像 | cfg=2.5, steps=20 |
| Z-Image Turbo | 快速预览 | cfg=1.0, steps=8 |
| Wan 2.2 Remix NSFW v2.0 | I2V 主力 | 默认 cuda:1 端口 8189 |
云端¶
| 平台 | 模型 | 价格 |
|---|---|---|
| Replicate | Seedance 1 Pro Fast | $0.075/5s |
| Replicate | LTX-2.3 Pro | 最快 |
| Replicate | Seedream 4.5 | 角色一致性强 |
Storyboard Grid 模型对比实验(2026-04-24)¶
实验:以《小男孩找到了彩虹》为例,测试 3 款模型生成 9 格 3×3 横版分镜板
统一 Prompt:Pixar 3D 风格,16:9 横版,3×3 grid,无边框
| 模型 | 布局控制 | 格数 | 方向 | 一致性 | 画质 | 推荐 |
|---|---|---|---|---|---|---|
| Google Gemini 3 Pro | ✅ | 9格 | 横版 3×3 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 首选 |
| ByteDance Seedream 4.5 | ❌ | 8格 | 竖版 2列 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ❌ 不支持 grid |
| ByteDance Seedream 5 Lite | ✅ | 9格 | 横版 3×3 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ✅ 可用 |
关键结论: - Seedream 4.5:架构限制,无法遵循 grid 布局指令,强化 prompt 无效 - Seedream 5 Lite:成功生成 3×3 横版,但 Panel 5(中间格)只有彩虹无人物(小异常) - Gemini 3 Pro:布局最稳定,画质最高,首选 - 两款模型风格相似(Pixar 3D),未来需在成品中清晰标注来源模型
进阶方案(更精确布局):
程序化拼接——单独生成 9 张图 + PIL/Python 合成 → 100% 精确布局,消除格子内容缺失问题
Seedream 4.5 多图输出(2026-04-24 实测)¶
sequential_image_generation: true+max_images: 1-15支持一次生成最多 15 张风格一致的图- 角色一致性强,适合 character sheet、多角度展示
- Storyboard grid:靠 prompt 描述
3x3 storyboard grid等布局,模型把格子画进一张图里(非独立输出) - Gemini API 澄清:Gemini 同样不支持原生多图输出,
candidate_count=1限制;两者都是 prompt 描述布局
NVIDIA RTX Video Super Resolution (VSR)(2026-04-23)¶
- ComfyUI 节点:
Nvidia_RTX_Nodes_ComfyUI(搜 Manager "RTX" 安装) - 原理:Tensor Cores 单 pass 完成超分 + 去压缩噪声(无需独立 denoise 步骤)
- 输入:标准
IMAGEtensor,单张 PNG = batch of 1,和视频帧完全相同 - 缩放:1x–4x 或指定目标尺寸
- 质量档:LOW / MEDIUM / HIGH / ULTRA;最大输出 ~16MP
- 要求:RTX 30 / 40 系列(依赖 NVIDIA NVVFX SDK)
TTS / 语音¶
- 默认:Fun-CosyVoice 3.0(本地 gpu-local)
- 最佳中文参考音:
jixian-ref-zh4.wav - 最佳英文参考音:
jixian-ref-en.wav - 路径:
/home/jixian/work/cosyvoice2/ - 备选:Qwen3-TTS VoiceDesign(seed 锁定音色)
- MiniMax Speech-2.6-HD:外部 API
- ✅ 音量规则(永久确定,2026-04-14):原始输出直接用,不加任何增益
- +7dB / +9dB / loudnorm 全部放弃,直接用原始音频
- Gemini TTS 男声列表:
- Charon — 中低音,沉稳权威(推荐首选)
- Fenrir — 低沉男声
- Puck — 轻快男声
- Orus — 中性男声
- 默认为 Kore(女声),用于 voice conversion 需改用男声
Seed-VC(声音转换)¶
功能:将任意 TTS 音色转换为目标声音(如 Jixian 声音)
- 安装路径:
gpu-local:/home/jixian/work/Seed-VC/ - venv:
/home/jixian/work/seedvc-venv/ - 推荐参数:
--diffusion-steps 50 --inference-cfg-rate 0.9 - 调用方式:
cd /home/jixian/work/Seed-VC source /home/jixian/work/seedvc-venv/bin/activate python inference.py \ --source /path/to/tts_output.wav \ --target /storage/jixian-assets/voice/jixian-voice-30s.wav \ --output /path/to/output.wav \ --diffusion-steps 50 \ --inference-cfg-rate 0.9 - 适用场景:Gemini TTS(情感控制更好)转换为 Jixian 音色
MOSS-TTS(Zero-shot 声音克隆)¶
- 来源:复旦 OpenMOSS 团队
- 模型:
OpenMOSS-Team/MOSS-TTS(8B 参数) - 安装路径:
gpu-local:/home/jixian/work/moss-tts/ - venv:
/home/jixian/work/moss-tts-venv/ - 功能:Zero-shot 声音克隆,支持中文/英文,无需训练
- 状态:安装完成,推理结果待评估(与 MiniMax / CosyVoice 对比)
- 加载注意:需
device_map="auto"+accelerate,避免 GPU OOM
视频录制方案(HTML Slides → MP4)¶
capture_v10(当前最佳实践,2026-04-13 验证)¶
- 工具:System Chrome
--app+ffmpeg x11grab+ Playwright 控制 - 脚本:
capture_v10_clean.py - 优点:真实 30fps,无 browser UI 遮挡,流畅度远超截图拼接
- 关键规则:
ffmpeg filter_complex必须用subprocess.run(list),不能shell=True- 首张幻灯片需 pre-hide content,避免 GSAP 动画前闪烁
- 音频格式:24000Hz mono(MiniMax 输出)
- 多段 concat:两段 AAC profile 不一致时用全重编码,不用
-c copy
capture_v12(v12 crop 方案,2026-04-20 确认)¶
解决 --no-sandbox 警告条问题:
- 录制分辨率 1920x1088 → crop top 40px → bottom pad 8px → 输出干净 1920x1080
- 这是 Chrome 在 Docker/Xvfb 环境下的必要处理步骤
独立页面策略(交叉干扰防护): - 在捕获流程中实施每张幻灯片独立的 Playwright 页面。 - 这避免了连续播放多张幻灯片时的内存泄漏和 DOM 交叉干扰,确保了图像与音频的最终同步质量。
capture_v5(旧方案,已弃用)¶
- fake clock + Playwright 截图 → ffmpeg 拼接
- 问题:非真实帧,动画不连贯
HTML Slides 开发规范¶
翻译栏防护(必须)¶
- 问题:Chrome 对中文页面自动弹出 Google Translate 工具栏,遮挡录制画面
- 修复:所有需要录制的 HTML 页面必须在
<html>标签声明translate="no":<html lang="zh" translate="no"> - 适用范围:
index.html、player.html,以及所有幻灯片 HTML
多幻灯片播放器:合并 HTML 优于 iframe¶
| 方案 | 问题 |
|---|---|
| iframe 嵌套 | crossfade 闪黑 + postMessage 时序不可靠 |
| 单页合并 HTML ✅ | 无闪烁,GSAP 动画完全可控 |
合并方案要点:
- 所有幻灯片内联为 <div class="slide" id="sN">
- CSS ID 用 sN- 前缀做命名空间
- 每张幻灯片独立 playS{N}() 函数
- 幻灯片退出时调用 killLoops() 清除 repeat:-1 的 tween
X11 截图注意(SSH 环境)¶
- SSH 到 gpu-local 后
$DISPLAY=:99,但import等工具无法连接 X11 socket - 正确做法:用 subagent 本地执行截图(subagent 的 SSH 是真实登录 shell,继承完整 X11 环境)
字幕系统(SubtitleEngine)¶
首次应用:Gemma4 越狱视频(2026-04-16)
打字机字幕效果¶
- 工具:SubtitleEngine(内嵌 JS)
- 速度:40ms/字
- 样式规范:
- ❌ 不用半透明黑底
background: rgba(0,0,0,0.5) - ✅ 纯白文字 +
text-shadow(多重阴影增强可读性) - 位置:
bottom: 52px - 字号:
font-size: 26px - 最大宽度:
max-width: 75%
WaveGlow 音频可视化¶
参考来源:http://design.bot.regdesk.ai/regdesk-presentation/
实现原理¶
- JS 文件:
waveglow.js、centerwave.js、captions.js - 架构:3 个 canvas 叠加
center-wave-glow2(外发光层)glow(中间光晕)canvas(主波形)- CSS
filter: blur()制造发光效果 - 播放时显示,暂停/结束时自动隐藏
素材资源(Stock Footage)¶
工具:stock-footage skill(2026-04-15 扩展)
| 级别 | 平台 | 接入方式 |
|---|---|---|
| Tier 1 | Pexels | API(已集成) |
| Tier 1 | Pixabay | API(Key 已配置) |
| Tier 2 | Mixkit / Coverr / Life of Vids | 浏览器抓取 |
| Tier 3 | Dareful / Videezy / Motion Elements | 手动下载 |
- API Key 路径:
skills/stock-footage/references/api-keys.md
关键规则¶
- 数字必须写英文全拼(CosyVoice 对符号不稳定)
- 单段 TTS ≤12s,超长拆段 + ffmpeg concat
- 每条 TTS 必须 Whisper QA 验证完整性
- 所有子任务丢 subagent,不阻塞主 session