user: 스테이블 디퓨전이란 무엇인가요?

gpt: **스테이블 디퓨전**은 2022년에 출시된 딥 러닝, 텍스트-이미지 모델이다. 텍스트 설명에 따라 상세한 이미지를 생성하는 데 주로 사용되지만 인페인팅, 아웃페인팅, 이미지 생성과 같은 다른 작업에도 적용할 수 있다.

스테이블 디퓨전은 심층 생성 신경망의 일종인 잠재 확산 모델이다. 코드 및 모델 가중치가 공개되었으며 최소 8GB VRAM이 있는 일반 GPU가 장착된 대부분의 소비자 하드웨어에서 실행할 수 있다. 이는 클라우드 서비스를 통해서만 액세스할 수 있었던 DALL-E 및 Midjourney와 같은 이전의 독점 텍스트-이미지 모델에서 출발했다.

user: 기능에 대해서도 설명해 줘.

gpt: 스테이블 디퓨전 모델은 출력에 포함되거나 생략될 요소를 설명하는 텍스트 프롬프트를 사용하여 처음부터 새로운 이미지를 생성하는 기능을 지원한다. 확산-노이즈 제거 메커니즘을 통해 텍스트 프롬프트에 설명된 새로운 요소를 통합하기 위해 모델에서 기존 이미지를 다시 그릴 수 있다. 또한 이 모델을 사용하면 다양한 오픈 소스 구현이 존재하는 이러한 기능을 지원하는 적절한 사용자 인터페이스와 함께 사용할 때 인페인팅 및 아웃페인팅을 통해 기존 이미지를 부분적으로 변경하는 프롬프트를 사용할 수 있다.

스테이블 디퓨전은 10GB 이상의 VRAM으로 실행하는 것이 좋지만 VRAM이 적은 사용자는 기본 float32 대신 float16 정밀도로 가중치를 로드하여 더 낮은 VRAM 사용량으로 모델 성능을 절충할 수 있다.

## 텍스트를 이미지로 변환
"txt2img"로 알려진 스테이블 디퓨전 내의 텍스트-이미지 샘플링 스크립트는 샘플링 유형, 출력 이미지 크기 및 시드 값을 포함하는 다양한 옵션 매개변수 외에도 텍스트 프롬프트를 사용한다. 스크립트는 프롬프트에 대한 모델의 해석을 기반으로 이미지 파일을 출력한다. 생성된 이미지에는 눈에 보이지 않는 디지털 워터마크가 태그되어 사용자가 스테이블 디퓨전에 의해 생성된 이미지를 식별할 수 있다. 단, 이미지 크기를 조정하거나 회전하면 이 워터마크의 효과가 사라진다.

각 txt2img 생성에는 출력 이미지에 영향을 미치는 특정 시드 값이 포함된다. 사용자는 생성된 다양한 출력을 탐색하기 위해 시드를 무작위로 선택하거나 동일한 시드를 사용하여 이전에 생성된 이미지와 동일한 이미지 출력을 얻을 수 있다. 사용자는 샘플러의 추론 단계 수를 조정할 수도 있다. 값이 높을수록 시간이 오래 걸리며, 값이 작을수록 시각적 결함이 발생할 수 있다. 또 다른 구성 가능한 옵션인 분류자 없는 안내 척도 값을 사용하면 사용자는 출력 이미지가 프롬프트에 얼마나 밀접하게 부합하는지 조정할 수 있다. 보다 실험적인 사용 사례에서는 더 낮은 스케일 값을 선택할 수 있는 반면, 보다 구체적인 출력을 목표로 하는 사용 사례에서는 더 높은 값을 사용할 수 있다.

추가 text2img 기능은 사용자가 텍스트 프롬프트의 특정 부분에 부여된 가중치를 수정할 수 있도록 하는 스테이블 디퓨전의 프런트 엔드 구현을 통해 제공된다. 강조 표시를 사용하면 사용자는 키워드를 대괄호로 묶어 키워드에 강조를 추가하거나 줄일 수 있다. 프롬프트 부분에 가중치를 조정하는 또 다른 방법은 "부정 프롬프트"이다. 부정적인 프롬프트는 스태빌리티 AI의 자체 드림스튜디오 클라우드 서비스를 포함한 일부 프런트 엔드 구현에 포함된 기능으로, 사용자가 이미지 생성 중에 모델이 피해야 하는 프롬프트를 지정할 수 있다. 지정된 프롬프트는 사용자가 제공한 긍정적인 프롬프트 또는 모델이 원래 훈련된 방식으로 인해 이미지 출력 내에 존재할 수 있는 바람직하지 않은 이미지 특징일 수 있으며, 인간 손이 일반적인 예이다.

