Scene Data
The scene-level details for the middle of your loop
- scene
- title
- positive
- negative
- filename_part
- frames_count
Scene Data is the middle rung of the pack's data-extractor ladder. Give it the current scene (Play (Start) outputs scene_current) and it hands you the scene's title, positive, negative, its filename_part, and - the useful one - frames_count, the total number of frames this scene contributes to the play.
In the loop, scene-level info is most useful for two things: labeling what's rendering (title text overlays, log lines, per-scene save directories) and knowing the scene's overall frame budget so you can schedule transitions at scene boundaries. The README's theatre model calls scenes "transitions between locations, entrances or exits of a character... resulting in crossfade, cut, fade_to_black" - if you're building those transitions, the frames_count from this node plus the per-chunk frames_first/frames_last from Batch Data is all the arithmetic you need.
The outputs that matter
title,positive,negative- the scene's descriptive name and its shared prompt strings. Plain text, same as everywhere in this pack.filename_part- the scene's segment of chunk filenames (e.g.#1infot_play_#1_#1_b1_0_0). Mainly useful if you're rebuilding filenames yourself instead of usingBatch Data's ready-madefilename.frames_count- the scene's total frame count, summed by Play (Start) when it traversed the tree. Zero until the tree is actually constructed, so don't expect a number before the loop's first run.
Input is a single optional SCENE socket (scene); leave it empty and you get empties out. No hidden behavior, no side effects - it's a pure read node.
Installing
Same pack, same steps. ComfyUI Manager → search "comfyui_play_traversal", or:
cd ComfyUI/custom_nodes
git clone https://github.com/wgedeon/comfyui_play_traversal
pip install -r requirements.txt
Then restart ComfyUI. The dependency list is the pack's standard heavy one (diffusers, accelerate, onnxruntime, opencv-python, spandrel, peft, clip_interrogator, sentencepiece, matplotlib, lark), and no models are downloaded by the pack itself.
Where people get burned
- Wire it from
scene_current, not from your own Scene node. The staticSCENEyou built for the tree doesn't carryframes_count- that gets stamped on during traversal. Only the loop'sscene_currenthas the real numbers. This trips people constantly. - Scene vs beat vs act. Three levels of prompts, three extractors. Grab
positivehere and you're getting the scene layer, not the beat's shot description. Use the matching Data node for the level you care about. - It's a read-only view. You can't edit scene data here; everything flows from the tree you built and Play (Start)'s traversal.
- Early, single-author pack - expect rough edges, and treat the console's traversal logs as ground truth for what this node reports.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| sceneopt | SCENE | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| title | STRING | — |
| positive | STRING | — |
| negative | STRING | — |
| filename_part | STRING | — |
| frames_count | INT | — |