VaceExt6fLatentPatcher
The middle child of latent-space VACE extension
- NewSamples
- PreviousSamples
- LATENT
If you've ever chained VACE extensions and watched the colors walk away from you segment by segment, you know the culprit: the tail of each clip gets VAE-decoded to pixels, fed back through VACE's conditioning encode, and re-compressed. With Wan's 4x temporal compression that's four frames collapsing into one and then being rebuilt - and like repeated downsampling, each cycle nudges the color and detail a little further from where they started.
VaceExt6fLatentPatcher is the 6-frame middle option in synystersocks' ComfyUI-SocksLatentPatcher pack. It does what its 4f and 8f siblings do - carry the previous generation's tail across in latent space instead of pixel space, bypassing the VAE round-trip that causes the drift - but it trades a bit more reference context for a bit more stability to tune.
What it actually does
It slots between the last KSampler of one generation and the first KSampler of the next. It reads the tail of the previous latent, computes the last-frame index as (PrevGenFramesLength - 1) // 4 (Wan's time compression again), and stamps those tail values into the leading reference frames of the new latent. Compared to the 4f node it fills three leading latent frames instead of two, and it spreads the tail's channel data across them in a slightly different arrangement. The whole node is a few lines of tensor assignment - no model, no sampling, no decode. It's a copy, just a copy with opinions about where things belong.
Honest note on what it isn't: this isn't copying full frames across. It patches the reference region of the latent - the leading frames where VACE's conditioning expects the continuation context. The author's example workflow for the 6f (wan2_2_i2vToVaceT7I2vPatchRf65Pat6fCoeff14bQ6v5) pairs it with a VACE-Fun GGUF checkpoint and the usual reference-injection rig.
The inputs that matter
- PreviousSamples - the LATENT from the last KSampler of the previous generation. Source of the tail.
- NewSamples - the latent you'd feed the next KSampler. Gets patched.
- PrevGenFramesLength (default 65, min 1, max 257, step 4) - the previous generation's frame count. The tail-finder depends on it; set it to the actual segment length.
Output is a single LATENT for the next KSampler.
Install
Nothing to install beyond the pack itself - no requirements.txt, no model files shipped. ComfyUI Manager → search "SocksLatentPatcher", or:
cd ComfyUI/custom_nodes
git clone https://github.com/synystersocks/ComfyUI-SocksLatentPatcher
Restart ComfyUI. Your VACE checkpoint and GGUF quants are your existing setup.
Where people get burned
The author's own summary: the 4f, 6f and 8f patchers all do decent motion transfer, but each "requires different parameters to stabilize." The 6f is the least documented of the three - the pack's README showcases the 8f, and there's no dedicated 6f showcase clip - so if you land on it, expect to fiddle with CFG and sampling between segments rather than it working on the first try. That's why the repo ships a ready-built 6f reference workflow: start from it instead of hand-wiring the conditioning. And as with the rest of the pack, it's EXPERIMENTAL WIP on an 8GB-GGUF setup - a quality-preservation tool for long chains, not a speed hack.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| NewSamples | LATENT | — | |
| PreviousSamples | LATENT | — | |
| PrevGenFramesLength | INT | 651–257 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |