Nodes/ComfyUI/Hunyuan Latent Refiner
ComfyUI Node Runs on cloud

Hunyuan Latent Refiner

Bridge Hunyuan Video's base pass to its refiner

By Comfy-Org·Created 4 years ago·Updated 7 minutes ago· 129,953
Hunyuan Latent Refiner
  • positive
  • negative
  • latent
  • positive
  • negative
  • latent
noise_augmentation0.10

Hunyuan Video does its generation in two stages. The base model produces a 16-channel latent - the rough structure of the video - and then a refiner model, which works at 32 channels, adds the detail. HunyuanRefinerLatent is the node that prepares everything for that second stage. It's the "hand the base output to the refiner" glue, and it's been in core since the Hunyuan nodes landed in July 2024.

Inputs

  • positive / negative - your text conditioning from the Hunyuan Video text-encode node.
  • latent - the base model's output latent. This is the thing the refiner is going to polish.
  • noise_augmentation - 0 to 1, default 0.1. How much noise the refiner re-injects. This is the creative knob: higher values let the refiner deviate from the base pass (useful for sharper detail, risky for coherence); lower values keep it glued to the base structure.

How it works

The source shows the whole trick. The node takes the base latent and stamps it onto both positive and negative conditioning as concat_latent_image, alongside your noise_augmentation value - so the refiner knows what it's refining and how freely it may. Then it hands you a fresh zero latent at 32 channels. The refiner sampler consumes that 32-channel latent; it can't take the 16-channel base latent directly.

Outputs

  • positive / negative - conditioning now carrying the base latent and noise augmentation.
  • latent - the new, empty 32-channel latent for the refiner's KSampler.

The flow

Base model → KSampler (16ch) → HunyuanRefinerLatent → Refiner model → KSampler (32ch) → VAEDecode

The node is where the two-stage architecture turns into a graph you can read. Base pass, then this, then the refiner pass, then decode once - and that final decode is the only one you should keep. Decode the base latent directly and you'll see why the refiner exists: the base pass is structured but mushy on detail.

The gotchas

The latent output is zeros, not a copy of your base latent - the base latent travels inside the conditioning (concat_latent_image), so don't hunt for it in the latent output and don't wire the wrong latent into the refiner's sampler. noise_augmentation is the one real tuning lever: crank it and the refiner gets creative with detail but can drift; keep it low and the refiner respects the base pass. If your refined output looks like the base pass with nothing gained, your noise augmentation is probably too low; if it looks like a different video, too high.

It ships with ComfyUI core, no install. If your Hunyuan Video workflow is only doing one KSampler, you're running the base stage alone - this node is the second half of the story, and it's where the quality lives.

Categorymodel/conditioning/hunyuan video

Inputs (4)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
noise_augmentationFLOAT0.100–1

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT