AI Toolkit LoRA 학습 가이드

Ostris AI Toolkit로 Qwen-Image-Edit-2509 LoRA 학습하기

이 가이드는 Ostris AI Toolkit에서 Qwen-Image-Edit-2509 LoRA를 학습해 멀티 이미지, geometry-aware 편집에 적용하는 방법을 설명합니다. try-on(착장), relighting, 오브젝트 교체를 위한 트리플렛 데이터셋 구성, 3-bit ARA 양자화와 Low VRAM 모드 사용법, 그리고 DOP(Differential Output Preservation) 등 핵심 설정을 VRAM 규모(<10GB~H100/H200)에 맞춰 튜닝하는 절차를 다룹니다.

Ostris AI Toolkit로 확산 모델 학습

가로로 스크롤하여 전체 양식 보기

Ostris AI ToolkitOstrisAI-Toolkit

New Training Job

Job

Model

Quantization

Target

Save

Training

Datasets

Dataset 1

Sample

Qwen‑Image‑Edit‑2509는 최대 3장의 이미지(타겟, 컨트롤, 디자인)를 동시에 처리하여 정밀한 기하학 인식 편집을 수행할 수 있는 20B 파라미터의 멀티 이미지 편집 모델입니다. 이 가이드에서는 Qwen Edit 2509 LoRA 학습 방법을 보여드립니다. 이 튜토리얼을 마치면 다음을 할 수 있게 됩니다:

  • AI Toolkit by Ostris를 사용하여 신뢰할 수 있는 타겟 편집 작업(예: 셔츠에 모든 디자인 넣기)을 위한 Qwen Edit 2509 LoRA 학습을 완료합니다.
  • 로컬(10GB 미만 VRAM에서도 레이어 오프로딩으로 가능) 또는 브라우저에서 RunComfy의 클라우드 AI Toolkit(H100 / H200, 80GB / 141GB VRAM)을 사용하여 전체 Qwen-Image-Edit-2509 LoRA 학습 워크플로우를 실행합니다.
  • 이 모델의 핵심 파라미터가 중요한 이유를 이해합니다: Match Target ResLow VRAM 옵션, Transformer/Text Encoder 양자화, Layer Offloading, Cache Text Embeddings, Differential Output Preservation, Differential Guidance, 그리고 Batch Size, Steps, LoRA Rank와 같은 핵심 하이퍼파라미터.
  • 자신만의 편집 LoRA(리라이팅, 의류 시착, 스킨, 객체 교체...)를 위한 설정을 자신있게 조정합니다.

더 새로운 체크포인트와 "일관성 우선" 편집 동작을 찾고 있다면, Qwen 2511 LoRA 트레이닝을 참조하세요.

이 글은 AI Toolkit LoRA 트레이닝 시리즈의 일부입니다. Ostris AI Toolkit이 처음이라면, 이 가이드에 들어가기 전에 AI Toolkit LoRA 트레이닝 개요부터 시작하세요.

목차

1. Qwen‑Image‑Edit‑2509 개요: 이 편집 모델이 할 수 있는 것

Qwen‑Image‑Edit‑2509(종종 Qwen Edit 2509 또는 Qwen Image Edit Plus로 약칭)는 Qwen‑Image‑Edit 모델의 2025년 9월 버전입니다. 20B Qwen‑Image 기반 위에 구축되었으며, 공식 가중치는 Hugging Face의 Qwen‑Image‑Edit‑2509 모델 페이지에서 제공됩니다.

첫 번째 Qwen‑Image‑Edit 릴리스와 비교하여, 2509는 다음을 추가합니다:

  • 멀티 이미지 편집 – 모델은 1~3개의 입력 이미지를 한 번에 처리할 수 있습니다(예: 사람 + 의류 + 포즈, 또는 소스 사진 + 라이팅 참조).
  • 이미지 연결 동작 – 공식 파이프라인에서 각 입력 이미지는 약 1메가픽셀로 리사이즈된 후 함께 처리됩니다. 여러 컨트롤을 제공해도 모델이 보는 픽셀 예산은 고정되어 있습니다.
  • 더 나은 텍스트 및 디테일 편집 – Qwen2.5-VL과 전용 VAE를 기반으로 작은 텍스트, 로고 및 미세한 디테일을 훨씬 더 잘 처리합니다.

이미 Qwen Image Edit 2509 LoRA 파인튜닝을 사용하는 전형적인 LoRA 사용 사례:

Qwen‑Image‑Edit과 Qwen‑Image는 본질적으로 같은 기반을 공유합니다. 커뮤니티 테스트에 따르면 Qwen‑Image에서 학습된 LoRA는 Qwen‑Image‑Edit / 2509와 호환되며, 그 반대도 마찬가지입니다. 어댑터가 같은 백본에 연결되기 때문입니다.


2. 환경 옵션: 로컬 AI Toolkit vs RunComfy의 클라우드 AI Toolkit

2.1 로컬 AI Toolkit (자신의 GPU)

AI Toolkit GitHub 저장소에서 AI Toolkit을 설치한 후 Web UI를 실행합니다. 이미 24GB 이상의 NVIDIA 카드가 있고, CUDA / 드라이버 / 디스크 공간 관리에 익숙하며, 밤새 트레이닝을 실행해도 괜찮다면 로컬 트레이닝이 좋은 선택입니다.


2.2 RunComfy의 클라우드 AI Toolkit (H100 / H200)

RunComfy의 클라우드 AI Toolkit을 사용하면 AI Toolkit이 완전히 클라우드에서 실행됩니다:

  • 아무것도 설치할 필요가 없습니다 – 브라우저를 열고 로그인하면 AI Toolkit UI에 바로 들어갑니다.
  • H100(80GB) 및 H200(141GB)과 같은 대형 GPU에 액세스하여 무거운 Qwen Edit 2509 LoRA 학습 작업을 수행할 수 있습니다.
  • 영구 워크스페이스를 얻습니다 – 데이터셋, 설정 및 과거 작업이 계정에 연결되어 언제든지 돌아와서 반복할 수 있습니다.

👉 여기서 열기: RunComfy의 클라우드 AI Toolkit

이 튜토리얼의 나머지 부분은 두 환경에서 동일하게 작동합니다. GPU가 있는 위치만 다릅니다.


3. Qwen Edit 2509 LoRA 학습을 위한 하드웨어 및 VRAM 요구 사항

Qwen‑Image‑Edit‑2509는 무거운 모델입니다:

  • 베이스 모델은 약 20B 파라미터입니다.
  • 편집 파이프라인은 최대 3 × ~1MP 이미지를 한 번에 트랜스포머를 통해 보낼 수 있습니다.

2509의 표준 32GB 예제 설정(train_lora_qwen_image_edit_2509_32gb.yaml)에서 사용자들은 대략 다음을 보고합니다:

  • 1024×1024 트레이닝27~28.5GB VRAM.
  • 768×768 트레이닝25~26GB VRAM – 24GB에는 여전히 부족합니다.

그래서 공식 예제는 명시적으로 32GB 설정입니다. 하지만 3비트 ARA 양자화 + Low VRAM 모드 + Layer Offloading(RAMTorch)을 사용하면, Ostris는 Qwen Edit 2509 LoRA 학습의 GPU VRAM을 ~8~9GB까지 낮출 수 있음을 보여줍니다. 대신 높은 CPU RAM(60GB+)과 느린 트레이닝이 필요합니다.

티어 위치 예시 하드웨어 상황
낮은 VRAM (~10~12GB) 로컬 RTX 3060 12GB, 4070 등 QUANTIZATION 패널에서 양자화를 반드시 활성화하고(베이스 모델에 3비트 ARA) 공격적인 Layer Offloading을 사용해야 합니다. ~8~9GB GPU VRAM과 60GB+ CPU RAM을 예상하고, 중간 CPU에서 ~10~12초/스텝입니다. 이 설정(2개의 컨트롤 스트림)은 1024×1024까지 편안하게 트레이닝합니다. 이 티어에서는 1024²를 실용적인 최대 해상도로 간주하세요.
빡빡한 24GB 로컬 RTX 3090 / 4090 / 5090 24GB는 오프로딩 없이 1024²에서 2개의 컨트롤로 표준 32GB Qwen‑Edit LoRA 설정을 실행할 수 없습니다(피크 ~24.7GB VRAM). 3비트 ARA, 그래디언트 체크포인팅 및/또는 부분 오프로드와 같은 Low VRAM 트릭이 여전히 필요합니다. 오프로딩을 추가하지 않는 한 2개의 컨트롤로 768×768을 실용적인 최대 타겟 해상도로 간주하세요.
편안한 32GB 로컬 RTX 4090 32GB, 최신 카드 공식 train_lora_qwen_image_edit_32gb.yaml이 대상으로 하는 티어입니다: 3비트 ARA 양자화, 1024² 해상도 버킷, 중간 LoRA 랭크, 오프로딩 없음. 32GB가 있으면 1024×1024(2~3개의 컨트롤 스트림)를 일반적인 작업 해상도로 취급할 수 있습니다.
높은 VRAM (80~141GB) RunComfy의 클라우드 AI Toolkit H100 80GB / H200 141GB 설정을 간단하게 유지하고(양자화 켜기, 오프로딩 끄기), 더 큰 배치(4~8)를 사용하고, 기본적으로 1024×1024에서 OOM 걱정 없이 트레이닝할 수 있습니다. 이 티어에서는 약간 더 높은 해상도(예: 1280~1536px)도 실험할 수 있지만, 1024²가 가장 안전하고 가장 많이 테스트된 타겟 크기입니다.

전체 오프로딩을 사용하는 4090에서 Ostris의 예제는 ~9GB VRAM과 ~64GB CPU RAM에 도달하며, ~5k 스텝을 약 하루에 실행합니다. 오프로드 없는 5090에서는 반복이 약 2~3배 빠릅니다.


4. Qwen Edit 2509 LoRA 학습 데이터셋 구축

Ostris의 튜토리얼에서 "셔츠 디자인" 예제를 반영하고 다른 작업에 적응할 수 있도록 일반화합니다.

4.1 세 가지 논리적 이미지 스트림

의류 디자인 LoRA의 경우, 모델은 다음을 학습해야 합니다: 빈 셔츠를 입은 사람과 디자인 이미지가 주어지면, 포즈, 조명 및 주름을 유지하면서 이 디자인을 셔츠에 넣습니다.

  • 타겟 이미지(결과로 원하는 것)디자인이 이미 있는 셔츠를 입은 사람. 모델이 재현하기를 원하는 출력입니다.
  • 컨트롤 이미지(빈 셔츠, 같은 사람) – 타겟과 같은 피사체와 포즈이지만, 디자인이 없는(또는 단색 셔츠를 입은). 기하학, 주름, 조명 및 가림(팔, 머리카락, 목걸이 등)을 제어합니다.
  • 디자인 이미지 – 중립적인 배경(회색, 검정 또는 흰색)에 디자인 자체. 견고성을 높이기 위해 몇 가지 변형(다른 배경색)을 포함할 수 있습니다.

