AI 이미지/AUTOMATIC1111

이미지 프롬프트 사용법

하늘이푸른오늘 2023. 12. 10. 00:25

이미지 프롬프트를 사용하면 이미지를 프롬프트의 일부로 사용하여 출력 이미지의 구도, 스타일 및 색상에 영향을 줄 수 있습니다. 이 글에서는 이미지 프롬프트가 무엇인지 알아보고, 이미지 프롬프트를 사용하는 방법을 알아봅니다. 

이 글의 목차는 아래와 같습니다.

소프트웨어 설정

이 글에 있는 내용은 스테이블 디퓨전의 대표적인 UI인 AUTOMATIC1111을 사용합니다. 원래 구글 Colab 및 Mac에서도 설치할 수 있지만, 이 블로그에서는 윈도11에 설치하는 방법만 다룹니다. AUTOMATIC1111을 처음 접하시는 분은 초보자 가이드를 읽어보시기 바랍니다.

아울러 이 글에서는 콘트롤넷을 사용하므로, 이 글을 읽어보시면 좋습니다.

IP-adapter 모델 설치

IP-adapter 콘트롤넷을 사용하려면, 먼저 SD 1.5용 IP-adapter 모델을 다운로드 받아야 합니다.

이 두개의 파일을 다운로드 받은 후, 아래의 두개의 폴더중 하나에 넣어줍니다. ComfyUI와 모델을 공유할 경우, 이 글에 있는 폴더에 맞추어야 합니다.

  • stable-diffusion-webui\extensions\sd-webui-controlnet\models
  • stable-diffusion-webui\models\ControlNet

이미지 프롬프트란?

이미지 프롬프트(Image Prompt)는 Stable Diffusion 모델에 대해 이미지를 입력으로 사용하는 것을 말합니다. 즉, 텍스트 프롬프트에 대한 추가 입력으로 사용됩니다. 텍스트 프롬프트와 이미지 프롬프트 모두 조건부여(Conditioning)를 통해 AI 이미지 생성에 영향을 줍니다.

IP-adapter는 Hu Ye 등이 "IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models(Txt2Img 디퓨전 모델에 대한 텍스트와 호환 가능한 이미지 프롬프트 어댑터)" 에서 기술한 신경망인 IP-Adapter 를 통해, 스테이블 디퓨전에 이미지 프롬프트로 사용할 수 있습니다.

컨트롤넷과 마찬가지로 IP 어댑터도 Stable Diffusion 모델을 수정하지 않습니다. 다만 조건부여(Conditioning)을 통해 모텔에 영향을 미치며, 모든 Stable Diffusion 모델과 함께 사용할 수 있습니다.

AUTOMATIC1111 의 경우, IP Adapter는 콘트롤넷 확장으로서 사용됩니다.

이미지 프롬프트 사용법

Text-to-Image

AUTOMATIC1111에서는 txt2img에서 이미지 프롬프트를 사용할 수 있습니다. 먼저 이미지 프롬프트를 사용하지 않고 이미지를 생성하고, 이미지 프롬프트를 사용해 이미지를 생성한 후, 두가지 영상을 비교해 보도록 하겠습니다.

txt2img 설정은 아래와 같습니다.

모델: RealisticVision v2,0
프롬프트 : photo of a ino woman in a race car with black hair and a black pilot outfit,morning time, dessert
부정적 프롬프트 : disfigured, ugly, bad, immature, cartoon, anime, 3d, painting, b&w, 2d, 3d, illustration, sketch, nfsw, nude
샘플링 방법 : DPM++ 2M Karras
이미지 크기 : 512x768
CFG 척도 : 7

아래는 이렇게 생성된 이미지 입니다.

이미지 프롬프트 추가

콘트롤넷 extension에서 IP-adapter를 적용하여 이미지 프롬프트를 추가해 보겠습니다. 콘트롤넷에서 사용할 이미지는 아래와 같습니다.

txt2img 탭에서 아래쪽으로 내려가, ControlNet 페이지를 펼치고 아래와 같이 설정합니다.

  • Enable: Yes
  • Pixel Perfect: No
  • Control Type: IP-Adapter
  • Preprocessor: ip-adapter_clip_sd15
  • Model: ip-adapter_sd15
  • Control Weight: 0.5
  • Starting Control Step: 0
  • Ending Control Step: 1
  • Control Mode: Balanced
  • Resize mode: Crop and Resize

아래는 이렇게 IP-adpater를 적용하여 생성된 결과입니다. 검은색 파일럿 복(텍스트 프롬프트)와 뒤쪽으로 수평선이 보이고 옆쪽을 바라보는 여성(이미지 프롬프트)가 모두 적용되었음을 알 수 있습니다.

이미지 프롬프트 적용 효과 변경

이미지 프롬프트 적용 효과는 Control Weight 매개변수를 조정하여 변경할 수 있습니다. 

0.2 0.5 0.7 1.0

위의 예에서 알 수 있는 것처럼, Control Weight를 낮추면 텍스트 프롬프트를 따라가는 경향이 많으며, Control Weight를 높이면 이미지 프롬프트와 더 많이 비슷해 집니다.

IP-adapter plus 

IP-adapter는 두가지 모델이 있습니다. 표준 모델(ip-adapter_sd15.pth)과 플러스 모델(ip-adapter_sd15_plus).pth 입니다. 플러스 모델을 사용하려면 ControlNet 영역에서 모델을 ip-adapter_sd15_plus.pth 로 바꾸어 주기만 하면 됩니다.

플러스 모델은 상당히 강력하게 영향을 미칩니다. 아래에서 보시는 것처럼 Control Weight 를 0.5 이상 올리면, 이미지 프롬프트 이미지를 거의 그대로 복제합니다.

0.2 0.4 0.5 1.0

하지만 IP-Adapter를 써먹기 좋은 경우도 있습니다. 아래를 계속 읽어보세요.

SDXL 모델에서 IP-Adapter 사용방법

SDXL 모델에도 IP-Adapter를 적용할 수 있습니다. 이때, 설정은 아래와 같이 변경합니다.

  • 모델 : SDXL 모델 - RealvisXLV20
  • 이미지 크기 : 832×1216 등 SDXL 모델에 맞는 크기
  • 콘트롤넷 전처리기 : ip-adapter_clip_sdxl
  • 콘트롤넷 모델 : ip-adapter_xl

아래는 이렇게 적용하여 생성한 이미지입니다. 잘 생성되네요.

아래는 IP-Adapter-XL 을 적용하면서 Control Weight를 변경하며 시험해본 결과입니다. 가중치의 효과가 잘 나타납니다.

0.2 0.5 0.7 1.0

==

이상입니다. 이 글은 https://stable-diffusion-art.com/image-prompt/ 를 번역하며 예제는 제가 생성한 것으로 대체하여 작성한 글입니다. 다만, 원본 글에는 맨 아래쪽에 고양이 얼굴의 소파를 생성했는데, 아래래도 살릴 수 없어 포기했습니다.