Ard 4Crop Latent
Split one latent into four quadrants before you ever decode it
- samples
- TL_latent
- TR_latent
- BL_latent
- BR_latent
Ard 4Crop Latent is the first step of this pack's signature trick: take one image's latent and cut it into four equal quadrants so you can upscale, re-generate, or detail each one separately - then stitch them back together at the end. Working in latent space instead of pixels is the whole point, because the VAE shoves images down 8× per side, so a 1024×1024 image is a mere 128×128 latent. Cropping a 128×128 tensor costs nothing. And you only pay for one decode at the end, which both saves VRAM and avoids the quality loss that piles up with every encode→decode round trip.
Mechanically it's a simple slice: given width_full_image and height_full_image (the dimensions of the full image, defaults 512), the node halves each, then crops the latent into four boxes - TL, TR, BL, BR. Those are the four outputs, each a LATENT. In latent coordinates the node divides positions by 8 and clamps so a crop never runs past the edge, keeping at least 8 latent units of margin.
Inputs that matter:
- samples - the full-size latent (from a KSampler or VAE Encode).
- width_full_image / height_full_image - the full image dimensions, not the crop size. Set them to the size the original latent represents, or your four crops will be wrong sizes.
Outputs: TL_latent, TR_latent, BL_latent, BR_latent. Wire each into whatever you want to do per-quadrant - typically this pack's Ard 4Latent Upscale, then four re-sampling passes, then Ard 4Img Combine to paste them into one big canvas. That's the "poor man's tiled upscale" pattern: generate one composition, split it, add detail per tile, reassemble.
The trap here is subtle and worth stating plainly: the input latent must actually be the size implied by width/height. If you generated at 1024 but tell the node the full image is 512, you'll get four cropped pieces of the top-left quarter of the actual latent. The node won't warn you - it just clamps and slices. So keep the width/height inputs in sync with whatever produced the latent.
Install is the standard pack route - ComfyUI Manager → search ComfyUI-Ardenius, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ArdeniusAI/ComfyUI-Ardenius
then restart ComfyUI. Same pack-level notes as everywhere: civitai and moviepy come along in requirements, and a console import error at load is the Save Image node wanting comfyui_controlnet_aux, not this node.
Reach for 4Crop when you want to treat one image as four tiles. Skip it if you're only ever cropping once - ComfyUI's built-in Crop nodes handle pixels fine, and this node only pays off as part of the four-tile pipeline the pack is built around.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| width_full_image | INT | 51264–8192 | — |
| height_full_image | INT | 51264–8192 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| TL_latent | LATENT | — |
| TR_latent | LATENT | — |
| BL_latent | LATENT | — |
| BR_latent | LATENT | — |