ComfyUI Node

Play Data

One stop for everything Play (Start) knows about your video

By wgedeon·Created 12 months ago·Updated 10 months ago· 2
Play Data
  • 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's fps × 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 want Scene-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_current output 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 positive here 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 fps here 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.
CategoryFeller of Trees/Play Traversal

Inputs (1)

NameTypeDefaultDescription
playoptPLAY

Outputs (12)

NameTypeDescription
modelMODEL
clipCLIP
vaeVAE
titleSTRING
fpsFLOAT
widthINT
heightINT
duration_secsINT
frames_countINT
positiveSTRING
negativeSTRING
seedINT