DreamBooth를 사용하여 예술을 만들기 위해 얼굴로 안정적인 확산 AI를 훈련하는 방법
게시 됨: 2022-10-10Tarunabh Dutta의 게스트 포스트.
2021년이 단어 기반 AI 언어 모델의 해였다면 2022년은 Text-to-Image AI 모델로 도약했습니다. 오늘날 고품질 이미지를 생성할 수 있는 많은 텍스트-이미지 AI 모델이 있습니다. 안정적인 확산은 가장 인기 있고 잘 알려진 옵션 중 하나입니다. 일관된 결과를 만들어내는 빠르고 안정적인 모델입니다.
이미지 생성 과정은 여전히 다소 미스터리하지만 안정적인 확산이 우수한 결과를 생성한다는 것은 분명합니다. 텍스트에서 이미지를 생성하거나 기존 이미지를 변경하는 데 사용할 수 있습니다. 사용 가능한 옵션과 매개변수를 통해 최종 이미지에 대한 많은 사용자 정의 및 제어가 가능합니다.
유명인과 인기 인물의 이미지를 작업하는 것이 상대적으로 더 쉽지만 순전히 이미 사용 가능한 이미지 세트 때문에 AI가 자신의 얼굴에 작업하도록 하는 것은 그리 쉬운 일이 아닙니다. 논리는 AI 모델에 이미지를 제공한 다음 마법을 부리도록 하라고 말합니다. 하지만 정확히 어떻게 그렇게 할 수 있습니까?
이 기사에서는 그림 참조에서 DreamBooth 텍스트 반전을 사용하여 안정적인 확산 모델을 훈련하여 자신의 얼굴이나 다른 물체의 AI 표현을 구축하고 놀라운 결과, 정밀도 및 일관성으로 결과 사진을 생성하는 방법을 보여 주려고 합니다. 너무 기술적으로 들린다면 잠시만 기다려 주십시오. 가능한 한 초보자 친화적으로 만들도록 노력하겠습니다.
목차
안정확산이란?
기본을 짚고 넘어가자. Stable Diffusion 모델은 대규모 이미지 세트에서 훈련된 최첨단 텍스트-이미지 머신 러닝 모델입니다. 훈련 비용은 약 $660,000입니다. 그러나 Stable Diffusion 모델은 자연어를 사용하여 예술을 생성하는 데 사용할 수 있습니다.
딥 러닝 Text-to-Image AI 모델은 텍스트를 이미지로 정확하게 번역하는 능력으로 인해 점점 더 대중화되고 있습니다. 이 모델은 무료로 사용할 수 있으며 Hugging Face Spaces 및 DreamStudio에서 찾을 수 있습니다. 모델 가중치는 로컬에서 다운로드하여 사용할 수도 있습니다.
안정적인 확산은 "확산"이라는 프로세스를 사용하여 텍스트 프롬프트와 유사한 이미지를 생성합니다.
간단히 말해, Stable Diffusion 알고리즘은 텍스트 설명을 가져와 해당 설명을 기반으로 이미지를 생성합니다. 생성된 이미지는 텍스트와 유사하게 보이지만 정확한 복제본은 아닙니다. Stable Diffusion의 대안으로는 OpenAI의 Dall-E 및 Google의 Imagen 모델이 있습니다.
DreamBooth를 사용하여 이미지를 생성하기 위해 얼굴로 안정적인 확산 AI 훈련 가이드
오늘은 원본과 신선함을 모두 갖춘 매우 일관되고 정확한 스타일의 이미지를 생성하기 위해 내 얼굴을 초기 참조로 사용하여 Stable Diffusion 모델을 훈련하는 방법을 보여 드리겠습니다.
따라서 이를 위해 DreamBooth라는 Google Colab 을 사용하여 Stable Diffusion을 훈련할 것입니다.
이 Google Colab을 시작하기 전에 특정 콘텐츠 자산을 준비해야 합니다.
1단계: 충분한 여유 공간이 있는 Google 드라이브
이를 위해서는 최소 9GB의 여유 공간이 있는 Google 드라이브 계정이 필요합니다.
무료 Google 드라이브 계정에는 이 작업에 충분한 15GB의 무료 저장 공간이 제공됩니다. 따라서 이 목적을 위해 완전히 새로운(일회용) Gmail 계정을 만들 수 있습니다.
2단계: AI 훈련을 위한 참조 이미지
둘째, 참조로 사용할 준비가 된 얼굴 또는 대상 물체의 초상화가 최소 12개 있어야 합니다.
- 캡처한 이미지에서 얼굴 특징이 잘 보이고 조명이 적절하게 표시되는지 확인하십시오. 특히 얼굴에 거친 그림자를 사용하지 마십시오.
- 또한 피사체는 카메라를 향하거나 양쪽 눈과 모든 얼굴 특징이 명확하게 보이는 측면 프로필이 있어야 합니다.
- 카메라는 고품질의 얼굴 특징을 포착할 수 있어야 합니다. 가장 좋은 옵션은 전문가 수준의 DSLR 또는 미러리스 카메라입니다. 우수한 품질의 스마트폰 카메라로도 충분합니다.
- 컴포지션은 약간의 헤드스페이스가 있는 프레임 중앙에 위치해야 합니다.
- 입력 이미지는 얼굴 클로즈업 사진 최소 12장, 머리부터 허리 위까지 덮는 중간 사진 5장, 전신 사진 3장 정도면 충분합니다.
- 이를 위해서는 최소 20장의 참조 사진으로 충분해야 합니다.
제 경우에는 온라인 도구인 Birme를 사용하여 512 x 512 픽셀로 자른 약 50개의 자화상 컬렉션을 촬영하고 수집했습니다. 이 목적을 위해 대체 이미지 편집기를 사용할 수도 있습니다.
최종 출력 이미지는 웹에 최적화되어야 하며 품질 손실을 최소화하면서 파일 크기를 줄여야 합니다.
3단계: Google Colab
이제 Google Colab 런타임을 실행할 수 있습니다.
Google Colab 플랫폼에는 무료 버전과 유료 버전이 있습니다. Dreambooth는 무료 버전에서 실행할 수 있지만 Colab Pro(유료) 버전에서는 성능이 훨씬 빠르고 일관성이 있습니다.
몇 달러를 지출해도 괜찮다면 매월 100개의 컴퓨팅 유닛을 포함하는 $10 Colab Pro 구독이 이 세션에 충분합니다.
또한 상대적으로 더 강력하고 빠른 추가 메모리 RAM 및 GPU에 액세스할 수 있습니다.
이 Colab을 실행하기 위해 기술 전문가가 될 필요는 없습니다. 또한 사전 코딩 경험이 필요하지 않습니다.
Google Colab(무료 또는 유료 버전)에 가입한 후 자격 증명으로 로그인 하고 이 링크 로 이동하여 DreamBooth Stable Diffusion 을 엽니다.
Google Colab에는 왼쪽에 클릭 가능한 재생 버튼이 있는 "런타임" 섹션 또는 셀이 있으며, 이 셀은 순차적으로 정렬됩니다. 위에서부터 런타임을 재생하려면 재생 버튼을 하나씩 클릭하기만 하면 됩니다. 각 세그먼트는 실행해야 하는 런타임으로 구성됩니다. 재생 버튼을 클릭하면 해당 구간이 런타임으로 실행됩니다. 잠시 후 재생 버튼 왼쪽에 녹색 확인 표시가 나타나 런타임이 성공적으로 실행되었음을 나타냅니다.
한 번에 하나의 런타임만 수동으로 실행하고 현재 런타임이 완료된 경우에만 다음 "런타임" 섹션으로 이동하도록 하십시오.
상단 메뉴 모음의 런타임 부분에는 모든 런타임을 동시에 실행할 수 있는 옵션이 있습니다. 그러나 이것은 권장되지 않습니다.
그 아래에는 "런타임 유형 변경"이라는 레이블이 지정된 옵션이 있습니다. 프로 구독을 신청한 경우 실행을 위해 "프리미엄" GPU와 높은 RAM을 선택하고 저장할 수 있습니다.
이제 DreamBooth Colab을 시작할 준비가 되었습니다.
DreamBooth에서 훈련된 AI 모델을 성공적으로 완료하는 10단계
1단계: GPU 및 VRAM 결정
초기 단계는 사용 가능한 GPU 및 VRAM 유형을 결정하는 것입니다. 프로 사용자는 더 안정적인 고속 GPU와 향상된 VRAM에 액세스할 수 있습니다.
재생 버튼을 클릭하면 개발자의 소스 웹 사이트인 GitHub에 액세스 중이므로 경고가 표시됩니다. 계속하려면 " 무조건 실행 "을 클릭하기만 하면 됩니다.
2단계: 드림부스 실행
다음 단계에서는 특정 요구 사항과 종속성을 설치해야 합니다. 재생 버튼을 클릭하고 실행하기만 하면 됩니다.
3단계: 허깅페이스 로그인
재생 버튼을 클릭한 후 다음 단계에서는 Hugging Face 계정에 로그인해야 합니다. 아직 계정이 없는 경우 무료 계정을 만들 수 있습니다. 로그인한 후 오른쪽 상단에서 설정 페이지로 이동합니다.
그런 다음 ' 액세스 토큰 ' 섹션과 ' 새로 만들기 ' 버튼을 클릭하여 새 "액세스 토큰"을 생성하고 원하는 대로 이름을 바꿉니다.
액세스 토큰을 복사한 다음 Colab 탭으로 돌아가 제공된 필드에 입력한 다음 " 로그인 " 을 클릭합니다.
4단계: xformers 설치
이 단계에서 런타임을 클릭하여 재생 버튼을 눌러 xformers 를 설치할 수 있습니다.
5단계: Google 드라이브 연결
재생 버튼을 클릭하면 새 팝업 창에서 Google 드라이브 계정에 대한 액세스 권한을 묻는 메시지가 표시됩니다. 권한을 묻는 메시지가 나타나면 "허용"을 클릭하십시오.
권한을 부여한 후 " 구글 드라이브에 저장 "이 선택되어 있는지 확인해야 합니다. 또한 ' CLASS NAME ' 변수에 대해 새 이름을 설정해야 합니다. 인물의 참고 이미지를 제출하려면 '인물', '남성', '여성'만 입력하면 됩니다. 참조 이미지가 개의 이미지인 경우 'dog' 등을 입력합니다. 나머지 필드는 변경하지 않고 유지할 수 있습니다. 또는 입력 디렉토리('INSTANCE DIR') 또는 출력 디렉토리('OUTPUT DIR')의 이름을 바꿀 수 있습니다.
6단계: 참조 사진 업로드
이전 단계에서 재생 버튼을 클릭하면 모든 참조 사진을 업로드하고 추가할 수 있는 옵션이 표시됩니다.
최소 6장에서 최대 20장의 사진을 추천합니다. 피사체를 캡처하는 방법에 따라 최상의 참조 사진을 선택하는 방법에 대한 간략한 설명은 위의 "2단계"를 참조하십시오.
모든 이미지가 업로드되면 왼쪽 열에서 볼 수 있습니다. 폴더 아이콘이 있습니다. 클릭하면 현재 데이터가 저장되어 있는 폴더와 하위 폴더를 볼 수 있습니다.
데이터 디렉토리 아래에서 업로드한 모든 사진이 저장된 입력 디렉토리를 볼 수 있습니다. 제 경우에는 "sks"(기본 이름)라고 합니다.
또한 이 콘텐츠는 Google 드라이브가 아닌 Google Colab 저장소에만 일시적으로 저장됩니다.
7단계: DreamBooth로 AI 모델 훈련
이것은 DreamBooth를 사용하여 업로드한 모든 참조 사진을 기반으로 새 AI 모델을 훈련할 것이기 때문에 가장 중요한 단계입니다.
두 개의 입력 필드에만 집중해야 합니다. 첫 번째 매개변수는 "-인스턴스 프롬프트"입니다. 여기에 매우 고유한 이름을 입력해야 합니다. 제 경우에는 이름 다음에 이니셜을 사용하겠습니다. 전체 아이디어는 전체 이름을 고유하고 정확하게 유지하는 것입니다.
두 번째 중요한 입력 필드는 '-class prompt' 매개변수입니다. '4단계'에서 사용한 것과 일치하도록 이름을 바꿔야 합니다. 제 경우에는 "남자"라는 용어를 사용했습니다. 따라서 이 필드에 다시 입력하고 이전 항목을 덮어씁니다.
나머지 필드는 그대로 둘 수 있습니다. 나는 '-num class images'와 같은 필드를 12로, '-max train steps'와 같은 필드를 1000, 2000 또는 그 이상으로 변경하여 실험하는 사용자를 관찰했습니다. 그러나 이 필드를 수정하면 Colab의 메모리 부족 및 충돌이 발생할 수 있으므로 처음부터 다시 시작해야 합니다. 따라서 초기 시도에서 편집하지 않는 것이 좋습니다. 충분한 경험을 쌓은 후에 미래에 실험할 수 있습니다.
재생 버튼을 클릭하여 이 런타임을 실행하면 Colab에서 필요한 실행 파일 다운로드를 시작한 다음 참조 사진을 사용하여 훈련할 수 있습니다.
모델 교육은 15분에서 1시간 이상 소요됩니다. 인내심을 갖고 런타임이 완료될 때까지 진행 상황을 추적해야 합니다. Google Colab이 너무 오랫동안 유휴 상태인 경우 재설정될 수 있습니다. 따라서 진행 상황을 계속 확인하고 가끔 탭을 클릭하십시오.
8단계: AI 모델을 ckpt 형식으로 변환
훈련이 완료되면 훈련된 모델을 Stable Diffusion과 직접 호환되는 ckpt 형식의 파일로 변환할 수 있습니다.
변환은 두 가지 런타임 단계로 수행할 수 있습니다. 첫 번째는 " 스크립트 다운로드 "이고 두 번째는 " 변환 실행 "으로 학습된 모델의 다운로드 크기를 줄이는 옵션이 있습니다. 그러나 그렇게 하면 결과 이미지 품질이 크게 저하됩니다.
따라서 원래 크기를 유지하려면 ' fp16 ' 옵션을 선택하지 않은 상태로 유지해야 합니다.
이 특정 런타임이 끝나면 " model.ckpt "라는 파일이 연결된 Google 드라이브에 저장됩니다.
DreamBooth Colab 브라우저 탭을 종료하면 런타임이 즉시 삭제되므로 나중에 사용할 수 있도록 이 파일을 저장할 수 있습니다. 나중에 DreamBooth의 Colab 버전을 다시 열면 처음부터 시작해야 합니다.
학습된 모델 파일을 Google 드라이브에 저장한다고 가정합니다. 이 경우 나중에 검색하여 로컬에 설치된 Stable Diffusion GUI, DreamBooth 또는 런타임이 효과적으로 작동하려면 "model.ckpt" 파일을 로드해야 하는 Stable Diffusion Colab 노트북과 함께 사용할 수 있습니다. 나중에 사용할 수 있도록 로컬 하드 디스크에 저장할 수도 있습니다.
9단계: 텍스트 프롬프트 준비
"추론" 범주 아래의 다음 두 런타임 프로세스는 이미지 생성에 사용되는 텍스트 프롬프트에 대해 새로 훈련된 모델을 준비합니다. 각 런타임에 대해 재생 버튼을 누르기만 하면 몇 분 안에 완료됩니다.
10단계: AI 이미지 생성
이것은 텍스트 프롬프트를 입력할 수 있는 마지막 단계이며 AI 이미지가 생성됩니다.
텍스트 프롬프트 시작 부분에 STEP 6부터 'instance_prompt'와 '-class_prompt'의 정확한 이름을 함께 사용해야 합니다. 예를 들어 제 경우에는 "타루나브트 남자의 초상, 디지털 페인팅"을 사용하여 저를 닮은 새로운 AI 이미지를 생성했습니다.
아래에서 DreamBooth의 훈련된 모델로 생성된 일부 이미지 결과를 볼 수 있습니다.
최상의 결과를 얻으려면 프롬프트를 가지고 놀아라
위에서 설명한 단계를 주의 깊게 따르면 참조 이미지의 얼굴 특징과 매우 유사한 AI 이미지를 생성할 수 있습니다. 이 방법을 사용하려면 온라인 Google Colab 플랫폼에서 텍스트 반전용 AI 기술의 업그레이드 버전을 실행하기만 하면 됩니다.
텍스트 프롬프트에 대한 더 나은 아이디어를 얻으려면 다음과 같은 사이트를 확인하십시오.
- 오픈아트 AI
- 크레아 AI
- 렉시카 아트
또한 다양한 예술적 스타일과 다양한 조합을 사용하여 더 좋고 효과적인 텍스트 프롬프트를 만드는 기술을 배워야 합니다. 좋은 출발점은 Stable Diffusion SubReddit입니다.
Reddit에는 Stable Diffusion 전용 커뮤니티가 있습니다. 또한 많은 Facebook 그룹과 Discord 커뮤니티에서 Stable Diffusion의 새로운 방법을 적극적으로 논의, 공유 및 탐색하고 있습니다.
아래에는 Youtube에서 볼 수 있는 몇 가지 DreamBooth 튜토리얼 비디오에 대한 링크도 공유하고 있습니다.
이 가이드가 유용하기를 바랍니다. 질문이 있는 경우 아래에 의견을 남겨주시면 도와드리겠습니다.