Runware Refiner
Handing the Last Steps to a Refiner
- refiner
Some models are great at composition and rough at fine detail - and the classic fix is a second, smaller model that takes over for the final stretch of denoising. That's the refiner, and RunwareBuild_refiner is how you bolt one onto a Runware image model without hosting anything. It's a builder node: it produces a refiner object, you wire it into an image model that exposes that socket (Juggernaut, the Qwen-Image family, FLUX, Z-Image - most of the image catalog), and the model runs a two-pass generation where the base model does the heavy lifting and the refiner polishes the end.
How it works
ComfyUI's local equivalent is chaining a second checkpoint mid-sampling - do most of your steps in the base model, then swap. This is the same idea minus the VRAM juggling: the base model denoises up to a switching point, then the refiner model takes over and refines the remaining steps. The one setting that matters is when that switch happens, and this node gives you two ways to say it.
The inputs that matter
- model - the refiner model identifier, currently a single hosted model (
runware:101055@128080). There's one choice; pick it and move on. - startStep - a toggle. Flip it on and you get
startStep_value: the absolute step number where the refiner takes over. If your run is 30 steps and you want the refiner from step 20 on, set it to 20. - startStepPercentage - the same idea as a percentage of total steps.
startStepPercentage_valueruns 1–99, so 70 means "refiner takes over after 70% of the run."
Both toggles default to off, which means "use the model's default switching point" - honestly a fine place to start. The percentage version survives step-count changes, so it's the one to reach for once you start tweaking steps. The absolute version is for when you've locked your step count and want surgical control.
Note the gate pattern: startStep is the enable checkbox, startStep_value is the actual number, and the pack only sends the number when the toggle is on. Leave the toggle off and the request omits the field entirely, letting the model use its default. That's a deliberate design across this pack - nothing is silently sent with a wrong default.
Wiring it in
The output is refiner, a single (non-stackable) object. Wire it into an image model node's refiner socket alongside your prompt and dimensions. Chain it with the other builders as you like - refiner and LoRA and ControlNet all coexist on the same model node.
Install and setup
Standard for this 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
Restart, then drop in a Runware API key - Settings → Runware API key, RUNWARE_API_KEY, or runware auth login. Nothing is downloaded locally; the refiner model runs on Runware's hardware and you pay per run (the node title bar shows each run's cost). Two-pass generation costs roughly double a single pass, so it's worth a quick A/B before you leave it on for a whole batch.
Troubleshooting
- No visible difference - check when the refiner is taking over. A
startStepPercentageof 99 means the refiner barely does anything; a very early switch can also fight the base model. Try 70–85. - Toggle on but no value sent - the gate pattern means the value widget only goes out when the toggle is on. Make sure you flipped
startStepPercentage, not just changed the number. - Socket missing - not every model exposes
refiner. Video and audio models won't have it; stick to the image models.
It's one of those nodes that looks trivial - a dropdown and two toggles - but it's the entire two-pass refinement pipeline in a box, and the only moving part (when to switch) is exactly the knob you'd tune locally.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Refiner model identifier. | |
| startStepopt | BOOLEAN | false | Enable to set startStep. Off uses the model's default. |
| startStep_valueopt | INT | 1 | Absolute step number to switch from the base model to the refiner. |
| startStepPercentageopt | BOOLEAN | false | Enable to set startStepPercentage. Off uses the model's default. |
| startStepPercentage_valueopt | INT | 11–99 | Percentage of total steps at which to switch from the base model to the refiner. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| refiner | RUNWARE_REFINER | — |