Zura · Select Whole Scene
The most boring node in the pack, and the one you want for a whole-scene edit
- images
- whole_scene_mask
ZuraWholeSceneMask (Zura · Select Whole Scene) has the shortest implementation in the pack, and its docstring is admirably honest about it: all frames are selected without running a detector or reading pixels. You give it images, you get back a MASK of the same frame count and resolution, and every value in it is 1.0. That's the entire node.
Which sounds useless until you understand what it replaces.
Why a full-white mask is a feature
In Zura Studio's Wan and LTX routes, the edit area is normally produced by native SAM 3 segmentation and tracking: a checkpoint gets loaded, a detector runs per frame, and a character mask comes out. If you chose whole scene as what you want to change - the pack's object-swap and restyle routes, or a masked LTX scene change - that work is pointless. You're not selecting anything; you're deliberately changing everything. The studio's graph builder knows this, and rather than running segmentation and then throwing the result away, it removes the detector, tracker and selection nodes from the graph entirely and drops this node in their place.
So the node is really a graph simplification: a full-frame mask with zero inference, zero model weights and zero per-frame cost. It's the reason a whole-scene edit doesn't require the SAM checkpoint at all, and it's why opening one of these graphs looks so much lighter than a character-replacement graph.
Inputs and output
images(IMAGE) - the frames to mask. Native batch of RGB frames, and the mask it returns matches their batch size, height and width exactly.whole_scene_mask(MASK) - a mask with one plane per frame and nothing masked out.
It's a plain MASK, the same wire type ComfyUI's own mask nodes use, so it plugs into anything expecting one - a mask preview, or whatever consumes the replacement mask in your graph. If you're hand-wiring outside Studio, that's the whole recipe: decode the frames, feed them here, send the mask where the selection mask would normally go. The node doesn't care about content, aspect ratio or resolution, and it never resizes anything - it inherits what you hand it, so give it the frames at the resolution you intend to render.
Install
Nothing node-specific. It's part of the pack and adds no dependencies or model downloads - that's the point of it.
ComfyUI Manager → search Zura Nodes (publisher ZURAVFX) → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ZURAVFX/ComfyUI_zura_nodes
python -m pip install -r ComfyUI_zura_nodes/requirements.txt
You'll still need whatever the rest of your Studio graph wants (the pack's own requirements include av, ultralytics and face-alignment, and video in/out needs ffmpeg/ffprobe on PATH), but none of it is triggered by this node.
One thing to keep straight
An all-white mask means no protection. Whatever the model repaints, it repaints - background, lighting, props and all. That's exactly what you want for a whole-scene restyle, and exactly what you don't want if your real intention was "change the performer, keep the room". In that case use the mask route instead and leave this node out; it's not a fallback for a failed detection. It's an explicit declaration that everything is editable.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| whole_scene_mask | MASK | — |