logo
RunComfy
  • ComfyUI
  • TrainerNew
  • Models
  • API
  • Pricing
discord logo
TRAINING & INFERENCE
Train LoRA
LoRA Assets
Run LoRA
Generations
DEDICATED ENDPOINTS
Deployments
Requests
ACCOUNT
Usage
API Docs
API Keys
How-tos
AI Toolkit LoRA Training Guides

AI Toolkit LoRA: Training Samples는 좋은데 ComfyUI/Diffusers 추론이 다른가요?

Ostris AI Toolkit로 LoRA를 학습한 뒤 preview/samples와 추론이 달라지는 문제를 해결하는 실전 트러블슈팅 가이드.

Train Diffusion Models with Ostris AI Toolkit

Ostris AI Toolkit으로 LoRA를 학습했고 Training Samples에서는 결과가 아주 좋았는데, ComfyUI나 Diffusers로 추론하면 결과가 크게 달라진다면 당황하는 게 정상입니다. 아마 이런 걸 검색했을 수도 있어요:

  • “AI Toolkit 샘플은 좋은데 ComfyUI는 별로”
  • “AI Toolkit LoRA가 ComfyUI에서 안 먹음”
  • “같은 prompt/seed인데 Diffusers가 AI Toolkit preview와 다름”
  • “왜 LoRA가 학습 후에 다르게 보이지?”

결론부터 말하면(대부분 안심해도 되는 답):

약 99%의 경우 LoRA는 정상입니다. 문제는 추론 설정이 학습 프리뷰와 같지 않다는 점입니다.


AI Toolkit의 Samples는 “그냥 Diffusers를 랜덤으로 돌린 결과”가 아닙니다. 다음 조합으로 만들어집니다:

  • 정확히 같은 base model 변형
  • LoRA 주입 방식(adapter 적용 vs merged/fused)
  • steps/scheduler/guidance 의미(semantics)
  • 해상도 처리(스냅/크롭 규칙)
  • seed/RNG 동작
  • (가끔) 추가 conditioning 입력(edit/control/I2V wiring)

이 중 어느 하나라도 다르면 출력이 드리프트합니다.

아래는 당신이 보고 있는 상황을 빠르게 비교한 것입니다: AI Toolkit Training Sample vs 현재 추론 툴체인(ComfyUI/Diffusers 등).

AI Toolkit training sample Your inference toolchain
AI Toolkit training sample — set 1
추론 결과 — set 1

이 가이드에서 얻을 수 있는 것

  • 60초 sanity check: 이 6개 필드 고정(훈련은 아직 건드리지 마세요)
  • 10분 parity 체크리스트: “preview ≠ inference” 흔한 원인 7가지(우선순위 순)
  • 직접 디버깅하기 싫다면? RunComfy에서 추론 parity 얻기

AI Toolkit training samples와 추론을 맞추고 싶다면(여기서 시작)

  • 추천(Parity 워크플로): AI Toolkit LoRA Training‑Inference Parity
  • 감사/자체 호스팅(Diffusers 레퍼런스): Open-source AI Toolkit inference code

60초 sanity check: 이 6개 필드 고정(훈련은 아직 건드리지 마세요)

재현하고 싶은 AI Toolkit Training Sample을 하나 고르세요(Sample #1 추천). 아래 항목을 정확히 복사/내보내기 하세요:

1) Base model(정확한 variant/revision — “FLUX” 같은 총칭만으로는 부족)

2) Prompt(트리거 단어 포함, 같은 위치)

3) Negative prompt(훈련에서 안 썼다면 비워두기)

4) Width/height

5) Seed

6) Steps + guidance(sampler/scheduler 관련 설정 포함)

이 6개를 맞췄는데도 결과가 크게 다르면, 아래 parity 이슈 중 하나일 가능성이 큽니다.


10분 parity 체크리스트: “preview ≠ inference” 흔한 원인 7가지(우선순위 순)

원칙: 한 번에 하나만 바꾸세요. 다섯 개를 한꺼번에 바꾸면 무엇이 해결했는지 알 수 없습니다.

1) Base model 불일치(가장 흔하고 가장 치명적)

2) 해상도 처리 불일치(배수 스냅 / 숨은 resize)

3) steps/scheduler/guidance semantics 차이(few‑step 모델은 매우 민감)

4) seed/RNG semantics 차이(CPU vs GPU generator, 글로벌 시드)

5) LoRA 적용 방식 차이(adapter vs fuse/merge; 잘못된 로더)

6) prompt/negative/trigger가 완전히 동일하지 않음(토큰 하나로도 깨짐)

7) 파이프라인 패밀리 불일치 / conditioning 입력 누락(edit/control/I2V)

이제 각 항목을 빠르게 진단해 봅시다.


1) Base model 불일치: “비슷해 보이는데?”는 비슷한 게 아닙니다

증상

  • 전체 룩이 드리프트: 얼굴, 질감, 스타일, 디테일 품질이 전반적으로 달라짐
  • LoRA가 “아예 안 먹는 것처럼” 보일 수 있음

원인

LoRA는 base model에 매우 민감합니다. 특정 정확한 variant에서 학습하고 다른 variant(심지어 같은 “패밀리”)에서 추론하면 큰 드리프트가 발생할 수 있습니다.

빠른 테스트

  • AI Toolkit training config/YAML 열기
  • base model 식별자/경로 확인
  • ComfyUI/Diffusers가 같은 base model을 로드하는지 확인(비슷한 이름 주의)

흔한 함정

  • FLUX 변형 혼용(dev vs schnell, 1 vs 2)
  • Qwen Image generation vs Qwen Image Edit 혼용
  • Z‑Image Turbo vs DeTurbo 혼용
  • WAN 2.2 작업 패밀리 혼용(T2V vs I2V)

해결

훈련 config를 source of truth로 두고, YAML 기준으로 base model을 선택하세요.


2) 해상도 처리 불일치: 1024라고 생각했지만 1024가 아닙니다

증상

  • 구도가 바뀌고, 선명도가 달라지고, 디테일이 뭉개짐
  • few‑step/turbo 모델에서 더 심함

원인

많은 추론 구현은 width/height를 특정 divisor(보통 32)의 배수로 맞춥니다. AI Toolkit preview는 스냅하는데 당신의 스택은 안 한다(또는 반대)면, 입력 크기가 같지 않습니다.

예시:

width  = (width  // divisor) * divisor
height = (height // divisor) * divisor

빠른 테스트

  • 32의 배수 해상도 강제(예: 1024×1024, 1216×832)
  • ComfyUI에서 숨은 resize/crop/latent scaling 노드 확인

해결

Parity 목적이라면, preview가 실질적으로 사용한 width/height(스냅 규칙 포함)를 고정하세요.


3) steps/scheduler/guidance semantics 차이: few‑step 모델은 “SDXL 습관”을 벌줍니다

증상

  • 결과가 흐릿/지저분해지고 preview의 선명함이 사라짐
  • 또는 과하게 “오버쿡”되어 아티팩트가 폭발

원인

distilled/turbo/few‑step 모델은 보통 낮은 steps와 낮은 guidance(때로는 guidance ≈ 1.0)를 기대합니다. SD/SDXL 기본값(steps 20–30, CFG 5–8)을 쓰면 의도된 영역을 벗어납니다.

빠른 테스트

  • Training Sample과 동일하게 steps/guidance 고정
  • parity 디버깅 중에는 scheduler를 바꾸지 않기

해결

Training Sample 설정을 ground truth로 시작하고, 재현된 다음에 튜닝하세요.


4) seed/RNG semantics 차이: 같은 seed라도 스택이 다르면 같은 노이즈가 아닙니다

증상

  • 같은 prompt + 같은 seed인데 결과가 크게 다름

원인

스택마다 seeding 구현이 다릅니다:

  • 글로벌 시드 vs 노드별 시드
  • CPU generator vs GPU generator
  • 추가 RNG 소비(랜덤 크롭, 지터 등)

빠른 테스트

  • 같은 스택에서 재현성 먼저 확인(3번 돌려도 동일)
  • 그 다음 스택 간 비교

해결

seed 처리 방식을 최대한 맞추세요(글로벌 시드 + 명시적 generator semantics).


5) LoRA 적용 방식 차이: adapter vs fuse/merge(그리고 “잘못된 로더”)

증상

  • LoRA 효과가 preview보다 약/강하거나
  • LoRA가 안 적용된 것처럼 보임

원인

대표적으로 두 가지:

  • Adapter 적용: 추론 중 scale로 조절하며 동적으로 적용
  • Fuse/Merge 적용: 가중치를 모델에 합치고 adapter를 언로드

둘은 동작이 다를 수 있습니다. 또한 모델 패밀리에 맞지 않는 로더/파이프라인을 쓰면 “아무것도 적용되지” 않을 수 있습니다.

빠른 테스트

  • Training Sample과 동일한 LoRA scale
  • 해당 모델 패밀리에 맞는 로더인지 확인(패밀리 간 파이프라인 혼용 금지)

해결

해당 패밀리를 확실히 지원하는 레퍼런스 구현으로 샘플을 재현한 뒤, 같은 방법을 원하는 스택으로 옮기세요.


6) prompt / negative / trigger 불일치: 토큰 하나로도 parity가 깨집니다

증상

  • 스타일은 비슷하지만 “시그니처 디테일”이 사라짐
  • 또는 베이스 모델처럼 동작

자주 하는 실수

  • 훈련 negative는 비어 있는데 UI가 기본 negative를 자동 주입
  • 트리거 누락/오타/위치 변경
  • 도구마다 prompt 파싱/가중치 문법 차이

빠른 테스트

  • negative prompt를 비우기(훈련과 동일)
  • Training Sample의 prompt를 정확히 복사/붙여넣기

해결

parity 테스트에서는 숨은 기본값을 제거하고 “클린” 상태로 먼저 실행하세요.


7) 파이프라인 패밀리 불일치 / conditioning 입력 누락(edit/control/I2V)

증상

  • 출력 로직이 완전히 틀리거나
  • 추론이 에러로 실패

원인

일부 모델 패밀리는 추가 입력(control image, edit input, I2V conditioning)이 필요합니다. preview는 그 배선을 쓰는데, 추론은 prompt‑only면 당연히 다릅니다.

빠른 테스트

  • 이 모델이 control image/edit input이 필요한가?
  • 올바른 pipeline family를 사용 중인가?

해결

올바른 파이프라인으로 전환하고 필요한 조건 입력을 제공하세요.


직접 디버깅하기 싫다면? RunComfy에서 추론 parity 얻기

ComfyUI/Diffusers 드리프트를 직접 추적하기 싫다면, RunComfy는 AI Toolkit 모델 패밀리용 training & inference parity 파이프라인을 제공하므로 preview 파이프라인을 손으로 재구성할 필요가 없습니다.

필요한 것은 LoRA와 AI Toolkit run의 Training config(YAML)뿐입니다. Trainer → LoRA Assets로 가져온 뒤 Run(Run LoRA)을 클릭하면 바로 추론을 시작할 수 있습니다. RunComfy는 training preview와 parity‑critical 동작이 맞는 올바른 base‑model pipeline으로 실행합니다.

워크플로: AI Toolkit LoRA Training‑Inference Parity.

실제 예시(AI Toolkit Training Sample vs training config 적용 RunComfy 추론):

AI Toolkit training sample RunComfy inference (Playground/API)
AI Toolkit training sample — set 1
Run LoRA inference result — set 1
AI Toolkit training sample — set 2
Run LoRA inference result — set 2
AI Toolkit training sample — set 3
Run LoRA inference result — set 3

더 깊게 보고 싶다면:

  • Open-source AI Toolkit inference code (감사 가능한 Diffusers pipelines, adapters, schedulers)

FAQ

“AI Toolkit Training Samples에서는 잘 되는데, ComfyUI에서는 LoRA가 아무것도 안 해요.”

base model mismatch와 LoRA loader mismatch부터 확인하세요. “아무것도 안 한다”는 대부분 아래 중 하나입니다:

  • base model variant가 다름
  • LoRA 주입 방식/로더가 잘못됨
  • 숨은 negative prompt/defaults 존재

“왜 AI Toolkit Samples가 내 Diffusers 출력보다 더 선명하죠?”

대부분 아래 중 하나:

  • steps/guidance 레짐 불일치(특히 few‑step)
  • 해상도 스냅 규칙 차이
  • scheduler/timestep 차이

“추론이 학습 preview와 안정적으로 일치하게 하려면?”

Training config를 ground truth로 두고 아래를 고정하세요:

  • base model
  • width/height(스냅 규칙 포함)
  • steps/guidance/scheduler family
  • LoRA 적용 방식과 scale
  • seed semantics

이를 Run LoRA 워크플로(Playground/API)로 반복 가능하게 만들고 싶다면, 같은 config를 중심으로 추론을 구성하세요.

Ready to start training?