Instructions to use mlx-community/Bernini-v2-bf16 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use mlx-community/Bernini-v2-bf16 with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir Bernini-v2-bf16 mlx-community/Bernini-v2-bf16
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
| license: apache-2.0 | |
| base_model: ByteDance/Bernini-Diffusers-v2 | |
| tags: | |
| - mlx | |
| - video | |
| - text-to-video | |
| - image-to-video | |
| - video-editing | |
| - wan | |
| - bernini | |
| library_name: mlx | |
| # Bernini-v2 (bf16, MLX) | |
| Apple-MLX conversion of **[ByteDance/Bernini-Diffusers-v2](https://huggingface.co/ByteDance/Bernini-Diffusers-v2)** | |
| (revision `399cf6a`) — the full unified Bernini: MLLM semantic planner + dual-expert | |
| Wan2.2-A14B DiT renderer. Converted 2026-08-18. Apache-2.0, same as upstream. | |
| ## Contents | |
| | File | Component | Notes | | |
| |---|---|---| | |
| | `high_noise_model.safetensors` | Wan2.2-A14B high-noise expert (bf16) | **retrained vs Bernini-R** (co-trained with the planner) — not interchangeable with `mlx-community/Bernini-R-bf16` | | |
| | `low_noise_model.safetensors` | Wan2.2-A14B low-noise expert (bf16) | ditto | | |
| | `mllm/` | Qwen2.5-VL-7B semantic planner (bf16, HF layout) | Bernini-trained weights (`scratch_mllm`), not stock Qwen; configs + tokenizer from upstream | | |
| | `vit_decoder.safetensors` | DiffLoss_FM flow-match head (bf16) | SimpleMLPAdaLN, width 4096, depth 16 | | |
| | `planner_glue.safetensors` | MLPConnector + `mask_tokens` | keys verbatim upstream | | |
| | `t5_encoder.safetensors` | umT5-XXL (bf16) | bit-identical to the stock Wan2.2 encoder (verified vs upstream) | | |
| | `vae.safetensors` | 16-ch WanVAE | bit-identical to stock Wan2.2 (verified vs upstream) | | |
| | `config.json` | wan-core runtime config (dual-expert A14B) | | | |
| | `conversion.json` | conversion provenance | | | |
| ## Conversion notes | |
| - Experts: upstream fp32 masters → diffusers→original-Wan key premap → mlx-video sanitize → bf16. | |
| Key set verified bijective against the established Bernini-R MLX layout; value probes bit-exact | |
| (RNE) against the fp32 masters. | |
| - The planner (`mllm.*`) is saved in standard HF Qwen2.5-VL layout for direct consumption by | |
| MLX Qwen2.5-VL loaders. | |
| - The upstream in-checkpoint fp32 T5 copy was skipped; the standalone bf16 encoder (verified | |
| bit-identical) is shipped instead. | |
| ## Usage | |
| The **renderer** is drop-in for the Bernini-R MLX stack (same layout as | |
| `mlx-community/Bernini-R-bf16`) — e.g. [`bernini-r-mlx`](https://github.com/xocialize/bernini-r-mlx) | |
| `pipeline_mlx.t2v/t2i`, or the Swift `bernini-r-mlx-swift`/`wan-core` stack. | |
| The **planner plane** (mllm / vit_decoder / connector / mask_tokens) implements the | |
| MaskGIT-style semantic planning of the Bernini paper (arXiv 2605.22344); a Swift-MLX planner | |
| integration is in progress in `bernini-r-mlx-swift`. Until then these files carry the released | |
| weights for downstream use. | |
| ## Provenance & license | |
| Upstream: [ByteDance/Bernini-Diffusers-v2](https://huggingface.co/ByteDance/Bernini-Diffusers-v2) | |
| (Apache-2.0). All credit for the model to the Bernini authors — see the | |
| [Bernini repository](https://github.com/bytedance/Bernini) and paper. This conversion changes | |
| dtype/layout only (plus the key renames described above); no weights were fine-tuned. | |