Nodes/EBU Workflow/EBU Scaling Resolution
ComfyUI Node

EBU Scaling Resolution

A resolution picker that does the upscale math for you

By burnsbert·Created about a year ago·Updated 12 months ago· 0
EBU Scaling Resolution
    • width
    • height
    • upscaled_width
    • upscaled_height
    • upscale_by
    • upscaled_resolution_string
    active_aspect_ratio
    16:9
    16:10
    3:2
    4:3
    5:4
    6:5
    1:1
    other_width1024
    other_height1024
    modeLandscape
    upscale_by1.50

    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_string always matches the two scaled INT outputs. No rounding drift to debug.
    CategoryResolution

    Inputs (12)

    NameTypeDefaultDescription
    active_aspect_ratioCOMBO8 options: 16:9, 16:10, 3:2, 4:3, 5:4, 6:5, +2
    16:9COMBO19 options: 640x360, 960x540, 1024x576, 1088x612, 1152x648, 1216x684, +13
    16:10COMBO22 options: 640x400, 704x440, 768x480, 832x520, 896x560, 960x600, +16
    3:2COMBO14 options: 768x512, 832x554, 896x597, 960x640, 1024x682, 1088x725, +8
    4:3COMBO16 options: 640x480, 704x528, 768x576, 832x624, 896x672, 960x720, +10
    5:4COMBO16 options: 640x512, 704x564, 768x615, 832x667, 896x718, 960x770, +10
    6:5COMBO14 options: 768x640, 832x693, 896x746, 960x800, 1024x853, 1088x906, +8
    1:1COMBO18 options: 512x512, 576x576, 640x640, 704x704, 768x768, 832x832, +12
    other_widthINT102464–8192
    other_heightINT102464–8192
    modeCOMBOLandscape2 options: Landscape, Profile
    upscale_byFLOAT1.501–10

    Outputs (6)

    NameTypeDescription
    widthINT
    heightINT
    upscaled_widthINT
    upscaled_heightINT
    upscale_byFLOAT
    upscaled_resolution_stringSTRING