스테이블 디퓨전(StableDiffusion)

스테이블 디퓨전(Stable Diffusion), '프롬프트 파밍 & 작성법'은 알고계신가요?

물범쌤 2024. 5. 11. 17:57

안녕하세요 여러분! 물범쌤입니다 :)

 

오늘은 여러분들께서 익숙하실수도 있는 프롬프트에 대한 이야기를 해볼건데요.

 

스테이블 디퓨전에는 직접 설정 모델과 간접 설정 모델,

다른 말로는 모델링과 보조 모델링이라는 개념이 있습니다.

 

지난번에 소개드렸던
VAE , Checkpoint,Lora,Embbeding 등의 파일들이 직접설정모델,

 

저희가 작성하는 프롬프트가 바로 간접설정 모델,
즉 보조 모델링이라고도 합니다.

 

Q. 아니 쌤, 잘못 말씀하신거 아니에요? 사용자가 직접 프롬프트를 입력하는데

어째서 프롬프트가 간접 설정 모델인거죠?

 

A. 직접 설정했다고 해서 직접 설정 모델이 아니라,
스테이블 디퓨전에게 더 직접적으로 작용한다는 의미입니다.

쉽게 말씀드려서 간접설정 모델인 프롬프트를 그대로 두고,
체크포인트를 변경하면 이미지가 확실하게 변하지만

체크포인트 등의 파일은 그대로 두고,
프롬프트를 바꾼다고 해서 이미지의 종류(실사 or 애니메이션)가 바뀌지는 않습니다.

아래에서 예시를 통해 보여드릴게요!

 

 

 

따라서 프롬프트는 보조 모델링인데,

그렇다면 별로 중요하지 않은게 아닐까 생각하실 수도 있는데,

프롬프트는 온라인 게임으로 치자면 캐릭터 커스터마이징이라고 보시면 됩니다.

 

예를 들어서, 매우 아름다운 한국 케이팝 아이돌 이라는 종족(checkpoint)을 골랐는데

눈을 좁쌀만하게 설정하고, 코를 낮게 설정하고, 입을 옆으로 쭉 늘려놓는다면

과연 그 캐릭터가 이쁘게 완성될 수 있을까요?

 

프롬프트는 체크포인트,로라,임베딩 등의 파일들로
기본적으로 설정된 아름다운 이목구비 위에

디테일하게 화질,눈,코,입,상황,동작,의상 등을 설정하는 행위입니다.

 

하지만 많은 분들이 어떻게 프롬프트를 작성해야
원하는 이미지를 얻을 수 있을지에 대해서 많은 고민을 갖고 계십니다.

 

그래서 오늘은 제가 지금껏 진행했던 프롬프트 확보,
개인적으로는 프롬프트 파밍이라고 말하는 행위와
아직도 많은 분들이 착각하고 계신
프롬프트 작성법에 대한 포스팅을 진행해보려고 합니다.


 

가장 좋은 프롬프트 파밍은 우선 벤치마킹입니다.

우리에게는 스테이블 디퓨전 고수들이 만들어 놓은 아주 좋은 자료들이 있죠?

civitai로 접속해 줍니다.그리고 Images를 클릭해 주세요

 

많은 이미지가 나오지만,
저는 이쁜 한국 여성이미지를 매우 좋아하기 때문에
검색창에 'korean'을 검색하겠습니다.


real이나 anime 등으로 검색하셔도 좋고,
우측 상단에 필터를 통해서
가장많은 댓글이나 가장많이 다운로드 받은 순으로 정렬하셔서
마음에 드는 이미지를 찾아보세요!

 

 


저는 이 이미지가 마음에 들었습니다.

벤치마킹을 위해서 가장 중요한것은 이 사람이 설정한 직접 설정과
간접설정을 그대로 참고
하는 것입니다.

다행히 드래그가 필요없이 프롬프트 좌측상단에 아이콘을 클릭하면
자동으로 복사가 됩니다.(빨간색 동그라미 부분)
그리고 간접설정부에 들어가는 내용들을 참고해서
한번 최대한 비슷하게 만들어 봅시다.

 

 

우리가 벤치마킹 하는 중요한 이유 중의 하나는 물론 프롬프트도 있지만,

우리가 원하고 이쁘다고 생각하는 이미지를 뽑기 위해서
필요한 설정들을 아직 모르기 때문
입니다.

따라서 이미 만들어진 이미지를 벤치마킹할때에

내가 갖고 있지 않은 체크 포인트나 로라가 발견되면

그 파일들을 최대한 확보해두시는 것이 중요한 목표입니다.

 

아래 이미지처럼 최대한 똑같은 설정으로
(시드 값까지 똑같이 설정해줍니다) 작성하고,
이미지 생성을 누릅니다.

 

 

짠!

어때요? 굉장히 비슷한 느낌의 이미지가 생성되었죠?

 

조금 더 이미지를 생성해 보겠습니다.

이번에는 Batch count 와 Batch size 를 조절해서 4장의 이미지를 뽑아볼게요
Batch count 와 Batch size가 이해되지 않는 분들은
꼭 지난번 포스팅(스테이블 디퓨전 UI)을 보고 진행해 주세요.

