MiniMax H3 Creator Palette
The whole MiniMax H3 studio in one node — prompt editor, cast, timeline and sampler in a single box
The name undersells it. MiniMax H3 Creator Palette isn't a prompt box bolted onto a sampler - it's the whole MiniMax H3 video pipeline collapsed into one node with zero sockets on it. Prompt authoring, wildcard resolution, a Cast studio, scene categories, LoRAs, a storyboard timeline, the sampler, the decoder, the muxer and the save all live inside the node body. You click one node, and ComfyUI does the rest.
And it's all local. The name might sound like it calls an API, but it doesn't - no key, no hosted prompt service, no telemetry. You bring your own H3 checkpoint, text encoder and VAE files. That's the whole deal with this pack, and it's the right deal: MiniMax H3 is the 33B omni-modal model that opened weights in August 2026 with native stereo audio, which made it the first credible open answer to Veo's audio advantage. One honest caveat before you fall in love: it ships under a community license that excludes the US, EU, UK and South Korea from its applicable territory, so check where you stand before downloading 40+ GB of weights.
How it works
This node owns the sampler for a reason. H3 templates sample with res_multistep and a simple schedule, and decode sound with the audio VAE - if the pack let you wire that by hand, you'd quietly get worse results than the defaults. So creator_data (a JSON blob the UI writes) is compiled into one payload per shot, and the node expands into a hidden subgraph that loads the models, encodes, samples, decodes and saves. That's also how it chains multi-shot pieces: segment two starts from segment one's decoded last frame, a dependency that only exists downstream of sampling - you can't express it by just returning conditioning, so the node builds the graph for you. The @Character, $location, __weather__ syntax all resolves before anything is encoded, and the Inspector shows you the exact compiled prompt before you queue.
The inputs that actually matter
You'll set most things in the node's UI, but the schema you're really driving is:
text- the prompt. Ordinary prose works; the palette syntax (@cast,$scene categories,__wildcards__) is optional.seed,steps,cfg- defaults are 0/20/1.0. H3 runs at CFG 1 like most modern video models; cranking it is usually the wrong move.sampler_name/scheduler- defaultres_multistep/simple, the H3 recipe. Leave them until you know why you're changing them.shift_video(12) andshift_audio(3) - the H3 sigma shifts. Advanced, but these are the knobs people actually turn when motion gets mushy.
Beyond that: block_cache, spectrum, attention (KJNodes sage or comfy-kitchen), chunk_ffn, fp16_accumulation for speed, and h3_memory / h3_sparse which only appear as options when the optional H3-Optimizations provider is installed. It has no outputs - it's an output node; the finished clip plays in the node body and lands under output/minimax/renders/.
Installing it
In ComfyUI Manager, search "H3 Creator Palette" (registry id zf-h3-creator-palette, publisher z3rofeels) and install, then restart and hard-refresh with Ctrl+F5. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/z3rofeels/ComfyUI-H3-Creator-Palette
Requires ComfyUI 0.34.0 or newer (it uses the current H3 special-token contract). No extra Python packages - it declares zero dependencies. The heavy lifting is the model files you point it at.
Where people get burned
It's a community beta, so the troubleshooting ritual matters: update ComfyUI and the pack, restart fully, Ctrl+F5. Then check Setup/Settings → Models to confirm your H3 files are actually selected - model selectors only show what's in ComfyUI's model folders. Optional accelerator controls silently absent? The provider isn't installed. And a hand-built graph that picks the default sampler instead of res_multistep is quietly worse - this node exists so you don't have to know that, but it helps to know it's deciding for you.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| creator_data | STRING | { "version": 3, "prompt": "", "aspect": "16:9", "aspect_source": "pill", "short_edge": 768, "upscale": "two_pass", "sample_edge": 768, "refine_denoise": 0.5, "face": { "on": false, "canvas": 512, "denoise": 0.45 }, "output_prefix": "minimax/renders/H3", "models": {}, "archive_stitch": { "enabled": false, "folder": "h3_context", "pattern": "clip_*.safetensors", "first_clip": 1, "last_clip": 0, "context_length": 22, "fps": 24 }, "segments": [ { "prompt": "", "assets": [], "loras": [], "duration_s": 6, "checkpoint": "auto" } ] } | — |
| text | STRING | — | |
| processing_mode | COMBO | entire text as one | 2 options: entire text as one, line by line |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 1.00–100 | — |
| sampler_name | COMBO | res_multistep | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| shift_video | FLOAT | 12.000.01–100 | Advanced: H3 video sigma shift. Release default is 12. |
| shift_audio | FLOAT | 3.000.01–100 | Advanced: H3 audio sigma shift. Release default is 3. |
| block_cache | COMBO | off | 6 options: off, safe, fast, aggressive, easy, tea |
| spectrum | BOOLEAN | false | — |
| spectrum_blend | FLOAT | 0.500–1 | — |
| attention | COMBO | default | default, KJNodes sage, or core comfy-kitchen attention. |
| chunk_ffn | BOOLEAN | false | — |
| fp16_accumulation | BOOLEAN | false | — |
| variation_index | INT | 00–1000000 | — |
| h3_memory | COMBO | off | Optional Zironic/H3-Optimizations memory path. |
| h3_sparse | COMBO | off | Optional fixed-density H3 video attention preset. |
| h3_sparse_edges | BOOLEAN | false | Keep 30 percentage points more video KV in the first and last two steps. |
Outputs (0)
No outputs