Nodes/ComfyUI-Apt_Preset/sch_split_text
ComfyUI Node

sch_split_text

Split a String and Pick One Piece per Frame

By cardenluo·Created 2 years ago·Updated 17 days ago· 309
sch_split_text
    • i_text
    • length
    texta b c
    current_frame0
    presetNone
    delimiter

    This is the plain, no-frills sibling in Apt_Preset's schedule family. Where sch_Prompt and sch_text do eased keyframe interpolation between prompts, sch_split_text just splits a string into a list and hands you back one item at a time, indexed by frame number. No easing curve, no blending - just "here's item N."

    What it does

    You write one string, pick a delimiter, and the node cuts it into pieces. current_frame is used as the index into that list, so as you step through a batch (0, 1, 2, 3...) you cycle through your items one per frame - a cat, then a dog, then a bird, without wiring up wildcards or a dozen separate string nodes.

    Inputs and outputs

    • text - the string to split. Default is the placeholder a b c.
    • current_frame - which item to return, used as a list index.
    • preset (optional, default None) - the pack's own description of the choices, translated:
      • None: don't use a preset delimiter
      • Line: split on newlines
      • Space: split on spaces
      • Comma: split on commas
      • Period: split on periods
      • Semicolon: split on semicolons
      • Tab: split on the tab character
      • Pipe: split on |
      • Custom: use whatever you type in the delimiter field
    • delimiter (optional, default a single space) - only meaningful when preset is set to Custom.

    Outputs: i_text (the item at current_frame) and length (how many items the split produced). With the defaults (text = "a b c", delimiter = space), splitting gives ["a", "b", "c"], so current_frame = 1 returns "b" and length reports 3.

    Note that i_text is typed as ComfyUI's wildcard * type rather than STRING. That means ComfyUI won't stop you from plugging it into something that doesn't expect text - double-check the destination node's actual expected type yourself.

    When to reach for it

    This is the lightweight option compared to sch_Prompt/sch_text's full keyframe-plus-easing system. If you just want to round-robin a fixed list of tags, subjects, or short phrases across a batch - no smooth transition needed, no keyframe numbers to write - sch_split_text is less setup. Feed length into whatever's driving your batch loop so you know how many frames you actually need before you run out of list.

    Install

    Search "ComfyUI-Apt_Preset" in ComfyUI Manager and install, or clone it by hand: cd ComfyUI/custom_nodes && git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git, then restart. The pack's install.bat dependency installer is Windows-only; on Linux or a cloud instance, either read what it installs and pip-install those packages yourself, or let ComfyUI Manager's "install missing nodes" handle it the first time a workflow needs this node.

    Troubleshooting

    The schema doesn't document what happens if current_frame runs past the end of your list - safest bet is to check the length output first and keep current_frame under it, rather than assuming it clamps gracefully.

    Real reports of this specific pack failing to import exist - a comfyui subreddit thread shows the console logging (IMPORT FAILED): ...ComfyUI-Apt_Preset when a downloaded workflow needed it. If that happens to you, use ComfyUI Manager's "install missing custom nodes" button, or delete ComfyUI-Apt_Preset from custom_nodes and re-clone it fresh, then restart - that resolved it for the people who reported it.

    CategoryApt_Preset/data/schedule

    Inputs (4)

    NameTypeDefaultDescription
    textSTRINGa b c
    current_frameINT00–99999
    presetoptCOMBONone9 options: None, Line, Space, Comma, Period, Semicolon, +3
    delimiteroptSTRING

    Outputs (2)

    NameTypeDescription
    i_text*
    lengthINT