Empty Image Node
It returns None. That's the entire node.
- empty_image
Let's not bury the lede: this node returns None. A Python None. That's it. It has one optional input called description that does literally nothing except sit there as a label, and one output named empty_image that is the empty image of the title.
The pack README talks it up - "multiple output modes, empty tensors, placeholder images, dynamic typing" - but the actual source is six lines: return (None,). So lower your expectations accordingly.
When you'd actually use it
As useless as it sounds, there's a niche. In ComfyUI, conditional routing is done with nodes that pick between branches, and some switch/cast nodes let you wire a "no image" path. If a downstream node is written to tolerate None (usually a custom node with its own null-checking, not the core image nodes), this gives you a clean placeholder for the dead branch - the workflow stays connected and the routing node gets its None instead of an error or a fake image.
Core ComfyUI image consumers like VAE Decode or Save Image will just throw if you hand them None, so don't wire this into those expecting a blank canvas. If you need an actual blank image, you want a solid-color generator or Empty Latent Image (which, confusingly, makes a real tensor) - not this.
Mechanism and honest verdict
It outputs IMAGE type, but the value is genuinely None. That's the whole mechanism. If your workflow needs it, you'll know it - you'll have a custom node that explicitly expects None somewhere. If you don't, you almost certainly don't need this node at all. It's a stub, dressed up by an over-enthusiastic README.
Installing
It's part of the ZMG pack. ComfyUI Manager → search "ZMG" / "ComfyUI-ZMG-Nodes", or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/vanche1212/ComfyUI-ZMG-Nodes
cd ComfyUI-ZMG-Nodes
pip install -r requirements.txt
Restart ComfyUI. You'll find it under ZMGNodes/utils in the node menu. No dependencies beyond what the pack already pulls in - for this one, effectively none.
It's a one-trick pony, but at least the trick is honest once you read the source. Just don't expect the README's grand claims to be true - they aren't.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| descriptionopt | STRING | 空图像占位符 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| empty_image | IMAGE | — |