Nodes/ComfyUI OneThing AI Node/OneThingAI Image Generator
ComfyUI Node

OneThingAI Image Generator

The OneThingAI Image Generator node

By OneThingAI·Created about a year ago·Updated 6 months ago· 2
OneThingAI Image Generator
  • reference_image
  • IMAGE
api_key
prompt
modelgpt-image-1
num_images1
image_size1024x1024
custom_width1024
custom_height1024
qualitymedium
retries3
timeout120
reference_image_weight0.50

Most ComfyUI nodes make your GPU sweat. This one makes your wallet sweat instead. OneThingAILoader - displayed as "OneThingAI Image Generator" - is the flagship of the ComfyUI_Onething_Image pack, and it is a pure API client. You give it a prompt and an API key, it talks to OneThing AI's server, and a finished image comes back. No checkpoint download, no VRAM, no sampler math. That's the whole pitch.

Here's the context that makes it interesting: OneThing AI is an aggregator. One key and one OpenAI-style endpoint (https://api-model.onethingai.com/v1/images/generations) get you into a bunch of otherwise-separate, closed, API-only image models - OpenAI's gpt-image-1, Google's Gemini image line, Alibaba's Wanxiang, ByteDance's Seedream, Tencent's Hunyuan, even flux-dev. The frontier labs (Seedream, Gemini) release nothing you can run locally, and the community has a durable argument against that: an API can be re-priced, filtered, or revoked overnight, where a file on your disk cannot. But if you want Gemini 3 Pro quality from inside a ComfyUI graph without owning Google's SDK, an aggregator node is the only path.

How it works. The node POSTs your prompt (plus model, size, quality) to OneThing AI with a Bearer key. The response is base64-encoded JSON, decoded to a PIL image, and converted to a standard torch IMAGE tensor in the 0–1 range - so the output plugs straight into Save Image, upscalers, img2img chains, anything. Under the hood there's a requests session with a real retry strategy (429/500/502/503/504, with backoff), which is more than most API nodes bother with. Two quirks are baked into the code and worth knowing before you run it: IS_CHANGED always returns NaN, so the node re-executes on every queue run even if you changed nothing - each run is a billed generation. And it makes its requests with TLS certificate verification disabled (verify=False). For a node that's sending your prompt to a third party, that's sloppy, and it's a reason to think twice before feeding it anything you'd rather keep private.

Inputs that matter. The model input is a plain text box, not a dropdown - that's the Loader's superpower. It defaults to gpt-image-1, but you can type any model ID the OneThing AI API exposes. (The README still says "gpt4o"; the code and the node's actual default disagree, and the code wins.) The rest of the required set is short:

  • api_key - paste your key
  • prompt - the whole job
  • num_images (1–10) - the only node in this pack that batches. More images = more money.
  • image_size - presets (1536x1024, 1024x1024, 1024x1536) or 自定义 (custom), with custom_width/custom_height (512–2048, step 64)
  • quality (low/medium/high), retries, timeout - leave retries at 3 and timeout at 120 unless a model is slow

In optional: reference_image (any IMAGE from your graph) plus reference_image_weight (0–1, default 0.5) to control how much the reference steers the result. Unlike the per-model sibling nodes, which switch to an image-editing endpoint when you wire a reference in, the Loader base64-encodes the reference straight into the generation payload. Either way, one IMAGE (or a batch) comes out.

Install. Same story as every node in this pack:

cd ComfyUI/custom_nodes
git clone https://github.com/OneThingAI/ComfyUI_Onething_Image.git
pip install Pillow requests

Then restart ComfyUI - or search "OneThingAI" in ComfyUI Manager and install from there. No model files, because nothing runs locally; Pillow, requests, torch and numpy all ship with ComfyUI anyway, so on a normal setup the pip step is usually redundant.

Troubleshooting. A 401/403 means the key is wrong or the account has no credit - that's on OneThing AI, not the node. If the queue just sits there, it's probably the timeout: 120s default, and 4K-class generations can crawl past that; bump it toward 180. Reference image ignored? Check reference_image_weight isn't at 0 and that the model you typed supports refs. And remember the always-executes quirk: re-running a workflow you didn't change still spends credits.

One honest warning: this pack is new and tiny. An exact-phrase search for "onethingai" across the reddit corpus I checked returns zero threads - no community war stories, no bake-off posts. You're an early adopter, for better and worse.

CategoryOneThingAI/image generation

Inputs (12)

NameTypeDefaultDescription
api_keySTRING
promptSTRING
modelSTRINGgpt-image-1
num_imagesINT11–10
image_sizeCOMBO1024x10244 options: 1536x1024, 1024x1024, 1024x1536, 自定义
custom_widthINT1024512–2048
custom_heightINT1024512–2048
qualityCOMBOmedium3 options: low, medium, high
retriesINT31–10
timeoutINT1205–180
reference_imageoptIMAGE
reference_image_weightoptFLOAT0.500–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE