楼主
2 小时前
1. Bernini 这个框架能做什么
一句话:字节跳动开源的"统一视频生成 + 视频编辑"框架,覆盖 8 种任务,且 7 个任务共享同一个 Web 接口。
| 大类 | 能干什么 |
|---|---|
| 文生 | 文字 → 图 / 视频 |
| 编辑 | 给一张图/视频 + 指令 → 重新生成 |
| 参考 | 给参考图(最多 5 张)+ 指令 → 生成视频 |
| 参考编辑 | 给参考图 + 源视频 + 指令 → 编辑视频 |
| 广告植入 | 给源视频 + 产品/Logo → 自然植入 |
无音频输出(不要与 Seedance 2.0 混淆,那个有音频)。
2. Task type ↔ Guidance mode ↔ 业务场景
2.1 Task type 列表(8 种)
| Task type | 名称含义 | 输入 | 输出 | 典型业务场景 |
|---|---|---|---|---|
| t2i | Text-to-Image | 仅 prompt | 单张图 | 海报草图、PPT 插图、商品概念图、UI 配图 |
| t2v | Text-to-Video | 仅 prompt | 视频 | 短视频脚本预览、广告 storyboard、概念片 |
| i2i | Image-to-Image | 1 张源图 + prompt | 单张图 | 商品换背景、人像换妆容、图风格化、修图指令 |
| v2v | Video-to-Video | 1 段源视频 + prompt | 视频 | 视频换风格、换天气、换场景、视频"重绘" |
| mv2v | Multi-Video-to-Video | 多段源视频 + prompt | 视频 | 多镜头融合、跨视频元素重组 |
| r2v | Reference-to-Video | 1~5 张参考图 + prompt | 视频 | 用 IP 形象生成动态视频、产品参考动态展示 |
| rv2v | Reference + Video → Video | 参考图 + 源视频 + prompt | 视频 | 把参考图里的元素(衣服/材质/物体)"换"进源视频 |
| ads2v | Ads-Video(产品植入) | 参考图 + 源视频 + prompt | 视频 | 广告植入:产品/Logo 自然嵌入实拍视频 |
2.2 Guidance mode 列表(9 种)
命名规律:<任务前缀>[_<策略后缀>]
任务前缀
| 前缀 | 含义 |
|---|---|
t2v |
文字 → 视频 |
v2v |
视频 → 视频 |
r2v |
参考图 → 视频 |
rv2v |
参考图 + 视频 → 视频 |
vae_txt_vit |
完整 Bernini 专属,整合 VAE + 文本 + ViT 三路条件 |
策略后缀
| 后缀 | 含义 | 用途 |
|---|---|---|
| 无 | 基础 CFG | 最朴素 |
_apg |
Adaptive Projected Guidance | 投影自适应,画质更稳,默认推荐 |
_wapg |
Weighted APG | 多模态信号加权 APG,复杂条件场景 |
_chain |
链式 guidance | 多条件依次引导,复杂编辑 |
9 个完整模式
| Guidance mode | 解读 | 典型适用 |
|---|---|---|
t2v |
文生视频,基础 CFG | t2i/t2v 基线对比 |
t2v_apg |
文生视频 + APG | renderer 默认 t2i/t2v |
v2v |
视频编辑,基础 CFG | renderer 默认 i2i |
v2v_apg |
视频编辑 + APG | renderer 默认 v2v/mv2v/ads2v |
v2v_chain |
视频编辑链式引导 | 复杂多重编辑高级实验 |
r2v_apg |
参考图生视频 + APG | renderer 默认 r2v |
rv2v |
参考图视频编辑 | renderer 默认 rv2v |
rv2v_wapg |
加权 APG 的 rv2v | 多参考图场景更均衡 |
vae_txt_vit_wapg |
三路条件 + 加权 APG | 完整 Bernini 默认所有任务 |
3. Task type ↔ Guidance mode 自动映射表(源码级)
UI 里切换 Task type,Guidance mode 会自动改成下表对应值。映射规则取决于你加载的模型:
3.1 加载 Renderer-only(Bernini-R-1.3B / Bernini-R-14B)
| Task type | 默认 Guidance mode | 默认帧数 | 默认分辨率 |
|---|---|---|---|
| t2i | t2v_apg |
1 | 848×480 |
| t2v | t2v_apg |
81 | 848×480 |
| i2i | v2v |
1 | 848×480 |
| v2v | v2v_apg |
81 | 848×480 |
| mv2v | v2v_apg |
81 | 848×480 |
| r2v | r2v_apg |
81 | 848×480 |
| rv2v | rv2v |
81 | 848×480 |
| ads2v | v2v_apg |
81 | 848×480 |
3.2 加载完整 Bernini(含 MLLM Planner)
| Task type | 默认 Guidance mode | 默认帧数 | 默认分辨率 |
|---|---|---|---|
| t2i | vae_txt_vit_wapg |
1 | 512×512 |
| t2v | vae_txt_vit_wapg |
81 | 848×480 |
| i2i | vae_txt_vit_wapg |
1 | 512×512 |
| v2v | vae_txt_vit_wapg |
81 | 848×480 |
| mv2v | vae_txt_vit_wapg |
81 | 848×480 |
| r2v | rv2v ⚠️ |
81 | 848×480 |
| rv2v | rv2v |
81 | 848×480 |
| ads2v | vae_txt_vit_wapg |
81 | 848×480 |
⚠ 完整 Bernini 模式下
r2v默认走rv2v,是 Planner 模式的设计选择,正常现象。
4. 各 Task 输入项规则
源码 TASK_INPUTS 决定 UI 上哪些输入框对该 Task 有效:
| Task | 需要源视频 | 单图作用 | 需要 Gallery(多参考图) |
|---|---|---|---|
| t2i | ❌ | 忽略 | ❌ |
| t2v | ❌ | 忽略 | ❌ |
| i2i | ❌ | 源图(editing source) | ❌ |
| v2v | ✅ | 忽略 | ❌ |
| mv2v | ✅(多段) | 忽略 | ❌ |
| r2v | ❌ | 当成参考图 | ✅ |
| rv2v | ✅ | 当成参考图 | ✅ |
| ads2v | ✅ | 当成参考图 | ✅ |
不需要的输入区即使你上传了也会被忽略。
5. 业务场景速查
5.1 内容生产
| 想做什么 | 用 |
|---|---|
| 配文章封面/海报 | t2i |
| 概念片预览 | t2v |
| 商品图改背景/换光线 | i2i |
| 视频换季节/天气/风格 | v2v |
| 多镜头剪辑融合 | mv2v |
5.2 IP / 角色一致性
| 想做什么 | 用 |
|---|---|
| 让某 IP 形象动起来 | r2v |
| 让"某件衣服"穿到模特身上 | rv2v |
| 把品牌 Logo 自然加到实拍 | ads2v |
5.3 编辑型业务
| 编辑类型 | 用 | 注意 |
|---|---|---|
| 单帧美化 | i2i | num_frames=1 |
| 视频整体重绘 | v2v | 默认 81 帧 |
| 局部材质替换(衣服/桌面/沙发) | rv2v | 上传源视频 + 材质参考图 |
| 换装 | rv2v | 服装作为 reference image |
| 换天气 | v2v | prompt 里写 "snowing, winter" 等 |
6. 关键参数对效果的影响
| 参数 | 作用 | 改大 | 改小 |
|---|---|---|---|
num_frames |
视频帧数 | 视频更长,显存↑、时长↑ | 视频更短,更快 |
num_inference_steps |
去噪步数(默认 40) | 画质↑,速度↓ | 速度↑,画质↓ |
max_image_size |
最长边像素 | 分辨率↑,显存↑ | 显存↓,画质↓ |
flow_shift |
时序流形偏移 | 动作更夸张 | 动作更平稳 |
omega_txt |
文本引导强度 | 更听 prompt,可能失真 | 更自由,可能跑题 |
omega_img |
图像/参考图引导强度 | 更像参考图 | 更自由发挥 |
omega_vid |
源视频引导强度 | 更贴近源视频 | 改动更大 |
omega_scale |
guidance 总缩放 | 整体引导更强 | 整体更弱 |
eta |
采样噪声系数 | 多样性↑ | 复现性↑ |
seed |
随机种子 | 复现固定结果 | / |
planning_step |
完整 Bernini 专属,MLLM 规划步 | 规划更精细 | 速度↑ |
vit_txt_cfg / vit_img_cfg |
完整 Bernini 专属,ViT 路 CFG | ViT 条件更强 | ViT 条件更弱 |
7. 实操建议
7.1 默认值就是最佳起点
**不要先动 Guidance mode 和 omega_***,先用 default 跑一遍看效果,再针对性微调。
7.2 显存调优
- A100 80G 跑 14B 视频任务 OOM?降
max_image_size到 720 或 640 - 长视频 OOM?降
num_frames到 49 或 33
7.3 提速调优
- 时间紧?降
num_inference_steps到 25~30 - 实验阶段固定
seed=42复现结果
7.4 效果调优
- 结果不像 prompt → 提高
omega_txt(4.0 → 5.5) - 改动太大不像源视频 → 提高
omega_vid(1.25 → 1.6) - 参考图特征不足 → 提高
omega_img(4.5 → 6.0) - 画面过曝/失真 → 切换 guidance_mode 到
_apg后缀版本
8. 业务场景 × 模型选择
| 业务 | 建议模型 | 理由 |
|---|---|---|
| 内部 PoC / 快速验证 | Bernini-R 1.3B | 显存友好、速度快 |
| 高质量内容生产 | Bernini-R 14B | 画质上限高 |
| 复杂指令理解、多模态规划 | 完整 Bernini(含 Planner) | MLLM 加持的语义规划能力 |
| 离线批量生成 | Renderer + infer_single_gpu.py |
命令行批跑 case JSON |
| 在线交互 / 团队共用 | Renderer + gradio_demo.py |
Web UI |
9. FAQ
Q:t2i 为什么默认 guidance_mode 叫 t2v_apg?
A:t2i 在 Bernini 里就是 1 帧的 t2v,复用同一套引导算法,命名沿用 t2v_。
Q:完整 Bernini 模式所有任务都用 vae_txt_vit_wapg,会不会一刀切?
A:是的,Planner 模式的设计哲学就是统一三路引导(VAE + Text + ViT),不再按任务分流,更稳定且容量更大。
Q:我能切换到非默认 guidance_mode 吗?
A:能。Web UI 下拉手动改即可,但官方默认是经过调参的,不建议盲改。
Q:i2i 默认 guidance_mode 是 v2v 不是 v2v_apg,是 bug 吗?
A:不是。i2i 是单帧编辑,原始 CFG(v2v)在单帧上更稳,APG 主要收益在多帧序列上。