Ostris의 예제에서 약 26개의 트리플렛(사람 + 빈 셔츠 + 디자인)으로 QR 코드와 복잡한 로고가 천에 올바르게 매핑되는 매우 강력한 성능을 얻기에 충분했습니다. 프로덕션 LoRA의 경우, 20~60개의 신중하게 선별된 트리플렛(타겟 + 컨트롤 + 디자인)으로 시작하는 것이 좋은 기준입니다.


4.2 해상도 및 종횡비

Qwen‑Image‑Edit‑2509:

  • 각 입력을 내부적으로 약 1MP(예: 1024×1024 또는 동등)로 리사이즈합니다.
  • 트레이닝 이미지가 정사각형이거나 거의 정사각형(여기서는 1024×1024 사용)이거나 일관된 종횡비(예: 모두 3:4)일 때 가장 잘 작동합니다.

이 튜토리얼에서는 버케팅을 간단하게 하기 위해 정사각형 이미지를 가정합니다:

  • 타겟, 컨트롤 및 디자인 모두 약 1024×1024. AI Toolkit은 DATASETS 패널에서 활성화한 내용에 따라 512 / 768 / 1024 버킷으로 분류합니다.

4.3 캡션

이 의류 디자인 LoRA의 경우, 이미지별 캡션 없이, 데이터셋 레벨에서 단일 기본 캡션만 사용합니다: put this design on their shirt

이것이 작동하는 이유:

  • 의미가 간단하고 모든 샘플에서 동일합니다.
  • 컨트롤 및 디자인 이미지가 대부분의 흥미로운 정보를 전달합니다.

더 복잡한 편집 LoRA("스튜디오 림 라이트처럼 리라이트" vs "골든 아워" 등)의 경우 원하는 편집을 설명하는 이미지별 캡션을 사용해야 합니다.


5. 단계별: AI Toolkit에서 Qwen Edit 2509 LoRA 학습하기

5.1 단계 0 – AI Toolkit을 어디서 실행할지 선택

이 튜토리얼에서 AI Toolkit을 두 가지 방법으로 실행할 수 있습니다:

  • 로컬 AI Toolkit(자신의 GPU) – AI Toolkit을 설치하고 Web UI를 실행한 후 로컬에서 엽니다. 최소 10~12GB VRAM의 NVIDIA GPU(24GB+ 권장)와 충분한 CPU RAM(Layer Offloading을 사용할 경우 이상적으로 64GB+)이 있는지 확인하세요.
  • RunComfy의 클라우드 AI ToolkitRunComfy의 클라우드 AI Toolkit에 로그인합니다. 클라우드에서 실행되는 AI Toolkit UI에 바로 들어갑니다. Training Queue에서 작업을 시작할 때 H100(80GB) 또는 H200(141GB) 머신을 선택합니다.

5.2 단계 1 – AI Toolkit에서 데이터셋 생성

AI Toolkit UI에서 Datasets 탭을 엽니다.

세 개의 데이터셋을 생성합니다(이름은 예시일 뿐입니다):

  • shirt_target
  • shirt_control
  • shirt_design

각 데이터셋이 명확한 역할을 갖도록 이미지를 업로드합니다:

  • shirt_target디자인이 있는 셔츠를 입은 사람 사진 20~60장.
  • shirt_control – 같은 사람과 같은 포즈로 디자인 없이(또는 빈 셔츠를 입은).
  • shirt_design – 간단한 배경(회색, 검정 또는 흰색)의 정사각형 디자인 이미지.

.txt 파일로 캡션을 준비하지 않았다면 지금은 이미지별 캡션을 비워두세요. 나중에 작업 레벨에서 단일 기본 캡션을 추가합니다.

중요한 페어링 참고 사항

타겟과 컨트롤 이미지는 가능한 한 순서대로 페어링해야 합니다(같은 사람, 같은 포즈). 페어링을 안정적으로 유지하려면 폴더 간에 일치하는 파일 이름을 사용하여 알파벳 순서가 일치하도록 합니다. 예: shirt_target/img_0001.jpg, shirt_control/img_0001.jpg, shirt_design/img_0001.png. 각 타겟 이미지에는 같은 인덱스의 해당 컨트롤 및 디자인 이미지가 있어야 합니다.


5.3 단계 2 – 새 작업 생성

New Job 탭을 엽니다. 나타나는 순서대로 각 패널을 구성합니다.


5.3.1 JOB 패널 – 작업 이름, GPU, 트리거 워드

  • Training Name – 설명적인 이름을 설정합니다. 예: qwen_edit2509_shirt_lora_v1. 이것이 작업 이름과 체크포인트가 저장되는 폴더 이름이 됩니다.
  • GPU ID – 로컬 설치에서는 머신의 GPU를 선택합니다. RunComfy의 클라우드 AI Toolkit에서는 GPU ID를 기본값으로 둡니다. 실제 머신 유형(H100 / H200)은 Training Queue에서 작업을 시작할 때 선택합니다.
  • Trigger Word – 추론 시 입력하려는 문구를 입력합니다. 예: put this design on their shirt. 데이터셋 캡션에서 [trigger]를 플레이스홀더로 사용할 수 있습니다. AI Toolkit은 트레이닝 중에 [trigger]를 Trigger Word로 대체합니다. 명확한 트리거 문구는 LoRA의 깔끔한 온/오프 스위치를 제공합니다: 포함하지 않는 프롬프트는 베이스 Qwen‑Image‑Edit‑2509 동작에 가깝게 유지되어야 합니다. 특히 나중에 권장하는 Differential Output Preservation(DOP)도 활성화하는 경우.

