Nodes/Protoface/Protoface Grok Imagine Image 2.0 · Text to Image
ComfyUI Node

Protoface Grok Imagine Image 2.0 · Text to Image

Grok Imagine Image 2.0 in ComfyUI, With No Weights and No VRAM Bill

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface Grok Imagine Image 2.0 · Text to Image
    • image
    • mask
    • files
    • run id
    ◄prompt►
    ◄qualitymedium►
    ◄resolution2k►
    ◄aspect_ratio1:1►
    ◄generation_id0►
    ◄request_scope►

    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.

    CategoryProtoface/Image/xai

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRINGText description of the image to generate.
    qualityCOMBOmediumGeneration quality tier.
    resolutionCOMBO2kOutput image resolution tier.
    aspect_ratioCOMBO1:1Aspect ratio of the generated image.
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (4)

    NameTypeDescription
    imageIMAGE—
    maskMASK—
    filesPROTOFACE_FILE—
    run idSTRING—