Nodes/ComfyUI-NanoSeed/Seedream Text to Image
ComfyUI Node

Seedream Text to Image

Seedream text-to-image without a 15GB checkpoint

By comrender·Created 12 months ago·Updated 5 days ago· 6
Seedream Text to Image
    • generated_image
    promptA beautiful cinematic image
    model
    fal_keyyour_fal_key_here
    image_sizeauto_2K
    width0
    height0
    num_images1
    max_images1
    seed0
    enable_safety_checkertrue
    return_byteplus_urlsfalse

    Seedream is ByteDance's flagship image line, and it is API-only - ByteDance's posture is that anything they sell stays on the API, so you will never download these weights to run locally (the KB's ByteDance panel is blunt about this two-track strategy). This node is the ComfyUI end of that deal: you type a prompt, it phones BytePlus's Ark cloud, and a Seedream 3.0 image comes back as a normal IMAGE tensor. Your GPU does none of the work, which is exactly the point when you want Seedream quality inside a ComfyUI workflow without babysitting a huge checkpoint.

    Why would you reach for this instead of a local model? Two reasons, honestly. First, Seedream is genuinely good at photorealistic scenes and detailed prompts - it's a competitive flagship, not a gimmick. Second, sometimes you just want the result wired into the rest of your graph (upscale it, feed it to an image-to-video node) rather than saved from a web page. The trade is that it costs money per image and you're trusting a cloud API.

    How it works

    The node builds a payload with your prompt, a size preset, and an optional seed, then POSTs it to /images/generations with model seedream-3-0-t2i-250415. The response is a URL; the node downloads that image and converts it into a standard IMAGE tensor so everything downstream just works. It's synchronous - one request, one image, no task polling like the video nodes.

    Inputs and outputs that matter

    • prompt - your whole prompt, multiline. Be specific; Seedream rewards detail the way the flagship image models do.
    • size - nine fixed aspect presets (1024x1024, 1152x896, 896x1152, the 1216/1344/1536 variants, and their portrait flips). Pick the one closest to your target; there's no arbitrary width/height here.
    • seed - set a number for reproducible results, leave -1 for random.

    That's it. The output generated_image (IMAGE) plugs into Save Image, a preview node, an upscaler, or straight into an image-to-video node.

    Install

    Clone the pack, install requirements, restart:

    cd ComfyUI/custom_nodes
    git clone https://github.com/FloyoAI/ComfyUI-Seed-API
    cd ComfyUI-Seed-API
    pip install -r requirements.txt
    

    Or use ComfyUI Manager and search for "ComfyUI Seed API Integration". The real dependency is the API key, not packages: grab one at byteplus.com and put it in config.ini under [API] (or set BYTEPLUS_API_KEY as an environment variable), then restart. All image requests fail without it.

    Where people get burned

    The classic failure is a clean-looking black 512×512 image - that's the pack's error fallback, not a legit output. The node swallows exceptions and hands back a blank tensor, so if you see black, read the ComfyUI console for the actual error. Usual causes: no/placeholder API key, or a model your BytePlus account hasn't been granted (Seedream 3.0 needs to be enabled for your key). One more wrinkle: this class name also exists in a different pack (ComfyUI-NanoSeed), and some registry listings show that node's inputs - a fal_key, a model dropdown, image_size presets - instead of this BytePlus one. If you installed this pack, the node you get is exactly the prompt/size/seed version described here. Budget a few cents per image and you're set.

    Categoryimage/generate

    Inputs (11)

    NameTypeDefaultDescription
    promptSTRINGA beautiful cinematic image
    modelCOMBO2 options: seedream_5_lite, seedream_4.5
    fal_keySTRINGyour_fal_key_here
    image_sizeoptCOMBOauto_2K10 options: auto_2K, auto_3K, auto_4K, square_hd, square, portrait_4_3, +4
    widthoptINT00–4096
    heightoptINT00–4096
    num_imagesoptINT11–6
    max_imagesoptINT11–6
    seedoptINT00–4294967295
    enable_safety_checkeroptBOOLEANtrue
    return_byteplus_urlsoptBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    generated_imageIMAGE