AI 이미지/Stable Diffusion

이미지에서 프롬프트를 알아내는 방법

하늘이푸른오늘 2023. 10. 19. 17:14

멋진 AI 이미지를 발견했을 때, 무슨 프롬프트로 생성했을까 궁금할 때가 있으실 겁니다. 이럴 때 프롬프트를 알아내는 방법을 몇가지 소개시켜드립니다. 또한 이미지를 재 생성할 확률을 높일 수 있는 몇가지 기법도 소개합니다. 

이 글의 목차는 다음과 같습니다.

소프트웨어 설치

이 블로그에서 다루는  AI 이미지 생성용 모델은 stable diffusion입니다. 하지만 이 모델은 사용하기 힘들기 때문에(python 프로그램을 돌려야 합니다) 쉽게 사용할 수 있도록 해주는 유저인터페이스가 여러가지 개발되었습니다. AUTOMATIC1111(설치 방법)이 가장 널리 사용되지만, 그냥 쉽게 사용할 때는 Easy Diffusion(설치 방법)도 괜찮습니다. 요즘 저는 조금 복잡하지만 성능이 좋고 원리도 파악할 수 있는 ComfyUI(설치 방법)를 주로 사용하고 있습니다. 

이 글에서 나오는 내용은 주로 AUTOMATIC1111를 사용하는 부분이 많으니 참고하시기 바랍니다.

PNG 정보에서 프롬프트 알아내기

AI 이미지가 PNG 포맷인 경우, PNG 메타데이터 필드에 프롬프트 및 다른 설정 정보가 포함되어 있는지 확인해 보는 것이 좋습니다. 특히 civitai.com과 같이 AI 이미지 공유 사이트에 올려진 이미지들에는 이런 정보가 포함된 경우가 많습니다. 

