- Stable Cascade는 Stability AI의 공식 코드베이스로, Würstchen 아키텍처를 기반으로 한 이미지 생성 모델의 학습·추론 스크립트와 여러 모델 체크포인트를 제공함
- 핵심 차이는 Stable Diffusion보다 훨씬 작은 잠재 공간(latent space) 에서 동작한다는 점이며, 1024x1024 이미지를 Stable Diffusion의 128x128 대신 24x24로 인코딩해 추론 속도와 학습 비용을 줄임
- 모델은 Stage A, Stage B, Stage C 3단계 캐스케이드로 구성되며, Stage A와 B는 이미지 압축을, Stage C는 텍스트 프롬프트에서 24x24 잠재 표현 생성을 담당함
- 제공 기능은 텍스트-이미지, 이미지 변형, 이미지-이미지, ControlNet, LoRA, 이미지 재구성, 처음부터 학습과 파인튜닝을 포함하며, diffusers 🤗에서도 접근 가능함
- 코드베이스는 초기 개발 단계라 예상치 못한 오류나 최적화되지 않은 학습·추론 코드가 있을 수 있고, 코드는 MIT License, 모델 가중치는 Stability AI Non-Commercial Research Community License를 따름
Stable Cascade가 해결하려는 문제
- Stable Cascade는 Stable Cascade 공식 코드베이스로, 학습과 추론 스크립트, 사용할 수 있는 여러 모델을 제공함
- 모델은 Würstchen 아키텍처를 기반으로 함
- Stable Diffusion 같은 모델과의 주요 차이는 훨씬 작은 잠재 공간에서 동작한다는 점임
- Stable Diffusion은 압축 계수 8을 사용해 1024x1024 이미지를 128x128로 인코딩함
- Stable Cascade는 압축 계수 42를 달성해 1024x1024 이미지를 24x24로 인코딩할 수 있음
- 텍스트 조건부 모델은 이 고압축 잠재 공간에서 학습됨
- 작은 잠재 공간은 더 빠른 추론과 더 저렴한 학습으로 이어짐
- 이전 버전의 이 아키텍처는 Stable Diffusion 1.5 대비 16배 비용 절감을 달성함
성능과 효율성
- Stable Cascade는 효율성이 중요한 용도에 적합한 모델로 소개됨
- 파인튜닝, LoRA, ControlNet, IP-Adapter, LCM 등 알려진 확장 방식도 이 방법에서 가능함
- 자체 평가에서 Stable Cascade는 거의 모든 비교에서 프롬프트 정렬과 미적 품질 모두 가장 좋은 성능을 보임
- 인간 평가는 parti-prompts와 aesthetic prompts를 섞어 진행됨
- Stable Cascade는 30 추론 단계로 비교됨
- 비교 대상은 Playground v2 50단계, SDXL 50단계, SDXL Turbo 1단계, Würstchen v2 30단계임
- 가장 큰 모델은 Stable Diffusion XL보다 14억 개 더 많은 파라미터를 포함하지만, 더 빠른 추론 시간을 보임
3단계 모델 구조
- Stable Cascade는 이름처럼 이미지를 생성하는 캐스케이드 구조인 Stage A, Stage B, Stage C 3개 모델로 구성됨
- Stage A와 Stage B는 Stable Diffusion의 VAE와 유사하게 이미지를 압축하는 역할을 함
- Stage C는 텍스트 프롬프트를 입력받아 작은 24 x 24 잠재 표현을 생성함
- Stage A는 VAE이고, Stage B와 Stage C는 확산 모델임
- 이번 릴리스는 다음 체크포인트를 제공함
- Stage C: 10억 파라미터 버전과 36억 파라미터 버전
- Stage B: 7억 파라미터 버전과 15억 파라미터 버전
- Stage A: 2천만 파라미터, 작은 크기 때문에 고정됨
- Stage C는 파인튜닝 작업이 대부분 36억 파라미터 버전에 집중됐기 때문에 36억 버전 사용을 강력히 권장함
- Stage B는 두 버전 모두 좋은 결과를 내지만, 15억 파라미터 버전이 작고 섬세한 디테일 재구성에 더 뛰어남
- 가장 좋은 결과를 위해서는 각 단계의 더 큰 변형을 사용하는 방식이 제시됨
추론 기능과 노트북
- 모델 실행은 inference 섹션의 노트북으로 가능함
- 해당 섹션에는 모델 다운로드, 컴퓨트 요구사항, 사용 튜토리얼 관련 세부 정보가 포함됨
-
Text-to-Image
- text_to_image.ipynb는 텍스트-이미지, 이미지 변형, 이미지-이미지 기본 기능을 제공함
- 이미지 변형은 이미지 임베딩을 이해해 주어진 이미지의 변형을 생성할 수 있으며, 예시에서는 프롬프트가 주어지지 않음
- 이미지-이미지는 이미지를 특정 지점까지 노이즈화한 뒤 그 시작점에서 생성하는 방식으로 동작함
- 예시에서는 왼쪽 이미지를 80% 노이즈화하고
A person riding a rodent.캡션을 사용함 - 모델은 Hugging Face의 stable-cascade 문서를 통해 diffusers 🤗 라이브러리에서도 접근 가능함
-
ControlNet
- controlnet.ipynb는 Stable Cascade용으로 제공된 ControlNet이나 사용자가 직접 학습한 ControlNet 사용법을 다룸
- 이번 릴리스의 ControlNet은 Inpainting / Outpainting, Face Identity, Canny, Super Resolution을 포함함
- Face Identity ControlNet은 나중에 릴리스될 예정임
- 같은 노트북에서 사용할 수 있고, 각 ControlNet마다 설정만 바꾸면 됨
-
LoRA
- Stable Cascade는 LoRA 학습과 사용을 위한 자체 구현을 제공함
- LoRA는 텍스트 조건부 모델인 Stage C를 파인튜닝하는 데 사용할 수 있음
- 새 토큰을 추가·학습하고 모델에 LoRA 레이어를 추가할 수 있음
- lora.ipynb는 학습된 LoRA 사용법을 보여줌
-
이미지 재구성
- reconstruct_images.ipynb는 이미지를 인코딩·디코딩하는 방법과 고압축 방식의 이점을 보여줌
- Stable Cascade의 Diffusion Autoencoder는 매우 압축된 공간에서 작업할 수 있게 함
- Stable Diffusion의 VAE를 자체 모델 학습에 쓰는 것처럼 Stage A와 Stage B를 사용할 수 있음
- 예시 배치
4 x 3 x 1024 x 1024는4 x 16 x 24 x 24로 인코딩됨 - 공간 압축 계수는
1024 / 24 = 42.67임 - 이후 Stage A와 Stage B로 다시
4 x 3 x 1024 x 1024로 디코딩할 수 있음 - 재구성 결과는 작은 디테일에서도 원본에 매우 가까우며, 표준 VAE 등으로는 이런 재구성이 가능하지 않다고 밝힘
학습, 앱, 라이선스
- 학습 코드는 Stable Cascade를 처음부터 학습하는 경우, 파인튜닝, ControlNet, LoRA를 포함함
- 자세한 학습 방법은 training folder에 제공됨
- 코드베이스는 초기 개발 단계임
- 예상치 못한 오류가 있을 수 있음
- 학습과 추론 코드가 완전히 최적화되지 않았을 수 있음
- 관심이 있다면 최신 개선과 최적화를 반영하는 업데이트를 계속 릴리스할 계획임
- 아이디어, 피드백, 업데이트 기여를 받을 의사가 있음
- Gradio 앱 실행을 위해 먼저 다음을 설치함
pip3 install gradiopip3 install acceleratepip3 install git+https://github.com/kashif/diffusers.git@wuerstchen-v3
- 프로젝트 루트에서 다음 명령으로 Gradio 앱을 실행함
PYTHONPATH=./ python3 gradio_app/app.py
- 코드는 MIT LICENSE를 따름
- Hugging Face에서 받을 수 있는 모델 가중치는 STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE를 따름