π Prompt + LoRAs
> tags you type in your prompt finally load β no second node needed
- model
- clip
- model
- clip
- prompt
If you came over from A1111, your muscle memory writes <lora:name:0.8> straight into the prompt. Do that in ComfyUI and nothing happens - a plain text box is just text, and a tag only loads if some node goes looking for it. π Prompt + LoRAs (class Warp Lora Prompt) is that node: it keeps the prompt and its LoRAs in one box, parses the tags A1111-style, and the tags are the loader.
It's the centerpiece of the small WarpPipe pack; the intended workflow is refreshingly short:
Load Checkpoint βββΊ Prompt + LoRAs βββΊ KSampler
How it works
The node scans the prompt for <lora:name:weight> tags, matches each name to a file in your loras folder, and applies them with ComfyUI's own load_lora_for_models. The matching is deliberately forgiving but strict. It tries the full path, the filename without folder or extension, several words in any order, then a unique fragment - case and slash direction ignored. A tag that matches nothing, or matches several files, stops the run with a message naming the close matches. That's not being difficult; it's honest. Generating without a LoRA you asked for produces a wrong image and wrong metadata.
The prompt output is what you wrote, minus the tags and the notes - and nothing added. Anything after // on a line is a note for you, not the model, and commenting a line out is how you switch a LoRA off.
The inputs and outputs that matter
Two required inputs, three outputs:
text- the prompt. Tags go inline:a portrait, dramatic lighting <lora:detail tweaker:0.8>.apply_to_clip- whether the text encoder gets patched too. Leave it on: SDXL-era LoRAs mostly carry text-encoder weights, and on model-only LoRAs it costs nothing.- Outputs
model,clip,prompt- wire these where the loader used to go. Encode after the LoRAs: feed this node'sclipinto your text encoder, not the loader's, or you drop a LoRA's text-encoder half.
The optional loras input is a legacy list for older workflows; in current versions the tags live in the prompt itself. model and clip are optional too - connect the loader's, and the box colours accordingly.
The part you can't see in the schema
The front end is where this earns its keep. Tags are coloured as you type - cyan is a file that fits your wired model, red matches nothing, orange fits another base model, green a trigger word, grey a // note. Press / and it completes inline against your library, filtered to your wired base model; Tab accepts, and Tab again on a tag offers that LoRA's trigger words. Ctrl+β/β nudges a tag's weight in 0.1 steps, Ctrl+/ comments a line out, Alt+β/β reorders lines - and LoRA order matters. Trigger words are offered, never auto-appended; they come only from .civitai.info sidecars, which is where the pack's optional companion Civitai Updater earns its keep - no sidecar, no trigger words.
Installing it
Same pack, one line, restart after. Python 3.9+, and the only real dependencies are things ComfyUI already ships:
cd ComfyUI/custom_nodes
git clone https://github.com/gregory-richard/ComfyUI-WarpPipe.git
or comfy node install warppipe, or search ComfyUI Manager for "WarpPipe Nodes".
Common issues
The pack is brand new (v4.0.0, September 2026), so no community war stories exist yet - but the author's own troubleshooting covers what bites:
- The box is a plain text field - no colouring, no completion. That means the frontend JS didn't load: check the browser console for
/extensions/warppipe/prompt_ui.js. Installed from the registry before 4.0.0? The wheel shipped without the JavaScript at all - upgrade. - Every tag is red. Red means no file matched; if it's everything, the library didn't load. Open
http://127.0.0.1:8188/warppipe/lorasdirectly to see what ComfyUI thinks your LoRA folder contains. - Red on a file you know is there - a bare fragment that matches several files can't resolve (one real collection had 24 files sharing a single phrase). Use more of the name, or a folder prefix.
- The run stops with "matches no file" or "matches N files." Deliberate, see above. Fix the tag or comment it out with
//. - No trigger words anywhere - nothing on disk knows them without a sidecar. Run Civitai Updater's Scan Metadata Only to fetch them.
Honest take: if you run two LoRAs and remember their weights, a stock loader is fine and this is polish. If you juggle a real library across SDXL and Flux and keep losing track of what a tag does, prompt-and-LoRA-in-one-box with live feedback is the workflow upgrade you didn't know you wanted. It pairs naturally with the pack's Warp and Save Image (Civitai) nodes - feed model, clip and prompt into a warp and the save node records the whole generation honestly.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | The prompt. LoRAs go inline as <lora:name:weight>, and anything after // is a note that is not sent. | |
| apply_to_clip | BOOLEAN | true | β |
| lorasopt | STRING | β | |
| modelopt | MODEL | β | |
| clipopt | CLIP | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |
| clip | CLIP | β |
| prompt | STRING | β |