Nodes/ComfyUI LC123 Nodes/LC Image Crop πŸ–ΌοΈπŸ”ͺ
ComfyUI Node

LC Image Crop πŸ–ΌοΈπŸ”ͺ

Drag the box on the node, not in a photo editor

By lonecatone23Β·Created 2 months agoΒ·Updated 3 days agoΒ· 18
LC Image Crop πŸ–ΌοΈπŸ”ͺ
  • image
  • image
β—„x0.0β–Ί
β—„y0.0β–Ί
β—„width100.0β–Ί
β—„height100.0β–Ί
β—„aspectfreeβ–Ί

Cropping in ComfyUI is usually typing numbers into a formula node and praying. LC Image Crop (LCImageCrop) is the pack's answer: a Windows-style interactive crop - you drag the box and its handles right on the node preview, with an aspect-ratio lock so you can't accidentally crop to a 17:9 abomination. The values stay live as percentages of the source, which keeps the crop honest about what it's doing.

It's part of the LC123 Image & size family (the README literally lists it as "interactive crop with aspect lock"), and it inherits the on-node preview behavior from the pack's FX nodes.

How it works

The crop box is drawn on the node itself; drag to move it, drag the handles to resize. Every drag writes back to the four numeric inputs, which are all percentages of the source image:

  • x, y - the crop's top-left corner, as % of image width/height (0–100).
  • width, height - the crop size, as % of the source (0.5–100).
  • aspect - the lock: free, original (matches the source), or common ratios 1:1, 4:3, 3:2, 16:9, 3:4, 2:3, 9:16.

The source clamps the math - if your x+width would run past 100%, the width gets pulled back rather than silently producing an empty crop. Output is a single image socket, the cropped tensor.

Two things make it feel like a real tool rather than a toy:

  • The percentages are live. Because the values are percentages, a workflow that feeds a 512px image and a 2048px image through the same crop node keeps the same framing - that's the "aspect lock" philosophy applied to everything.
  • Aspect lock while dragging. Select 1:1 and the box snaps to a square as you drag; you can't fight the UI into a sloppy crop. If you've ever hand-typed a 1.06:1 crop, you know why this matters.

Where it fits

Anywhere you need a specific framing before generation math: crop to 1:1 for a square latent, crop to 16:9 for video, or crop a composition out of a larger render before an upscale pass so the upscaler spends pixels on the part you actually care about. Crop first, then let an Empty Latent or upscaler take its dimensions from the result.

Install

Part of ComfyUI_LC123_nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes

or ComfyUI Manager, then restart. No dependencies, no models.

Where people get burned

The preview redraw needs the source image cached - if the crop box looks wrong, run the queue once so the preview is current (the node even saves a small source preview to help). And remember the coordinates are percentages, not pixels: if you're thinking in pixels for a 1536px image, 50% is not 768 unless the source happens to be 1536 wide. The pack is a quiet niche collection with no community lore, so those two facts - plus the README's image table - are the whole story.

CategoryLC123/image

Inputs (6)

NameTypeDefaultDescription
imageIMAGESource image to crop.
xFLOAT0.00–100Crop left edge as % of image width (0–100).
yFLOAT0.00–100Crop top edge as % of image height (0–100).
widthFLOAT100.00.5–100Crop width as % of image width (0.5–100).
heightFLOAT100.00.5–100Crop height as % of image height (0.5–100).
aspectCOMBOfreeLock crop aspect ratio. 'original' matches the source image.

Outputs (1)

NameTypeDescription
imageIMAGEβ€”