FeiHou Easy H3 1st Sample Enhancer(一采)
Your own noise, your own scheduler, and a draft you can actually look at
- model
- h3_context
- guider
- sampler
- sigmas
- latent
- h3_context
- video_vae
- audio_vae
- fps
This is the same first pass as FeiHou Easy H3 Dual Sample 1st, with a bigger dashboard. It prepares a truncated high-noise sampling schedule and hands you guider/sampler/sigmas/latent for a native SamplerCustomAdvanced - but it also gives you the VAE and FPS outputs, and a scheduler dropdown, and a hidden detail trigger that's on by default. The result is a first pass you can decode, watch, and then feed to the 2nd pass.
That's the "enhancer" framing: the pass is a real output, not just an intermediate. With video_vae, audio_vae and fps coming straight off this node, you can send the sampler's denoised_output into a VAEDecode and a video combine and judge the draft before spending the refine pass. If the composition is off, you've saved yourself the expensive half.
Mechanism and the dials that matter
H3 generates video and audio latents as one nested tensor with two different noise clocks - video on a shift of 12, audio on 3. Installing this node swaps in the dual-clock sampler, so dual_clock_euler (the default) keeps both on their own schedule, while the other 44 entries in that dropdown are plain ComfyUI samplers and lose the split. Keep the default unless you're deliberately experimenting.
scheduler is new here and it's the interesting addition. native_flow is described as an even H3-native flow schedule at shift 12 - near-identical to simple - and beta57 is a beta(0.5, 0.7) curve. simple, karras, exponential and the rest are the ComfyUI schedulers you already know. The second pass follows whatever you pick here, since it continues from where this pass stopped.
total_steps and first_steps do the truncation: the node builds the full schedule and keeps the first first_steps + 1 sigmas, so at the defaults (9 and 4) you're stopping about halfway down the noise ladder. first_steps has to be smaller than total_steps, and the node says so if you get it backwards.
cfg at 1 gives you a BasicGuider - no negative branch, fastest, correct for turbo/accelerated LoRAs. Raise it and you get a real CFG guider using negative_prompt, which the node also mirrors onto the positive's reference and keyframe metadata so both branches see the same canvas and only the text differs.
default_trigger_words (on by default) prepends the pack's built-in detail prompt - a "sharp, crisp details, natural photorealistic" instruction plus a pair of trigger tokens - to this pass's encoded prompt. It doesn't show up in the node, so if your output has a mildly extra-photographic feel, that's why, and the switch is how you turn it off.
The semantic_bridge* trio is optional and, with nothing in models/semantic_bridge, inert: semantic_bridge will only offer 无(不使用) until you drop an adapter model in that folder. The switch stays on by default and does nothing, which is fine.
Outputs: guider, sampler, sigmas, latent → SamplerCustomAdvanced; h3_context → FeiHou Easy H3 2nd Sample Enhancer; video_vae, audio_vae, fps → your decode chain. From the sampler, feed denoised_output into the 2nd pass and into VAEDecode - the node's own docs call that out because output is the wrong socket here.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Easy-H3
# restart ComfyUI
Manager search "ComfyUI-FeiHou-Easy-H3" does the same job. Nothing to pip install. You need the official MiniMax H3 nodes present in your ComfyUI build (the module imports comfy_extras.nodes_minimax_h3 at load), the H3 transformer/text-encoder/VAE files, and the pack's workflows also expect KJNodes and VideoHelperSuite. h3_context must come from a FeiHou Easy H3 node - a foreign context raises a clear error rather than half-working.
Where people get burned
Almost every frustrating session with this workflow comes down to the two-pass contract: the 1st node prepares, the sampler samples, and only denoised_output is the pass. Wire output onward and you're refining an already-finished sample, which looks like a broken refiner rather than a wrong cable. The other classic is noise: this node doesn't supply it, SamplerCustomAdvanced takes a separate noise input, and changing that noise node's seed between the two passes gives you two different videos stacked on each other. Keep one noise node for the first pass and let the 2nd pass node build its own schedule.
And keep expectations calibrated about what a 4-step draft at a small canvas can tell you. It's a composition check, not a quality check - the noisy latent genuinely looks bad, that's the point, and the denoised_output preview is the model's best guess at x0, not a finished frame.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | 一采模型(小画幅、高噪声段)。 | |
| h3_context | MINIMAX_H3_CONTEXT | 接 Easy H3 主节点的 h3_context;Easy H3 的分辨率就是一采画幅。 | |
| sampler_name | COMBO | dual_clock_euler | dual_clock_euler:视频/音频各走各的时钟(推荐);其它为 ComfyUI 原生采样器。二采沿用。 |
| scheduler | COMBO | simple | 一采调度器。native_flow = shift 12 下均匀的 H3 原生流调度(与 simple 几乎相同);beta57 = beta(0.5, 0.7);二采按 second_steps 规则续接。 |
| total_steps | INT | 92–200 | 调度总步数。 |
| first_steps | INT | 41–199 | 一采只跑前几步(高噪声段)。 |
| cfg | FLOAT | 1.01–20 | 加速 LoRA 保持 1(不算负面);不用加速 LoRA 时调高。二采沿用。 |
| negative_prompt | STRING | 负面提示词,仅 cfg > 1 时使用;自动带上与正面相同的参考图/关键帧,二采沿用。 | |
| semantic_bridge_on | BOOLEAN | true | 语义桥开关;关闭后下面两项不生效。 |
| semantic_bridge | COMBO | 无(不使用) | 语义桥模型(models/semantic_bridge),一采和二采都会应用。 |
| bridge_strength | FLOAT | 0.100–1 | — |
| default_trigger_words | BOOLEAN | true | 默认开启:把内置触发词加到提示词开头;关闭后不添加。触发词不会在节点中展开显示。 |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| guider | GUIDER | — |
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |
| latent | LATENT | — |
| h3_context | MINIMAX_H3_CONTEXT | — |
| video_vae | VAE | — |
| audio_vae | VAE | — |
| fps | FLOAT | — |