Comflowy Clarity Upscale
A Magnific-style upscaler without the Magnific subscription
- image
- IMAGE
Clarity Upscale is the Comflowy pack's answer to Magnific - the paid, hyped AI upscaler that made "upscale with a 3x scale and a creativity slider" a whole product category. Comflowy explicitly frames it that way in the README, even linking a tweet from levelsio (the Indie Hackers guy) praising it. The pitch: you get the same "add detail that was never there" generative upscaling, but instead of a Magnific subscription you pay per image in Comflowy credits and it lives inside a ComfyUI workflow.
Important to be clear about what this does, because it's the thing that trips people up: this is not an ESRGAN "more pixels" upscaler. It's a generative restorer. It invents detail - skin texture, fabric weave, fine edges - which is great when your source is soft, and actively harmful when you needed the pixels preserved exactly. Per the upscaling taxonomy: more detail, not more pixels.
How it works
Standard FlowyApiNode pattern: your image is base64-encoded and POSTed to app.comflowy.com/api/open/v0/clarityupscaler with a long settings payload, the server runs the upscale, and the result comes back as an IMAGE tensor. Everything happens off-machine, so your VRAM never gets touched - you just need network and credits.
The inputs that matter
Clarity has a genuinely intimidating parameter list. Ignore most of it at first. The four that do the actual work:
- scale_factor - 1.0 to 4.0, default 2. How much bigger the output is.
- creativity - 0 to 1, default 0.35. How much invented detail the model is allowed to add. The README's guidance: try 0.3–0.9. Higher = more "wow" and more risk of it changing things.
- resemblance - 0 to 3, default 0.6. How hard it stays glued to the source. Try 0.3–1.6. This is the "does it still look like my image" knob.
- dynamic - 1 to 50, default 6. HDR-ish range/lighting handling. The README suggests 3–9.
The rest you can leave alone, but they exist for a reason:
- sd_model - picks the base model used during upscale:
juggernaut_reborn,epicrealism_naturalSinRC1VAE, orflat2DAnimerge_v45Sharp. This changes the output character dramatically - the anime model for flat/illustrated sources, realism models for photos. - handfix -
disabled,hands_only, orimage_and_hands. If hands are mutating, this is the knob. - pattern - toggles seamless tiling, for textures that need to loop.
- sharpen (0–10), num_inference_steps (default 18), scheduler (30 options, default DPM++ 3M SDE Karras), seed.
- downscaling + downscaling_resolution - downscale the source before upscaling. Sounds backwards, but for high-res but low-quality inputs it gives the model a sharper relative base to work from. The README recommends it.
Output is a single IMAGE.
Installing and what to expect
Install the whole pack via ComfyUI Manager (search "Comflowy") or git clone https://github.com/6174/comflowy-nodes into custom_nodes, restart, set your key with Comflowy Set API Key, and you're done. The only dependency is requests.
The gotchas:
- It costs credits per run. Generative upscaling is expensive on the server side, and it adds up fast if you batch.
- Results vary a lot with
sd_modelandscheduler. If your first upscale looks wrong, changing the base model changes more than any creativity tweak will. That's the "fiddly" part people hit. - It rewrites identity. Faces will be regenerated at high creativity. If the person has to stay recognizable, keep creativity low and resemblance high - and know that this is design, not a settings problem.
Honest take: if you already have SeedVR2 or SUPIR working locally, you don't need this - those are free and often better. Where this node shines is a one-off "make this photo look like a glossy print" job with zero setup, on any machine.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| scale_factor | FLOAT | 2.01–4 | — |
| dynamic | FLOAT | 6.01–50 | — |
| creativity | FLOAT | 0.350–1 | — |
| resemblance | FLOAT | 0.600–3 | — |
| tiling_width | COMBO | 112 | 16 options: 16, 32, 48, 64, 80, 96, +10 |
| tiling_height | COMBO | 144 | 16 options: 16, 32, 48, 64, 80, 96, +10 |
| num_inference_steps | INT | 181–100 | — |
| seed | INT | 13370–2147483647 | — |
| handfix | COMBO | disabled | 3 options: disabled, hands_only, image_and_hands |
| pattern | BOOLEAN | false | — |
| sharpen | FLOAT | 0.00–10 | — |
| downscaling | BOOLEAN | false | — |
| downscaling_resolution | INT | 768256–2048 | — |
| sd_model | COMBO | juggernaut_reborn.safetensors [338b85bc4f] | 3 options: epicrealism_naturalSinRC1VAE.safetensors [84d76a0328], juggernaut_reborn.safetensors [338b85bc4f], flat2DAnimerge_v45Sharp.safetensors |
| scheduler | COMBO | DPM++ 3M SDE Karras | 30 options: DPM++ 2M Karras, DPM++ SDE Karras, DPM++ 2M SDE Exponential, DPM++ 2M SDE Karras, Euler a, Euler, +24 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |