Superside Manual Detail Sheet
Draw your own product detail sheet — no AI picking the close-ups
- image
- image
- info
The product spec sheet, minus the AI opinion. Where this pack's Smart Detail Sheet has a vision model decide which details deserve a close-up callout, this node hands the job to you: up to six boxes you draw directly on the image preview inside the node, each of which gets cropped, upscaled, and composited alongside the original into a single product-detail-sheet-style image. No AI detection, no API key, nothing leaves the machine.
This is the node you want when you know exactly what the hero details are - the hinge, the stitching, the logo - and you'd rather point at them than argue with a model about what's "visually interesting." It's also the more predictable sibling: the crop coordinates are yours, so what comes out is exactly what you framed.
How you drive it (this is the whole UX)
- Drag on the preview to draw a box; drag an existing box to move it; scroll over a box to resize it. Click the corner dot to turn a box on or off.
aspect_ratio(default1:1) sets the shape of every box -1:1,4:5,2:3,9:16, or16:9(width:height). Change it and all boxes reshape to match; drawing and resizing keeps the ratio locked. This is the newest control, and it's the answer to "I want tall vertical callouts, not squares."crop_scale(default 2, 1–4) - how much each selected box is enlarged. It's a Lanczos resize, not AI upscaling - the tooltip is explicit that this adds no invented detail. Crank to 2–3 for legible callouts; 4 starts to look soft.boxes- an internal STRING field holding your drawn box positions. The tooltip is blunt: not meant to be edited by hand. Don't fight it; draw.
Two outputs: the composited image (the original plus enlarged detail callouts, laid out in a side column for portrait originals or a row below for landscape), and info (JSON with the kept boxes, any discarded ones, crop scale, and aspect ratio). Boxes that land on flat, blank regions get discarded automatically, same as the Smart node.
How it works
The interactive drawing lives in the node's frontend JS (manual_detail_sheet.js), which turns your drags into box coordinates; on run, the Python side crops each active box at the chosen ratio, Lanczos-upscales it, and composites everything into the sheet layout. After the first run the widget shows the exact image it received plus a live crop-preview thumbnail per box - so you can confirm each detail is inside its box before you commit to a full run. It pairs naturally with Normalize Product upstream: normalize every SKU into the same frame, draw your boxes once per product profile, and the same crop coordinates stay aligned across the whole catalogue.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes
pip install -r requirements.txt
Restart ComfyUI - the interactive preview needs the frontend loaded, so a restart after install matters here more than for a plain utility node. It's under Superside.
The one thing to know up front
The boxes are stored per-workflow, keyed to the image they were drawn on. Feed it a different image (or a differently-normalized one) and your carefully placed boxes will point at the wrong spots - that's exactly why the Superside playbook normalizes first, then draws. Draw boxes on a normalized product once, and you get the same callouts on every SKU with the same framing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| crop_scaleopt | FLOAT | 2.01–4 | How much to enlarge each selected box (Lanczos resize, no AI upscaling). |
| boxesopt | STRING | Internal: box positions set by dragging on the image preview above. Not meant to be edited by hand. | |
| aspect_ratioopt | COMBO | 1:1 | Aspect ratio (width:height) of every crop box. The boxes on the preview are drawn and resized at this ratio; change it and all boxes reshape to match. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| info | STRING | — |