Bernini核心功能全揭秘:文本生成视频、图像编辑、视频修复一网打尽
【免费下载链接】Bernini项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance/Bernini
Bernini是字节跳动推出的一款功能强大的视频生成与编辑框架,它结合了基于MLLM的语义规划器和基于DiT的渲染器,为用户提供了从文本生成视频、图像编辑到视频修复的一站式解决方案。无论是新手还是专业用户,都能通过Bernini轻松实现各种创意需求。
✨ Bernini的核心亮点
Bernini作为一款先进的视频生成与编辑工具,具有诸多令人瞩目的亮点。它采用了统一的框架,能够灵活应对多种任务,包括文本到图像(t2i)、图像到图像(i2i)、文本到视频(t2v)、视频到视频(v2v)、参考视频编辑(rv2v)以及参考到视频(r2v)等。
在视频编辑方面,Bernini在领先的闭源商业模型中处于第一梯队。其性能通过自建的竞技场平台进行评估,人类标注员对成对编辑进行盲投,投票结果被聚合为Bradley-Terry分数和成对胜率矩阵,充分证明了其卓越的编辑能力。
🚀 简单三步,快速上手Bernini
1️⃣ 环境准备
要运行Bernini,需要满足以下要求:
- Python3.11.2
- CUDA GPU:推荐使用Hopper GPU(H100/H800/H200)以支持FlashAttention-3,其他CUDA GPU可回退到FlashAttention-2或PyTorch SDPA
- CUDA toolkit12.4(与固定的
torch==2.5.1+cu124匹配,最低要求12.3+,如果要构建FlashAttention-3)
此外,requirements.txt中固定了一些关键依赖包,如torch==2.5.1+cu124、diffusers==0.35.2、accelerate==0.34.2、transformers==4.57.3等。
2️⃣ 安装步骤
首先,克隆仓库:
git clone https://gitcode.com/hf_mirrors/ByteDance/Bernini.git bernini && cd bernini然后安装依赖:
pip install -r requirements.txt对于可选的额外功能,如多GPU序列并行和更快的注意力机制,可根据需求进行安装。多GPU序列并行需要Open-VeOmni,而更快的注意力机制可选择FlashAttention-2(适用于一般CUDA GPU)或FlashAttention-3(仅适用于Hopper GPU)。
3️⃣ 模型权重下载
Bernini-R使用两组权重:
- Wan2.2 base:可从Hugging Face上的
Wan-AI/Wan2.2-T2V-A14B-Diffusers获取,它提供了VAE、UMT5文本编码器、分词器和Transformer架构/基础权重。在首次运行时会自动下载,可通过configs/bernini_renderer_wan22/config.json中的wan22_base进行配置。 - Bernini-R checkpoint:训练好的高噪声/低噪声Transformer权重(safetensors),可从Hugging Face获取,通过
--high_noise_ckpt/--low_noise_ckpt参数传入,支持本地目录和Hugging Face仓库ID。
可以使用huggingface-cli下载模型:
pip install -U "huggingface_hub" hf download Wan-AI/Wan2.2-T2V-A14B-Diffusers --local-dir Wan2.2-T2V-A14B-Diffusers hf download ByteDance/Bernini --local-dir Bernini🎨 丰富功能,满足多样创作需求
文本到图像(t2i)
只需提供文本描述,Bernini就能生成对应的图像。在单GPU上运行,生成一帧图像,需传递--num_frames 1参数:
python infer_single_gpu.py --high_noise_ckpt <hi> --low_noise_ckpt <lo> \ --case assets/testcases/t2i/t2i.json --num_frames 1图像编辑(i2i)
对现有图像进行编辑,同样在单GPU上运行,生成一帧图像:
python infer_single_gpu.py --high_noise_ckpt <hi> --low_noise_ckpt <lo> \ --case assets/testcases/i2i/i2i.json --num_frames 1文本到视频(t2v)
根据文本描述生成视频,可在多GPU上运行:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/t2v/t2v.json视频编辑(v2v/mv2v)
提供了两种视频编辑案例。对于主体保持普通运动的编辑,使用v2v任务类型:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/v2v/v2v_case1.json对于需要改变主体运动的编辑,mv2v任务类型能提供更好的结果:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/v2v/v2v_case2.json参考+视频编辑(rv2v)
有两种参考视频编辑案例。案例1是参考图像引导的视频编辑,将源视频中的服装替换为参考图像中的服装:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/rv2v/rv2v_case1.json案例2是视频插入示例,将内容插入源视频,可设置为720p/24fps以更清晰地展示插入结果:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/rv2v/rv2v_case2.json \ --num_frames 121 --fps 24 --max_image_size 1280参考到视频(r2v)
从一个或多个参考图像生成视频:
torchrun --nproc-per-node 8 infer_multi_gpu.py \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --ulysses 8 \ --case assets/testcases/r2v/r2v.json🖥️ Gradio演示,直观体验操作流程
gradio_demo.py通过Gradio UI展示了相同的 pipeline。任务类型下拉菜单会自动填充guidance_mode(仍可用户编辑),上传的媒体会路由到匹配的插槽,结果会内联渲染。
单GPU运行:
python gradio_demo.py --high_noise_ckpt <hi> --low_noise_ckpt <lo> --port 78608 GPU运行,8路Ulysses序列并行:
torchrun --nproc-per-node 8 gradio_demo.py --ulysses 8 \ --high_noise_ckpt <hi> --low_noise_ckpt <lo> --port 7860 --share添加--use_pe(并export OPENAI_API_KEY=.../BERNINI_PE_API_KEY=...)可启用GPT提示增强,UI中的复选框是在此标志之上的每个请求开关。
📝 总结
Bernini作为一款功能全面的视频生成与编辑框架,凭借其强大的性能和丰富的功能,为用户提供了便捷高效的创作体验。无论是文本生成视频、图像编辑还是视频修复,Bernini都能出色完成。通过简单的安装和操作步骤,用户可以快速上手,尽情发挥创意,打造出令人惊艳的视觉作品。如果你正在寻找一款专业的视频处理工具,Bernini绝对是一个值得尝试的选择!
【免费下载链接】Bernini项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance/Bernini
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考