Recraft V4
The designer's model, now a plain ComfyUI node
- advancedFeatures.watermark.image
- image
Recraft is the image model that topped the HuggingFace leaderboard for five months as the anonymous "red_panda" before anyone figured out who made it - and then stayed weirdly under the community's radar. V4 is the current generation, and this node is Recraft V4 as a hosted Runware endpoint inside ComfyUI. No model download, no VRAM, no checkpoints. You type, it renders on Recraft's GPUs, and a native IMAGE tensor comes back down the wire.
So when do you actually reach for it? Recraft has always been design-first, not photorealism-first. If you're making logos, posters, packaging, editorial layouts, icon sets, or anything with strong typography and flat graphic style, Recraft is a genuinely different tool from the SDXL/Flux realism crowd - it was built for that, and it shows in the text rendering and layout control. If your prompt is "photorealistic woman in golden hour," this isn't the node; go pick a Juggernaut. Recraft is the one you reach for when the deliverable is a graphic.
How it works
The node builds a request with the model AIR recraft:v4@0 and taskType: imageInference, sends it over REST via the runware-sdk, and converts the returned image URL back into a ComfyUI IMAGE tensor. Same pattern as every image node in the pack - thin client, heavy lifting happens in the cloud.
The three inputs that matter:
positivePrompt- describe the graphic, including style and use-case. Recraft rewards design-speak: "minimalist poster, bold sans-serif headline, flat vector illustration, generous whitespace."width/height- output dimensions in pixels, defaulting to 1024×1024.
Beyond those, the useful ones are numberResults (up to 20 variations, each with its own seed), outputFormat (JPG/PNG/WEBP) and outputQuality. Then there's advanced_json, and this is the Recraft signature move: it takes JSON for providerSettings.recraft.backgroundColor.rgb and providerSettings.recraft.colors - i.e. a background color and a brand color palette that the model generates within. That's the feature that makes Recraft feel like a designer's tool rather than a diffusion box.
Output: image (IMAGE), which wires straight into Preview Image or Save Image.
Installing
Same as the whole pack: ComfyUI Manager → search Runware → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Light dependencies (runware-sdk, Pillow), no model downloads. You need a Runware API key from the dashboard - set it in ComfyUI Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
Per-result cost is the main one. numberResults: 20 means 20 paid generations, and the node's title bar shows each run's cost (something like $0.00078) so you can keep an eye on it. Also: Recraft's default output is more illustration/graphic-leaning than you might expect from a text-to-image - that's the point, not a bug. And if you want a brand palette, remember the color JSON goes in advanced_json, not anywhere obvious.
One honest note: V4 is now one refresh behind the 4.1 release, so if you're picking fresh, look at the 4.1 nodes first. But if a workflow you've saved references V4, this node is the faithful drop-in.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: providerSettings.recraft.backgroundColor.rgb, providerSettings.recraft.colors |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |