Nodes/PopNow/Seedream 5.0 Pro · Layer Decomposition
ComfyUI Node

Seedream 5.0 Pro · Layer Decomposition

Split a finished frame into usable pieces

By popnow-ai·Created 24 days ago·Updated about 20 hours ago· 0
Seedream 5.0 Pro · Layer Decomposition
  • image_url
  • images
  • alpha
  • task id
◄prompt►
◄resolution1.5k►
◄output_formatjpeg►

Ask a matting model for the subject and you get one mask, and you get to keep the flat image you started with. Ask Seedream 5.0 Pro to decompose a frame and you get the frame pulled apart into named pieces - subject, background, props - each as a transparent layer, plus a mask batch. It's the difference between one cutout and a stack you can actually rebuild.

This is the Pro version of that node: sharper edges, and a resolution list that starts at 1.5k rather than auto. 6.3 credits (~$0.063) per image, the most expensive thing per-image in the Seedream family and worth it when the detail is the point.

How it works

One IMAGE in - image_url, singular, because decomposition works on a single picture - and a batch out. The node calls bytedance/seedream-5.0-pro/layer-decomposition on PopNow's servers; the model returns the base image plus separated elements, which the node decodes into an IMAGE batch plus an alpha MASK batch, one mask per layer. Layers are always transparent PNG no matter what you set.

There's a 12-hour content-hash upload cache, so re-running decomposition on the same picture to get different elements costs you no upload time. It does cost credits, because it's a fresh generation.

The inputs

  • image_url - the finished image to split. Your render, a photo, something off a hosted model.
  • prompt - optional, and worth using. Empty means the model picks the main elements - often fine, sometimes four arbitrary slices. Name what you want ("the woman, the bicycle, the railing") and you get those instead of the model's opinion.
  • resolution - auto (follows the source size), 1k, 1.5k, 2k. Default is 1.5k, which is a sensible middle: higher than flash-tier defaults, without quadrupling the pixel count for a job where you'll refine edges anyway.
  • output_format - jpeg or png, and it only affects the base image. Layers ignore it.

Outputs

images - base plus every layer, as a batch. alpha - the transparency of each, 1 = opaque. task id for the API console or support.

Watch the premultiplication. The pack decodes transparent PNGs by multiplying RGB with alpha, which makes a cutout look correct in a preview instead of showing the dead colour under it. Don't multiply again downstream, or your edges go dark.

What it's for

The genuinely useful pattern is chaining: decompose a frame, take the character layer, feed it into an image-to-video node's image_url to animate one element while the background stays put. Or decompose a poster to move its pieces around. Or grab the alpha for a layer and hand it into a local inpainting graph as a starting mask, refined your way with your own models.

That last one is where hosted and local stop competing. Six credits to get a mask you'd otherwise spend twenty minutes painting by hand is a good deal, and the local work still happens locally.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui

Or the Manager route: search PopNow, Install, restart. Add the key from popnow.ai/api/console/keys in Settings > PopNow, or export POPNOW_API_KEY, then restart once more so the node list is built from your account's catalog. Nothing to pip install - empty dependency list, ComfyUI's own libraries only.

Where it goes wrong

  • Only the first image saved - the output is a batch. Send it to a node that writes every item, or you'll see just the base and assume decomposition failed.
  • Edge quality on hair and thin structures - the hardest problem in this whole field; nobody has solved it. Pro is better than Flash here, and 2k is better than 1.5k, but glass and flyaway hair still show.
  • PopNow 40201 - credits gone. Six credits an image, and re-running to get a different split is another run.
  • PopNow 40004 - unsupported combination; the message names the field.
  • Cancelling stops your wait, not the job - it completes server-side, bills if it succeeds, and lands in your API console.

The wider point about this kind of node: for years the community's answer to "I need the subject alone" was a matting model and luck, and the failure modes were hair, fur and transparency. Getting a generative model to hand you the layers it was imagining skips the matte fight entirely - you're not extracting the layers, they were there the whole time.

CategoryPopNow/Image/ByteDance

Inputs (4)

NameTypeDefaultDescription
image_urlIMAGEThe finished image to split into layers.
promptSTRINGOptional: name the elements to separate. Leave empty to let the model pick the main elements.
resolutionCOMBO1.5kOutput resolution tier. auto follows the size of the source image.
output_formatCOMBOjpegFile format of the base image. Layers are always transparent PNG.

Outputs (3)

NameTypeDescription
imagesIMAGE—
alphaMASKTransparency of each image: 1 is opaque.
task idSTRINGThe PopNow task id, for the API console logs or support.