Emiewn Quick Crop
An interactive crop box that pauses your workflow and lets you drag
- image
- image
- width
- height
Most crop nodes in ComfyUI make you type numbers, or wire up a separate image editor and hand the coordinates back. Emiewn Quick Crop does it the way you'd expect a real program to: you run the graph, and it stops mid-flow, pops an overlay on your screen with your image, and lets you drag a crop rectangle with actual handles. Hit Apply, and the workflow keeps going with the cropped image. That "pause and wait for me" behavior is the whole trick, and it's worth understanding before you use it.
How it works
When the node runs, it saves your image to ComfyUI's temp folder, sends a message to the frontend, and then deliberately raises an exception - that's how it pauses the graph. The exception is caught by the UI, which opens the crop window: your image dimmed, with a draggable selection box and purple resize handles. On Apply, it converts the box to pixel coordinates, stuffs them into a hidden crop_data widget, and re-queues the graph. On Skip, it sets a flag to pass the image through untouched.
The important detail for beginners: the "error" that appears in the console is normal. The node throws on purpose to hold the pipeline open for your input. That's the designed behavior, not a crash.
Inputs and outputs
image(IMAGE) - what you're cropping. Wire in anything.bypass_node(boolean, default off) - turn this on and the node just passes the image through with no dialog. Handy when you want to toggle the crop in and out of a workflow without deleting it.crop_data(string, optional) - the "x,y,w,h" coordinates. The UI fills this for you, but you can also feed it programmatically, which means you can run the same crop across a batch or drive it from another node instead of clicking every time.
Outputs are image (the crop, IMAGE), plus width and height as integers - nice if the crop region's size needs to flow into a resize or latent-size node downstream.
Installing it
One of five nodes in the Emiewn pack, so you install the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/emiewnn/ComfyUI-Emiewn-Nodes.git
Restart ComfyUI, or find "ComfyUI-Emiewn-Nodes" in ComfyUI Manager and install from there. The crop node is pure frontend + a bit of PIL, so no model downloads and no heavy dependencies.
Gotchas
- Headless or API-only runs can't show the dialog. If the graph queues up without a live browser session, the crop request never gets answered and the node stays in its paused/error state. Interactive use only.
- Crop coordinates are relative to the displayed image, and the node scales them back to full resolution, so a 4K image crops accurately even if it's shown small on screen.
- The dialog only appears when the node actually executes, so you can't pre-stage a crop - you run, wait, click, and it continues. For batch work, prefer setting
crop_datayourself and leavingbypass_nodeoff; for one-off framing decisions, this is genuinely the friendliest option out there.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| bypass_node | BOOLEAN | false | — |
| crop_dataopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| width | INT | — |
| height | INT | — |