H3 Field Report: 1088×1920 on 16 GB, Scene Text Overrides Camera Text, ClipProj v3.1 Checked
Full-resolution portrait H3 fits a 16 GB GPU with two lossless memory nodes at 3.2× the time; chained segments obey the scene sentence over the camera sentence; ClipProj v3.1 matched the 32B encoder and cut page-file use, not render time.
TL;DR — Signal: H3 renders 1088×1920 on an RTX 5080 16 GB (peak 15.12–15.44 GB, median 876 s per 5.17 s segment). Versus LTX 2.5: sharpness 14.5/8.3, motion 18.1/8.1. In chains, the repeated scene sentence decides where the camera goes. ClipProj v3.1: no measurable output change; page file 16.1 → 4.7 GB; time −1.4%.
Test bed: RTX 5080 16 GB, 32 GB RAM, ComfyUI 0.37.0, MiniMax H3 fl2va int8 with the 8-step turbo LoRA, image-to-video from one Qwen-Image 2.1 still, 124 frames at 24 fps per segment.

Findings
- Resolution is a memory limit, not a node limit. The i2v node accepts up to 16,384 px per side in 32 px steps. Two KJNodes patches plus tiled decoding bring 1088×1920 inside 16 GB.
- Cost: 3.2× time for 2.02× pixels. About 270 s per segment at 768×1344; 868–950 s at 1088×1920.
- H3 out-resolves LTX 2.5 at equal size — but LTX 2.5 is roughly 4.9× faster (175–188 s per segment) and followed "climbs between the buildings" upward where H3 went forward.
- Scene sentence beats camera sentence in chains. Segment 2 motion: 38.8 with the opening scene text, 36.6 after adding "never dropping down into the streets", 15.1 after rewriting the scene text to the rooftop view.
- ClipProj v3.1 is a RAM tool. Output unchanged on a same-seed A/B; VRAM and time nearly flat.
Configuration delta
- KJNodes
MiniMaxChunkFeedForward: chunks 4, seq_threshold 4096. - KJNodes
MiniMaxLowVRAMAttention: head_chunks 8. Stated behaviour: "Reduces peak VRAM of the MiniMax H3 attention without changing the math." VAEDecodeTiled: 512 / 64 spatial, 64 / 8 temporal.- Prompt recipe restored: constant-speed and clear-parallax tail, UE5-style polish line, negative naming "static, frozen, jump cut, scene change". Their absence, not the model, explained yesterday's crop-like H3 motion at 768×1344.
Measurements
Equal first frame, equal camera sentence, 1088×1920:
- Edge sharpness — H3 14.5, LTX 8.3
- Motion — H3 18.1, LTX 8.1
- First-frame deviation — H3 3.3, LTX 3.3

Chained 15.49 s shot (3 × 124 frames, boundary duplicates dropped), motion per 1.5 s window:
- Opening scene text on every segment: 13.3 · 16.9 · 15.5 · 23.5 · 41.4 · 41.7 · 35.9 · 31.9 · 19.0 · 14.3 (mean 25.1)
- Scene text matched to the frame: 13.3 · 16.9 · 15.5 · 15.1 · 14.2 · 15.1 · 17.0 · 16.5 · 18.0 · 16.8 (mean 15.8)
Open issues: segment 3 flattens out rather than climbing; colour drifts brighter than the source still within segment 1.
ClipProj v3.1
- What it replaces: H3's Qwen3-VL-32B encoder, 15.7 GB in NVFP4 per the model card, with Qwen3-VL-4B fp8 (5.2 GB, Krea-2 files) plus a 26 MB ridge projection. Node: ComfyUI-ClipProj.
- Same prompt, seed, size: motion 15.1 → 14.5; sharpness 17.9 → 17.8; first-frame deviation 4.9 → 5.1.
- Time 875.9 → 863.6 s. Peak VRAM 15.39 → 15.13 GB.
- Page file at peak 16.1 → 4.7 GB; minimum free RAM 442 → 1,980 MB. Caveat: the ClipProj run followed a fresh ComfyUI start.
- Context: staged models per H3 run total about 40 GB against 32 GB of RAM, per ComfyUI's log.
- Author's own benchmark: "swapping the encoder costs about what re-rolling the seed costs."
- Risk checked: the i2v node passes the first frame into the encoder (source); the projection was fitted on text positions. No effect observed on one clip.

Reproduce
Node chain as run:
UNETLoader minimax_h3_fl2va_pruned_int8_convrot.safetensors
LoraLoaderModelOnly minimax_h3_fl2v_turbo_8step_v1.0_comfyui_bf16.safetensors strength 1.0
MiniMaxChunkFeedForward chunks 4, seq_threshold 4096 # KJNodes
MiniMaxLowVRAMAttention head_chunks 8 # KJNodes
CLIPLoader qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors type minimax
MiniMaxH3ImageToVideo width 1088, height 1920, length 124, first_frame = still
BasicScheduler simple, 8 steps
CFGGuider cfg 1.0
KSamplerSelect res_multistep
VAEDecodeTiled tile 512, overlap 64, temporal 64, temporal_overlap 8
CreateVideo 24 fps (+ VAEDecodeAudio for H3's own soundtrack)
Encoder swap:
CLIPLoader qwen3vl_4b_fp8_scaled.safetensors type krea2
ClipProjApply mmh3-4b-ClipProj-v3.1.safetensors
# wire ClipProjApply's CLIP output into every node the 32B CLIP fed:
# both CLIPTextEncode nodes and MiniMaxH3ImageToVideo
Segment prompts, frame hand-off and metric definitions: full appendix.
FAQ
What is the resolution ceiling of the H3 image-to-video node?
None in practice: width and height are accepted up to 16,384 in 32-pixel steps. VRAM is the constraint; on 16 GB, 1088×1920 needs the two splitting patches.
Where does the extra time go at 1088×1920?
Into the sampler. Steps run about 100 s each; the segment total is 3.2× the 768×1344 figure for 2.02× the pixels.
Does ClipProj affect image-conditioned runs?
Not measurably here: first-frame deviation 4.9 vs 5.1 on a same-seed comparison. Sample size is one clip.
What does ClipProj cost?
Per its card, the 32B itself re-pronounces 5.8 phonemes out of 75 when only the seed changes; the v3.1 projections sit at 6.4 to 7.0. This test used no dialogue.
References: H3 · H3 for ComfyUI · guide · node source · KJNodes · LTX 2.5 · ClipProj card · ClipProj node · Krea-2 encoders.
Images and video: frames from the author's own renders on an RTX 5080. The first frame is a still generated locally with Qwen-Image 2.1.
← Back to all posts