Model reference · open weights
Bernini is an open-weight video model from ByteDance. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Maker | ByteDance |
|---|---|
| Type | Video models |
| Task | Image→video |
| Runs with | diffusers |
| Released | 2026-08-13 |
| Popularity | 0 downloads / month |
| Licence | Open weights |
About
Chenchen Liu*, Junyi Chen*, Lei Li*, Lu Chi*,§, Mingzhen Sun*, Zhuoying Li*, Yi Fu, Ruoyu Guo, Yiheng Wu, Ge Bai, Zehuan Yuan✉
Bernini is a unified framework for video generation and editing that combines an MLLM-based semantic planner with a DiT-based renderer.
Bernini-Diffusers-v2 packages the full semantic-planning pipeline: a Qwen2.5-VL planner, Bernini planning weights, and Wan2.2 diffusion components in one self-contained diffusers-format directory.
Compared with the renderer-only Bernini-R releases, Bernini-Diffusers-v2 is recommended when you need stronger instruction following, multi-step semantic planning, and better handling of complex video generation or editing requests. Compared with the first Bernini-Diffusers release, v2 uses a training recipe that warms up the connector for thousands of steps before co-training, improving reference-guided video editing and OpenS2V performance.
| Field | Description |
|---|---|
| Model type | Full video generation/editing pipeline with an MLLM-based semantic planner and a DiT-based renderer. |
| Checkpoint | ByteDance/Bernini-Diffusers-v2 |
| Code | ByteDance/Bernini |
| Renderer base | Wan2.2-T2V-A14B |
| Planner base | Qwen2.5-VL-7B-Instruct |
| Recommended use | Complex generation/editing requests that benefit from explicit latent semantic planning and stronger instruction following. |
| Supported tasks | t2i, i2i, t2v, v2v, rv2v, and r2v. |
| Model behavior | Decomposes complex instructions and plans semantic changes before rendering, at the cost of a heavier checkpoint layout than Bernini-R. |
| Model | EditVerse | OpenVE | OpenS2V | VBench | Bernini-v2v (OS) | Bernini-rv2v (OS) |
|---|---|---|---|---|---|---|
| Bernini-v2 7+14B | 8.02 | 3.96 | 63.83 | 84.46 | 3.49 | 3.55 |
On video editing, Bernini reaches the first tier among leading closed-source commercial models in our internal arena evaluation based on blind human pairwise comparisons.
This release is a self-contained diffusers-format directory. Pass the downloaded Bernini-Diffusers-v2 directory directly to --config.
Bernini-Diffusers-v2/
bernini/
mllm/
scheduler/
t5_text_encoder/
t5_tokenizer/
vae/
config.json
transformer_config.json
transformer_2_config.json
At runtime:
bernini/ provides the Bernini planning checkpoint.mllm/ provides the Qwen2.5-VL planner assets.transformer_config.json and transformer_2_config.json define the Wan2.2 diffusion decoder components used by the full pipeline.t5_text_encoder/, t5_tokenizer/, vae/, and scheduler/ provide the base diffusion modules required for inference.pip install -U "huggingface_hub"
hf download ByteDance/Bernini-Diffusers-v2 \
--local-dir pretrained_models/Bernini-Diffusers-v2
The official inference code is available in the Bernini repository.
git clone https://github.com/bytedance/Bernini.git bernini && cd bernini
pip install -r requirements.txt
# Open-VeOmni is required. Install it with --no-deps so it does not pull in a
# different torch build and override the pinned torch==2.7.1+cu126:
pip install --no-deps git+https://github.com/ByteDance-Seed/VeOmni.git@v0.1.11
Recommended environment:
Pass the downloaded directory directly as --config:
python infer_single_gpu.py --config pretrained_models/Bernini-Diffusers-v2 \
--case assets/testcases/i2i/i2i.json --num_frames 1
--use_pe enhances the prompt through an OpenAI-compatible endpoint and is recommended for best generation quality.
export BERNINI_PE_API_KEY=... # or OPENAI_API_KEY
export BERNINI_PE_BASE_URL=... # or OPENAI_BASE_URL
export BERNINI_PE_MODEL=... # vision-capable chat model
# Single GPU
python gradio_demo.py --config pretrained_models/Bernini-Diffusers-v2 --port 7860
# 8 GPUs, 8-way Ulysses sequence parallel
torchrun --nproc-per-node 8 gradio_demo.py --ulysses 8 \
--config pretrained_models/Bernini-Diffusers-v2 \
--port 7860 --share
The scripts/bernini_v2/ directory in the Bernini repo provides ready-to-run task launchers for Bernini-Diffusers-v2:
run_t2i.shrun_i2i.shrun_t2v.shrun_v2v.shrun_rv2v.shrun_r2v.shrun_gradio.shYou can override the model directory with:
export BERNINI_CONFIG=/path/to/Bernini-Diffusers-v2
If you use Bernini in your research, please cite:
@article{bernini,
title = {Bernini: Latent Semantic Planning for Video Diffusion},
author = {Chenchen Liu and Junyi Chen and Lei Li and Lu Chi and Mingzhen Sun and Zhuoying Li and Yi Fu and Ruoyu Guo and Yiheng Wu and Ge Bai and Zehuan Yuan},
journal = {arXiv preprint arXiv:2605.22344},
year = {2026}
}
Bernini builds on several outstanding open-source projects:
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys bernini for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (bernini below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/videos/generations \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"bernini","prompt":"a drone shot over a forest"}'
Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.