Nodes/ComfyUI Impact Pack/SEGSDetailer For Video (SEGS/pipe)
ComfyUI Node Runs on cloud

SEGSDetailer For Video (SEGS/pipe)

Run the face-fix loop across every frame at once

By ltdrdata·Created 3 years ago·Updated 4 months ago· 3,242
SEGSDetailer For Video (SEGS/pipe)
  • image_frames
  • segs
  • basic_pipe
  • refiner_basic_pipe_opt
  • scheduler_func_opt
  • segs
  • cnet_images
guide_size512
guide_size_fortrue
max_size768
seed0
steps20
cfg8.00
sampler_name
scheduler
denoise0.50
refiner_ratio0.20
noise_mask_feather20

SEGSDetailer For Video is the detailer built for moving pictures. It runs the same detect-crop-resample refinement the still-image detailers do, but on a batch of frames where the masks in the SEGS span the whole clip - so a face gets cleaned up consistently across every frame instead of one image. It was written for AnimateDiff (hence the class name SEGSDetailerForAnimateDiff), and it works for any video that's just a stack of image frames.

The problem it targets is that video makes small-face mangling worse, not better: a face that's mushy in one frame is mushy in all of them, and it flickers as it changes frame to frame. Detailing per-frame independently would make the flicker worse. This node processes the frame batch together so the refinement stays coherent across time. One important structural note: it outputs refined SEGS, not a finished image - it does the detailing on the SEGS without pasting back. You paste the result onto your frames afterward with SEGS Paste. That split is deliberate and lets the video pipeline composite on its own terms.

How it works

You feed it the image frames and a SEGS whose masks are batch masks covering the clip (produced by MASK to SEGS for Video or a video detector). For each region, it crops, scales toward guide_size, and runs a sampling pass - across the frame batch - then writes the refined crops back into the SEGS. The refinement uses a BASIC_PIPE (model, clip, vae, conditioning bundled) rather than loose wires. Because it operates on the whole batch, VRAM and especially system RAM scale with frame count; video detailing is famously memory-hungry, and the community rule of thumb for these per-frame Impact Pack workflows is to have plenty of system RAM (64GB gets cited as the floor for the heavier ones).

The inputs and outputs that matter

  • image_frames (required) - the clip, as a batch of frames.
  • segs (required) - detected regions with batch masks spanning the frames.
  • basic_pipe (required) - model/clip/vae/positive/negative in one bundle.
  • guide_size (default 512) - the size each crop is scaled to before resampling.
  • denoise (default 0.5) - how far each region departs from the original. Keep it modest (0.3–0.4) on video; high denoise reintroduces the frame-to-frame flicker you're trying to remove.
  • max_size (default 768) - the upper bound on the crop's resample size, a little lower than the still detailers to keep video memory in check.
  • cfg, steps, sampler_name, scheduler, seed - the standard sampling controls for the refinement pass.

Optional refiner_basic_pipe_opt and noise_mask_feather cover refiner and edge-blend tuning. Outputs: segs (the refined SEGS - feed this to SEGS Paste) and cnet_images.

How to install it

Install the pack via ComfyUI Manager (search ComfyUI Impact Pack, install, restart), or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack comfyui-impact-pack
cd comfyui-impact-pack
python -m pip install -r requirements.txt   # ComfyUI's python; python_embeded on portable

then restart. For the video stack itself you'll also want an AnimateDiff node pack (AnimateDiff-Evolved) or whatever drives your frames - though note AnimateDiff is largely superseded by Wan 2.2 now, and people run this same per-frame detailing on Wan clips too. The detector that builds your SEGS needs the Impact Subpack. Linux: libgl1-mesa-glx and libglib2.0-0.

Common issues & troubleshooting

My machine ran out of memory. Expected on long clips - this holds and processes frames as a batch. Cut the frame count, lower max_size, and make sure you have generous system RAM, not just VRAM; these workflows are RAM-hungry more than VRAM-hungry. 64GB is the commonly cited comfort floor for the heavier ones.

The detailed face flickers. Push denoise down. A high denoise per region reinvents detail each pass and the reinvention differs frame to frame. Low denoise keeps it anchored to the source and coherent.

Nothing showed up on my final video. This node outputs SEGS, not an image - you have to composite it back with SEGS Paste onto your original frames. If you wired the segs output expecting a finished clip, that's the missing step.

Is the detail even visible? Honest answer: sometimes barely. The loudest reaction to a video-detailing demo was that the before and after looked identical at normal viewing size, and the rebuttal had to zoom to the eyes. Detail passes pay off on small faces; on a face that's already large in frame, you're mostly spending compute.

CategoryImpactPack/Detailer

Inputs (16)

NameTypeDefaultDescription
image_framesIMAGE
segsSEGS
guide_sizeFLOAT51264–16384
guide_size_forBOOLEANtrue
max_sizeFLOAT76864–16384
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO17 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +11
denoiseFLOAT0.500.0001–1
basic_pipeBASIC_PIPEIf the `ImpactDummyInput` is connected to the model in the basic_pipe, the inference stage is skipped.
refiner_ratioFLOAT0.200–1
refiner_basic_pipe_optoptBASIC_PIPE
noise_mask_featheroptINT200–100
scheduler_func_optoptSCHEDULER_FUNC

Outputs (2)

NameTypeDescription
segsSEGS
cnet_imagesIMAGE