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

Detailer For Video (SEGS/pipe)

Run the detail pass across every frame

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

Detailer For Video (SEGS/pipe) is the detailer built for moving pictures. It takes the same detect-crop-refine loop that fixes faces in a still image and applies it across a whole batch of frames - the kind AnimateDiff or a video model produces. Instead of one image with one mask, it handles SEGS whose masks span many frames, refining the detected region in each one. Its class name still says "AnimateDiff" (a fossil from when that was the video workflow), but the job is general: re-detail a region, frame by frame, at proper resolution.

Video makes the small-face problem worse, not better. A face that's tiny in one frame is tiny in all of them, and now the mangling flickers. This node exists so you can run a face/hand detail pass over the sequence the same way you would over a single render. It's the same core idea Impact Pack is famous for - crop the region, sample it at full resolution, paste it back - extended to a stack of frames so the refined detail is consistent shot to shot.

The inputs that matter

It's a big node because it's a full sampler plus a detailer plus frame handling, but the ones you actually set:

  • image_frames - your batch of frames (IMAGE).
  • segs - the detected regions, as batch masks spanning the frames. This is the video-specific bit: the SEGS carry per-frame masks.
  • basic_pipe - the bundle with your model/clip/vae/prompts.
  • guide_size (default 512) and max_size (default 1024) - the resolution the cropped region gets upscaled to for its detail pass. Bigger guide_size means more detail and more compute per frame.
  • denoise (default 0.5) - how hard the refine pass hits. Keep it moderate; on video, too high means each frame drifts differently and you reintroduce the flicker you were trying to kill.
  • steps / cfg / sampler_name / scheduler / seed - standard sampling controls.

There's also an optional refiner_basic_pipe_opt with a refiner_ratio for SDXL-style refiner passes, and a detailer_hook slot for the pack's noise-injection and scheduling hooks.

Outputs: the detailed image (your frames, refined), the segs passed through, the basic_pipe passed through for chaining, and cnet_images (the per-region control images, a list, mostly for debugging).

Getting good results

Consistency is the whole game with video, and the enemy is per-frame divergence. Two practical levers: keep denoise restrained so the pass sharpens rather than reinvents, and be deliberate about seed so frames don't each wander somewhere different. The community reality check is worth carrying - a per-frame detail pass helps most where the flaw is genuinely visible (small, mangled faces and eyes); on a face that's already adequately sized, the "improvement" is often invisible at normal viewing size and just costs you time. Reach for this when the faces are actually broken, not reflexively.

The honest constraints

Video detailing is expensive. You're running a sampling pass per frame, so a clip is N times the cost of a single image - plan for it. And there's a memory quirk worth flagging from how this pattern is used in the wild: the video detailing workflows built on Impact Pack are often RAM-hungry rather than VRAM-hungry, because they hold many frames at once - one well-known WanFaceDetailer workflow warns people off attempting it under 64GB of system RAM. If your machine chokes, it may be system memory, not the GPU. Work in shorter frame windows if so.

Also mind the ComfyUI-native gotcha: keep your batch/list handling straight, because a detail pass over frames only makes sense if the frames and their masks line up. Bad or empty SEGS means nothing gets detailed.

Installing it

The node comes with ComfyUI Impact Pack. Install via ComfyUI-Manager (search ComfyUI Impact Pack, Install, restart), or manually: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, install its requirements.txt in ComfyUI's Python environment (portable: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt), restart. First run auto-downloads a SAM model to ComfyUI/models/sams. To detect the regions this node refines you'll also want a detector - the YOLO provider now lives in the separate ComfyUI-Impact-Subpack since v8.0 - and, obviously, a video/AnimateDiff pipeline upstream to produce the frames. Impact Pack is ltdrdata's, maintained alongside ComfyUI-Manager, so it's solid and current.

CategoryImpactPack/Detailer

Inputs (18)

NameTypeDefaultDescription
image_framesIMAGE
segsSEGS
guide_sizeFLOAT51264–16384
guide_size_forBOOLEANtrue
max_sizeFLOAT102464–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
featherINT50–100
basic_pipeBASIC_PIPEIf the `ImpactDummyInput` is connected to the model in the basic_pipe, the inference stage is skipped.
refiner_ratioFLOAT0.200–1
detailer_hookoptDETAILER_HOOK
refiner_basic_pipe_optoptBASIC_PIPE
noise_mask_featheroptINT200–100
scheduler_func_optoptSCHEDULER_FUNC

Outputs (4)

NameTypeDescription
imageIMAGE
segsSEGS
basic_pipeBASIC_PIPE
cnet_imagesIMAGE