Nodes/MTB Nodes/Read Playlist (mtb)
ComfyUI Node Runs on cloud

Read Playlist (mtb)

Step through a numbered image sequence by index

By melMass·Created 3 years ago·Updated about a month ago· 721
Read Playlist (mtb)
    • PLAYLIST
    enabletrue
    persistant_playlistfalse
    playlist_nameplaylist_{index:04d}
    index0

    If you've ever wanted a ComfyUI workflow to grind through a folder of frames one at a time - batch-processing a video's frames, running the same pipeline over shot_0001, shot_0002, shot_0003... - this is the node that hands you the index. It doesn't load an image itself; it manages which one you're on.

    What it actually does

    Read Playlist outputs a single PLAYLIST connector, an mtb-specific type that other mtb nodes read to know which entry in a named sequence to act on. Think of it less as "load image" and more as "the pointer into load image" - the file I/O happens elsewhere in the pack, this node just tracks position. That split is why the node's own docs are basically one line ("Read a playlist"): its job is bookkeeping, not rendering.

    The four inputs are all about that bookkeeping:

    • playlist_name - a template string, default playlist_{index:04d}. That {index:04d} is a Python format spec: it zero-pads the index to four digits, so index 7 becomes 0007. That's how the node turns a plain integer into a filename or sequence key.
    • index - which entry you're currently on. Bump it (manually, or via a counter/increment node) to step through the sequence.
    • persistant_playlist - whether the playlist's state survives between separate queue runs, or gets rebuilt fresh each time. Turn it on for a long batch spread across many queue submissions where you don't want to lose your place.
    • enable - a plain on/off toggle for the node's logic.

    Where it fits, and the honest gap

    This is a batch-automation primitive from the pre-native-loop era of ComfyUI. Before nodes like a proper For Loop or dedicated video-frame loaders existed, packs like mtb built their own iteration machinery, and Read Playlist is part of that machinery - meant to pair with other mtb nodes (something that actually loads an image using the PLAYLIST state, something on the save side) to drive a frame-by-frame pipeline.

    Being straight with you: neither the pack's README nor its wiki links spell out PLAYLIST's exact contract in detail, and it's obscure enough that it barely comes up in general ComfyUI discussion either. On its own, without other mtb nodes wired to consume the PLAYLIST output, this node doesn't do much visible - it needs a partner downstream. Before building around it, open the node in the ComfyUI editor and check which of your installed nodes actually accept a PLAYLIST input.

    Installing it

    Through ComfyUI Manager: search "MTB Nodes" (the repo is comfy_mtb), install, restart. By hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/melMass/comfy_mtb
    

    then restart. Manager usually handles the Python dependencies, but if a node fails to import, drop into the comfy_mtb folder and run pip install -r requirements.txt yourself - that's the fix that clears up the most common "why won't this load" report for this pack.

    Common issues

    On startup you'll likely see a console line like Some nodes (N) could not be loaded. This can be ignored, but go to http://127.0.0.1:8188/mtb if you want more information. That's normal for this pack: a chunk of its nodes (face swap, DeepBump normal-map generation) need optional, manually-installed extras most people never set up, and Read Playlist isn't one of them. If Read Playlist specifically isn't showing up, it's almost always the base requirements.txt step above, not the optional extras.

    Categorymtb/IO

    Inputs (4)

    NameTypeDefaultDescription
    enableBOOLEANtrue
    persistant_playlistBOOLEANfalse
    playlist_nameSTRINGplaylist_{index:04d}
    indexINT0

    Outputs (1)

    NameTypeDescription
    PLAYLISTPLAYLIST