FLUX.2 Dev · Text to Image
FLUX.2 Dev Is a 53GB Download. This Node Runs It For 1.7 Cents.
- images
- task id
FLUX.2 Dev is the model the community spent a week calling the best open image model in existence and then quietly stopped using, because the weights are a 32B transformer plus a 24B Mistral vision-language encoder - around 53GB in fp8 before you have loaded anything else. This node sidesteps the whole argument. It's a Dropdown, a prompt and a seed, and roughly $0.017 per image.
The name is honest about one thing and easy to misread on another: FLUX.2 Dev · Text to Image does not run FLUX.2 Dev on your machine. Nothing in the PopNow pack runs locally. It sends your prompt to PopNow's servers, where the real 32B model generates the picture and hands you back a PNG. No checkpoint, no VAE, no text encoder, no VRAM ceiling. That's the trade: you pay per image instead of per GPU.
What you're actually calling
The model id underneath this node is black-forest-labs/flux-2-dev/text-to-image. If you've read anything about Flux 2 Dev, it applies - same weights, same quirks, same willingness to compose six elements in one sentence correctly and the same occasional mangled hand. What you don't get is the local control surface. There are no steps, no guidance, no sampler dropdown, no scheduler, because the hosted endpoint doesn't expose them. This is the biggest surprise for anyone coming from a Flux.1 graph: you are not tuning a sampler, you're filling in a form.
How a run works
When you queue, the node builds a JSON payload from your fields, asks PopNow for a quote, submits the task with an idempotency key, polls until it finishes, then downloads the image and hands it to ComfyUI as a normal IMAGE. A network retry reuses the same key, so a flaky connection doesn't quietly bill you twice. Progress shows up on the node itself - queue position, generation time, and finally the credits actually charged.
The four fields that matter
prompt is the whole job. Flux 2's text encoder is an LLM reading your prompt like an instruction, not CLIP reading tags. Sentences with explicit ownership and spatial relations work (A woman in a black dress sits on a beach; the ocean is behind her.). masterpiece, best quality and ((emphasis:1.3)) do nothing at all - prompt weighting is a CLIP-era habit and it's dead here. The field takes up to 5,000 characters, so stop being terse.
aspect_ratio has the nine usual suspects: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21. resolution is 1k (about a megapixel) or 2k (2,048px on the long side). As of this writing the rate table charges the same for both tiers on the Dev endpoint, so take the 2k - just watch the badge on the node, since that's the number that gets quoted.
seed starts on fixed, which is deliberate: queueing the same graph twice returns the same image instead of paying for a second one. Switch control after generate to randomize when you actually want a new roll.
Wiring it up
Both outputs are ordinary sockets. images goes into Save Image or Preview Image like any local sampler. task id is a string - it's what you paste into the PopNow API console or send to support when a run misbehaves, and it's worth keeping on a Show Text node while you're getting set up.
Install
ComfyUI Manager → Custom Nodes Manager → search PopNow → Install, then restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
# restart ComfyUI
There's nothing else to install - the pack's pyproject.toml declares zero dependencies and uses only what ComfyUI already ships. What it does need is a recent ComfyUI, because the nodes are built on the V3 node API (comfy_api.latest), including the Autogrow inputs. On an old build the pack fails at import rather than at run time.
Then get a key at popnow.ai/api/console/keys, paste it into Settings > PopNow, and restart once more so the node list rebuilds from your account's catalog. (Or start ComfyUI with POPNOW_API_KEY set, which is the sane choice on a server.)
When it goes wrong
No PopNow API key is set and PopNow 401 are the same problem wearing two hats: no key, or a dead one. PopNow 40201 means your wallet is empty. PopNow 40004 means the model can't serve that particular combination and the message names the field it objects to.
The one nobody expects: your prompt is fine, the image is just mediocre. This is Dev being Dev - it's the composition and prompt-comprehension ceiling of the open-weights line, not a photoreal shortcut. If you want the fastest possible iteration, the Klein 4B node is a tenth the price; come back to Dev when the shot actually matters.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the subject, setting, light and style in plain sentences. | |
| aspect_ratio | COMBO | 1:1 | Output aspect ratio. |
| resolution | COMBO | 1k | Output size tier: 1k is about one megapixel, 2k is 2048 pixels on the long side. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |