Seedream 4.0 · Text to Image
The node with two widgets and one job
- images
- task id
Two widgets. A prompt and a size. That's the entire node. After years of ComfyUI graphs with a checkpoint loader, a dual CLIP loader, a VAE, a sampler, a scheduler, and three nodes' worth of resolution math, there's something almost rude about it - but it's also the honest shape of a hosted text-to-image model, and it's what makes Seedream 4.0 the cheapest way into a decent image on a laptop with no GPU.
4.5 credits per image. No weights to download, no VRAM, no cold start.
What's actually happening
The node calls bytedance/seedream-4.0/text-to-image on PopNow's servers through the pack's shared plumbing: quote the run first, submit with an idempotency key, poll, download, decode into a ComfyUI IMAGE batch. There's no local sampler and no seed widget, because there's no sampling you control - the model decides. Your only inputs are words and dimensions.
That's a real limitation if you're used to nudging a local model. It's also why it's reliable: nothing in your graph can be misconfigured.
The two inputs
prompt - subject, composition, style, and lighting. Seedream handles long descriptive prompts well and is notably good at text-in-image, which is the thing that used to send people back to Photoshop. Put exact copy in quotes when you need it rendered as text.
size - width*height from a fixed list of 16 options: 1024*1024, 2048*2048 (default), 2304*1728 / 1728*2304, 2848*1600 / 1600*2848, 2496*1664 / 1664*2496, 3136*1344, 3072*3072, 3456*2592 / 2592*3456, 4096*2304 / 2304*4096, 2496*3744 / 3744*2496. Portrait, landscape, square, ultrawide - all covered. This is the node's quiet advantage over tier-based models: you pin the exact pixels, so downstream compositing and batch layouts don't shift.
Outputs
images (a batch) and task id. images into Save Image or into your local detail/upscale chain - that's the pattern worth knowing: cheap hosted draft at a fixed size, then your own local model does the finish work you actually care about.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
or install PopNow through ComfyUI Manager. Key from popnow.ai/api/console/keys into Settings > PopNow, or POPNOW_API_KEY in the environment; restart again so the node list comes from your catalog. Nothing else to install - the pack declares zero dependencies and needs only Python 3.10+ and ComfyUI's own libraries.
Getting it wrong
sizerejected - it's a dropdown.1920*1080isn't on it. Use2848*1600and downscale, or2048*2048.PopNow 40201- credits. Batch generation is the fast way to find out.PopNow 40310- email not verified. Check the sign-up link.generation_failed/content_rejected- model-side refusal or failure; refunded.- An error with
request_id ...- send that id to support; it identifies the exact request. - Nothing happens,
No PopNow API key is set- Settings, or the env var. The key is stored inuser/popnow/config.jsonand never written into a workflow, so sharing a graph won't leak it.
One practical aside: when a new ByteDance or PopNow model appears and you can't find its node, restart ComfyUI. The node list is regenerated from the live catalog at startup, so a model added to your account while ComfyUI was running won't show up until then.
Where it fits
Seedream 4.0 sits in the awkward middle of ByteDance's line - 5.0 Flash is a bit cheaper and faster, 5.0 Pro is sharper, and both add reference-image editing that this one handles in its separate Edit node. What 4.0 still has is that exact-size list up to 4096×2304 and a flat, predictable per-image price. For thumbnails, layout mockups, or anything where pixel dimensions are a spec rather than a preference, that's the reason to reach for it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the image to generate: subject, composition, style, and lighting. | |
| size | COMBO | 2048*2048 | Output image size in pixels, written as width*height. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |