Moebius inpainting β€” ONNX

ONNX export of Moebius (hustvl, ft_places2 weights) together with the PixelHacker VAE it uses. It runs on onnxruntime with no PyTorch or triton, and is the object-removal model of LLR.

All three graphs are fp32 at a fixed 512 Γ— 512 (the training resolution). Pad or crop each region to a square before you run them.

file inputs output
moebius_unet.onnx x [1,9,64,64] = noisy latent β€– mask β€– masked latent, t [1] int64, guidance scalar eps [1,4,64,64]
vae_encoder.onnx image [1,3,512,512] in [-1, 1] scaled latent mean [1,4,64,64]
vae_decoder.onnx latent [1,4,64,64] image [1,3,512,512] in [0, 1]

Classifier-free guidance happens inside the UNet: both branches run as one batch of two. The conditioning is a constant table of learned embeddings.

Sampling

  • Sampler: DDIM, scaled_linear betas from 0.00085 to 0.012, leading timestep spacing, eta 0.
  • Settings: 20 steps, guidance 2.0.
  • Start from pure noise (strength 1). The upstream pipeline defaults to strength 0.99, which lets the removed object leak back into the fill.
  • Mask: 1 marks the region to fill. Downsample it to 64 Γ— 64 for the UNet input.

A reference implementation in numpy is LLR's apps/worker/src/llr_worker/erase.py. Speed on an RTX 3090 with onnxruntime-directml: about 95 ms per UNet step.

The export script is apps/worker/scripts/export_moebius_onnx.py in the LLR repo, run on Moebius commit b88d462.

License

MIT, following the upstream weights (hustvl/Moebius, hustvl/PixelHacker). Credit goes to the Moebius authors.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Jannchie/moebius-inpaint-onnx

Base model

hustvl/Moebius
Quantized
(4)
this model