Nodes/ComfyUI-API-DockerCPU/Replicate philz1337x/crystal-upscaler
ComfyUI Node

Replicate philz1337x/crystal-upscaler

The 'Clarity' upscaler lineage, as a Replicate API call

By trustypangolinΒ·Created 5 months agoΒ·Updated about a month agoΒ· 0
Replicate philz1337x/crystal-upscaler
  • IMAGE
  • IMAGE
  • API_JSON
β—„dry_runfalseβ–Ί
β—„force_rerunfalseβ–Ί
β—„scale_factor2.00β–Ί
β—„creativity0.00β–Ί
β—„output_formatpngβ–Ί

If you've been around the upscaling scene, the name philz1337x should ring a bell: that's the person behind Clarity Upscaler, the open-source stack the community built after "reverse-engineering" Magnific (the KB's upscaling essay tracks that whole saga). Crystal is the same lineage, served up on Replicate so you can use it without the 12GB of VRAM the local version wants. If you're on a CPU-only box running this pack, it's your way into that family of generative "more detail" upscalers.

Mechanically it's the standard Replicate node flow: your IMAGE tensor gets converted to a base64 data URI, shipped to philz1337x/crystal-upscaler, and the result comes back as an IMAGE tensor plus API_JSON (the payload that was sent). The inputs that matter:

  • scale_factor (default 2) - how much bigger. 2x is the sane default; going to 4x on this model is where things start getting expensive and a bit wobbly.
  • creativity (default 0, range 0–10) - the interesting knob. At 0 the model stays close to the source; crank it up and it invents detail. This is a generative upscaler, so "creativity" is really a dial for how much hallucination you'll tolerate.
  • output_format - png or jpg. PNG if you're going to keep editing; jpg if you just need the deliverable.

Plus the pack-wide dry_run (test for free, no API call) and force_rerun (ComfyUI caches outputs - flip this to force a real call).

Before you use it, internalize the three-jobs split from the upscaling KB essay, because this node is firmly in the wrong job for half its potential users:

  • More pixels (source already sharp) β†’ you don't want this, you want a plain ESRGAN or Lanczos upscale, which is free, instant, and can't invent anything.
  • More detail (soft, small, damaged) β†’ this is where Crystal lives. It'll add plausible texture and structure that was never there.
  • Faces β†’ every generative upscaling rung rewrites identity. The KB says it flat out: "a face you can recognise - give it its own pass." Don't run grandma's portrait through a high-creativity Crystal pass and expect grandma.

Set creativity to 0 for restoration work, nudge it up only when you're deliberately going for the "AI-enriched" look. Most of the disappointment with this model class comes from people running it at high creativity on already-clean images and calling the result "oversharpened" - it's doing what you asked.

Install is the usual pack routine - ComfyUI Manager, search ComfyUI-API-DockerCPU, or:

cd ComfyUI/custom_nodes
git clone https://github.com/trustypangolin/ComfyUI-API-DockerCPU
cd ComfyUI-API-DockerCPU
pip install -r requirements.txt

Set REPLICATE_API_TOKEN and restart. It's under 🎨 DockerCPU API/🎨 Replicate.

Real-world gotchas: this is a pay-per-call model, and high scale_factor + high creativity is the most expensive combination you can ask for, so dry-run your settings first. And don't be fooled into thinking because the node says "upscaler" it's interchangeable with the cheap pixel-upscaler rung - the cost profile and the output character are completely different. Crystal is for when you want the model to add something, not when you want a bigger copy.

Category🎨 DockerCPU API/🎨 Replicate

Inputs (6)

NameTypeDefaultDescription
dry_runBOOLEANfalseβ€”
force_rerunBOOLEANfalseβ€”
IMAGEIMAGEβ€”
scale_factoroptFLOAT2.00β€”
creativityoptFLOAT0.000–10β€”
output_formatoptCOMBOpng2 options: png, jpg

Outputs (2)

NameTypeDescription
IMAGEIMAGEβ€”
API_JSONSTRINGβ€”