Instructions to use vladmandic/MicroDecoder with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use vladmandic/MicroDecoder with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("vladmandic/MicroDecoder", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
File size: 2,356 Bytes
c934da0 db4cbb7 c934da0 db4cbb7 13b52b5 db4cbb7 305bb61 13b52b5 db4cbb7 df1318a b4fb389 305bb61 13b52b5 db4cbb7 305bb61 db4cbb7 13b52b5 305bb61 13b52b5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ---
license: apache-2.0
pipeline_tag: text-to-image
library_name: diffusers
---
# MicroDecoder
**Micro-VAE** that can be trained on *any* diffusion model in **~15min** and provides low-quality reconstruction from latents to RGB in **~0.01sec**.
Inference includes noise correction based on current timestep, intentional blurring plus upscale interpolation: all with intention of providing as fast-as-possible reconstruction that is viable and consistent with any noise levels.
Intended use-case is live-preview during generative model inference.
Shapes/Channels/etc are inferred from the base VAE, so no configuration changes are needed between different models.
- Model definition and training code [here](https://github.com/vladmandic/sdnext/blob/dev/modules/vae/sd_vae_micro_train.py)
- Example inference code [here](https://github.com/vladmandic/sdnext/blob/dev/modules/vae/sd_vae_micro.py)
Example using **MicroDecoder** with `Flux.2-Klein-9B` and compared with official final VAE processing at the end:

## Example
```shell
sd_vae_micro_train.py \
--dim 256 \
--epochs 350 \
--resolution 512 \
--scale 4 \
--lr 0.0003
--folder ~/generative/Input/vae/ \
--vae AutoencoderKLQwenImage21 \
--repo Qwen/Qwen-Image-2.1
--output MicroVAE-qwen21.safetensors
```
```log
Encoding Latents: 100%
Training MicroDecoder [350 epochs | Channels: 32 | Hidden: 256 | Scale: 4x]
Dataset: 360 train samples | 40 validation samples | EMA decay: 0.999
Epoch | Train Tot | Tr PSNR | Tr SSIM | Val Tot | Val PSNR | Val SSIM | Val L1 | Val LAB
--------------------------------------------------------------------------------------------
001/350 | 5.7244 | 10.38 | 0.3431 | 5.9729 | 10.56 | 0.3047 | 0.2676 | 0.4254 *
100/350 | 2.7690 | 25.49 | 0.8030 | 2.2011 | 26.52 | 0.8672 | 0.0376 | 0.0699 *
200/350 | 2.4006 | 27.04 | 0.8400 | 1.1679 | 34.24 | 0.9635 | 0.0132 | 0.0317 *
300/350 | 2.3950 | 28.05 | 0.8472 | 1.0002 | 35.63 | 0.9723 | 0.0113 | 0.0282 *
350/350 | 2.3010 | 28.51 | 0.8511 | 0.9781 | 35.83 | 0.9734 | 0.0111 | 0.0278 *
Training complete! Best validation PSNR: 35.83 dB (Epoch 350)
Saved best EMA model weights to: MicroVAE-qwen21.safetensors
```
|