Nodes/ComfyUI-FeiHou-Easy-H3/ComfyUI-FeiHou-Easy-H3
ComfyUI Node

ComfyUI-FeiHou-Easy-H3

MiniMax H3 with the whole reference gallery built in

By FX-FeiHou·Created 14 days ago·Updated a day ago· 29
ComfyUI-FeiHou-Easy-H3
  • h3_bundle
  • model
  • second_sampling_model
  • h3_context
modeimage
prompt
resolution480P
aspect_ratio16:9
width1344
height768
seconds10.0
advancedfalse
fps24
keyframe_rolefirst
ref_image_size480
reference_mention_modeindex
prompt_optimizer_enabledfalse
prompt_optimizer_provider
prompt_optimizer_scene_guidenone
force_offloadfalse
low_vram_streamed_attentionfalse
media_1
media_type_1
media_2
media_type_2
media_3
media_type_3
media_4
media_type_4
media_5
media_type_5
media_6
media_type_6
media_7
media_type_7
media_8
media_type_8
media_9
media_type_9
media_10
media_type_10
media_11
media_type_11
media_12
media_type_12
media_13
media_type_13
media_14
media_type_14
media_15
media_type_15
prompt_optimizer_appliedfalse
second_sampling_output_connectedfalse

This is the node the whole pack exists for. FeiHouEasyH3 is a MiniMax H3 generation node - video with native audio, or plain image work - where all the reference-media loading you'd normally wire up with separate Load Image, Load Video and Load Audio nodes is baked straight into the widget. Nine image slots in a fixed 3×3 gallery, three video slots, three audio slots, click-to-pick or drag-and-drop, inline previews, and everything persists in the workflow. If you've ever stared at a six-node reference-video stack and wished it were one box, this is that box.

First, the context: MiniMax H3 is the lab's open-weights 33B omni-modal video model - text, image, video and audio share one context, and audio is generated jointly with the picture instead of being bolted on. It's genuinely strong (launch-day "very, VERY good" was the community's general mood), but it's also a ~42.5 GB download and the H3 Community License geofences the weights out of the US, EU, UK and Korea. If you're in one of those places, running the local weights isn't licensed and this node isn't for you - the hosted Hailuo API is the only legal door. Everywhere else, read on.

How it works

The node takes a h3_bundle from the Loader (or the Remix Loader) and a mode. In image mode it drives the FL2VA transformer: prompt-to-image, or image-to-video where your gallery images become first/last keyframes. In reference mode it drives REF2VA and builds proper H3 reference conditioning - you mention <Picture 1>, <Video 2>, <Audio 1> in the prompt with an @ and the media resolves to that slot. Reference mode needs at least one image or video - audio alone won't cut it - and caps at 9 images, 3 videos, 3 audio, matching the official MiniMax H3 Reference to Video limits.

The advanced toggle is the gate to the interesting half of this node. Flip it and you get the prompt optimizer (send your raw prompt to a Zhipu / Ollama / DeepSeek / custom OpenAI-compatible API configured in ComfyUI Settings → 🐵Easy H3, and get back an expanded or reverse-engineered prompt) plus the VRAM surgery: force_offload drops unused cache after sampling and before VAE decode, and low_vram_streamed_attention runs complete streamed blocks (QKV, attention, MLP/SwiGLU, output head) for the small-VRAM crowd. Enable it and don't also chain ModelAttentionBackend / comfy kitchen attention - they fight.

The inputs that matter

  • mode - image vs reference. This decides FL2VA or REF2VA, so it changes which model you load.
  • resolution / aspect_ratio / width / height - presets from 360P to 1080P plus custom, and eight aspect ratios; width/height step by 32.
  • seconds (0.2–30) and fps (default 24) - duration and frame rate. Defaults are 10 s at 24 fps.
  • ref_image_size - short-edge size for reference images, 480 to 1088.
  • reference_mention_mode - whether @ mentions resolve by filename or by gallery index.
  • prompt_optimizer_enabled / prompt_optimizer_provider / prompt_optimizer_scene_guide - the API prompt-rewrite controls; only active when advanced is on, and the provider list comes from your Settings.
  • keyframe_role - in image mode, whether a single gallery image acts as the first or last frame.

The media_1media_15 and media_type_N inputs exist in the schema but are transport fields the embedded gallery fills in for you - you pick files in the node, not by wiring inputs.

The outputs

model feeds the KSampler. second_sampling_model is only populated when the loader has a second-sampling model configured and you've connected this output - it's for two-pass workflows. h3_context carries the conditioning, latent, both VAEs, fps and final prompt, and feeds the pack's Output node.

How to install it

cd ComfyUI/custom_nodes
git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Easy-H3

restart ComfyUI, or just search "ComfyUI-FeiHou-Easy-H3" in ComfyUI Manager. No pip dependencies - the pack's pyproject.toml ships an empty dependencies list. You do need a ComfyUI build that already includes the official MiniMax H3 nodes, plus the models: H3 transformers in models/diffusion_models, the Qwen3-VL text encoder in models/text_encoders, and both VAEs in models/vae. The bundled workflows point at the author's Quark cloud drive for the model set.

Common issues

The big one is VRAM - a 33B omni-modal model is not a 4 GB-card afternoon. Expect to chase quantization (GGUF files show up automatically in the model dropdowns) and to actually use force_offload and the streamed-blocks experiment. If your saved workflow was made with an older plugin version and validation fails while the optimizer is off, update the pack - that exact bug was fixed in v1.3.1.

CategoryFeiHou Easy H3

Inputs (50)

NameTypeDefaultDescription
h3_bundleMINIMAX_H3_BUNDLE
modeCOMBOimage2 options: image, reference
promptSTRING
resolutionCOMBO480P12 options: 360P, 416P, 480P, 540P, 640P, 720P, +6
aspect_ratioCOMBO16:98 options: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, +2
widthINT134432–16384
heightINT76832–16384
secondsFLOAT10.00.2–30
advancedBOOLEANfalse
fpsFLOAT241–120
keyframe_roleCOMBOfirst2 options: first, last
ref_image_sizeCOMBO4809 options: 480, 544, 640, 736, 768, 832, +3
reference_mention_modeCOMBOindex2 options: filename, index
prompt_optimizer_enabledBOOLEANfalse
prompt_optimizer_providerCOMBO1 options:
prompt_optimizer_scene_guideCOMBOnone10 options: none, r2va_enhanced, 3d_animation_short, brand_promo, coop_game_intro, handdrawn_live, +4
force_offloadBOOLEANfalse
low_vram_streamed_attentionBOOLEANfalse
media_1optSTRING
media_type_1optSTRING
media_2optSTRING
media_type_2optSTRING
media_3optSTRING
media_type_3optSTRING
media_4optSTRING
media_type_4optSTRING
media_5optSTRING
media_type_5optSTRING
media_6optSTRING
media_type_6optSTRING
media_7optSTRING
media_type_7optSTRING
media_8optSTRING
media_type_8optSTRING
media_9optSTRING
media_type_9optSTRING
media_10optSTRING
media_type_10optSTRING
media_11optSTRING
media_type_11optSTRING
media_12optSTRING
media_type_12optSTRING
media_13optSTRING
media_type_13optSTRING
media_14optSTRING
media_type_14optSTRING
media_15optSTRING
media_type_15optSTRING
prompt_optimizer_appliedoptBOOLEANfalse
second_sampling_output_connectedoptBOOLEANfalse

Outputs (3)

NameTypeDescription
modelMODEL
second_sampling_modelMODEL
h3_contextMINIMAX_H3_CONTEXT