Nodes/ComfyUI-Sonder-Editor/Sonder Save Video
ComfyUI Node

Sonder Save Video

The save node that knows about color drift, takes, and presets

By SonderSaid·Created about a month ago·Updated 12 days ago· 30
Sonder Save Video
  • project
  • frames
  • audio
  • output_path
filename_prefixoutput
fps24.000
modeVideo
place_audio_on_timelinetrue
mark_queue_completefalse
embed_metadatatrue
save_presetCompatible MP4
custom_output_kindVideo File
custom_containermp4
custom_video_codeclibx264
custom_pix_fmtyuv420p
custom_crf18
custom_encoder_presetslow
custom_audio_codecaac
custom_audio_bitrate_kbps192
custom_png_compression0
autoplay_previewfalse
color_drift_correctiontrue

Sonder Save Video is the node your generation actually lands in when you're using Sonder Editor - the output half of the loop. It takes your rendered IMAGE tensor, encodes it to a project video asset in the project's exports folder, optionally muxes audio, shows a thumbnail of the first frame on the node card, and - here's the part no stock save node does - it can auto-correct accumulated VAE color drift against the render's protected context frames.

That color-drift correction is worth pausing on, because it's the feature that sounds like marketing and isn't. Anyone who's chained video segments through a VAE knows the enemy: each decode drifts a little, and by segment five your colors have walked off. Sonder's trick is that the render window carries untouched context frames from the editor - frames that weren't denoised. This node fits a correction that matches those clean frames back to the editor's pre-encode reference, applies it per save, and records the outcome in the asset metadata. It's on by default, and it auto-skips when there's no context or the correction would exceed safe bounds, so a bad fit can't wreck a good render.

Inputs and outputs that matter

Core inputs: project (saves to its exports folder), frames (the IMAGE batch), filename_prefix, fps, and mode - Video (plain save) or Take (saves and auto-places the result back on the timeline as a new lane, which is the iteration loop closing). The place_audio_on_timeline toggle exists so fixed, already-placed audio doesn't spawn a duplicate lane per take - turn it off for unchanging audio.

The save_preset dropdown is the other thing to know: Compatible MP4 (browser-safe, BT.709 tagged) for everyday work, High Quality MP4, Editing Master MP4 (4:4:4, your browser may not play it), ProRes 422 HQ for handoff to an editor, Lossless FFV1 (RGB) for archival, and Custom for expert control of codec/container/CRF/pixel format/PNG-sequence output. embed_metadata (default on) bakes the full ComfyUI workflow into the file - turn it off before sharing if your graph is private. Optional audio muxes sound in. Output: output_path.

Install and gotchas

Pack install (ComfyUI Manager search Sonder Editor, or git clone + pip install -r requirements.txt + restart), and a working ffmpeg - the bundled imageio-ffmpeg binary is a fallback, but a system ffmpeg on PATH handles the wider preset range, and the ProRes/FFV1 presets especially want it.

The failure to plan for: if ffmpeg not found errors show up on save, that's the first thing to check. And remember the security note from the README - with embed_metadata on, exported files carry your prompts, model names, and paths. The "Compatible MP4" preset is the one that plays everywhere; if a video you saved won't preview, check whether you picked an Editing Master or ProRes preset and re-save in a browser-safe format. It's the node that makes "generate, place, review, regenerate" feel like a loop instead of a chore.

CategorySonder/IO

Inputs (21)

NameTypeDefaultDescription
projectSONDER_PROJECTThe project — video saves to its exports/ folder.
framesIMAGEBatch of frames to encode as video.
filename_prefixSTRINGoutputPrefix for the output filename.
fpsFLOAT24.0001–120Output video frame rate.
modeCOMBOVideoVideo: normal save. Take: saves and auto-places result on timeline as a new lane.
place_audio_on_timelineBOOLEANtrueTake mode only. When on, the take's audio is also placed as a separate audio track on the timeline. Turn off for fixed/unchanging audio you've already placed once, to avoid duplicate audio lanes and assets per take. The audio is still muxed into the saved video either way.
mark_queue_completeBOOLEANfalseWhen enabled, this save node completes the active Sonder queue job after a successful save.
audiooptAUDIOAudio to mux into the video.
embed_metadataoptBOOLEANtrueEmbed source ComfyUI workflow metadata into files written by this save node.
save_presetoptCOMBOCompatible MP4Preset choices: Compatible MP4: Browser-safe MP4 for everyday review and sharing; BT.709 tagged. | High Quality MP4: Browser-safe MP4 with higher visual quality and larger files; BT.709 tagged. | Editing Master MP4: High-fidelity 4:4:4 MP4 for internal round trips; BT.709 tagged; browser preview may not decode it. | ProRes 422 HQ: Large editing handoff file with 10-bit ProRes video and PCM audio; BT.709 tagged. | Lossless FFV1 (RGB): Lossless RGB archive/diagnostic output with FLAC audio; very large files. | Custom: Expert export controls for allowlisted video settings or PNG image sequences.
custom_output_kindoptCOMBOVideo FileCustom only. Video File encodes one media asset; PNG Sequence writes frame images.
custom_containeroptCOMBOmp4Custom video only. Output container/extension.
custom_video_codecoptCOMBOlibx264Custom video only. ffmpeg video codec.
custom_pix_fmtoptCOMBOyuv420pCustom video only. ffmpeg pixel format.
custom_crfoptINT180–51Custom x264/x265 only. Lower means higher quality and larger files.
custom_encoder_presetoptCOMBOslowCustom x264/x265 only. Slower presets improve compression efficiency.
custom_audio_codecoptCOMBOaacCustom video only. Choose none to omit connected audio.
custom_audio_bitrate_kbpsoptINT1921–10000Custom AAC audio only. Audio bitrate in kbps.
custom_png_compressionoptINT00–9Custom PNG Sequence only. 0 is fastest/largest; 9 is smallest/slowest.
autoplay_previewoptBOOLEANfalseAutoplay the inline video player on this node card after a run. When off, it opens paused on the first frame. Display-only — does not affect the saved file.
color_drift_correctionoptBOOLEANtrueCorrects accumulated VAE color drift by matching this render's untouched context frames back to the editor's pre-encode reference. Fitted per save; skipped automatically when no context exists or the correction would exceed safe bounds (outcome recorded in asset metadata).

Outputs (1)

NameTypeDescription
output_pathSTRINGAbsolute path to the saved video file.