5.3.2 MODEL 패널 – 베이스 모델 및 VRAM 옵션

  • Model ArchitectureQwen‑Image‑Edit‑2509를 선택합니다.
  • Name or Path – 베이스 체크포인트의 Hugging Face model id(repo id). 예: Qwen/Qwen-Image-Edit-2509.

    대부분의 AI Toolkit 빌드에서 Qwen‑Image‑Edit‑2509를 선택하면 이 값이 자동으로 채워집니다. 변경할 이유가 없다면 그대로 두세요.

Options에서:

  • Low VRAM24GB VRAM 이하의 GPU에서 ON으로 설정합니다. 백본 내에서 추가 체크포인팅과 메모리 절약 트릭을 활성화하여 큰 Qwen 모델이 더 쉽게 들어갈 수 있도록 합니다.
  • Match Target Res – Qwen Edit 2509 LoRA 학습 작업에서 ON으로 설정합니다. 컨트롤 이미지를 타겟 이미지와 같은 해상도 버킷(예: 768×768 또는 1024×1024)으로 리사이즈합니다. 편집 기하학을 정렬하고 과대 컨트롤에 VRAM을 낭비하는 것을 방지합니다.
  • Layer Offloading – 안전 밸브로 취급합니다. Low VRAM과 양자화를 활성화한 후에도 CUDA OOM이 발생하면 매우 작은 GPU에서 ON으로 설정합니다. 일부 레이어를 CPU RAM으로 오프로드하지만 단계가 느려집니다. 24GB 이상 또는 RunComfy의 클라우드 GPU에서는 최상의 속도를 위해 OFF로 유지합니다.

5.3.3 QUANTIZATION 패널 – 큰 트랜스포머 맞추기

Qwen‑Image‑Edit‑2509는 충분히 커서 양자화가 거의 항상 좋은 아이디어입니다.

  • Transformerfloat8 (default)로 설정합니다. AI Toolkit에서 이는 일반적으로 3비트 ARA 베이스와 8비트 "복구" 어댑터에 해당하므로, 3비트 모델에 가까운 VRAM 사용량으로 전체 정밀도에 가까운 품질을 얻습니다.
  • Text Encoder – 마찬가지로 float8 (default)로 설정합니다. 텍스트 인코더는 크며, fp8로 실행하면 최소한의 품질 손실로 많은 VRAM을 절약합니다.

UI에서 ARA 파일을 수동으로 구성할 필요가 없습니다. float8 옵션을 선택하는 것으로 충분합니다.


5.3.4 TARGET 패널 – LoRA 유형 및 랭크

이 패널은 AI Toolkit에 LoRA를 트레이닝하고 있으며 얼마나 많은 용량을 가져야 하는지 알려줍니다.

  • Target TypeLoRA를 선택합니다.
  • Linear Rank – Qwen Edit 2509 LoRA 학습의 경우, 32가 강력한 기본값입니다. "이 디자인을 셔츠에 넣기"와 같은 동작에 충분히 표현력이 있으면서도 트레이닝과 로딩이 가볍습니다. 매우 작은 GPU에서는 16으로 낮출 수 있습니다. 더 복잡한 동작에는 48~64를 실험할 수 있습니다(더 높은 랭크에서는 과적합을 주의 깊게 관찰하세요).

5.3.5 SAVE 패널 – 체크포인트 유형 및 빈도

  • Data TypeBF16을 선택합니다. Qwen‑Image‑Edit‑2509는 일반적으로 bfloat16으로 실행되며, LoRA 가중치를 BF16으로 저장하면 호환성을 유지하고 합리적으로 작습니다.
  • Save Every250 스텝이 실용적인 기본값입니다. 250 트레이닝 스텝마다 체크포인트를 얻습니다.
  • Max Step Saves to Keep4는 마지막 4개의 체크포인트를 유지하고 오래된 것을 자동으로 삭제하여 디스크가 가득 차지 않도록 합니다.

5.3.6 TRAINING 패널 – 핵심 하이퍼파라미터

TRAINING 패널은 Qwen‑Image‑Edit‑2509를 얼마나 공격적으로 파인튜닝하는지 제어합니다.

단일 데이터셋 LoRA(768~1024px의 10~40개 이미지)에 대한 권장 시작 값:

  • Batch Size – 기본값으로 1로 설정합니다. 매우 큰 GPU(A100 / H100 / H200 티어)에서만 2를 사용합니다.
  • Gradient Accumulation1에서 시작합니다. VRAM을 더 사용하지 않고 더 큰 유효 배치 크기를 원하면 2~4로 늘립니다. 유효 배치 크기 = Batch Size × Gradient Accumulation.
  • Steps2500~3000을 사용합니다. ~20~30개의 트리플렛을 가진 셔츠 디자인 예제의 경우 3000이 잘 작동합니다. 데이터셋이 매우 작은 경우(<15개 이미지) 과적합을 피하기 위해 1500~2200을 고려하세요.
  • OptimizerAdamW8Bit를 선택합니다. 8비트 Adam은 표준 AdamW처럼 동작하면서 메모리를 크게 줄입니다.
  • Learning Rate0.0001로 설정합니다. 트레이닝이 노이즈가 많거나 불안정해 보이면 0.00005로 줄입니다.
  • Weight Decay0.0001로 설정하여 작은 데이터셋에서 LoRA가 너무 멀리 벗어나지 않도록 가벼운 정규화 역할을 합니다.
  • Timestep TypeWeighted로 설정합니다. Qwen‑Image‑Edit에 가장 중요한 노이즈 레벨로 트레이닝을 편향시킵니다.
  • Timestep BiasBalanced로 설정합니다. 매우 이른 또는 매우 늦은 타임스텝을 과도하게 강조하지 않는 안전한 기본값입니다.
  • Loss TypeMean Squared Error로 유지합니다. 디퓨전 / rectified-flow 스타일 트레이닝의 표준 선택입니다.
  • EMA(Exponential Moving Average → Use EMA) – LoRA에서는 OFF로 유지합니다. EMA는 전체 모델을 트레이닝할 때 더 유용합니다.

5.3.7 정규화 및 텍스트 인코더 섹션(TRAINING 패널 오른쪽)

TRAINING 패널 오른쪽에 두 가지 중요한 영역이 있습니다: Text Encoder OptimizationsRegularization.

Text Encoder Optimizations

  • Cache Text EmbeddingsQwen‑Image‑Edit + Differential Output Preservation(DOP)의 경우, 이는 OFF로 유지해야 합니다. DOP는 각 배치에서 내부적으로 프롬프트 텍스트를 다시 작성하므로, 캐시된 임베딩은 실제 프롬프트와 더 이상 일치하지 않습니다. DOP가 OFF이고 캡션이 정적인 경우, Cache Text EmbeddingsON으로 설정하여 모든 캡션을 한 번 인코딩하고, 임베딩을 디스크에 저장한 다음, 텍스트 인코더를 VRAM에서 해제할 수 있습니다.
  • Unload Text Encoder(Unload TE) – 특별한 트리거 전용 모드입니다. ON으로 설정하면, AI Toolkit은 Trigger WordSample 프롬프트에 대한 임베딩을 한 번만 캐시하고, 텍스트 인코더를 VRAM에서 언로드하고, 모든 데이터셋 캡션을 무시합니다. 일반 캡션에 의존하는 Qwen‑Image‑Edit‑2509 LoRA(특히 Differential Output Preservation이 ON인 경우)에서는 Unload TEOFF로 유지해야 합니다.

캡션 드롭아웃은 트레이닝 중에 무작위로 캡션을 삭제하여 구현되므로, 각 스텝에서 새로운 텍스트 인코딩에 의존합니다. Cache Text Embeddings를 활성화하는 경우, DATASETS 패널에서 Caption Dropout Rate = 0으로 설정해야(아래 참조) 캐시된 임베딩과 의도된 드롭아웃 동작 사이에 불일치가 없습니다.

Regularization → Differential Output Preservation

  • Differential Output Preservation – 대부분의 실제 프로젝트에서 ON으로 설정합니다. Qwen‑Image‑Edit에 중요합니다: 트리거 문구가 없을 때 베이스 모델이 정상적으로 동작하고, 트리거가 있을 때만 사용자의 동작을 주입합니다.
  • DOP Loss Multiplier – 처음에는 1로 유지합니다. 비트리거 프롬프트에 스타일이 너무 많이 누출되면 약간 높일 수 있습니다.
  • DOP Preservation Class – 가장 자주 편집하는 것을 설명하는 중립적인 클래스 단어를 사용합니다. 인물 중심 편집의 경우 person이 좋은 기본값입니다. 제품 전용 편집의 경우 product 또는 object와 같은 것을 사용합니다.

DOP가 캡션 및 Trigger Word와 연결되는 방식:

  • 캡션이 "[trigger] a person walking down the street, wearing the design on their shirt"라고 가정합니다
  • Trigger Word = put this design on their shirt
  • DOP Preservation Class = person

AI Toolkit은 내부적으로 두 개의 프롬프트를 생성합니다:

  1. put this design on their shirt a person walking down the street, wearing the design on their shirt – LoRA 경로.
  2. person a person walking down the street, wearing the design on their shirt – 베이스 모델 경로.

LoRA는 이 두 가지의 차이에서만 트레이닝됩니다. 트리거 문구가 없는 생성은 DOP가 해당 동작을 명시적으로 보존하기 때문에 바닐라 Qwen‑Image‑Edit‑2509에 훨씬 더 가깝게 유지됩니다.

  • Blank Prompt Preservation – 빈 프롬프트에 대한 동작을 보존할 매우 특별한 이유가 없다면 OFF로 유지합니다.

5.3.8 ADVANCED 패널 – Differential Guidance

  • Do Differential GuidanceON으로 설정합니다.
  • Differential Guidance Scale3에서 시작합니다.

Differential Guidance는 LoRA가 보는 오류 신호를 스케일하는 AI Toolkit 특유의 트릭입니다. 더 큰 스케일은 "여기가 틀렸다" 신호를 더 크게 만들어, LoRA가 학습률을 높이지 않고도 원하는 변경을 일반적으로 더 빨리 학습합니다.

트레이닝 초기에 샘플이 불안정하거나 지나치게 "샤프"해 보이면 2로 낮춥니다. 학습이 매우 느리게 느껴지면 나중에 4를 시도할 수 있습니다.


5.3.9 DATASETS 패널 – 타겟, 컨트롤 및 디자인 이미지 연결

Qwen Edit 2509 LoRA 학습에서는 최소 하나의 타겟 데이터셋하나의 컨트롤 데이터셋을 제공해야 합니다.

