Nodes/ComfyUI Easy Civitai (XTNodes)/Load Lora with Previews (XTNodes)
ComfyUI Node

Load Lora with Previews (XTNodes)

A normal LoRA loader that goes and asks Civitai what it is

By X-T-E-R·Created 2 years ago·Updated 2 years ago· 50
Load Lora with Previews (XTNodes)
  • model
  • clip
  • MODEL
  • CLIP
  • civitai_trigger_words
  • summary(Text)
model_name
strength_model1.00
strength_clip1.00
override_trigger_words
preview_imagestrue

It's ComfyUI's ordinary LoRA loader - plug in a model and a clip, pick a file, dial in a strength - with one thing bolted on: it goes and asks Civitai what that file actually is. You get the trigger words and a written summary without ever opening a browser tab, which quietly fixes one of the most common ways a LoRA "doesn't work": you loaded it, the weight's fine, and the output looks unchanged because you forgot the one word in the prompt the file needs to fire. That's not hypothetical - a missing trigger word sits right at the top of the community's LoRA-troubleshooting checklist, and this node exists specifically so you don't have to remember them by hand.

How it works

Under the hood it's doing two unrelated things at once. The LoRA application itself is exactly the stock ComfyUI path - it patches your model and clip at the strengths you set, nothing custom there. The trick is what happens first: the moment you point it at a file, it computes a BLAKE3 hash of it and looks that hash up against Civitai's own hash-search API. If Civitai recognizes the file, you get its trigger words and description back for free, and the match gets cached locally so it's instant on later runs. If it doesn't recognize it - a LoRA you trained yourself, one you got somewhere other than Civitai, or one Civitai has since pulled - nothing breaks. The LoRA still applies exactly as normal; you just don't get the bonus metadata, and the summary output will literally read "Could not find model in civitai.com" so you know that's what happened instead of wondering if something's silently wrong.

The inputs and outputs that matter

model and clip are the pair you're patching, same as any loader. model_name is a dropdown of whatever's sitting in your local loras folder - this node doesn't download anything; that's the separate Civitai-URL loader covered elsewhere in this pack. strength_model and strength_clip (both default 1.0, range -10 to 10) work exactly like the built-in loader. The one field worth knowing is override_trigger_words: leave it blank and Civitai's own trigger words win; fill it with a comma-separated list and yours wins instead, which matters when Civitai's metadata is wrong, incomplete, or the page has since changed. preview_images toggles whether Civitai's sample images get pulled into the node so you can eyeball what the file is supposed to produce.

On the output side, MODEL and CLIP wire onward exactly like normal. civitai_trigger_words comes out as a LIST you can feed straight into this pack's own Clean Prompt or Prompt Concatenate nodes to merge into your actual prompt. summary(Text) is mostly a debugging convenience - text you can drop into a Note node if you want to confirm what got matched.

How to install it

Grab it through ComfyUI Manager - search "ComfyUI Easy Civitai (XTNodes)" and install - or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes
pip install -r requirements.txt

then restart. This particular node doesn't touch the network beyond the one hash lookup, so you don't need aria2 installed for it specifically - that binary only matters for the Civitai-URL loaders that actually download files.

Common issues & troubleshooting

If you only see this pack's two prompt-utility nodes after installing and none of the loaders, don't assume you did the install wrong - that's a known, reported failure. Two open, unanswered GitHub issues describe exactly this, one literally titled "did you abandon the project?" The cause is structural: this pack's __init__.py imports every node file in a loop and silently swallows any exception one of them throws - no error printed, nothing in the log pointing at the real cause. The loader files depend on blake3, dynaconf, pydantic, codetiming and sanitize_filename; if any of those failed to install (blake3 in particular needs to compile on some platforms), the loaders vanish without a trace while the prompt nodes keep working fine. Re-run pip install -r requirements.txt inside the exact Python environment ComfyUI uses and read the terminal output rather than trusting a "success" toast.

Separately: don't wire a randomizer or primitive node straight into strength_model. One report in the wild shows that path throwing can't multiply sequence by non-int of type 'float', which reads like the upstream node handing over a list where a plain float was expected - a known ComfyUI trap with converted widget inputs, not something specific to this loader. Keep those widgets set manually, or route them through a node that guarantees a scalar float first.

Categoryloaders/With Previews

Inputs (7)

NameTypeDefaultDescription
modelMODEL
clipCLIP
model_nameCOMBO0 options:
strength_modelFLOAT1.00-10–10
strength_clipFLOAT1.00-10–10
override_trigger_wordsSTRING
preview_imagesBOOLEANtrue

Outputs (4)

NameTypeDescription
MODELMODEL
CLIPCLIP
civitai_trigger_wordsLIST
summary(Text)STRING