Qwen Image 2.1 · Text to Image
2K, transparent backgrounds, and a prompt rewriter that's on by default
- images
- alpha
- task id
Qwen-Image's generation model was always the respected-but-not-beloved one: gorgeous lettering, heavy weights, outrun on consumer cards by smaller models. Hosted on PopNow, the weight problem evaporates. What's left is a 2K-tier open model that renders type better than almost anything else and - the part people miss - can return a subject on a genuine alpha channel instead of a rectangle of pixels.
From about 3.6 credits ($0.036) an image. That's the cheapest serious generation in this pack.
The alpha story, since it's the reason to be here
Two outputs beyond task id: images and alpha. The alpha is a MASK where 1 means opaque, and the RGB that comes back is pre-multiplied by it - so transparent areas arrive black, and the transparency itself lives in the mask. That's a deliberate choice, and it's the correct one: a background-removal or a transparent render is only useful if you can composite it, and a mask compositing is a compositing operation rather than an eyeballed threshold.
It also means you need to wire both. images into a Save Image, alpha into whatever consumes the mask - or into an image-save path if you want to inspect it.
The catch is in the author's own tooltip: transparent background "needs output_format png or webp". Leave output_format at JPEG and the transparency has nowhere to go. That's the single most common way people waste a run on this node.
The fields
prompt - subject, composition, lighting, and any wording you want rendered. Write it as a paragraph. The encoder is an LLM, so sentence structure and specificity do more than adjective stacking, and (emphasis:1.4) syntax is inert.
enable_prompt_expansion - True by default. The service rewrites your brief into a fuller scene before generating. Great for getting a lush render out of three words, terrible when you want exactly what you asked for. Turn it off when you're matching a reference layout.
background - opaque or transparent. See above.
output_format - JPEG by default. PNG/WebP if transparency is the goal or the image is going anywhere near another edit.
resolution - 1k tier default; 2K is the headline. Costs move with it.
aspect_ratio - 1:1 default, and there's no source image to inherit a shape from, so pick.
seed - fixed by default. Re-queueing an unchanged graph returns the cached render, not a new charge. Set control after generate to randomize for a different take.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Restart. Manager → Custom Nodes Manager → PopNow → Install is the same thing with a UI, and comfy node install popnow-comfyui works for CLI people. Nothing else installs: zero declared dependencies, Python 3.10+, V3 node API. No GPU involved, so this runs on a MacBook as happily as on a 4090.
Then a key from popnow.ai/api/console/keys into Settings → PopNow, and restart once more - the model list is built from your account's catalog at startup, which is the step everyone skips before filing a "node missing" issue. Headless box? POPNOW_API_KEY in the environment, so the key stays out of shared workflows.
What actually goes wrong
Text that comes out as a smear: usually prompt expansion rewriting your exact string. Turn it off and quote the words you want.
Transparent background, no transparency: JPEG. Fixed above.
PopNow 40004 means the model can't serve that combination - it names the field. 40201 is an empty balance. 40310 means your account needs an email verified. Content refusals come back as content_rejected and are refunded, so a refusal costs you a minute, not 3.6 credits.
One habit worth building: check the node's price badge after changing resolution. It updates per option, and the difference between 1k and 2K across twenty renders is real money. Then set Settings → PopNow → Max credits per run, because a queue of twenty nodes with no ceiling is a queue of twenty charges.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the subject, composition, lighting, and any wording to render. | |
| aspect_ratio | COMBO | 1:1 | Output aspect ratio. |
| resolution | COMBO | 1k | Output resolution tier. |
| enable_prompt_expansion | BOOLEAN | true | Rewrite the prompt into a fuller scene description before generating. On by default; turn it off to have the prompt followed word for word. |
| background | COMBO | opaque | opaque keeps a normal background; transparent returns the subject alone on a real alpha channel (needs output_format png or webp). |
| output_format | COMBO | jpeg | Container of the returned image. |
| 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 (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| alpha | MASK | Transparency of each image: 1 is opaque. |
| task id | STRING | The PopNow task id, for the API console logs or support. |