Nougan RefMod Bake (Character)
Bake a character — portraits and a voice — into one MiniMax H3 reference file
- vae
- images
- video_frames
- audio
- audio_vae
- mods
- saved_path
- details
MiniMax H3 is the first open-weights video model that treats audio as part of the input context rather than an afterthought: 33B parameters, 4–15 second clips at 24fps, native stereo. Which means "character consistency" for H3 is two problems at once. The face has to stay the same, and the voice does.
Nougan RefMod Bake (Character) solves both by freezing a character into a single file: portraits and/or video frames plus an optional voice clip, written to models/refmods/<subfolder>/<name>.safetensors. It is extraction only - no training. You are not training a LoRA. You're building a reference bundle the model reads at generation time.
How it works
The engine under this (vendored in the pack's nougan_engine/, MIT, from Luisa's ComfyUI-MiniMaxH3Mod, bundle format v5) encodes your stills with the H3 video VAE and your audio with the H3 audio VAE, and stores them as "mods" in one container. There's no gradient descent anywhere in this node; it's VAE encode plus a container.
Two VAEs, and they are not interchangeable. vae is your MiniMax H3 video VAE; audio_vae is the H3 audio VAE (minimax_h3_audio_vae_fp32). Connect the video VAE to the audio input and the audio simply won't bake - the docs call that out because it's the mistake everyone makes once.
The bake also writes two cosmetic sidecars next to the file: <name>.safetensors.nougan.jpg (face thumbnail for the UI cards) and <name>.safetensors.nougan.json (token counts, waveform peaks). Delete them and the node still works; the cards just look plain. Because the format is Luisa's v5 bundle, her stock Load H3 RefMods node opens files baked here, and hers open here.
Inputs
Only two are required, and neither is an image:
name - the character name, which is the filename. Same name + subfolder replaces the old file, so version with _v2 unless you mean it.
vae - the H3 video VAE.
Everything else is optional, which is the whole design: you build a character out of whatever you have.
images (portrait batch - each image becomes one reference still), video_frames (one clip's frames as a motion/appearance reference), folder (absolute path, or a folder inside ComfyUI/input, added after anything connected; capped by folder_max_items and folder_max_edge), audio + audio_vae + audio_max_seconds (30s default) + audio_max_tokens.
audio_type is metadata only - voice, singing, music_style, sound_fx, ambience. It doesn't change the encode, it labels the ref so you know what you're grabbing later.
The budget knobs matter more than they look. ref_resolution (1024, short edge, 256–2048) and max_visual_tokens (16384, 0 = no cap) decide how heavy this character is in every generation. visual_budget decides what happens when you overshoot: error refuses and saves nothing, truncate drops or resamples frames to fit. error is the honest default.
description - free text that ends up in the prompt_hint (think adult oni woman, tiny horns, red hair). Worth filling in: it's how the model gets told what these references are called.
Outputs
mods (H3_REF_MODS) lets you use the character in the same run you baked it - wire it into Nougan RefMod Loader or RefMod Apply. saved_path is where the file landed, and details prints the token accounting, which is the number you want when a generation suddenly OOMs.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Winnougan/Nougan_Nodes
# restart ComfyUI
Or via ComfyUI Manager (search "Nougan"). The RefMod toolkit needs a ComfyUI build with MiniMax H3 support; if the vendored engine can't import, only RefMod fails - the rest of the pack still loads, because each family is wrapped in its own try/except. Console should show the RefMod toolkit line on boot. No pip installs. Hard-refresh for the card UI.
Where people get burned
Audio silent in the output. Wrong VAE on the audio input. H3 audio VAE, not the video one.
Overshooting the visual budget with a folder of 30 images. Raise ref_resolution's consequences by trimming folder_max_items, or set visual_budget to truncate and accept the resample.
Empty dropdown afterwards. Files must be in models/refmods; press R on the node (or refresh the node list) after baking outside ComfyUI.
One licence note, and it's a big one. H3 weights ship under the MiniMax H3 Community License, which excludes the US, EU, UK and South Korea from the applicable territory. If you're in one of those regions you're not licensed to run the local weights, regardless of how well the bake works.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| name | STRING | my_character | Character name = filename. Same name + subfolder replaces the old file; use _v2 etc. for versions. |
| vae | VAE | MiniMax H3 VIDEO VAE. | |
| imagesopt | IMAGE | Portrait batch (each image in the batch is one reference still). | |
| video_framesopt | IMAGE | Optional: one video clip's frames [T,H,W,C] as a motion/appearance reference. | |
| folderopt | STRING | Optional: folder of images/videos (absolute path, or a folder inside ComfyUI/input). Added after the connected images. | |
| audioopt | AUDIO | Voice / music / ambience reference. Needs audio_vae. | |
| audio_vaeopt | VAE | MiniMax H3 AUDIO VAE (minimax_h3_audio_vae_fp32). | |
| audio_typeopt | COMBO | voice | Metadata label only. |
| audio_max_secondsopt | FLOAT | 30.00.025–600 | — |
| audio_max_tokensopt | INT | 51200–2147483647 | — |
| ref_resolutionopt | INT | 1024256–2048 | Short edge for the visual encode. Lower = fewer tokens. |
| max_visual_tokensopt | INT | 163840–2147483647 | 0 = no cap. |
| visual_budgetopt | COMBO | error | error = stop if over budget (nothing saved). truncate = drop/resample frames to fit. |
| folder_max_itemsopt | INT | 81–256 | — |
| folder_max_edgeopt | INT | 1536256–4096 | — |
| descriptionopt | STRING | Optional. Shows up in the prompt_hint (e.g. 'adult oni woman, tiny horns, red hair'). | |
| subfolderopt | STRING | characters | Folder inside models/refmods. |
| overwriteopt | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| mods | H3_REF_MODS | — |
| saved_path | STRING | — |
| details | STRING | — |