Superside Smart Detail Sheet
The Node That Turns a Product Photo Into a Spec Sheet, Automatically
- image
- image
- info
Every e-commerce listing needs a shot that shows the product and its interesting details up close - the hinge, the logo, the texture of the fabric. Building those "detail callout" sheets by hand is a fiddly Photoshop job. Superside Smart Detail Sheet automates it end to end: a vision LLM finds the visually interesting details in your photo, the node crops each one, upscales the crops locally, and composites the original plus enlarged callouts into one finished spec-sheet image. Feed it a photo, get a deliverable.
How it works
The detection is a two-mode story, and the mode is picked by product_category:
- auto (default) - a vision LLM (chosen by the
modeldropdown: gemini-2.5-flash, gemini-2.5-pro, gpt-4o, claude-sonnet-4.6) looks at the image and returns JSON bounding boxes for thenum_details(1–6, default 3) most interesting details. The node retries automatically if the model returns prose instead of JSON, a zero-size box, or overlapping zones - a nice robustness touch. - eyewear - for glasses, free-form LLM judgement proved unreliable (it kept conflating "nose pad" and "hinge" onto the same spot), so this mode forces exactly three fixed zones using Florence-2's grounding endpoint instead: the nose pad, the hinge screw, and a temple tip. It overrides
num_detailsandmodel.
From there it's local image work: each crop is a fixed-size square centered on the detected detail's center point (not the raw bounding box edges - that's what keeps crops consistent despite imprecise boxes), upscaled with Lanczos (crop_scale, 1–4x, default 2 - no extra API call for the upscaling), and composited into the final layout: side column for portrait originals, a row below for landscape/square. Crops that land on a flat, blank region are auto-discarded - the info output tells you what was kept and what was dropped.
The inputs that matter
image+api_key- the required pair.product_category- auto or eyewear. This is the decision that changes the whole detection path.num_details- how many callouts in auto mode (ignored for eyewear).detail_hint- free text to steer the auto model toward what you think is interesting.crop_size_percent- each crop's square size as a percent of the original's shorter side, default 35%. Smaller keeps callouts subtle; larger makes them dominant.
Outputs: image - the finished sheet - and info, JSON with the kept details, discard count, and settings used.
Installing it
It's in comfyui-superside-nodes - clone, install requirements, restart:
cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes.git
cd comfyui-superside-nodes
pip install -r requirements.txt
Paste your fal api_key. No model files; the detection call is metered and your product photo leaves the machine for the vision model.
The honest take
This is the most genuinely clever node in the pack - a real production workflow (spec sheets) compressed into one drop. The trade-offs: the auto detection is only as good as the vision model, so check the info output on the first pass and use detail_hint to steer it; and because the detail selection is probabilistic, a batch of fifty products needs a spot-check pass before it ships. For a catalogue where the details must land in the same spots every time, you're better off with the pack's Manual Detail Sheet (you draw the boxes once per profile) - the Smart version shines when every product is different and you want the interesting parts found for you.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| api_key | STRING | — | |
| product_categoryopt | COMBO | auto | "auto" lets the model freely pick whichever details look most interesting. "eyewear" instead forces exactly 3 fixed, reliable zones every time: the nose pad + its mounting clip, the bridge/hinge assembly (with any decorative hardware), and a temple tip - overriding num_details. |
| num_detailsopt | INT | 31–6 | How many detail close-ups to find and crop. Ignored when product_category is "eyewear" (always 3 fixed zones). |
| detail_hintopt | STRING | — | |
| crop_scaleopt | FLOAT | 2.01–4 | How much to enlarge each detail crop (Lanczos resize, no AI upscaling). |
| modelopt | COMBO | openai/gpt-4o | 4 options: google/gemini-2.5-flash, google/gemini-2.5-pro, openai/gpt-4o, anthropic/claude-sonnet-4.6 |
| crop_size_percentopt | FLOAT | 35.005–100 | Size of each detail crop as a percent of the original photo's shorter side, always a square centered on the detected detail. A fixed size (instead of expanding the model's own bounding box) keeps crops consistent and robust to imprecise/oddly-shaped boxes. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| info | STRING | — |