Nodes/Loulan-prompt/Loulan-prompt
ComfyUI Node

Loulan-prompt

Batch-queue your whole list

By update-loulan·Created 2 days ago·Updated 2 days ago· 0
Loulan-prompt
    • prompt
    prompt

    The tedious part of testing a LoRA, or building out a character sheet, was never the generation. It's standing at the keyboard feeding ComfyUI twenty prompts one queue at a time, pasting each in by hand. Loulan-prompt exists to kill that chore. You write every prompt ahead of time - or, as the author expects, have an LLM write them for you - drop the list into the node, hit Queue once, and ComfyUI chews through each enabled prompt as its own job while you go make tea.

    It comes from the comfyui-prompt-batch-writer pack, one of those rare custom nodes with no Python dependencies and no models to download. It's also brand new with essentially zero community footprint yet, so treat this as "how it works today," not "how it's been battle-tested."

    What the node actually is

    Here's the slightly surprising part: the backend node is almost empty. Its full schema is one prompt string in and one prompt string out - the author's tooltip calls the input "Filled automatically by the batch writer frontend per queue item," which is the honest description. All the batching magic lives in the browser-side extension that ships with the pack. The canvas node is a carrier that the frontend stuffs one prompt into at a time.

    When you hit Queue, the extension intercepts ComfyUI's queue call, collects every enabled, non-empty prompt slot on the node, and queues one job per prompt. Anything you set in your normal batch count just multiplies each of those - the README puts the total at prompt count × batch count tasks. Seed behavior isn't reinvented either; it follows ComfyUI's own fixed/increment/randomize setting.

    Wiring it up

    Drop it on the canvas (double-click and search "loulan prompt"), then make exactly one connection: its prompt output into a CLIP Text Encode node's positive input. That's it. The input side is handled for you; you never type into the carrier field.

    Everything else you see on the node is frontend chrome, and the three controls that matter are:

    • Count - how many prompt boxes are active, up to 100.
    • Global TAG / Trigger - a text you type once and gets prepended to every prompt. This is where your shared LoRA trigger word goes, so an LLM-written batch of character prompts doesn't each need to repeat it.
    • The per-prompt Enable toggle next to every box, which is how you run a batch with a few prompts temporarily skipped.

    There's also a language toggle (中文 / English), file import, and presets. Import is genuinely well thought out: point it at a folder of txt/csv/json and it reads them all - a .txt file is one whole prompt, a .csv is one prompt per line, and a .json is an array of strings. Presets save the whole current set (prompts, toggles, trigger) to JSON files under ComfyUI's user directory, so they survive reinstalls and can be swapped in when you switch LoRAs.

    Installing

    ComfyUI Manager can find it if you search the pack title, comfyui-prompt-batch-writer. Otherwise it's the standard two-liner:

    cd ComfyUI/custom_nodes
    git clone https://github.com/update-loulan/comfyui-prompt-batch-writer
    

    Then restart ComfyUI. No pip install, no model files to fetch. The one real requirement is that this pack uses the V3 node API, so you need ComfyUI 0.3.0 or newer - on an older install the node simply won't register, which is the most likely "nothing shows up" cause.

    Where people trip over it

    The README is unusually upfront about the sharp edges, and they're worth knowing before you trust a big queue to it:

    • Only one Loulan-prompt per workflow. If the extension finds more than one node with active prompts, it cancels the queue rather than guess. Keep a single instance.
    • Batching is browser-side. Call the workflow through the API directly and it queues just the current prompt - the batch splitting only exists in the frontend's queue button.
    • Shrinking the count hides prompts but doesn't delete them by default. That's deliberate - it's how you keep Character 1's twenty prompts while switching to a different LoRA. Flip "Clear History" on only when you actually want them gone.
    • A .csv with a header row will treat that first line as a prompt unless it's literally named prompt/text/value/content, so name your column one of those.

    If your pain is "I already have fifty written prompts and want them all to run," this is exactly the tool. If what you wanted instead was random variation or wildcards inside one prompt - dynamic-prompt and wildcard nodes do that better. Loulan-prompt is for the batch you've already written, not the batch you want generated for you. Given there's no battle-tested history yet, run a two-prompt test queue first before committing a hundred generations to it.

    Categoryprompt

    Inputs (1)

    NameTypeDefaultDescription
    promptSTRINGCurrent prompt. Filled automatically by the batch writer frontend per queue item.

    Outputs (1)

    NameTypeDescription
    promptSTRING