Shima Backdrop
The node that paints the stage behind your workflow
Here's the honest pitch for Shima Backdrop: it does absolutely nothing to your images. No pixels, no conditioning, no data in or out. What it does is make a busy ComfyUI canvas readable - it draws a gradient or an image behind a group of nodes, so a 40-node graph reads as labeled sections instead of a plate of spaghetti. For the kind of big, shareable workflows this pack is built around, that's a real feature. For a two-node test graph, skip it.
How it works
All the work happens in the frontend. The backend node's execute() just returns an empty tuple; the widgets are pushed to JavaScript, which renders the backdrop in the "Always at Back" Z-layer - behind every node, so nothing you drag ever lands under it. Double-click the node to open the configuration modal and fiddle with everything there.
The bg_image widget is the one that surprises people. It lists images from Shima/assets/customBG/ - a folder inside the extension - not from ComfyUI's normal input directory. Drop your own PNG, JPG, SVG or WebP in there and it'll show up in the dropdown after a refresh. That's how you get a branded backdrop for a shared workflow: your logo, your color scheme, sitting behind the whole graph.
The widgets that matter
- color_top / color_bottom - the two hex colors for the gradient. Default is a near-black
#1a1a1ato#141414fade. - opacity - 0 to 1, and it's a single slider shared by the gradient and the image. That's where
opacity_target(Both/Gradient/Image) comes in: it decides which of the two the opacity actually applies to. Set it to "Image" if you want a subtle background photo under a full-strength gradient. - scaling_mode - Stretch, Fit, or Cover. Stretch distorts the image to the backdrop bounds, Fit letterboxes it, Cover crops to fill. Cover is the one that looks right for a photographic backdrop.
- image_scale_x / image_scale_y / offset_x / offset_y - fine positioning and scaling on top of the scaling mode.
There are no outputs. Don't go looking for a wire to attach - this node's entire job is visual.
Installing it
Part of the Shima pack. ComfyUI Manager → search Shima, or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
Then restart. First launch auto-installs Python deps and the pack's two companion repos (ComfyUI-Impact-Pack and cg-use-everywhere).
Common issues
The recurring complaint is "my background image doesn't show." Ninety-nine percent of the time it's because the file is in the wrong folder - it has to live under Shima/assets/customBG/, not ComfyUI's input/ directory. The other common stumble is forgetting that the opacity slider is shared: if you set opacity_target to "Image" and your image stays invisible, you've got opacity at 0 on the gradient side and are wondering why nothing renders. And since this node is pure frontend, it needs a full browser refresh after you drop new files in the folder - ComfyUI caches that file listing.
One more honest note: this is a cosmetic node from a pack whose own docs describe its market as "workflow islands" you assemble and share. If you never share workflows and your canvas is always small, this is decoration you can live without. If you're the person who opens other people's 60-node graphs, you'll immediately see why it exists.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| color_topopt | STRING | #1a1a1a | — |
| color_bottomopt | STRING | #141414 | — |
| opacityopt | FLOAT | 1.00–1 | — |
| opacity_targetopt | COMBO | Both | 3 options: Both, Gradient, Image |
| bg_imageopt | STRING | None | — |
| scaling_modeopt | COMBO | Stretch | 3 options: Stretch, Fit, Cover |
| image_scale_xopt | FLOAT | 1.00 | — |
| image_scale_yopt | FLOAT | 1.00 | — |
| offset_xopt | INT | 0 | — |
| offset_yopt | INT | 0 | — |
Outputs (0)
No outputs