ComfyUI Node

WVAPipeSimple

Bundle VACE control for the face-detailer pass

By drozbay·Created about a year ago·Updated 7 months ago· 95
WVAPipeSimple
  • control_video
  • control_masks
  • vace_reference
  • phantom_images
  • vae
  • wva_pipe
vace_strength1.00
vace_ref_strength1.00

Most of this pack's nodes put VACE data into conditioning. WVAPipeSimple does something different: it bundles your VACE settings - control video, masks, reference, phantom images, strengths - into a single WVA_PIPE object whose only consumer is the pack's own VACEAdvancedDetailerHook (the VACEAdvDetailerHookProvider node under "WanVaceAdvanced/Hooks"). If you've used Impact Pack's detailer hooks, you know the shape: a hook lets the sampler pass re-encode and regenerate a crop region (usually a face) mid-generation. This pipe is how you get VACE control inside that detailer pass, so your close-up re-encode respects the same pose/identity you're driving the main clip with.

How it works

The node just packs its inputs into a WVAPipe object. vace_strength is required (default 1.0); everything else is optional - control_video, control_masks, vace_reference, phantom_images, vace_ref_strength, and vae (whose tooltip says exactly what it's for: "VAE for encoding VACE data in DetailerHook"). One output: wva_pipe.

From there the pipe flows into VACEAdvDetailerHookProvider, which builds the actual detailer hook. A couple of source-level details worth knowing:

  • The hook provider also accepts its own wva_options (WVA_OPTIONS) input, and if you feed one, it overrides whatever options the pipe carries - the code logs a warning when that override happens, so if you see that message in your console, that's what it means.
  • The hook provider requires ComfyUI-Impact-Pack; without it installed, the node refuses to run with a clear error telling you to install Impact Pack. That's a hard dependency of the detailer feature, not the whole pack.
  • The hook also takes latent_pad_direction and crop_calculation_from (both default "bottom_right") to align the detailer crop with how your VACE latents were padded.

When you'd reach for it

This is squarely a "faces in video" node. If you're doing character work where the main pass gets the motion right but the face wobbles, a detailer hook that re-encodes the face region with the same VACE reference is a genuinely useful fix - it's the video equivalent of Impact Pack's face-detail on stills, with your VACE identity data riding along. But it's also the most niche node in the pack: it requires Impact Pack, it requires the DetailerHook provider, and it only pays off on close-up-heavy videos. If you don't already run Impact Pack and aren't fighting face consistency, skip it.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/ComfyUI-WanVaceAdvanced
# restart ComfyUI

or ComfyUI Manager → "ComfyUI-WanVaceAdvanced", and additionally install ComfyUI-Impact-Pack for the DetailerHook side. The pack itself only needs numpy + scipy. A last tip: because the pipe is just data, you can build it once and feed multiple hook providers or iterate on vace_strength between runs without touching the main VACE encode - same tuning loop as VaceStrengthTester, aimed at the detailer pass instead.

CategoryWanVaceAdvanced

Inputs (7)

NameTypeDefaultDescription
vace_strengthFLOAT1.000–1000
control_videooptIMAGE
control_masksoptMASK
vace_referenceoptIMAGE
phantom_imagesoptIMAGE
vace_ref_strengthoptFLOAT1.000–1000
vaeoptVAEVAE for encoding VACE data in DetailerHook

Outputs (1)

NameTypeDescription
wva_pipeWVA_PIPE