Side By Side
Turn two eye views into one VR-ready SBS image
- left_image
- right_image
- IMAGE
Side By Side does exactly one thing: it takes two images and glues them together into a single wide image, left eye on the left, right eye on the right. That's the "SBS" layout your VR headset actually expects. Quest, Index, Pico - they all happily play side-by-side video, and this node is the tiny bridge between "I generated two views in ComfyUI" and "this plays back as 3D."
This is the flagship node of the ComfyUI-Stereopsis pack, a small solo project from GitHub user IsItDanOrAi. The whole pack exists so you can generate a video in ComfyUI, offset one eye's stream by a frame or two, and watch the result on a headset. Honest framing up front: this is a utility, not a magic 2D-to-3D converter. The node itself does zero depth estimation. You bring the two eye views; it just concatenates them.
How it works
The mechanism is almost insultingly simple. ComfyUI hands every node images as tensors in [batch, height, width, channels] order, and the node runs one call:
torch.cat((left_image, right_image), dim=2)
dim=2 is the width axis, so the two images are joined horizontally. That's the whole thing - there's no color correction, no resize, no divider line, no depth-aware parallax. Because of that concat, both inputs must share the same height and the same channel count (RGB in, RGB out), but their widths can differ. Feed a 1920x1080 left and a 1920x1080 right and you get a clean 3840x1080 SBS frame - which, conveniently, is a standard 4K SBS resolution.
The inputs that matter
Only two, and they're both images:
- left_image - the view for your left eye.
- right_image - the view for your right eye.
The single output is an IMAGE tensor (the concatenated frame, or frame batch if you fed in video), which you'd wire straight into a Save Image node, or into a video-encode chain (VAE decode → Video Combine → Save Video) if you're working with an animated batch. If you're doing the pack's intended stereopsis workflow, this node is the last stop: delay one stream, feed both into it, save the SBS video.
Installing it
There are no models to download and no extra Python dependencies - the pack has no requirements.txt, and the nodes' only import is torch, which ComfyUI already requires. That's the nicest thing about this pack: install risk is basically zero.
- ComfyUI Manager: search "Stereopsis" (pack title "ComfyUI-Stereopsis") and hit Install.
- Manually:
Restart ComfyUI and the node appears under the IsItDan-Stereopsis category.cd ComfyUI/custom_nodes git clone https://github.com/IsItDanOrAi/ComfyUI-Stereopsis
Common issues & troubleshooting
Same size or it errors. Mismatched heights or channel counts will throw a tensor-shape error from torch.cat. Match the resolution before you connect.
No depth if both eyes are the same image. The classic new-user trap: if you feed the identical frame to both inputs, you get a flat, depthless side-by-side. Stereopsis requires binocular disparity - two slightly different views. The pack's intended trick is to delay one eye's stream (that's what the sibling Frame Delay node is for), which fakes parallax on video. It's a cheap trick and it shows on fast motion, but it's free.
Know the alternatives. If you actually want real depth - generated from a depth map, the proper A1111-style stereoscopic workflow - this pack isn't it. The r/comfyui community has run into this pack before: one user in a stereoscopic-node thread (July 2024) reported it "gave me lots of problems" and ended up comparing it against ComfyStereo and ComfyUI_SSStereoscope, the depth-map-based options. That thread's honest take - this is an early-stage, one-commit project (July 2025) - matches the code. It works for the narrow "I already have two views" job, and for that job it's refreshingly reliable. For depth-map stereo, look elsewhere.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| left_image | IMAGE | — | |
| right_image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |