Nodes/ComfyUI-Neo-Nodes/Neo H3 Video Generate
ComfyUI Node

Neo H3 Video Generate

MiniMax H3 in one node, audio included

By neoneo-ai·Created 2 months ago·Updated a day ago· 1
Neo H3 Video Generate
  • image
  • video
skill_idH3 图生视频
prompt
seed0
duration5
width1344
height768

MiniMax H3 is the first serious open-weight answer to the thing Veo had and nobody else did: video with native audio, generated jointly with the picture rather than bolted on afterwards. A 33B omni-modal model, 4–15 second clips up to 2K at 24fps, weights on HuggingFace since 3 August 2026. On launch day ComfyUI had API-node access only - native local support followed with the weights, and Neo H3 Video Generate is a wrapper around that local path: pick a skill, feed it a prompt, get a VIDEO (with sound) you wire into SaveVideo.

Read the licence before you read anything else, though. The MiniMax H3 Community License defines its "Applicable Territory" as worldwide excluding the EU, the UK, the Republic of Korea and the United States. If you're in one of those, you are not licensed to run, modify, distribute, or use the outputs of the local weights at all. MiniMax's own framing is regulatory hedging rather than permanence - "not yet," not "never" - but it's a heavier restriction than Krea 2's commercial threshold, and it lands on exactly what local weights are supposed to buy you. In those regions the hosted Hailuo API is the licensed route. Nothing in this node changes that.

What it does

Two skills ship: H3 文生视频 (text-to-video) and H3 图生视频 (image-to-video), and skill_id defaults to the first. Behind them is a workflow.json template the node fills in and executes in-process, so there's no queue round-trip and no intermediate files - but also no per-node progress, because the whole sample runs inside this node while the rest of the graph waits. Bring a big card.

The template chain is worth seeing once, because it explains most of the errors people hit:

UNETLoader + CLIPLoader(type=minimax) + VAELoader(video) + VAELoader(audio)
  → MiniMaxH3ImageToVideo  → [conditioning, AV latent]
  → MiniMaxH3SigmaShift (shift_video 12.0, shift_audio 3.0)
  → KSampler (cfg 1.0, euler, simple)
  → LTXVSeparateAVLatent → VAEDecode(video) / VAEDecodeAudio(audio) → CreateVideo(fps=24)

Note that both text-to-video and image-to-video run through the same MiniMaxH3ImageToVideo node - the T2V template simply doesn't wire a first frame. Audio and video come out of one AV latent and get split afterwards.

The inputs that matter

  • prompt (optional, multiline) - type it, or wire the PROMPT output from Neo Prompt Agent / Neo Prompt Encoder. The H3-aware preset skills in the pack are built for exactly this: they enforce a structured, timestamped prompt format and self-audit the result before it reaches the sampler.
  • image (optional IMAGE) - the first frame for image-to-video. T2V ignores it.
  • seed - default 0, which is fixed. Set the widget to randomize if you want a new one per run.
  • duration (seconds, default 5) - converted to frames at 24fps and then rounded up to H3's 17k+5 frame grid, so 5s becomes 124 frames, not 120. -1 means "use the skill's config" (also 124).
  • width / height - default 1344×768; -1 falls back to the skill's config.

Output is one video of type VIDEO, packing frames and audio together. SaveVideo is the usual destination.

Install

Manager → Neo Nodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/neoneo-ai/ComfyUI-Neo-Nodes.git ComfyUI-Neo-Nodes

Restart, then get the models: an H3 diffusion model, the H3 text encoder, the H3 video VAE, and - separately - the audio VAE (something like minimax_h3_audio_vae_fp32.safetensors; anything with both h3 and audio in the name gets auto-picked). Model resolution goes skill config.json → the pack's "video generation model" settings → a name-based guess. Sampling steps come from the skill config (steps, default 20; the I2V skill sets 25), and CFG/sampler/scheduler live in the template at CFG 1.0 / euler / simple.

requirements.txt installs openai, Pillow, PyYAML, pypinyin - not the requests the README claims. The LLM side is only needed if you're using the prompt nodes alongside it.

Where people get burned

The audio VAE is a separate loader and cannot be the video VAE. VAEDecodeAudio fed the video VAE tries a 4D audio latent through a 5D decode and throws an IndexError. It's the single most common wiring mistake on this chain.

Errors come back in Chinese. The resolver raises things like 未找到 H3 视频模型: diffusion_models 里没有 h3 模型 - untranslated, straight to your console. It means the model lookup failed at every level: not in the skill config, not in your video settings, and nothing matching h3 in the folder. Naming your files sanely fixes it.

VRAM. Full weights are around 42.5GB and no consumer floor was published at release. On the launch thread, 3060 owners were asking whether "slow" meant minutes or hours; the honest answer is that nobody had a verified number and the safe assumption is a lot. Quantizations are the thing to watch for, not something that existed on day one.

Pick the skill that matches your wiring. The image-to-video skill expects an image on the input; the text-to-video skill ignores one if you connect it. Queue a prompt-only run against the I2V skill and the template's {{REF_IMAGE}} placeholder has nothing to resolve to.

CategoryNeo-Nodes

Inputs (7)

NameTypeDefaultDescription
skill_idCOMBOH3 图生视频2 options: H3 图生视频, H3 文生视频
promptoptSTRING
imageoptIMAGE
seedoptINT00–9223372036854776000
durationoptINT5-1–3600
widthoptINT1344-1–16384
heightoptINT768-1–16384

Outputs (1)

NameTypeDescription
videoVIDEO