Extensions/ComfyUI Telegram Suite
ComfyUI Extension

ComfyUI Telegram Suite

Implement Telegram into your ComfyUI workflows.

By SwissCore92Β·Created about a year agoΒ·Updated about a month agoΒ· 9
SwissCore92/comfyui-telegram-suite
Nodes35
On cloudLocal install
CategoryTelegram Suite πŸ”½/converters, Telegram Suite πŸ”½/experimental
Stars9
Updatedabout a month ago

Nodes (35)

Any To AUDIO πŸ”½

The type adapter for audio-signal ordering

Telegram Suite πŸ”½/converters
Any To BOOLEAN πŸ”½

Relabel a signal so a flag port accepts it

Telegram Suite πŸ”½/converters
Any To CLIP πŸ”½

The type adapter for text-encoder plumbing

Telegram Suite πŸ”½/converters
Any To DICT πŸ”½

The converter that feeds Telegram API params

Telegram Suite πŸ”½/converters
Any To FLOAT πŸ”½

A type bridge, not a number converter

Telegram Suite πŸ”½/converters
Any To IMAGE πŸ”½

Relabel a signal so an image port accepts it

Telegram Suite πŸ”½/converters
Any To INT πŸ”½

The converter that restores a number after a trigger

Telegram Suite πŸ”½/converters
Any To LATENT πŸ”½

The type adapter for latent-space ordering

Telegram Suite πŸ”½/converters
Any To MODEL πŸ”½

Restore a model's type after a trigger

Telegram Suite πŸ”½/converters
Any To STRING πŸ”½

The type adapter you're most likely to actually use

Telegram Suite πŸ”½/converters
Any To VAE πŸ”½

The converter that just relabels

Telegram Suite πŸ”½/converters
API Method πŸ”½

Call any Telegram Bot API method from your workflow

Telegram Suite πŸ”½/experimental
AUDIO To Any πŸ”½

The legacy half of the audio converter pair

Telegram Suite πŸ”½/converters
BOOLEAN To Any πŸ”½

The converter the README says you no longer need

Telegram Suite πŸ”½/converters
CLIP To Any πŸ”½

Cast a CLIP model to ANY without touching a single weight

Telegram Suite πŸ”½/converters
DICT To Any πŸ”½

Cast a dict to ANY so it can flow into any wildcard socket

Telegram Suite πŸ”½/converters
Edit Message Audio πŸ”½

Swap the audio on a Telegram message without posting a new one

Telegram Suite πŸ”½/edit
Edit Message Caption πŸ”½

Rewrite the caption on a Telegram message you already sent

Telegram Suite πŸ”½/edit
Edit Message Image πŸ”½

Swap the image in a Telegram message without resending the whole thing

Telegram Suite πŸ”½/edit
Edit Message Text πŸ”½

Rewrite a Telegram message instead of spamming a new one

Telegram Suite πŸ”½/edit
Edit Message Video πŸ”½

Replace the video in a Telegram message after it's already sent

Telegram Suite πŸ”½/edit
FLOAT To Any πŸ”½

Cast a float to ANY β€” the two-second fix for stubborn sockets

Telegram Suite πŸ”½/converters
IMAGE To Any πŸ”½

Pass an IMAGE through as ANY without touching a pixel

Telegram Suite πŸ”½/converters
INT To Any πŸ”½

Cast an int to ANY when ComfyUI's type checker won't let it through

Telegram Suite πŸ”½/converters
LATENT To Any πŸ”½

Cast a latent to ANY without decoding a thing

Telegram Suite πŸ”½/converters
MODEL To Any πŸ”½

Pure relabel, zero model math

Telegram Suite πŸ”½/converters
Parse JSON πŸ”½

Turn a JSON string into a real dict inside a ComfyUI graph

Telegram Suite πŸ”½/experimental
Send Audio πŸ”½

Send TTS and audio straight to Telegram β€” voice notes included

Telegram Suite πŸ”½
Send Chat Action πŸ”½

Show 'typing…' in Telegram while your workflow grinds

Telegram Suite πŸ”½
Send Image(s) πŸ”½

Push your finished renders to Telegram β€” no more babysitting the queue

Telegram Suite πŸ”½
Send Message πŸ”½

Send a text message to your phone when the render finishes

Telegram Suite πŸ”½
Send Video πŸ”½

Ship your finished render straight to a Telegram chat

Telegram Suite πŸ”½
STRING To Any πŸ”½

Cast a string to ANY so it stops fighting ComfyUI's type checker

Telegram Suite πŸ”½/converters
Telegram Bot πŸ”½

The node that gives every other Telegram node a phone number

Telegram Suite πŸ”½
VAE To Any πŸ”½

Cast a VAE to ANY without loading or decoding anything

Telegram Suite πŸ”½/converters
Readme

ComfyUI Telegram Suite

version

Implement Telegram into your ComfyUI workflows.

Changelog

Nodes

The main nodes:
<img src="https://github.com/SwissCore92/comfyui-telegram-suite/blob/master/screenshots/main_nodes.png" alt="screenshots/main_nodes.png">

<details><summary>Telegram Bot </summary> This node loads your Telegram bot and (optionaly) sets a default chat.

You can configure it via: ComfyUI/user/default/telegram-suite/config.json

</details> <details><summary>Send Message </summary> This node just sends a simple text message. </details> <details><summary>Send Image(s) </summary> This node sends one or more (up to 10) images.
  • If the IMAGE input contains multiple images and group is set to True, they’ll be sent as a media group.
  • If group is False, the images will be sent individually.
  • If send_as_file is True, the images will be sent as files instead of inline media.

Note:
Only the message(_id) of the last sent image will be returned to the output.

</details> <details><summary>Send Video </summary> This node sends a video file.
  • The video input must be of type VHS_FILENAMES (e.g., from the Filenames output 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.
</details> <details><summary>Send Chat Action </summary> This node sends chat actions like β€œtyping...”, β€œuploading X...”, or β€œrecording X...”. </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_nodes directory.

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".
  • (Optional) Add your own telegram bot api url under "api_url".

Example:

{
    "bots": {
        "MyCoolBot": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",
        "MyOtherCoolBot": "654321:CBA-DEF1234ghIkl-zyx57W2v1u123ew11"
    },
    "chats": {
        "MyPrivateChat": 567891234,
        "MyGroupChat": -1012345678
    },
    "api_url": "http://localhost:8081"
}

Use any string as the key for "bots" and "chats" β€” I like to use the Telegram @username for 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 Audio node, so the Send Chat Action node 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.~~
    This step is no longer required. You can feed the trigger signal directly into the node now.
  • 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.

If you have Ideas how to solve the problem in a more elegant way, feel free to open a PR.

To Do

  • [ ] Improve documentation

  • [x] Add Edit Message Video node

  • [x] Add Edit Message Audio node

  • [x] Add Forum/Topics support

  • [x] Add tooltips and descriptions.

  • [ ] Add Rich Message support.

  • [ ] Wait for feedback to refine this list