Size Selector
Ten sizes, one dial — the Size Selector with the 0,0 trap
- width
- height
If you flip between a few resolutions - say, 848x480 for quick Wan clips and 1920x1080 when you want to punish your GPU - you end up retyping width and height into EmptyLatentImage over and over. Spin256SizeSelector is the node that retypes it for you. It's ten preset slots behind one index dial, and it's the most genuinely useful of the three nodes in the spin256-comfyui pack.
The name undersells the mechanics. It doesn't pick a size from a dropdown; it parses text. Each slot is a "width,height" string, and the node splits on the comma, strips whitespace, and feeds two separate INT outputs (width and height) out the right side. You wire those straight into an EmptyLatentImage (or EmptySD3LatentImage - the SD3-style latent that Wan and friends want) and you're done.
Three slots come preloaded, and the defaults tell you exactly who this was built for: 848,480, 1280,720, 1920,1080. 848x480 is the workhorse resolution for Hunyuan Video and Wan short clips on consumer cards; the other two are the "let's see if this actually renders" options. That's the whole video-use story in three slots.
The inputs that matter:
- index - the dial. An INT from 0 to 9 that picks which slot wins.
- size_0 … size_9 - the slots themselves, plain text strings like
1024,1024.
Outputs are width and height, both INT, and that's the whole interface. Dead simple.
Now the traps, because there are two and one of them is silent. First, a malformed slot doesn't error - the source just catches the parse failure and returns 1280, 720. Type 1024x1024 (an x instead of a comma) and instead of an error you get 1280x720 out, which is confusing enough to waste an afternoon. Second, and worse: slots 3 through 9 default to 0,0. Dial to index 4 without filling it and you'll happily output a 0x0 latent size, which will fail downstream with an error that says nothing about this node. Treat "10 slots" as "7 slots you must fill yourself, plus 3 that came ready."
The one genuinely nice trick: wire the same index value into this and the pack's Int/String selectors, and one number becomes a whole preset profile - resolution, seed, and prompt all swap together. That's where a bare selector node earns its keep.
Installing is the same as for the whole pack, and it's painless:
cd ComfyUI/custom_nodes
git clone https://github.com/Spin256/spin256-comfyui
Restart ComfyUI and you'll find the three nodes under the Spin256 category. Or use ComfyUI Manager → Install Custom Nodes and search "spin256". There are zero dependencies - no pip installs, no model downloads, no API keys, nothing. The whole thing is a couple of hundred lines of pure Python.
Honest verdict: this is a tiny utility with a real job and no community footprint to speak of. If you already run rgthree-comfy, its Any Switch does the same job with more flexibility, but it drags a big pack along with it. For a zero-dependency "just pick a size" node, this is clean and it works - just don't leave those 0,0 slots one turn away from your dial.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 00–9 | — |
| size_0 | STRING | 848,480 | — |
| size_1 | STRING | 1280,720 | — |
| size_2 | STRING | 1920,1080 | — |
| size_3 | STRING | 0,0 | — |
| size_4 | STRING | 0,0 | — |
| size_5 | STRING | 0,0 | — |
| size_6 | STRING | 0,0 | — |
| size_7 | STRING | 0,0 | — |
| size_8 | STRING | 0,0 | — |
| size_9 | STRING | 0,0 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |