ComfyUI Extension: ComfyUI Telegram Suite
Implement Telegram into your ComfyUI workflows.
Custom Nodes (0)
README
ComfyUI Telegram Suite
Implement Telegram into your ComfyUI workflows.
Nodes
The main nodes:
<img src="https://github.com/SwissCore92/comfyui-telegram-suite/blob/master/screenshots/main_nodes.png" alt="screenshots/main_nodes.png">
You can configure it via: ComfyUI/user/default/telegram-suite/config.json
- If the
IMAGEinput contains multiple images andgroupis set toTrue, they’ll be sent as a media group. - If
groupis False, the images will be sent individually. - If
send_as_fileisTrue, the images will be sent as files instead of inline media.
</details> <details><summary>Send Video </summary> This node sends a video file.Note:
Only themessage(_id)of the last sent image will be returned to the output.
- The video input must be of type
VHS_FILENAMES(e.g., from theFilenamesoutput of the Video Combine node in the Video Helper Suite).
The video can be sent as a regular video, an animation, or a file.
</details> <details><summary>Send Audio </summary> This node sends an audio file.- Can be sent as an audio message, voice message, or file.
⚠️ This is not an output node, so the trigger passthrough is required for this node to work.
</details>Additional nodes include message editing, experimental features, and various type converters (see Triggers).
Installation
Note: Requires
ffmpeg!
Step 1:
Install via ComfyUI Manager (and skip to Step 2) or execute the following commands:
⚠️ Ensure your ComfyUI virtual environment is activated and you're in the
ComfyUI/custom_nodesdirectory.
git clone https://github.com/SwissCore92/comfyui-telegram-suite.git
cd comfyui-telegram-suite
pip install -r requirements.txt
Step 2:
Restart ComfyUI.
Step 3:
Add your bot(s) and chat(s) to the config file.
- Open:
ComfyUI/user/default/telegram-suite/config.json. - Add your bot token(s) under
"bots". - Add your chat ID(s) under
"chats".
Example:
{
"bots": {
"MyCoolBot": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",
"MyOtherCoolBot": "654321:CBA-DEF1234ghIkl-zyx57W2v1u123ew11"
},
"chats": {
"MyPrivateChat": 567891234,
"MyGroupChat": -1012345678
}
}
Use any string as the key for
"bots"and "chats"— I like to use the Telegram @usernamefor clarity.
Step 4:
Restart ComfyUI again — and you're good to go!
Triggers
The optional trigger inputs/outputs are used to enforce execution order in your workflow.
ComfyUI runs by evaluating output nodes and working backward to resolve dependencies. I like to think of it as the inputs "pulling" the values they need from connected outputs.
The trigger passthrough ensures a node executes at a specific point during the workflow. Here's an example using F5-TTS:
<img src="https://github.com/SwissCore92/comfyui-telegram-suite/blob/master/screenshots/trigger_example_tts.png" alt="screenshots/trigger_example_tts.png">This flow sends the recording_voice chat action before generating the audio with the F5-TTS node. Once audio is generated, it's sent to the chat.
The seed is required by the
F5-TTS Audionode, so theSend Chat Actionnode must execute first.
You can use almost any type as a trigger. However, since ComfyUI has strict type checking, you'll need to:
- Convert the signal to ANY before feeding it into the trigger input.
- Convert it back to the original type after the trigger output.
Yes, it's a bit clunky — but it’s the only reliable way I’ve found to control execution order. That’s also why the converter category has so many nodes.
To Do
- [ ] Improve documentation
- [x] Add
Edit Message Videonode - [x] Add
Edit Message Audionode - [ ] Add tooltips and descriptions.
- [ ] Wait for feedback to refine this list