Automatically upload your ComfyUI output files to Dropbox with optional encryption. Set it and forget it!
Prefer Google Drive? Check out DriveSend Node
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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.
- 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
- Generates Dropbox refresh token from App Key/Secret
- Outputs credentials for RunPod environment variables
- Optional encryption key generation
- Cross-platform scripts for macOS, Windows, and Linux
- Decrypt
.encfiles after downloading from Dropbox
cd ComfyUI/custom_nodes/
git clone https://github.com/machinepainting/ComfyUI_DropSendNode.git
pip install -r ComfyUI_DropSendNode/requirements.txtRestart ComfyUI after installation.
- 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.
-
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
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).
- Go to RunPod.io β Click Secrets in sidebar
- Create these secrets (Make sure the name of the secret is EXACTLY as shown below):
| 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 (optional - only if using encryption) |
Creating a template saves your environment variables so you don't have to add them every time.
- Go to RunPod.io β Click My Templates in sidebar
- Click + New Template
- Configure your template settings (container image, GPU, etc.)
- Click Environment Variables dropdown
- Click + Add Environment Variable for each:
| Key | Value (click ποΈ and select secret) |
|---|---|
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 }} (optional) |
- Click Save Template
- When deploying a new pod, click Change Template β select your custom template. Done!
β οΈ Why this matters: If you skip creating a custom template, you'll have to manually add all 4 environment variables every single time you start a new pod. Save yourself the headache β make the template once and reuse it.
π‘ New to templates? Take a template you already use, copy its container/docker settings into a new custom template, add the environment variables above, and save. That's it.
Already have a pod running? Terminate it β deploy a new pod using your custom template. This is the cleanest way to pick up the new environment variables.
- Add DropSend AutoUploader Node to your workflow
- Set
run_processto True - Run a workflow that generates an image
- Check your Dropbox folder!
-
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!
The /scripts/ folder contains scripts to decrypt .enc files on your local machine.
β οΈ LOCAL USE ONLY β Run these after downloading encrypted files from Dropbox.
ONLY DECRYPT ONCE FILES HAVE BEEN MOVED TO YOUR LOCAL COMPUTER OR EXTERNAL HD. OTHERWISE IT DEFEATS THE PURPOSE OF ENCRYPTION BEFORE SENDING TO CLOUD STORAGE.
pip install cryptographymacOS (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 ~/.bashrcOnce your encrypted .enc files have been downloaded from the cloud, you can decrypt them locally using the platform-specific scripts provided in this repo.
-
Go to the
/scriptsfolder in this repository. -
Select your platform folder (
mac/,win/, orlinux/) and download the decrypt script for your OS. If you want to use the cross-platform Python version, grabdecrypt_folder.pyfrom the scripts root instead.Platform Folder Script macOS mac/decrypt_folder_mac.shWindows win/decrypt_folder_win.pyLinux linux/decrypt_folder_linux.shCross-platform scripts root decrypt_folder.py -
Download the script and place it in a convenient location on your computer. Your user root/home directory is recommended for easy terminal access (e.g.
~/on macOS/Linux orC:\Users\YourName\on Windows). -
Open a terminal and navigate to the folder where you saved the script:
# macOS / Linux β example if saved to home directory cd ~/ # Windows (Command Prompt) β example if saved to user folder cd C:\Users\YourName\
-
Run the decryption script:
# macOS ./decrypt_folder_mac.sh # Windows python decrypt_folder_win.py # Linux ./decrypt_folder_linux.sh # Cross-platform (Python) python decrypt_folder.py
-
When prompted, drag in (or paste the path to) the folder containing your
.encfiles. -
The script will decrypt your files. Once complete, you'll be asked if you'd like to move the original
.encfiles to a separate folder for cleanup. Note: the script will never delete your files β you can remove the.encoriginals manually at your own discretion.
That's it β your decrypted files are now available locally on your machine, off the cloud and ready to use.
π‘ Manual Encryption: Each platform folder also contains an encryption script if you ever want to encrypt files manually outside of ComfyUI β for example, encrypting media before uploading it yourself. These are separate from the node's built-in encryption, which handles everything automatically during upload.
- Check console for error messages
- Verify
run_processis True - Confirm Dropbox folder starts with
/Apps/
- Verify secret name is exactly
COMFYUI_ENCRYPTION_KEY - Check environment variable is set in pod template
- Restart pod after adding environment variables
- Re-run setup with
reconnectset to true - Generate a new auth code
- 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
- macOS 13+ (Ventura, Sonoma)
- Python 3.10 / 3.11
- ComfyUI (Feb 2026)
- RunPod GPU instances
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
βββ mac/
β βββ decrypt_folder_mac.sh
β βββ encrypt_folder_mac.sh
βββ win/
β βββ decrypt_folder_win.py
β βββ encrypt_folder_win.py
βββ linux/
βββ decrypt_folder_linux.sh
βββ encrypt_folder_linux.sh
MIT
Shout-out to Adam for his contributions to this node build!