Dataset 1 내:

  • Target Dataset출력 / 편집된 데이터셋, 즉 "LoRA 동작을 적용한 후"를 나타내는 이미지를 선택합니다.
  • Control Dataset 1입력 이미지(편집하려는 원본 사진)가 포함된 데이터셋을 선택합니다. 각 파일은 이름으로 타겟 이미지와 일치해야 합니다(예: scene_001.pngscene_001.png).
  • Control Dataset 2 / 3 – 선택 사항입니다. 셔츠 LoRA의 경우, Control Dataset 2shirt_design으로 설정하여 모델이 로고나 아트워크를 두 번째 컨트롤 스트림으로 볼 수 있도록 합니다. 뎁스 맵이나 키포인트와 같은 추가 조건이 없으면 컨트롤 슬롯을 비워둡니다.
  • LoRA Weight – 더 많은 데이터셋을 추가하지 않는 한 1로 유지합니다. 더 많은 데이터셋을 추가할 때 여기서 영향을 재조정할 수 있습니다.
  • Default Caption – 이미지에 이미 .txt 캡션이 있으면 비워둘 수 있습니다. 그렇지 않으면 다음과 같이 입력합니다:

    "[trigger] put this design on their shirt, full‑body street photo"

    기억하세요: [trigger]는 JOB 패널의 Trigger Word로 대체됩니다.

  • Caption Dropout Rate텍스트 임베딩을 캐시하지 않는 경우 0.05가 좋은 시작 값입니다. 약 20스텝 중 하나가 캡션을 무시하여 모델이 정확한 표현에 과적합하지 않도록 합니다. TRAINING 패널에서 Cache Text EmbeddingsON으로 설정할 계획이라면, Caption Dropout Rate = 0으로 설정해야 합니다. 드롭아웃은 각 스텝에서 캡션을 다시 인코딩해야 하고 캐시된 임베딩과 함께 올바르게 작동하지 않기 때문입니다.
  • Settings → Cache LatentsON으로 설정합니다. AI Toolkit은 각 타겟 이미지를 VAE 잠재 변수로 한 번 인코딩하고 재사용하므로, 캐싱 후 무거운 VAE를 GPU에서 제거하고 트레이닝을 크게 가속화합니다.
  • Settings → Is Regularization – 메인 데이터셋에서는 OFF로 유지합니다. 나중에 순수하게 정규화 이미지용 두 번째 데이터셋(예: 일반적인 사람 사진)을 추가하면, 해당 두 번째 데이터셋의 Is RegularizationON으로 설정합니다.
  • Flipping(Flip X / Flip Y) – 대부분의 인물 / 제품 LoRA에서 둘 다 OFF로 유지합니다. 미러 플립이 피사체에 안전하다는 것이 확실하지 않는 한(Flip X는 셔츠의 모든 텍스트를 미러링함).
  • Resolutions – Qwen‑Image‑Edit이 트레이닝하기를 원하는 버킷을 활성화합니다. 예: 512, 768, 1024. 768은 많은 Qwen LoRA의 스위트 스팟입니다. 512와 1024를 추가하면 약간의 해상도 변경에 대해 트레이닝이 견고해집니다.

Add Dataset으로 추가 데이터셋(예: LoRA Weight < 1의 정규화 데이터셋)을 추가할 수 있지만, "이 디자인을 셔츠에 넣기"의 대부분의 사용 사례에서는 하나의 타겟 + 하나 또는 두 개의 컨트롤 세트가 있는 단일 Dataset 1이면 충분합니다.


5.3.10 SAMPLE 패널 – 트레이닝 미리보기

SAMPLE 패널은 트레이닝 중 주기적인 미리보기를 제어합니다. 이러한 샘플은 트레이닝 손실에 영향을 미치지 않습니다. 모니터링용입니다.

  • Sample Every250으로 설정하여 250스텝마다 미리보기를 생성합니다. 체크포인트 일정과 잘 맞습니다.
  • Width / Height – 메인 트레이닝 해상도와 일치시킵니다. 예: 1024 × 1024 또는 768 × 1024, 데이터셋에 따라.
  • Seed42와 같은 안정적인 시드를 선택합니다. 각 미리보기 배치가 연속 시드를 사용하고 더 많은 다양성을 보여주길 원하면 Walk Seed를 활성화할 수 있습니다.
  • SamplerFlowMatch(또는 빌드의 기본 Qwen 샘플러)를 선택합니다. TRAINING에서 사용되는 FlowMatch 스케줄러와 일치해야 합니다.
  • Guidance Scale – 미리보기에 4로 설정합니다. 나중에 ComfyUI나 다른 UI에서 추론할 때 일반적으로 3~6 사이에서 실험합니다.
  • Sample Steps – 약 25스텝이 미리보기의 품질 대 속도의 좋은 절충점입니다.
  • Advanced SamplingSkip First Sample, Force First Sample, Disable Sampling을 모두 OFF로 유지할 수 있습니다. 디버깅 중이거나 미리보기 없이 최대 속도를 원할 때만 Disable SamplingON으로 설정합니다.
  • Sample Prompts – LoRA의 현실적인 사용 사례를 나타내는 4~8개의 프롬프트를 추가합니다.

5.4 단계 3 – 트레이닝 시작 및 모니터링

작업을 구성한 후 Training Queue 탭으로 이동하여 작업을 선택하고 실행 준비를 합니다.

Start / Play를 클릭하고 주로 두 가지를 관찰합니다:

  • GPU VRAM / CPU RAM – 특히 Layer Offloading을 사용하는 낮은 VRAM 카드에서 시스템 RAM 사용량을 주시합니다.
  • 샘플 이미지 – 디자인은 셔츠에 유지되고 주름과 포즈를 따라야 합니다. 전체 이미지로 번지기 시작하거나 색상이 극단적이 되면 일찍 중지하거나 총 스텝을 줄이는 것을 고려하세요.

6. VRAM 티어별 권장 Qwen Edit 2509 LoRA 학습 설정

24GB 로컬 GPU와 모든 H100/H200 클라우드 실행에 대한 안전한 기본값 하나만 원하면, 섹션 3~6의 설정을 사용합니다: Low VRAM = ON, Transformer/Text Encoder 양자화 = float8, Batch Size = 1, LoRA Rank = 32, Resolutions = 512 / 768 / 1024, Differential Output Preservation = ON, Cache Text Embeddings = OFF.

아래는 하드웨어에 따라 실제로 변경되는 설정만 있습니다. 여기에 언급되지 않은 것(Steps, Learning Rate, Optimizer 등)은 이전 권장 사항을 유지할 수 있습니다.


티어 1 – 낮은 VRAM (~10~12GB 로컬)

  • MODEL → Low VRAM: ON으로 설정합니다. 추가 체크포인팅과 셔플링을 활성화하여 Qwen‑Image‑Edit‑2509가 10~12GB 카드에 들어갑니다.
  • MODEL → Layer Offloading: 여전히 CUDA OOM이 발생하면 ON으로 설정합니다. 높은 CPU RAM 사용량(≈60GB+)과 느린 스텝을 예상하지만, GPU VRAM은 약 8~9GB까지 내려갈 수 있습니다.
  • QUANTIZATION → Transformer / Text Encoder: 둘 다 float8로 설정합니다. Qwen 3비트 ARA 어댑터를 사용하는 이 아키텍처에서 float8은 안정적인 품질을 위한 실용적인 최소값입니다.
  • TRAINING → Batch Size: 1로 고정합니다. 더 큰 유효 배치를 원하면 Batch Size 대신 Gradient Accumulation을 늘립니다.
  • DATASETS → Resolutions: 512768을 메인 버킷으로 활성화합니다. 더 느리고 취약한 실행을 허용하면 1024를 추가할 수 있습니다. 이 티어에서는 두 개의 컨트롤 스트림이 있는 1024×1024를 실용적인 상한으로 간주합니다.
  • TRAINING → Text Encoder Optimizations / Regularization: Low VRAM과 Layer Offloading을 사용해도 Differential Output Preservation을 맞출 수 없으면, DOP OFF로 설정하고 Cache Text Embeddings ON으로 설정합니다. 캡션이 한 번만 인코딩되고 텍스트 인코더가 VRAM에서 해제됩니다. 베이스 모델 보존을 약간 잃지만 몇 GB의 여유를 얻습니다.

티어 2 – 빡빡한 24GB (3090 / 4090 / 5090 클래스)

티어 1과 비교하여 완화할 수 있는 것:

  • MODEL → Low VRAM: 24GB에서 안전을 위해 ON을 유지합니다. 해상도와 컨트롤 설정이 편안하게 맞는다는 것을 알면 OFF로 설정하는 것을 시험할 수 있습니다.
  • MODEL → Layer Offloading: 일반적으로 OFF. 선택한 해상도와 컨트롤 스트림 수에서 여전히 OOM이 발생하는 경우에만 활성화합니다.
  • QUANTIZATION → Transformer / Text Encoder: 둘 다 float8을 유지합니다. 이 티어에서 양자화를 비활성화하면 거의 도움이 되지 않고 해상도나 배치 크기에 사용할 수 있는 VRAM만 소모합니다.
  • TRAINING → Batch Size: 1이 여전히 기본값입니다. Low VRAM이 ON이고 양자화가 ON으로 유지되면, 768×768에서 두 개의 컨트롤로 Batch Size 2가 가능할 때가 있습니다.
  • DATASETS → Resolutions: 512, 768, 1024를 활성화합니다. 768을 "항상 안전한" 버킷으로, 1024를 Low VRAM이 필요하거나 부분 오프로드가 필요할 수 있는 하이엔드 버킷으로 간주합니다.
  • TRAINING → Text Encoder Optimizations / Regularization: 일반적으로 Differential Output Preservation ONCache Text Embeddings OFF를 유지할 수 있습니다. 특히 주로 768×768에서 트레이닝하는 경우. 24GB 카드에서 1024×1024가 절대적으로 필요하고 다른 조정 후에도 여전히 OOM이 발생하면, 다음 레버는 DOP OFF로 설정하고 Cache Text Embeddings ON으로 설정하는 것입니다.

티어 3 – 편안한 32GB+ 로컬 및 클라우드 H100/H200

32GB 로컬 카드와 80~141GB 클라우드 GPU(H100 / H200)에서는 VRAM과의 싸움을 멈추고 설정을 단순화할 수 있습니다:

  • MODEL → Low VRAM: 선택 사항. 32GB+ 로컬 GPU와 H100/H200에서 OFF로 설정하여 약간 더 빠른 스텝과 더 간단한 트레이스를 얻을 수 있습니다.
  • MODEL → Layer Offloading: OFF를 유지합니다. 모든 Qwen‑Image‑Edit‑2509 구성 요소가 GPU에 상주할 수 있습니다.
  • QUANTIZATION → Transformer / Text Encoder: 기본적으로 둘 다 float8을 유지합니다. H100/H200에서 Text Encoder 양자화를 비활성화하는 것을 시험할 수 있지만, 좋은 품질에 필수는 아니며 그 VRAM을 배치 크기나 해상도에 사용하는 것과 비교하여 이점이 거의 없습니다.
  • TRAINING → Batch Size: 32GB 로컬 GPU에서 1~2, H100/H200에서 2~4를 사용하고, 1024×1024에서 두 개의 컨트롤 스트림.
  • TARGET → LoRA Rank: 32가 편안한 기본값입니다. 매우 복잡한 동작(예: 멀티 이펙트 편집 LoRA)에는 과적합을 주시하면서 H100/H200에서 48~64를 시도할 수 있습니다.
  • DATASETS → Resolutions: 주로 7681024에서 트레이닝합니다. 저해상도 동작에 특별히 관심이 없다면 일반적으로 512를 삭제할 수 있습니다.
  • TRAINING → Text Encoder Optimizations / Regularization: 기본적으로 Differential Output Preservation ONCache Text Embeddings OFF로 실행합니다. VRAM은 텍스트 인코더를 상주시키기에 충분하고, "트리거 있음"과 "트리거 없음" 동작 간의 가장 깔끔한 분리를 얻습니다.

7. Qwen Edit 2509 LoRA 학습 일반적인 문제 및 해결 방법

7.1 잘못 페어링된 데이터셋 (잘못된 순서 / 일치하지 않는 사람)

증상: 디자인이 나타나지만 잘못된 위치, 잘못된 사람 또는 왜곡됩니다.

타겟과 컨트롤 데이터셋이 정렬되어 있는지 확인합니다: shirt_target/img_0001.jpgshirt_control/img_0001.jpgshirt_design/img_0001.png와 페어링되어야 합니다. 이미지를 수동으로 섞으면 알파벳 순서가 여전히 일치하도록 파일 이름을 페어링된 상태로 유지합니다.


7.2 양자화해도 VRAM OOM

작은 타겟 해상도(예: 512×512)로 트레이닝하지만 컨트롤 데이터셋이 여전히 1024×1024를 가장 높은 버킷으로 사용하고 Match Target Res가 꺼져 있으면, 각 컨트롤 스트림은 1024×1024로 인코딩되지만 타겟은 512×512뿐입니다. 이러한 컨트롤 스트림이 2~3개 있으면, 총 잠재 변수 크기가 예상보다 훨씬 커지고 양자화가 활성화되어 있어도 CUDA OOM이 쉽게 발생할 수 있습니다.

이를 수정하려면:

  • MODEL 패널에서 Match Target ResON으로 설정하여 모든 컨트롤 이미지가 자동으로 타겟과 같은 해상도 버킷으로 리사이즈되도록 합니다(예: 타겟 샘플이 512×512이면 모두 512×512가 됨), 또는
  • Match Target ResOFF로 유지하되 컨트롤 데이터셋의 가장 높은 해상도 버킷을 타겟에 맞게 낮춥니다(1024를 삭제하고 512/768을 유지).

클라우드의 H100/H200에서는 타겟과 컨트롤 모두에 1024×1024 버킷을 유지하고 이러한 트릭에 덜 의존할 수 있지만, 가장 안전한 규칙은: Match Target Res가 비활성화되면 작은 타겟과 매우 큰 컨트롤을 혼합하지 않는 것입니다.


7.3 트레이닝이 수렴하지 않음 / 무작위로 보임

다음을 확인합니다:

  • TRAINING 패널에서 노이즈 스케줄러와 타임스텝 설정이 여전히 FlowMatch에 해당합니다. 내보낸 YAML에서 noise_scheduler: "flowmatch"가 표시되어야 하고, SAMPLE 패널에서도 샘플러가 FlowMatch로 설정되어야 합니다. 샘플러가 다른 스케줄러를 사용하면, LoRA가 올바르게 트레이닝되고 있어도 미리보기가 순수한 노이즈처럼 보일 수 있습니다.
  • Learning Rate가 너무 높지 않습니다. 0.0001은 Qwen Edit 2509 LoRA 학습의 안전한 기본값입니다. 수백 스텝 후에도 미리보기가 계속 진동하거나 매우 불안정해 보이면 0.00005로 낮추고 마지막 좋은 체크포인트에서 재개합니다.

7.4 LoRA가 과적합됨 (디자인이 어디에나 번짐)

가능한 해결책:

  • Steps를 줄입니다(예: 5000에서 3000으로).
  • 약간 낮은 LoRA Rank를 고려합니다(32 대신 16).
  • 다양한 사람, 포즈 및 조명으로 데이터셋을 다양화합니다.
  • Differential Output Preservation이 활성화되어 있는지 확인하고, 필요한 경우 DOP Loss Multiplier를 약간 높여 베이스 동작이 더 강하게 보존되도록 합니다.

7.5 환경 지옥

일반적인 로컬 문제에는 CUDA 버전 불일치, 잘못된 PyTorch 빌드 또는 GPU / OS와 일치하지 않는 드라이버가 포함됩니다. RunComfy의 클라우드 AI Toolkit에서는 이러한 문제가 사라집니다: AI Toolkit과 종속성이 사전 설치되어 있고 설정과 데이터셋으로 UI에서 바로 시작합니다.

CUDA를 수정하는 데 트레이닝보다 더 많은 시간을 보내고 있다면, 이 특정 작업을 클라우드로 이동하는 것이 더 쉬운 지점입니다.


8. 트레이닝 후 Qwen Edit 2509 LoRA 사용하기

트레이닝이 완료되면 Qwen Edit 2509 LoRA를 두 가지 간단한 방법으로 사용할 수 있습니다:

  • 모델 플레이그라운드Qwen‑Image‑Edit‑2509 LoRA 플레이그라운드를 열고 트레이닝된 LoRA의 URL을 붙여넣어 베이스 모델에서 어떻게 동작하는지 빠르게 확인합니다.
  • ComfyUI 워크플로우ComfyUI 인스턴스를 시작하고 자신만의 워크플로우를 구축하거나 Qwen Edit 2509 MultipleAngles와 같은 워크플로우를 로드하고, LoRA 로더 노드에서 LoRA를 교체하고, 더 자세한 제어를 위해 LoRA 가중치 및 기타 설정을 미세 조정합니다.

추가 AI Toolkit LoRA 트레이닝 가이드

학습을 시작할 준비가 되셨나요?