Nodes/ComfyUI-nkxx/🤖 Grsai GPT Image (Sora-Image)
ComfyUI Node

🤖 Grsai GPT Image (Sora-Image)

OpenAI's image model, streaming-tolerant, up to five references

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
🤖 Grsai GPT Image (Sora-Image)
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • images
  • status
promptA cute cat running on the grass
size1:1
variants1
concurrency1
api_key

OpenAI's GPT Image line is closed-weights - the "Sora-Image" family, Google's competitor in the text-rendering-and-editing image space - and this is the Grsai-channel door to it. Prompt in, one or more images out, with up to five reference images for editing or style-locking. It's the pack's second image channel after Nano Banana, and it exists because the two models aren't interchangeable: GPT Image is the one people reach for when they need text rendered inside the image (signs, packaging, posters) or strong image-editing semantics. Nano Banana does consistency; GPT Image does "make the sign say this."

The README's phrase is "compatible with streaming-style response data," and that's a real mechanism detail: the Grsai API can respond with data: -prefixed stream fragments, and the node strips that prefix before parsing JSON. So it tolerates the shape OpenAI-style endpoints actually return, rather than assuming a clean single JSON body.

The inputs that matter

  • prompt (multiline) - the generation/editing instruction.
  • size - auto, 1:1, 3:2, 2:3 (default 1:1). Note the narrow set - no 16:9 here, unlike Nano Banana.
  • variants (1–2, default 1) - images per task. Capped at 2, so one call makes at most a couple.
  • concurrency (1–5, default 1) - parallel tasks. This is the cost multiplier.
  • api_key (optional) - Grsai key fallback.
  • image_1image_5 (optional IMAGE) - reference images for edits and style transfers.

Outputs: images (IMAGE batch) and status (STRING with counts and the credit readout).

How it works

Readable source. Reference images upload to the Grsai channel, then concurrency tasks each POST a generation (with variants copies per task), the returned URLs are downloaded in a thread pool, and everything lands in one IMAGE batch. The status string is the honest bill: 成功: N 张 (任务 x C, 变体 x V) | 积分: X. Note it reports failures per image, so a partially failed batch won't fail silently.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/jieg9341-lab/ComfyUI-nkxx

restart (or ComfyUI Manager, "ComfyUI-nkxx"). Auto-installs requests, pandas, openpyxl, yt-dlp, opencv-python, aiohttp. No models download; Grsai key from nkxx.grsai.ai.

Common issues

  • "Image not found" in the API response: the streaming-parse path can hit an unexpected response shape - the error text will say whether results were found; retrying usually clears transient API glitches.
  • Wanted 16:9, got stuck at 3:2: the size list is intentionally short. If you need widescreen, that's what Nano Banana's 16:9/21:9 is for.
  • Cost: concurrency × variants is the multiplier per run. Draft with 1×1.
  • Filtering follows the model: OpenAI's moderation is the most aggressive of the closed image majors - text rendering requests and editorial content get refused at the source. No node setting changes that; that's the price of calling a closed model.
CategoryNkxx/Grsai/图像

Inputs (10)

NameTypeDefaultDescription
promptSTRINGA cute cat running on the grass
sizeCOMBO1:14 options: auto, 1:1, 3:2, 2:3
variantsINT11–2
concurrencyINT11–5
api_keyoptSTRING
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE
image_4optIMAGE
image_5optIMAGE

Outputs (2)

NameTypeDescription
imagesIMAGE
statusSTRING