Official Repo For PerceptionDLM Codebase
PerceptionDLM
Parallel Region Perception with Multimodal Diffusion Language Models
Highlights β’ News β’ Installation β’ Models & Datasets β’ Quick Start β’ Training β’ Evaluation β’ Citation

π¬ Demos
Parallel region captioning in action β given multiple masks, PerceptionDLM describes all regions simultaneously in a single denoising pass:
|
https://github.com/user-attachments/assets/cd078bbc-d24b-4c55-b8ee-4ac86685d831 |
https://github.com/user-attachments/assets/269b186c-468b-49f4-b25a-88f1be3d8bdf |
If the videos do not play inline, click to view: demo 0 Β· demo 1.
PerceptionDLM is a multimodal diffusion language model optimized for efficient parallel region perception. Built upon a strong foundational baseline (PerceptionDLM-Base), it fully leverages the parallel decoding nature of diffusion language models (DLMs): given an image and multiple region masks, it generates descriptions for all regions simultaneously within a single denoising process β avoiding the linear latency growth of autoregressive (AR) region captioners.
β¨ Highlights
- π§© Parallel region captioning. Describe many masked regions in a single denoising pass, achieving up to 3.4Γ throughput speedup in dense multi-region scenarios.
- π Strong diffusion VLM baseline. PerceptionDLM-Base outperforms LLaDA-V on 15 / 16 multimodal benchmarks, establishing a new state of the art among open discrete diffusion VLMs.
- π New benchmark β ParaDLC-Bench. A multi-region localized captioning benchmark that jointly evaluates caption quality and inference efficiency.
- π Fully open. Code, model weights, training data recipe, and evaluation suite are released.
π° News
- [2026-6] π PerceptionDLM is released! Paper, code, models, and ParaDLC-Bench are now public.
π¦ Installation
We use uv for fast and reproducible Python environment management.
# 1. Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Clone the repository
git clone https://github.com/MSALab-PKU/PerceptionDLM.git
cd PerceptionDLM
3. Sync the environment for the model you want to use
uv sync --extra=dmllm # for PerceptionDLM-Base
uv sync --extra=pdmllm # for PerceptionDLM (parallel region perception)
After syncing, activate the virtual environment (e.g., source .venv/bin/activate).
π€ Models & Datasets
| Type | Name | Link | | :--- | :--- | :--- | | Model | PerceptionDLM-Base (8B) | π€ MSALab/PerceptionDLM-Base | | Model | PerceptionDLM (8B) | π€ MSALab/PerceptionDLM | | Backbone | LLaDA-8B-Instruct (HF format) | π€ MSALab/LLaDA-8B-Instruct-HF | | Data | PerceptionDLM-Data (training data) | π€ MSALab/PerceptionDLM-Data | | Benchmark | ParaDLC-Bench | π€ MSALab/ParaDLC-Bench Β· evaluation/ParaDLC-Bench |
π Quick Start
Run direct inference on the provided sample images in assets/.
PerceptionDLM-Base (image-level understanding)
python demo/infer_dmllm.py \
--model-path MSALab/PerceptionDLM-Base \
--image assets/demo.jpg \
--prompt "What color shirt is the man in the picture wearing?" \
--gen-length 64 --block-length 64 --steps 64
PerceptionDLM (parallel region captioning)
Generate captions for one or more binary masks in parallel:
python demo/infer_pdmllm.py \
--model-path MSALab/PerceptionDLM \
--image assets/demo.jpg \
--masks assets/demomask0.jpg \
assets/demomask1.jpg \
assets/demomask2.jpg \
--gen-length 32 --steps 32 --temperature 0.0 --top-p 1.0
π‘ A web demo is also available under demo/gradio.
π Data Preparation
Download the datasets from Hugging Face and organize them as shown below:
- Bee Collections β
Bee-Training-Data-Stage1,Bee-Training-Data-Stage2,Honey-Data-15M - LLaVA-OneVision-1.5-Instruct-Data
- π€ MSALab/PerceptionDLM-Data β region mask/caption annotations for PerceptionDLM
./
βββ datasets/ # PerceptionDLM-Base (4-stage) training data
β βββ Bee-Training-Data-Stage1/
β βββ Bee-Training-Data-Stage2/
β βββ LLaVA-OneVision-1.5-Instruct-Data/
β βββ Honey-Data-15M/
βββ annotations/ # region mask/caption annotations (PerceptionDLM)
β βββ dam_dataset.json
β βββ coconut_dataset.json
β βββ sam_dataset.json
βββ images/ # corresponding image files
π For detailed dataset formats and config structures, see datasets.md.
Model Conversion (optional)
To train from the original LLaDA weights, convert them to our format first (or simply use the pre-converted MSALab/LLaDA-8B-Instruct-HF on Hugging Face, which is the default in all configs):
python scripts/convert.py \
--model_path /path/to/LLaDA-8B-Instruct \
--output /path/to/LLaDA-8B-Instruct-HF
ποΈ Training
Training configurations (data configs and train configs) live in the configs/ directory.
export WANDBAPIKEY="yourwandbapikeyhere"
Example: 8 GPUs per node
bash scripts/dmllmmultirun.sh train <dataconfig> <trainingconfig> 8
Reproducing our training setup
- PerceptionDLM-Base: full 4-stage pipeline on 32Γ NVIDIA H100 (80GB) GPUs (~3 weeks total).
- PerceptionDLM: initialized from PerceptionDLM-Base and trained on the full ParaCaption corpus in ~2 days on 32Γ H100.
π Evaluation
We provide a comprehensive evaluation suite covering both Multimodal Benchmarks (via VLMEvalKit) and Dense Grounded Captioning (ParaDLC-Bench & DLC-Bench). Our ParaDLC-Bench is available on Hugging Face: π€ MSALab/ParaDLC-Bench.
π See the dedicated Evaluation Guide for setup, commands, and judge configuration.
π Main Results
PerceptionDLM-Base β General Multimodal Understanding
PerceptionDLM-Base establishes a strong open diffusion VLM baseline, outperforming LLaDA-V on 15 / 16 benchmarks and staying competitive with leading AR VLMs at the same scale.
Bold = best score in each row. "β" = not reported; $^\dagger$ / $^\star$ = re-evaluated by us (official scripts / VLMEvalKit). See the paper for the full protocol.
PerceptionDLM β Parallel Region Perception
PerceptionDLM achieves a strong accuracyβefficiency trade-off on multi-region captioning:
| Method | Type | ParaDLC-Bench Avg (%) | TPF β | Time (s) β | | :--- | :--- | :---: | :---: | :---: | | GAR-8B | AR (sequential) | 69.5 | 1.0 | 479 | | LLaDA-V-8B | Diffusion | 35.2 | 1.0 | 3241 | | PerceptionDLM-8B | Diffusion (parallel) | 62.4 | 2.9 | 276 |
TPF = Tokens Per Forward (higher means more parallel). Full tables are reported in the paper.
π Acknowledgements
This project builds upon the excellent work of LLaDA, LLaVA, VLMEvalKit, DAM, and GAR. We thank the authors of the Open-Bee and LLaVA-OneVision-1.5 datasets for their open contributions.
π Citation
If you find PerceptionDLM useful for your research, please consider citing:
@article{sun2026perceptiondlm,
title = {PerceptionDLM: Parallel Region Perception with Multimodal Diffusion Language Models},
author = {Sun, Yueyi and Wang, Yuhao and Li, Jason and Tian, Ye and Zhang, Tao and Mai, Jacky and Wang, Yihan and Wang, Haochen and Bai, Jinbin and Yang, Ling and Tong, Yunhai},
journal = {arXiv preprint arXiv:2606.19534},
year = {2026},
eprint = {2606.19534},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2606.19534}
}
π License
This project is released under the Apache License 2.0.