MiniMax H3 Aicg 集成分离
The one-node crowbar that opens MiniMax H3's integration bundle
- integration
- positive
- av_latent
- video_vae
- audio_vae
- models number
- mux_audio
- is_original_audio
- conditioned_prompt
- media_map_json
- report
Every bundling node in ComfyUI has a partner node that takes the bundle apart, and this is MiniMax H3's. AICG3D_H3IntegrationAdapterGH - the Chinese display name is 集成分离, literally "split the integration" - takes the single MiniMax object that the Integration panel hands out and turns it back into ten normal, typed values.
It has exactly one input, display-named < - the mirror of the panel's > - and nothing to configure. You drop it between the panel and everything else and it just unpacks.
Why a node this dumb deserves a page
Because without it, the panel is a dead end. That panel loads a Qwen3-VL text encoder and two VAEs, does the canvas and duration maths, and packs the whole conditioning decision - prompt, up to nine reference images, three reference videos, three reference audios, the audio lock mode, which drive track - into one object. One wire is lovely for legibility. It's useless to a sampler, which wants a MODEL, a LATENT with the right channel layout, and a conditioning tensor.
So the adapter is the seam between "one wire I can read" and "the values the sampler must eat." It's also where the context-bus pattern's one weakness shows: the single wire hides which version of each value is inside it. With forty wires you can see the LoRA isn't connected; with one bundle, the connection is present and the contents are stale. Unpacking immediately, one node downstream, is the least risky way to use the pattern.
What comes out
Ten outputs, and only a few matter to a beginner:
positive- the conditioning, into a guider or straight into the sampler path.av_latent- the joint video+audio latent, already sized to your aspect/megapixels/duration. This is what the dual-clock sampler validates and what the AV decode node eventually decodes.video_vaeandaudio_vae- the same two VAEs the panel loaded, handed back so you don't have to load them twice. Use these on the decode node; a mismatched VAE is the fastest way to get noise instead of a picture.mux_audio- the audio track that should be muxed into your final file: either your locked source track or the model's generated sound, depending onaudio_mode. Plusis_original_audio, a boolean that tells you which of those two it is.
Then four you'll mostly ignore until something breaks. models number is an INT encoding the panel's main_mode: 0 for keyframe mode, 1 for all-reference. It exists so you can drive a switch or a label without string-matching. conditioned_prompt is the prompt after the pack's tag handling - the thing the model actually saw, which is exactly what you want to read when your <Picture 1> reference did nothing. media_map_json is the slot-to-file map, and report is a human-readable summary. Both are strings; wire them to a text-display node when you're debugging, not in normal use.
Wiring
[AICG3D_H3IntegrationGH] ── > ──► [AICG3D_H3IntegrationAdapterGH]
positive ─────────► guider / conditioning
av_latent ────────► [AICG3D_H3DualClockT8GH]
video_vae, audio_vae ► [AICG3D_H3AVDecodeT8GH]
mux_audio ────────► your mux / save-audio path
Install
It ships in the same pack as the panel, so there's nothing extra:
cd ComfyUI/custom_nodes
git clone https://github.com/JGRFW/comfyui-AICG3D
…then restart and find it under right-click → AICG3D → H3 集成. ComfyUI Manager users can search AICG3D or 短剧工作台 (Registry name aicg3d-h3-suite). Only imageio-ffmpeg, psutil, requests and aiohttp are pulled in; FFmpeg is only needed by the pack's long-video combine node, not by this one. You'll need a current ComfyUI, since the pack's integration module imports comfy.ldm.minimax at load time.
Gotchas
Nodes missing entirely from the menu. Not an adapter problem - that module failed to import, usually an older ComfyUI without H3 support. Update ComfyUI first.
Do not install the standalone PromptSplit pack next to this one, and don't stack a second H3 integration fork in custom_nodes; the entire AICG3D_H3_ prefix exists because these packs used to overwrite each other's node IDs and front-end code.
Old workflows load with broken wires. Nodes from earlier versions (bare MiniMaxH3IntegrationGH, MiniMaxH3Easy…) need swapping for the AICG3D_H3_ equivalents; the pack auto-migrates some IDs but not all.
Stale bundle, weird results. If you edited the prompt or swapped a reference image and the output didn't change, check what the panel is actually holding - read conditioned_prompt and media_map_json rather than guessing. And if you're feeding prompt_override from upstream, remember it wins over the panel's editor, which surprises people who type a new prompt into the editor and see no effect.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| integration | MiniMax | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| av_latent | LATENT | — |
| video_vae | VAE | — |
| audio_vae | VAE | — |
| models number | INT | — |
| mux_audio | AUDIO | — |
| is_original_audio | BOOLEAN | — |
| conditioned_prompt | STRING | — |
| media_map_json | STRING | — |
| report | STRING | — |