ComfyUI에서 LoRA 사용하기: 가중치, 다중 중첩, 캐릭터 일관성

"ComfyUI 공식 LoraLoader 문서에서 LoRA 폴더, 두 입출력 경로, strength 범위, 노드 체인 연결을 확인했습니다."
같은 캐릭터 LoRA로 네 장을 만들었는데 얼굴이 모두 다른 사람처럼 보입니다. 가중치를 0.5에서 1.2로 올려도 차이가 거의 없습니다. LoRA 두 개를 연결하자 스타일이 서로 충돌합니다. ComfyUI는 SD WebUI보다 설정을 더 세분화해 보여 주므로 조정 폭은 넓지만, 연결과 값이 잘못될 가능성도 큽니다. 아래에서는 Load LoRA의 모든 항목, strength_model과 strength_clip의 차이, 다중 LoRA 연결과 주·보조 가중치, 그리고 호환성·트리거·진단을 이용해 캐릭터 흔들림을 줄이는 방법을 다룹니다.
LoRA 기본 개념과 폴더 준비
LoRA는 Low-Rank Adaptation의 약자로, 가벼운 가중치 적응 방식입니다. 베이스 checkpoint를 바꾸지 않고 실행 중에 추가 가중치를 적용합니다. LoRA는 보통 수십 MB이고 베이스 모델은 수 GB이므로, 전체 checkpoint를 다시 학습하는 것보다 학습 비용과 저장 공간이 작습니다.
LoRA 파일 위치
표준 경로는 ComfyUI/models/loras/이며 하위 폴더도 감지합니다. 제작자가 제공한 .safetensors를 우선 선택해 이 폴더에 넣고 모델 목록을 갱신합니다. 드롭다운이 바뀌지 않으면 ComfyUI를 재시작합니다. 새 파일은 Load LoRA의 lora_name에 나타납니다. 확장자만으로 호환성을 판단하지 말고 모델 카드의 베이스 모델과 용도도 확인합니다.
LoRA 변형 처리 방식
Lycoris, LoHa, LoKr, LoCon 같은 변형도 같은 로드 흐름을 사용합니다. 파일이 올바른 폴더에 있으면 노드 workflow는 달라지지 않습니다. 차이는 주로 학습과 저랭크 분해 방식에 있어 파일 크기나 특정 상황의 동작에 영향을 줍니다. 사용자 관점의 로드 단계는 동일합니다.
Load LoRA 노드의 파라미터
Load LoRA는 베이스 모델 출력에 LoRA 가중치를 적용합니다. 왼쪽에 입력 두 개, 오른쪽에 출력 두 개가 있으며 세 설정으로 파일과 강도를 정합니다.
입력과 출력 포트
| 포트 | 방향 | 타입 | 역할 |
|---|---|---|---|
| model | 입력 | MODEL | 베이스 Checkpoint Loader의 MODEL 출력에 연결 |
| clip | 입력 | CLIP | 베이스 Checkpoint Loader의 CLIP 출력에 연결 |
| model | 출력 | MODEL | LoRA 적용 MODEL, 후단 sampler에 연결 |
| clip | 출력 | CLIP | LoRA 적용 CLIP, prompt 경로에 연결 |
두 출력은 각각 올바른 후단 노드에 도달해야 합니다. model만 연결하고 clip을 빼면 트리거 워드 반응이 약해지거나 사라질 수 있습니다.
노드 설정
| 설정 | 타입 | 범위 | 역할 |
|---|---|---|---|
| lora_name | 드롭다운 | 파일 목록 | models/loras/에서 선택, 새 파일은 갱신 후 표시 |
| strength_model | 숫자 | -100~100 | 모델 가중치 영향, 보통 0~1 부근부터 시험 |
| strength_clip | 숫자 | -100~100 | CLIP 텍스트 인코딩 영향, 보통 0~1 부근부터 시험 |
두 값 모두 음수를 받을 수 있지만, 음수를 공통적인 “약화 모드”로 보면 안 됩니다. LoRA마다 반응이 다르므로 호환성을 확인하고 seed를 고정한 뒤 개별 시험합니다. 두 값을 같게 둘 필요도 없습니다.
strength_model과 strength_clip의 실제 차이
Load LoRA에는 강도가 두 개 있습니다. 둘 다 바꿔야 할까요, 하나는 고정해도 될까요?
각 가중치가 바꾸는 대상
strength_model은 시각 생성에 작용합니다. 디테일, 스타일, 질감, 조명을 결정하는 모델 가중치를 바꿉니다.
strength_clip은 텍스트 인코딩에 작용합니다. CLIP이 prompt와 트리거 워드를 해석하는 방식을 바꿉니다.
model 쪽은 특징이 얼마나 보이는지, CLIP 쪽은 트리거를 얼마나 강하게 읽는지에 관여합니다. 따라서 높을수록 항상 좋은 것은 아닙니다.
LoRA 유형별 시작값
| LoRA 유형 | strength_model | strength_clip | 설명 |
|---|---|---|---|
| 캐릭터 | 0.8-1.0 | 0.6-0.8 | model로 특징을 유지하고 낮은 CLIP으로 과한 트리거를 제한 |
| 스타일 | 0.7-0.9 | 0.7-0.9 | 비슷한 값으로 스타일과 prompt 해석을 균형화 |
| 콘셉트 | 0.6-0.8 | 0.8-1.0 | CLIP으로 트리거를 강화하고 낮은 model로 과적용 방지 |
이는 경험 기반 시작값입니다. 실제 범위는 학습 데이터와 트리거 강도에 따라 달라집니다.
같은 prompt와 seed로 가중치 스윕하기
- prompt, seed, CFG, sampling steps를 고정합니다.
- strength_model만 바꾸며 0.6, 0.8, 1.0, 1.2를 시험합니다.
- 네 이미지의 스타일, 디테일, 캐릭터 특징을 비교합니다.
- 이미지가 깨지지 않는 가장 높은 값을 model 시작점으로 고릅니다.
- strength_clip을 미세 조정하며 트리거 반응과 prompt 일관성을 봅니다.
CLIP 변화는 시각적으로 간접적이므로 model 범위를 먼저 정합니다. 스타일은 맞지만 얼굴이 깨지면 strength_clip을 0.1~0.2 낮춰 봅니다.
트리거 워드를 찾고 사용하는 방법
LoRA를 선택했고 가중치도 0이 아닌데 이미지가 거의 변하지 않습니다. 트리거 워드가 빠졌을 수 있습니다.
트리거 워드란 무엇인가
학습 중 정의된 키워드로, LoRA가 배운 특징을 활성화합니다. 캐릭터와 콘셉트 LoRA는 필요한 경우가 많습니다. 일부 스타일 LoRA는 필수 트리거가 없거나 선택형 트리거만 제공합니다.
트리거가 없으면 효과가 약할 수 있습니다. 미세한 스타일만 보이고 얼굴, 의상, 머리 같은 핵심 특징은 나타나지 않을 수 있습니다.
트리거 워드 확인 방법
- CivitAI 같은 모델 카드를 엽니다.
- “Trigger Words” 또는 “Activation Text”를 찾습니다.
- 해당 토큰을 prompt에 복사합니다.
전용 항목이 아니라 설명에만 적힌 경우도 있으므로 사용 안내도 읽습니다. 트리거가 필요 없다면 그 사실이 명시되어 있어야 합니다.
prompt 안의 위치
트리거는 대상 캐릭터나 콘셉트 설명 가까이에 두고 쉼표로 구분합니다. 추가 가중치 문법은 모델 카드와 현재 workflow를 따릅니다. 단순히 맨 앞에 둔다고 더 강해지는 것은 아닙니다.
예시 구조:
character_name, 1girl, long hair, blue eyes, white dress, ...
character_name은 모델 카드의 trigger token입니다. 표준 ComfyUI workflow는 Load LoRA에서 이미 모델을 선택하므로, 특정 커스텀 노드가 지원하지 않는 한 WebUI의 <lora:파일명:가중치> 문법이 필요하지 않습니다.
그 뒤에 안정적인 캐릭터 특징, 장면, 구도를 적습니다. 트리거와 대상 특징 사이에 무관한 스타일을 넣지 않습니다.
스타일형과 캐릭터형 LoRA의 가중치 범위
1.0에서 시작하면 이미지가 깨지거나 효과가 안 보일 수 있습니다. 유형마다 유효 범위가 다릅니다.
참고 범위
| LoRA 유형 | 제안 범위 | 시작값 | 너무 높을 때 증상 |
|---|---|---|---|
| 스타일 | 0.5-0.9 | 0.75 | 색 과포화, 노이즈 증가, 스타일로 인한 대상 왜곡 |
| 캐릭터 | 0.7-1.2 | 잘 알려진 캐릭터 0.8 작은 학습셋 1.0-1.1 | 해부학 오류, 과장된 얼굴, 특징 과적용 |
공식 한계가 아니라 경험값입니다. 큰 데이터셋은 0.8 부근에서 작동하고, 작은 학습은 1.0~1.1이 필요할 수 있습니다.
빠른 가중치 스윕
- prompt, seed, CFG, sampling steps를 고정합니다.
- strength_model은 0.6, strength_clip은 0.8로 둡니다.
- 첫 이미지를 만들고 효과를 확인합니다.
- strength_model을 0.8로 바꿔 두 번째를 만듭니다.
- strength_model을 1.0으로 바꿔 세 번째를 만듭니다.
- strength_model을 1.2로 바꿔 네 번째를 만듭니다.
- 네 결과를 비교해 보이면서 깨지지 않는 범위를 고릅니다.
- 그 범위 안에서 약 0.1씩 조정합니다.
0.6에서 효과가 없으면 트리거와 베이스 모델을 확인합니다. 1.2에서 크게 깨지면 0.7~0.9가 맞을 수 있습니다. 그 뒤 CLIP을 조정합니다.
prompt와 seed가 달라지면 다른 변수가 섞이므로 고정합니다.
여러 LoRA 중첩: 순서와 주 가중치
캐릭터와 스타일을 함께 쓰거나 캐릭터 LoRA 여러 개를 쓰려면 Load LoRA 체인이 필요합니다.
노드 체인 연결 방법
첫 Load LoRA의 model과 clip 출력을 두 번째의 같은 입력에 연결합니다. 세 번째도 같은 방식으로 이어 갑니다. 마지막 노드만 sampler와 텍스트 인코딩으로 보냅니다.
공식 workflow는 체인 연결을 지원합니다. 실제 결과에는 베이스 모델, 학습 방식, 가중치, 커스텀 노드도 영향을 줍니다. 순서가 항상 무관하다고 가정하지 말고 seed를 고정해 두 순서를 비교합니다. 주·보조 관계를 정하는 첫 변수는 보통 가중치입니다.
가중치 배분 전략
| 중첩 | 설정 | 예상 결과 |
|---|---|---|
| LoRA 두 개 | 각각 0.5-0.6 | 충돌을 줄인 균형 조합 |
| 세 개 이상 | 주 0.8, 보조 0.3-0.5 | 주 LoRA가 이끌고 보조가 보완 |
| 캐릭터 + 스타일 | 캐릭터 0.8-1.0, 스타일 0.5-0.7 | 캐릭터 특징을 우선하면서 스타일 유지 |
둘 다 0.81.0이면 캐릭터 특징이 흐려지고 스타일이 충돌할 수 있습니다. 세 개 이상은 하나를 0.8 부근에 두고 나머지를 0.30.5로 낮춥니다.
중첩 위험
호환되지 않는 스타일은 서로 다른 방향으로 이미지를 끌어갑니다. 강한 LoRA가 너무 많으면 캐릭터 특징이 희석됩니다. 여러 값을 1.0에 가깝게 두면 해부학 오류, 과포화, 불안정 출력이 늘어납니다.
각 LoRA를 단독 시험한 뒤 주·보조 역할을 정합니다. 처음부터 모두 같은 값으로 시작하지 않습니다.
캐릭터 일관성 구성
캐릭터 LoRA를 써도 네 얼굴이 다를 수 있습니다. LoRA는 특징을 제공하지만 신원 동일성을 보장하지 않습니다. 재현성은 전체 생성 조건으로 결정됩니다.
핵심 조합
LoRA, 고정 seed, 고정 prompt 구조부터 시작합니다. sampler, steps, CFG, 크기, workflow와 트리거, 캐릭터 특징, 장면 순서, 가중치를 모두 유지합니다. 같은 환경에서는 재현 가능한 기준이 되지만, 장면·구도·제어 노드가 바뀌면 다시 흔들릴 수 있습니다.
예시 구조:
character_name, 1girl, long hair, blue eyes, white dress, school background, ...
생성마다 장면 부분만 바꾸고 트리거와 캐릭터 특징은 유지합니다.
구조 또는 참조 이미지 제어 추가
포즈, 깊이, 에지 ControlNet workflow는 구도와 신체 구조를 고정하는 데 도움이 됩니다. 얼굴 동일성이 핵심이면 같은 베이스를 지원하는 참조 이미지, IP-Adapter/FaceID, 얼굴 보정 workflow를 검토합니다. LoRA와 다른 요소를 제어하므로 함께 쓰면 흔들림을 더 줄일 수 있습니다.
먼저 LoRA, seed, prompt 기준을 고정한 뒤 호환되는 제어 하나를 추가합니다. 보편적인 강도는 없으므로 중간값부터 비교해 화면이 경직되는 것을 피합니다.
예상해야 할 한계
이 조합도 100% 동일성을 보장하지 않습니다. 표정, 조명, 세부는 바뀝니다. 고정 조건은 흔들림을 줄이지만 캐릭터를 복제하지는 않습니다.
prompt, sampler, steps, CFG, 크기, 베이스 모델, LoRA 가중치, 제어 노드의 변경이 흔한 원인입니다. 일부 하드웨어와 연산자는 비결정성을 만들기도 합니다. 구조를 고정해도 머리, 의상, 표정, 배경은 변할 수 있습니다.
캐릭터 일관성은 반복 조정 문제입니다. 특정 LoRA와 장면에 맞춰 가중치와 prompt 구조를 바꿉니다.
SD1.5, SDXL, FLUX LoRA와 베이스 모델 맞추기
베이스 모델 불일치는 효과가 없는 흔한 원인입니다. SD1.5 LoRA는 SD1.5, SDXL LoRA는 SDXL, FLUX LoRA는 해당 FLUX 모델과 workflow가 필요합니다. 불일치는 조용히 무시되거나 오류를 냅니다.
호환성 규칙
| LoRA 유형 | 맞는 베이스 | 불일치 증상 |
|---|---|---|
| SD1.5 LoRA | SD1.5 checkpoint | 효과 없음, 약한 효과, 조용한 실패 |
| SDXL LoRA | SDXL checkpoint | shape 오류, 깨진 출력, 효과 없음 |
| FLUX LoRA | 해당 FLUX 모델과 텍스트 인코더 | 로드 실패, key·차원 불일치, 비정상 출력 |
SDXL LoRA를 SD1.5에 쓰면 오류가 나거나 아무 변화가 없을 수 있습니다. FLUX는 모델, 텍스트 인코더, workflow가 맞아야 합니다. 현재 공식 예시는 상황에 따라 LoraLoaderModelOnly 같은 내장 노드를 사용하므로 특정 서드파티 노드만 정답으로 보지 않습니다.
베이스 모델 확인 방법
- 모델 카드를 엽니다.
- “Base Model” 또는 “Compatible Model”을 찾습니다.
- SD1.5, SDXL 또는 정확한 FLUX 버전을 확인합니다.
- ComfyUI에서 해당 checkpoint나 diffusion model을 로드합니다.
여러 베이스 지원이라고 적혀 있어도 결과는 달라질 수 있습니다. 제작자 추천 베이스를 우선합니다.
FLUX LoRA 참고 사항
FLUX는 SD1.5·SDXL과 모델 구조 및 workflow가 다릅니다. LoRA는 해당 FLUX 버전과 로드 경로에 맞아야 합니다. 현재 예시는 LoraLoaderModelOnly를 쓰고 diffusion model, 텍스트 인코더, VAE를 따로 로드하기도 합니다.
생태계는 계속 바뀝니다. 실패하면 현재 공식 튜토리얼, LoRA 모델 카드, 베이스 버전을 먼저 확인합니다. 오래된 글의 노드 이름만으로 호환성을 판단할 수 없습니다.
LoRA 효과가 없거나 약할 때 진단하기
이미지가 거의 또는 전혀 바뀌지 않으면 다음 순서로 확인합니다.
| 증상 | 가능한 원인 | 확인 방법 |
|---|---|---|
| 이미지 변화 없음 | 활성 경로에 LoRA 없음 | model과 clip이 Load LoRA를 통과하는지 확인 |
| 이미지 변화 없음 | 가중치가 0 | strength_model과 strength_clip 확인 |
| 효과 약함 | 약 0.3 미만의 낮은 가중치 | 0.6-1.0으로 올려 스윕 |
| 효과 약함 | 트리거 누락 | 모델 카드의 Trigger Words를 prompt에 추가 |
| 효과 없음 | 베이스 불일치 | SD1.5, SDXL, FLUX 확인 후 베이스 변경 |
| 효과 없음 | 잘못된 폴더 | models/loras/ 확인 |
| 효과 없음 | 잘못되거나 미지원 파일 | 확장자만 보지 말고 배포 파일과 모델 카드 확인 |
| 목록에 LoRA 없음 | 목록 미갱신 | 갱신하거나 ComfyUI 재시작 |
| 로드·key·차원 오류 | FLUX LoRA와 workflow 불일치 | FLUX 버전, 공식 노드, 인코더, 모델 카드 확인 |
| 스타일 충돌·특징 희석 | 다중 LoRA 배분 문제 | 보조 가중치를 낮추고 주 LoRA 지정 |
먼저 model/clip, 그다음 가중치, 트리거, 베이스, 파일 위치를 확인합니다. 약한 효과의 대부분은 트리거, 가중치, 호환성에서 해결됩니다.
다음 단계와 관련 글
로드, 조정, 중첩이 안정되면 목적별 workflow로 확장할 수 있습니다.
관련 글
- ComfyUI 입문 가이드: 설치, 모델 폴더, 노드, 첫 생성
- ComfyUI workflow 재사용 가이드: 불러오기, 노드 의존성, 모델 경로 점검
- Stable Diffusion 모델 선택 가이드: SD1.5, SDXL, FLUX와 제약 비교
- Stable Diffusion prompt 템플릿 가이드: prompt 구조, 가중치 문법, 반복 작업 정리
- 포즈, 선화, 깊이 ControlNet 활용(게시 후 링크 추가)
고급 방향
큰 중첩에서는 rgthree Power LoRA Loader 같은 서드파티 노드가 가중치 관리를 단순화하고 workflow에 따라 마스크나 영역 적용을 제공할 수 있습니다.
LoRA 마스크는 이미지 전체가 아니라 선택 영역에만 효과를 적용합니다.
Kohya_ss 등으로 자체 LoRA를 학습하려면 데이터셋, 학습 파라미터, 검증, 내보내기를 별도 흐름으로 설계해야 합니다.
LoRA는 Stable Diffusion의 일반적인 적응 방식이지만 가중치와 중첩에는 통제된 비교가 필요합니다. 각각을 단독 시험하고 안정된 기준 뒤에 조합하며, 효과가 사라지거나 깨지면 표를 위에서부터 확인합니다.
ComfyUI에서 LoRA를 로드하고 조정하는 방법
파일 배치, 노드 연결, 트리거 워드부터 시작해 두 가중치, 다중 LoRA, 캐릭터 일관성 제어까지 설정합니다.
⏱️ Estimated time: 30 min
- 1
Step 1: LoRA와 베이스 모델 맞추기
모델 카드에서 SD1.5, SDXL 또는 정확한 FLUX 버전을 확인하고 필요한 트리거 워드를 기록합니다. - 2
Step 2: LoRA 폴더에 파일 넣기
제작자가 제공한 파일을 ComfyUI/models/loras/에 넣고 목록을 갱신해 lora_name에 표시되는지 확인합니다. - 3
Step 3: MODEL과 CLIP 연결하기
베이스 모델의 MODEL과 CLIP을 Load LoRA에 넣고 두 출력을 샘플링 및 텍스트 인코딩 경로로 연결합니다. - 4
Step 4: 고정 조건에서 가중치 비교하기
prompt, seed, sampler, steps, CFG, 크기를 고정하고 0.6, 0.8, 1.0, 1.2를 비교한 뒤 범위를 좁힙니다. - 5
Step 5: 여러 LoRA 조합하기
Load LoRA를 체인으로 연결하고 각각을 단독 검증한 뒤 주·보조 가중치와 순서를 비교합니다. - 6
Step 6: 결과 기록과 문제 분리하기
베이스 모델, LoRA, 트리거, 가중치, 생성 설정을 저장합니다. 효과가 없으면 연결, 가중치, 트리거, 호환성, 파일 경로 순서로 확인합니다.
FAQ
ComfyUI에서 LoRA를 로드해도 이미지가 거의 변하지 않는 이유는 무엇인가요?
ComfyUI의 LoRA 파일은 어디에 넣나요?
strength_model과 strength_clip은 무엇이 다른가요?
ComfyUI에서 여러 LoRA를 어떻게 중첩하나요?
이미지마다 캐릭터가 달라지는 현상을 어떻게 줄이나요?
SD1.5, SDXL, FLUX LoRA를 서로 섞을 수 있나요?
LoRA 가중치는 얼마로 설정해야 하나요?
2분 읽기 · 게시일: 2026년 7월 20일 · 수정일: 2026년 7월 21일
ComfyUI와 Stable Diffusion 실전 가이드
검색으로 들어왔다면 같은 시리즈의 이전 글이나 다음 글로 이동하는 것이 가장 빠릅니다.
이전
ComfyUI ControlNet 사용법: OpenPose·Canny·Depth로 포즈와 구도 제어하기
ComfyUI에서 ControlNet을 연결하고 전처리기와 모델을 맞추는 방법, strength와 적용 구간 조정, 다중 ControlNet 연결과 미작동 문제 해결을 설명합니다.
8편 중 5편
다음
ComfyUI 이미지 업스케일과 부분 수정: Hires Fix, FaceDetailer, Inpainting
픽셀 업스케일, latent 재샘플링, FaceDetailer, 수동 inpainting, tile 처리를 비교하고 얼굴 변화, 경계선, mask 밖 변경을 해결합니다.
8편 중 7편



댓글
GitHub로 로그인하여 댓글을 남기세요