SDXL Resolution Split
Turn a picked SDXL ratio into real width/height ints
- sdxl_resolution
- width
- height
If you've used SDXL Resolution Picker and then tried to plug its output straight into Empty Latent Image, you already know why this node exists: it just won't connect. SDXL Resolution Split is the adapter that turns the Picker's custom output type into the two plain integers everything else in ComfyUI actually expects.
What it is and why it exists
SDXL Resolution Picker outputs a custom SDXL_RESOLUTION type - a labeled value representing one of SDXL's 21 officially trained aspect ratios, not a width/height pair. That's a deliberate design choice (it keeps the picker's dropdown clean and self-contained), but it means you need a second step to get usable numbers. SDXL Resolution Split is that second step, and it shipped alongside the Picker in the same October 2023 batch of nodes - they were built as a pair from day one.
How it works
It takes the SDXL_RESOLUTION value, parses out the width and height baked into it, and emits them as two separate INT outputs. No math, no options, no surprises - pure plumbing.
Inputs and outputs
One input: sdxl_resolution, type SDXL_RESOLUTION - this only accepts the output of SDXL Resolution Picker (or anything else that happens to emit that same custom type). Two outputs: width and height, both plain INT, ready to wire into Empty Latent Image, a LatentUpscale, or anywhere else that wants dimensions as numbers.
Why the underlying ratios matter
SDXL was trained on a fixed grid of resolutions clustered around 1024×1024 - things like 1152×896, 1216×832, 1344×768, 1536×640, and their rotations, plus the intermediate steps that make up the Picker's full 21-entry list. Generate outside that grid and SDXL doesn't gracefully degrade - it tends to produce duplicated anatomy, stretched limbs, or tiled patterns, because you're asking it to draw a shape it was never actually trained on. That's the whole reason this two-node pair exists instead of a single freeform width/height widget: it nudges you toward staying on the grid.
Installing it
ComfyUI Manager: search "CrasH Utils". Manual:
cd ComfyUI/custom_nodes/
git clone https://github.com/chrish-slingshot/CrasHUtils.git
Restart ComfyUI. No dependencies.
Common issues
Can't wire SDXL Resolution Picker directly into Empty Latent Image. That's expected - the types don't match. This node is the required middle step; add it between them and connect its width/height outputs onward instead.
Only need width, or only height. That's fine - leave the other output disconnected. ComfyUI doesn't mind a dangling output on a node.
Getting an input-type error when connecting sdxl_resolution. Make sure the upstream node is actually SDXL Resolution Picker (or another node emitting the same SDXL_RESOLUTION type) - this input won't accept a plain string or a differently-typed resolution value from an unrelated node.
Used it on a non-SDXL checkpoint and results still look off. This whole pair is specifically for SDXL's trained grid. Flux tolerates a much wider resolution range, and SD 1.5's native size is 512×512 - plugging SDXL-specific ratios into either won't help, and may not match what those architectures actually expect.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| sdxl_resolution | SDXL_RESOLUTION | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |