# ComfyUI-DiscordSend










**Send your AI-generated images and videos directly to Discord from ComfyUI!**
[Features](#-features) • [Installation](#-installation) • [Settings](#-settings) • [Technical Details](#-technical-details) • [Contributing](#-contributing) • [Changelog](#-changelog)
---
## What's New in v1.1.0 (January 10, 2026)
### 🚀 Core Updates
- **Structured Logging**: Implemented comprehensive logging for better debugging and stability.
- **Testing Suite**: Added initial test framework to ensure reliability.
- **Enhanced Stability**: Various improvements to image and video handling logic.
📄 See [CHANGELOG.md](CHANGELOG.md) for the complete version history.
---
## ✨ Features
🖼️ Image Node: DiscordSendSaveImage
- Save images in various formats (PNG, JPEG, WebP)
- Send images directly to Discord via webhooks
- Include workflow JSON for easy reproduction
- Customizable Discord messages with prompt information
- Advanced file naming with date, time, and dimension options
- High-quality image export with configurable compression settings
- Built-in preview functionality within ComfyUI interface
- Batch grouping support (up to 9 images per Discord message)
- Unique identifier support to prevent conflicts between users
|
|
|
🎬 Video Node: DiscordSendSaveVideo
- Convert image sequences to videos in multiple formats
- Support for GIF, MP4, WebM, and professional formats like ProRes
- Configurable frame rates from 0.1 to 120 fps
- Extra-slow frame rates for photo slideshows
- Add audio to your videos
- Special effects like ping-pong looping
- Discord integration for sharing videos
- Include workflow data and video information in messages
|
🔄 GitHub Integration
- Save Discord CDN URLs to a GitHub repository
- Automatically update existing URL collections with new uploads
- Formatted markdown files with timestamps and organized links
- Perfect for building media galleries or documentation
- Comprehensive security measures for GitHub tokens
|
|
## 📥 Installation
### Option 1: Using ComfyUI Manager
1. Install [ComfyUI Manager](https://github.com/ltdrdata/ComfyUI-Manager) if you don't have it already
2. Open ComfyUI, go to the Manager tab
3. Search for "ComfyUI-DiscordSend" and install
### Option 2: Manual Installation
```bash
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/AEmotionStudio/ComfyUI-DiscordSend
cd ComfyUI-DiscordSend
pip install -r requirements.txt # Installs the minimal requirements (only the requests library)
```
> [!IMPORTANT]
> - For video functionality, ffmpeg must be installed on your system. The node will automatically detect its presence.
> - This extension has minimal dependencies, requiring only the 'requests' library which is included in the requirements.txt file.
## ⚙️ Settings
### Discord Webhook Setup
Step 1: Access Webhook Settings
- In Discord, go to your server settings → Integrations → Webhooks
|
|
Step 2: Create and Copy Webhook
- Create a New Webhook and copy the Webhook URL
|
|
Step 3: Configure the Node
- Paste this URL into the "webhook_url" field in the DiscordSend nodes
|
|
🖼️ Image Node Options (Click to Expand)
| Option | Description |
|--------|-------------|
| **Required Parameters** ||
| `images` | The images to save and/or send to Discord |
| `filename_prefix` | Prefix for saved files (default: "ComfyUI-Image") |
| `overwrite_last` | Enable to overwrite last image instead of incrementing filenames |
| **File Options** ||
| `file_format` | PNG, JPEG, or WebP |
| `quality` | 1-100 for JPEG/WebP formats |
| `lossless` | Use lossless compression when available |
| `save_output` | Whether to save images to disk |
| `show_preview` | Show preview in ComfyUI interface |
| **Filename Options** ||
| `add_date` | Add current date to filenames |
| `add_time` | Add current time to filenames |
| `add_dimensions` | Add width and height to filenames |
| `resize_to_power_of_2` | Resize to nearest power of 2 dimensions |
| `resize_method` | Method for resizing (nearest, bilinear, etc.) |
| **Discord Options** ||
| `send_to_discord` | Enable Discord webhook integration |
| `webhook_url` | Discord webhook URL |
| `discord_message` | Text message to accompany images |
| `include_prompts_in_message` | Include generation prompts in Discord message |
| `include_format_in_message` | Include image format details in message |
| `group_batched_images` | Group batch images into one Discord message (max 9 images) |
| `send_workflow_json` | Send workflow JSON for reproducibility |
| **GitHub Options** ||
| `save_cdn_urls` | Save the Discord CDN URLs as a text file and attach to Discord message |
| `github_cdn_update` | Update a GitHub repository with Discord CDN URLs |
| `github_repo` | GitHub repository in format "username/repo" |
| `github_token` | GitHub personal access token (with repo permissions) |
| `github_file_path` | Path to file in repository to update (default: "cdn_urls.md") |
🎬 Video Node Options (Click to Expand)
| Option | Description |
|--------|-------------|
| **Required Parameters** ||
| `images` | Image sequence to convert to video |
| `filename_prefix` | Prefix for saved files (default: "ComfyUI-Video") |
| `overwrite_last` | Enable to overwrite last video instead of incrementing filenames |
| **Video Options** ||
| `format` | Various formats including GIF, MP4, WebM, ProRes |
| `frame_rate` | Frames per second (0.1-120), values below 1 make images stay longer |
| `quality` | Quality setting for compression (1-100) |
| `loop_count` | Number of loops for GIF (0=infinite) |
| `lossless` | Use lossless compression when available |
| `pingpong` | Create forward-backward looping effect |
| `save_output` | Whether to save video to disk |
| `audio` | Optional audio to embed in video |
| **Filename Options** ||
| `add_date` | Add current date to filenames |
| `add_time` | Add current time to filenames (DO NOT DISABLE for Discord uploads - see known issues) |
| `add_dimensions` | Add width and height to filenames |
| **Discord Options** ||
| `send_to_discord` | Enable Discord webhook integration |
| `webhook_url` | Discord webhook URL |
| `discord_message` | Text message to accompany videos |
| `include_prompts_in_message` | Include generation prompts in Discord message |
| `include_video_info` | Include video format details in message (disable if you don't want time/format info) |
| `send_workflow_json` | Send workflow JSON for reproducibility |
| **GitHub Options** ||
| `save_cdn_urls` | Save the Discord CDN URLs as a text file and attach to Discord message |
| `github_cdn_update` | Update a GitHub repository with Discord CDN URLs |
| `github_repo` | GitHub repository in format "username/repo" |
| `github_token` | GitHub personal access token (with repo permissions) |
| `github_file_path` | Path to file in repository to update (default: "cdn_urls.md") |
## 🔧 Technical Details
| Component | Description |
|-----------|-------------|
| **Video Processing** | Discord reprocesses all uploaded videos. Quality settings may be modified, and videos compressed. |
| **Max Resolution** | Typically limited to 1080p by Discord. |
| **Max Bitrate** | Reduced based on server boost level. |
| **Image Limit** | Max 9 images per message/gallery. Images >10MB may be refused. |
### Troubleshooting
1. **Videos not playing in Discord**: Try h264-MP4 format, reduce quality, enable `add_time`.
2. **"ffmpeg not found"**: Install system ffmpeg and restart ComfyUI.
3. **Webhook errors**: Verify URL validity and channel existence.
4. **UUID Conflicts**: Ensure unique output directories for multiple users.
5. **GitHub Issues**: Check token permissions (`public_repo`) and repo access.
> [!WARNING]
> **Critical Issue**: Do NOT disable `add_time` for videos sent to Discord. They may appear as a single frame due to Discord's processing. Disable `include_video_info` instead if you want to hide details.
## 🤝 Contributing
Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to get started. Whether it's bug reports, feature suggestions, or pull requests, your help is appreciated.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📜 License
This project is licensed under the [GPL-3.0 License](LICENSE.md) - see the LICENSE file for details.
---