이미지 생성에 있어서 디테일한 UI 설정들이 정말 큰 무기가 됩니다.

 

여러 장의 아름다운 이미지가 나왔습니다.

그렇다면 이렇게 아름다운 이미지가 나온 프롬프트가
어떤 의미를 갖고 있는지 알아야

다음에 꼭 써먹을 프롬프트를 추릴수 있겠죠?

 

본격적으로 프롬프트를 파밍해 봅시다.


파파고에 긍정 프롬프트를 복사하여 하나씩 뜻을 살펴봅시다.

 

프롬프트는 크게 5가지 정도의 분류로 나눠집니다.

 

●품질 : 이미지의 화질이나 뚜렷함 정도를 설정합니다
●장소 : 장소에 대해 묘사합니다.주변 환경이나 가구,소품까지 포함합니다. 
●인물묘사 : 헤어스타일,메이크업,눈,코,입,액세서리,의상,포즈 등의 외형과
  인물의 감정상태를 설정합니다.
 
●상황 : 인물의 동작을 설정합니다.
  어딘가의 앉았다, 기대고있다,어딘가를 바라보다 등이 포함됩니다.
●카메라 시점 : 어디에서 인물을 촬영하는지를 설정합니다.
  위에서,뒤에서,옆에서,아래에서 등이 있습니다.

 

 

자, 그럼 말씀드린 분류에 따라서 한번 프롬프트를 나눠볼게요

 

◎ 품질 : 없음

◎ 장소 : 한국,카페,음식,메뉴, 테이블, 의자, 장식, 식물, 꽃, 창문, 자연광,도시, 거리, 건물,
     커피,라떼,카푸치노,케이크,페이스트리,디저트

◎ 인물묘사 : 여자,미소, 행복, 귀엽고, 스타일리시, 유행, 패션, 
     메이크업, 립스틱, 아이섀도, 네일, 액세서리, 핸드백,
     포근,편안,기분 좋은 느낌, 친구, 대화, 웃음, 재미,행복, 자신감, 자존감,플레이리스트, 헤드폰

◎ 상황 : 포즈, 사진, 인스타그램, 소셜 미디어, 스마트폰, 카메라, 셀카,
     휴식,엔터테인먼트, 여행, 모험, 탐험, 문화, 유산, 

◎ 카메라 시점 : 없음

 


그럼 여기에서 제가 생각했을때에
필요 없다고 느껴지는 프롬프트를 제외하고 다시 프롬프트를 작성해 볼게요

 

품질 : 없음

장소 : 한국,카페, 테이블, 의자, 장식, 식물, 꽃, 창문, 자연광,도시, 거리,커피,케이크,디저트

인물묘사 : 여자,미소, 행복, 귀엽고, 스타일리시, 유행, 패션, 
     메이크업, 립스틱, 아이섀도, 네일, 액세서리, 핸드백,
     웃음, 재미,행복,헤드폰

상황 : 포즈, 사진, 인스타그램, 카메라, 셀카,  여행,  

카메라 시점 : 없음

 

 

어떤가요?프롬프트가 많이 짧아졌죠?
그럼 이대로 stable diffusion에 입력하고 한번 이미지를 생성해 보겠습니다.

 

친구가 함께 출력되니 friends를 지우고,
프롬프트에 'solo'를 추가해서 다시한번 뽑아볼게요.

 

 

어떤가요? 프롬프트를 줄였다고 해도
이미지가 보여주려는 느낌은 충분히 유지되고 있죠?

 

마음에 드는 이미지를 찾고 프롬프트를 무조건 그대로 사용하다보면,

막상 진짜 원하는 이미지를 생성할때에
어떤 프롬프트를 작성해야 하는지 모르는 상태가 지속됩니다.

 

따라서 프롬프트를 찢어보고,
필요한 프롬프트가 무엇인지 확인하는 과정을 거치면서

자주쓰는 프롬프트를 기억하게 되는것이 바로 프롬프트 파밍의 개념입니다.

 

포스팅은 civitai를 예로 들어 드렸지만,
( civitai는 체크 포인트 및 로라 정보를 바로 알고 있고,
바로 다운받을 수 있는 장점이 큽니다.)


참고 프롬프트 파밍은  civitai 가 아니더라도
무료 이미지 생성사이트에 있는 갤러리들을 참고하셔도 좋습니다.

무료 이미지 생성사이트들은 전에 포스팅으로 한번 알려드린적 있죠?

 

그 중 대표적인 사이트인 leonardo.ai 와 lasco.ai에도
프롬프트를 참고 할 수 있는 갤러리가 있습니다.

 

 


반응형

위의 예시에서는 화질에 대한 프롬프트가 없었는데,
사실, 실사 이미지를 뽑고 싶으신 분들은
화질에 대한 프롬프트를 반드시 챙겨주시는게 좋습니다.

 

먼저 화질에 대한 프롬프트 유무 차이를 좀 보여드릴게요.


 

화질 프롬프트는 보조 모델링을 통한 업스케일링의 과정이기 때문에

