Zum Inhalt springen
ModelAufgelistetExtern
Herunterladen

Mmdiff

Yagmur Akarken, Orest Kupyn, Christian Rupprecht — Visual Geometry Group, University of Oxford

ArtOtherBasismodellblack-forest-labs/FLUX.1-devVersionRevision c70ad45CBewertung

Modellquelle

Art
Other
Dateigröße
3,23–3,34 GB
Basismodell
black-forest-labs/FLUX.1-dev
Version
vRevision c70ad45
Aktualisiert
21. Okt. 2026
Downloads
0
Quelle
Hugging Face

Quellenbeschreibung

MMDiff: Extending Diffusion Transformers for Multi-Modal Generation

Yagmur Akarken, Orest Kupyn, Christian Rupprecht — Visual Geometry Group, University of Oxford

arXiv Paper · Code · Project page

MMDiff turns a frozen diffusion transformer into a multi-modal generator. To create an image, a diffusion model must build up the semantic and geometric structure of the scene — and normally discards it once the image is rendered. MMDiff keeps that structure and decodes it into aligned dense outputs (semantic segmentation, salient object detection, monocular depth) in the same generation pass. Because the maps come straight from the generator, one frozen model can produce an image and its annotations together, enabling synthetic data generation at scale.

This repository hosts the trained decoder-head checkpoints. The FLUX.1-dev backbone and the optional DINOv3 encoder are never fine-tuned — only lightweight heads (~36M parameters) are trained.

  • Backbone: FLUX.1-dev (frozen) + optional DINOv3 ViT-B/16 (frozen)
  • Trained parameters: ~36M (decoder heads + feature-fusion module only)

How it works

  1. Multi-timestep feature fusion. A small learned module reads FLUX features from several denoising steps and fuses them with spatially varying aggregation weights. Perceptual information is temporally distributed along the trajectory, so this is the largest contributor — up to +28.7% mIoU over single-timestep extraction.
  2. Concept-driven attention. The frozen model provides interpretable spatial guidance (e.g. object vs. background, near vs. far) as extra cues for each task.
  3. Per-task decoder. A standard lightweight decoder is trained per task (DeepLabV3+ for segmentation/saliency, DPT for depth). The generator is never trained.
  4. Complementary to encoders. Frozen FLUX features are competitive with — and complementary to — state-of-the-art encoders such as DINOv3; combining them improves every task.

Checkpoints

FileTaskDatasetConfig (in code repo)
pascal_segmentation.ckptSemantic segmentationPascal VOC 2012configs/pascal_voc_config.yaml
duts_saliency.ckptSalient object detectionDUTSconfigs/duts_config.yaml
nyu_depth.ckptMonocular depthNYU Depth V2configs/nyu_depth_config.yaml

Each file is a PyTorch Lightning checkpoint; inference loads only the model weights (state_dict).

Results

Feature quality (frozen backbone, lightweight heads). Higher is better unless marked ↓.

VariantVOC mIoU ↑DUTS Sm ↑DUTS MAE ↓NYU AbsRel ↓NYU RMSE ↓
MMDiff78.90.9180.0200.11750.370
MMDiff + DINOv384.950.9340.0180.11640.365

Synthetic-data training (decoders trained on MMDiff-generated images + labels).

SettingVOC mIoU ↑DUTS Sm ↑NYU AbsRel ↓
Synthetic only78.90.7840.1880
Synthetic + real fine-tune87.80.8630.1185

Trained purely on synthetic data, MMDiff outperforms prior synthetic-data methods (DatasetDM, DiffuMask, Dataset Diffusion). See the paper for full tables.

Usage

Clone the code repository, then download a checkpoint and run inference:

from huggingface_hub import hf_hub_download

ckpt = hf_hub_download("yagmurakarken/mmdiff", "pascal_segmentation.ckpt")
python scripts/inference.py --task pascal \
    --config configs/pascal_voc_config.yaml --checkpoint "$ckpt" \
    --image my_image.jpg --output_dir outputs/

Swap pascal → duts / nyu (with the matching config and checkpoint) for the other tasks.

Architecture flags (--hidden_dim, --num_transformer_layers, --num_timesteps, --dino_model) must match the checkpoint you load.

You can also generate an image and its aligned annotation together with the same frozen backbone:

python scripts/generate.py --task pascal \
    --config configs/pascal_voc_config.yaml --checkpoint "$ckpt" \
    --prompts_file prompts.txt --output_dir synth/

