Protoface Grok Imagine Image 2.0 · Text to Image
Grok Imagine Image 2.0 in ComfyUI, With No Weights and No VRAM Bill
- image
- mask
- files
- run id
There's no model in this node. Nothing downloads, no checkpoint loads, your GPU sits at idle. You type a prompt, pick a ratio, and a few seconds later a finished image lands on an IMAGE socket looking exactly like a KSampler made it. Underneath, the node is an HTTP client: it posts your request to Protoface, which calls xAI's Grok Imagine Image 2.0, and hands back the PNG.
That's the whole point. Grok/Aurora is one of the few mainstream image services you simply cannot download - the weights don't exist in public - so if you want it inside your graph, calling it is the only door. The community's read on Grok's image side has been consistent for a while: suspected Flux lineage, surprisingly photoreal, and by a wide margin the least restrictive of the big commercial services. It's also become a measuring stick - plenty of r/comfyui threads are some variant of "how do I get locally what I get out of Grok."
What the node actually is
Protoface (registry package protoface-nodes, beta 0.1.0) is one of those packs that ships a generator instead of a node. At import it reads a bundled catalog.json - 44 models, 95 tasks - and mints a Comfy node class per model/task pair. That's why the class name is a mouthful ending in e91a4b41ac5baee6: it's a hash of the model id, the task, the request schema fingerprint and the outputs. The upside: a new xAI model can appear after a catalog refresh without a code update. The catch: when the schema changes you get a new class, and this one is renamed [Archived] and refuses to submit. Reselect the current node, recover the old job with Resume Run.
The controls are the provider's request schema re-emitted as native Comfy widgets - nothing here is bespoke Protoface invention.
The inputs you actually touch
prompt is the obvious one - multiline, and it's the model's instruction, not a Stable Diffusion tag soup. Write a sentence. quality gives you low or medium; resolution gives you 1k or 2k (default 2k). Given that this is metered per call, low + 1k is a perfectly sane way to iterate before you commit to the good one.
aspect_ratio is the interesting one, because the list is longer than you'd expect: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2, plus the phone-shaped 19.5:9, 9:19.5, 20:9 and 9:20. Vertical social work is a first-class citizen here rather than a crop you do afterwards.
Then the two fields everyone should read the tooltip on. generation_id (default 0) is not a seed. Keep it fixed and the pack reuses or resumes the same paid job; bump it and you're buying a fresh generation. request_scope is auto-filled per node, isn't a secret, and exists so headless workflows can dedupe. Leave it alone in the UI.
Outputs: image and mask (both lists), files, and run id. The mask is the inverted-alpha companion for transparent results, which is a nice touch you'd otherwise build by hand. files carries every original asset. Feed run id to the pack's Resume Run node when a job times out instead of requeueing and paying twice.
Installing it
You need ComfyUI 0.41.0+ and Python 3.10+. In ComfyUI Manager, search Protoface and install protoface-nodes. If Manager's index hasn't caught up (it lags), do it manually from the ComfyUI directory, using the tagged release:
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git custom_nodes/protoface
python -m pip install -r custom_nodes/protoface/requirements.txt
Those requirements are httpx, jsonschema, Pillow and av (PyAV) - nothing exotic, but install them with ComfyUI's interpreter, not your system one, or portable Windows in particular will not see them:
.\python_embeded\python.exe -m pip install -r .\ComfyUI\custom_nodes\protoface\requirements.txt
Restart, reload the browser. Then click Protoface in the lower-right and paste an API key from your Protoface account. Note the two things that bite immediately: the key lives in server memory and is cleared on restart, and this bills your Protoface account directly - it is not Comfy credits, and it doesn't care about your Partner Node balance. For a server, set PROTOFACE_API_KEY or PROTOFACE_API_KEY_FILE instead.
Where people get burned
The key disappearing after a restart produces what looks like an auth error and is actually just an empty field. Re-enter it.
Don't increment generation_id to "retry." That's a new paid job by definition - changed prompts and changed params are new requests too. A timeout leaves a recoverable run; rescue it with the run id.
Interrupting stops the request, but cancellation is best-effort upstream and not a refund. And on a shared server, anyone who can queue a workflow can spend on your key.
One honest caveat: as of this writing, searching Reddit for "protoface" returns literally nothing. This pack has no community track record yet - you're early, and the official xAI Partner Node is the vetted alternative if you'd rather stay on Comfy's own billing. Read the source before you hand it a key; that advice applies to every API pack, and this category has earned it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text description of the image to generate. | |
| quality | COMBO | medium | Generation quality tier. |
| resolution | COMBO | 2k | Output image resolution tier. |
| aspect_ratio | COMBO | 1:1 | Aspect ratio of the generated image. |
| generation_id | INT | 00–9007199254740991 | Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed. |
| request_scope | STRING | Automatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| files | PROTOFACE_FILE | — |
| run id | STRING | — |