Framework
hustvl/Moebius avatar
hustvl/Moebius

Moebius (hustvl): a 0.22B image inpainting model aimed at 10B-level output

[ECCV 2026] Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance

544 stars45 forksPythonApache-2.0

At a glance

What is it?
Moebius is a Python image inpainting framework from HUST and VIVO AI Lab that ships a 0.22B-parameter model, code for training and inference, and an Apache-2.0 licence. Its claim is quality on par with much larger models at a fraction of the inference cost, and the trade-offs sit in its dependency list.
Who is it for?
Adopt Moebius if you need object removal or hole filling where a 0.22B checkpoint and fast per-step inference matter more than a generalist model's breadth, and if you can run a recent CUDA stack. Do not adopt it if you need CPU-only serving, a stable API surface, or a documented rollback path, since the README does not describe one.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 62 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 12, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Moebius solves, and who it is actually for

Image inpainting means filling a masked region of a picture so the result looks like it was never edited. The current default answer is a large generalist diffusion model, and the README frames the field as an arms race of compute. Moebius takes the opposite position. It is a task-specific model of 0.22B (226M) parameters, which the README describes as less than 2 percent of FLUX.1-Fill-Dev's 11.9B, and it is trained only for inpainting rather than for generation in general.

The intended users are people who want object removal or hole filling on consumer-grade or edge hardware. The README states the model targets both natural scenes (Places2) and portrait scenes (CelebA-HQ, FFHQ), and that it is evaluated on six benchmarks. If your work is generic text-to-image or instruction editing, this is not the tool: a specialist that only fills masks will not answer prompts or restyle an image. The design bet is that narrowing the task buys back the parameter count.

The LλMI block and the distillation pipeline

Two mechanisms carry the project. The first is architectural. The README describes an LλMI Block that reformulates self-attention and cross-attention by condensing spatial context and global semantic priors into fixed-size linear matrices, which removes the quadratic cost of attention over image tokens. That is the reason a 0.22B model can process high-resolution masks at all, and it is also the reason the model is specialized: a linearized attention path tuned for masked reconstruction is not obviously a general backbone.

The second mechanism is training. Moebius is distilled from PixelHacker, the authors' earlier inpainting model, which acts as teacher. The README states the distillation happens strictly inside the latent space, avoiding pixel-space decoding, and aligns supervision at multiple granularities from intermediate features to diffusion trajectories. A gradient-norm adaptive loss weighting scheme balances those terms during training. The repository reflects this split: train_distillation.py, utils_train.py and the config/ and library/ directories on one side, infer/, utils_infer.py and run/ on the other. The README also notes the authors mapped an architecture-distillation synergy frontier to keep the student from saturating. That is a claim about their training process, not a guarantee for your data.

Installing Moebius and running a first inference

The README's news entry for June 18, 2026 says the training and inference code were released together with the model weights, and the repository ships a requirements.txt at the top level. There are no step-by-step install instructions in the README itself, so the practical path is to install the pinned dependencies and then look at the entry points under infer/ and run/.

The repository's requirements.txt is the only install artifact provided, and its pins are exact:

text
torch==2.7.1+cu130
torchvision
diffusers==0.38.0
transformers
accelerate==1.14.0
safetensors
Pillow
numpy
opencv-python
pyyaml
omegaconf
timm
tqdm
toml
orjson
pandas
tensorboard
lpips
scipy
elatentlpips
flash-linear-attention[cuda]==0.3.2

The torch pin carries a CUDA tag and flash-linear-attention is pinned to its CUDA extra, so the documented setup assumes an NVIDIA GPU with a recent driver. If pip cannot find torch 2.7.1+cu130 for your platform, that is the first thing to resolve, not a bug in Moebius.

Once the environment is in place, the inference entry point lives in the infer/ directory, with shared helpers in utils_infer.py and configuration files in config/. The README does not print the exact invocation, so read the script's argument parser before running it. What you should see is a masked input and a completed output written by the script; the README's qualitative comparison figure shows the expected result on natural and portrait scenes. If the script expects a mask path or a checkpoint path as a flag, it will be defined in the script itself, since the README does not document the CLI.

Where Moebius is the wrong choice

The dependency list is the first real constraint. flash-linear-attention[cuda]==0.3.2 is a CUDA package, and torch is pinned with a cu130 build. That combination assumes a recent NVIDIA GPU and driver. The README talks about consumer-grade and edge devices, but nothing in the repository describes a CPU path or a Metal path, so treating this as a laptop-friendly model is not supported by what is documented.

The second constraint is scope. Moebius is a specialist. It fills masks. It does not take text prompts, it does not do instruction-based editing, and it does not generate images from scratch. If your pipeline needs one model to handle generation, editing and inpainting, a generalist is the simpler architecture even at higher cost per call, because you avoid maintaining two stacks.

The third is operational. There are no retrieved releases, so there is no tagged version to pin beyond a commit. The README does not document rollback, compatibility guarantees or a deprecation policy. For a research project that is normal. For a service that must reproduce yesterday's output byte for byte, it means you pin the commit hash yourself and accept that upstream changes arrive without a changelog.

Moebius versus a generalist inpainting model

The obvious alternative is FLUX.1-Fill-Dev, which the README uses as its main comparison point at 11.9B parameters. The difference is not just size. A generalist fill model is trained across a broad distribution of editing tasks and can be prompted; Moebius is trained for masked reconstruction and distilled from a single teacher, PixelHacker. The README claims Moebius is on par with or surpasses FLUX.1-Fill-Dev on six benchmarks, including complex textures and facial plausibility, with more than 15x total runtime acceleration and 26.01 ms per step on a single GPU.

Those numbers come from the authors' evaluation, not from independent reproduction, and benchmark parity on Places2 or CelebA-HQ does not automatically transfer to your domain. Medical scans, satellite imagery or scanned documents are far from natural and portrait photographs. The honest comparison is this: a generalist gives you breadth and promptability at roughly 11.9B parameters of memory and a much slower step time; Moebius gives you a narrow, fast, small model whose quality claim holds on the benchmarks the authors chose. If your inputs resemble those benchmarks, the trade is favorable. If they do not, the size advantage does not compensate for the domain gap.

Maintenance, licence and upgrade cost

The repository is not archived and the last push was on 2026-08-12, so it is within a month of recent activity as of this writing. There are no retrieved releases, which means upgrades are commit-level rather than version-level. In practice you would vendor a specific commit, because requirements.txt pins exact versions of torch, diffusers, accelerate and flash-linear-attention, and a floating dependency on any of those four can break the environment on its own.

The licence is Apache-2.0, which permits commercial use and modification and includes a patent grant. That covers the repository code. It does not automatically settle the status of the model weights or of any third-party components the pipeline pulls in, and this article is not legal advice; check the licence file and any weight-distribution terms before shipping. The distillation lineage from PixelHacker is worth noting for provenance, though PixelHacker is also an Apache-2.0 HUST project.

Editorial conclusion

Adopt Moebius if you need object removal or hole filling where a 0.22B checkpoint and fast per-step inference matter more than a generalist model's breadth, and if you can run a recent CUDA stack. Do not adopt it if you need CPU-only serving, a stable API surface, or a documented rollback path, since the README does not describe one. Verify first that your GPU and driver satisfy the pinned torch and flash-linear-attention builds in requirements.txt, and read the inference entry point under infer/ before wiring it into a product.

Frequently asked questions

What is Moebius from hustvl?

It is an image inpainting framework with a 0.22B-parameter model, released with training and inference code and open-sourced weights. The README describes it as a lightweight specialist that performs on par with or surpasses 10B-level generalist inpainting models on six benchmarks.

What is Moebius known for?

The README highlights parametric efficiency (0.22B, under 2 percent of FLUX.1-Fill-Dev's 11.9B), a 26.01 ms per step inference latency on a single GPU, and quality claims across natural and portrait benchmarks. It also reached the No. 1 daily and No. 4 weekly ranking on Hugging Face in June 2026.

How do you install Moebius?

The README does not give step-by-step install instructions. The repository ships a requirements.txt pinning torch==2.7.1+cu130, diffusers==0.38.0, accelerate==1.14.0 and flash-linear-attention[cuda]==0.3.2, so installing those dependencies and then reading the scripts under infer/ is the documented path.

Does Moebius run without a CUDA GPU?

The repository does not describe a CPU or non-NVIDIA path. torch is pinned to a cu130 build and flash-linear-attention is pinned to its CUDA extra, so the documented setup assumes an NVIDIA GPU with a recent driver.

Official sources

  1. hustvl/Moebius on GitHub
  2. Issues
  3. License: Apache-2.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/hustvl-moebius.svg)](https://hysenlabs.com/projects/hustvl-moebius)