안녕하세요. 저번 글에서는 Text2Image에 대해 다루어보았습니다. 오늘은 Stable Diffusion에서 image to image에 대한 기능들을 알아보겠습니다. Text2image보다 조금 더 전문적인 영역으로 들어갑니다. 실무에서는 T2I를 ‘스케치’처럼 그려놓고 그다음 I2I로 편집을 하는 형태를 띠고 있습니다. 오늘은 실사 이미지로 생성한 객체를 2D 일러스트로 바꿔보는 실습 해보겠습니다.
Text2Image로 객체 모델 생성
Civitai에서 Realistic Vision V6.0 모델을 다운로드하고 Realistic 모델로 실사 이미지를 생성합니다. 텍스트 프롬프트에서 “cat”, 네거티브 프롬프트에서 “person, male, female”을 지정했음에도 결과물에서는 반영이 되지 않는 경우가 종종 있습니다.
텍스트 프롬프트를 좀 더 풍부하게 작성하거나 네거티브 프롬프트 보강, 네거티브 임베딩 설정 등 마음에 드는 결과물을 생성할 때 “시행착오는 피할 수 없다”라고 생각을 하시는 것이 정신건강에 더 이롭습니다. 장기적으로는 이 시행착오를 줄여나가는 것이 실력이라고 생각합니다.
Image2Image를 간단하게 활용해 보기
T2T에서 원하고 있던 객체 생성에 성공했다면 I2I를 이용해 간단하게 2D 일러스트로 바꿔보겠습니다.
- img2img 탭을 선택하고 변환하고 싶은 이미지를 업로드합니다.
- 체크포인트를 원하는 화풍의 모델로 선택합니다.
- 프롬프트를 수정하지 않고 단순히 Generate 해봅니다.
결과물을 보면 원본 이미지와 비슷한 2D 일러스트가 생성됩니다. 후드를 쓰고 있는 고양이의 모습, 뒤의 배경을 보면 어느 정도 비슷하게 생성이 된다는 것을 확인할 수 있습니다.
ControlNet - Canny를 활용해 원본에 가깝게 생성해보기
1에서 간단하게 변환했던 결과물이 마음에 드는 경우도 있지만, 원본에 최대한 가깝게 변환하는 것을 목표로 하는 경우, 지난 시간에 배웠던 ControlNet을 활용할 수 있습니다.
ControlNet - Canny 모델이 원본 이미지의 라인을 따서 I2I모델에 제공하고, I2I 모델은 제공받은 선을 따라서 이미지를 생성하는 방식입니다. 결과물을 보시면 색상은 원본과 바뀐 부분이 있지만 고양이의 실루엣과 뒷 배경이 원본과 아주 흡사하다는 것을 확인할 수 있습니다.
ControlNet을 다중으로 사용해 생성해보기
ControlNet은 하나 이상의 모델을 선택해서 사용할 수 있습니다. 실습에서는 Canny와 Lineart를 선택해서 생성해 보겠습니다.
- ControlNet Unit 0에 Canny를 지정합니다.
- ControlNet Unit 1에 Lineart를 지정합니다.
- 프롬프트를 일부 수정하는 것도 방법입니다. 고양이 털의 색을 반영하기 위해 ‘brown cat’을 프롬프트에 추가 작성합니다.
Canny와 Lineart가 원본 이미지에 대한 자세한 영역을 제공했다면 위 사진과 같이 원본에 최대한 가까운 새로운 이미지를 생성할 수 있습니다.
img2img 생성의 특성 이해하기
img2img로 새로운 이미지를 생성할 때 img2img의 이미지 생성 특성을 이해한다면 다양한 방법을 시도해볼 수 있습니다. img2img로 이미지 생성을 요청하면 우선 참고할 이미지의 픽셀을 분석합니다. 그리고 픽셀의 구성을 생성할 이미지가 그대로 따라갑니다. 원본 이미지를 업로드 한 뒤 프롬프트에 person을 입력해 img2img 생성을 요청한다면 원본 이미지가 가지고 있는 특성들이 생성될 이미지에 반영이 됩니다. 사진을 보면 고양이에서 사람으로 객체가 바뀌었지만 입고 있는 옷의 색상, 배경과 구도가 원본가 비슷하다는 것을 확인할 수 있습니다.
사용한 Ckpt Models
realistic(실사) → https://cifai.com/models4201/reafiation-vion-b1
anything(애니) → https://dvitai.com/model/86?modeMens/onld=75
정리) 실사 이미지에서 애니 그림체로 바꿔보기
- ckpt 마다 다른 그림체 형태를 띤다.
- ControlNet을 써야 원본의 형태를 유지하기 쉽다.
이번 글은 Image2Image 이미지 생성 방법에 대해서 알아보았습니다. Stable Diffusion img2img의 자체 기능만으로도 비슷한 이미지를 생성할 수 있었고 ControlNet 기능을 활용해서 조금 더 원본에 가까운 새로운 이미지를 만들어 낼 수 있었습니다. 여러 체크포인트 모델들을 사용해 보고, 다양한 ControlNet 모델을 직접 사용해 보는 것이 실력 상승의 핵심이라고 생각합니다. 다음 글에는 inpaint 기능에 대해 알아보도록 하면서 이만 글 마치겠습니다.
[저번 글 목록]
2024.03.18 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Text2Image & ControlNet
본 글은 메타코드 서포터즈 활동을 위해서 강의를 제공받아 작성하였습니다.
메타코드M은 빅데이터, AI 강의를 제공하는 플랫폼이자 IT 현직자 모임을 위한 커뮤니티입니다. 이곳에서는 다양한 IT 분야의 전문 지식과 실무 기술을 배울 수 있는 온라인 강의를 제공하고, 같은 분야에 관심이 있는 사람들과 소통할 수 있는 공간을 제공합니다. 빅데이터 자격증, 데이터 분석, 프로그래밍, 인공지능 등 다양한 분야의 강의와 현직자 커리어 특강을 통해 IT 분야의 전문 지식과 실무 기술을 배우고 커리어를 발전시킬 수 있습니다.
SD 강의
https://mcode.co.kr/video/list2?viewMode=view&idx=84
https://www.youtube.com/@mcodeM
'AI > GenAI - Image' 카테고리의 다른 글
[메타코드] 생성형 AI 입문 완성강의 - Deforum을 사용해서 동영상 생성해보기 (2) | 2024.03.23 |
---|---|
[메타코드] 생성형 AI 입문 완성강의 - Lora를 통한 모델학습 (1) | 2024.03.22 |
[메타코드] 생성형 AI 입문 완성강의 - Dreambooth를 활용한 나만의 모델 학습하기 (0) | 2024.03.21 |
[메타코드] 생성형 AI 입문 완성강의 - Inpaint (0) | 2024.03.20 |
[메타코드] 생성형 AI 입문 완성강의 - Text2Image & ControlNet (2) | 2024.03.18 |