ComfyUI Node

Subject Selector

A character library on disk, one dropdown away

By vsaan212·Created 10 months ago·Updated 9 days ago· 1
Subject Selector
    • text
    • preview
    subject

    Subject Selector is the character-and-object half of the pack's selector pair, and it's deliberately boring: pick a .txt file from a dropdown, get its text out. That's it. The value isn't in what the node does - it's in what it stops you from doing, which is pasting the same character description into a dozen text nodes across a dozen workflows.

    Keep your cast as files and they become a library. characters/main/ashley_summer.txt is a real file on disk; selecting it is a click. Your graph stays clean, the description stays in one place, and if the character changes you edit one file instead of hunting through a graph for the one text node that mattered.

    How it works

    Put .txt files anywhere under:

    custom_nodes/vsaan212_workflow_utilities/subjectselector/SubjectFiles/
    

    It scans recursively, so characters/main/, characters/extras/, or whatever structure you like all work. The dropdown lists relative paths without the extension: SubjectFiles/characters/main/ashley_summer.txt appears as characters/main/ashley_summer. Select one and you get:

    • text - the full file contents. Wire it anywhere a string is expected: a prompt builder, Text Split, or a custom node's character input.
    • preview - a short status like Loaded: characters/main/ashley_summer.txt, for checking which file actually resolved.

    The node normalizes line endings and strips surrounding whitespace, and it doesn't care what's inside the file - full character prose, a booru tag list, or the tagged [LoraHighA] format. It reads text, full stop.

    Install and gotchas

    Same pack, same install: ComfyUI Manager → search vsaan212/Vsaan212-workflow-utilities, or clone into custom_nodes and restart. The SubjectFiles folder is created automatically on first load. No dependencies beyond the Python standard library.

    The usual selector traps apply:

    • New .txt not in the dropdown? Press R in ComfyUI or recreate the node to rescan.
    • Duplicate filenames? Use the full relative path in the dropdown.
    • The folder is the standalone selector's own - subjectselector/SubjectFiles/, which is different from the lazy_subject_scene_automation/SubjectFiles/ folder that Lazy-subject-and-scene-automation reads. This is the pack's most consistent point of confusion: you can have the same character defined in both folders and the two nodes will never see each other's files. Copy or symlink if you want one source of truth.

    When to reach for it

    If you're already using Lazy-subject-and-scene-automation, that node does subject loading and LoRA stacks and prompt assembly - you likely don't need this selector at all. Subject Selector earns its place in the simpler workflows: a plain SDXL/Flux prompt chain, or as a character-text source feeding LazyPrompt's character input without pulling in the full automation node. For that, it's the right tool: small, predictable, and it keeps your cast where it belongs.

    Categoryvsaan212/Selectors

    Inputs (1)

    NameTypeDefaultDescription
    subjectCOMBO2 options: Bypass and format example, none

    Outputs (2)

    NameTypeDescription
    textSTRING
    previewSTRING