Nodes/Chaser's Custom Nodes/Upload video as WebM to WebDAV
ComfyUI Node

Upload video as WebM to WebDAV

VP9 video straight to WebDAV, for files that actually play everywhere

By chaserhkj·Created about a year ago·Updated 11 months ago· 0
Upload video as WebM to WebDAV
  • video_frames
    fps24.00
    crf30
    url
    username
    password
    dufs_chunk_size_mb0

    The WebM sibling of the MP4 uploader, and the one you reach for when the video is headed to a browser. Upload WebM to WebDAV takes your video_frames batch, encodes it with the VP9 codec into a .webm, and PUTs it to a WebDAV server in one step. Output node, nothing comes back.

    Same input layout as the MP4 node: video_frames, fps (default 24), crf (default 30 here, not 23), url, username, password, and dufs_chunk_size_mb (default 0). The mechanism is identical under the hood - frames normalized, encoded with libvpx-vp9 in memory, uploaded via a single PUT or dufs chunked-append (PATCH with X-Update-Range: append) if dufs_chunk_size_mb is nonzero.

    Why VP9 instead of H.265. The honest answer is compatibility. HEVC costs money to license in a lot of browsers; VP9 is royalty-free and plays natively in Chrome, Firefox, and most web players. If your "output folder" is actually a web-accessible share people open in a browser - which is the entire point of WebDAV-as-gallery - WebM/VP9 is the version they can click without a codec hunt. The tradeoff: VP9 is slower to encode and, at the same CRF, tends to produce larger files than H.265 for the same quality. The author's higher default CRF (30 vs 23) reflects that.

    The inputs that matter:

    • crf - the tooltip's the same: higher CRF = smaller file, lower quality; lower = bigger, better. 30 is the default; for anything you'd show off, try 24–27.
    • fps - must match what the workflow generated or motion looks wrong.
    • dufs_chunk_size_mb - 0 for everyone except dufs servers. Set it against a dufs share to stream the file up in chunks; against Nextcloud, leave it alone.

    Where people get tripped up:

    • CPU encoding, again. VP9 is among the slower encoders and this is pure Python-side, so budget real time for long clips. A 10-second 720p clip can take a couple minutes on a modest CPU.
    • Whole video buffers in memory before the upload starts. Huge batches = big RAM spike.
    • Browser support is good, but not every downstream tool likes WebM - an editor expecting MP4 won't import it. Pick the container for the consumer, not the vibe.
    • Same credential-in-workflow leak as every node in this pack: the password travels inside your saved PNG metadata. Scrub before you share a workflow.
    • Timestamped filename (timestamp.webm) - same-second reruns overwrite each other.

    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 model downloads; like its MP4 sibling, this is the node that justifies the pack's av (PyAV) dependency, which installs automatically and isn't part of base ComfyUI. And it's the same "use them at your own risk" personal pack - chaserhkj's README is explicit that these are ad-hoc nodes for his own workflows, so test the encode path with a short clip before trusting it with an hour-long render.

    CategoryChaser Custom Nodes

    Inputs (7)

    NameTypeDefaultDescription
    video_framesIMAGE
    fpsFLOAT24.000.01–1000
    crfFLOAT300–63Higher crf means lower quality with a smaller file size, lower crf means higher quality higher filesize.
    urlSTRING
    usernameSTRING
    passwordSTRING
    dufs_chunk_size_mbINT00–128Chunked upload size for dufs

    Outputs (0)

    No outputs