[ECCV 2026] Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance
536
stars
15
commits
Python
primary language
Aug 12, 2026
updated
On-par-with/surpass 10B-level industrial SOTA generalist (FLUX.1-Fill-Dev) on 6 benchmarks across natural and portrait scenes & Only 2% (0.2B) parameters, and inference 15× faster
Kangsheng Duan1,*, Ziyang Xu1,*,†, Wenyu Liu1, Xiaohu Ruan2, Xiaoxin Chen2, Xinggang Wang1, :email:
(*) Equal Contribution, (†) Project Leader, (:email:) Corresponding Author.
1 Huazhong University of Science and Technology. 2 VIVO AI Lab.



Moebius is our latest AI Image Inpainting endeavor, serving as a direct continuation of our previous work, PixelHacker. Named after the concepts of "infinity" and "master painter," Moebius embodies our vision: maintaining exceptional generation quality under highly constrained computational resources while pushing the efficiency of image inpainting to its limits as much as possible.
Under the iron grip of the Scaling Law, AI research has long devolved into a grueling arms race of burning capital, compute, and data. Consequently, the academic community finds it increasingly difficult to keep pace with the ever-expanding model scales driven by the tech industry.
"But is this brute-force scaling truly the only path forward?"
Using general-purpose image inpainting as our strategic entry point, we challenge the "scale-at-all-costs" path dependency dictated by the Scaling Law narrative. Through the synergistic optimization of architectural design and knowledge distillation, Moebius achieves a remarkably compact footprint of just 0.22B parameters. It liberates high-quality image inpainting from the heavy-compute narrative of 10B+ foundation models: Across six comprehensive benchmarks spanning both natural and portrait scenes, Moebius performs on par with, and in certain scenarios surpasses, the inpainting quality of 10B+ industrial state-of-the-art (SOTA) generalist models like FLUX.1-Fill-Dev, while delivering a massive >15× inference acceleration.
💡 The core insight of Moebius can be summarized in a single equation:
$$\begin{aligned} \text{Synergy} \times (\text{Architecture} + \text{Distillation}) = & \text{Shattering the "Impossible Triangle" of} \ & \text{Low Parameters, Fast Inference, and High Quality} \end{aligned}$$
--- written on June 16, 2026 ---
June 25, 2026: 🎉 We are excited to share that Moebius has achieved the No. 4 weekly ranking (4/105) on Hugging Face. Thank you all for your support!
June 19, 2026: 🎉 Moebius has achieved the No. 1 daily ranking on Hugging Face!
June 18, 2026: 🔥🔥 We have released the training and inference code, and open-sourced the model weights on Hugging Face.
June 18, 2026: 🎉 Moebius is accepted by ECCV'26! We have released the preprint on arXiv, check it here ~ 🍻
June 16, 2026: 🔥 We have submitted the GitHub repo for the first time, and there will be more updates soon. Stay tuned! 🤗




The masks of the evaluation set are shared in Google Drive, and the corresponding images can be downloaded from the following open source platforms:
conda create -n moebius python=3.14.4
conda activate moebius
# cd /xx/xx/Moebius
pip install -r requirements.txt
Download the checkpoint of VAE and put it into ./weight/vae.
Download the checkpoints of pretrained version, fine-tuned version (places2), fine-tuned version (celeba-hq), fine-tuned version (ffhq), and put them into ./weight/Moebius.
Finally, the detailed organizational form is as follows:
├── weight
| ├── Moebius
| ├── pretrained
| ├── diffusion_pytorch_model.bin
| ├── ft_places2
| ├── diffusion_pytorch_model.bin
| ├── ft_celebahq
| ├── diffusion_pytorch_model.bin
| ├── ft_ffhq
| ├── diffusion_pytorch_model.bin
| ├── vae
| ├── config.json
| ├── diffusion_pytorch_model.bin
├── ...
You can run the following code to start training. The training script supports distributed training, and you can configure the GPU count via environment variables.
# For single GPU training:
PY_TRAINER=train_distillation.py bash run/run_ddp_1node.sh config/train_demo.sh
# For multi GPU training:
NUM_GPUS_PER_MACHINE=4 bash run/run_ddp_1node.sh config/train_demo.sh
You can run the following code directly to get the inpainting result of the example image-mask pair, and the result will be generated in ./outputs. If you want to infer on custom data, just place the image and mask with the same name in ./dataset.local/imgs and ./dataset.local/masks, respectively, then run the following code as well.
python -m infer.infer_moebius \
--model-config config/model_cfg/moebius.yaml \
--model-weight weight/Moebius/ft_celebahq/diffusion_pytorch_model.bin \
--real-dir data/images \
--mask-dir data/masks \
--save-dir ./outputs \
--cfg 2.0 \
--batch-size 8 \
--num-workers 8
@inproceedings{DuanAndXu2026Moebius,
title={Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance},
author={Kangsheng Duan and Ziyang Xu and Wenyu Liu and Xiaohu Ruan and Xiaoxin Chen and Xinggang Wang},
year={2026},
booktitle={European Conference on Computer Vision (ECCV)}
}
Both the code and the pretrained model weights of Moebius are released under the Apache License 2.0, the same license used by the Qwen model family. Commercial use of the weights and the images produced with them is permitted.
We sincerely thank the authors of the following open-source repositories for their contributions to the community, which have greatly facilitated our research and development of Moebius: Sana, flash-linear-attention, lambda-networks, timm, Muon, diffusers.
Python
99.3%
[ECCV 2026] Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance
536
stars
15
commits
Python
primary language
Aug 12, 2026
updated
On-par-with/surpass 10B-level industrial SOTA generalist (FLUX.1-Fill-Dev) on 6 benchmarks across natural and portrait scenes & Only 2% (0.2B) parameters, and inference 15× faster
Kangsheng Duan1,*, Ziyang Xu1,*,†, Wenyu Liu1, Xiaohu Ruan2, Xiaoxin Chen2, Xinggang Wang1, :email:
(*) Equal Contribution, (†) Project Leader, (:email:) Corresponding Author.
1 Huazhong University of Science and Technology. 2 VIVO AI Lab.



Moebius is our latest AI Image Inpainting endeavor, serving as a direct continuation of our previous work, PixelHacker. Named after the concepts of "infinity" and "master painter," Moebius embodies our vision: maintaining exceptional generation quality under highly constrained computational resources while pushing the efficiency of image inpainting to its limits as much as possible.
Under the iron grip of the Scaling Law, AI research has long devolved into a grueling arms race of burning capital, compute, and data. Consequently, the academic community finds it increasingly difficult to keep pace with the ever-expanding model scales driven by the tech industry.
"But is this brute-force scaling truly the only path forward?"
Using general-purpose image inpainting as our strategic entry point, we challenge the "scale-at-all-costs" path dependency dictated by the Scaling Law narrative. Through the synergistic optimization of architectural design and knowledge distillation, Moebius achieves a remarkably compact footprint of just 0.22B parameters. It liberates high-quality image inpainting from the heavy-compute narrative of 10B+ foundation models: Across six comprehensive benchmarks spanning both natural and portrait scenes, Moebius performs on par with, and in certain scenarios surpasses, the inpainting quality of 10B+ industrial state-of-the-art (SOTA) generalist models like FLUX.1-Fill-Dev, while delivering a massive >15× inference acceleration.
💡 The core insight of Moebius can be summarized in a single equation:
$$\begin{aligned} \text{Synergy} \times (\text{Architecture} + \text{Distillation}) = & \text{Shattering the "Impossible Triangle" of} \ & \text{Low Parameters, Fast Inference, and High Quality} \end{aligned}$$
--- written on June 16, 2026 ---
June 25, 2026: 🎉 We are excited to share that Moebius has achieved the No. 4 weekly ranking (4/105) on Hugging Face. Thank you all for your support!
June 19, 2026: 🎉 Moebius has achieved the No. 1 daily ranking on Hugging Face!
June 18, 2026: 🔥🔥 We have released the training and inference code, and open-sourced the model weights on Hugging Face.
June 18, 2026: 🎉 Moebius is accepted by ECCV'26! We have released the preprint on arXiv, check it here ~ 🍻
June 16, 2026: 🔥 We have submitted the GitHub repo for the first time, and there will be more updates soon. Stay tuned! 🤗




The masks of the evaluation set are shared in Google Drive, and the corresponding images can be downloaded from the following open source platforms:
conda create -n moebius python=3.14.4
conda activate moebius
# cd /xx/xx/Moebius
pip install -r requirements.txt
Download the checkpoint of VAE and put it into ./weight/vae.
Download the checkpoints of pretrained version, fine-tuned version (places2), fine-tuned version (celeba-hq), fine-tuned version (ffhq), and put them into ./weight/Moebius.
Finally, the detailed organizational form is as follows:
├── weight
| ├── Moebius
| ├── pretrained
| ├── diffusion_pytorch_model.bin
| ├── ft_places2
| ├── diffusion_pytorch_model.bin
| ├── ft_celebahq
| ├── diffusion_pytorch_model.bin
| ├── ft_ffhq
| ├── diffusion_pytorch_model.bin
| ├── vae
| ├── config.json
| ├── diffusion_pytorch_model.bin
├── ...
You can run the following code to start training. The training script supports distributed training, and you can configure the GPU count via environment variables.
# For single GPU training:
PY_TRAINER=train_distillation.py bash run/run_ddp_1node.sh config/train_demo.sh
# For multi GPU training:
NUM_GPUS_PER_MACHINE=4 bash run/run_ddp_1node.sh config/train_demo.sh
You can run the following code directly to get the inpainting result of the example image-mask pair, and the result will be generated in ./outputs. If you want to infer on custom data, just place the image and mask with the same name in ./dataset.local/imgs and ./dataset.local/masks, respectively, then run the following code as well.
python -m infer.infer_moebius \
--model-config config/model_cfg/moebius.yaml \
--model-weight weight/Moebius/ft_celebahq/diffusion_pytorch_model.bin \
--real-dir data/images \
--mask-dir data/masks \
--save-dir ./outputs \
--cfg 2.0 \
--batch-size 8 \
--num-workers 8
@inproceedings{DuanAndXu2026Moebius,
title={Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance},
author={Kangsheng Duan and Ziyang Xu and Wenyu Liu and Xiaohu Ruan and Xiaoxin Chen and Xinggang Wang},
year={2026},
booktitle={European Conference on Computer Vision (ECCV)}
}
Both the code and the pretrained model weights of Moebius are released under the Apache License 2.0, the same license used by the Qwen model family. Commercial use of the weights and the images produced with them is permitted.
We sincerely thank the authors of the following open-source repositories for their contributions to the community, which have greatly facilitated our research and development of Moebius: Sana, flash-linear-attention, lambda-networks, timm, Muon, diffusers.
Python
99.3%