본문 바로가기
AI-인공지능

Stable Diffusion - Checkpoint, Lora, Prompt, Sampleing에 대하여

by 연풍사랑 2024. 3. 29.

SD를 처음 사용하면 나온 결과물에 대하여 실망을 금할수 없을것이다.

나도 웬 공포영화의 장면이??  정도의 결과물이 나왔다.

그래서 일단 SD 의 원리를 대충 이해할려고 여기저기 고수분들의 금과옥조 같은 말씀을 많이 들었다.

결론적으로 그렇게 들었는데 솔직히 원리를 이해하기가 어려웠다.

그래서 내 나름대로 해석해 보았다.

1.  [checkpoint]   이것이 기본모델이고 여기에 SD가 학습시킨 전반적인 많은 내용이 들어있다.

                            checkpoint 모델은  그래서 파일크기가 상당히 크다.  2G 에서 크면 5G , 7G 가 넘을수있다.

                            그렇다고 이세상 모든것을 학습시킬수는 없지않겠는가?  

                            그래서 checkpoint 모델은 우리가 요구하는 결과물의 특성에 가장 중요한 영향을 끼친다.

                            어떤 checkpoint 모델을 사용하는가에 따라 결과물의 quality 나 특성이 다르다.

                            이것은 마치

                            신윤복 화가(조선시대 화가), 이중섭 화가, 피카소 화가, 고갱, 기안84님 

                            이런 분들에게 우리가 " 아름다운 여성, 젊고 , 하얀블라우스에 청바지를 입고, 건강미 넘치고

                            안경을 쓰고, 귀걸이가 있고, 화장은 한듯 안한듯 한 한국여성을 실사처럼 그려달라"

                            라고 요구한다면 그 결과물은 모두 화가분들의 화풍에 따라 다 다르게 나올것이다.

                            여기서 말한 화가에 해당되는 것이  checkpoint 모델이라고 이해하자.

2. [prompt 와 negative prompt]  이것이 바로 우리가 요구하는 요구사항에 해당된다.

                            윗글에서 "아름다운 여성, 젊고 , ..... 어쩌고 저쩌고 ....." 이런것이 prompt 이다

                            다만 안타깝게도 영어로 알려줘야 한다.   SD도 미국에서 태어나 영어를 참 잘한다.

                            걍 prompt 는 요구사항이고 negative prompt 는  결과물을 만들때 이런 것을 넣지 말아 달라는 

                            금지사항에 해당한다.

                             사실 이 prompt 들을 어떻게 작성하는냐에 따라 결과물이 확 달라진다.

3. [sampling method]  이제 SD 는 checkpoint 모델에서 우리가 요구한 사항에 맞는 결과물을 만들어 내야한다.

                           그 만들어 내는 방법을 sampling method 라고 한다.   어떤 방법으로 만드는가에 따라 

                           결과물도 차이가 있다.   우리같은 왕초보는 만들어 볼때 이것도 해보고 저것도 해보고 해서

                           어느것이 내가 바라는  결과물을 만들어 내는지 찾으면 된다.

4. [sampling step] 결과물은 만들때 SD는 한번에 우리가 요구하는 것을 만들수가 없다.

                           마치  처음에 아웃라인그리고 -> 대충 스케치하고 -> 좀더 자세히 그리고 -> 색칠도 좀 하고 

                           -> 거기에 덧칠도 하고 -> 세밀한 부분도 색칠하고 -> .....

                           이런식으로 그림도 완성 되듯이 SD 도 step에 따라 점차적으로 결과물이 나오는데

                            step 의 횟수가 클수록 완성도 가 높을것이지만 다만 소요시간은 더 걸린다.

                            숫자는 1 ~ 150  사이에서 선택하는데  quality 와 시간을 고려 했으때 대략 20~30 정도 에서

                           사용하는 것이 좋을듯하다.

5. [CFG scale]  이 명령어는 1 ~ 30 사이에 선택하는데  이것은  SD 가 우리의 요구사항을 얼마만큼 반영해서 결과물을 

                          만들것인가 말한다.  숫자가 낮을수록 prompt 보다 SD 맘대로 결정해서 만들라는  소리고

                           숫자가 크면 클수록 prompt 사항을 저 지켜서 만들어 달라는 뜻이다.

                           보통 7~8 을 사용하면 무난하다.

6. [seed]  번역하면 씨앗으로 나오는데 보통 SD 를 generate 시켜서 결과물을 만들면 각 결과물에 고유번호가 붙는데

                          그것이 seed 번호이다.   어떤 특정번호를 주면 그 결과물을 만들어 준다.

                          -1 은 어떤것도 상관없이 새로 만든다. 

 

여기까지를 대충 알고서 실행해 봐도 된다.

다만 여기서 중요한 checkpoint 모델을 기본모델 말고 다른 모델도 찾아서 다운받아 사용하여야 좋은 결과물이 만들어진다

checkpoint 모델은 https://civitai.com/ 에 들어 가면 여러종류의  checkpoint 모델들이 많이 있다.

 

그림 왼쪽위에 checkpoint 가 써있는것을 클릭하여 다움받은 후에 SD가 깔려있는 폴더의 하위폴더 에 복사한후 사용가능하다.      C:\stable-diffusion-webui\models\Stable-diffusion\      최 하위폴더 stable-diffusion 폴더에 복사하면 된다.

그리고 고쳐쓰기 하거나 다시 실행하면 새로운 checkpoint 모델이 선택하여 사용할수있다.

 

그 다음 중요한 prompt 에 대해서

( positive) prompt 에 사용 하는 단어나 문장들은 

             masterpiece : 전문가 수준

             realistic : 사실적인 묘사

             best quality , highres : 고품질, 고해상도

             looking at viewer : 렌즈를 향하여 보기

             1girl, 1boy : 한소녀, 한 소년

             detailed eyes : 자세한 눈

             realistic eyes : 사실적인 눈

            perfact face : 완전한 얼굴

            slim  body: 날씬한 체형

            full body : 몸 전체 나오게 할것

            narrow waist : 가는 허리

           mini skirt : 짦은치마

            detailed shadow : 상세한 그늘 배경

            professional lighting : 전문가 조명 배경

           studio : 스튜디오 배경

           room with window : 창있는 방안 배경 

 등등등...

       

negative  prompt 에 주로 사용되는 단어나 문장          NSFW : no safe for work  즉 직장에서 후방주의할 내용, 보통 야한사진          worst quality, low quality : 낮은 품질         blurry : 흐릿한 형태         monochrome : 흑백         noise :  잡음이나 왜곡         text : 문자         watermark : 물자국 처럼얼룩들         child : 어린이들

        bad hands, bad fingers, bad lege, bad body, bad anatomy  : 정상치않는 손이나 손가락, 다리, 몸, 골격

등등.....

 

이런것들을 섞어서 그리고 유사하게 변형해서 이것저것 사용해 보는것이 좋다.

chat-GPT 도움을 받아서 만들어도 참 좋다.

무엇이든 해 보면 뭔 소린지 안다.

 

Lora 에 대하여는 다음 글에서 다루어야 겠다.

 

 

 

좋은 하루 보냅시다.

 

 

 

             

 

          

 

 

 

                     

728x90