FLUX.2 [dev]
FLUX.2 [dev] without the 18–24GB VRAM bill
- referenceImages
- lora
- acceleratorOptions
- advancedFeatures.watermark.image
- image
FLUX.2 [dev] is Black Forest Labs' flagship: a 32B rectified flow transformer with a Mistral-3 VLM as its text encoder, and the strongest open-weights image model on paper. The catch has always been the hardware - the community verdict on running it locally settled at "18–24GB VRAM even quantized, and slow," which put it out of reach for most home rigs. This node skips that entirely. It's the cloud version: same model, served on Runware's infrastructure, arriving back in your ComfyUI graph as a native IMAGE. If you've been staring at the FLUX.2 release threads knowing your GPU can't breathe on it, this is the practical way in.
What you lose is local control - no downloading weights, no quantization choices, no offline mode, and every run is billed. What you gain is the full FLUX.2 Dev experience: 4MP-class output, reliable typography, and editing via referenceImages, all without touching your VRAM.
How it works
Another thin generated node in the pack: it builds an imageInference request, ships it to Runware over their SDK, and converts the returned image into a ComfyUI IMAGE tensor. Unlike the FLUX.2 Klein node in this same pack, Dev doesn't expose a steps value directly - it's an off-by-default gate (steps + steps_value) so the model's own default steps are used unless you explicitly override them. Same idea applies to most of the advanced knobs: they're gated so a default run is always safe.
Inputs that matter
positivePrompt,width,height- the required trio. Width/height go 512–2048 in 16px steps; 1024×1024 is the default and a fine place to start. FLUX handles non-square well, so don't feel locked to 1:1.referenceImages- anIMAGEinput. This is where FLUX.2 shines: it's an editing and multi-reference model, not just a text-to-image one. Wire in one or several images and prompt around them.negativePrompt- exists, but read the tooltip: it's ignored when guidance is disabled (CFGScale ≤ 1). FLUX family models are famously fine with no negative prompt; a lot of the time it does nothing here. Don't build a workflow around it.CFGScale- default 4, range 1–20. This is the guidance knob. For photorealistic work, the community on FLUX.2 generally stays lowish; if your output ignores the prompt, nudge up, if it's overcooked/saturated, down.scheduler- 76 options in the dropdown. The(default)is genuinely fine for most people. If you know DPM++ 2M Karras from SD1.5 days, you can switch; if you don't, leave it.lora- a typed socket for the Runware LoRA builder, pluswatermarkandacceleratorOptionsbuilders, if you want stackable LoRAs or watermarking in the pipeline.numberResults(1–20) - variations with different seeds. 20 on a cloud model is a real bill; start small.outputFormat/outputQuality- JPG (default), PNG, or WEBP, plus compression quality. PNG for anything you'll re-process.
The single output is image - wire it to Preview Image or Save Image, exactly like a local model's output.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Or ComfyUI Manager → search Runware → install → restart. Set the API key via ComfyUI Settings → Runware API key, RUNWARE_API_KEY, or runware auth login. No model downloads - this is the whole appeal.
Honest caveats
FLUX.2 Dev's weights are non-commercial licensed (FLUX Non-Commercial License), and that licensing travels with the model even when you're using it via API - check what you're allowed to do with the output before you sell anything made with it. And temper expectations on the "open-weights" debate: via this node it's a black-box API, subject to change, revocation, or repricing like any closed service. For the 23 of you who've been Google-wondering whether you can run FLUX.2 without a new GPU - yes, and it takes about five minutes to set up.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| width | INT | 1024512–2048 | Width of the generated media in pixels. |
| height | INT | 1024512–2048 | Height of the generated media in pixels. |
| referenceImagesopt | IMAGE | — | |
| loraopt | RUNWARE_LORA | — | |
| acceleratorOptionsopt | RUNWARE_ACCELERATOROPTIONS | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| seedopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | BOOLEAN | false | Enable to set steps. Off uses the model's default. |
| steps_valueopt | INT | 11–50 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| scheduleropt | COMBO | (default) | Scheduler to use for the diffusion process. |
| CFGScaleopt | FLOAT | 4.001–20 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| accelerationopt | COMBO | (default) | Optimization level. |
| 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. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |