Nodes/comfyui-superside-nodes/Superside Crystal Upscaler (portrait detail)
ComfyUI Node

Superside Crystal Upscaler (portrait detail)

The upscaler for portraits that sits between inpaint and resize — not a generic 2x

By Superside·Created about a month ago·Updated 3 days ago· 1
Superside Crystal Upscaler (portrait detail)
  • image
  • image
  • info
api_key
scale_factor2.0
creativity0.00
output_formatpng

There are two different jobs hiding under the word "upscale," and the KB's advice is to decide which one you have before you install anything. "More pixels" is a resize - Lanczos or an ESRGAN model, instant, free, can't hallucinate. "More detail" is a generative pass - a model inventing detail that was never there. This node is firmly the second kind, and it's specialized: it runs Clarity AI's Crystal upscaler on fal (fal-ai/crystal-upscaler), a portrait- and facial-detail-focused upscaler, and it exists to solve a specific pipeline problem rather than to be your general 4x upscaler.

The pipeline problem, stated plainly by the pack's own source: the generative inpaint node this is meant to follow (the Z-Image Turbo inpaint, used for re-skin work) has a real ceiling around ~2048px on its longest edge. Ask the generator for a bigger image and you don't get more detail - the endpoint silently falls back to a fixed square. So once generation is at that ceiling, "more detail" can't come from the generator; it has to come from a dedicated upscale pass on the result. That's this node's job: it sits after the generative inpaint and before you resize back to the original resolution, adding a portrait-aware detail jump (2x by default) so the final plain Lanczos stretch back to the true original covers a smaller gap and looks far sharper than a single ~2.3x interpolation would.

Inputs are image and api_key, with three optional knobs:

  • scale_factor - 1 to 4, default 2. How much to upscale before the final resize-to-original step. 2 is the sensible default; going to 4 is where you pay more and start to invite artifacts.
  • creativity - 0 to 1, default 0. How much the upscaler is allowed to invent vs. stay literal. At 0 it's a faithful detail restorer; as you raise it, it enhances more aggressively and starts rewriting texture. For faces, the default is where most people want to stay.
  • output_format - png or jpg.

Outputs are image (IMAGE) and info (STRING, the fal result URL).

The honest framing on when to use it: this is a face/portrait-detail upscaler, not a general-purpose one, and it's an API call (metered fal credits, your image leaves the machine). If you're upscaling a landscape or a clean product shot where the detail is already there, you're better off with a free local ESRGAN - the KB's table has your back there. This node earns its keep in exactly the pipeline it was built for: portrait re-skin/retouch work where you generated at ~2K, want real added facial detail, and don't want the final resize to your original high-res file to look soft. Community signal on "Crystal upscaler" is almost nonexistent - nobody's trading tips about it - which matches its role as a production-internal tool made public.

Install - ComfyUI Manager (search "comfyui-superside-nodes") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes
pip install -r requirements.txt

Restart ComfyUI, find it under Superside. Paste your fal key into api_key (blank falls back to FAL_KEY, both blank errors). No model files to download - the pack's only real dependency is fal-client.

CategorySuperside

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
api_keySTRING
scale_factoroptFLOAT2.01–4How much to upscale before the final resize-to-original-size step.
creativityoptFLOAT0.000–1How much the upscaler is allowed to invent/enhance detail vs. stay literal.
output_formatoptCOMBOpng2 options: png, jpg

Outputs (2)

NameTypeDescription
imageIMAGE
infoSTRING