Nodes/SeedreamComfyUI/Seedream Decompose Image (Ace Data Cloud)
ComfyUI Node

Seedream Decompose Image (Ace Data Cloud)

One render in, a base plus transparent layers out

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Seedream Decompose Image (Ace Data Cloud)
    • status
    • task_id
    • media_urls_json
    • first_media_url
    • result_json
    • trace_id
    ◄parameters_json{}►
    ◄prompt►
    ◄image►
    ◄size►
    ◄sequential_image_generation►
    ◄sequential_image_generation_options►
    ◄watermark►
    ◄output_format►
    ◄tools►
    ◄optimize_prompt_options►
    ◄callback_url►
    ◄background►

    Normal inpainting asks you to mask the thing you want to change, which means you already know where it is and you're reasonably good at drawing around it. Layer decomposition flips that: you hand over a finished image and get back the base plus the separate pieces - elements lifted onto their own transparent layers, editable one at a time. It's the closest thing to opening a flattened PNG in an editor and finding the layers still there.

    Seedream Decompose Image is the pack's wrapper for that action. If you've ever wanted to move a character, restyle a background, or pull a product off its backdrop without re-rendering the whole picture, this is the node that gets you the pieces to do it with. It does not run locally, and there is nothing to download.

    How it's put together

    The interesting part is what you can't change. This tool ships with no model dropdown, because the API route is locked to doubao-seedream-5-0-pro-260628 and layer_decomposition is forced to true before the request goes out. It's not a configuration choice, it's the definition of the action. That also explains the pack's own compatibility rules: layer decomposition is a Pro-only capability, so asking for it on a lite or 4.x model is an error the package raises locally, and combining it with background control is refused too - those two are alternatives, not a stack.

    What that means practically: your choices are the input image, an optional prompt, and the output size.

    The inputs you'll actually touch

    • image (STRING, required) - the picture to split. This is a URL, not a local file. The pack has no upload step anywhere; it sends the string straight to the API. A local C:\renders\shot.png will not work. Use an Ace CDN link from a previous generate/edit/retrieve node, or a public HTTPS URL of your own that the service can reach.
    • prompt (STRING) - optional. Worth a sentence describing which parts should separate; decomposition quality follows how clearly you name the elements.
    • size (STRING) - the schema accepts auto, 1K, 1.5K or 2K, and the default when you leave it blank is auto. Pro is capped at 2K on this path, so don't argue with it.

    Everything else in the node - watermark, output_format, sequential_image_generation, sequential_image_generation_options, tools, optimize_prompt_options, callback_url, background, plus the freeform parameters_json - is a named text widget for the matching API field. The rule across the whole pack: leave a widget empty and it's omitted; fill it in and it overrides whatever parameters_json said for that field. Validation runs against the published API contract before the request, so a bad value costs you nothing.

    Outputs

    Six strings come out: status, task_id, media_urls_json, first_media_url, result_json, trace_id. For this node the two that matter are media_urls_json - a JSON array of every layer's URL - and first_media_url.

    Wire first_media_url into Seedream Load Image to get a renderable IMAGE. For everything else, feed media_urls_json into a JSON-parsing node and walk the list; each entry is a separate layer.

    One real limitation to plan around: the pack's loader decodes to RGB, so transparency doesn't survive the trip into IMAGE. Download the layer PNGs directly if you need the alpha channel for compositing.

    Installing

    The upstream repo is AceDataCloud/SeedreamComfyUI, and the README's install path is ComfyUI Manager - search Seedream, confirm publisher acedatacloud, package Seedream by Ace Data Cloud, restart.

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/SeedreamComfyUI
    cd SeedreamComfyUI && python -m pip install -r requirements.txt
    

    Then set the key: ACEDATACLOUD_API_KEY (or ACEDATACLOUD_API_TOKEN) in the environment of the ComfyUI process - not in the workflow - and restart ComfyUI so it picks it up. The pack's only pip requirements are requests and jsonschema; there's no local model and no GPU requirement, just credits per call at Ace Data Cloud's current listed price.

    Common issues

    If a run fails before it ever reaches the network, read the error literally - it says which field broke a contract rule. A missing key raises "Set ACEDATACLOUD_API_KEY in the ComfyUI process environment and restart," which is what you get when the variable was exported in a shell that isn't running ComfyUI. On Windows, a system-wide environment variable needs the app restarted, not just reopened.

    The status you should actually wait for is succeeded. Paid submissions in this pack are never retried after a connection failure - that's deliberate, so you don't pay twice - and the accepted task_id is returned in the node's output. If you saw a timeout, keep that ID and query it with Seedream Retrieve Task instead of hitting run again.

    And this is worth saying plainly: Ace Data Cloud barely appears in community discussion, so there's no informal track record to lean on for a pack that holds your key and calls out to the network by design. Verify the publisher in ComfyUI Manager and skim the source before you run anything expensive.

    CategoryAce Data Cloud/Seedream

    Inputs (12)

    NameTypeDefaultDescription
    parameters_jsonSTRING{}—
    promptSTRING—
    imageSTRING—
    sizeSTRING—
    sequential_image_generationSTRING—
    sequential_image_generation_optionsSTRING—
    watermarkSTRING—
    output_formatSTRING—
    toolsSTRING—
    optimize_prompt_optionsSTRING—
    callback_urlSTRING—
    backgroundSTRING—

    Outputs (6)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    media_urls_jsonSTRING—
    first_media_urlSTRING—
    result_jsonSTRING—
    trace_idSTRING—