Nodes/DJZ-Nodes/Video Interlaced Upscaler V2
ComfyUI Node

Video Interlaced Upscaler V2

Upscale and fake the scanline look in one pass

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 78
Video Interlaced Upscaler V2
  • images
  • IMAGE
input_height720
input_width1280
field_ordertop_first
scale_factor1.5
blend_factor0.25
motion_compensationbasic
interpolation_modebilinear
deinterlace_methodblend
field_strength1.0
temporal_radius1
edge_enhancement0.0

VideoInterlacedV2 does two jobs at once: it upscales a batch of frames and gives them the interlaced combing you associate with old broadcast TV. The name is a bit of a misnomer - "Upscaler" makes it sound like a quality tool, but nobody reaches for this to make video sharper. This is a look. If your project needs that CRT-meets-antenna-signal texture, this is one of the most controllable ways to fake it in ComfyUI.

How it actually works

The node runs per frame, and here's the trick: it separates each frame into even and odd horizontal fields (every other scanline), like a real interlaced video signal, then recombines them the way a worn-out broadcast would. Before that, it optionally applies motion compensation at the source resolution so the effect doesn't smear across moving objects, then upscales with your chosen interpolation_mode (bilinear, bicubic, or nearest).

The deinterlace_method control decides how the fields are recombined - blend mixes them, bob alternates fields (that flickery motion artifact), weave pairs them back up. blend_factor (default 0.25) governs how much the neighboring fields bleed in, and field_order (top_first vs bottom_first) matters if you're feeding it real interlaced source and want the scanlines to land correctly. Output is a single IMAGE tensor, ready to feed an encoder or a preview node.

The inputs you'll actually touch

  • scale_factor - how much it upscales, default 1.5 (a 720p source becomes ~1080p). Crank it and the combing gets chunkier.
  • input_height / input_width - the source resolution, not the target. These matter because the field masks are built against them.
  • motion_compensation - none, basic, or advanced. basic is a good default; advanced pulls temporal neighbors into a weighted blend and is slower.
  • field_strength (optional) - push past 1.0 to exaggerate the combing, or drop toward 0 for a subtler weave.
  • temporal_radius (optional) - how many neighbors advanced motion compensation looks at, 1-3.
  • edge_enhancement (optional) - a Sobel-based sharpen that helps the combing read as "signal detail" instead of mush. Keep it small; 0.3 is plenty.

Installing and context

It ships inside DJZ-Nodes (MushroomFleet / Drift Johnson). Search "DJZ-Nodes" in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Nodes
cd DJZ-Nodes
pip install -r requirements.txt

For the wider picture: the KB's upscaling essay is blunt that video upscaling is "more pixels over time" - a different problem than single-image upscaling. This node is on the aesthetic end of that spectrum, not the restoration end. If you want to repair interlaced or low-res footage, this isn't the tool; if you want footage to look interlaced, it's great.

Gotchas

Because it recombines fields, cheap fast-forward motion can show aliasing - that's the effect, not a bug. On a big batch with advanced motion compensation it gets slow; drop to basic or raise blend_factor first. And keep edge_enhancement low: with it at 1.0 you'll get hard white outlines that read as JPEG-ish ringing rather than TV texture.

Categoryimage/upscaling

Inputs (12)

NameTypeDefaultDescription
imagesIMAGE
input_heightINT720480–4320
input_widthINT1280640–7680
field_orderCOMBOtop_first2 options: top_first, bottom_first
scale_factorFLOAT1.51–4
blend_factorFLOAT0.250–1
motion_compensationCOMBObasic3 options: none, basic, advanced
interpolation_modeCOMBObilinear3 options: bilinear, bicubic, nearest
deinterlace_methodCOMBOblend3 options: blend, bob, weave
field_strengthoptFLOAT1.00–2
temporal_radiusoptINT11–3
edge_enhancementoptFLOAT0.00–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE