Play Data
One stop for everything Play (Start) knows about your video
- play
- model
- clip
- vae
- title
- fps
- width
- height
- duration_secs
- frames_count
- positive
- negative
- seed
Play Data is the master extractor in comfyui_play_traversal. Wire Play (Start)'s play_current output into its play input and it fans the whole production-level picture out into individual sockets: the model, clip and vae you fed in, the play's title, fps, width, height, total duration_secs, total frames_count, the play-level positive/negative prompts, and the seed.
In practice this is the node you use to re-feed the sampler and the text encoders from inside the loop body. Because Play (Start) holds the model/vae and every global setting as a PLAY object, Play Data is how you get them back out as connectable sockets without threading them manually through the whole graph. It's the play-level counterpart to Scene Data, Scene-Beat Data, and Batch Data - same pattern, one level up.
The outputs that matter
model,clip,vae- the checkpoint trio, passed straight through from Play (Start)'s inputs. This is usually the first thing you grab so the KSampler inside the loop body has something to sample with.fps,width,height- the play's global dimensions and rate, so you can build latents at the right size and the video combine knows the frame rate.duration_secs,frames_count- the total for the whole play, computed by summing every beat'sfps × duration_secs. Useful for a title card, a progress readout, or just knowing what you're in for.positive,negative,seed- the play-level prompt strings and seed. Note these are the play-level ones, not the current beat's; for per-beat text you wantScene-Beat Data.
Every output is optional - the play input is a single optional PLAY socket, and if nothing's wired the node returns empties rather than erroring.
Installing
With the whole pack - 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
Restart ComfyUI. Expect the pack's usual heavy dependency install (diffusers, accelerate, onnxruntime, opencv-python, spandrel, peft, clip_interrogator, sentencepiece, matplotlib, lark) and no bundled models.
Where people get burned
- Don't wire this outside the loop expecting live data. The
play_currentoutput from Play (Start) only holds the current batch's play after the first expansion. Wire it after Play (Start) in the flow and it works; wire it from a stale copy and you'll be debugging why nothing changes between iterations. - Play-level vs beat-level. Grab
positivehere and you get the play's shared text, not the beat's. The prompts in this pack are layered - act, scene, beat each add their own - and this node only exposes the top layer. - The play object isn't editable. This is a read-only view; you can't change
fpshere and have it propagate. Change settings at Play (Start), where the play object is actually constructed. - Early-stage, single-author pack (version "2.0.0-inprogress") - the console prints are the docs.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| playopt | PLAY | — |
Outputs (12)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| title | STRING | — |
| fps | FLOAT | — |
| width | INT | — |
| height | INT | — |
| duration_secs | INT | — |
| frames_count | INT | — |
| positive | STRING | — |
| negative | STRING | — |
| seed | INT | — |