## 이미지 수정
스테이블 디퓨전에는 텍스트 프롬프트, 기존 이미지 경로, 0.0에서 1.0 사이의 강도 값을 사용하는 또 다른 샘플링 스크립트인 "img2img"도 포함되어 있다. 스크립트는 텍스트 프롬프트 내에 제공된 요소도 포함하는 원본 이미지를 기반으로 새 이미지를 출력한다. 강도 값은 출력 이미지에 추가된 노이즈의 양을 나타낸다. 강도 값이 높을수록 이미지 내에서 더 많은 변형이 생성되지만 제공된 프롬프트와 의미상 일치하지 않는 이미지가 생성될 수 있다.

원본 이미지에 노이즈를 추가하는 img2img 기능은 이미지 데이터의 시각적 특징을 변경하고 익명화하는 데이터 익명화 및 데이터 증대에 잠재적으로 유용하다. 동일한 프로세스가 이미지 해상도를 높이고 잠재적으로 이미지에 더 많은 세부 정보를 추가하는 이미지 업스케일링에도 유용할 수 있다. 또한 이미지 압축을 위한 도구로 스테이블 디퓨전이 실험되었다. JPEG 및 WebP와 비교하여 스테이블 디퓨전에서 이미지 압축에 사용되는 최근 방법은 작은 텍스트와 얼굴을 보존하는 데 한계가 있다.

img2img를 통한 이미지 수정에 대한 추가 사용 사례는 스테이블 디퓨전 모델의 수많은 프런트 엔드 구현을 통해 제공된다. 인페인팅에는 사용자가 제공한 레이어 마스크로 묘사된 기존 이미지의 일부를 선택적으로 수정하는 작업이 포함되며, 이는 제공된 프롬프트에 따라 새로 생성된 콘텐츠로 마스크된 공간을 채운다. 인페인팅 사용 사례를 위해 특별히 미세 조정된 전용 모델은 스테이블 디퓨전 2.0 출시와 함께 Stability AI에 의해 생성되었다. 반대로, 아웃페인팅은 이미지를 원래 크기 이상으로 확장하여 제공된 프롬프트에 따라 생성된 콘텐츠로 이전의 빈 공간을 채운다.

"length2img"라는 깊이 기반 모델이 2022년 11월 24일 스테이블 디퓨전 2.0 출시와 함께 도입되었다. 이 모델은 제공된 입력 이미지의 깊이를 추론하고 텍스트 프롬프트와 깊이 정보를 기반으로 새로운 출력 이미지를 생성한다. 이를 통해 생성된 출력에서 원본 입력 이미지의 일관성과 깊이가 유지될 수 있다.

## 컨트롤넷
컨트롤넷은 추가 조건을 통합하여 확산 모델을 관리하도록 설계된 신경망 아키텍처이다. 이는 신경망 블록의 가중치를 "잠긴" 복사본과 "훈련 가능한" 복사본으로 복제한다. "학습 가능한" 복사본은 원하는 조건을 학습하는 반면 "잠긴" 복사본은 원래 모델을 유지한다. 이 접근 방식은 이미지 쌍의 작은 데이터 세트를 사용한 교육이 생산 준비 확산 모델의 무결성을 손상시키지 않도록 보장한다. "제로 컨볼루션"은 가중치와 편향이 모두 0으로 초기화된 1×1 컨볼루션이다. 훈련 전에 모든 제로 컨볼루션은 제로 출력을 생성하여 컨트롤넷으로 인한 왜곡을 방지한다. 어떤 레이어도 처음부터 훈련되지 않는다. 원래 모델을 안전하게 유지하면서 프로세스는 여전히 미세 조정 중이다. 이 방법을 사용하면 소규모 또는 개인용 장치에서도 교육이 가능하다.