Intended uses & limitations

  • Intended use: dense prediction (segmentation, saliency, depth) from generated or real images, and large-scale synthetic dataset generation with aligned labels for research.
  • Requires FLUX.1-dev. These are decoder heads only — you need access to the (gated) FLUX.1-dev backbone to run them.
  • Not a plug-and-play transformers/diffusers pipeline. Use the code repository to load and run the checkpoints.
  • Performance reflects the training datasets above and may not transfer to very different domains.

Citation

@article{akarken2026mmdiff,
  title   = {{MMDiff}: Extending Diffusion Transformers for Multi-Modal Generation},
  author  = {Akarken, Yagmur and Kupyn, Orest and Rupprecht, Christian},
  journal = {arXiv preprint arXiv:2606.16673},
  year    = {2026}
}

License

The decoder checkpoints and code in this project are released under the MIT License. Note that the frozen FLUX.1-dev backbone they depend on is governed by the FLUX.1-dev Non-Commercial License, and DINOv3 by its own license — review those before any non-research use.

Acknowledgements

Built on FLUX.1-dev, DINOv3, diffusers, and PyTorch Lightning.

Quellen

1 Quelle
Hugging FacePrimärVersion c70ad454576ee39145da830816e0c90dcad71b0f
huggingface.co/yagmurakarken/mmdiff/tree/c70ad454576ee39145da830816e0c90dcad71b0f

Verifiziert 18. Aug.

Modellartefakte

3 Artefakte

duts_saliency.ckpt

ckpt · 3,33 GB · SHA-256 e908877a29b0…ce56 · Hugging Face

Herunterladen

nyu_depth.ckpt

ckpt · 3,23 GB · SHA-256 d7f894fdc3e2…7372 · Hugging Face

Herunterladen

pascal_segmentation.ckpt

ckpt · 3,34 GB · SHA-256 88b642b2d24c…8302 · Hugging Face

Herunterladen

Quellenauszüge

2 Auszüge

--- license: mit library_name: pytorch pipeline_tag: image-segmentation base_model: black-forest-labs/FLUX.1-dev tags: - diffusion - diffusion-transformer - flux - dinov3 - dense-prediction - semantic-segmentation - salient-object-detection - depth-estimation - synthetic-data --- # MMDiff: Extending Diffusion Transformers for Multi-Modal Generation *Yagmur Akarken, Orest Kupyn, Christian Rupprecht — Visual Geometry Group, University of Oxford* [![arXiv](https://img.shields.io/badge/arXiv-2606.16673-b31b1b.svg)](https://arxiv.org/abs/2606.16673)  [**Paper**](https://arxiv.org/abs/2606.16673) · [**Code**](https://github.com/yagmurakarken/mmdiff) · [**Project page**](https://yagmurakarken.github.io/mmdiff/) **MMDiff** turns a **frozen** diffusion transformer into a multi-modal generator. To create an image, a diffusion model must build up the semantic and geometric structure of the scene — and normally discards it once the image is rendered. MMDiff keeps that structure and decodes it into aligned dense outputs (semantic segmentation, salient object detection, monocular depth) in the same generation pass. Because the maps come straight from the generator, one frozen model can produce an image **and** its annotations together, enabling synthetic data generation at scale. This repository hosts the trained **decoder-head checkpoints**. The FLUX.1-dev backbone and the optional DINOv3 encoder are never fine-tuned — only lightweight heads (~36M parameters) are trained. - **Backbone:** [FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev) (frozen) + optional [DINOv3 ViT-B/16](https://huggingface.co/facebook/dinov3-vitb16-pretrain-lvd1689m) (frozen) - **Trained parameters:** ~36M (decoder heads + feature-fusion module only) ## How it works 1. **Multi-timestep feature fusion.** A small learned module reads FLUX features from several denoising steps and fuses them with spatially varying aggregation weights. Perceptual information is temporally distributed along the trajectory, so this is the largest contributor — up to **+28.7% mIoU** over single-timestep extraction. 2. **Concept-driven attention.** The frozen model provides interpretable spatial guidance (e.g. object vs. background, near vs. far) as extra cues for each task. 3. **Per-task decoder.** A standard lightweight decoder is trained per task (DeepLabV3+ for segmentation/s...

Source context: 0 downloads · 0 likes · Pipeline image-segmentation · Library pytorch · Repo yagmurakarken/mmdiff