클라우드 GPU에서 직접 Z-Image Turbo LoRA 학습하기
Source: Dev.to
위에 제공된 소스 링크 외에 번역할 텍스트를 알려주시면, 요청하신 대로 한국어로 번역해 드리겠습니다.
필요 사항
- GPU 인스턴스 접근이 가능한 AWS 계정
- EC2 접근용 SSH 키 페어
- 피사체의 고품질 이미지 6–15장 (권장 해상도 1024×1024) 및 캡션
- 설정 및 학습에 약 2시간
EC2 인스턴스 설정
- 인스턴스 선택 – 예:
g6e.2xlarge(48 GB VRAM). - 보안 그룹 구성 – 인바운드 포트 8675, 8888, 22를 엽니다.
- AMI 선택 – Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.9 (Ubuntu 22.04), CUDA와 드라이버가 포함된 버전.
- 스토리지 할당 – 모델, 데이터셋, 체크포인트를 위해 최소 100 GB.
인스턴스에 SSH 연결
ssh -i your-key.pem ubuntu@YOUR_PUBLIC_IP
시스템 패키지 및 AI 툴킷 설치
# 시스템 업데이트
sudo apt update && sudo apt upgrade -y
# 기본 패키지 설치
sudo apt install -y git build-essential python3-pip python3-venv
# 저장소 복제
cd ~
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit
git submodule update --init --recursive
# 가상 환경 설정
python3 -m venv venv
source venv/bin/activate
# PyTorch (CUDA 12.6) 및 기타 요구 사항 설치
pip3 install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
--index-url https://download.pytorch.org/whl/cu126
pip3 install -r requirements.txt
UI용 Node.js 설치
# nvm 설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# Node.js 23 설치 (또는 18 이상 버전)
nvm install 23
# 확인
node -v # v23.x.x가 표시되어야 함
npm -v
Toolkit UI 실행
cd ~/ai-toolkit
source venv/bin/activate
cd ui
npm run build_and_start
UI는 포트 8675에서 실행됩니다. 로컬 머신에서 SSH 터널을 생성하세요:
ssh -i your-key.pem -L 8675:localhost:8675 -N ubuntu@YOUR_PUBLIC_IP
그런 다음 브라우저에서 http://localhost:8675를 엽니다.
Jupyter Notebook 설정
cd ~/ai-toolkit
source venv/bin/activate
pip install jupyter jupyterlab ipykernel
python -m ipykernel install --user --name=ai-toolkit --display-name="AI Toolkit (Python)"
jupyter notebook --generate-config
jupyter notebook password # 비밀번호를 설정하고 기억해 두세요
~/.jupyter/jupyter_notebook_config.py 파일을 편집하고 다음을 추가하세요:
c.NotebookApp.ip = 'localhost'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
c.NotebookApp.notebook_dir = '/home/ubuntu/ai-toolkit'
Jupyter를 시작하고 포트를 터널링합니다:
jupyter notebook --no-browser --port=8888
로컬 머신에서:
ssh -i your-key.pem -L 8888:localhost:8888 -N ubuntu@YOUR_PUBLIC_IP
http://localhost:8888 에서 Jupyter에 접속하고, 설정한 비밀번호로 로그인하세요.
UI에서 데이터셋 만들기
- AI Toolkit UI에서 Datasets → New Dataset 로 이동합니다.
- 이름을 지정합니다 (예:
MySubject). - 6–15장의 이미지를 업로드합니다.
- 고유한 트리거 단어를 포함하는 캡션을 추가합니다 (예:
samt).- 캡션 형식:
[TRIGGER_WORD], a man with wavy hair …
- 캡션 형식:
팁
- 사전에는 없는 트리거 단어를 사용합니다 (예:
skt,samt). - 이미지 품질을 높게 유지하고, 포즈와 조명을 다양하게 하되 피사체는 일관되게 유지합니다.
Create a Training Job
| Setting | Value |
|---|---|
| 훈련 이름 | your_training_name |
| 트리거 단어 | your_trigger_word |
| 모델 아키텍처 | Z-Image Turbo (w/ Training Adapter) |
| Low VRAM | 비활성화 |
| Transformer | NONE |
| Cache Text Embeddings | 활성화 |
| Advanced – Do Differential Guidance | 활성화, 3으로 설정 |
훈련된 LoRA 테스트
다음 코드를 Jupyter 노트북에서 실행하세요 (필요에 따라 경로와 트리거 단어를 교체합니다):
import torch
from diffusers import ZImagePipeline
device = "cuda"
dtype = torch.bfloat16 # Must be bfloat16, not float16!
print("Loading Z-Image Turbo pipeline...")
pipe = ZImagePipeline.from_pretrained(
"Tongyi-MAI/Z-Image-Turbo",
torch_dtype=dtype,
low_cpu_mem_usage=False,
)
pipe.to(device)
print("Pipeline loaded!")
# Load your trained LoRA
lora_path = "/home/ubuntu/ai-toolkit/output/my_first_lora_v1/my_first_lora_v1.safetensors"
print(f"Loading LoRA from: {lora_path}")
pipe.load_lora_weights(lora_path)
print("LoRA loaded!")
# Generate an image
prompt = "YOUR_TRIGGER_WORD, posing in front of the Eiffel Tower"
generator = torch.Generator(device).manual_seed(42)
print("Generating image...")
image = pipe(
prompt=prompt,
height=1024,
width=1024,
num_inference_steps=9, # 8 DiT forwards
guidance_scale=0.0, # Must be 0.0 for Turbo inference
generator=generator,
).images[0]
image.save("output.png")
print("Done!")
# Display in Jupyter
from IPython.display import display
display(image)
YOUR_TRIGGER_WORD를 캡션에 사용한 단어로 교체하세요. 노트북을 실행한 후에는 1초 미만의 시간 안에 대상의 실사와 같은 이미지를 생성하는 맞춤형 Z‑Image Turbo LoRA를 얻을 수 있습니다.