Nodes/SpicyAPI/Seedream 4.0 · Text to Image
ComfyUI Node

Seedream 4.0 · Text to Image

One prompt, sixteen exact sizes, one flat rate

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Seedream 4.0 · Text to Image
    • images
    • task id
    ◄prompt►
    ◄size2048*2048►
    ◄seed0►

    This is a two-widget node: a prompt and a size. That's it. Seedream 4.0 is a closed ByteDance image model, so there's no checkpoint to download and no sampler to tune - you type a sentence, pick 2048*2048 or one of fifteen other exact resolutions, and get an image back for $0.03.

    Can an API image node do work a local model can't? Usually no. Here, mostly the answer is "it does it in one prompt with no LoRA stack and no negative-prompt archaeology." Seedream 4.0 was the closed model people rated above Nano Banana when it landed in September 2025, and the honest framing is that you're buying prompt adherence and a big clean frame, not control. You get no seed, no negative prompt, no CFG, no step count. If you want to steer, you steer with words.

    How it works

    The node packages your prompt and the size preset, requests a price quote, submits the job to api.spicyapi.ai, and polls until the render is done. The result comes back as an ordinary ComfyUI IMAGE, so everything downstream - upscaling, masking, compositing, saving - behaves as if your own card had drawn it. Nothing runs locally; there's no VRAM cost and no model load time, but there is a network round trip and a per-image charge.

    Inputs and outputs

    • prompt - describe subject, composition, style and lighting. The endpoint is uncensored, so the limits here are yours, not a filter's.
    • size - one of sixteen width*height presets, starting at 1024*1024 and going up to 4096*2304. This is the interesting field. ByteDance prices the whole ladder the same, so the large presets are where the per-image cost earns its keep, and picking a fixed preset is how you make a set of images that actually tile together.
    • Output images is the IMAGE to wire into Save Image or your next stage; output task id is a STRING you can ignore unless you're asking support to trace a specific run.

    There is no seed input on this node. Same graph twice is not guaranteed to give you the same picture, so treat a good result as a keeper rather than something you go back and re-roll.

    Install

    Nothing to compile, nothing to download - this is a thin client for a hosted model.

    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 export SPICY_API_KEY on a server), restart once more. The pack also installs through ComfyUI Manager: search SpicyAPI. Search the canvas for seedream and you'll see all four Seedream 4.0 and 5.0 variants, so check which one you grabbed - the 4.0 pair is the preset-size pair.

    Costs and the mistake everyone makes once

    $0.03 per image, quoted before the run and printed after it. The trap isn't the price, it's the queue button: because every run is billed, the pack sets control after generate to fixed so re-queueing reuses your cached result rather than quietly buying a second image. Change it to randomize deliberately when you want a variation, not by accident. And set Settings > SpicyAPI > Max cost per run - anything quoted above it refuses to submit.

    Troubleshooting

    No SpicyAPI key is set is the one you'll actually see, and it's literal. If a prompt is rejected with 40004, the combination you asked for isn't deployed - the message names the field to change, and nothing is charged. Missing models in your node list mean a restart, because the catalogue is rebuilt from your account at startup. Finally, cancelling in ComfyUI stops the wait, not the job: it completes on SpicyAPI's side and gets charged if it succeeds.

    CategorySpicyAPI/Image/ByteDance

    Inputs (3)

    NameTypeDefaultDescription
    promptSTRINGDescribe the image to generate: subject, composition, style, and lighting.
    sizeCOMBO2048*2048Output image size in pixels, written as width*height.
    seedINT00–2147483647This 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 (2)

    NameTypeDescription
    imagesIMAGE—
    task idSTRINGThe SpicyAPI task id, for the console logs or support.