이미지가 작을때보다 확대되었을때 더욱 큰 차이를 보입니다.

 

위의 예시에서 화질 프롬프트의 차이를 잘 못느끼겠다 하시는 분들은
'빛이 피부에 주는 음영이 제대로 반영되었는가'를 기준으로 살펴보시면
아마 감을 잡으실 수 있으실 겁니다 :)

 


 

화질 프롬프트와 함께 알려드리고 싶은 개념이 바로 '프롬프트 가중치' 입니다.

스테이블 디퓨전은 사용자가 입력한 프롬프트를
동일한 중요도로 인지 하지 않습니다.

 

우리가 그림을 그릴때 밝은색부터 칠해야 색이 섞이지 않듯이

스테이블 디퓨전 또한 가장 중요한 프롬프트 부터 적용해야
사용자가 원하는 이미지를 생성할 확률이 높다는것을 토대로 작동하기 때문이죠.

 

프롬프트 가중치에는 두 가지 방법이 있습니다.

 

1.프롬프트의 위치

 

2.프롬프트에 강제로 가중치 주입하기

 

1번, 프롬프트 위치에 대한 경우 기본적으로 프롬프트를 작성할때에 적용합니다.

보통 아까 위해서 말씀드렸던
품질> 장소> 인물묘사> 상황> 카메라 시점 순으로 프롬프트를 작성하며,

이것을 기초 프롬프트 작성법이라고 합니다.

 

기초 프롬프트 작성법에 따른 이미지를 예시로 첨부해드리겠습니다.

먼저 프롬프트를 여러분이 보기 편하게 순서에 따라
줄바꿈을 사용해서 작성해봤습니다.

 

 

의도한 결과물은 밤거리에서 힙한 갸루 패션으로 계단에 앉아있는 여성입니다.
(*프롬프트는 제가 직접 작성했습니다.)

 

그리고 아래는 출력된 결과물입니다.

 

 

이미지는 잘 뽑혔지만 계단에 앉아있다라는 프롬프트,

그리고 야구모자에 대한 프롬프트가 잘 적용되지 않은것 같습니다.

 

여기에서 2번.가중치 강제 주입을 사용할 예정인데

가중치 강제 주입에도 2가지 방법이 있습니다.

 

●괄호를 통해서 프롬프트를 강조하는 방법.

●가중수치를 입력하여 컨트롤 하는 방법.

먼저 소괄호()를 통해서 강조하는 방법으로
'야구모자' 와 '계단에 앉는다' 라는 프롬프트를 강조해 보겠습니다.

소괄호를 통한 강조는 최대 세 개 까지 적용됩니다.

 

어떤가요? 강조가 제대로 적용되었죠?

 

다음은 가중치 주입을 통해서 강조해 보겠습니다.

기본적으로 모든 프롬프트는 '1'의 가중치를 갖고있는데,
사용자는 0.1~1.8까지의 가중치를 설정할 수 있습니다.

(1.8이상은 숫자로는 입력이 가능하지만 실질적으로 반영이 되지 않습니다.)

 

이번에는 소괄호 강조를 지우고 가중수치로 강조해 보겠습니다.

 

이처럼 프롬프트 작성 순서, 소괄호, 가중수치를 통한 강조 방법을 통해 

사용자가 원하는 이미지 생성을 좀 더 원활하게 진행 할 수 있습니다.

평소에는 위에서 보여드렸던 강조 방법을 모두 혼합해서 사용합니다.


프롬프트는 벤치마킹을 통해 자신만의 프롬프트 풀을 만드는것이 가장 좋지만,

다른 사용자들의 이미지를 일일히 확인하기에는 시간이 소요되는 것도 사실입니다.

마지막으로, 보편적으로 사용 가능한 프롬프트를
한눈에 볼 수 있는 참고사이트 한 곳을 알려드리겠습니다.

 

https://novelai.app

 

 

태그 생성기는 아까전에 말씀드렸던 프롬프트 작성법에 따른

방대한 양의 프롬프트가 나열되어 있으며

왼쪽의 참에서 태그를 클릭하면

오른쪽에 프롬프트로 자동으로 입력되는 매우 편리한 사이트 입니다.

 

다만, 태그 생성기에 없는 프롬프트들도 많기 때문에
(RAW photo,extremely detailed CG unity 8k wallpaper 등),

태그 생성기로 장소와 배경에 대한 틀을 잡고

프롬프트 파밍으로 디테일한 프롬프트를 작성하시길 추천드립니다.

 


오늘은 프롬프트 작성법과 프롬프트 파밍에 대해 알아보았습니다.

프롬프트가 그저 텍스트 이기 때문에, 쉽게 복사할수 있기 때문에
가볍게 생각하셨다면,

이번 기회에 다시 한번 깊게 탐구해보시는 걸 추천드리겠습니다.
이미지의 품질이 매우 크게 달라지기 때문입니다.

 

이 컨텐츠가 유익하셨다면 공감(♡)과 댓글 부탁드리겠습니다.

그럼 모두들 좋은 하루 되세요! ^^

반응형