2P by GN⁺ | ★ favorite | 댓글 1개
  • 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 10244 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 앱 실행을 위해 먼저 다음을 설치함
  • 프로젝트 루트에서 다음 명령으로 Gradio 앱을 실행함
    • PYTHONPATH=./ python3 gradio_app/app.py
  • 코드는 MIT LICENSE를 따름
  • Hugging Face에서 받을 수 있는 모델 가중치는 STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE를 따름

댓글과 토론

Hacker News 의견들
  • 몇 시간 써 보니 프롬프트 준수가 훨씬 좋아진 듯함
    당장은 일부 SDXL 모델보다 품질이 낮아 보이지만, 며칠 더 테스트해 보기 전까지는 판단을 보류하려고 함
    속도도 빠르고, 비터보 SDXL보다 대략 2~3배 빠른 느낌

    • 품질보다 프롬프트 준수를 언제든 택하겠음
      특정 외형이나 깊이를 강제로 만들려고 ControlNet, OpenPose, depth map까지 동원해야 하면 매 생성마다 해법이 너무 맞춤형이 되어버림
      직접 테스트해 보니 프롬프트를 따르는 면에서 개선됐고, 이미지도 시각적으로 더 마음에 듦
    • VRAM이 얼마나 필요한지 궁금함
      가장 큰 모델이 SDXL보다 매개변수가 14억 개 더 많다고 하는데, SDXL도 이미 VRAM을 많이 요구함
    • CPU에서도 실행할 수 있나?
  • 매우 인상적임
    이해하기로 Stability AI는 현재 벤처 투자를 받고 있는데, 돈을 엄청 태울 수밖에 없어 보이고 사업 모델이 지속 가능한지도 불분명함
    어쩌면 정부 연구비 지원을 받을 만함

    • Stability AI는 이미 한동안 돈을 많이 태워 왔고, 그래서 Stable Cascade 같은 최신 모델이 더 이상 상업적으로 우호적인 라이선스의 오픈소스가 아니게 된 듯함
      Intel과의 거래 당시 매달 청구서와 급여로 약 800만 달러를 쓰고 있었고, 매출은 그 일부에 불과했다는 보도가 있음
      8월 매출은 120만 달러였고, 소프트웨어와 서비스로 해당 달 300만 달러를 향해 가고 있었다는 Mostaque의 X 게시물이 있었지만 이후 삭제됨
      https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
    • 예전에 Stability AI 창업자 Emad가 여기 HN 어딘가에서 사업 모델이 정확히 무엇인지, 앞으로 어떻게 될지에 대해 댓글을 단 걸 본 적이 있음
      오늘은 HN 검색이 잘 안 맞아서 생각나는 특정 댓글을 못 찾겠음
      혹시 찾을 수 있다면 사용자 페이지는 여기임: https://news.ycombinator.com/user?id=emadm
    • Stability는 연구 보조금을 받아야 한다고 봄
    • 연구자들은 stability.ai 소속이 아니라 독일과 캐나다의 대학 소속임
      그럼 이 구조가 어떻게 되는 건지 궁금함
      stability.ai를 위한 독점 작업인가?
  • 커밋을 보니 라이선스가 MIT에서 자체 커스텀 라이선스로 바뀌었음: https://github.com/Stability-AI/StableCascade/commit/209a526...
    라이선스 변경 전의 이전 스냅샷을 기존 MIT 라이선스에 따라 사용하는 게 법적으로 가능한가?

    • 의도는 비상업 라이선스를 쓰려던 것으로 꽤 명확해 보여서, 정말 밀어붙이면 법정까지 갈 사안일 수 있음
      일반적으로 법원은 더 전체적으로 보고 의도를 살피며, 사무적 실수가 생길 수 있다는 점도 이해함
      다만 어떤 기업이 이전 라이선스를 신뢰해 많은 자원을 투자했다고 주장하는 경우는 예외가 될 수 있음
      커밋 시점이 꽤 중요해 보임. 공개 전 저장소가 몇 시간 동안만 MIT였던 상태에서 사업이 실질적 투자를 했다고 주장하기는 어려울 것 같음
    • 가능함
      그 커밋은 공개 당시의 MIT 라이선스에 따라 계속 원하는 대로 사용할 수 있음
      전자책을 샀는데 나중에 2판이 양장본으로만 나와도, 1판 전자책은 여전히 읽을 수 있는 것과 비슷함
    • 모델 아키텍처, 학습 코드 등은 여전히 MIT이고, 거대한 GPU 클러스터에서 학습한 결과물인 가중치와 사용한 데이터셋은 새 라이선스 아래에 있는 것으로 보임
    • 코드는 MIT이고, 모델은 비상업 라이선스
      서로 다른 작업물이 서로 다른 라이선스 아래에 있는 것
      Stability AI는 이 비상업 라이선스가 SDXL 0.9처럼 기술 미리보기라서 그렇다고 밝힘
    • MIT 라이선스는 GPL처럼 전염적이지 않음
      MIT 라이선스 코드베이스를 닫을 수는 있지만, 이미 공개된 옛 코드의 라이선스를 소급해서 바꿀 수는 없음
      Stability의 초기 커밋에는 MIT 라이선스가 있었으니 그 커밋을 포크해 원하는 대로 할 수 있음
      까다로운 부분은 라이선스를 MIT에서 독점으로 바꾸는 커밋을 했지만 코드 변경은 없었다는 점임
      이는 같은 코드베이스를 서로 모순되는 두 라이선스로 배포할 수 없으므로 유효하지 않을 가능성이 큼
      라이선스 변경 이후 코드베이스에 추가된 변경분에만 새 라이선스를 붙일 수 있음
      “불법”이라고까지 하진 않겠지만, 이미 동일한 소프트웨어를 공개 라이선스로 배포했기 때문에 독점 소프트웨어라고 주장해도 법정에서 버티기 어려울 것임
  • 여기 최적화된 플레이그라운드가 있음: https://www.fal.ai/models/stable-cascade

    • “sign in to run”은 마케팅 기회를 놓치는 것 같음
      지금처럼 경쟁이 치열한 분야에서는 특히 그렇고, HN 이용자층은 단일 이미지 생성을 테스트하려고 가입하라고 하면 직접 실행하는 쪽을 택할 가능성이 큼
  • 내가 시도한 다른 이미지 생성기들과 마찬가지로, 이것도 피아노 건반을 제대로 만들지 못함 [1]
    검은 건반 묶음을 셀 수 있으려면 다른 접근이 필요할 것 같음
    [1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...

    • 이건 그 이상인 것 같음
      내 경우 농구 관련 이미지를 만들면 대부분 공이 하나보다 많았음
      전문가는 아니지만, 모든 피아노 건반이 같아야 한다거나 한 경기에는 공이 하나뿐이라는 식의 인간 문화적 삶의 기본 제약을 학습이 파악하지 못하거나 부분적으로만 파악하는 듯함
    • 사람 손과 마찬가지로, 일관성은 모델 규모와 학습을 키우면 해결되는 문제임
  • 이 모델은 Würstchen 아키텍처 위에 만들어졌음
    저자 중 한 명이 이 모델이 어떻게 동작하는지 아주 잘 설명한 영상이 있음
    https://www.youtube.com/watch?v=ogJsCPqgFMk

    • 좋은 영상이고, 요약하면 이렇다 :)
      Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
      이 영상은 Würstchen이라는 텍스트-이미지 확산 모델 학습 방식에 관한 것임
      Stable Diffusion 1.4 같은 기존 방식보다 훨씬 효율적이며, 학습 시간과 연산량을 16분의 1만 쓰고도 비슷한 결과를 낼 수 있음
      핵심은 2단계 압축 과정임
      첫 단계는 VQ-VAE로 이미지를 Stable Diffusion이 쓰는 잠재 공간보다 4배 작은 잠재 공간으로 압축하고, 두 번째 단계는 확산 모델로 잠재 공간을 다시 10배 압축함
      그래서 총 압축률은 40배가 되며, Stable Diffusion의 8배 압축보다 훨씬 높음
      압축된 잠재 공간 덕분에 Würstchen의 텍스트-이미지 확산 모델은 Stable Diffusion 모델보다 훨씬 작고 빠르게 학습할 수 있음
      Würstchen은 단일 GPU에서 24,000 GPU 시간으로 학습 가능하지만, Stable Diffusion 1.4는 150,000 GPU 시간이 필요함
      효율적이면서도 Stable Diffusion과 비슷한 품질의 이미지를 만들 수 있고, 더 높은 해상도나 더 많은 세부 묘사가 있는 이미지에서는 더 나은 품질을 내기도 함
      전반적으로 Würstchen은 텍스트-이미지 생성 분야의 중요한 진전이며, 더 효율적이고 저렴한 모델 학습을 가능하게 해 마케팅 이미지, 책 삽화, 개인화 아바타 같은 활용 범위를 넓힐 수 있음
  • 같은 모델의 여러 이미지를 생성하는 데 쓸 방법이 있나?
    예를 들어 자동차 모델을 여러 각도로 회전시킨 이미지들을 만들되, 전부 같은 생성 자동차로 유지하는 식

    • 자원이 있는 누군가가 이 백본으로 Zero123 [1]을 학습해야 할 것 같음
      [1] https://zero123.cs.columbia.edu/
    • 가능함
      입력 이미지 => 임베딩 => N개 이미지 흐름으로 만들 수 있고, 3D 렌더링 관점까지 생각한다면 그 N개에 ControlNet을 적용하면 됨
      참고: “The model can also understand image embeddings, which makes it possible to generate variations of a given image (left). There was no prompt given here.”
  • 예전에 이 두 연구자와 함께 Stage B를 잠재 표현에 조건부로 연결하는 최적의 방법을 찾으려고 이것저것 실험했던 기억이 있음
    상대적 2D 위치 임베딩을 넣은 아주 fancy한 교차 어텐션보다, 입력 채널을 잠재 표현의 최근접 업샘플과 그냥 이어 붙이는 방식이 더 잘 나와서 포기했었음
    이 모델은 예전에는 Würstchen v3로 알려져 있었음

  • AMD에서 동작할까?
    지원 여부를 찾지 못했음
    Stable Diffusion을 AMD에서 돌리는 사용자들은 성능 저하를 겪고 있을 테니, 이런 프로젝트에서는 꽤 중요한 기능임

  • 가장 인상적인 건 압축이라고 봄
    이미지를 42배 압축할 수 있다는 건 휴대기기나 나쁜 인터넷 연결, 혹은 둘 다인 환경에서 엄청난 장점임

    • 그건 공간 방향 42배 압축이고, RGB의 3채널 대신 16채널이 필요함
    • 이제쯤 누군가는 작은 사전학습 모델을 포함하고 TV 같은 제한된 메모리 환경에서도 동작하는 빠른 AI 기반 비디오 코덱을 만들고 있을 것 같음
      낮은 대역폭으로 8K 해상도를 제공하는 방향임