HunyuanVideo Sr Vae Encode
The node that wires HunyuanVideo 1.5's super-resolution pass together
- vae
- latents_dict
- hyvid_cfg
- upsampler
- reference_image
- v
HunyuanVideo 1.5 doesn't generate your final resolution in one shot. It draws at 480p or 720p, then a separate distilled super-resolution pass pushes the result toward 1080p. HyVideoSrVaeEncode is the hinge between those two passes - the node that takes what the first pass made and turns it into the conditioning the second pass denoises against. If you've loaded one of this pack's "complete" SR workflows, you've met it already; you just probably didn't realize what it was doing.
What this node actually is
This pack (yuanyuan-spec's "HunyuanVideo-1.5 nodes") ships two ways to run the model: a simplified pair of nodes for quick tests, and a "complete" set that splits everything out so you can swap pieces. The SR path is the complete set's second stage, and it has a mini-pipeline of its own:
HyVideoSrLatentsPrepare- builds the SR-resolution noise latentsHyVideoSrVaeEncode- builds the conditioning tensorHyVideoSrTransformer- runs the SR denoiseHyVidelSrVaeDecoder- turns the upscaled latents back into pixels
So this node is the SR twin of the base HyVideoVaeEncode. Same job, different inputs: instead of conditioning on a reference image alone, it also has to feed the SR pass a noised, upscaled copy of the low-res video it's trying to improve. The simplified nodes never touch it - only the complete_T2V_workflow_sr.json and complete_I2V_workflow_sr.json templates wire it in. If you're not generating at 1080p, you can safely ignore it.
How the conditioning gets built
Look at what the encode function does and it's a tidy little pipeline. It takes the low-quality latents out of latents_dict, runs them through the upsampler network (a small separate model, not the main transformer, loaded by HyVidelSrTransformerUpsamplerLoader from upscale_models/hyvideo15/…sr_distilled/), then adds Gaussian noise at a fixed strength of 0.7. If you pass a reference_image, it VAE-encodes it and slots the first-frame condition in (that's the I2V path); no image means pure T2V.
Everything gets packed into a 2c + 2 channel condition tensor - the noisy low-res latents in one block, a mask channel, the image condition in the first slot for I2V. It also produces a zero_condition, which is the same tensor with the low-res channels zeroed out; that's the unconditional side the transformer uses for classifier-free guidance. The output is a single vae_concat (HYVID15VAECONCAT) that wires straight into HyVideoSrTransformer's vae_concat input.
The inputs that matter
Honest answer: almost none, if you're following the template. Every input is pre-wired from the neighboring SR nodes, and the whole point of the "complete" set is that you only touch the ones you want to change. The two worth knowing:
reference_image(optional) - the only input you'd plausibly add yourself. Feed it the source frame for I2V upscaling, leave it empty for T2V.height/width(defaults 768×512) - the resolution the reference image gets resized and center-cropped to. Match these to your base generation resolution.
The rest - vae, latents_dict, upsampler, hyvid_cfg - all come from other nodes. Don't hand-wire them; you'll only break the graph.
Installing the pack
Same as any ComfyUI custom node: search "HunyuanVideo-1.5 nodes" in ComfyUI Manager, or
cd ComfyUI/custom_nodes
git clone https://github.com/yuanyuan-spec/comfyui_hunyuanvideo_1.5_plugin
then restart ComfyUI. The real dependencies (from requirements.txt) are heavy: torch>=2.6.0, torchaudio==2.6.0, diffusers==0.35.0, transformers, peft, qwen-vl-utils, modelscope, huggingface-hub, angelslim. Flash Attention is recommended for both speed and VRAM. Models auto-download on first run if you leave loader paths at None - and the download is big: the 8.3B transformer, the MLLM text encoder, byT5/Glyph, the SigLIP vision encoder, the VAE, and the SR upscalers.
Where people get burned
- The SigLIP vision encoder is gated. It comes from
black-forest-labs/FLUX.1-Redux-dev, which requires requesting access on Hugging Face and using a personal token. If auto-download dies at this step, that's why - it's not your network. - VRAM. 1.5's floor is around 14GB with offloading, but the SR path runs the transformer twice (base pass + SR pass), so budget some headroom over that.
- Pinned dependency versions.
torchaudio==2.6.0anddiffusers==0.35.0are exact pins. Let ComfyUI Manager install them rather thanpip install -r requirements.txtover your existing environment, or you can spend an afternoon untangling conflicts. - The license. The plugin code is GPL-3.0, but the model itself is under the Tencent Hunyuan Community License, which excludes the EU, UK, and South Korea.
One honest take to close: this is plumbing, and it only exists in the SR workflows. By 2026 Hunyuan's local share has thinned to almost nothing - Wan and LTX own the mindshare. But if you're on a card with room above the 14GB floor and want Hunyuan 1.5's 1080p path, this node is where the upscale actually gets assembled, and the pack's auto-download plus template workflows make it dramatically easier than running the official CLI.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | HYVID15VAE | — | |
| latents_dict | HYVID15LATENTSDICT | — | |
| height | INT | 768 | — |
| width | INT | 512 | — |
| hyvid_cfg | HYVID15CFG | — | |
| upsampler | UPASAMPLER | — | |
| reference_imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| v | HYVID15VAECONCAT | — |