Image Interleaved Upscaler V2
The interlace trick, but with a real upscale model behind it
- image
- upscale_model
- IMAGE
ImageInterleavedUpscaler V1 does the interlace field trick with plain interpolation, which means it adds no real detail. V2 fixes that: it runs an actual upscale model through the same field-based processing. You feed it any ComfyUI-compatible upscale model - 4x-UltraSharp, Remacri, whatever you have in models/upscale_models - and it applies the interlace-and-blend treatment on top of genuinely generated pixels. Same family, entirely different league. This is the one you'd actually reach for.
What you need before it works
The upscale_model input is a required UPSCALE_MODEL socket, so you must wire in a model from a Load Upscale Model node. Point that loader at a .pt/.pth in your upscale_models folder - the 4x ESRGAN family (4x-UltraSharp is the community default, Remacri for cleaner edges) are the safe picks. No model connected, no run; the node isn't hiding a model file somewhere, it uses yours. Everything else mirrors V1: field_order, blend_factor (default 0.25), field_strength (default 1) control the interlace character, and edge_enhancement (default 0) adds Sobel sharpening on top.
How it works
The node upscales with your model through comfy.utils.tiled_scale - proper tiling with an OOM fallback that halves the tile size and retries when you run out of VRAM - then splits the result into even/odd fields, blends them, and recombines. The tiling means large images work on modest GPUs; the automatic tile-shrink-on-OOM is genuinely well done and worth knowing about if you're on 6–8GB.
Optional controls that matter for big jobs:
- tile_size (128–1024, default 512) - larger tiles are faster but hungrier; the node shrinks them automatically on OOM, so this is more "tune for speed" than "tune to survive."
- tile_overlap (16–256, default 32) - overlap between tiles; bump it up if you see seams in the tiled output.
Output is a single IMAGE at model scale.
The honest take
This node sits at a genuinely useful intersection. Pure model upscaling is better at raw detail, and plain interlacing is cheaper - V2 combines the model's detail with a scanline character you can dial with field_strength. That combination is valuable for exactly one main job: giving video frames (or SD-origin stills) a textured, broadcast-interlace feel while still adding real resolution. It's also a clean way to get model upscaling with tiling on low VRAM without pulling in a separate tiling suite.
Two cautions. First, the interlace effect only makes sense if you want that look - at blend_factor 0.25 and field_strength 1 it's subtle, but if you're doing a normal clean upscale, a plain Image Upscale + model node is simpler. Second, the model choice does the heavy lifting: pair it with a mediocre upscaler and the interlace won't save you. Model quality first, interlace character second. For the "crisp, slightly broadcast-y upscale" niche, this is one of the best options in the pack.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| upscale_model | UPSCALE_MODEL | — | |
| field_order | COMBO | top_first | 2 options: top_first, bottom_first |
| blend_factor | FLOAT | 0.250–1 | — |
| field_strength | FLOAT | 1.00–2 | — |
| tile_sizeopt | INT | 512128–1024 | — |
| tile_overlapopt | INT | 3216–256 | — |
| edge_enhancementopt | FLOAT | 0.00–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |