Nodes/XFlow Resolution/XFlow Resolution
ComfyUI Node

XFlow Resolution

Prettier than typing numbers, still just width & height

By navalyalgam97·Created 2 months ago·Updated 2 months ago· 1
XFlow Resolution
    • width
    • height
    width1024
    height1024

    XFlow Resolution is a fancy front end for something ComfyUI already lets you do: type a width and a height into Empty Latent Image. So why bother? Because if you bounce between models, every architecture has a native resolution it was trained on, and getting that wrong is how you end up with stretched bodies, tiled patterns, and double heads. SDXL wants its specific trained ratios (1024x1024, 1152x896, 1216x832, 1344x768, 1536x640 and friends), Flux is happiest up near 1024+, and newer models just want you to stay in a megapixel band. Remembering all of that while editing a graph is annoying. This node is a 3x3 aspect-ratio grid plus a preset list that writes the numbers for you.

    The name is a bit grand - "production-ready, premium" is doing heavy lifting - but the honest description is that it's a well-built resolution picker. It's a UI-quality-of-life node, not a capability node. It doesn't do anything your graph couldn't do before; it makes changing resolutions take one click instead of two number fields.

    How it works

    The Python side is gloriously boring. XFlowResolution declares two INT inputs, width and height, and returns them right back out:

    • width: default 1024, min 64, max 8192, step 8
    • height: default 1024, min 64, max 8192, step 8
    • Outputs: width (INT) and height (INT)

    That's the whole backend. All the actual work - the grid, presets, search, favorites, keyboard nav - lives in a JavaScript overlay in the web/ directory, which is why the pack has zero Python dependencies. When you click a preset, the JS writes into the node's underlying width/height widgets, so the values stay synced to your saved workflow state. Clean design, honestly: no serialization bugs to hunt, because the graph state is just two integers.

    The preset grid covers the nine ratios people actually use - 1:1, 16:9, 9:16, 2:1, 3:2, 2:3, 4:3, 3:4, 4:5 - and each resolution shows its megapixel count, which is genuinely handy when you're budgeting VRAM. There's also a custom-ratio generator: give it 5:7 and it produces six resolutions at fixed area targets (0.25 MP up to 4 MP), snapped to multiples of 8. Favorites and recents persist in localStorage, so your go-to sizes survive restarts.

    The inputs that matter

    There are only two, and they're both optional in practice because the grid drives them. The width and height fields act as your manual override: type exactly what you want, or toggle the padlock to keep the aspect ratio locked while you nudge one dimension and let the other follow. Wire both outputs straight into anything that takes dimensions - Empty Latent Image, EmptySDXLImage, FluxLatentImage, or an upscale latent node.

    Install

    Three steps, no dependencies to download:

    cd ComfyUI/custom_nodes
    git clone https://github.com/navalyalgam97/comfyui-xflow-resolution.git
    

    Restart ComfyUI and search the node picker for "XFlow Resolution". Or, if you use ComfyUI Manager, search for "XFlow Resolution" there and install with one click. There are no model files and no heavy packages - the requirements file is literally a comment saying "there are no external python dependencies." It needs current ComfyUI and Python 3.11+, which you already have if you're running any recent workflow.

    Gotchas

    A few things bit me, so let me save you the trip:

    • Multiples of 8 isn't enough for Flux. The node snaps to multiples of 8, and the README frames that as "standard-compliant." It is not - for Flux and other newer architectures, the community standard is multiples of 64. The 1152x648 "Widescreen" preset, for instance, isn't divisible by 64. If you're on Flux, stick to the presets that are (1024x576, 1280x720, 1920x1080 all are) or type your own override and eyeball it.
    • The model compatibility badges are a lie. The README advertises auto-labels for SDXL/FLUX/WAN, but the shipped JS literally contains the comment // Render presets list (no badges, description labels stacked). Those badges don't exist yet. The megapixel labels do; trust those.
    • It's new and quiet. This pack has essentially zero community footprint - no forum threads, no shared-workflow buzz. That's fine for a tool this small, but it means no one's ironing out edge cases for you. Treat it as a convenience picker, not a workflow centerpiece.

    If you live in one aspect ratio all day, you don't need this. If you're constantly juggling portrait/landscape and model-specific sizes across three different architectures, it's a genuinely pleasant way to stop typing numbers.

    CategoryXFlow/Utilities

    Inputs (2)

    NameTypeDefaultDescription
    widthINT102464–8192
    heightINT102464–8192

    Outputs (2)

    NameTypeDescription
    widthINT
    heightINT