Nodes/TKNodes/GUI - Photo User Inputs
ComfyUI Node

GUI - Photo User Inputs

One pair of dials so your photo workflow has a single place to set size

By trashkollector·Created about a year ago·Updated a day ago· 1
GUI - Photo User Inputs
    • photo_width
    • photo_height
    width3000
    height3000

    This is a boring node on purpose. GUI - Photo User Inputs is just two sliders - width and height - that hand you two integers: photo_width and photo_height. No loading, no math, no processing. It's a front panel for your workflow, the place where you (or someone you share the graph with) sets the output size of a photo job in one obvious spot instead of digging through a chain of primitive nodes.

    How it works

    Exactly as much as it looks like it works. Two INT inputs, defaults of 3000×3000, stepped at 64 (so values stay on the multiples that resolution-sensitive models and upscalers like), clamped 100–3000. The function returns them straight through. The "GUI" in the name is the whole point: instead of a bare text input or a hardcoded value buried mid-graph, you get labeled, stepped sliders at the top of your workflow that a collaborator can find without a map.

    Where it slots in

    Wire photo_width and photo_height into your empty-latent, resolution calculator, or any node that takes width/height. It's the photo-tuned sibling of the pack's TKVideoUserInputs (which also takes fps and duration), so the pattern is consistent across both: set your dimensions once at the front of the graph, reference them everywhere downstream. If you're sharing a workflow with non-technical users, this is the difference between "which number do I change?" and "the two sliders at the top."

    The inputs that matter

    Just width and height. That's the entire surface area - and that's the feature. The 64-step means you can't hit an arbitrary value like 2999 by accident, which quietly prevents a whole class of "why is my latent a weird size" problems in photo pipelines that assume multiples.

    Common issues

    There isn't much to break with a passthrough node, so the issues are more about expectation: 3000×3000 is a big default (a 9MP latent), and it's a square default - if your workflow is 3:2 or 4:5 portraits you'll be moving both sliders every time. Some people find the step of 64 awkward for photo aspect ratios and wish it were 32 like the video node; it's a cosmetic gripe, not a functional one. The real "gotcha" is remembering this node only outputs dimensions - it doesn't encode anything or create a latent, so don't wire it directly into a model and expect output.

    Installing it

    Part of trashkollector/TKNodes ("ComfyUI Handy Nodes"). Install via ComfyUI Manager (search "Handy Nodes") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/trashkollector/TKNodes
    

    Restart, and it's under the TKNodes category. Zero dependencies - it's two sliders.

    CategoryTKNodes

    Inputs (2)

    NameTypeDefaultDescription
    widthINT3000100–3000
    heightINT3000100–3000

    Outputs (2)

    NameTypeDescription
    photo_widthINT
    photo_heightINT