Image Interleaved Upscaler (720p to 1080i)
Upscaling with an interlaced-field trick
- image
- IMAGE
Here's the thing about upscaling: the boring interpolators (Lanczos, bilinear) add no detail, and the exciting ones (real-ESRGAN, SeedVR2) add a lot but cost a model. ImageInterleavedUpscaler is a third path - it's not a model at all. It fakes some of the "crispness" of a real upscale by treating the image like interlaced video: split it into even and odd horizontal fields, upscale, then recombine with controllable blending and edge sharpening. Display name in ComfyUI says it all: "Image Interleaved Upscaler (720p to 1080i)." It's aimed at that specific job - bumping SD-quality frames toward broadcast-size with a bit of perceived detail.
How it works
The pipeline is short: upscale the whole image to the target size (interpolation mode is your choice - bilinear, bicubic, or nearest), then separate the result into alternating scanline fields, process each field independently, blend them back together, and optionally add Sobel edge enhancement. The field separation and recombination is the whole gimmick - adjacent scanlines come from "different" data, which reads as slightly richer texture than a plain resize, especially on synthetic or low-detail frames.
The inputs that matter
- input_width / input_height (defaults 1280×720) and scale_factor (default 1.5) - target size. The defaults produce 1920×1080 from a 1280×720 source: that's the 720p→1080i use case the node is built for.
- field_order (
top_first/bottom_first) - which field processes first. Flipping it changes which scanlines carry which data; it's a fine detail, but you can see the difference on fine horizontal textures. - blend_factor (0–1, default 0.25) - how hard the two fields blend back together. Low = sharper, more visible field separation (more of the "crisp" artifact); high = smoother, closer to a plain upscale.
- field_strength (0–2, default 1) - how prominent the interlace effect is. Push to 1.5–2 and it turns into an obvious retro-interlace look; keep it near 1 for the subtle version.
- edge_enhancement (0–1, default 0) - Sobel-based sharpening on top. Small values (0.2–0.3) perk up edges; too much and you get halos.
Output: one IMAGE, batch-safe.
The honest take
Be clear-eyed about what this is: it's an enhancement trick, not a detail generator. The upscaling knowledge base in this space makes the same distinction - "more pixels" vs "more detail" are different jobs. This node is firmly in the "more pixels" camp, and a good real-ESRGAN model (4x-UltraSharp, Remacri) will beat it at the pure-detail game. Where it earns its keep is speed and character: it's instant, needs no model files, and the interlace treatment gives frames a particular broadcast-video texture that a plain Lanczos won't. If you're restoring SD anime or old game footage and want that subtle interlace feel baked in rather than added later, this is a legitimately nice fit. If you want actual detail recovery, skip to ImageInterleavedUpscalerV2 in the same pack, which runs a real upscale model through the same field trick.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| input_width | INT | 1280640–7680 | — |
| input_height | INT | 720480–4320 | — |
| scale_factor | FLOAT | 1.51–4 | — |
| field_order | COMBO | top_first | 2 options: top_first, bottom_first |
| blend_factor | FLOAT | 0.250–1 | — |
| interpolation_mode | COMBO | bilinear | 3 options: bilinear, bicubic, nearest |
| field_strength | FLOAT | 1.00–2 | — |
| edge_enhancement | FLOAT | 0.00–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |