안녕하세요. 2/23부터 배우기 시작한 WebUI 뉴비입니다. 이제 20시간 정도 만져본거 같은데... 너무~~~ 너무 재밌습니다. 너무 감동입니다. 너무 좋습니다. 제 No.1 취미가 될 듯 합니다. 


그래서 쌩초보인 제가 배우는 과정들을 정리할 겸 일기 형식으로 적어나가고자 합니다. 


아무 전문 지식 없이 모든 정보를 주관적인 시각으로 주관적인 감성을 적어나갈 겁니다. (틀린 정보 많음 주의)


공부 시간 10시간 정도에 일기를 1개씩 쓸 생각 중입니다. 제가 대략 10시간 걸려서 얼만큼 배웠는지 짐작하시면 좋겠네요. 아무것도 모르는 사람들에게 재밌는 글이 됐으면 좋겠습니다. 


넘버링이 "학습 일기 - 10" = 학습 시간 100시간 정도 되면 정보 게시판에도 올릴 생각입니다. 


잘 부탁드립니다. 


글쓴이 스펙 : 

- 평범한 직장인(30대)

- 그림 그리기가 잠시 취미'였던' 사람

- 프로그래밍 모름, 포토샾 모르는 것과 마찬가지

- 가지고 있는 것 : RTX 3080. 끝. (사랑합니다 우리 그래픽카드) 


글쓴이의 궁극적인 목표: 

- 원하는 그림체로

- 원하는 캐릭터를 (자캐)

- 원하는 구도로

- 원하는 연출로

- 원하는 악세사리를 갖고

- 원하는 인원만큼

자유롭게 할 수 있을 때까지 해볼 겁니다.


그럼 시작해보겠습니다. 

=================================================================================


언제부터인가 Ai로 그림을 그린다는 이야기가 들리다가 실제 그림들을 보고 감탄했다.


인체 비율 박살 난 그림만 그릴 수 있던 내가... 내가 원하는 그림을 그릴 수 있다고????


벅찬 감동을 이끌고 정보 게시판에 뉴비용 정보글 당당히 들어갔는데..... ( https://arca.live/b/aiart/70269083)


프롬? i2i? t2i?  WebUI? 코렐? 로라? Inpaint? ^%79? &$(*&$(^?


내가 프로그래밍 배우러 온 건가...


다 모르겠고 설치부터 해봅니다.  (링크 : https://arca.live/b/aiart/68935395)


설치 완료 후 켜봅니다. <-- 메뉴얼 읽기 전에 해보는 타입. 



윽... 보자마자 숨이 턱 막힘... 


1번 칸에 원하는 키워드를 입력하고 9번 버튼을 누르면 그림이 나온다네. 그래서 "Sport car" 입력하고 눌러봤지. 


당연히 상상 속에선 "개 쩌는 스포츠카 나오겠지?" 이랬건만... 




누구..세요? 


 Sport car 썼는데 이상한 괴물도 선물로 껴준다. 계속 돌려보면 뭔가 나오나? 하고 Batch count 50 해놓고 정보글 읽기...


그렇게 여러 교통사고 난 여자들을 보고 나서야 대충 어떤 건지 감이 잡히기 시작하네. 


1번 칸 : Prompt 입력칸. 내가 원하는 걸 최대한 구체적이고, 특정할 수 있는 단어들로 입력한다. 기본적으로 "쩌는 품질"을 원하면  

"high quality, masterpiece, best quality, distinct_image, high_resolution"는 기본적으로 들어가는 듯 하다. 검색 엔진에서 단어에 연관된 이미지를 찾을 테니 말이다.


2번 칸 : Negative Prompt. 내가 원하지 않는 걸 쓴다. Prompt가 이미지 강화라면 얘는 그 키워드들을 0이 아니라 오히려 -시키는 거지. 도대체 뭘 써야 돼? 걍 잘 모르겠으니 low quality정도 쓰다가 다 귀찮아져서 "Easy nagative" 를 넣었다. (링크 : https://arca.live/b/aiart/69177831?target=all&keyword=easynegative+&p=1) embedding 폴더에 넣는다. -->  저퀄리티, 씹창난 이미지 등과 연관된 단어의 모음집을 적용시킨다고 생각하면 편할 듯 하다. 


3번 칸 : Sampling Method. 연관 단어들 갖고 어떤 검색 방법을 쓰는지 정하는 거다. 어차피 이론 파고 들어도 잘 모르겠으니 그냥 DPM++ 2M Karras, DPM++ SDE Karras만 쓸련다.


4번 칸 : Sampling steps. 이미지 몇개로 diffuse할거냐 정하는 건가. 숫자만큼 이미지를 많이 훑으니깐 좋겠지? 아니래. 지금은 (12번)의 Hires.fix로 퀄리티 업시키는게 더 낫대. 이미지 많이 훑어봤자 노이즈만 많이 끼나보다. 20~30으로 한댄다. 


5번 6번 칸 : Width, Height. 이미지 샘플링을 그 크기로 한대. 그러니 고품질로 하는게 좋겠지? --> 아니래. Sampling Method 자체가 512 pixel로 맞춰져 있다나 뭐라나 그냥 맘편히 512 고정하거나 줄여서 쓴다. 괜히 1000으로 하면 뭔가 2명이 겹친 느낌? 한번에 2명의 사진을 가져와서 그런가? 쨋든 그렇다. Hires.fix 쓰래 그냥. --> 맘에 드는 이미지 나중에 해상도 키울 수 있어. 

1024x1024로 Generate하면...


7번 칸 : CFG Scale. AI의 자유도래. 낮아질 수록 자유도 업. 높아질 수록 자유도 다운. 이것도 4이하로 안 가게 한다나봐. 2로 하고 돌리면 추상화 나옴. (연관성 적은 이미지 가져오니 그렇겠지) 높으면 단어와 최대 유사한 이미지만 뽑는 듯. 


그 아래 Seed칸은 뭐지? 씨앗 몇 개 뿌리는지 인가? 많이 뿌리면 좋은 줄 알고 큰 숫자 넣고 있었다..  

"모델의 어디에" 씨앗을 뿌리는 지라고 생각하면 편한 거 같아. 주소 같은 건가? 싶네.  


8번 칸 : 출력 결과물. Setting에서 자동 저장 해 놨으면 다 저장되어있을 거고, 안 해 놨으면 저장 안 됨. 


9번 칸 : Generate 버튼 아래 애들이 중요한 게 많아. 특히 저 화투 패같이 생긴 애. 쬐끄매가지고 하찮아 보이는데 Texual inversion, hypernetworks, checkpoints, lora. 졸라 언급 많이 되는거 저거 눌러서 메뉴창 띄워.... 저게 다 뭐냐고? 나도 몰라. 일단 놔둘래.


10번 칸 : Stable diffusion Checkpont. 모델을 선택하는 칸. 매우. 매우. 중요하다. 모델이 뭐냐고? 지금까지 내용 보면 "어떤 그림이 그려지게 하는가?"를 결정 해주는 거 같아. 얼굴의 형태, 신체 비율, 물질감, 빛의 음영 세기 등등... 흐리게 봐도 애니 캐릭인지, 진짜 사람 사진인지 분간 가잖아? 그런 걸 먼저 모델이 결정해주고 --> Prompt 연관 이미지로 비슷한 다시 비슷한 이미지를 덧입히고 --> 그 결과물에 또 Lora로 덮나봐.

<<처음에는 인터넷에서도 이미지를 마구마구 가져오는 줄 알았는데, Offline 작업도 된다 하니 모델 안에 있는 데이터들만 사용하나 봐? 잘 모르겠음>>  --> 모델만 사용하는게 맞대. 


모델이 좋아야 내가 원하는 이미지, 그림이 나오겠지? 뭐 깔아? 몰라 나도. 그냥 좋다는 거 3개 깔아봤어.  

(링크 : https://arca.live/b/aiart/68304467)


huggingface든 Civitai가서 오랜지믹스2, Mix pro, chilloutmix(실사) 다운로드 해서 써봄. 


Prompt : 1girl, school uniform, high quality, masterpiece, best quality, perfect fingers, distinct_image, high_resolution

Negative : ((EasyNegative)), ng_deepnegative_v1_75t => 둘 다 Texual inversion 적용 한 거야.  


오랜지믹스2 적용 후 결과

Chilloutmix 적용 후 결과


똑같은 Prompt라도 애니 인물(오렌지믹스2 모델)과 실사 인물(Chilloutmix 모델)의 음영, 체형, 질감 등등이 다 다르니깐 전혀 다른 Diffusion 결과가 나온거겠지?



11번 칸 : SD VAE. 색감을 좋게 해준대. kl-f80anime2있는거 썼어. 아직 잘 몰라. Clip skip은 샘플링을 몇 개 넘겨가면서 하는거겠지.


12번 칸 : Hires.fix. 512x512로 이미지를 만드는 건 세부 표현이 잘 안 될 수 있겠지?? 그래서 좀 더 "고화질의 이미지를 얻는" 기능이야. 512로 만들었던 게 맘에 들어서 이걸 화질 높이고 싶으면 ? i2i로 갈 시간이지만 지금은 잘 모르겠어. 


아 Seed라는 애가 있긴 해. --> 아까 씨앗을 어디다 뿌릴지 결정한다고 했잖아? 아래 예시를 보자. 


같은 Seed, Hires.fix 적용 X


같은 Seed, Hires.fix 적용 후 결과


WebUI의 Image browser


Ai로 만든 이미지는 위에서 보는 것과 같이 Generate Info가 내재되어서 저장 되나 봐. 그걸 EXIF라고 부르나 봐. (export information?)

저기서 prompt니 뭐니 다 들어가 있는 거지.   


나는 여기서 이제 Prompt에 도대체 얼마나 많은 단어들이나 키워드 작성하는게 좋은지 이것저것 찾아보고 실험해보고 찾아보고 실험해보고 괴물들도 많이 만나고 던전을 돌아다니게 돼. 


Model도 이것저것 설치해보고... 색상 좋다느니, 그림체가 어떻다느니 등등. 


i2i = img2img 


위에서 했던건 t2i = txt2img고 img2img기능도 있대. 


내가 취미로 그림을 그렸었으니 부랴부랴 옛날 그림을 꺼내보았지. 


  


글쓴이의 옛날 그림.


위의 그림을 넣고 업그레이드 해보자고 업로드를 했지. 


1번 : Width x Height는 t2i 때와는 다르게 최소 1000x1000으로 해주는 게 좋은거 같아. 특히 원본 구조가 복잡하면 복잡할 수록. 

2번 : CFG Scale. 또한 Ai  자유도 설정이야. 낮으면 낮을 수록 내 원래 그림과는 전혀 딴판을 섞어버려. 

3 번 : Denoising Strength -> 내 그림 형태를 얼마나 유지하겠냐는 거야. 1로 가까워질 수록 원본과 멀어져버려. 0으로 가버리면 그냥 원본 자체가 나오겠지? --> 체감 상 적당히 변화 주고 형태 유지하려면 0.6 근처 정도 되어야 하는거 같아. 


i2i에서도 마찬가지로 prompt와 negative를 내 그림에 최대한 연관되게 써줘야 해. 안 그럼 차마 업로드 하지 못할 괴물들이 나오더라. 


또 주의사항은 그림자체를 데이터로 삼는 거라서 W x H가 최소 1000 x 1000 해야한다는 거, denoising 너무 낮고 CFG 너무 낮으면 아래같은 결과가 나와


   

모든 것이 잘못되었다...

(Steps: 33, Sampler: DPM++ 2M Karras, CFG scale: 14, Seed: 1193249922, Size: 408x504, Denoising strength: 0.88)


그래도 뭔가 되는 거 같아 보인다. 내 그림이 이렇게 변신하다니...

(Steps: 76, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 4047187403, Size: 1088x1408, Denoising strength: 0.64)


i2i같은 경우는 뻘짓을 워낙 많이 해서 많이 못 만져보고 끝난 거 같아.


그렇게 내 10시간 날라간 듯 하네.


첫 글이라 매우 기본적인 것만 얘기했지만 앞으로도 배운 과정을 10시간 단위로 꾸준히 올려볼까 해. 


- To be continued -





지금까지 배운거

WebUI 설치 - https://arca.live/b/aiart/68935395

모델 설치 - https://arca.live/b/aiart/68304467

Prompt 걍 때려 박아보기, Width, Height 만져보기, CFG Scale 마구마구 만져보기

i2i만져보기 삽질 삽질