ComfyUI Node

MiniMax H3 Aicg 输出

The One-Wire H3 Context, Split Back Into Seven Normal Wires

By JGRFW·Created about a month ago·Updated about 13 hours ago· 261
MiniMax H3 Aicg 输出
  • h3_context
  • positive
  • latent
  • video_vae
  • audio_vae
  • fps
  • driving_audio
  • model

What it's for

The AICG3D pack runs everything through one object. A MiniMax H3 context node builds a MINIMAX_H3_CONTEXT that carries the conditioning, the audio+video latent, both VAEs, the frame rate, the sampling model and any locked driving audio - one wire instead of a dozen. That's lovely right up until you want to do something the pack's renderers don't do: run your own sampler, decode with a different node, chain in a ControlNet-style patch, or drop a LatentUpscale in the middle.

AICG3D_H3Output is the escape hatch. It takes that single h3_context and unpacks it into ordinary ComfyUI types, so the rest of your graph can treat H3 like any other model.

How it works

There is no computation here at all. The node checks that what you handed it really is an H3 context - if not, it says so - then returns seven fields straight off the context object. No encode, no decode, no hidden work. That's worth saying out loud, because a node that does nothing is easy to skip past, and this one is the hinge that makes the pack composable instead of a walled garden.

The design pattern is the "context bus" that Efficiency Nodes, rgthree and friends popularised: bundle everything so the canvas stays readable, then explode it at the point where you need to be specific. Its known failure mode carries over too - a bundle is only as fresh as the node that built it, so if a LoRA or patch got applied after the context was assembled, what comes out of here is the un-patched model.

The outputs, in the order you'll use them

One input (h3_context), seven outputs:

  • positive (CONDITIONING) - the encoded prompt, plus reference media if the context carried any. Feeds a guider or a sampler.
  • latent (LATENT) - the AV latent to start from. This is the one you must connect to any sampler; it carries the frame count and resolution the context planned.
  • video_vae and audio_vae (VAE) - separate decoders for picture and sound. H3 generates stereo audio in the same pass, so decoding a finished latent means running both and composing them.
  • fps (FLOAT) - the timeline rate, needed by whatever builds your final video.
  • driving_audio (AUDIO) - the locked reference track for Digital Human mode. Null in normal generation; when it isn't, you want it to win over the generated audio.
  • model (MODEL) - the sampling model with whatever acceleration patches the context applied.

When to reach for it

Three real cases. First, you want a sampler the pack doesn't wrap - say an external SAMPLER/SIGMAS pair whose schedule you're tuning by hand. Second, you want to insert nodes between sampling and decode: latent surgery, a low-VRAM tile pass, an interpolation step. Third, you're debugging: this is the fastest way to see what's actually inside a context, since every value comes out on its own wire where you can inspect it.

If none of that describes you, use AICG-渲染器(高级) and save yourself six wires. It does sample → decode → compose internally and outputs a single VIDEO.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/JGRFW/comfyui-AICG3D

Restart ComfyUI. Manager users can search the Registry for AICG3D or 短剧工作台. Dependencies are minimal - imageio-ffmpeg is the only entry in requirements.txt, and the node loading path in this plugin is deliberately plain Python so a clean install doesn't fall over.

The heavy prerequisite isn't the plugin, it's the model: H3 transformers in models/diffusion_models, text encoder in models/text_encoders, and both minimax_h3_video_vae_* and minimax_h3_audio_vae_fp32 VAEs in models/vae. If the pack's own loader can't see any of the four, no amount of node wiring will help.

Traps

Sampling a segmented context with a normal sampler fails on purpose. If the context was built by the Context Segments path, it carries a multi-shot plan, and the plain samplers reject it - you're told to use Segment Sample. The unpacked latent is a plan, not a single clip. Split the job by mode: whole-clip contexts go to the renderers, segmented plans go down the segment chain.

Missing a VAE decode. People wire latent and video_vae, get a VIDEO out, and wonder where the audio went. audio_vae is not optional decoration; skipping it gives you a silent file, not an error.

Stale model. The model output reflects the context's state at build time. If you patched the model with something downstream and then fed it back into an H3 renderer through this node, you're sampling the base weights. Rebuild the context instead.

Wrong VAE for the decode. H3's video VAE is a 3D latent - pointing a generic image VAE at it gives grey mush or a hard shape error, and the pack's VAE loaders already warn about picking ae.safetensors here.

CategoryAICG3D/提示词与 Skill

Inputs (1)

NameTypeDefaultDescription
h3_contextMINIMAX_H3_CONTEXT—

Outputs (7)

NameTypeDescription
positiveCONDITIONING—
latentLATENT—
video_vaeVAE—
audio_vaeVAE—
fpsFLOAT—
driving_audioAUDIO—
modelMODEL—