Nodes/ComfyUI-PromptDrafter/Dual Prompts - PromptDrafter + Loaded Loras
ComfyUI Node

Dual Prompts - PromptDrafter + Loaded Loras

Save the LoRA stack with the prompt

By Carasibana·Created 8 months ago·Updated 6 months ago· 2
Dual Prompts - PromptDrafter + Loaded Loras
    • positive_prompt
    • negative_prompt
    • loaded_loras
    • lora_stack
    • positive_raw
    • negative_raw
    positive_prompt
    negative_prompt
    lora_string
    push_lora_on_loadfalse
    positive_prefix
    positive_suffix
    negative_prefix
    negative_suffix
    prompt_name
    load_prompt

    The most annoying thing about a good SDXL or Pony prompt is that it never travels alone - the same combination of positive, negative, and a specific set of LoRAs is what actually produced the look you like. Dual Prompts - PromptDrafter + Loaded Loras is the pack's answer to that: it takes the Dual Prompt node's save/load system and binds the LoRA string to it, so you save and restore the whole recipe as one unit instead of reconstructing it from memory.

    Mechanically it's the Dual Prompt node with a lora_string field bolted on, plus a parsing step. The node reads <lora:name:0.8> entries out of that field and turns them into a lora_stack output - a LORA_STACK typed value, each entry a tuple of the LoRA's full relative path plus model and CLIP strengths. It resolves bare filenames to real paths by searching ComfyUI's registered lora folders, which was an actual fix in v1.3.1; before that, the stack carried just the bare filename and downstream LoRA-applying nodes couldn't find the file.

    The integration that makes it interesting

    Where this node earns its keep is its handshake with ComfyUI-Lora-Manager. The workflow: connect a LoRA Manager node's loaded_loras output into this node's lora_string input, turn on push_lora_on_load, and the JS frontend syncs state bidirectionally - loading a saved prompt+LoRA combination pushes the saved LoRAs upstream into the LoRA Manager node, and edits you make there flow back so you can re-save the whole bundle. It's genuinely useful for keeping a character's look intact across sessions. Caveat: you need LoRA Manager installed for any of that to happen; without it, lora_string is just a text field and lora_stack is a value most nodes won't know what to do with.

    Inputs and outputs worth knowing

    • positive_prompt, negative_prompt - the usual green/red pair, wildcard support included.
    • lora_string - <lora:name:strength> entries, typed or wired from LoRA Manager.
    • push_lora_on_load - the bidirectional sync toggle described above. Off by default.
    • Outputs: positive_prompt / negative_prompt (wire to CLIP encodes), loaded_loras (the raw string, for logging or reference), lora_stack (the parsed LORA_STACK), and positive_raw / negative_raw (wildcards applied, prefix/suffix skipped).

    Install and troubleshooting

    ComfyUI Manager (search "PromptDrafter") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Carasibana/ComfyUI-PromptDrafter
    

    Restart. No extra dependencies beyond ComfyUI, though the LoRA Manager integration obviously wants that second pack installed. Two things to watch: if the console prints a WARNING: Could not find LoRA ... line, the filename in your lora_string doesn't match anything in your loras folder - the stack still gets populated with the bare name so the graph doesn't crash, but downstream may silently skip it. And if you're searching the add-node menu for DualLoraPromptDrafter and can't find it, that's the pre-v1.3.3 key; the current name is DualLora_PromptDrafter, with the old one kept only to load legacy workflows.

    CategoryPromptDrafter

    Inputs (10)

    NameTypeDefaultDescription
    positive_promptSTRING
    negative_promptSTRING
    lora_stringSTRING
    push_lora_on_loadBOOLEANfalse
    positive_prefixoptSTRING
    positive_suffixoptSTRING
    negative_prefixoptSTRING
    negative_suffixoptSTRING
    prompt_nameoptSTRING
    load_promptoptCOMBO1 options:

    Outputs (6)

    NameTypeDescription
    positive_promptSTRING
    negative_promptSTRING
    loaded_lorasSTRING
    lora_stackLORA_STACK
    positive_rawSTRING
    negative_rawSTRING