Custom Resolution (full-pipe)
Drop a latent at whatever size you want into a full pipe
- full_pipe
- full_pipe
The pack's Base Node picks your resolution from a curated list of aspect ratios, which is fine until you need something off-menu - a 1080×1920 phone wallpaper, a banner, an exact dimension some other part of the workflow demands. Custom Resolution (full-pipe) is the escape hatch: give it a full_pipe, set width, height, and batch_size, and it writes an empty latent of exactly those dimensions into the pipe for the sampler to fill.
The mechanism is about as direct as it gets. It takes your width and height, divides by 8 to get the latent dimensions (latents are 8× smaller than pixels - that's the VAE's downscale factor), and creates a zeroed latent tensor of [batch, 4, h/8, w/8]. That latent goes into the pipe's latent slot, ready for a generation or img2img node to sample. Batch size of 2 means the sampler produces two images in one pass.
The inputs
width/height(defaults 832×1216, the SDXL portrait sweet spot). The node notes the step is 8, so you don't have to sweat divisibility - but keep both dimensions on a multiple of 8 anyway for the VAE's sake.batch_size(default 1) - how many images per run.
Output is the updated full_pipe.
When you'd reach for it
Two main cases. First, non-standard aspect ratios the preset list doesn't cover - tall character shots, wide landscapes, exact output sizes for a collage or a template. Second, programmatic sizes: because width and height are just integer inputs, you can wire them from a calculation node or an input on your workflow and drive the resolution dynamically. It pairs naturally with FullPipeOut if the rest of your graph needs the actual latent outside the pipe.
Installing it
In mudknight-utils - ComfyUI Manager (search comfyui-mudknight-utils) or:
cd ComfyUI/custom_nodes
git clone https://github.com/mudknight/comfyui-mudknight-utils
No extra dependencies.
Where people get burned
The honest caveat is resolution scaling: a 1080×1920 latent is 2MP, and SDXL-class models were trained around 1MP, so very large canvases can come out with duplicated or deformed anatomy - that's the community's well-documented "everything breaks past ~1MP" behavior, and the reason the pack's Base Node offers a scale multiplier for going beyond 1MP with a high-res fix in mind. Go big with this node and you may want a detail pass after. Also remember the node only creates the latent - it doesn't sample. If nothing downstream consumes the pipe's latent, you've built a very tidy tensor that goes nowhere.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| full_pipe | FULL_PIPE | — | |
| width | INT | 832 | — |
| height | INT | 1216 | — |
| batch_size | INT | 1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| full_pipe | FULL_PIPE | — |