EBU Scaling Resolution
A resolution picker that does the upscale math for you
- width
- height
- upscaled_width
- upscaled_height
- upscale_by
- upscaled_resolution_string
EBU Scaling Resolution is the centerpiece of the EBU Workflow pack, and it solves a genuinely annoying problem: picking a sane resolution that (a) respects an aspect ratio, and (b) is already scaled for the upscale pass you're about to run. Instead of typing "2048x1152" into a latent node and hoping, you pick a ratio, pick a size, set a multiplier, and the node hands you the target dimensions plus the upscaled ones.
Diffusion models have a hard native-resolution ceiling - push past it and you get twin torsos - so the standard move is generate at native, then climb with an upscaler. This node is built for exactly that: it gives you a native size to generate at, and the scaled size to upscale to, in one shot.
The inputs that matter
- active_aspect_ratio - a dropdown of 16:9, 16:10, 3:2, 4:3, 5:4, 6:5, 1:1, or Other. Each ratio exposes its own resolution preset dropdown (dozens of entries, from small 512s up to 2560+), so you pick the native size from the ratio's list.
- other_width / other_height - used only when active_aspect_ratio is "Other". Custom dims, stepped in multiples of 8.
- mode - Landscape or Profile. Profile just swaps width and height, so you never have to maintain a separate portrait list.
- upscale_by - the multiplier (default 1.5, up to 10). This is what drives the scaled outputs.
How it works
Pick your base resolution, multiply both sides by upscale_by, and round each up to the nearest multiple of eight. That rounding is the quietly important part: latents live on an 8×8 grid, and a non-multiple-of-8 target means the VAE encoder has to pad things awkwardly downstream. Rounding up to 8 keeps every downstream node happy.
Outputs: width, height (the native dims), upscaled_width, upscaled_height (the scaled dims), upscale_by (echoed back), and upscaled_resolution_string (e.g. "2048x1152") for anything that wants a text form.
Where it fits
This is the front half of a classic tiled-upscale pipeline. The pack's own README frames it as a companion to EBU Scaling Tile and Ultimate SD Upscale: use this node to fix your target resolution, hand the scaled dimensions to the tile node, and it computes tile sizes for you. The whole chain turns "upscale this to 2x at 16:9" into three wired-up nodes instead of a spreadsheet session.
A note on defaults: upscale_by starts at 1.5, which is a gentle default for SDXL-era generation. If you're upscaling for print or 4K, you'll be cranking that higher - and remembering that a bigger multiplier doesn't mean more detail, it means more pixels for whatever upscaler model you're feeding.
Installing
Part of the EBU Workflow pack - no dependencies beyond Python's standard library, no model downloads. ComfyUI Manager (search "EBU Workflow"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/burnsbert/ComfyUI-EBU-Workflow
then restart ComfyUI.
Gotchas
- The per-ratio preset lists are fixed and hand-maintained; don't expect every arbitrary resolution to be there. That's what "Other" is for.
- "Profile" mode swaps after scaling, so the multiple-of-8 rounding still applies - you just get the portrait orientation of the same numbers.
- Everything is integer math on your side, so the
upscaled_resolution_stringalways matches the two scaled INT outputs. No rounding drift to debug.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| active_aspect_ratio | COMBO | 8 options: 16:9, 16:10, 3:2, 4:3, 5:4, 6:5, +2 | |
| 16:9 | COMBO | 19 options: 640x360, 960x540, 1024x576, 1088x612, 1152x648, 1216x684, +13 | |
| 16:10 | COMBO | 22 options: 640x400, 704x440, 768x480, 832x520, 896x560, 960x600, +16 | |
| 3:2 | COMBO | 14 options: 768x512, 832x554, 896x597, 960x640, 1024x682, 1088x725, +8 | |
| 4:3 | COMBO | 16 options: 640x480, 704x528, 768x576, 832x624, 896x672, 960x720, +10 | |
| 5:4 | COMBO | 16 options: 640x512, 704x564, 768x615, 832x667, 896x718, 960x770, +10 | |
| 6:5 | COMBO | 14 options: 768x640, 832x693, 896x746, 960x800, 1024x853, 1088x906, +8 | |
| 1:1 | COMBO | 18 options: 512x512, 576x576, 640x640, 704x704, 768x768, 832x832, +12 | |
| other_width | INT | 102464–8192 | — |
| other_height | INT | 102464–8192 | — |
| mode | COMBO | Landscape | 2 options: Landscape, Profile |
| upscale_by | FLOAT | 1.501–10 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |
| upscaled_width | INT | — |
| upscaled_height | INT | — |
| upscale_by | FLOAT | — |
| upscaled_resolution_string | STRING | — |