ComfyUI Node

Grok Imagine Image Quality

The least-censored image model you can wire straight into ComfyUI

By Runware·Created 2 years ago·Updated about a month ago· 140
Grok Imagine Image Quality
  • referenceImages
  • advancedFeatures.watermark.image
  • image
positivePrompt
size1K (16:9)
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
safetyfalse
safety.checkContentfalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

Grok Imagine is xAI's image model - the one that lives inside Grok on X - and this node exposes it as a plain ComfyUI node. The name on the tin says "Image Quality" because that's the catalog's label for the quality preset, but don't read too much into it: you get one prompt box, a bunch of standard generation widgets, and an IMAGE out the back. The reason you'd reach for this one over the dozen other image nodes in the Runware pack is that xAI's model is famously the least restrictive mainstream image generator. The community's shorthand for it has been "Spicy Mode": where other closed APIs hard-stop, Grok keeps going. It's also suspected of being built on Flux-derived weights, so its aesthetic sits closer to what ComfyUI users are used to than something like a typical OpenAI output.

The practical frame matters here: this is a closed, cloud-only model. There are no weights to download, no license to squint at, and no local VRAM involved - it runs on Runware's infrastructure and the node returns a native IMAGE tensor. If you've been bouncing off Grok's closed website or X integration and want it inside a real workflow, this is the access path.

How it works

Like every node in this pack, it's a thin generated class that sends an imageInference request to the Runware API and turns the returned image URL back into a ComfyUI IMAGE tensor. The interesting part is what it doesn't have: no width/height widgets on this node, no seed, no scheduler. Instead there's a size dropdown - 29 presets like 1K (16:9), 2K (from input), portrait and square variants - which is the model's own way of expressing output dimensions. "Only one of resolution or dimensions is sent," per the tooltip, and the size dropdown owns the whole thing. If you want a specific pixel size, that's not the knob here.

Inputs worth touching

  • positivePrompt (required) - the only thing you must fill in. Describe what you want; Grok is a capable prompt-follower.
  • size - the output-size dropdown described above. None (model default) exists if you'd rather let it decide.
  • referenceImages - an IMAGE input, so you can wire an existing image in for editing/reference. This is where Grok Imagine gets interesting: it does image editing well, not just text-to-image.
  • numberResults (1–20) - variations, each with a different seed. 20 is a lot of API calls; start at 2–4.
  • safety / safety.checkContent - both off by default, leaving the model's own moderation in charge. If you want Runware to run its own content check and flag results, toggle these on. For a model whose appeal is (ahem) latitude, this is your call.
  • outputFormat and outputQuality - JPG/PNG/WEBP and a compression slider. PNG if you'll be compositing; JPG if it's going to Discord.

The single output is image - wire it to Preview Image or Save Image.

Installing

ComfyUI Manager → search Runware → install → restart, or manually:

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

Then set your API key via ComfyUI Settings → Runware API key, the RUNWARE_API_KEY env var, or runware auth login. No models to download - everything runs in the cloud.

The honest warnings

First, moderation is a moving target. xAI has loosened and occasionally re-tightened things, and a closed API can change its filter overnight - that's the standing argument against closed models, and it applies here fully. Second, you're paying per generation; the node's title bar shows the cost of each run, which is a useful reality check. And third, because this is an API model, you won't get deterministic reproducibility the way you would with a local checkpoint - treat each run as a fresh draw rather than something to tweak by a seed. For "give me images the other services refuse," it's the node to have around.

CategoryRunware/Image/xai

Inputs (18)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
referenceImagesoptIMAGE
advancedFeatures.watermark.imageoptIMAGE
sizeoptCOMBO1K (16:9)Output size. Only one of resolution or dimensions is sent.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE