IMAGE To Any π½
Pass an IMAGE through as ANY without touching a pixel
- IMAGE
- any
Every render in ComfyUI eventually becomes an IMAGE tensor - and sometimes that tensor needs to travel through a socket typed * (any) instead of IMAGE. This node does that one job: IMAGE in, the identical tensor out, declared as any. No resizing, no format conversion, no color space meddling. The pixels are untouched.
It's part of the ComfyUI Telegram Suite pack's converter family, which pairs an XToAny node for every common type (INT, FLOAT, STRING, DICT, MODEL, CLIP, VAE, IMAGE, AUDIO, LATENT) with its AnyToX reverse.
Why it exists
The pack's trigger mechanism - inputs/outputs that force execution order - accepts any type, and before version 1.0.4 you had to cast a signal to ANY before feeding a trigger and convert it back afterward. That's the origin of the whole converter category. Since 1.0.4 the cast is unnecessary for triggers (typed signals feed in directly), and the changelog keeps these nodes for backward compatibility.
The genuine remaining use is narrower: a third-party node with a real * input that won't accept your typed IMAGE output. ComfyUI won't coerce types across sockets, and IMAGEToAny is the minimal bridge.
How it works
A bare pass-through:
def convert(self, IMAGE):
return (IMAGE,)
The tensor is passed by reference - no copy, no decode, no re-encode. The IMAGE input is a forceInput socket (wire in your render), and the output any is type *. Same tensor, different label.
Inputs and outputs
IMAGE(required) - the image tensor to pass through.any(output, type*) - the same tensor, typed as any.
Installation
Pack-wide:
cd ComfyUI/custom_nodes
git clone https://github.com/SwissCore92/comfyui-telegram-suite.git
cd comfyui-telegram-suite
pip install -r requirements.txt
or install "ComfyUI Telegram Suite" via ComfyUI Manager and restart.
Notes
Two things worth knowing. First, this is not the node for the pack's own image sending - that's Send Image(s) π½, which takes IMAGE directly. This converter is a type bridge, not a messaging node. Second, if the only reason you added it was a trigger chain, you can drop it on a fresh graph; since 1.0.4 triggers accept typed values directly.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| IMAGE | IMAGE | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | β |