Nodes/ComfyUI-EasyTgUploader/Easy Telegram Uploader
ComfyUI Node

Easy Telegram Uploader

Easy Telegram Uploader

By LineSeaFood·Created 9 months ago·Updated 9 months ago· 0
Easy Telegram Uploader
  • image
  • VHS_FILENAMES
    bot_token
    chat_id0

    Picture this: you're running a long batch or a slow video render on your rig, and you're in another room - or out of the house entirely. ComfyUI finishes, and the result just sits there until you walk back. Easy Telegram Uploader is the fix: a terminal node that takes your final image or video and DMs it to your phone the moment it's done, no API key, no account, no file server. It's a tiny one-node pack, and for "I want to see the render before I get home" it does exactly one job and does it fine.

    How it works

    The name is slightly misleading - there's no upload service in the middle. The node is just a Telegram Bot API client: it POSTs your image to https://api.telegram.org/bot<your-token>/sendPhoto or your video to /sendVideo, with your chat_id, and Telegram's own servers do the delivery to whatever device is logged in. The only dependency is requests. No models, no torch, no heavy install - the torch/numpy/PIL conversions it does at runtime are all things ComfyUI already ships.

    It's an output node (OUTPUT_NODE = True), so it has no output sockets and it's meant to sit at the end of your graph. It runs every time the graph runs, and it logs its whole life story in Chinese to your console - verbose, but genuinely useful when something fails.

    The inputs that matter

    Only two required, both dead simple:

    • bot_token (STRING) - your bot's token from @BotFather (/newbot creates one). Yes, you need to make a bot first; it takes two minutes and costs nothing.
    • chat_id (INT) - the Telegram user ID you're sending to.

    Then the optional part, which is where the node earns its keep:

    • image (IMAGE) - wire in any image output. Batches are handled: each frame in the batch is sent as its own photo.
    • VHS_FILENAMES - this is Video Helper Suite's file-names output. If you render video with VHS, drag its VHS_FILENAMES socket in and the node picks the first file ending in -audio.mp4, falling back to plain .mp4. It deliberately prefers the muxed-with-audio version, which is the right instinct for a video you're about to watch on a phone.

    Send both at once if you like - it'll fire the images first, then the video.

    Install

    Via ComfyUI Manager (search "EasyTgUploader"), or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/LineSeaFood/ComfyUI-EasyTgUploader
    cd ComfyUI-EasyTgUploader
    pip install -r requirements.txt   # just "requests"
    

    Then restart ComfyUI. That's the entire setup - no model downloads, no config file. Find it in the node menu under its own EasyTgUploader category as "Easy Telegram Uploader".

    Where people get burned

    • The chat_id trap. The schema hard-caps chat_id at min: 0, and the node refuses anything ≤ 0. That works for your personal user ID - but group chats and channels use negative IDs, so you can't DM a group with this node, no matter how hard you squint. To find your own ID: message your bot once, then hit https://api.telegram.org/bot<token>/getUpdates in a browser and read message.from.id out of the JSON.
    • Video hits a 50MB wall. Telegram's Bot API tops out at 50MB per video via sendVideo, and the node enforces it with a hard error. A long or high-bitrate render will bounce; trim or re-encode before expecting it through.
    • The token lives in the workflow. This is the one thing the KB's API-node security frame warns about that actually applies here: your bot token is stored in the node field, which means it's in your workflow JSON. Export or share that file and your token leaks. Don't put a token you can't afford to lose in a workflow you share - and if one ever leaks, /revoke it at BotFather and generate a new one. A bot token isn't a model API key, but treat it the same way.

    Verdict

    It's not a slick node - no captions, no keyboard, no retry logic, and the 50MB cap rules out big videos. But for "render finished, notify me," it's the simplest thing that works, and it pairs naturally with VHS. If you want remote control of ComfyUI from Telegram (prompting, queueing, checking status), that's a different, bigger project. This one just talks, and sometimes that's all you need.

    CategoryEasyTgUploader

    Inputs (4)

    NameTypeDefaultDescription
    bot_tokenSTRING
    chat_idINT00–999999999999
    imageoptIMAGE
    VHS_FILENAMESoptVHS_FILENAMES

    Outputs (0)

    No outputs