일반적인 PNG 메타정보 사이트(예: https://exifmeta.com/)를 사용해서 이미지 생성정보를 알아볼 수도 있지만, AUTOMATIC1111, ComfyUI 등에서는 더 쉬운 방법이 있습니다.

AUTOMATIC1111의 경우, 웹UI를 열고 PNG Info 페이지로 들어가서 이미지를 캔버스에 올리면 아래와 같이 관련 메타데이터 정보가 나타나게 됩니다. 물론 PNG에 관련정보가 없을 경우엔(저장하지 않게 설정할 수 있습니다.) 아무것도 나타나지 않고요.

잘 들여다 보시면 프롬프트/부정적 프롬프트/기타 잡음 제거 샘플링/씨드/모델 등의 이미지 생성에 필요한 거의 모든 정보가 들어있음을 알 수 있습니다. 그 아래에 있는 버튼 세 개를 사용하면 직접 txt2img, img2img, inpaint 로 정보를 보낼 수도 있습니다. 

ComfyUI에서 생성한 AI 이미지일 경우 아래와 같이 관련 정보가 매우 복잡하게 나타납니다(이 아래로도 쭉~~ 계속됩니다). 물론 잘 찾아보면 프롬프트/부정적 프롬프트/기타 잡음 제거 샘플링/씨드/모델 등 관련 정보를 모두 찾을 수 있습니다. 

하지만, 이렇게 ComfyUI로 생성한 이미지가 확실하다면, 구지 AUTOMATIC1111에서 이미지를 생성할 필요가 없습니다. 그냥 이 파일을 ComfyUI 캔버스에 떨어뜨리면 워크플로가 완전히 복원되기 때문입니다. 혹시 커스톰노드가 없는 등의 문제가 발생할 수 있지만, 여기를 읽어보시면 쉽게 대처할 수 있으실 겁니다.

CLIP interrogator 사용하여 프롬프트 알아내기

하지만, PNG 포맷이 아닌 경우엔 이런 생성관련 정보가 대부분 없습니다. 또한 PNG 포맷인 경우에도 없는 경우가 꽤 있고요. 원래 정보를 넣지 않은 경우도 있지만, 웹에 올릴때 서버에서 잘라버릴 수도 있습니다.

이런 경우, CLIP interrogator를 사용해 볼 수 있습니다. CLIP interrogator 는 이미지의 캡션(caption, 제목)을 추측하는 AI  모델입니다. 물론 이 것은 AI로 생성한 이미지가 아닌 일반 이미지에도 사용할 수 있습니다.

CLIP 이란?

CLIP(Contrastive Language-Image Pre-training)은 시각적 개념을 자연언어와 매핑시켜주는 신경망입니다. CLIP 모델은 수많은 이미지와 이미지 제목(캡션)을 사용하여 학습하여 생성됩니다.

CLIP (자료원: OpenAI)

이미지가 주어지면 CLIP 모델은 해당 이미지에 대한, 이미지를 설명하는 캡션을 추론할 수 있습니다. 우리는 이 결과를 프롬프트에 사용할 수 있습니다.

AUTOMATIC1111 기본 CLIP interrogator 사용법

img2img 페이지에 들어가면 AUTOMATIC1111의 기본 CLIP interrogator를 사용할 수 있습니다. 이것은 BLIP 이라는 CLIP 모델을 사용합니다. 

사용하려면 AUTOMATIC1111 의 img2img 페이지에서 캔버스에 원하는 이미지를 올린 후, [Interrogate CLIP] 프롬프트를 누르면 됩니다. 잠시 지나면 아래 그림과 같이 프롬프트 창에 분석된 CLIP이 나타나게 됩니다.

AUTOMATIC1111 CLIP Interrogator 사용방법

이렇게 나온 프롬프트는 당연히 원래 생성에 사용했던 프롬프트와 다르며, 동일한 이미지가 생성될 확률은 0에 가깝습니다. 또한 이 프롬프트에는 동일한 내용이 반복되기도 하고 잘못된 내용이 포함되는 경우도 많다 충분한 검토가 필요합니다. 

CLIP interrogator 확장

기본 CLIP Interrogator는 다른 CLIP 모델도 사용할 수 없고, 설정을 바꿀 수도 없습니다. 좀 더 세밀한 작업이 필요하다면 별도의 확장을 설치하는 것이 좋습니다. 아래는 추천하는 확장입니다.  기타 AUTOMATIC1111에 유용한 확장은 이 글을 읽어보시기 바랍니다. 

https://github.com/pharmapsychotic/clip-interrogator-ext

 

이 확장을 설치한 후, AUTOMATIC1111에서 Interrogator 페이지에 들어가 이미지를 올린 후, CLIP 모델이 "ViT-L-14-336/openai"(SD1.5에서 사용하는 모델입니다)인지 확인하고 [Generate] 버튼을 눌러주면 아래와 같이 분석된 프롬프트가 나타납니다(처음에는 모델을 불러오느라 3분 이상 소요됩니다)

AUTOMATIC1111 interrogator 확장 사용방법

  • 참고로 CLIP  모델을 "ViT-L-14/laion2b_s32b_b82k"로 선택하면 SDXL 용 프롬프트를 얻을 수 있습니다.

Huggingface 사이트

AUTOMATIC1111 을 사용하지 않고 CLIP 을 분석하는 전용사이트를 사용할 수도 있습니다.  아래 사이트입니다.

https://huggingface.co/spaces/pharmapsychotic/CLIP-Interrogator

이 사이트에 접속하면 아래와 같은 화면이 나오는데, 이미지를 업로드하고 [제출하기] 버튼을 누르면 CLIP을 분석해 프롬프트가 생성됩니다. 다만, 이 사이트는 대기열이 많은 편이라서 분석하는데 시간이 오래걸리는 단점이 있습니다. 이 사이트를 복제해서 자신의 사이트로 만들면 오래 기다리지 않아도 되지만, 유료고요.

Huggingface Interrogator 사이트 사용법

아래는 이렇게 생성된 프롬프트와 기본 interrogator를 사용했을 때 생성된 프롬프트를 비교한 것입니다.

원 이미지 생성용 프롬프트: A painting of a cute goldendoodle wearing a suit, natural light, in the sky, with bright colors, by Studio Ghibli

기본 Interrogator: a dog in a suit and tie standing in front of a sky with clouds and stars and a full moon, Chris LaBrooy, trending on furaffinity, a character portrait, furry art

Interrogator 확장: a dog in a suit and tie standing in front of a cloudy sky, full art illustration, streaming on twitch, fluffy white clouds, idol, rpg portrait full body, mix of biden and obama, maplestory, suit made of stars, presidential portrait, extremely handsome 

Huggingface : a drawing of a dog wearing a suit and tie, blue sky with colorful clouds, visual novel sprite, trending on dribbble.com mascot, fullbody rpg portrait, presidential, by Ye Xin, hd anime wallpaper, bob ross style, 2 0 1 9 anime, epic fantasty card game art, h r

비교해 보시면 내용이 약간씩 닮기는 하지만, 전체적으로는 다른 것이 많은 편이고, 무엇보다 원래의 프롬프트와는 아무런 공통점이 없어 보입니다. 이러한 CLIP Interrogator의 특성을 감안하고 사용하는 게 좋을 것입니다.

비슷한 이미지를 생성하기 위한 팁

반드시 먼저 PNG 정보부터 시도해 보는 게 좋습니다. 만약 운이 좋다면 프롬프트 뿐만 아니라, 모델, 샘플링 방법, 시드 등 이미지 생성에 필요한 거의 모든 정보를 알 수 있기 때문입니다.

CLIP Interrogator를 사용할 경우, 기본 Interrogator(BLIP 모델)과 확장 버전(CLIP 모델: ViT-L-14-336/openai  및 ViT-L-14/laion2b_s32b_b82k)을 모두 테스트해보고 비교를 해보면 더 나은 프롬프트를 얻을 가능성이 있습니다. 또한 생성된 프롬프트를 그대로 사용하기 보다는 합리적인 수준에서 수정하여 사용하는 것이 좋습니다. 생성된 CLIP 중에는 아얘 잘못된 내용이 포함되는 경우도 있기 때문입니다. 

또한, 이 프롬프트를 그냥 사용해서 좋은 결과를 얻지 못했을 경우, Chat GPT를 사용해서 프롬프트를 정제해 보는 것도 좋을 수 있습니다. 

마지막으로 아무리 프롬프트가 좋아가 체크포인트 모델이 바뀌면 스타일이 완전히 달라지므로, 어떤 모델이 사용되었는지 모르는 경우 여러가지 모델을 시험해 보는 것이 좀더 멋진 이미지를 얻을 수 있는 방법입니다.

민, 푸른하늘

이 글은 https://stable-diffusion-art.com/prompts-from-images/ 을 기본으로 수정하여 작성한 글입니다.

====