Seedream 5.0 Pro · Layer Decomposition
Split a finished image into named, movable layers
- image_url
- images
- alpha
- task id
Give it one finished picture. Get back a clean base plate with the main elements removed, plus as many as sixteen transparent PNG layers, each named and each with a position box. From $0.042 an image, which is the most you'll pay for anything in this pack's image set - and worth it the first time a client asks for the headline to move without a re-render.
The workflow this unlocks is genuinely different from every other node here. You aren't generating; you're dismantling. Posters, thumbnails, comic panels, slide decks, anything where the layout gets revised after the art is done, stops being a full regeneration every time someone wants the subject nudged left.
The mechanics
One source image goes up, the decomposition comes back. On the ComfyUI side the pack hands you an IMAGE batch on images containing the base plate and each extracted element, with the matching transparency on the alpha MASK output - so you can composite, re-place or export them. The output_format choice applies to the base plate only; the layers are always transparent PNG regardless of what you pick, and picking jpeg for a plate you intend to layer over is self-defeating.
Because layers arrive as a batch, saving them out gives you one file per image. That's expected, not a bug in the node.
Inputs
image_url- the single finished image to take apart. Sources up to 30 MB, in PNG, JPEG, WebP, BMP, TIFF or GIF.prompt- optional, and worth using when the automatic split guesses wrong. Name the elements you want isolated; leave it empty to let the model choose the main ones.resolution-1.5kby default here (the Flash version of this node defaults toauto), or a fixed tier.autofollows the source's own size, which is what you want if the pieces are going back over the plate at the original dimensions.output_format- the base image's container.
Outputs: images, alpha, and task id - a STRING with the SpicyAPI request id for the console logs or a support ticket.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, paste a key from spicyapi.ai/console/keys into Settings > SpicyAPI (or set SPICY_API_KEY on a server), and restart once more. ComfyUI Manager: search SpicyAPI. The pack has no Python dependencies and downloads no weights - it's a network client, so it runs on hardware that couldn't touch a diffusion model.
Money, honestly
$0.042 per image, quoted before the run starts and reported when it ends. That's the priciest per-image rate in this pack, and the reason to be deliberate: set Settings > SpicyAPI > Max cost per run so a run you didn't think through can't proceed. One decomposition per source image is the usual pattern - the layers are reusable assets, so it's not a per-revision cost. Seeds default to fixed, so re-queueing the same graph returns the cached result instead of a new charge; randomize is there if you want a different split. Cancelling locally doesn't cancel the job upstream, and it bills if it succeeds.
What goes wrong
The pack's error table covers most of it. No SpicyAPI key is set - key missing. 40310 - unverified email. 40004 - no deployment serves the requested combination; the message names the option to change and nothing is charged. Any error ending in request_id ... should be reported with that id attached. If a model isn't in your node list after it appeared on the website, restart ComfyUI: the catalogue is fetched from your account at startup. And a decomposition that comes back at the wrong size usually means resolution wasn't set to auto, so the output no longer matches the plate it's meant to sit on.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | IMAGE | The finished image to split into layers. | |
| prompt | STRING | Optional: name the elements to separate. Leave empty to let the model pick the main elements. | |
| resolution | COMBO | 1.5k | Output resolution tier. auto follows the size of the source image. |
| output_format | COMBO | jpeg | File format of the base image. Layers are always transparent PNG. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| alpha | MASK | Transparency of each image: 1 is opaque. |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |