Nodes/GrsAI api in ComfyUI/🎨 GrsAI GPT Image 2.5 Flare / Sunburst
ComfyUI Node

🎨 GrsAI GPT Image 2.5 Flare / Sunburst

Two model names, zero documentation, one node that bills per picture

By 31702160136·Created about a year ago·Updated a day ago· 130
🎨 GrsAI GPT Image 2.5 Flare / Sunburst
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image
  • status
  • api_task_ids
◄promptA beautiful girl with long black hair, wearing a white dress, standing in a beautiful garden, looking at the camera.►
◄apikey请输入您的APIKEY: sk-xxxxxxx►
◄modelgpt-image-2.5-flare►
◄num_images1►
◄aspect_ratioauto►

What this node actually is

You can't download GPT Image. OpenAI doesn't ship weights, so if you want that model's prompt adherence and text rendering sitting next to your local upscaler and your masking pass, you have to call it. Grsai_GPTImage25 is one of those doors: an API-wrapper node that packages your prompt, posts it to a reseller, and drops the returned picture into your graph as a normal IMAGE. No model files, no VRAM, no sampler.

The wrinkle is whose door. You're not talking to OpenAI - GrsAI is a Chinese reseller that proxies closed models at low per-call prices (the pack's own pyproject.toml advertises ¥0.03 a call). And the two options in this node's model dropdown, gpt-image-2.5-flare and gpt-image-2.5-sunburst, aren't names OpenAI publishes anywhere. They're reseller SKUs that nobody in the community has written up - a corpus search for "GrsAI" returns literally zero threads. So: it works, it's cheap, and you have no third-party reputation to lean on. That's the shape of node the ecosystem has been burned by before, so use a key you can rotate and don't send it anything you'd mind leaving your machine.

How it works

Under the hood it's an HTTP client, and it's the busiest branch of the pack's code. Your prompt goes out with model, aspectRatio, and - for these two SKUs specifically - quality: "medium" hardcoded by the client, where the plain GPT Image 2 node sends "auto". Any reference images you wire in are converted to base64 PNG and sent in the request's images field, which is how one node covers text-to-image, image editing and multi-image fusion at once.

Then the part that matters for your wallet: num_images isn't a batch parameter. Each requested image is a separate concurrent API request, fired through a thread pool sized to that number. Set it to 12 and you get 12 independent jobs, 12 task IDs and 12 charges. The client polls /v1/api/result every two seconds until each job reports succeeded, downloads the result URLs, and concatenates everything into one IMAGE batch. The poll timeout is an hour, so a hung job sits there rather than failing fast.

Inputs that matter

  • prompt - multiline, and the default is a leftover English demo sentence. The models handle Chinese prompts well; that's part of the reseller pitch.
  • apikey - paste your GrsAI key here, starting with sk-. The field ships with Chinese placeholder text as its default, and the client rejects anything that isn't ASCII and doesn't start with sk-, so an untouched field fails with a clear (if Chinese) error rather than a mystery 401. Note this is where the key comes from - the pack's documented .env route is only read by its older Flux nodes, so editing .env will do nothing here.
  • model - gpt-image-2.5-flare (default) or gpt-image-2.5-sunburst. The node gives you no hint which is which, because the pack author doesn't know either. Run a cheap one-image test on each and pick by eye.
  • num_images - "1" through "12", as strings. This is your cost dial. Start at 1.
  • aspect_ratio - default auto, and the 44 choices are literal pixel sizes labelled 1K/2K/4K: 1024x1024 (1:1, 1K) up to 2880x2880 (1:1, 4K), plus 16:9, 9:16, 21:9, 3:1 and friends. What's sent is the size string, not a ratio, so auto genuinely hands the framing decision to the server.
  • image_1 … image_8 - optional IMAGE inputs. Connect any of them and the call becomes an edit or a fusion instead of a fresh generation. The first frame of each input is what gets sent.

Outputs

image is a standard IMAGE batch - wire it to Save Image, a preview, or straight into your local upscaler. status is a human-readable line with the model, resolved size, reference count and success/failure tally, which is the thing you actually read when four of your twelve jobs died. api_task_ids is a newline-joined list of the server task IDs, one per request - keep it, it's your only receipt if you have to argue with the reseller about a failed call.

Install

ComfyUI Manager, then "Install via Git URL" with https://github.com/31702160136/ComfyUI-GrsAI.git, or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/31702160136/ComfyUI-GrsAI.git
pip install -r ComfyUI-GrsAI/requirements.txt

Don't just run pip install -r requirements.txt though - that file lists torch, Pillow, numpy and fal-client, none of which this pack imports (fal-client is dead weight). On portable builds the README's --force-reinstall one-liner will cheerfully re-resolve torch inside a working ComfyUI environment. The real dependency list is requests python-dotenv httpx httpcore.

The README also tells you to drop ComfyUI-Manager's security_level to weak if the git install is refused. That's real Manager behaviour, but you're weakening a security setting to install a pack whose entire job is holding your key and phoning home. Manual clone, setting left alone.

Where people get burned

Generation failures don't raise - if every request fails, the node returns a dark red placeholder image with the error text drawn onto it. Look at the picture instead of the console. And because the node declares itself always-changed, re-queueing a workflow re-calls the API every single time; there's no cache between runs, so an accidental extra queue is an accidental extra bill. Reference images go out as full-size base64 PNGs, so feeding it a 4K plate makes the request slow in a way that looks like the API hanging.

CategoryGrsAI/GPT Image 2.5

Inputs (13)

NameTypeDefaultDescription
promptSTRINGA beautiful girl with long black hair, wearing a white dress, standing in a beautiful garden, looking at the camera.—
apikeySTRING请输入您的APIKEY: sk-xxxxxxx—
modelCOMBOgpt-image-2.5-flare2 options: gpt-image-2.5-flare, gpt-image-2.5-sunburst
num_imagesCOMBO112 options: 1, 2, 3, 4, 5, 6, +6
aspect_ratiooptCOMBOauto44 options: auto, 1024x1024 (1:1, 1K), 2048x2048 (1:1, 2K), 2880x2880 (1:1, 4K), 1280x720 (16:9, 1K), 2048x1152 (16:9, 2K), +38
image_1optIMAGE—
image_2optIMAGE—
image_3optIMAGE—
image_4optIMAGE—
image_5optIMAGE—
image_6optIMAGE—
image_7optIMAGE—
image_8optIMAGE—

Outputs (3)

NameTypeDescription
imageIMAGE—
statusSTRING—
api_task_idsSTRING—