GUI - Photo User Inputs
One pair of dials so your photo workflow has a single place to set size
- photo_width
- photo_height
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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 3000100–3000 | — |
| height | INT | 3000100–3000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| photo_width | INT | — |
| photo_height | INT | — |