Nodes/DropSend Node/πŸ“¦πŸ“€ DropSend - AutoUploader
ComfyUI Node

πŸ“¦πŸ“€ DropSend - AutoUploader

Beam Your Outputs Off the Cloud GPU Before the Pod Dies

By machinepaintingΒ·Created about a year agoΒ·Updated 3 months agoΒ· 2
πŸ“¦πŸ“€ DropSend - AutoUploader
    • STRING
    β—„watch_folder/tmp/ComfyUI/outputβ–Ί
    β—„dropbox_dest_folder/ComfyUI-Project/My-Projectβ–Ί
    β—„folder_formatproject_nameβ–Ί
    β—„enable_encryptiontrueβ–Ί
    β—„Post_Delete_Encfalseβ–Ί
    β—„Subfolder_Monitortrueβ–Ί
    β—„run_processtrueβ–Ί

    The whole problem with renting a GPU is that the box dies with you. Render a batch on RunPod, forget to download it, stop the pod, and your hours of work evaporate. DropSend AutoUploader exists for that specific paranoia: it watches your ComfyUI output folder and pushes every new file to your Dropbox the second it lands. No API calls to schedule, no manual scp, no "did I download it?" anxiety - a watcher thread uploads and verifies for you.

    This is the node you reach for when ComfyUI isn't running on the machine you actually live in. On a local box, Dropbox is probably already syncing your output folder anyway, so it's borderline redundant there. On a rented GPU it's the difference between "everything vanished when I stopped the pod" and "it's already sitting in my Dropbox."

    How it works

    Under the hood it's a Python watchdog filesystem observer parked on your output directory. When a new file appears, the node waits for the write to settle (it polls file size until it stops growing - ComfyUI writes images in chunks), then queues the file and uploads it through the Dropbox API using a long-lived refresh token. There's a queue-based retry loop, so a transient network blip doesn't silently drop your render.

    Here's the part I actually like: after uploading, it re-downloads the file and compares SHA256 hashes. An upload that corrupted in transit isn't treated as done. That's more rigor than most "sync" tools bother with.

    Encryption is optional but on by default. Each file gets AES-encrypted via Fernet before upload, so what lands in Dropbox is filename.png.enc - useless to anyone without your key. You decrypt locally later with the bundled decrypt_folder scripts. Keep the key backed up; lose it and those files are unreadable forever.

    The inputs that matter

    Seven inputs, and you'll actually touch about four:

    • watch_folder - where to watch. Defaults to ComfyUI's real output directory, and it's clamped there: the node refuses to watch arbitrary folders (that's a deliberate security decision, since it uploads everything it sees). To add a path, set COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS on the host before starting ComfyUI.
    • dropbox_dest_folder - where files land in Dropbox. Must start with /, and if your Dropbox app uses App Folder access (the recommended default), it needs to be under /Apps/.
    • folder_format - project_name uses your destination verbatim; the five date formats append today's date at run time, so a saved workflow opened next week still uploads into today's folder.
    • enable_encryption - flip off if you want plain files, not .enc.

    The rest are set-and-forget: Subfolder_Monitor (recursive watching, on by default), Post_Delete_Enc (delete the local .enc after a verified upload), and run_process - set True to start watching, False to stop everything. The single STRING output just returns a status banner for the console.

    Installing it

    ComfyUI Manager, search for "DropSend", or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/machinepainting/ComfyUI_DropSendNode.git
    pip install -r ComfyUI_DropSendNode/requirements.txt
    

    Then restart ComfyUI. The good news: dependencies are light (requests, python-dotenv, watchdog, dropbox, cryptography). No model downloads, no torch conflicts, nothing that'll fight your existing install.

    Common issues

    • Nothing uploads. Check run_process is True, then the ComfyUI console for upload errors. If the destination doesn't start with /, the node refuses up front.
    • "Invalid Dropbox credentials" on first run. The uploader validates creds every run, so you need the Setup node (or env vars) done first. This node does not create credentials.
    • "Encryption key not found." enable_encryption is on but COMFYUI_ENCRYPTION_KEY isn't set. Turn encryption off or provision the key.
    • Files land in the wrong folder. App Folder apps only see /Apps/<your-app-name>/…. Set the destination inside that.

    One honest caveat: this is a niche, low-footprint pack - expect to be the one answering questions about it, not reading a wiki of other people's. But it's MIT-licensed, actively maintained, and the code is readable if you ever want to know exactly what it's doing.

    Categorysd

    Inputs (7)

    NameTypeDefaultDescription
    watch_folderSTRING/tmp/ComfyUI/outputβ€”
    dropbox_dest_folderSTRING/ComfyUI-Project/My-Projectβ€”
    folder_formatCOMBOproject_name6 options: project_name, mm-dd-yyyy, dd-mm-yyyy, yyyy-mm-dd, dd.mm.yyyy, yyyy.mm.dd
    enable_encryptionBOOLEANtrueβ€”
    Post_Delete_EncBOOLEANfalseβ€”
    Subfolder_MonitorBOOLEANtrueβ€”
    run_processBOOLEANtrueβ€”

    Outputs (1)

    NameTypeDescription
    STRINGSTRINGβ€”