🔄 智绘_运行节点
One image in, a 4×4 tile batch out — the grid-split workhorse
- image
- 输出图片
- POSITIONS_1
- ORIGINAL_SIZE_2
- GRID_SIZE_3
- IMAGE_4
This one's easy to misread from the name. ZH_RunNode ("🔄 智绘_运行节点") isn't a "run anything" node - it's a grid splitter with a specific job: take one image, slice it into a 4×4 grid of 16 tiles, and hand the tiles out as a batch with the geometry you need to reassemble them later. The source is upfront about the lineage: it's adapted from lg_lock's "run node" and exists to feed tiled/batch processing plugins that want a per-tile batch.
It lives in ComfyUI-ZhiHui, a Chinese-language utility pack you won't find mentioned anywhere in the English community. The 4×4 grid is hardcoded - that's the first thing to know, because there's no widget to change it.
How it works
It takes your input image, divides width and height by 4, and crops out 16 tiles directly from the original (no upscaling - each tile is exactly a quarter of the source per side). Those 16 tiles are concatenated into one batch, which is what downstream batch-processing nodes iterate over. Because it crops without resampling, the tiles are always a faithful partition of the original; if your image isn't evenly divisible by 4, the last row and column simply come up short of a full tile.
The outputs are the odd part, so read them carefully:
- 输出图片 - the 16-tile batch (IMAGE). This is the real output.
- POSITIONS_1 - the per-tile crop boxes
(left, upper, right, lower), useful for reassembling or for nodes that want to know where each tile lives. - ORIGINAL_SIZE_2 - the input image's dimensions.
- GRID_SIZE_3 -
(4, 4). - IMAGE_4 - the same 16-tile batch again, output under a different name for the sake of plugin compatibility.
So the practical flow is: feed it one image, process the tiles as a batch through whatever node you're testing, and use the positions to map results back onto the original.
The inputs that matter
- image - a single IMAGE to split.
- seed - an INT that mostly exists as the
IS_CHANGEDkey: the node re-executes when the seed changes, which is the hook that makes it play nicely in batch loops that advance a seed per step.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/zhuyungen/ComfyUI-ZhiHui.git
Restart ComfyUI. No models, base deps only. ComfyUI Manager search "ComfyUI-ZhiHui" also works.
Where people get burned
Three things. First, the grid is fixed at 4×4 - if you want 2×2 or 8×8 tiling, this isn't the node (a purpose-built tiling pack will serve you better). Second, the tiles are crops, not scaled-up chunks: each tile is a quarter resolution of the source, so if your downstream expects full-res tiles you're losing detail by design. And third, the duplicate outputs (输出图片 and IMAGE_4 are the same tensor) plus the three *-typed metadata outputs can look alarming in the node graph - you almost certainly only need to wire 输出图片. Ignore the rest unless a plugin you're using explicitly asks for them.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | 画布图像(输入图片) | |
| seed | INT | 00–18446744073709550000 | 随机种子 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| 输出图片 | IMAGE | — |
| POSITIONS_1 | * | — |
| ORIGINAL_SIZE_2 | * | — |
| GRID_SIZE_3 | * | — |
| IMAGE_4 | IMAGE | — |