ByteDance open-sourced Bernini for instruction-based video editing

Bernini pairs a Qwen2.5-VL semantic planner with a Wan2.2 DiT renderer. Apache 2.0 weights for V2V edits, reference-guided swaps, and subject-to-video.

SaifullahSaifullah
3 min read
ByteDance open-sourced Bernini for instruction-based video editing

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:

ComponentRole
Qwen2.5-VL-7B-InstructSemantic planner
Wan2.2-T2V-A14B (14B DiT)Renderer
Bernini planning weightsLatent semantic planning connector
ByteDance Bernini on GitHub

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
Bernini-Diffusers on Hugging Face
Bernini architecture diagram with MLLM planner on the left and DiT renderer on the right

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.

ReleaseFocus
Wan 2.2Base video generation
LanceUnified generation model (earlier line)
BerniniEditing 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.

Workflow showing generate with Wan versus edit with Bernini planner-renderer stack

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.

Share this post

Related posts