WaveSpeedAI Qwen Image Text-to-Image
20B text rendering with zero local install
- client
- image
Ask the community what Qwen-Image is actually for and the answer is usually "text." The 20B generation model was never anyone's daily driver for landscapes, but its text rendering is top-tier - logos, signs, product labels that come out legible and correctly spelled. That quality is locked behind a 20B local model, which is a lot of VRAM for occasional text work. This node runs the same model on WaveSpeed AI and drops the output straight into your ComfyUI graph, so you get the model's best trick without the install.
What it is
A hosted text-to-image node for Qwen-Image. Connect the client from the WaveSpeedAI Client node, type a prompt (Chinese and English both supported), pick a size, and the generated image comes back as an IMAGE tensor. The size dropdown is unusually well thought out - seven presets with actual pixel dimensions like 1328x1328 (1:1) and 1536x864 (16:9) - plus a custom_size string (1920*1080) that overrides the dropdown when you need exact pixels.
How it works
The node POSTs {prompt, size, seed, output_format} to the Qwen image generation endpoint, then downloads the returned image URL and converts it to a tensor on your machine. That local download step is why the node needs outbound internet even after the render completes. enable_sync_mode defaults to on, so the node blocks and hands you the image when it's done.
The inputs that matter
- prompt - the image to generate. If your goal is text rendering, put the text in quotes and spell it exactly.
- size - aspect and resolution in one dropdown; use custom_size when the presets don't fit your canvas.
- seed - -1 for random; fix it to iterate on a concept.
- output_format - jpeg, png, or webp.
- enable_sync_mode - default on.
Output name is image, type IMAGE - wires straight into Save Image / Preview Image.
Install & setup
Shared pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed.git
cd razv-wavespeed
pip install -r requirements.txt
or ComfyUI Manager → "razv-wavespeed" → Install, restart. API key from wavespeed.ai in config.ini (copy config.ini.tmp), the Client node, or WAVESPEED_API_KEY. Deps: requests, pillow, numpy<2.0.0, torch.
Common issues
- Text comes back garbled - check the prompt's exact spelling; Qwen renders what it's given. Also consider PNG output, since JPEG compression can eat fine glyph edges.
- "No output received" - the job timed out or the API returned nothing; retry, often transient.
- 401 - key issue.
The honest framing: Qwen-Image as a general T2I model is fine but not transcendent, and local alternatives are cheaper if you generate a lot. Where this node is genuinely useful is specific text-bearing work - mockups, product shots, signage - done occasionally, on a machine that doesn't have 20GB of free VRAM. For that narrow job it's hard to beat.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Text prompt for image generation (supports Chinese & English) | |
| size | COMBO | 1328x1328 (1:1) | The aspect ratio and resolution of the generated image |
| seed | INT | -1-1–18446744073709550000 | Random seed for reproducible results. -1 for random seed |
| output_format | COMBO | jpeg | The format of the output image |
| enable_sync_mode | BOOLEAN | true | Wait for image generation to complete before returning |
| custom_sizeopt | STRING | Custom size as 'width*height' (e.g. '1920*1080'). Overrides size dropdown if provided. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |