Nodes/ComfyUI VSCO Scraper/VSCO Crop Padding
ComfyUI Node

VSCO Crop Padding

VSCO Crop Padding

By liquid-night·Created 5 months ago·Updated 5 months ago· 1
VSCO Crop Padding
  • vsco_data
  • images
  • vsco_data

VSCOCrop is the cleanup half of the VSCO pack, and it does exactly one thing: removes the black padding its scraper sibling added and hands you every image at its original resolution. It doesn't scrape anything, touch Chrome, or make network calls - it's pure tensor surgery on the VSCO_SIZES bundle that VSCO Scraper produces.

Why the padding exists in the first place

The scraper's images output is a single batched IMAGE tensor, and a batch has one height and one width for every frame. VSCO photos aren't uniform - a portrait feed is full of 4:5 and 3:4 and landscape shots mashed together - so the pack pads each smaller image up to the batch maximum with black bars and remembers the true (H, W) of each frame in its VSCO_SIZES output. That's how you get an [B, H, W, C] tensor you can hand to standard IMAGE nodes. The bars are a batching requirement, not a style choice.

VSCOCrop reads those stored sizes and slices each padded frame back down. That's the whole mechanism, which is why the node is so small.

The catch: it outputs a list, not a batch

Once padding is gone, the frames are all different sizes again, and ComfyUI can't stack unequal tensors into one batch. So the images output here is a list of IMAGEs, not a batch. The README points you at what to do with it: feed it into a For Each loop if you're processing every image, or a Rebatch node if you want to re-pack them at a common size. Try to wire a list straight into a node that expects a batch and ComfyUI will quietly refuse or misbehave - the list-vs-batch distinction is the classic beginner trap in this ecosystem.

It also passes vsco_data straight through as a second output, so you can chain this node into VSCO Select Image and still pick single frames at native resolution afterward.

When to bother

If you're doing per-image work - training, cropping, per-image post - feed it clean frames. This is the lora-training advice in miniature: a style LoRA trained on letterboxed source images will happily bake black bars into your dataset, and dataset curation beats every knob you can turn in the trainer. Crop first, train on the real composition.

If you don't care about native resolution - you just want the padded batch flowing into some batch-friendly consumer, or you're selecting a single image - you can skip this node entirely and use the scraper's raw outputs. It exists for the one case where exact dimensions matter, and it nails that case with a single required input and two outputs.

CategoryVSCO

Inputs (1)

NameTypeDefaultDescription
vsco_dataVSCO_SIZES

Outputs (2)

NameTypeDescription
imagesIMAGE
vsco_dataVSCO_SIZES