Parallax Motion Camera Scheduler Extractor
Pull one depth layer's x/y/zoom schedule out of a parallax camera move
- float_layers
- zoom_values
- x_values
- y_values
The companion node to OPCScheduler, and it only makes sense once you understand that node first. Parallax Motion Camera Scheduler Extractor exists because OPCScheduler bakes the motion for every depth layer into one packed list - this node pulls a single layer back out as three separate, actually usable per-frame schedules: zoom, x pan, and y pan.
How it works
OPCScheduler takes a layer_offsets string (say "1,0.8,0.6" for three layers) and produces one combined float_layers output covering all of them. That's efficient to generate but useless to consume directly - nothing downstream wants "all layers' motion smashed into one list." This node unpacks it: give it the layer_index you want, and it returns that layer's own zoom, x, and y curves as plain per-frame lists, in the same shape as any other schedule-driven animation data in ComfyUI.
If you set up three layer_offsets in the scheduler, the normal pattern is running this extractor three times - once per index - each time wiring the result into whatever handles that layer's own image transform.
The inputs and outputs that matter
float_layers(required, LIST) - wire in the scheduler's output directly.layer_index(default 0, min 0) - the only real knob. Bump it up to walk through each layer you configured upstream. Layer indexing typically follows the order you listed offsets in the scheduler, so index 0 lines up with the first entry inlayer_offsets.
Three outputs: zoom_values, x_values, y_values - each a LIST, each feeding whatever per-frame node handles that axis of your image transform (scaling for zoom, translate/crop for x and y).
How to install it
Via ComfyUI Manager: search SaltAI-Open-Resources or SaltAI, install, restart. Manual path:
cd ComfyUI/custom_nodes
git clone https://github.com/get-salt-AI/SaltAI
then restart. No model, no heavy dependency - this is a pure list-unpacking utility.
Common issues & troubleshooting
layer_index out of range. Since layer_offsets is a free-text comma string on the scheduler side, there's no cross-validation between the two nodes. Type two offsets over there and ask for layer_index = 2 here, and you'll get an index error or garbage output rather than a friendly warning - keep the offset count in your head and match it against how many times you call this node.
Only ran it once for a multi-layer setup. Easy to forget this needs to be called once per layer, not once total. If your parallax effect only shows motion on one plane, check whether you actually extracted and wired up every layer or just the first.
Values look reasonable but the composite still looks flat. That's more likely an issue in how you're applying zoom_values/x_values/y_values to each layer's image transform than in this node - verify the extraction against the scheduler's raw output before assuming this node is at fault.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| float_layers | LIST | — | |
| layer_index | INT | 0 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| zoom_values | LIST | — |
| x_values | LIST | — |
| y_values | LIST | — |