---
title: Bernini-v2-bf16
canonical_url: "https://www.modelscope.cn/models/mlx-community/Bernini-v2-bf16"
md_url: "https://www.modelscope.cn/models/mlx-community/Bernini-v2-bf16.md"
repository: mlx-community/Bernini-v2-bf16
last_updated: 2026-08-19
license: apache-2.0
model_type:
  - t2v
base_model:
  - ByteDance/Bernini-Diffusers-v2
base_model_relation: finetune
parameters: 36.9B
tensor_type:
  - BF16
library_name:
  - mlx
  - safetensors
  - pytorch
frameworks:
  - pytorch
downloads: 35
stars: 1
tags:
  - mlx
  - video
  - text-to-video
  - image-to-video
  - video-editing
  - wan
  - bernini
---

# Bernini-v2-bf16

> Bernini-v2-bf16 - mlx-community 在 ModelScope 开源的模型。Bernini-v2 (bf16, MLX)

mlx-community/Bernini-v2-bf16 是 ModelScope 魔搭社区上的 36.9B 参数机器学习模型，采用 apache-2.0 许可，基于 ByteDance/Bernini-Diffusers-v2 构建。

- **Repository**: mlx-community/Bernini-v2-bf16
- **License**: apache-2.0
- **Parameters**: 36.9B
- **Base model**: ByteDance/Bernini-Diffusers-v2
- **Tags**: mlx, video, text-to-video, image-to-video, video-editing, wan, bernini
- **Downloads**: 35
- **Stars**: 1
- **Last updated**: 2026-08-19

Source: https://www.modelscope.cn/models/mlx-community/Bernini-v2-bf16

---

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