Telegram Auto Workflow Report
A Telegram report that fills itself in (when the saver cooperates)
- filenames
- filenames
- message_preview
Telegram Workflow Report, the other node in this pack, wants you to wire in the prompt, the model, the seed, the LoRAs, the whole laundry list. Telegram Auto Workflow Report is the lazy sibling: you connect VHS_FILENAMES from VideoHelperSuite's Video Combine, and it digs the generation details out of the saved files itself. One wire in, a finished video plus metadata in your Telegram chat, nothing else to fill in.
VideoHelperSuite Video Combine → Telegram Auto Workflow Report
It's the same upload machinery as its manual cousin - caption, optional detail reply, optional JSON attachment, same send_as and message_mode options. The difference is where the metadata comes from: nothing is typed in, because the node tries to read what upstream already saved.
How it hunts for metadata
The trick is that ComfyUI's whole sharing culture leans on metadata riding inside the output file - a saved PNG carries the full workflow and prompt as text chunks, and dragging it back onto the canvas rebuilds the graph. This node reuses exactly that property. For each path in the VHS_FILENAMES tuple it checks a small chain of candidates:
- the output file itself, if it's a PNG or WebP with embedded ComfyUI metadata,
- a companion
.jsonfile with the same base name, - a companion
.pngor.webpwith embedded metadata.
From whatever it finds, it walks the saved prompt graph to the sampler node and pulls seed, steps, cfg, sampler, and scheduler; it follows the wire links back to resolve the positive and negative prompt text; and it extracts model names, LoRA names and strengths, plus width, height, frames, and FPS. If only a UI-format workflow is available, it falls back to scanning nodes for anything that looks like prompt text.
That's a genuinely clever bit of plumbing, and it has one honest caveat the author states plainly: automatic extraction only works if the upstream saver wrote the metadata in the first place. Videos are the problem. An .mp4 from Video Combine has no PNG text chunks to read, so the auto node is depending on a companion JSON or preview PNG having been saved alongside it. Some savers do that, most bare Video Combine setups don't - which is exactly why the README tells you to switch to the manual node when the report comes back missing important details.
The inputs
It's a tiny surface compared to the manual node:
filenames(required) - theVHS_FILENAMESfrom Video Combine.enabled(required) -falsebuilds the preview without uploading.title- an optional label; if left empty the caption falls back to the first 140 characters of the extracted prompt.extra_notes- a free-text field appended to the report.
Plus the three enums the pack shares everywhere: send_as (auto/video/photo/document), message_mode (caption_only / caption_and_reply / caption_reply_and_json), and failure_mode (warn / raise).
Outputs are the same pair as its sibling: filenames passed through untouched so your graph stays chainable, and message_preview - a STRING showing the caption, follow-up messages, and files it would send. Set enabled = false, run once, and read that preview before you let it loose on a real chat.
Install and setup
Same story as the whole pack. Via ComfyUI Manager, search "tgBridge", or:
cd ComfyUI/custom_nodes
git clone https://github.com/blkot/ComfyUI-tgBridge
cd ComfyUI-tgBridge
pip install -r requirements.txt
Restart ComfyUI; the nodes land under the Telegram category. Dependencies are just Pillow (for reading embedded PNG/WebP metadata) and requests - no model files, nothing heavy.
You need a bot from BotFather, the bot added to your target chat, and its numeric chat ID. Keep them out of workflow JSON via environment variables:
export COMFY_TG_BOT_TOKEN="123456:ABC..."
export COMFY_TG_CHAT_ID="-1001234567890"
Forum topic? Add export COMFY_TG_MESSAGE_THREAD_ID="7". A git-ignored config/telegram.json in the pack folder also works; env vars take precedence.
Where to use it
This is the node for a personal, working Wan pipeline where you've confirmed the saver writes metadata and you just want "clip plus prompt in my pocket" with zero wiring. The moment a report comes back thin, or you need a field to always appear regardless of what the saver did, stop fighting it - the manual Telegram Workflow Report with explicit wiring is the reliable answer. The auto node is a convenience, not a contract.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| filenames | VHS_FILENAMES | — | |
| enabled | BOOLEAN | true | — |
| titleopt | STRING | — | |
| extra_notesopt | STRING | — | |
| send_asopt | COMBO | auto | 4 options: auto, video, photo, document |
| message_modeopt | COMBO | caption_and_reply | 3 options: caption_only, caption_and_reply, caption_reply_and_json |
| failure_modeopt | COMBO | warn | 2 options: warn, raise |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| filenames | VHS_FILENAMES | — |
| message_preview | STRING | — |