반응형
Notice
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Xenon54의 잡다한 이야기

AI가 그림그려주는 프로그램 Stable Diffusion을 알아보자! (2) 본문

AI 연구실

AI가 그림그려주는 프로그램 Stable Diffusion을 알아보자! (2)

Xenon54 2023. 7. 23. 19:07
반응형

오늘은 저번시간에 이어서 Stable Diffusion WebUI의 사용법을 알아보겠습니다.

 

저번포스팅에서는 Sampling Method, Step 까지 설명드렸고, 오늘은 그 밑에있는 메뉴들을 좀 알아보겠습니다.

 

먼저 다음 3개의 기능입니다.

Restore Faces, Tiling, Hires. fix 3가지 기능인데 그중 Restore faces부터 알아보겠습니다.

이 기능은 말 그대로 얼굴을 보정해주는 기능입니다.

간단한 예시를 보여드리겠습니다.

여기 기본이 되는 그림이 있습니다.

이 그림같은경우 캐릭터가 상대적으로 크게 그려진 그림은 아니다보니, 화질이 낮아 얼굴부분이 자세히보면 약간 뭉게진것을 볼수있습니다.

그럼 이 그림에다가 얼굴보정 기능을 사용해보겠습니다.

차이가 좀 느껴지시나요?

얼굴부분이 위에보다는 좀 선명하게 나왔죠? 이런식으로 얼굴에 문제가 있을때 보정해주는 기능이라고 생각하시면 됩니다.

 

그럼 얼굴이 이미 크게나온경우면 어떻게될까요?

방금전 이미지와는 다르게 캐릭터가 전반적으로 크게 나왔고, 얼굴부분도 크게 뭉개지는 부분없이 잘 나온것을 볼수있습니다.

이 상태에서 얼굴보정기능을 쓰면 어떨까요?

차이가 거의 없죠? 얼굴보정이 아예 안된것은 아니지만, 얼굴 보정이 들어가면서 얼굴주변에 있는 캐릭터의 장신구 같은것들이 약간 변형되는 결과물이 나왔습니다.

이처럼 보정기능이 완벽한것은 아니기때문에, 여러분이 그때그때 상황에 맞춰서 비교해가시면 좋습니다.

 

그리고 2번째 Tiling 기능은 없다고 생각하시는것이 좋습니다. 이건 저도 어디에 쓰는 기능인지 모르겠고 이상한 결과물만 나오기때문에 무시하시면 됩니다.

 

3번째로 Hires. fix 기능입니다.

이기능은 말 그대로 그림의 해상도를 올려주는 기능입니다.

그러면 이렇게 생각할수도 있습니다.

그냥 처음에 그림을 만들때부터 해상도를 크게 만들면 되는게아닌가? 생각이 드실탠데 전혀 아닙니다.

저번 포스팅에서도 알려드렸지만, 이 AI기능은 노이즈 이미지를 준다음 이건 A라는 그림이니 복원해! 라고 하면 그걸바탕으로 복원하는 계념이라고 설명을 드렸는데, 이 이미지의 해상도를 바꾸면 이 노이즈이미지가 달라지겠죠? 확장된 사이즈에 맞는 노이즈가 새로 생성되나보니 출력되는 결과물이 아예 달라져 버립니다.

예시를 보여드릴께요

 

먼저 제가 자주사용하는 512*768 해상도일때 이미지입니다.

 

이번에는 바로 위 이미지의 딱 2배인 1024*1536 사이즈로 생성해보겠습니다.

이미지가 완전히 달라졌고, 고장나기도 했고... 여튼 이 방법은 좋은 방법이 아닙니다.

기본적으로 Satble Diffusion 은 512 *768 / 512*512 / 768*512 3가지의 해상도로 학습을 진행하여서 이렇게 생성하면서 여러분이 원하는 그림을 뽑는건 상당히 힘들어집니다.

그런데 512*768은 해상도가 너무 낮으니까 사용하기 힘드니 Hires. fix 를 사용하는 겁니다.

이 기능은 그림이 만들어지면 그 그림을 가지고 해상도만 올려주니까 그림의 손상을 줄이면서 진행할수있습니다.

 

자 그러면 이 그림을 한번 업스케일링 해보겠습니다.

그전에 Hires. fix사용법먼저 알려드릴께요.

Upscaler: 해상도를 올리는데 사용할 알고리즘 이라고 생각하시면 됩니다.

Hires steps: 이미지 생성할때 스탭수와 동일한 계념이고, 기본값인 0으로 두면 이미지 생성할때의 스탭수를 그대로 따라갑니다.

Denoising strength: 업스케일링을 할때 프롬프트를 얼마나 반영하면서 만들지를 정하는겁니다. 값이 너무 높은경우 업스케일링된 결과물이 원본이미지와 많이 달라질수있습니다.

