🎨 Polza Text‑to‑Image
GPT Image and DALL·E inside the graph, with the API's strings attached
- images
- revised_prompt
- cost_rub
Polza Text-to-Image is the node that turns your graph into a paying OpenAI customer. It's a thin wrapper over Polza.ai's OpenAI-compatible image endpoint - /v2/images/generations - and it exposes exactly the three models that endpoint knows: gpt-image-1 (GPT Image), dall-e-3, and dall-e-2. None of these have open weights, so you can't run them locally, full stop. If you want a GPT Image render inside your workflow, this is the door - the "call the closed model" path rather than the "download the checkpoint" path.
Why reach for it specifically? gpt-image-1 is genuinely good at text rendering and following fussy instructions, which is exactly what local checkpoints still stumble on. And because it's OpenAI-compatible, the node slots into the same patterns the rest of the pack uses: chain Polza Chat into it for a write-the-prompt-then-render pipeline, or describe an image with Polza Vision and feed its text into this node's prompt for a describe-and-redraw loop.
How it works
The node builds the generation request with a response_format: url, calls the API, and - because these models can take a while - polls until the job completes, then downloads the returned images and stacks them into a standard IMAGE tensor. One detail worth knowing: it's model-aware. DALL·E 3 gets the style param; gpt-image-1 gets output_format, background, and output_compression; and DALL·E 3's revised_prompt is surfaced as an output rather than hidden.
The inputs that matter
- model -
gpt-image-1(default),dall-e-3,dall-e-2. Click Load models on the node to populate the dropdown - it won't fetch until you do. - prompt - required; up to 32,000 characters for gpt-image-1, so it can swallow a long LLM-generated description whole.
- size -
autoplus the usual list (1024x1024, 1792x1024, 1024x1792, …). Default is 1024x1024. - quality -
auto/high/medium/low/hd/standard. - style -
vivid/natural; only applied to DALL·E 3. - n - how many images. DALL·E 3 accepts only 1, so leave it alone unless you're on gpt-image-1.
Outputs
Three: images (the IMAGE tensor - wire it to a Preview Image or Save Image node like any generator), revised_prompt (STRING - DALL·E 3 rewrites your prompt internally and reports the rewrite here; gpt-image-1 keeps it empty), and cost_rub (what the call cost, in rubles).
Installing it
It ships with the ComfyUI-Polza pack. ComfyUI Manager → search ComfyUI-Polza → install → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/PioneerMNDR/ComfyUI-Polza
cd ComfyUI-Polza
pip install -r requirements.txt
Restart, grab a key from polza.ai, and set it via the node's api_key field, the POLZA_API_KEY env var, or a config.json in the node folder. No model downloads - the models live on OpenAI's side.
Common issues
The revised_prompt output is the first thing that confuses people. DALL·E 3 doesn't generate from what you typed; it silently rewrites your prompt into something it considers safer/more complete, and generates from that. If your output doesn't match your intent, read the revised prompt - that's your answer. It also means your prompt is getting laundered through OpenAI's moderation regardless of what Polza's own enable_safety-style settings suggest.
Other gotchas: DALL·E 3 ignores n > 1 and the gpt-image-1-only params do nothing on DALL·E 2. And the economics you already know - every queue run is a paid call, cost in rubles, data (including your prompt) leaves the machine, and OpenAI's content policy is the ceiling on what this node can produce. The code is MIT-licensed and short enough to read before you trust it. For a text-heavy poster you can't do locally, it's worth it; for a generic landscape you could Flux at home for free, you're just paying for the privilege of the API.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | gpt-image-1 | gpt-image-1, dall-e-3, dall-e-2 |
| prompt | STRING | Текстовое описание изображения (до 32 000 символов для gpt-image-1) | |
| api_keyopt | STRING | API‑ключ Polza.ai (пусто → env / config.json) | |
| sizeopt | COMBO | 1024x1024 | Размер изображения |
| qualityopt | COMBO | auto | auto / high / medium / low / hd / standard |
| styleopt | COMBO | vivid | Стиль (vivid / natural) — только DALL·E 3 |
| nopt | INT | 11–10 | Количество изображений (для DALL·E 3 только 1) |
| output_formatopt | COMBO | png | Формат выхода (gpt-image-1) |
| backgroundopt | COMBO | auto | Фон: transparent / opaque / auto (gpt-image-1) |
| output_compressionopt | INT | 1000–100 | Сжатие 0–100 (gpt-image-1) |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| revised_prompt | STRING | — |
| cost_rub | FLOAT | — |