--- 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.