스테이블 디퓨전이란?
스테이블 디퓨전(Stable Diffusion)은 텍스트 프롬프트를 사용하여 새로운 이미지를 생성하거나 기존 이미지를 수정할 수 있는 오픈 소스 생성형 AI 모델이다.
기술적으로 스테이블 디퓨전은 머신 러닝을 위한 잠재 확산 모델(latent diffusion model, LDM)이다. 이 유형의 특수 딥러닝 모델은 확률 분포를 사용하여 모델이 학습된 데이터와 통계적으로 유사한 결과물을 생성한다.
스테이블 디퓨전은 새로운 이미지를 생성하는 것 외에도 기존 이미지 내의 요소를 인페인팅(inpainting)하거나 아웃페인팅(outpainting)하는 데 사용할 수 있으며, 이미지 간 변환(image-to-image translation)에도 사용할 수 있다.
- 인페인팅은 이미지에서 누락되거나 손상된 부분을 채우는 과정이다. 이미지 복원 및 편집의 일반적인 작업으로, 이미지에서 개체를 제거하거나 손상된 사진을 복구하거나 불완전한 이미지를 완성하는 데 사용할 수 있다.
- 아웃페인팅은 이미지를 원래 테두리 밖으로 확장하는 과정이다. 더 큰 이미지를 만들거나 이미지에 새로운 요소를 추가하거나 이미지의 종횡비를 변경하는 데 사용할 수 있다.
- 이미지 간 변환은 입력 이미지를 출력 이미지에 매핑하는 과정이다. 이미지의 예술적 스타일을 변경하거나 이미지에 있는 물체의 모양을 변경하거나 대비 또는 색상 밀도를 높여 이미지의 품질을 개선하는 데 사용할 수 있다.
스테이블 디퓨전은 어떻게 작동하는가?
초기에 스테이블 디퓨전은 사람이 인터넷에서 수집한 이미지에 일일이 라벨을 붙여 훈련시켰다. 이 모델은 인간의 피드백을 통한 강화 학습(learning with human feedback, RLHF)이라는 기법을 사용하여 출력을 개선하는 방법을 학습했다.
초기 훈련 단계에서 기초 모델은 라벨링된 훈련 데이터에서 잠재 변수의 확률 분포를 분석하는 작업을 수행했다. 잠재 변수는 훈련 이미지의 기본 구조와 세부 사항을 파악하여 모델이 특정 이미지가 사람이 만든 텍스트 레이블과 얼마나 일치하는지 학습할 수 있도록 한다.
스테이블 디퓨전은 무작위 픽셀 이미지에 확산 필터를 적용하여 인접 픽셀 값의 평균을 구하는 방식으로 작동한다. 딥 러닝 프로세스를 반복할 때마다 필터는 나머지 픽셀이 제공된 텍스트 설명과 통계적으로 일치할 때까지 이미지에서 더 많은 노이즈를 제거한다.
기초 모델의 최신 버전인 SDXL 1.0은 2023년 8월에 출시되었다. 이 모델은 35억 개의 매개변수와 수천 개의 하이퍼파라미터로 훈련된 것으로 알려져 있다. Stability AI 웹사이트에 따르면, 이 모델이 잘 작동하는 이유는 출시 전에 10,000명 이상의 베타 테스터를 통해 하루 평균 170만 개의 이미지를 생성하는 대규모 테스트를 거쳤기 때문이다.
다음은 “노란 꽃 냄새를 맡는 회색 다람쥐”라는 텍스트 프롬프트로 생성된 Stable Diffusion 이미지의 예시다.
- 출처: DreamStudio.ai
다음은 “노란 꽃 냄새를 맡는 회색 종이접기 다람쥐”라는 텍스트 프롬프트를 사용하여 만든 스테이블 디퓨전 이미지의 예다.
- 출처: DreamStudio.ai
스테이블 디퓨전 vs. 달리, 미드저니
스테이블 디퓨전은 종종 챗GPT의 개발사인 Open AI에서 개발한 독점적인 생성 AI 이미지 앱인 달리(DALL-E)와 비교되기도 한다.
두 AI 모델 모두 방대한 양의 이미지 데이터로 훈련되어 있어 유용한 이미지를 생성할 수 있지만, DALL-E는 외부 정보를 사용하여 이미지 생성 프로세스를 안내하는 조건부 확산 모델이다. 사용자의 프롬프트가 모델에 생성될 이미지의 구체적인 지침을 제공한다.
반면, 스테이블 디퓨전은 오픈 소스 잠재 확산 모델로, 텍스트 또는 이미지 프롬프트를 사용하여 원하는 이미지의 잠재 표현을 인코딩한다. 잠재 표현은 확산 프로세스를 안내하여 생성된 이미지가 사용자의 프롬프트와 통계적으로 유사하도록 한다.
미드저니는 이미지 생성을 위한 독점 잠재 확산 모델이다. 이는 유료 구독을 통해서만 이용할 수 있으며, 개인용으로 사용할 수 있는 무료 또는 부분 유료 버전은 없다.
역사
스테이블 디퓨전은 2022년에 처음 출시되었으며, 비교적 신생 연구 개발(R&D) 회사인 Stability AI가 자금을 지원했다.
이 회사는 아마존 웹 서비스(AWS)와의 파트너십을 통해 개발자들이 Ezra-1 UltraCluste 슈퍼컴퓨터에 접근할 수 있도록 하였고, 이미지, 음악, 코드 생성을 위한 복잡한 인공 지능(AI) 모델을 개발하는 데 필요한 처리 능력을 제공 받았다.
Stability AI의 사명은 “AI의 접근성과 포용성을 높이는 것”이다. 하지만 2023년 9월, 일부 언론 매체는 사용자가 구글 클라우드 플랫폼(GCP)에서 스테이블 디퓨전을 실행하는 것이 금지되었다고 보도했다.
이에 대해 구글의 그룹 제품 매니저인 크리스 페리는 트위터를 통해 구글이 생성형 AI 앱을 금지한 것은 아니지만, 스테이블 디퓨전의 인기가 높아져 무료 계정에 제한을 둔 것이라고 해명했다. Stability AI의 설립자 모하마드 에마드 모스타크(Mohammad Emad Mostaque)는 트위터를 통해 이 결정이 공정하다고 생각한다고 밝혔다.
스테이블 디퓨전 사용 방법
스테이블 디퓨전은 Stability AI 웹사이트를 방문하거나 드림스튜디오(DreamStudio) 또는 클립드롭(Clipdrop)을 사용하여 무료로 체험해 볼 수 있다. 드림스튜디오는 이미지를 생성하고 편집할 수 있는 Stability AI의 웹 애플리케이션이며, 클립드롭은 생성형 앱, 플러그인 및 리소스의 에코시스템이다.
이 모델은 스테이블 디퓨전의 애플리케이션 프로그래밍 인터페이스(API)를 사용하는 수많은 타사 웹사이트에서 부분 유료화 방식으로도 사용할 수 있다.
스테이블 디퓨전을 사용하기 위해서는 다음 단계를 따르면 된다:
- 스테이블 디퓨전 사용자 인터페이스를 연다.
- 이미지를 설명하는 텍스트 프롬프트를 입력하거나, 이미지를 업로드하고 이미지 변경 방법에 대한 텍스트 프롬프트를 입력한다.
- 생성 버튼을 클릭하여 텍스트 프롬프트에 따라 몇 개의 이미지를 생성한다.
- 원하는 경우 텍스트 프롬프트와 모델의 잠재 변수를 조정하여 스타일, 내용, 테마 등 출력물의 다양한 측면을 제어한다.
- 모델이 원하는 결과를 생성하면 나중에 사용할 수 있도록 로컬에 저장한다.
스테이블 디퓨전 사용을 위한 3가지 팁
- 텍스트 프롬프트를 만들 때는 구체적으로 작성한다. 이는 스테이블 디퓨전을 사용하는 데 있어 가장 어려운 측면일 수 있다. 텍스트 프롬프트가 구체적일수록 더 나은 출력을 얻을 수 있다. 모델의 초기 출력이 최적이 아닌 경우 보다 구체적인 프롬프트를 사용하여 프로세스를 다시 시작하는 것이 좋다.
- 모델 출력에서 특정 요소를 제외하기 위해서는 네거티브 프롬프트를 사용한다. 예를 들어 모자를 쓰지 않은 카우보이 이미지를 생성하려면 “모자 없음”이라는 부정 프롬프트를 사용한다.
- 모델을 로컬에서 실행하는 경우 특정 창의적 요구 사항을 충족하기 위해 더 작은 데이터 세트로 모델을 미세 조정하는 것을 고려한다.
로컬에서 스테이블 디퓨전 실행
스테이블 디퓨전 대규모 사용에 대한 비용을 지불하지 않기 위해, 기술에 정통한 사용자 중 스테이블 AI의 사용 정책(AUP)에 동의하는 사용자는 LDM 모델을 로컬에 설치할 수 있다. 이를 위해 최소 7GB의 비디오 랜덤 액세스 메모리(VRAM)를 갖춘 그래픽 카드를 사용하는 일반 데스크톱 컴퓨터가 필요하다.
조만간 Stability AI는 모델 성능과 출력 품질을 모두 향상시킬 최적화된 버전의 LDM 모델을 출시할 예정이다. 또한 AMD, 맥북 M1/M2 및 기타 칩셋에서도 스테이블 디퓨전을 사용할 수 있도록 하는 버전도 출시할 계획이다. (현재는 엔비디아 칩을 권장한다.)
로컬에서 스테이블 디퓨전을 실행하는 것은 대규모로 무료 이미지를 생성하거나, 오프라인에서 이미지를 생성하거나, 이미지를 비공개로 유지하거나, 특정 사용 사례에 맞게 출력을 미세 조정하려는 사용자에게 좋은 옵션이다.
예를 들어 개발자가 개발 중인 게임의 텍스처와 이미지를 생성하기 위해 로컬에서 스테이블 디퓨전을 실행할 수 있다.
스테이블 디퓨전 설치 방법
사용자는 Stability.ai 웹사이트를 방문하여 자신의 컴퓨터가 최신 최소 요구 사항을 충족하는지 확인한 후 파이썬(Python)과 깃(Git)을 모두 다운로드하여 설치해야 한다. 또한 모델 가중치를 얻기 위해 허깅 페이스(Hugging Face)에서 무료 계정을 생성한 다음 다음 단계를 따라야 한다:
1단계: 스테이블 디퓨전 프로젝트 파일을 얻으려면 이 프로젝트의 깃허브(GitHub) 페이지를 방문한다. 오른쪽 상단에서 녹색 “코드” 버튼을 찾아 클릭한다. 드롭다운 메뉴에서 “ZIP 다운로드”를 선택한다. 다운로드가 완료되면 ZIP 파일의 내용을 압축 해제한다. 이 작업을 수행하면 “stable-diffusion-webui-master”라는 폴더가 생성된다. 설치를 단순화하기 위해 전체 폴더(추출된 모든 파일 포함)를 호스트 컴퓨터의 C: 드라이브의 루트 디렉터리에 복사한다.
2단계: Hugging Face 웹사이트를 방문하여 “768-v-ema.ckpt” 파일의 다운로드 링크를 검색하거나 찾아본다. 이 파일은 용량이 상당히 크므로 다운로드하는 동안 대기 시간이 많이 소요될 수 있다. 다운로드가 완료되면 다음 위치로 이동한다: “C:\stable-diffusion-webui-master\models\Stable-diffusion.” 이 폴더에서 “Put Stable Diffusion checkpoints here.txt”라는 파일을 찾아 “768-v-ema.ckpt” 파일을 삽입한다.
3단계: GitHub에서 다운로드한 ZIP 파일에서 config YAML 파일을 찾는다. “C:\stable-diffusion-webui-master\models\Stable-diffusion” 폴더로 이동하여 YAML 파일을 저장한다. 파일 이름을 “768-v-ema.yaml”로 변경하되 “.yaml” 확장자는 유지한다.
4단계: “stable-diffusion-webui-master” 폴더로 이동하여 “webui-user.bat” 파일을 실행한다. 몇 분 정도 기다린다. 명령창에 “Running on local URL”이라는 메시지와 함께 로컬 컴퓨터의 IP 주소와 포트 번호가 포함된 URL이 표시된다. 전체 URL(포트 번호 포함)을 복사하여 웹 브라우저에 붙여넣는다. 이 작업을 수행하면 스테이블 디퓨전 애플리케이션이 열린다.
5단계: 프롬프트가 나타나면 원하는 이미지에 대한 설명을 입력한다. 선택 사항으로 네거티브 프롬프트 상자에 제외할 텍스트를 지정할 수 있다. 매개변수를 조정하고, 배치 수와 크기를 원하는 대로 수정한 다음 ‘생성’ 버튼을 클릭한다. 그러면 애플리케이션은 입력한 내용에 따라 요청된 수의 이미지를 표시한다.
저작권
스테이블 디퓨전은 CreativeML Open RAIL-M 라이선스에 따라 라이선스가 부여되어, 모델과 그 결과물의 상업적 및 비상업적 사용이 모두 허용된다.
중요한 점은 이 라이선스가 스테이블 디퓨전을 사용하여 이미지를 생성할 때 사용될 수 있는 기본 자료에 대한 저작권을 다루지 않는다는 것이다.
즉, 저작권이 있는 사진을 수정하여 이미지 내 요소를 추가하거나 교체한 경우(인페인팅), 이미지를 더 크게 확장한 경우(아웃페인팅), 또는 반 고흐 그림처럼 만든 경우(이미지 간 변환), 새로 생성된 이미지의 저작권은 여전히 원본 사진의 저작권자에게 귀속된다.