Six measured traps · a runtime predictor · one test that tells you whether the
GPU is working or paging.
RTX 5060 Laptop 8 GB (sm_120) + 15.26 GiB RAM · Windows · ComfyUI 0.35.0 · single seed 12345.
Each row: the symptom you will see, what the measurement says, and how to reproduce or avoid it.
| Symptom | What it actually is | Evidence |
|---|---|---|
| A 10 s clip loses its subject at ~7 s | A prompt defect, not the model. Only [Shot 1] is described, so
the tail has nothing to render; a camera move with no target pushes the subject
off-frame. |
Same seed, single variable: 7.0–10.0 s subject gone, close-ups with no facial features. The official 20-step baseline reproduces it too, so it is not the step count or any acceleration node. |
| SageAttention is slower, and it silently overrides your backend choice | Measured at H3's real geometry (56 heads × 128, S=8192, bf16):
SDPA 143.1 ms ·
comfy-kitchen INT8 22.8 ms ·
SageAttention 29.0 ms.
The Sage patch calls _sageattn_int8_fp8_nhd directly and bypasses
optimized_attention, so ModelAttentionBackend and
--use-ck-attention have no effect while it is installed. |
On sm_120, comfy-kitchen is 6.3× faster than SDPA and 1.27× faster than Sage, at lower error (0.0164 vs 0.0387 rel-L2). |
SaveVideo fails with an opaque avcodec_open2("libx264") error |
libx264 is fine. The frame's width or height is odd —
yuv420p needs 2×2 chroma subsampling, so both must be even. |
Same PyAV build: 64x64 and 1080x1920 open fine;
65x63, 63x65, 65x65, 1171x2532,
1080x1441 all fail. Reported upstream as
ComfyUI #16544.
Workaround: VHS_VideoCombine (external ffmpeg), 2067 → 10393 kb/s at crf 12. |
| The turbo LoRA feels weaker than it should | On a pruned base only 208 of 259 modules apply (80.3%).
All 51 skipped ones are adaln_proj.linear — the timestep pathway a
step-distilled LoRA exists to change. |
Per-key shape comparison; the LoRA metadata itself declares
incompatible_base: MiniMax-H3 pruned_*. |
| Sampler stalls at 0% for 20+ minutes while the GPU reads 99% | The wall is system RAM, not VRAM. Working set ≈ 19.5 GiB model + 15.0 GiB text encoder ≈ 34.5 GiB against 15.26 GiB of RAM — it pages. | Same machine: 0.9–6 s/block fresh vs 212 s/block after ~1.7 h. Restarting ComfyUI before each run matters more than any sampler setting here. |
| Is 8 steps good enough? | Composition is near-identical; the cost is time. | 10 s / 768×1024: 8 steps ≈ 14.3 min vs 20 steps 33.8–43.5 min. Four 20-step runs measured: 2613 / 2283 / 2560 / 2029 s. |
Utilisation is useless here — the counter includes the cores that move memory, so it reads 99–100% in both states. Watch board power instead:
nvidia-smi --query-gpu=power.draw,utilization.gpu --format=csv -l 5
If power sits in the mid-30s while utilisation reads 99%, restart ComfyUI.
Task Manager samples at ~1 Hz and misses long kernels — it will show 0%.
Fit from 18 measured runs at 10 s / 768×1024:
Twall ≈ 102 + 34.1 × steps seconds
Do not extrapolate this. It is one machine, one seed, one resolution, and it assumes the session is fresh. After ~1.7 h the same graph runs ~35× slower (212 s/block) — that regime is not on this curve. Longer clips and other aspect ratios are untested.
| Launch flag | --disable-pinned-memory is required below 16 GB —
ComfyUI sets MAX_PINNED_MEMORY = ram * 0.40, which kills the process. |
| Do NOT add | --use-sage-attention, --use-flash-attention,
--fast, --fp16-unet (see trap 2). |
| Resolution | Short side ≤ 768, area ≤ 768×1344, multiples of 32. The ResolutionSelector megapixel dial is a trap: 3:4 at 1.0 MP yields 896×1184, outside the trained envelope. Use 0.75 → 768×1024. |
| Before every run | Restart ComfyUI. Measured: 0.9–6 s/block fresh vs 212 s/block after ~1.7 h, same graph. |