- Rename class to DropSendSetupNode - Rename class to DropSendAutoUploaderNode - Update NODE_CLASS_MAPPINGS keys for consistency - Update print statement prefixes to [DropSend Setup] - Use get_encryption_key() for consistent key lookup BREAKING: Existing workflows using old node names will need to re-add nodes
ComfyUI DropSend Node
Automatically upload your ComfyUI output files to Dropbox with optional encryption. Set it and forget it!
Prefer Google Drive? Check out DriveSend Node
🔄 How It Works
┌─────────────────────────────────────────────────────────────────────────────┐
│ CLOUD (RunPod, etc.) │
│ │
│ ComfyUI generates files ──→ DropSend Node ──→ Uploads to Dropbox │
│ (png, mp4, etc.) │ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ Encryption OPTIONAL │ │
│ │ ☐ OFF: file.png │ │
│ │ ☑ ON: file.png.enc │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
☁️ DROPBOX
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ YOUR LOCAL MACHINE │
│ │
│ Dropbox syncs/downloads ──→ If encrypted: Run decrypt script (local) │
│ ──→ file.png (viewable!) │
│ │
│ If not encrypted: Ready to use! │
└─────────────────────────────────────────────────────────────────────────────┘
Encryption is completely optional. Leave enable_encryption off and files upload directly as-is.
📤 Features
DropSend AutoUploader Node
- Real-time folder monitoring with optional subfolder support
- Supports:
.png,.jpg,.jpeg,.webp,.gif,.mp4,.avi,.mov - Optional AES-128 encryption before upload
- SHA256 checksum verification
- Queue system for reliable uploads
DropSend Setup Node
- Generates Dropbox refresh token from App Key/Secret
- Outputs credentials for RunPod environment variables
- Optional encryption key generation
Decryption Scripts (Local Use)
- Cross-platform scripts for macOS, Windows, and Linux
- Decrypt
.encfiles after downloading from Dropbox
💾 Installation
cd ComfyUI/custom_nodes/
git clone https://github.com/machinepainting/ComfyUI_DropSendNode.git
pip install -r ComfyUI_DropSendNode/requirements.txt
Restart ComfyUI after installation.
🔧 Dropbox App Setup
- Login to Dropbox
- Go to Dropbox Developers → Click Create Apps
- Select Scoped Access → App Folder (recommended)
- Name your app → Click Create app
- Go to Permissions tab and enable:
account_info.write,account_info.readfiles.metadata.write,files.metadata.readfiles.content.write,files.content.read
- Click Submit to save permissions
- Go to Settings tab → Note your App Key and App Secret
Note: If you can't select App Folder, create an
/Apps/folder in your Dropbox root first.
🏃♂️ DropSend Setup (RunPod & Cloud Users)
Step 1: Run Setup Node
-
Add DropSend Setup Node to your workflow
-
Configure:
app_key: Paste your App Keyapp_secret: Paste your App Secretauth_code: Leave blank (for now)dropbox_dest_folder:/Apps/ComfyUI_Output_Files(or your choice)storage_method: display_onlyencryption_key_method: Display Only (or off if not using encryption)
-
Run the node → Two Dropbox popups appear
-
Accept permissions → Copy the authorization code
-
Paste code into
auth_codefield -
Run the node again
Step 2: Copy Credentials from Console
The console displays:
DROPBOX_APP_KEY: XXXXXXXXXX
DROPBOX_APP_SECRET: XXXXXXXXXX
DROPBOX_REFRESH_TOKEN: XXXXXXXXXX
COMFYUI_ENCRYPTION_KEY=XXXXXXXXXX (if encryption enabled)
Copy only the value after the : or = sign (not the variable name).
Step 3: Create RunPod Secrets
- Go to RunPod.io → Click Secrets in sidebar
- Create these secrets:
| Secret Name | Secret Value |
|---|---|
DROPBOX_APP_KEY |
Your app key |
DROPBOX_APP_SECRET |
Your app secret |
DROPBOX_REFRESH_TOKEN |
Your refresh token |
COMFYUI_ENCRYPTION_KEY |
Your encryption key (if using encryption) |
Step 4: Add Environment Variables to Pod
- Edit your pod template → Environment Variables dropdown
- Add each variable:
| Key | Value |
|---|---|
DROPBOX_APP_KEY |
{{ RUNPOD_SECRET_DROPBOX_APP_KEY }} |
DROPBOX_APP_SECRET |
{{ RUNPOD_SECRET_DROPBOX_APP_SECRET }} |
DROPBOX_REFRESH_TOKEN |
{{ RUNPOD_SECRET_DROPBOX_REFRESH_TOKEN }} |
COMFYUI_ENCRYPTION_KEY |
{{ RUNPOD_SECRET_COMFYUI_ENCRYPTION_KEY }} |
- Click Set Overrides → Deploy
Step 5: Test Upload
- Add DropSend AutoUploader Node to your workflow
- Set
run_processto True - Run a workflow that generates an image
- Check your Dropbox folder!
💻 DropSend Setup (Local Users)
-
Add DropSend Setup Node to your workflow
-
Configure:
app_key: Paste your App Keyapp_secret: Paste your App Secretauth_code: Leave blank (for now)dropbox_dest_folder:/Apps/ComfyUI_Output_Filesstorage_method: env_fileencryption_key_method: save to .env (or off)
-
Run the node → Accept Dropbox permissions → Copy auth code
-
Paste code into
auth_codefield → Run again -
Restart ComfyUI to load the
.envfile -
Add DropSend AutoUploader Node and run!
🔐 Decryption Scripts (Local Use Only)
The /scripts/ folder contains scripts to decrypt .enc files on your local machine.
⚠️ LOCAL USE ONLY — Run these after downloading encrypted files from Dropbox.
Prerequisites
pip install cryptography
Store Your Encryption Key
macOS (Keychain):
- Open Keychain Access → File → New Password Item
- Name:
ComfyUI_Encryption_Key, Account:ComfyUI, Password: your key
Windows (Environment Variable):
- Win + R →
sysdm.cpl→ Advanced → Environment Variables - New User Variable:
COMFYUI_ENCRYPTION_KEY= your key
Linux (Environment Variable):
echo 'export COMFYUI_ENCRYPTION_KEY="your_key_here"' >> ~/.bashrc
source ~/.bashrc
Run Decryption
cd ComfyUI/custom_nodes/ComfyUI_DropSendNode/scripts
# macOS
./decrypt_folder_mac.sh
# Windows
python decrypt_folder_win.py
# Linux
./decrypt_folder_linux.sh
# Cross-platform
python decrypt_folder.py
🛠️ Troubleshooting
Files Not Uploading
- Check console for error messages
- Verify
run_processis True - Confirm Dropbox folder starts with
/Apps/
Encryption Key Not Found
- Verify secret name is exactly
COMFYUI_ENCRYPTION_KEY - Check environment variable is set in pod template
- Restart pod after adding environment variables
Authorization Failed
- Re-run setup with
reconnectset to true - Generate a new auth code
⚠️ Security Best Practices
- Never commit your
.envfile — Add to.gitignore - Backup your encryption key — Without it, encrypted files cannot be recovered
- Use secure key storage — Prefer Keychain/Environment Variables over plain text
🧪 Tested On
- macOS 13+ (Ventura, Sonoma)
- Python 3.10 / 3.11
- ComfyUI (Feb 2026)
- RunPod GPU instances
📁 Repository Structure
ComfyUI_DropSendNode/
├── __init__.py
├── dropsend_uploader_node.py
├── dropsend_setup_node.py
├── dropbox_upload.py
├── dropbox_auth_manager.py
├── encrypt_file.py
├── monitor_output.py
├── oauth_handler.py
├── requirements.txt
├── README.md
├── .gitignore
└── scripts/
├── decrypt_folder.py
├── decrypt_folder_mac.sh
├── encrypt_folder_mac.sh
├── decrypt_folder_win.py
├── encrypt_folder_win.py
├── decrypt_folder_linux.sh
└── encrypt_folder_linux.sh
License
MIT
Shout-out to Adam for his contributions to this node build!
