Stable Diffusion
Stable Diffusion은 Stability AI의 오픈 웨이트 잠재 확산 모델 제품군으로, 소비자용 GPU에서 텍스트 프롬프트를 바탕으로 이미지를 생성하고 편집합니다.
Stable Diffusion은 Stability AI가 개발한 오픈 웨이트 텍스트-이미지 모델 제품군으로, 자연어 프롬프트를 바탕으로 이미지를 생성하고 편집합니다. 2022년 8월에 출시된 첫 번째 버전은 LMU Munich의 CompVis 그룹 및 Runway와의 협업으로 탄생했으며, LAION-5B 데이터셋의 하위 집합에 있는 512×512 이미지에 이들의 잠재 확산 연구를 적용했습니다. 매개변수 8억 6천만 개의 U-Net과 매개변수 1억 2,300만 개의 텍스트 인코더는 메모리가 10GB 이상인 소비자용 GPU에서 실행되었습니다. 누구나 가중치를 다운로드할 수 있었기 때문에 다양한 파인튜닝 모델, 어댑터, 편집 도구로 이루어진 대규모 생태계의 기반이 되었습니다. 2024년 10월에 출시된 최신 버전 Stable Diffusion 3.5는 U-Net을 정류 흐름으로 학습한 멀티모달 확산 트랜스포머로 대체합니다.
Stable Diffusion 작동 방식#
Stable Diffusion은 픽셀 대신 압축된 이미지의 노이즈를 제거하는 확산 모델이며, 세 가지 네트워크를 사용합니다.
- 변분 오토인코더(VAE): 인코더는 512×512×3 이미지를 값의 수가 48배 적은 64×64×4 잠재 표현으로 압축하고, 디코더는 완성된 잠재 표현을 다시 이미지로 변환합니다. 모든 노이즈 제거는 작은 잠재 표현에서 이루어지므로 모델을 소비자용 하드웨어에서 실행할 수 있습니다.
- 텍스트 인코더: 최대 77개 토큰으로 구성된 프롬프트를 임베딩으로 변환합니다. Stable Diffusion 1.x는 OpenAI의 CLIP ViT-L/14를 사용하고, 2.x는 OpenCLIP ViT-H/14를 사용합니다. SDXL은 CLIP 인코더 두 개를 결합하며, Stable Diffusion 3은 프롬프트 이해도를 높이기 위해 두 CLIP 인코더에 T5-XXL 언어 모델을 추가합니다.
- 노이즈 제거 네트워크: 각 단계에서 제거할 노이즈를 예측합니다. 버전 1.x, 2.x 및 SDXL은 이미지 특징이 텍스트 임베딩에 어텐션할 수 있도록 교차 어텐션 계층을 갖춘 U-Net을 사용합니다. 버전 3 및 3.5는 이미지 토큰과 텍스트 토큰을 함께 처리하는 MMDiT를 사용합니다.
생성은 무작위 64×64×4 잠재 표현에서 시작합니다. 스케줄러는 일반적으로 노이즈 제거 네트워크를 20~50단계 실행하며, 매 단계에서 예측한 노이즈의 일부를 제거합니다. 분류기 없는 가이던스는 프롬프트의 영향력을 강화합니다. 그런 다음 VAE 디코더가 이미지를 생성합니다.
시작 잠재 표현이 무작위이므로 다른 시드를 사용하면 같은 프롬프트에서도 다른 이미지가 생성되고, 동일한 시드와 설정을 사용하면 결과를 재현할 수 있습니다.
모델 버전#
- Stable Diffusion 1.x(2022): 매개변수 8억 6천만 개의 U-Net으로 512×512 이미지를 생성합니다. 버전 1.5는 커뮤니티 파인튜닝의 일반적인 기반이 되었고, ControlNet 논문도 이를 기반으로 했습니다. 가중치에는 CreativeML OpenRAIL-M 라이선스가 적용됩니다.
- Stable Diffusion 2.x(2022년 하반기): OpenCLIP 텍스트 인코더로 전환하고 768×768 모델을 추가했습니다.
- SDXL(2023년 7월): 매개변수가 약 26억 개인 U-Net과 텍스트 인코더 두 개를 사용해 기본적으로 1024×1024 이미지를 생성합니다. 같은 해 11월에 출시된 SDXL Turbo는 적대적 확산 증류를 사용해 한 단계 만에 이미지를 생성합니다.
- Stable Diffusion 3 및 3.5(2024): U-Net을 이미지 토큰과 텍스트 토큰에 별도의 가중치를 사용하는 정류 흐름 트랜스포머로 대체합니다. Stable Diffusion 3.5 Large는 매개변수 81억 개, 3.5 Medium은 25억 개를 갖습니다. Stability AI 커뮤니티 라이선스는 연 매출이 100만 달러 미만인 조직에 무료 상업적 사용을 허용합니다.
Stable Diffusion으로 이미지 편집하기#
- 이미지-이미지: 기존 이미지를 인코딩하고 강도 값으로 지정한 중간 단계까지 노이즈를 더한 다음, 새 프롬프트로 노이즈를 제거합니다. 따라서 결과물은 스타일이나 콘텐츠가 바뀌더라도 원본의 레이아웃과 색상을 유지합니다.
- 파인튜닝: DreamBooth와 LoRA는 수십 장의 이미지로 모델을 새로운 주제나 스타일에 맞게 조정하고, ControlNet은 구조적 조건으로 에지, 깊이 또는 포즈 맵을 추가합니다.
- 이미지 인페인팅: 마스크로 지정한 영역만 프롬프트와 주변 환경에 맞게 다시 생성합니다. Stable Diffusion 인페인팅 체크포인트는 U-Net에 입력 채널 5개를 추가합니다. 그중 4개는 마스크가 적용된 이미지의 인코딩 결과용이고, 나머지 하나는 마스크 자체용입니다.
인페인팅 마스크에서 흰색은 이미지가 바뀌어야 하는 영역이고 검은색은 유지할 영역입니다. Ultralytics YOLO26 인스턴스 세그멘테이션 모델은 이러한 마스크를 자동으로 생성합니다. 예를 들어 거리 사진에서 특정 클래스의 차량을 모두 교체하거나 제거할 수 있습니다.
import cv2
from ultralytics import YOLO
# YOLO26 인스턴스 세그멘테이션 모델로 버스(COCO 클래스 5)를 분할합니다.
model = YOLO("yolo26n-seg.pt")
results = model("https://ultralytics.com/images/bus.jpg", classes=[5], retina_masks=True)
result = results[0]
# 흰색은 Stable Diffusion이 다시 그릴 픽셀을 표시하고, 검은색은 유지할 픽셀을 표시합니다.
mask = (result.masks.data.sum(dim=0) > 0).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_inpaint_mask.png", mask)저장된 bus_inpaint_mask.png은 retina_masks=True가 원본 이미지 크기의 마스크를 반환하므로 사진과 해상도가 같습니다. 사진과 이 마스크, 그리고 "빨간색 이층 버스"와 같은 프롬프트를 인페인팅 파이프라인에 입력하면 버스를 다시 생성하면서 주변 도로는 그대로 유지합니다.
실제 적용 사례#
- 비전 모델을 위한 합성 데이터: 팀은 학습 데이터셋의 부족한 부분을 보완하기 위해 희귀 결함, 이례적인 날씨, 흔치 않은 시점의 이미지를 생성하고, 인페인팅으로 실제 배경에 새 객체를 배치합니다.
- 콘셉트 아트 및 디자인: 게임 스튜디오, 건축가, 제품 디자이너는 초기 콘셉트 작업 중 몇 분 만에 다양한 스타일과 구도를 탐색합니다.
- 마케팅 및 이커머스 이미지: 이미지-이미지와 ControlNet은 제품의 형태를 고정한 채 프롬프트에 따라 환경, 조명, 배경을 바꿉니다.
Stable Diffusion과 관련 모델 비교#
- 잠재 확산 모델: Stable Diffusion은 잠재 확산 아키텍처를 가장 잘 알려진 방식으로 구현한 사례이므로 모든 Stable Diffusion 모델은 잠재 확산 모델입니다.
- GAN: 한 번의 순방향 패스로 이미지를 생성하지만, 학습 안정성이 낮고 생성 가능한 다양성도 적습니다. SDXL Turbo처럼 증류하지 않는 한 Stable Diffusion은 여러 단계의 노이즈 제거가 필요합니다.
- 폐쇄형 생성 모델: OpenAI의 이미지 모델이나 Midjourney 같은 서비스는 제공업체 서버에서만 실행됩니다. Stable Diffusion 가중치는 다운로드해 오프라인으로 실행하고, 검사하고, 파인튜닝할 수 있습니다.
- FLUX.1: Robin Rombach, Andreas Blattmann, Patrick Esser 등 원래 잠재 확산 논문의 연구자들이 2024년에 설립한 Black Forest Labs는 매개변수 120억 개의 FLUX.1 제품군을 출시했습니다. 이 제품군은 Stable Diffusion 3과 동일한 정류 흐름 트랜스포머 방식을 사용합니다.










