FLUX.1 Kontext [pro]
Same Editing Magic, Fewer Knobs, Hosted
- referenceImages
- advancedFeatures.watermark.image
- image
If the FLUX.1 Kontext [dev] node is the open-weights tier with every dial exposed, [pro] is its adult sibling: same instruction-editing model - feed an image, say "make it snowing," get a new image - but with the sampling knobs taken away and a couple of hosted conveniences added. It's Black Forest Labs' flagship editing model running entirely on Runware's cloud, and the node's widget list reads like a statement about who the audience is.
What you get instead of the knobs
Required: positivePrompt, width, height. Then the shortened optional list:
- referenceImages - the image you're editing. This is the whole game: Kontext edits from a reference rather than from scratch.
- providerSettings.bfl.promptUpsampling - a hosted convenience. Flip it on and BFL's server rewrites and expands your prompt before generation. Worth trying once; some people love the quality lift, others find it drifts from their intent.
- providerSettings.bfl.safetyTolerance - BFL's moderation tolerance, 0–5, default 2. Lower is stricter, higher is more permissive. This is the knob you'll actually touch when a legitimate prompt keeps getting refused - but know that BFL's moderation is famously firm, and this is a tolerance dial, not a bypass.
- seed and numberResults (up to 20) - reproducibility and variation.
No steps, no scheduler, no CFG. The pro tier decides those for you, which is honestly fine for editing - the model is tuned well and most people never needed the sampling knobs on Kontext anyway. Output is one image.
Why pro and not dev
The [dev] tier in this family ships open weights under a non-commercial license; pro is the commercial, hosted flavor. If you're producing client work or anything you might sell, pro removes the license question entirely - you're renting the model, not redistributing weights, so the non-commercial clause never gets a chance to bite you. That's the cleanest reason to pick pro over its dev sibling, and it's the same argument that pushed a lot of the editing world toward this pack.
Install and gotchas
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart, or install "Runware" from ComfyUI Manager, and set your API key (Settings → Runware API key or RUNWARE_API_KEY). No weights download.
The shared pack gotchas apply: every run bills the account (title bar shows cost), and - the one that catches Kontext users specifically - remember this model edits the whole image, so unchanged regions come back close-but-not-identical. If bit-exactness matters, composite the edited region back over the original with a mask. Also, promptUpsampling changes outputs between runs in ways you can't fully control; leave it off if reproducibility matters more than prompt polish.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–4294967295 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| 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. | |
| providerSettings.bfl.promptUpsamplingopt | BOOLEAN | false | Enable automatic enhancement and expansion of the input prompt. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| providerSettings.bfl.safetyToleranceopt | INT | 20–5 | Tolerance level for content moderation. Lower values are stricter; higher values are more permissive. |
| 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 | — |