Toggle Theme

Using LoRA in ComfyUI: Loading, Weights, Stacking, and Character Consistency

Easton editorial illustration: central rounded pseudo-node chain from BASE through two LoRA modules to four matching character portrait tiles

"The official ComfyUI LoraLoader documentation confirms the LoRA folder, the two input/output paths, the strength ranges, and node chaining."

Generate four images with the same character LoRA and every face looks different. Move the weight from 0.5 to 1.2 and the output barely changes. Chain two LoRAs and their styles start fighting. ComfyUI exposes these controls more explicitly than SD WebUI, which gives you more room to tune but also more ways to wire or configure the workflow incorrectly. The sections below cover every Load LoRA parameter, the practical difference between strength_model and strength_clip, multi-LoRA wiring and weight allocation, and a repeatable way to reduce character drift through model matching, trigger words, and troubleshooting.

LoRA basics and folder setup

LoRA, or Low-Rank Adaptation, is a lightweight weight-adaptation method. It does not replace the base checkpoint. Instead, it applies an additional set of weights at runtime. A LoRA is often tens of megabytes, while a base model may take several gigabytes. Training adjusts this smaller layer rather than retraining an entire checkpoint, reducing both training and storage costs.

Where to put LoRA files

ComfyUI’s standard path is ComfyUI/models/loras/, and it also detects subfolders. Prefer the .safetensors file supplied by the model author, place it in this folder, and refresh the model list. Restart ComfyUI if the dropdown still does not update. The new file should appear in the Load LoRA node’s lora_name dropdown. Do not treat the extension as proof of compatibility; also check the base model and intended use on the model card.

How LoRA variants are handled

Variants such as Lycoris, LoHa, LoKr, and LoCon are used through the same LoRA loading flow. Once the file is in the correct folder, the node workflow does not change. The variants differ mainly in how they are trained and factorized, which can affect file size or behavior in particular cases. From the user’s perspective, the loading steps are the same.

Load LoRA node parameters

The Load LoRA node applies LoRA weights to the output of a base model. It has two inputs on the left, two outputs on the right, and three settings that determine what is loaded and how strongly it is applied.

Input and output ports

PortDirectionTypePurpose
modelInputMODELConnects to the MODEL output of the base Checkpoint Loader
clipInputCLIPConnects to the CLIP output of the base Checkpoint Loader
modelOutputMODELMODEL with LoRA weights applied; connects to the downstream sampler
clipOutputCLIPCLIP with LoRA adjustments applied; connects to the prompt path

Both outputs need to reach the appropriate downstream nodes. If the model output is connected but the clip output is not, trigger-word response may weaken or disappear.

Node settings

SettingTypeRangePurpose
lora_nameDropdownFile listLoads from models/loras/; newly added files appear after a refresh
strength_modelNumber-100 to 100Controls the effect on model weights; everyday tests usually start around 0 to 1
strength_clipNumber-100 to 100Controls the effect on CLIP text encoding; everyday tests usually start around 0 to 1

Both strength inputs accept negative values, but a negative value is not a universal “weaker” setting. Different LoRAs can respond differently, so test negatives only after compatibility is confirmed and the seed is fixed. The two strengths do not need to match; inspect the model and CLIP sides separately for each LoRA.

strength_model vs. strength_clip in practice

Load LoRA exposes two strengths instead of one. Do you need to change both, or can one stay fixed?

What each strength changes

strength_model controls the LoRA’s effect on image generation. It changes the model weights that directly shape details, style, texture, and lighting.

strength_clip controls the LoRA’s effect on text encoding. It changes how the CLIP text encoder interprets the prompt and responds to trigger words.

The model strength determines how visible the visual traits become; the CLIP strength influences how strongly the LoRA follows the trigger and prompt. Their relationship is not as simple as “higher equals better.”

Typical starting points by LoRA type

LoRA typestrength_modelstrength_clipNotes
Character0.8-1.00.6-0.8A stronger model side can preserve character traits; lower CLIP can avoid an overbearing trigger
Style0.7-0.90.7-0.9Similar values balance style and prompt interpretation
Concept0.6-0.80.8-1.0A stronger CLIP side can reinforce the trigger while a lower model side limits visual overload

These are experience-based starting points. The usable range depends on the LoRA’s training data and trigger strength.

Sweep one weight with the same prompt and seed

  1. Fix the prompt, seed, CFG, and sampling steps.
  2. Change only strength_model and test 0.6, 0.8, 1.0, and 1.2.
  3. Compare the four images for style, detail, and character traits.
  4. Choose the strongest value that still produces a clean image as the model-side starting point.
  5. Fine-tune strength_clip while watching trigger response and prompt consistency.

Changes to CLIP strength are less direct visually, so tune it after finding a useful model strength. If the style is right but the face breaks, try lowering strength_clip by 0.1 or 0.2.

Trigger words: how to find and use them

The LoRA is selected and the strength is nonzero, yet the image barely changes. Often the LoRA is fine; the trigger word is missing or disconnected from the intended concept.

What a trigger word is

A trigger word is a keyword defined during training. It activates the traits the LoRA learned. Many character and concept LoRAs need one, while some style LoRAs work without a required trigger or offer an optional one to reinforce the style.

Without the trigger, the effect may be weak or absent. You might see a faint stylistic bias while core traits such as the face, clothing, or hair fail to appear.

How to find the trigger word

  1. Open the model card, such as its CivitAI page.
  2. Look for “Trigger Words” or “Activation Text.”
  3. Copy the trigger token into the prompt.

Some authors put the trigger in the description rather than a separate field. Read the usage notes as well. A LoRA that needs no trigger should say so explicitly.

Where the trigger belongs in the prompt

Keep the trigger next to the character or concept it describes and separate it from other keywords with commas. Follow the model card and current workflow for any extra weighting syntax; simply moving a word to the beginning does not guarantee a stronger effect.

Example prompt structure:

character_name, 1girl, long hair, blue eyes, white dress, ...

Here, character_name stands for the trigger token listed on the model card. A standard ComfyUI workflow already selects the model through Load LoRA, so you do not need to copy WebUI’s <lora:filename:weight> syntax unless a specific custom-node workflow supports it.

Follow the trigger with stable character traits, then scene and composition details. Avoid inserting unrelated style terms between the trigger and the traits it is meant to activate.

Weight ranges for style and character LoRAs

What weight should a LoRA use? Starting at 1.0 can produce either a broken image or almost no visible effect because different LoRA types have different useful ranges.

Reference ranges

LoRA typeSuggested rangeStarting pointSymptoms when too high
Style0.5-0.90.75Color clipping, added noise, or a style strong enough to distort the subject
Character0.7-1.20.8 for well-known characters
1.0-1.1 for small training sets
Broken anatomy, exaggerated facial features, or overemphasized traits

These are empirical starting points, not official limits. A character trained on a larger dataset may work around 0.8, while a small or personal dataset may need 1.0-1.1 before its traits become clear.

A quick weight-sweep method

  1. Fix the prompt, seed, CFG, and sampling steps.
  2. Set strength_model to 0.6 and strength_clip to 0.8.
  3. Generate the first image and check whether the LoRA appears.
  4. Change strength_model to 0.8 and generate the second image.
  5. Change strength_model to 1.0 and generate the third image.
  6. Change strength_model to 1.2 and generate the fourth image.
  7. Compare the four outputs and choose the range that is visible without breaking the image.
  8. Fine-tune inside that range in steps of about 0.1.

If 0.6 shows no effect, check for a missing trigger or mismatched base model. If 1.2 produces severe distortion or color failure, the useful range may be closer to 0.7-0.9. After sweeping the model side, tune CLIP strength for prompt response.

The comparison works only if the prompt and seed remain fixed; otherwise the images change for reasons unrelated to the weight.

Stacking multiple LoRAs: order and primary weights

Using a character LoRA with a style LoRA, or combining several character LoRAs, requires a multi-LoRA stack. ComfyUI handles this by chaining nodes.

How to chain the nodes

Connect the model and clip outputs of the first Load LoRA to the corresponding inputs of the second. Connect the second node to a third in the same way. Only the final Load LoRA outputs go to the sampler and text-encoding path.

Official workflows support chaining multiple Load LoRA nodes. In real combinations, the base model, LoRA training method, strength, and custom nodes may all affect the result. Do not assume order is always irrelevant. Fix the seed, compare both orders, and keep the better chain. Weight allocation is still usually the first variable that determines which LoRA leads.

Weight allocation strategies

StackWeight setupExpected result
Two LoRAs0.5-0.6 eachBalanced combination with less conflict
Three or more LoRAsPrimary 0.8, secondary 0.3-0.5Primary LoRA leads; secondary LoRAs support it
Character + styleCharacter 0.8-1.0, style 0.5-0.7Character traits take priority without losing the style

If both LoRAs are set around 0.8-1.0, the character can fade and the styles can collide. With three or more, define a clear primary LoRA around 0.8 and lower the others to roughly 0.3-0.5 so that their traits do not overwrite one another.

