Nodes/DJZ-Nodes/GAN Video Interlaced Upscaler V3
ComfyUI Node

GAN Video Interlaced Upscaler V3

The interlaced upscaler that actually uses an AI model (and why that matters)

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 80
GAN Video Interlaced Upscaler V3
  • images
  • upscale_model
  • IMAGE
field_ordertop_first
blend_factor0.25
temporal_radius1
tile_size512
tile_overlap32
enhance_edges0.0

Video upscaling is a different job from image upscaling. A still upscaler can invent detail however it wants; a video upscaler has to make every frame agree with its neighbours or you get the wobble-and-pulse effect that screams "AI video upscale." DJZ-Nodes solves this three different ways - plain VideoInterlaced, the GAN version, and a "fast" version - and this V3 is the one that brings an actual neural upscale model into the mix.

The setup is the giveaway: it takes an images batch and an upscale_model input. That second socket is an UPSCALE_MODEL, which in ComfyUI terms means one of your ESRGAN-family upscalers - the same .pth files you load with the stock "Upscale Model Loader" from models/upscale_models. No bundled weights, no download inside the node. You bring your own 4x-UltraSharp or whatever you already have on disk.

Here's the pipeline the node runs, roughly. First it does temporal compensation: for each frame it looks at neighbours within temporal_radius (1–3, default 1) and blends them with weights, which is what keeps motion from tearing. Then the full frame goes through your GAN model. Then it splits into interlaced fields (top field or bottom field, your choice via field_order) and recombines them with blend_factor - the "interlaced" part is both the aesthetic and, per the author's design, a way to reduce flicker between fields. Optional enhance_edges (0–1) throws a Sobel-based sharpening pass on top, and tile_size / tile_overlap let you process big frames in chunks instead of OOM-ing your GPU.

The honest read: this is the "quality" option in the family, and it pays for that quality in speed and VRAM. The community's favorite interlaced upscaler for quick jobs was actually the Fast V4 - there's a well-known r/comfyui thread of someone upscaling 960x540 → 1920x1080 on an 8GB laptop in under a minute with it. V3 is what you reach for when the source is worth more than a minute per clip: cleaner motion, and the GAN adds real detail instead of just interpolation.

The inputs you actually touch: blend_factor (start 0.25, that's the default and it's a sane spot), temporal_radius (leave at 1 unless you see frame-to-frame shimmer - 2 and 3 are slower and can smear fast motion), and tile_size (drop to 256 if you're on a 6–8GB card and the 512 default OOMs). enhance_edges is a trap at anything above ~0.3; it's the classic over-sharpened video look. Output is a single IMAGE batch, same as the input count, ready to feed straight into VideoCombine.

Where people get burned: plugging a diffusion checkpoint into the upscale_model socket instead of an ESRGAN file - it expects an actual upscale model, not a checkpoint. And interlacing fields on video you plan to de-interlace later can double the artifact. If you just want more pixels without the interlaced aesthetic, the plain VideoInterlaced or any normal upscaler is the simpler path; if you want that field-weave look with genuine AI detail, this is the one.

Categoryimage/upscaling

Inputs (8)

NameTypeDefaultDescription
imagesIMAGE
upscale_modelUPSCALE_MODEL
field_orderCOMBOtop_first2 options: top_first, bottom_first
blend_factorFLOAT0.250–1
temporal_radiusINT11–3
tile_sizeoptINT512128–1024
tile_overlapoptINT3216–256
enhance_edgesoptFLOAT0.00–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE