vLLM/Recipes
Search
MiniMax

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

Default configuration: 8× H200 · BF16
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.

Guide

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.

ComponentSourcePrecisionParameters
DiTMiniMaxAI/MiniMax-H3-Image/transformerBF1633.1B
Text encoder (Qwen3-VL)MiniMaxAI/MiniMax-H3/text_encoderBF1633.4B
Image VAEMiniMaxAI/MiniMax-H3-Image/vaeFP320.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_prompt is not supported. One image per request.
  • size defaults to 1024x1024. 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_area overrides 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.

GPUsProfileExtra flagsPeak / GPU2048² t2i
1DiT resident, text encoder offloaded--num-gpus 1 --diffusion-offload-config '{"mode":"layer","components":["text_encoder"]}'73.4 GiB3.2 s
1DLO, DiT and text encoder--num-gpus 1 --diffusion-offload-config '{"mode":"layer","components":["dit","text_encoder"]}'14.7 GiB8.3 s
2Ulysses SP 2, resident--num-gpus 2 --usp 2 --text-encoder-tp-size 294.6 GiB1.5 s
2Ulysses 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 GiB5.6 s
2DiT TP 2, resident--num-gpus 2 --tensor-parallel-size 2 --usp 1 --text-encoder-tp-size 263.3 GiB1.5 s
4Ulysses SP 4, resident (default)--num-gpus 4 --usp 4 --text-encoder-tp-size 481.3 GiB0.88 s
4DiT TP 4, resident--num-gpus 4 --tensor-parallel-size 4 --usp 1 --text-encoder-tp-size 436.2 GiB1.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:

RequestLatency
t2i 1024x10240.77 s
t2i 2048x20480.88 s
t2i 4736x35523.84 s
edit 2048x2048 (one reference)1.35 s

Per-profile numbers and the correctness guard are in the in-repo recipe.

References