Upscale by: 원본해상도에서 얼마나 업스케일링 할지를 정하며, 곱하기로 사이즈가 결정됩니다.

Resize *** to: 이거는 업스케일링한 이미지의 사이즈를 직접 지정하는부분입니다. Upscale by랑 동일하나 이미지 비율을 바꾸는것도 가능합니다. Upscale by 랑 동시에 사용은 불가능하며, 둘중 하나를 지정해서 업스케일링 합니다.

 

그럼 기능설명을 마쳤으니 업스케일링한 결과물을 보여드릴께요.

보시는것처럼 해상도가 늘어나도, 원래 그림에서 크게 벗어나지 않는걸 알수있습니다.

단, 이 기능은 여러분이 사용하는 그래픽카드의 VRAM 용량을 많이 요구하기 때문에 성능이 떨어지는경우 에러나면서 안될수도있습니다.

 

그럼 이제 다음으로 그 밑에 있는 항목을 설명해드리겠습니다.

보시면 5개의 슬라이더가 보이실겁니다.

각각 설명해드리면 

Width: 이미지의 가로 길이를 결정합니다.

Height: 이미지의 새로 길이를 결정합니다.

Batch count: 이미지 생성작업을 얼마나 반복할지를 결정합니다.

Batch size: 한번에 이미지를 생성할때 생성되는 이미지의 장수를 결정합니다.

CFG Scale: 간단하게 설명하면 얼마나 프롬프트 내용을 따라가고, 얼마나 AI에게 자유롭게 생성할지를 결정합니다.

너무 낮게 설정하는경우 원하는 이미지가 안나올수있고, 너무 높이면 이미지의 채도가 너무 강해진다는 문제가 있습니다.

 

위에 보이는 설정의 경우 정말 여러분들이 필요한데로 사용하시면 되고 특히 CFG Scale 설정이 어려우실탠데 추천값은

7~9사이이며, 경우에 따라 12까지 사용해도 큰 문제없습니다.

그럼 CFG scale 값에 따라서 이미지가 어떻게 달라지는지 한번 보여드리겠습니다.

 

먼저 4일경우 이미지입니다.

 

이번에는 8일때 이미지입니다.

 

다음은 12일때 이미지입니다.

 

다음은 마지막으로 20일때 이미지입니다.

 

자 확실히 비교가 되시죠? 기본적으로 동일한 시드를 사용하도록 했습니다만, 캐릭터의 자세도 약간씩 달라지고 무엇보다 20일때 이미지는 채도가 너무 강하게나와서 보기에 별로인 이미지가 나왔습니다.

심지어 제가 지금 사용하는 모델이 원래 색상이 좀 연하게 나오는 모델인데, 다른 모델의 경우 더 심한경우도 있습니다.

 

그리고 마지막으로 제가 그동한 동일한 이미지베이스, 노이즈, 시드 라고 말한 그 기능!

바로 Seed 입력칸입니다.

그전부터 말한것처럼 복원할 대상이되는 원본 노이즈를 정하는입력칸으로, -1 혹은 옆에 주사위버튼을 누르는경우 랜덤으로 시드가 정해지고, 그 옆에있는 재활용 버튼을 누르면 생성된 이미지의 시드를 그대로 가져옵니다. 

그리고 Extra 라는 체크박스가 있는데 해당 상자를 체크하면 이런 입력칸이 추가로 생깁니다.

이게 좀 사용하기 어려운 기능인데, 원래 그래픽카드가 좋은경우 해상도를 올릴때 그냥 Hires. fix 하면 제일 좋지만, 그래픽카드 성능이 안좋은경우 사용합니다. 만... Hires. fix 만큼 좋은성능은 아닙니다. 100% 원본이미지 느낌도 아닐뿐더러 사용하기 번거로워서 자주 사용하지는 않습니다.

사실 이 글 포스팅하면서 옆에서 계속 돌려보는데, 아까 CFG 8일때 이미지로 테스트 해보는중인데.... 자꾸 그림이 고장이나서...ㅠㅠ 좋은결과 보여드리긴 힘들겠네요 ㅠㅠ

계속 이런느낌이네요... 제가 잘못 사용하는거 같은느낌이라... 이건 제가 좀더 써보고 다시 알려드릴께요.

그냥 이런것도 있나? 싶은 느낌으로만 알고계시면 좋을거같아요.

 

그럼 여기서 오늘은 글 마치고 다음에 나머지 기능 이어서 설명드리겠습니다.

떠나기전에 제가 2시간넘게 쏟아부운 이미지 올리고 이만 글 마치겠습니다.

이사람 2시간을 쏟아부었는데, 아직 그림에 고칠거 투성이다.

반응형
Comments