Clarity
Runware's Own Upscaler, Prompt Included
- image
- image
Most upscalers are dumb enlargers - more pixels, no new information. Clarity is not that. It's Runware's own hosted upscale model, and it sits in the "more detail" camp from the KB's upscaling taxonomy: it regenerates with guidance, which means it can sharpen, add texture, and hallucinate detail that was never in the source. And because it's Runware's own model, it's the one node in this pack where the settings are unapologetically diffusion-shaped - there's a positivePrompt, a CFG scale, a scheduler, and even a ControlNet weight, because the source image is treated as a guide the model upscales around, not a bitmap it resizes.
How it works
The input image becomes the ControlNet guide for the upscale pass. settings.controlNetWeight (default 1, range −4 to +4) sets how hard the model clings to that guide - 0 means no influence, higher means stricter adherence to the original, negative steers away from it. settings.strength (default 0.8) sets how much of the transformation happens at all; lower values keep the output closer to the input. That's the whole balancing act: controlNetWeight holds the structure, strength holds the resemblance, and the prompt nudges what detail gets invented.
The inputs that matter
- image (required) - the thing to upscale.
- upscaleFactor -
(default)or2. A 2x is the only explicit enlargement; the "default" lets the model pick. - settings.controlNetWeight - the guide-grip knob described above. The one you'll actually tune.
- settings.strength - transformation intensity, default 0.8.
- settings.positivePrompt / settings.negativePrompt - steer the detail pass. "Sharpen details, clean skin, crisp edges" beats leaving it blank; the negative prompt is where you discourage artifacts. (Ignored when guidance is effectively disabled - CFGScale ≤ 1.)
- settings.CFGScale (toggle + value) and settings.steps (toggle + value) - the diffusion knobs, gated behind toggles in this pack's usual pattern. Leave off for the model defaults unless you know why you're overriding them.
- settings.seed (toggle + value) - lock the upscale so the invented detail is reproducible.
- settings.scheduler - the full 76-option scheduler list,
(default)being the sensible choice. - outputFormat (JPG/PNG/WEBP), outputQuality (20–99), ttl - delivery details.
Wiring it up
Output is image (IMAGE) into any preview/save node. It composes well as a final pass: generate at low res, wire into Clarity, and let the guided regeneration add the detail that a plain resize never could.
Install and setup
Standard pack install: ComfyUI Manager → "Runware" → install → restart, or clone plus pip install -r ComfyUI-Runware/requirements.txt (runware-sdk, pillow, soundfile). API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login, and funded credits - the ~$20 minimum top-up with a card on file is the recurring community complaint, and generative upscaling is a per-run cost rather than a free local op.
Troubleshooting
- Result looks smoothed-out or unrelated - check
controlNetWeightandstrength. Too little controlNetWeight and the guide is abandoned; too little strength and nothing happens. The KB's upscaling essay warns that generative upscalers get unfairly judged on a misconfiguration; tune before you judge. - Faces changed - expected behavior for "more detail" upscaling; every generative rung rewrites identity. If the face must survive, this is the wrong tool, or give the face its own pass.
- Detail invention where you wanted fidelity - drop the positive prompt to empty and lower strength.
Clarity is the "I want it sharper and I'm willing to let a model invent the sharpness" node. For the other camp - "I just want more pixels, exactly as they are" - a dumb enlarger is still the right call, and this isn't it.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| upscaleFactoropt | COMBO | (default) | Factor by which to upscale the generated image. A value of 2 doubles width and height. |
| settings.CFGScaleopt | BOOLEAN | false | Enable to set settings.CFGScale. Off uses the model's default. |
| settings.CFGScale_valueopt | FLOAT | 0.00 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| settings.controlNetWeightopt | FLOAT | 1.00-4–4 | Strength of the ControlNet influence. A value of 0 means no influence. Higher values increase the influence, and negative values can be used to steer away from the guide image. |
| settings.negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| settings.positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| settings.scheduleropt | COMBO | (default) | Scheduler to use for the diffusion process. |
| settings.seedopt | BOOLEAN | false | Enable to set settings.seed. Off uses the model's default. |
| settings.seed_valueopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| settings.stepsopt | BOOLEAN | false | Enable to set settings.steps. Off uses the model's default. |
| settings.steps_valueopt | INT | 1 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| settings.strengthopt | FLOAT | 0.800–1 | Strength of the transformation. Lower values result in more influence from the original input. |
| 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 | — |