StableCascade_SuperResolutionControlnet
The Stable Cascade super-res node that upsizes nothing (and nobody uses)
- image
- vae
- controlnet_input
- stage_c
- stage_b
Let's get the awkward truth out of the way: this node has zero impressions on comfy.icu, zero community workflows, and even its name oversells it. StableCascade_SuperResolutionControlnet doesn't upscale anything. It's the prep half of the official Stable Cascade super-resolution ControlNet - the part that turns your low-res image into the conditioning that controlnet expects, and hands you the blank latent canvases to draw the upscaled result on.
If you're not already running Stable Cascade, this is a museum piece. If you are, it's genuinely useful - and it's the only node in ComfyUI's experimental/stable cascade category.
What it's for
Stable Cascade is Stability AI's Würstchen-architecture pipeline: a Stage C that generates in a heavily compressed latent, then a Stage B that refines, then a VAE decode. The community loved its prompt adherence and speed for about four months in 2024 - then SD3 was announced, Flux landed, and everyone moved on. This node arrived in that narrow window (ComfyUI, March 2024, marked _for_testing), as a helper for the official super-resolution ControlNet from the stabilityai/stable-cascade repo.
That controlnet is a generative upscaler in the KB's taxonomy: not "more pixels" but "more detail," a model that invents plausible texture conditioned on your source. It's so unconditional that the official recipe runs Stage C at CFG 1.0 and Stage B at 1.1 - the prompt barely matters. What guides it is the image you feed in.
How it works
The mechanism is four lines of Python, and it's worth understanding them because they explain every gotcha:
controlnet_input- your image VAE-encoded with the Stage C VAE, channels moved last. This is the exact form the super-res controlnet'sSREffnetFilterexpects. Note the type: it's labeled IMAGE, but it's a latent wearing an image's badge. Don't plug it into a VAE Decode or an image viewer expecting pixels.stage_c- a tensor of zeros atheight // 16,width // 16(16 channels).stage_b- a tensor of zeros atheight // 2,width // 2(4 channels).
The intended flow: encode your low-res image here, feed controlnet_input to the controlnet as its conditioning, then sample the empty stage_c latent with the Stage C model, feed that through StableCascade_StageB_Conditioning, sample stage_b with Stage B, and decode.
The inputs that matter
Just two, both required. image is your low-res source. vae is the Stable Cascade Stage A VAE - the effnet-based encoder, dropped in models/vae/ as stage_a.safetensors. There's no second VAE for this; it's the same one the rest of the Cascade pipeline uses.
You'll also need the sibling model files: stage_c and stage_b checkpoints in models/checkpoints/, and controlnet/super_resolution.safetensors from stabilityai/stable-cascade on Hugging Face into models/controlnet/.
Where people get burned
The hardcoded dims. Stage C in Stable Cascade normally runs at ~42.67x compression; Stage B at 4x. This node emits //16 and //2 - sizes that only line up if you're doing a clean 2x upscale at 32x compression, which nothing else in the pipeline assumes. Deviate from that and you're chasing shape-mismatch errors. It's the tell that this node was experimental and never fully finished.
The bigger trap is expecting it to be more than it is. There's no dedicated core node to apply a Stable Cascade controlnet - you're wiring the encoded latent through the standard ControlNet apply path, and the pieces don't click together as cleanly as the built-in SD/Flux ones. People asked how to get the super-res controlnet working at all in early 2024 and mostly got shrugs. And like every generative upscaler, it rewrites detail - a face you want to recognize should get its own pass.
Honestly? If you want a model to invent detail into a soft image, SeedVR2 or SUPIR are better places to be in 2026. Reach for this only if you're already committed to Stable Cascade and want its official 2x refiner. As historical relics go, it's an interesting one - but it earns its "experimental" tag.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| vae | VAE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| controlnet_input | IMAGE | — |
| stage_c | LATENT | — |
| stage_b | LATENT | — |