Crop Image (DEPRECATED)
Crop Image (ImageCrop) — the deprecated Essentials node that moved into core
- image
- IMAGE
Quick heads up before you build anything around this one: the ImageCrop node is deprecated, and it's actually a great little story about how ComfyUI Essentials works. cubiq's whole pitch for the pack was "essential nodes that are weirdly missing from ComfyUI core… I hope this will be just a temporary repository until the nodes get included into ComfyUI." Crop Image is exactly that promise coming true - it got absorbed into ComfyUI core. If you inspect this node's module, it now resolves to comfy_extras.nodes_images, not the Essentials pack. The label literally reads "Crop Image (DEPRECATED)."
So it still works, but it's a legacy shim. If you're starting fresh, use whatever your core ComfyUI offers for cropping; if you inherited a workflow that has this node, it'll keep running, no panic needed.
What it does
It crops a rectangle out of an image. That's it. You give it an IMAGE, tell it how big a box you want and where the box's top-left corner sits, and it hands back the cropped IMAGE.
The inputs, all straightforward:
- width and height - the size of the crop box in pixels (default 512×512, up to 16384).
- x and y - where the top-left corner of the box goes, measured from the top-left of the source image (both default 0, so a fresh node crops the top-left 512×512).
Output is a single IMAGE. No mask, no coordinates back - just the pixels inside the box.
When you'd use it (and when you wouldn't)
Cropping is bread-and-butter: pulling a fixed region out of a generation, trimming to a specific aspect, isolating a corner before an upscale. The catch with this node is that it's a fixed-coordinate, manual crop. You type the numbers. That's fine when the region never moves, but it's fragile the second your subject shifts around the frame.
For anything content-aware - "crop to wherever the face is," "crop to the masked region" - you want a node that computes the box for you. Inside this very pack, Mask Bounding Box does exactly that: feed it a mask and it returns the tight crop plus the x/y/width/height coordinates. That's the modern instinct. Manual x/y/width/height cropping is the thing Mask Bounding Box was built to replace.
Installing it
Because ImageCrop now lives in comfy_extras, it ships with ComfyUI itself - you don't strictly need the Essentials pack for it. If you want the rest of the pack anyway (and cubiq's Essentials is a genuinely useful toolbox from the developer behind ComfyUI_IPAdapter_plus):
- ComfyUI Manager: search "ComfyUI Essentials" → Install → restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_essentials, install itsrequirements.txt, restart.
Gotchas
The big one is the deprecation itself: don't build new workflows on a node the ecosystem has already moved past. It works today, but it's the kind of thing a future cleanup could quietly remove.
Watch your bounds. If x + width or y + height runs past the edge of your source image, you're asking for pixels that don't exist, and the result gets clamped or errors depending on your version. Check your source dimensions first - a Display Any node in tensor shape mode will tell you exactly how big the incoming image is.
And a general note on Essentials: cubiq set the pack to maintenance-only in April 2025. Most nodes still work fine; a few users hit breakage after a big ComfyUI update, in which case rolling ComfyUI back is the reliable fix. For a core-adopted node like this one, though, that's moot - it's ComfyUI's problem now, not the pack's.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| width | INT | 5121–16384 | — |
| height | INT | 5121–16384 | — |
| x | INT | 00–16384 | — |
| y | INT | 00–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |