MMaDA - Open-Sourced Multimodal Large Diffusion Language Models (dLLMs with block diffusion, mixed-CoT, unified RL)
1,669
stars
58
commits
Python
primary language
Feb 14, 2026
updated
MMaDA is a new family of multimodal diffusion foundation models designed to achieve superior performance across diverse domains such as textual reasoning, multimodal understanding, and text-to-image generation. MMaDA is distinguished by three key innovations:
MMaDA's decoding demo. This video showcases how a diffusion foundation model generates text and image.
The "Text Generation" part uses a semi-autoregressive sampling method, while the "Multimodal Generation" part adopts non-autoregressive diffusion denoising.
MMaDA includes a series of checkpoints reflecting different training stages:
Overview of MMaDA's capablities.
First, set up the enviroment:
pip install -r requirements.txt
Launch local Gradio demo:
python app.py
Or try it online via our Huggingface Demo.
For batch-level inference, we provide our inference scripts here.
For text generation, we follow LLaDA's configuration and generation script. Simple run:
python generate.py
For multimodal generation and text-to-image generation, first login your wandb account:
wandb login
Inference demo for MultiModal Generation and you can view the results on wandb:
python3 inference_mmu.py \
config=configs/mmada_demo.yaml \
mmu_image_root=./mmu_validation \
mmu_prompts_file=./mmu_validation/prompts_with_vqa.json \
For multimodal generation and text-to-image generation, first login your wandb account:
wandb login
Inference demo for Text-to-Image Genertion and you can view the results on wandb:
python3 inference_t2i.py config=configs/mmada_demo.yaml batch_size=1 validation_prompts_file=validation_prompts/text2image_prompts.txt guidance_scale=3.5 generation_timesteps=15
mode='t2i'
Update your training data path in configs/xx.yaml.
Please first prepare your accelerate configs. You can simple run
accelerate config
Or use our provided configs in accelerate_configs:
├── accelerate_configs/
| ├── 1_gpu.yaml
| └── 8_node_8_gpus_deepspeed_zero2.yaml (for 8 * 8 gpus)
First we use LLaDA-8B-Instruct to initialize our model, and train on ImageNet for basic visual capbalities.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada.py config=configs/mmada_pretraining_stage1_llada_instruct.yaml
Then we replace the ImageNet dataset in Stage 1.1 with Image-Text Dataset. Please change the pretrained model path in mmada_pretraining_stage2_llada_instruct.yaml with your checkpoint in Stage 1.1
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage2.py config=configs/mmada_pretraining_stage2_llada_instruct.yaml
In this stage, we begin training on text instruction following and include corresponding validations. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 1.2
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage3.py config=configs/mmada_pretraining_stage3_llada_instruct.yaml
In this stage, we begin our Mix-CoT finetuning with text reasoning first, along with improved image quality. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 1.3 and prepare your CoT data.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage_cot_sft.py config=configs/mmada_pretraining_stage3_llada_instruct_512_cot.yaml
In this stage, we include multimodal reasoning, along with improved image quality. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 2.1 and prepare your CoT data.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage4.py config=configs/mmada_pretraining_stage4_llada_instruct.yaml
Note: The UniGRPO algorithm has been further implemented and integrated in our dLLM-RL repository. If you want to aggregate multiple rewards together, the key file to modify is ./reward/rl_reward_v.py — this should be the only change needed.
Please refer to evaluation/eval.md for more details.
@article{yang2025mmada,
title={MMaDA: Multimodal Large Diffusion Language Models},
author={Yang, Ling and Tian, Ye and Li, Bowen and Zhang, Xinchen and Shen, Ke and Tong, Yunhai and Wang, Mengdi},
journal={arXiv preprint arXiv:2505.15809},
year={2025}
}
This work is heavily based on dLLM-RL, Show-o, LLaDA, maskgit, transformers, accelerate and webdataset. Thanks to all the authors for their great work.
Python
99.4%
MMaDA - Open-Sourced Multimodal Large Diffusion Language Models (dLLMs with block diffusion, mixed-CoT, unified RL)
1,669
stars
58
commits
Python
primary language
Feb 14, 2026
updated
MMaDA is a new family of multimodal diffusion foundation models designed to achieve superior performance across diverse domains such as textual reasoning, multimodal understanding, and text-to-image generation. MMaDA is distinguished by three key innovations:
MMaDA's decoding demo. This video showcases how a diffusion foundation model generates text and image.
The "Text Generation" part uses a semi-autoregressive sampling method, while the "Multimodal Generation" part adopts non-autoregressive diffusion denoising.
MMaDA includes a series of checkpoints reflecting different training stages:
Overview of MMaDA's capablities.
First, set up the enviroment:
pip install -r requirements.txt
Launch local Gradio demo:
python app.py
Or try it online via our Huggingface Demo.
For batch-level inference, we provide our inference scripts here.
For text generation, we follow LLaDA's configuration and generation script. Simple run:
python generate.py
For multimodal generation and text-to-image generation, first login your wandb account:
wandb login
Inference demo for MultiModal Generation and you can view the results on wandb:
python3 inference_mmu.py \
config=configs/mmada_demo.yaml \
mmu_image_root=./mmu_validation \
mmu_prompts_file=./mmu_validation/prompts_with_vqa.json \
For multimodal generation and text-to-image generation, first login your wandb account:
wandb login
Inference demo for Text-to-Image Genertion and you can view the results on wandb:
python3 inference_t2i.py config=configs/mmada_demo.yaml batch_size=1 validation_prompts_file=validation_prompts/text2image_prompts.txt guidance_scale=3.5 generation_timesteps=15
mode='t2i'
Update your training data path in configs/xx.yaml.
Please first prepare your accelerate configs. You can simple run
accelerate config
Or use our provided configs in accelerate_configs:
├── accelerate_configs/
| ├── 1_gpu.yaml
| └── 8_node_8_gpus_deepspeed_zero2.yaml (for 8 * 8 gpus)
First we use LLaDA-8B-Instruct to initialize our model, and train on ImageNet for basic visual capbalities.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada.py config=configs/mmada_pretraining_stage1_llada_instruct.yaml
Then we replace the ImageNet dataset in Stage 1.1 with Image-Text Dataset. Please change the pretrained model path in mmada_pretraining_stage2_llada_instruct.yaml with your checkpoint in Stage 1.1
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage2.py config=configs/mmada_pretraining_stage2_llada_instruct.yaml
In this stage, we begin training on text instruction following and include corresponding validations. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 1.2
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage3.py config=configs/mmada_pretraining_stage3_llada_instruct.yaml
In this stage, we begin our Mix-CoT finetuning with text reasoning first, along with improved image quality. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 1.3 and prepare your CoT data.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage_cot_sft.py config=configs/mmada_pretraining_stage3_llada_instruct_512_cot.yaml
In this stage, we include multimodal reasoning, along with improved image quality. Please change the pretrained model path in mmada_pretraining_stage3_llada_instruct.yaml with your checkpoint in Stage 2.1 and prepare your CoT data.
accelerate launch --config_file path/to/your/accelerate_config --main_process_port=8888 training/train_mmada_stage4.py config=configs/mmada_pretraining_stage4_llada_instruct.yaml
Note: The UniGRPO algorithm has been further implemented and integrated in our dLLM-RL repository. If you want to aggregate multiple rewards together, the key file to modify is ./reward/rl_reward_v.py — this should be the only change needed.
Please refer to evaluation/eval.md for more details.
@article{yang2025mmada,
title={MMaDA: Multimodal Large Diffusion Language Models},
author={Yang, Ling and Tian, Ye and Li, Bowen and Zhang, Xinchen and Shen, Ke and Tong, Yunhai and Wang, Mengdi},
journal={arXiv preprint arXiv:2505.15809},
year={2025}
}
This work is heavily based on dLLM-RL, Show-o, LLaDA, maskgit, transformers, accelerate and webdataset. Thanks to all the authors for their great work.
Python
99.4%