π CR Hires Fix Process Switch
Flip between latent and image upscale
- latent_upscale
- image_upscale
- LATENT
- STRING
Hi-res fix is the two-pass move behind most good high-resolution outputs: generate at the model's native size, then upscale and run a second low-denoise pass to add coherent detail. There are two ways to do that middle upscale - in latent space or as a pixel/image upscale - and they trade off differently. CR Hires Fix Process Switch lets you wire both paths into one graph and flip between them with a single widget, instead of rebuilding your workflow every time you want to compare.
It's a process-switch utility in Comfyroll Studio, the workflow-glue pack from Suzie1 and RockOfFire. It's routing logic, not the upscaler itself - the actual upscaling still happens in whatever nodes you feed it.
Latent vs image upscale, quickly
A latent upscale resizes the latent before the second pass; it tends to add and change more detail, which can be great or can drift from the original. A pixel upscale enlarges the decoded image (often with a model upscaler) and stays more faithful to what you had. Neither is "correct" - you pick per image, and this switch is what makes picking painless. Keep the second-pass denoise moderate (roughly 0.3β0.5); above that the composition starts changing rather than sharpening.
The inputs and outputs that matter
Input- the selector, eitherlatent_upscaleorimage_upscale. This chooses which branch passes through.latent_upscale/image_upscale- the two optional branches you route in. Note a quirk worth knowing: in this node both are typed LATENT, so you're switching between two latent streams (the two hi-res-fix routes you've built), and the node outputs a single LATENT to your second-pass sampler. There's also a STRING output that reports the choice.
Installing it
ComfyUI Manager β search Comfyroll Studio β install β restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes
then restart. No downloads beyond the repo.
Common issues
Selected branch isn't connected. The switch only passes what you wired - if Input points at a branch you left empty, nothing comes through. Connect the route you're selecting.
Expecting it to do the upscaling. It doesn't. It's a toggle between two paths you build with upscale nodes; the detail work lives there.
Second pass changes the image too much. That's denoise, not the switch - pull the second-pass denoise down toward 0.3β0.4 to preserve the original composition.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| Input | COMBO | 2 options: latent_upscale, image_upscale | |
| latent_upscaleopt | LATENT | β | |
| image_upscaleopt | LATENT | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | β |
| STRING | STRING | β |