MiniMaxAI/MiniMax-H3-Image
Open-weight text-to-image and reference-image editing on the MiniMax-H3 DiT — six CFG-distilled steps per image, up to nine reference images, 2K-class canvases, served via vLLM-Omni
A 2720×1536 image in about 0.8 s and a 2048² edit in 1.35 s end to end on 4×H200
vllm serve MiniMaxAI/MiniMax-H3-Image \ --host 0.0.0.0 \ --num-gpus 4 \ --usp 4 \ --text-encoder-tp-size 4 \ --port 8000 \ --omni
The interactive builder loads with JavaScript. Append .md to this page's URL, query string included, for any configuration's command as Markdown — e.g. /MiniMaxAI/MiniMax-H3-Image.md.
Overview
MiniMax-H3-Image generates and edits images with the MiniMax-H3 DiT (33.1B, audio disabled), the base model's Qwen3-VL text encoder, a native 2D-decoder image VAE and fused per-step PDD output heads. Every request runs six CFG-distilled steps and returns one image. A request with reference images is an edit; there is no task flag.
| Component | Source | Precision | Parameters |
|---|---|---|---|
| DiT | MiniMaxAI/MiniMax-H3-Image/transformer | BF16 | 33.1B |
| Text encoder (Qwen3-VL) | MiniMaxAI/MiniMax-H3/text_encoder | BF16 | 33.4B |
| Image VAE | MiniMaxAI/MiniMax-H3-Image/vae | FP32 | 0.58B |
model_index.json names the base repository for the text encoder; vLLM-Omni
downloads only that folder. Plan for about 127 GB of disk.
Request contract
num_inference_steps: omit or 6.guidance_scale: omit or 1.negative_promptis not supported. One image per request.sizedefaults to1024x1024. Requests below 2048² pixels are generated on a same-aspect canvas of at least 2048² (sides on a 32-pixel grid) and resized back with LANCZOS. Requesting the canvas size directly (2048x2048, 2720x1536, 1536x2720, 2368x1760, 2496x1664, 3136x1344) skips the resize.extra_args.min_generation_areaoverrides the canvas area per request (32² to 4096²).- Edits: give references at the canvas size of the requested aspect ratio and request that size for the best alignment; combine several changes into one edit rather than chaining edits.
Deployment profiles
All rows were run on H200; the RTX PRO 6000 recipe has its own measurements.
Other accelerators reuse these commands sized from the H200 peaks
(configuration-only). DLO is --diffusion-offload-config with
mode: layer.
| GPUs | Profile | Extra flags | Peak / GPU | 2048² t2i |
|---|---|---|---|---|
| 1 | DiT resident, text encoder offloaded | --num-gpus 1 --diffusion-offload-config '{"mode":"layer","components":["text_encoder"]}' | 73.4 GiB | 3.2 s |
| 1 | DLO, DiT and text encoder | --num-gpus 1 --diffusion-offload-config '{"mode":"layer","components":["dit","text_encoder"]}' | 14.7 GiB | 8.3 s |
| 2 | Ulysses SP 2, resident | --num-gpus 2 --usp 2 --text-encoder-tp-size 2 | 94.6 GiB | 1.5 s |
| 2 | Ulysses SP 2 + DLO (DiT AllGather) | --num-gpus 2 --usp 2 --text-encoder-tp-size 2 --diffusion-offload-config '{"mode":"layer","components":["dit","text_encoder"],"layer_options":{"dit":{"weight_transfer":"allgather"},"text_encoder":{"weight_transfer":"rank-local"}}}' | 12.0 GiB | 5.6 s |
| 2 | DiT TP 2, resident | --num-gpus 2 --tensor-parallel-size 2 --usp 1 --text-encoder-tp-size 2 | 63.3 GiB | 1.5 s |
| 4 | Ulysses SP 4, resident (default) | --num-gpus 4 --usp 4 --text-encoder-tp-size 4 | 81.3 GiB | 0.88 s |
| 4 | DiT TP 4, resident | --num-gpus 4 --tensor-parallel-size 4 --usp 1 --text-encoder-tp-size 4 | 36.2 GiB | 1.0 s |
Full single-GPU residency needs an estimated 135 GiB and was not measured; it
is the natural choice on B200 and B300 (--num-gpus 1). On 80 GB H100, use DLO
on one or two GPUs, or TP 4 on four (SP 4 does not fit). On 96 GB RTX PRO 6000,
every resident layout fits (SP 2 peaks at 68.1 GiB, TP 2 at 49.7 GiB), and SP 4
is the fastest four-GPU layout over PCIe. Keep resident_layers at 0:
24 resident blocks ran at about 15 s per step on H200. CFG parallel and HSDP
are rejected; model CPU offload, quantization and cache acceleration are not
qualified.
Measured latency (4×H200, SP 4)
Median of three warm requests at concurrency 1, client end-to-end time:
| Request | Latency |
|---|---|
| t2i 1024x1024 | 0.77 s |
| t2i 2048x2048 | 0.88 s |
| t2i 4736x3552 | 3.84 s |
| edit 2048x2048 (one reference) | 1.35 s |
Per-profile numbers and the correctness guard are in the in-repo recipe.