Stacking risks

Style conflict occurs when two incompatible style LoRAs pull the image in different directions. Character traits fade when too many LoRAs remain strong. Pushing several LoRAs close to 1.0 can produce broken anatomy, clipped colors, or unstable output.

Test each LoRA by itself before combining them, then assign primary and secondary weights. Do not start by giving every LoRA the same strength.

A character-consistency recipe

Generate four images with one character LoRA and every face still changes. LoRA supplies a set of traits; it does not guarantee identity consistency. Reproducibility depends on the complete generation setup.

The core combination

Start with a LoRA, a fixed seed, and a fixed prompt structure. Keep the sampler, steps, CFG, size, and workflow unchanged, along with the trigger, character traits, scene order, and weights. Under the same environment, that gives you a reproducible baseline. Once the scene, composition, or control nodes change, the character can still drift.

Example prompt structure:

character_name, 1girl, long hair, blue eyes, white dress, school background, ...

Change only the scene section between generations. Keep the trigger and character traits stable.

Add structural or reference-image control

Pose, depth, or edge ControlNet workflows can hold composition and body structure. If facial identity is the main problem, evaluate a reference-image, IP-Adapter/FaceID, or face-refinement workflow that supports the same base model. These tools solve a different problem from LoRA, and combining them can reduce drift further.

Keep the LoRA, seed, and prompt baseline fixed before adding one compatible control workflow. There is no universal control strength; start in the middle and compare gradually so the result does not become rigid.

Limits to expect

This combination cannot promise 100% identity. Expressions, lighting, and details still change. LoRA plus fixed generation settings lowers drift, but it does not clone the character exactly.

Drift usually appears when the prompt, sampler, steps, CFG, size, base model, LoRA strength, or control nodes change. Some hardware and operators can also introduce nondeterminism. Structural controls can lock pose or outline, while hair, clothing, expression, and background details still vary.

Character consistency is an iterative tuning problem. Adjust the weights and prompt structure for the specific LoRA and scene instead of expecting a one-time universal configuration.

Matching SD1.5, SDXL, and FLUX LoRAs to base models

A common reason for a LoRA to show no effect is a base-model mismatch. An SD1.5 LoRA needs an SD1.5 checkpoint, an SDXL LoRA needs an SDXL checkpoint, and a FLUX LoRA needs the corresponding FLUX model and workflow. A mismatch can silently do nothing or produce an error.

Compatibility rules

LoRA typeMatching baseMismatch symptom
SD1.5 LoRASD1.5 checkpointNo visible effect, a weak effect, or silent failure
SDXL LoRASDXL checkpointShape mismatch errors, broken output, or no effect
FLUX LoRAMatching FLUX base model and text encodersLoading failure, key or dimension mismatch, or abnormal output

Using an SDXL LoRA with an SD1.5 base may produce an error or simply have no visible effect. A FLUX LoRA must match its FLUX base model, text encoders, and workflow. Current official examples use built-in nodes such as LoraLoaderModelOnly according to the workflow, so do not treat one third-party node name as the only valid entry point.

How to confirm the base model

  1. Open the model card.
  2. Find “Base Model” or “Compatible Model.”
  3. Confirm whether it is SD1.5, SDXL, or a specific FLUX version.
  4. Load the matching checkpoint or diffusion model in ComfyUI.

Some LoRAs advertise support for multiple bases, but their actual output can differ. Prefer the base recommended by the author.

Notes for FLUX LoRAs

FLUX uses a different model structure and workflow from SD1.5 and SDXL. Its LoRA must match the exact FLUX version and loading path. Current ComfyUI FLUX examples can use LoraLoaderModelOnly and load the diffusion model, text encoders, and VAE separately.

The FLUX ecosystem is still evolving. If loading fails, check the current official ComfyUI tutorial for that model, the LoRA model card, and the base-model version before blaming a node. An old tutorial’s node name is not a reliable compatibility test.

Troubleshooting a missing or weak LoRA effect

If loading the LoRA produces no change or only a weak effect, work through the checks in this order.

SymptomLikely causeCheck
Image is unchangedLoRA is not in the active pathVerify that both model and clip are connected through Load LoRA
Image is unchangedStrength is 0Inspect strength_model and strength_clip
Effect is weakWeight is too low, below about 0.3Raise it toward 0.6-1.0 and run a weight sweep
Effect is weakTrigger is missingOpen the model card, find Trigger Words, and add them to the prompt
Effect is absentBase model mismatchConfirm SD1.5, SDXL, or FLUX and switch to the matching base
Effect is absentWrong folderConfirm that the file is inside models/loras/
Effect is absentWrong or unsupported model fileUse the author’s supported LoRA file and confirm the model card instead of relying on the extension alone
LoRA is missing from the listModel list was not refreshedRefresh the list or restart ComfyUI
Loading, key, or dimension errorFLUX LoRA and workflow do not matchCheck the FLUX version, official example nodes, text encoders, and model card
Styles conflict or character traits fadePoor multi-LoRA weight allocationLower the secondary LoRA and define a clear primary one

First check the model and clip wiring, then the strength values, the trigger, the base-model match, and finally the file location. Most weak-effect cases are resolved by the trigger, weights, or model compatibility.

Once loading, weight tuning, and stacking work, you can move into more specialized workflows.

Related articles

Advanced directions

Multi-LoRA weight scheduling can use third-party nodes such as rgthree Power LoRA Loader to make larger stacks easier to manage and to support workflow-specific masking or regional behavior.

LoRA masks apply an effect to a selected region instead of styling the entire image or overwriting character traits everywhere.

Training a custom LoRA with Kohya_ss or another tool requires its own workflow for datasets, training parameters, validation, and export.

LoRA is a common Stable Diffusion adaptation method, but weight tuning and stacking still require controlled tests. Every LoRA has its own useful range. Test each one alone, combine only after you have a baseline, and use the troubleshooting table when the result disappears or breaks.

Load and tune a LoRA in ComfyUI

Start with file placement, node wiring, and trigger words, then establish the two strengths, a multi-LoRA stack, and character-consistency controls.

⏱️ Estimated time: 30 min

  1. 1

    Step 1: Match the LoRA to its base model

    Check the model card for SD1.5, SDXL, or the exact FLUX version, and record any required trigger words.
  2. 2

    Step 2: Place the file in the LoRA folder

    Put the author's LoRA file in ComfyUI/models/loras/, refresh the model list, and confirm that it appears under lora_name.
  3. 3

    Step 3: Connect MODEL and CLIP

    Feed the base model's MODEL and CLIP into Load LoRA, then route both outputs into the sampling and text-encoding paths.
  4. 4

    Step 4: Sweep weights under fixed conditions

    Hold the prompt, seed, sampler, steps, CFG, and size fixed; compare 0.6, 0.8, 1.0, and 1.2 before narrowing the range.
  5. 5

    Step 5: Combine multiple LoRAs

    Chain Load LoRA nodes, verify each LoRA alone, then assign primary and secondary weights and compare different orders.
  6. 6

    Step 6: Record the result and troubleshoot

    Save the base model, LoRA, trigger words, weights, and generation settings. If the effect is missing, check wiring, weights, trigger words, base-model compatibility, and file location in that order.

FAQ

Why does the image barely change after I load a LoRA in ComfyUI?
Check both MODEL and CLIP connections, the strength values, the model-card trigger words, and the LoRA's base-model version. If those are correct, fix the seed and raise the weight one step at a time.
Where should I put LoRA files in ComfyUI?
Use ComfyUI/models/loras/; subfolders are detected too. Prefer the safetensors file supplied by the model author, refresh the list, and restart ComfyUI only if it still does not appear.
What is the difference between strength_model and strength_clip?
strength_model controls the LoRA's effect on model weights, while strength_clip controls its effect on CLIP text encoding. Usually you establish the model-side strength first, then tune the trigger response on the CLIP side.
How do I stack multiple LoRAs in ComfyUI?
Chain several Load LoRA nodes. Find a usable range for each LoRA by itself, then choose a primary one, lower the secondary weights, and compare the stack under fixed generation settings.
How can I reduce character drift across images?
Keep the seed, sampler, steps, CFG, size, trigger words, and character description fixed. Add pose, depth, or reference-image control when needed. This reduces drift but cannot guarantee identical images.
Can I mix SD1.5, SDXL, and FLUX LoRAs?
Do not assume they are interchangeable. A LoRA must match the relevant base model and workflow; a mismatch may produce no visible effect, loading errors, or broken output.
What LoRA weight should I use?
There is no universal best value. Test everyday work around 0 to 1 first. Community ranges for character and style LoRAs are starting points only; a fixed-condition weight sweep is more reliable.

14 min read · Published on: Jul 20, 2026 · Modified on: Jul 21, 2026

Comments

Sign in with GitHub to leave a comment

Easton BlogEaston Blog