Recraft V4 Styles Vector
Recraft V4 Styles Vector in ComfyUI — SVG you can actually use, straight from a prompt
- referenceImages
- file_path
Most image models hand you pixels. Recraft's whole pitch, going back to the V3 that quietly topped the Artificial Analysis leaderboard, is that it can hand you vectors instead - real, scalable SVG, not a raster pretending. This node is the newest form of that: Recraft V4 Styles Vector, a text-to-vector model that also keeps a brand style consistent across outputs. If your ComfyUI life has been all rasters, this is the node that finally talks to your icon set, logo, or packaging mockup.
What it's for, concretely: Runware's model page describes V4 Styles Vector as generating SVG assets aligned to a reusable, reference-driven visual style, aimed at design systems - icons, logos, graphic marks, packaging, illustration assets. So the intended workflow isn't "make a random pretty image." It's "make twenty assets that all look like they belong to the same brand."
How it works. This one doesn't come back as an IMAGE tensor. It runs a vectorize task, and the pack downloads the resulting SVG into ComfyUI's output folder and hands you back a file_path string. That's the single most important thing to know: the output is a file path, not a picture you can preview by wiring into Preview Image. You'll find runware_*.svg in your output directory and open it in a browser, Illustrator, or Figma.
What you set. Required is just positivePrompt. The three inputs that make the style-consistency promise real:
referenceImages- one or more IMAGEs that define the visual style you want the vector output to follow.styleId- identifier of an existing style (a style you've saved in the Recraft ecosystem) to apply. This is the "reusable" half of the equation; once a client's style is saved, you reference it by ID instead of re-describing it.settings.styleMatch-preciseorflexible, defaulting toprecise: how closely the model must stick to that style. Precise for brand-critical work; flexible when the prompt should have more say.
size gives you the usual 1K aspect presets, outputFormat is locked to SVG (it's the only choice), and advanced_json is the escape hatch if you need to pass settings.backgroundColor.rgb or settings.colors that don't have their own widget.
Install. Same pack as every other Runware node:
# ComfyUI Manager (recommended): Custom Nodes Manager → search "Runware" → install → restart
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware # manual alternative
pip install -r ComfyUI-Runware/requirements.txt
Restart and add your Runware API key (Settings → Runware API key or the RUNWARE_API_KEY env var). No local model - the vectorization runs remotely, and this being a "Styles"-family Recraft model on a commercial API, it's a pay-per-result affair; the cost shows on the node after each run.
Gotchas. The file-path output trips up everyone the first time - if nothing seems to come out of the node, remember it saved an SVG to disk and returned a string, not an image. And manage expectations on what "vector" means here: Recraft-style vector output is clean, editable, brandable geometry, excellent for icons and logos, but don't expect a 3D-rendered scene to come out of it - that's not the job this model (or this node) was built for.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| styleIdopt | STRING | Identifier of an existing style to apply. | |
| settings.styleMatchopt | COMBO | precise | How closely the style is followed. Overrides the match value stored on the style for this request. |
| 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 | SVG | File format for the vectorized output. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: settings.backgroundColor.rgb, settings.colors |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |