Nodes/JILIGULU GPT-Image/JILIGULU GPT-Image-2
ComfyUI Node

JILIGULU GPT-Image-2

GPT Image inside ComfyUI with zero VRAM — the node that just needs a key

By XYQC-LH·Created 4 months ago·Updated 4 months ago· 1
JILIGULU GPT-Image-2
  • image
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • image_10
  • image_11
  • image_12
  • image_13
  • image_14
  • image_15
  • image_16
  • image
prompt
api_key
modelgpt-image-2
urlhttps://jiligulu.art
resolution1K
aspect_ratio1:1

If you've ever wanted OpenAI's GPT Image output sitting in your ComfyUI graph - without owning an OpenAI key, a beefy GPU, or even a GPU at all - this is that node. JILIGULU GPT-Image-2 is an API-wrapper node: it does zero local inference, ships your prompt and reference images to the JILIGULU aggregator at jiligulu.art, and drops the finished image back into your workflow as a normal IMAGE tensor. The model just lives on someone else's server.

Why you'd reach for it

GPT Image is a closed model. You can't download weights, which means "run it locally" was never an option - this is the "call the model" bucket, not the "rent a GPU for an open model" bucket. The official path is ComfyUI's own Partner Nodes on prepaid credits. This pack takes the third-party route: instead of OpenAI directly, you buy one API key from JILIGULU, an aggregation platform that proxies the model and handles routing, sizing and result delivery behind a unified endpoint.

Why go through an aggregator? Cost, region access, and billing. One key from one site beats an OpenAI org setup if that's not available or payable where you are, and the aggregator handles the fiddly bits - aspect-ratio conversion, pixel-size mapping, supplier switching - so you never touch them. Just know you're paying a middleman per call, and that your prompt and reference images leave your machine the moment you queue the job.

How it works

Despite the slick front end, this thing is a short HTTP client. On generate it fetches the model's default params from the API, uploads any reference images as multipart PNGs to get URLs, and POSTs a run task. Then it polls the task endpoint every 5 seconds (up to a 15-minute timeout) until the job finishes, downloads the result, and returns it as a IMAGE. All stdlib urllib plus torch/PIL/numpy - no exotic dependencies, no model files, nothing to download.

The inputs and outputs that matter

You only really set three things:

  • prompt - the text-to-image prompt. Multi-line, required; it errors if empty.
  • api_key - your JILIGULU Agent Key. Leave it blank and it falls back to the JILIGULU_API_KEY environment variable, which is the better habit so keys don't sit in saved workflows.
  • resolution - 1K / 2K / 4K. The backend decides the exact pixel dimensions, you just pick the tier.

aspect_ratio gives you 16 presets (1:1, 16:9, 9:16, 4:3, … plus auto). model and url are single-choice enums (gpt-image-2 and https://jiligulu.art) - nothing to change unless you're overriding the base URL.

On the input side there are 16 optional image slots (image_1image_16) for reference images. Wire a Load Image into one or more, and they get uploaded and passed to the model - that's your multi-reference generation. The single image output plugs straight into a Save Image or anything downstream.

Installing it

No dependency dance here - pyproject.toml lists zero dependencies, and the runtime needs only torch, PIL and numpy, which ComfyUI already ships. Two ways:

cd ComfyUI/custom_nodes
git clone https://github.com/XYQC-LH/ComfyUI-JILIGULU-GPT-Image.git

then restart ComfyUI. It's also searchable in ComfyUI Manager as "ComfyUI-JILIGULU-GPT-Image" if you prefer.

First run and common gotchas

Register at jiligulu.art, create an Agent Key at /account?tab=agent-keys, paste it in. The README's suggested flow is right: import examples/text-to-image/workflow.json, drop in your key, run the minimal case before trying the multi-reference workflow.

Where people will get burned:

  • Empty prompt - the node raises immediately. It's an easy miss in a quick test.
  • URL mismatch. The url field is cached when the node loads. If you set JILIGULU_BASE_URL in the environment but the node still shows the old default, it refuses with a "refresh the node" error - delete and re-add the node after changing the env var.
  • Slow jobs. Requests time out at 30s and the whole poll at 15 minutes. A heavy 4K multi-reference job can feel like a hang; it's just waiting on the backend.
  • Security posture. This pack is new and the reddit corpus has literally zero signal on it - no reputation to lean on. The good news: the source is short and readable, uses only stdlib HTTP, and its only network calls go to the base URL. Read it once before you paste a key in. An API node that holds your key and phones home by design is exactly the shape a malicious one takes, so vet first, trust after.

The verdict: a clean, dependency-free wrapper for getting closed-model GPT Image output into ComfyUI through an aggregator key. If you can't touch OpenAI directly, it does exactly what it promises. Just budget for per-call cost, remember your inputs leave the machine, and read the 300 lines of source before you commit.

CategoryJILIGULU

Inputs (22)

NameTypeDefaultDescription
promptSTRING
api_keySTRING
modelCOMBOgpt-image-21 options: gpt-image-2
urlCOMBOhttps://jiligulu.art1 options: https://jiligulu.art
resolutionCOMBO1K3 options: 1K, 2K, 4K
aspect_ratioCOMBO1:116 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +10
imageoptIMAGE
image_2optIMAGE
image_3optIMAGE
image_4optIMAGE
image_5optIMAGE
image_6optIMAGE
image_7optIMAGE
image_8optIMAGE
image_9optIMAGE
image_10optIMAGE
image_11optIMAGE
image_12optIMAGE
image_13optIMAGE
image_14optIMAGE
image_15optIMAGE
image_16optIMAGE

Outputs (1)

NameTypeDescription
imageIMAGE