FV Get Image Half Size
The node that halves your image for you
- image
- width
- height
FV Get Image Half Size does almost exactly what the name says: it looks at an image, and tells you the dimensions of a version half the size. Feed in a 1024×1024 image, get 512×512. Feed in a 1344×768, get back a width and height for a ~half-resolution render.
It doesn't resize the image - it's a measurement node. No image comes out; two integers do. So why have it? Because "half the size" is genuinely useful all over ComfyUI and slightly annoying to compute by hand. A hires-fix pass needs a latent at half the base resolution. A preview or denoising comparison wants the cheap half-size render first. A second pass that should render at a fraction of the first pass's dimensions needs those numbers derived from the actual source, not hardcoded. Hardcoding "512" works until you swap in a 1536-wide source, and then your "half size" is wrong. This node keeps the relationship honest: whatever comes in, half of it comes out.
How it works
The implementation has one quirk you should know about: it halves only the longer side, not both. If width >= height, width is halved (integer division, so 1025 becomes 512); otherwise height is. The other dimension is passed through unchanged.
So on a portrait 768×1344 image you get width 768, height 672 - the width untouched. That's a deliberate shape: it produces a landscape-ish half that keeps one dimension at full size. It's "half the image area," more or less, not "half in each dimension." For a true 50% width and height you'd want a proper resize node instead. Worth checking which behavior your workflow expects, because the results are different numbers.
Also note it reads only the first frame of a batch (image[0]) - if you feed it a multi-frame batch, you get the half-size of the first frame's dimensions, which is fine when the batch is uniform (usually the case) and a silent surprise if frames differ.
Inputs and outputs
- image (IMAGE) - the image to measure.
Outputs:
- width (INT)
- height (INT)
Wire these into an Empty Latent Image, a KSampler's dimensions, or a math node for further scaling.
Installing it
Ships in ComfyUI Fictiverse Nodes. ComfyUI Manager → search "ComfyUI Fictiverse Nodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Fictiverse/ComfyUI_Fictiverse
No dependencies, no models. Apache 2.0.
Common issues
Pack gotcha: ModuleNotFoundError: No module named 'custom_nodes.ComfyUI_Fictiverse' means the folder isn't named exactly ComfyUI_Fictiverse; rename and restart.
Node-specific, the trap is the half-the-longer-side behavior. If you wire the outputs into an Empty Latent Image expecting both dimensions halved, you'll get a differently-shaped result than you might have imagined. And because it's integer division, odd dimensions round down - a 513-wide source gives 256, not 256.5. For most purposes that's harmless (you're feeding latent-space integers anyway), but if you need exact proportions, double-check the math downstream.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |