Nodes/comfyui-sbs-long-video/Stereo Video Source
ComfyUI Node

Stereo Video Source

Every 3D video starts here — the one knob-heavy node you'll actually touch

By oskar13·Created 6 months ago·Updated 6 months ago· 1
Stereo Video Source
    • video_job
    • summary
    source_video
    stereo_layoutsbs
    use_depth_videofalse
    depth_video
    depth_modelda3_small
    depth_use_source_resolutiontrue
    depth_inference_resolution512
    start_frame0
    end_frame0
    every_nth1
    chunk_size4
    disparity_ratio0.0115
    disparity_px12.0
    depth_power0.30
    invert_depthtrue
    audio_modecopy
    spill_policyauto

    Let's get the misleading name out of the way: StereoVideoSource doesn't convert anything, and it isn't really a "source" of pixels either. It's the configuration node - a form that packages your clip and every render setting into a job handle that StereoVideoConvert then executes. It's also where almost all of this pack's knobs live, so it's the node you'll actually spend time on. The rest of the chain is just plumbing.

    Pick a clip, dial in the depth and stereo settings, and you get two outputs: video_job (the internal handle that feeds Convert) and a summary string showing what you configured - frame count, fps, resolution, depth mode, and layout.

    Setting it up

    Drop your source clip into ComfyUI's input directory first. source_video is a dropdown populated from what's in that folder, so a clip you just dropped won't appear until the list refreshes. From there the settings fall into a few buckets:

    • Layout. stereo_layout is sbs (side by side, the default) or top_bottom. Pick what your target display actually reads.
    • Depth source. use_depth_video off (default) means the pack estimates depth itself with Depth Anything. Flip it on and depth_video becomes the source - a precomputed depth pass, e.g. from Video-Depth-Anything. The catch is right in the tooltip: the depth video must match the selected source range in frame count, and the README adds resolution too. Mismatch, and you get an error, not a warning.
    • Depth quality vs. VRAM. depth_model offers da3_small, da3_base, da3_large. depth_use_source_resolution is on by default, meaning inference runs at the video's native resolution; switch it off and depth_inference_resolution (default 512, longest side) kicks in for a much lighter pass on a small card.
    • Range and preview. start_frame / end_frame (0 means "rest of the clip") and every_nth let you render a short preview or a partial export. every_nth above 1 skips frames, which also lowers output fps - handy for checking the 3D before committing to a full encode.
    • The stereo feel. disparity_ratio (default 22/1920, i.e. roughly 1% of image width) sets separation as a fraction of width, which keeps 3D strength consistent as resolution changes. disparity_px is a legacy pixel-based fallback that's only used when disparity_ratio is 0. depth_power (default 0.3) exaggerates near/far separation - crank it if the depth looks flat. And invert_depth (default on) flips the map if your scene comes out inside-out.
    • Memory. chunk_size (default 4, max 64) controls frames processed per batch. Higher = faster but thirstier RAM and VRAM; the low-VRAM machine this pack targets will want to keep it modest.
    • The rest. audio_mode (copy or none) decides whether the final file carries the original audio. spill_policy is honest placeholder - the tooltip says the current pipeline doesn't materially change behavior based on it, so you can ignore it entirely.

    Two gotchas worth knowing

    The da3_* model names promise Depth Anything 3, but actual DA3 weights only load if you've installed the official package (pip install git+https://github.com/ByteDance-Seed/Depth-Anything-3.git). Without it, the pack quietly falls back to the transformers-compatible Depth Anything V2 checkpoints. Also, if you're doing commercial work, note the licensing split: DA3-Large is CC BY-NC 4.0 while Small and Base are Apache 2.0 - another reason to reach for da3_small or da3_base unless you need the ceiling.

    Install the pack once for all three nodes - ComfyUI Manager search "comfyui-sbs-long-video", or git clone https://github.com/oskar13/comfyui-sbs-long-video.git into custom_nodes, then pip install -r requirements.txt and restart. You'll also need ffmpeg and ffprobe on your PATH. Then the flow is Source → Convert → Mux, and the only place you'll find yourself tweaking knobs again is right here.

    CategoryStereo Video

    Inputs (17)

    NameTypeDefaultDescription
    source_videoCOMBOMain input clip to convert into stereo.
    stereo_layoutCOMBOsbsStereo arrangement for the output video.
    use_depth_videoBOOLEANfalseUse an uploaded depth reference clip instead of estimating depth automatically.
    depth_videoCOMBOOptional external depth video. It must match the selected source range in frame count when enabled.
    depth_modelCOMBOda3_smallDepth model size used when automatic depth estimation is enabled.
    depth_use_source_resolutionBOOLEANtrueRun depth inference at the video's original frame resolution instead of a manual lower resolution.
    depth_inference_resolutionINT512128–2048Manual longest-side resolution for depth inference when source-resolution mode is off.
    start_frameINT00–2147483647First source frame to process.
    end_frameINT00–2147483647Last frame boundary to process. 0 means use the rest of the clip.
    every_nthINT1Frame skipping factor. Higher values render faster previews and lower the output FPS.
    chunk_sizeINT41–64Frames processed per batch. Higher values improve throughput but use more RAM and VRAM.
    disparity_ratioFLOAT0.01150–0.25Stereo separation as a fraction of image width. This keeps the 3D strength more consistent across different resolutions.
    disparity_pxFLOAT12.00–256Legacy fallback pixel disparity. Used only when disparity_ratio is 0 for older workflows.
    depth_powerFLOAT0.300.1–4Depth response curve. Higher values exaggerate near/far separation.
    invert_depthBOOLEANtrueFlip the depth map if the scene appears inside-out.
    audio_modeCOMBOcopyCopy source audio into the final muxed video, or output video only.
    spill_policyCOMBOautoReserved workflow/memory policy setting. The current pipeline does not materially change behavior based on this yet.

    Outputs (2)

    NameTypeDescription
    video_jobSTEREO_VIDEO_JOBInternal job handle for StereoVideoConvert.
    summarySTRINGHuman-readable summary of the selected source clip and render settings.