GPT Image 1
The text-rendering king, without the OpenAI subscription
- referenceImages
- advancedFeatures.watermark.image
- image
GPT Image 1 is the model that finally put readable text inside generated images, and this node is the way to use it without leaving ComfyUI or paying for ChatGPT. You know the pain: you prompt for a storefront sign or a poster and the diffusion model hands you typography soup. GPT Image 1 actually spells things. That single capability makes it the node you reach for on logos, UI mockups, posters, and any image where legible words are the point.
It's one of the OpenAI nodes in the Runware pack, which means the generation runs on Runware's cloud GPUs through their API rather than on your machine. You type a prompt, set width and height, and an IMAGE tensor comes back exactly like it would from a local node. No OpenAI account needed - you authenticate to Runware, not to OpenAI.
What you actually set
positivePrompt- the text description. This model is unusually good at following detailed, literal instructions, so spell out the layout and the exact wording you want on any signs or labels. The KB's closed-source-models essay notes GPT Image's text rendering is the whole reason people put up with the closed access; give it something worth rendering.width/height- output dimensions in pixels, default 1024×1024.referenceImages- anIMAGEsocket for image-to-image work. GPT Image 1 is natively multimodal, so you can hand it a photo to restyle or edit rather than just describe.providerSettings.openai.quality-auto,high,medium,low.highcosts more and takes longer but earns its keep on text-heavy work.providerSettings.openai.background-auto,opaque, ortransparent. Transparent background is a genuinely useful lever for compositing assets into a workflow, not just a checkbox.numberResults- up to 4 variations, each on its own seed.
Output is a single image socket of type IMAGE, straight into Preview Image or Save Image. This is the only node you need in the graph - the whole pipeline is one node plus a preview.
Install
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
API key from runware.ai/api-keys, pasted into ComfyUI Settings → Runware API key or exported as RUNWARE_API_KEY. Dependencies are light: runware-sdk, pillow, soundfile. No models to download, ever - that's the point of the pack.
Where people get burned
- Moderation is real.
providerSettings.openai.moderationdefaults toauto, and OpenAI's filters ride along even though you're not on OpenAI's platform. If a prompt trips it, you get an error instead of an image. That's the model you chose. - Cost creep.
quality: highandnumberResults: 4multiply fast. The node's title bar shows the per-run cost - actually read it once so you calibrate what "a few dollars of images" feels like. - Format defaults to JPG. Fine for most things, wrong if you wanted the transparent background you just enabled. Set
outputFormattoPNGwhen alpha matters.
The honest take: for everyday image gen, local FLUX will treat you better on price per image. This node earns its keep when the words on the image matter more than the budget.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| providerSettings.openai.backgroundopt | COMBO | auto | Background handling in generated images. |
| providerSettings.openai.moderationopt | COMBO | auto | Content moderation level. |
| providerSettings.openai.qualityopt | COMBO | auto | Image quality level. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |