ComfyUI LoRA 학습, Train LoRA 노드로 직접 만드는 방법
ComfyUI에서 LoRA를 쓰는 방법과 LoRA를 직접 학습하는 것은 다른 작업이다. 기존 Load LoRA가 이미 만들어진 가중치를 불러오는 노드라면, 현재 ComfyUI에는 실제 LoRA 학습을 수행하는 Train LoRA 노드도 포함돼 있다.
다만 바로 기존 LoRA 학습 프로그램을 전부 대체한다고 생각하면 안 된다. 현재 ComfyUI 코드에서 TrainLoraNode는 experimental로 명시돼 있으며, 데이터셋 준비부터 학습 파라미터와 저장까지 직접 워크플로우로 구성해야 한다.
lora 학습에서 가장 먼저 볼 변화
Train LoRA는 ComfyUI 안에서 직접 학습한다
TrainLoraNode는 diffusion model과 학습용 latent, conditioning을 입력받아 LoRA를 학습한다. 결과로 LoRA가 적용된 model과 별도의 LoRA weights, loss 정보, 진행된 step 수를 출력한다.
즉 ComfyUI에서 이미지를 생성한 뒤 별도의 프로그램을 열어 학습하고 다시 돌아오는 구조만 가능한 것은 아니다. 데이터 준비부터 training, 저장까지 노드 그래프 안에서 연결하는 구조를 만들 수 있다.
Load LoRA와 Train LoRA는 역할이 다르다
기존 Load LoRA는 ComfyUI/models/loras에 저장된 LoRA를 MODEL과 CLIP에 적용하는 inference용 노드다.
반면 Train LoRA에서는 학습할 MODEL과 데이터가 필요하다. 기존 LoRA를 사용하는 단계가 아니라 새로운 LoRA weight를 만드는 단계라는 차이가 있다.

따라서 LoRA가 제대로 적용되지 않는 문제를 해결하려고 Train LoRA를 사용하는 것은 방향이 다르다. 기존 파일을 쓰려는 목적이라면 Load LoRA, 직접 학습하려는 목적이라면 Train LoRA를 보면 된다.
학습 전에는 이미지가 latent와 conditioning으로 바뀐다
lora 학습가 ComfyUI 워크플로우에 미치는 영향
TrainLoraNode의 입력에는 원본 IMAGE가 바로 연결되는 것이 아니라 latents와 positive conditioning이 들어간다.
기존 방식과 비교해야 할 부분
ComfyUI의 학습 구조에서는 이미지 데이터셋을 불러온 뒤 VAE를 통해 latent 형태로 준비하고, 텍스트 정보도 conditioning으로 만들어 학습 데이터로 사용할 수 있다. 준비한 학습 데이터를 저장하고 다시 불러오는 노드 구조도 실제 ComfyUI workflow에서 사용할 수 있다.
캡션 없이 이미지 폴더만 넣는 문제는 별개다
LoRA 학습에서는 어떤 시각적 특징과 어떤 텍스트 조건을 연결해 학습할지가 중요하다. 따라서 단순히 이미지 파일만 많이 넣는다고 원하는 LoRA가 자동으로 완성되는 구조로 보면 안 된다.
기존 전용 학습 도구 역시 이미지와 함께 caption을 준비하는 방식을 제공한다. OneTrainer의 기본 가이드도 각 이미지와 같은 이름의.txt 파일에 prompt를 저장하는 데이터셋 방식을 안내한다.

결국 ComfyUI로 학습하더라도 데이터셋 품질이라는 LoRA 학습의 기본 문제가 사라지는 것은 아니다. Train LoRA 노드는 학습 과정을 노드화하는 것이지 데이터 준비 자체를 대신해주는 기능은 아니다.
learning rate·rank·steps를 Train LoRA에서 조절한다
성능과 결과 품질에서 확인할 차이
현재 TrainLoraNode에는 batch_size, grad_accumulation_steps, steps, learning_rate, rank 같은 학습 파라미터가 입력으로 제공된다.
워크플로우 구성에서 놓치기 쉬운 부분
optimizer와 loss function, seed, training dtype, LoRA dtype, algorithm, gradient checkpointing도 설정할 수 있다. 이미 존재하는 LoRA를 입력하는 항목도 코드에 포함돼 있다.
학습 설정은 한 번에 여러 개 바꾸지 않는다
처음 LoRA를 학습한다면 이 값들을 한꺼번에 크게 바꾸기보다 데이터셋과 base model을 고정한 상태에서 결과를 비교하는 편이 낫다. 학습 결과가 좋지 않은데 동시에 rank, learning rate, step까지 모두 변경하면 어느 설정이 원인이었는지 찾기 어려워진다.

학습이 끝나면 Train LoRA가 출력하는 LORA_MODEL을 SaveLoRA와 연결해 LoRA 파일로 저장하는 구조를 만들 수 있다.
Train LoRA는 아직 experimental 노드다
2026년 현재 ComfyUI 소스 코드에서 TrainLoraNode는 명시적으로 experimental 상태다. 따라서 일반적인 이미지 생성 core node와 동일한 안정성을 기대하고 production 학습 환경을 바로 이전하는 것은 신중할 필요가 있다.
실제로 Train LoRA와 관련해서 device가 CPU와 CUDA로 나뉘면서 발생한 오류, 특정 업데이트 이후 loss가 크게 증가했다는 사용자 보고도 ComfyUI 이슈에 올라온 바 있다.
실제로 적용할 때 체크할 점
이것이 모든 환경에서 문제가 발생한다는 뜻은 아니다. 다만 장시간 학습이나 중요한 데이터셋을 바로 투입하기 전에 작은 데이터와 짧은 step으로 현재 설치 버전에서 정상적으로 loss와 output이 나오는지 확인하는 편이 안전하다.
기존 LoRA 학습 도구도 여전히 선택지다
전용 LoRA 학습 생태계도 계속 업데이트되고 있다. kohya-ss의 기반인 sd-scripts는 2026년에도 LoRA training을 지원하며 SD1.x/2.x, SDXL, SD3/3.5, FLUX.1 등 여러 모델 계열을 지원하고 있다.
따라서 Train LoRA의 장점은 무조건 기존 학습 프로그램보다 기능이 많다는 데 있지 않다. ComfyUI workflow 안에서 dataset 처리와 training, inference를 연결할 수 있다는 점이 가장 큰 차이다.
세부적인 학습 설정과 이미 검증된 전용 training workflow가 필요하다면 기존 학습 도구가 여전히 선택지가 된다. 반대로 ComfyUI 안에서 작은 LoRA 실험을 반복하고 싶다면 Train LoRA가 훨씬 흥미로운 기능이다.
마지막 확인
ComfyUI에서 이제 LoRA는 불러오기만 하는 대상이 아니다. experimental Train LoRA 노드를 이용하면 latent와 conditioning을 데이터로 넣고 learning rate, rank, steps 등을 설정해 LoRA를 직접 학습한 뒤 저장하는 workflow를 구성할 수 있다.
처음 시도한다면 큰 데이터셋부터 넣지 말고 소규모 데이터로 Train LoRA → SaveLoRA 흐름이 정상 작동하는지 먼저 확인하자. 현재 experimental 기능이라는 점까지 감안하면 기존 LoRA 학습 환경을 즉시 교체하기보다 ComfyUI 내부 학습 파이프라인을 시험하는 용도로 접근하는 편이 적절하다.