Most video models generate from scratch. Editing is the harder product problem: change only what the user asked for, keep identity stable, don't melt the background.
ByteDance's Bernini, open-sourced in June 2026 under Apache 2.0, splits the job. An MLLM planner figures out what the edit means. A diffusion transformer renderer paints pixels. The digest flagged it as rivaling top closed-source editors. The architecture explains why.
Planner + renderer, not one monolithic blob
Bernini's full pipeline (Bernini-Diffusers) bundles:
| Component | Role |
|---|---|
| Qwen2.5-VL-7B-Instruct | Semantic planner |
| Wan2.2-T2V-A14B (14B DiT) | Renderer |
| Bernini planning weights | Latent semantic planning connector |
The planner decomposes complex instructions before diffusion. That ordering helps on edits where untouched regions should stay frozen.
There's also Bernini-R, a renderer-only variant (14B and 1.3B checkpoints). Simpler setup. Strong on style transfer, subtitle removal, local edits. Weaker on complex human generation. Pick R when you don't need full semantic planning overhead.
Tasks the release covers
Ready-to-run scripts live under scripts/bernini/:
bash scripts/bernini/run_t2i.sh # text-to-image bash scripts/bernini/run_i2i.sh # image editing bash scripts/bernini/run_t2v.sh # text-to-video bash scripts/bernini/run_v2v.sh # video editing (instruction) bash scripts/bernini/run_rv2v.sh # reference + video editing bash scripts/bernini/run_r2v.sh # reference-to-video (up to 5 images)
Default video output: 480p / 16 fps, 81 frames. The release prioritizes edit fidelity over max resolution.
Core edit modes from the paper and docs:
- V2V: text instruction on existing footage
- RV2V: reference image guides style or content onto source video
- Content insertion: place an image or clip into a scene
- R2V / subject-to-video: recognizable person or character from reference stills

Hardware reality check
Bernini wants serious GPU. Docs recommend Hopper-class (H100/H800/H200) with FlashAttention-3, CUDA 12.4+, Python 3.11.2. Multi-GPU for video paths with Ulysses sequence parallelism.
This is not a MacBook Sunday project unless you stick to Bernini-R 1.3B on narrow edits.
ByteDance's own human-annotated video editing arena (Bradley-Terry pairwise scoring) places Bernini-R in the first tier alongside leading commercial editors on edit tasks. Treat arena rankings as directional. Run your footage.
How Bernini fits next to Lance and Wan
ByteDance has been on an open-weight streak: Wan 2.2, Lance unified generation, Wan 2.2 Animate, now Bernini.
| Release | Focus |
|---|---|
| Wan 2.2 | Base video generation |
| Lance | Unified generation model (earlier line) |
| Bernini | Editing with explicit semantic planning |
If you're building a creative ops pipeline, Bernini is the edit layer. Wan is the generate layer. Plan compute separately.

When I'd use it in production
Strong fits:
- Marketing teams doing garment swaps, localized text overlays, or reference-guided reskins
- Previz and storyboard iteration before a paid render farm
- Research teams that need Apache 2.0 weights and reproducible scripts
Pause when:
- You need 4K broadcast delivery today (480p default is a ceiling, not a floor)
- You lack GPU ops to host 14B video diffusion reliably
- Identity consistency requirements exceed what your legal team accepts from open models
Gradio demo: gradio_demo.py in the repo. Paper: Bernini: Latent Semantic Planning for Video Diffusion (arXiv:2605.22344).
Takeaway
Bernini is the most practical open edit stack I've seen in 2026 because it names the two jobs (understand the edit, render the edit) instead of hoping one model guesses both.
If video is part of your content ops and you're still paying per export for simple instruction edits, self-hosting Bernini-R on a single Hopper box is worth a pilot.
Exploring custom vision or generative media pipelines for your team? Book a free discovery call.

