Nodes/Chaser's Custom Nodes/Upload image(s) to WebDAV
ComfyUI Node

Upload image(s) to WebDAV

Push generated images to your NAS the moment they're done

By chaserhkj·Created about a year ago·Updated 11 months ago· 0
Upload image(s) to WebDAV
  • images
    url
    username
    password

    The sibling of Load Image from WebDAV, pointed the other way. Upload Images to WebDAV takes the IMAGE tensor out of your graph - a batch of frames, a single render, whatever - and PUTs it to a WebDAV server as PNGs, right in the middle of the workflow. It's an output node: it returns nothing, and it's meant to sit at the end of a branch alongside your normal Save Image.

    Four required inputs: images, url, username, password. The mechanism is simple and worth understanding because it explains the URL behavior: for each image in the batch it encodes a lossless PNG, builds a filename from a timestamp plus the index (20260816T103000_0.png, ..._1.png, ...), and does an authenticated PUT to url + "/" + filename.

    That means url is a directory path, not a file path. Whatever you type is treated as a folder, and the node appends its own filenames. For Nextcloud that looks like:

    https://your-server.example/remote.php/dav/files/username/comfy-output
    

    which will land your PNGs in comfy-output/ on the server. Get the trailing-path semantics wrong and files end up somewhere unexpected - or the PUT 404s.

    Why you'd reach for it. This is the in-graph answer to the "sync my output folder" problem the community solves with rclone and cron. If you generate on a box whose storage you don't trust or don't want to manage, and you want finished images landing on a NAS or cloud share automatically, this node does it per-run instead of per-folder-sync. It's also handy for headless setups where the "UI" is a folder on a server you actually browse.

    Where people get burned:

    • Credentials in the workflow. Same warning as the loader, and it matters more here because you're writing to the server - anyone who gets your PNG (which carries the workflow, which carries the password) gets write access to that share. Scrub before sharing.
    • PNG is lossless and big. Every frame in the batch becomes its own PNG with no compression knob. For long image batches or video frames this adds up fast.
    • No folders are created for you. If the target directory doesn't exist on the server, the PUT fails with a 404/409 - create it first.
    • It uploads with plain PUT (no chunking), so very large files hit whatever single-request limit your server enforces. The video upload nodes in this pack have a chunked mode for that; this one doesn't.

    Install is the pack standard (Chaser's Custom Nodes, chaserhkj). ComfyUI Manager - search "Chaser's Custom Nodes" - or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chaserhkj/ComfyUI-Chaser-nodes
    

    then restart. No models to download; requests handles the HTTP and the pack's other dependencies (jinja2, pyyaml, sexpdata, av) install automatically. The README's "use them at your own risk" is the author's own framing for this personal pack - with a node that writes to your server, that's worth taking literally, not casually.

    CategoryChaser Custom Nodes

    Inputs (4)

    NameTypeDefaultDescription
    imagesIMAGE
    urlSTRING
    usernameSTRING
    passwordSTRING

    Outputs (0)

    No outputs