CUDA error: out of memory - (Minimax only)
Hmm… it looks like there are a few places where this could be getting stuck, so I think a quick bit of isolation would probably get to the fix faster:
* * *
I don’t think the log is enough to conclude **“MiniMax H3 simply does not fit on this GPU”** yet.
There is actually a fairly useful clue in the traceback: the failure is happening in the **FL2VA Start Image conditioning path** , around the point where WanGP prepares the first image for the H3 Video VAE:
generate
-> _add_image_condition(image_start, ...)
-> _encode_video(video)
-> video.unsqueeze(0).to(cuda, ...)
-> vae.encode_condition(...)
That is a substantially narrower starting point than a generic OOM during denoising.
Also, the fact that Wan 2.2 works is useful as a control — it suggests the CUDA installation is broadly functional — but it does **not** prove that H3’s particular component/offload path has enough memory headroom. H3 has a rather different memory layout, and other H3 backends also have to treat its text encoder, DiT and Video VAE as separate memory-management stages.
So before changing the VAE code or a bunch of memory settings at once, I would try two very small controls.
## 1. Same H3 settings, but remove only the Start Image
Try the same:
* H3 FL2VA checkpoint
* prompt
* memory profile
* duration / frame count
* **explicit output width and height**
but remove only the Start Image.
The explicit canvas is important: H3 can derive its default canvas/aspect ratio from the first keyframe, so removing the image without fixing width/height may accidentally change two variables at once. The Diffusers H3 documentation describes the same distinction between text-only `t2va` and first/last-keyframe `fl2va`.
The result would separate two fairly different cases:
same H3 + same explicit canvas
|
remove Start Image
|
+------+------+
| |
works OOM
| |
v v
Start Image / H3-wide
Video VAE memory/runtime
conditioning issue still
path becomes in play
interesting
If **H3 works without the Start Image** , I would not start changing the transformer, attention backend, or Qwen quantization yet. The failure has become much more specifically connected to image conditioning.
If **H3 still OOMs without the Start Image** , then I would broaden the diagnosis back out to GPU/VRAM, system RAM, MMGP profile, canvas size, duration, etc.
## 2. If removing the Start Image fixes it, try one completely fresh process
Fully exit WanGP/Pinokio’s running WanGP process, start it again, and make the problematic **H3 + Start Image** job the first generation.
If that first run succeeds, repeat the exact same generation once.
fresh WanGP process
|
H3 + Start Image
|
+---+---+
| |
works OOM
| |
repeat stale state from a
once previous generation
| becomes much less
| interesting
|
+-- second run OOM
|
v
retained state /
component residency /
lifecycle becomes
much more interesting
That is useful because the current H3 pipeline processes the Start Image **before** its normal prompt/Qwen encoding stage. In other words, the simple explanation “Qwen and the H3 transformer were already loaded by this same generation and then crowded out the VAE” does not match the normal ordering very well.
If only a later generation fails, however, then retained state becomes much more plausible.
If both fresh and repeated runs fail identically, I would look elsewhere.
## The few environment details that would make the next branch much clearer
If you post another result, I think these are enough; a giant environment dump probably is not necessary yet:
* exact GPU model and VRAM
* physical system RAM
* exact WanGP version / update level
* MMGP profile (1–5 / 4+ if applicable)
* output width × height
* duration or frame count
* whether the same H3 job works with no Start Image
* optionally, free VRAM immediately before pressing Generate
On Windows, a simple `nvidia-smi` immediately before the run is already useful.
WanGP itself also notes that a GPU-accelerated web browser can consume a surprisingly large amount of VRAM and even ships CPU-only Chrome launch scripts for this reason, so closing unrelated GPU applications/browser windows is a reasonable cheap sanity check — not a diagnosis, just a way to remove one variable. See the WanGP README.
So, for now, my rough interpretation would be:
Observation | What I would investigate next
---|---
H3 works with fixed canvas but no Start Image | Start Image / Video VAE conditioning boundary
H3 OOMs with or without the image | H3-wide VRAM/profile/hardware conditions
Fresh first run works, later identical run fails | retained GPU state / lifecycle / residency
Fresh first run also fails | deterministic memory/path issue rather than stale previous-run state
GPU is already nearly full before Generate | external/unexpected GPU residency
Synchronized traceback moves deeper into VAE encode | VAE encoder working-set / load peak
Why the traceback is more interesting than a generic OOM (click for more details) Why I would not treat the `video_encoder` MMGP budget as the first suspect (click for more details) How I would read the MMGP partial-pinning messages (click for more details) Why Wan 2.2 working does not rule out an H3-specific memory path (click for more details) There are some similar H3 reports, but I would not assume they have the same cause (click for more details) If the two simple controls still leave the failure ambiguous (click for more details) Things I would not change yet (click for more details)
So, if I were trying to minimize the amount of experimentation, the most useful next result would simply be one of these:
A. Same explicit canvas, H3 works when Start Image is removed.
B. Same explicit canvas, H3 still OOMs without Start Image.
C. Start Image works on the first run after a full WanGP restart,
but the same job fails on a later run.
D. Start Image fails even on the first clean run.
Then add:
GPU:
VRAM:
RAM:
WanGP version:
MMGP profile:
Width x height:
Duration / frames:
Those outcomes point in fairly different directions.
**A** would make me inspect the Start Image / H3 Video Encoder boundary next.
**B** would make me look much harder at overall H3 memory budget/profile/hardware conditions.
**C** would make process state/model residency considerably more suspicious.
**D** , especially if the GPU appears to have plenty of free memory immediately before Generate, would make one `CUDA_LAUNCH_BLOCKING=1` diagnostic run quite worthwhile.
At this point I think those controls will tell us substantially more than changing several memory settings or editing the VAE code at random.
One small privacy note if you decide to attach debugging material: WanGP’s queue ZIP format can contain embedded image/video/audio attachments, not just settings. I would inspect any `error_queue.zip` before posting it publicly; if settings are all that are needed, a redacted settings/JSON dump is safer.