Crop Images (Manual)
You point, it crops, every image in the batch
- images
- images
Most crop nodes in ComfyUI take a number. This one takes a human. Crop Images (Manual) feeds your batch of images into a popup dialog where you drag a crop box on each one, with aspect-ratio presets to keep things honest, and then hands the finished crops back into the graph. It's the node for the jobs where a fixed box is wrong and an automatic face-crop is overkill - "I want a 1:1 square of each of these twelve photos, but I get to choose where the center is."
How it works: you wire an IMAGE batch in (the input is list-mode, so a batch of images works fine) and pick an aspect_ratio (default 1:1, with fourteen options: portrait ratios like 4:5, 7:9, 3:4, 2:3, 9:16, 9:21; squares and landscapes 1:1, 5:4, 9:7, 4:3, 3:2, 16:9, 21:9; plus Any for free-form). When the node runs it generates downscaled WebP previews of every image, opens a dialog, and waits. You drag a box on each thumbnail - it remembers your previous crop and the same image hash, so re-running the workflow doesn't make you re-crop from scratch - and hit confirm. The output is the list of cropped IMAGEs, ready to feed the next stage.
It's from 2daadv's ComfyUI-GadgetNodes pack (Gadget/image category, MIT, one developer, brand new, no community reputation to report). Install: ComfyUI Manager → search "GadgetNodes", or git clone https://github.com/2daadv/ComfyUI-GadgetNodes into custom_nodes/ + pip install -r requirements.txt + restart.
Where it earns its keep:
- Dataset prep. Cropping a training folder to a consistent ratio before tagging - the manual crop is the slow, careful step that beats a dumb center-crop at preserving the subject.
- Social-ready batches. Twelve reference shots, all needing 1:1 or 4:5, each framed by eye. This is exactly the batch job that dies by a thousand clicks in an image editor.
- Preview-driven iteration. Because crops are stored per-image-hash, tweaking one frame later doesn't invalidate the rest.
The big caveats, and one of them is a genuine trap:
- ⚠️ This node is dialog-dependent, and the README is blunt about it: the crop dialog is a frontend extension, and under the Nodes 2.0 frontend it "likely won't open and execution may not complete." The node blocks until the dialog replies - on Nodes 2.0 that can mean a run that hangs waiting for a dialog that never appears. If you're on Nodes 2.0, test this node before relying on it. On the legacy canvas it works as intended.
- It's interactive by nature. You can't run this headless, in a queue, or in an API-only setup. It's a human-in-the-loop node; that's the whole point, but plan around it.
- The
Anyaspect ratio means "free-form box," not "auto." You still drag the box; it just doesn't lock you to a ratio.
Honest take: for the one job it does - human-guided batch cropping - it's genuinely useful and well-made, with the preview/thumbnail handling and the per-hash memory being thoughtful touches. Just don't build it into a workflow you intend to automate, and know what you're getting into on Nodes 2.0.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| aspect_ratio | COMBO | 1:1 | 14 options: 4:5, 7:9, 3:4, 2:3, 9:16, 9:21, +8 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |