create image _O
Why this node ignores its own 'number' input (and 3 other quirks)
- client
- IMAGE
- MASK
create image _O is the pack's bridge from text to pixels without touching a local model: it calls OpenAI's image API (DALL-E 2) and drops the result into ComfyUI as a standard IMAGE. You type a description, get a tensor you can VAE-encode, inpaint around, or just save. In a local-first ecosystem where half the fun is never paying per image, it's an oddity - but if you want a quick reference image mid-workflow and don't care about API costs, it works.
It sits under O/OpenAI/Advanced/Image and is the current, non-deprecated version of the DALL-E node. It expects a client from load_openAI _O - that's the piece that actually holds your API key and endpoint.
What you set
- client (CLIENT) - from
load_openAI _O, the API connection - prompt (STRING) - the image description
- number (INT, 1–10) - how many images to generate… in theory
- size -
256x256,512x512, or1024x1024 - seed (optional INT) - present, but see below
The outputs are IMAGE and MASK. The mask is the alpha channel of the returned PNG when one exists (inverted), or a blank 64×64 tensor when there's no transparency. Most DALL-E outputs are opaque, so don't expect a useful mask most of the time.
The quirks, and they're in the source
Read the code and a few things jump out:
numberis hardcoded to 1. The input is right there in the schema, min 1, max 10, and then the function doesnumber = 1and never uses it. You can set it to 10 and you'll still get one image. This is the kind of thing that's been silently lying to users for years.seeddoes nothing. It's accepted as a parameter and never passed to the API. DALL-E 2 has no seed parameter on that endpoint anyway, so it's decorative.- Failures return a placeholder, not an error. If the API call throws, the node prints the exception to the console and downloads
https://i.imgur.com/removed.png- a "removed" placeholder image. Your workflow keeps running and produces garbage that looks intentional. If your output is suddenly a missing-image icon, check the console. - The default endpoint is a proxy.
load_openAI _Odefaultsbase_urlto a Cloudflare-worker proxy rather than OpenAI's own endpoint. If you're plugging in a real key, setbase_urltohttps://api.openai.com/v1and pass the key there or in the pack'sconfig.json.
There's also a bigger compatibility question hanging over this whole OpenAI wing: the pack's own metadata admits it "does not support the new OpenAI API." The current SDK returns response objects, while this node's success path reads imagesURLS["data"][0]["url"] like a dict - which is exactly the kind of mismatch that lands you in the placeholder-image fallback. It might work with a pinned older openai version; with a fresh install, temper your expectations.
Install
Ships with the Quality of Life Suit (O/ menu), one install covers everything:
cd <ComfyUI root>/custom_nodes
git clone https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92.git
Restart ComfyUI (browser reload won't load new nodes). The pack auto-updates on startup via a generated config.json - set "autoUpdate": false there if you want stability. Honest verdict: for a one-off reference image it's fine, but for anything serious you're probably better off with a local SD/SDXL graph - free, private, and no weird placeholder fallback waiting to catch you.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| client | CLIENT | — | |
| prompt | STRING | — | |
| number | INT | 11–10 | — |
| size | COMBO | 256x256 | 3 options: 256x256, 512x512, 1024x1024 |
| seedopt | INT | 00–18446744073709550000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |