web ui 설치 및 기초 응용
우선 이 글은 자신의 글카를 갈궈서 그림을 뽑아내는 것에 대한 것만 설명하고 있습니다.
원하는 모델을 찾으셨다면 해당 버튼을 눌러 다운로드 받으시면 됩니다. 일부 모델들은 vae파일도 같이 배포하는 경우가 있습니다.
모델과 vae를 다운로드 받으셨다면
이 폴더에 들어가서 모델은 stable-diffusion 폴더에, vae는 vae 폴더에 넣어주시면 됩니다.
여기까지 했다면 이제 webui창을 킵니다.
처음 키면 이 화면이 반겨줄 겁니다. 색상이 다를수도 있습니다. 신경안쓰셔도 됩니다.
우선 Setting을 눌러줍니다.
위 사진과 같이 먼저 setting을 누른 후 Stable-diffusion을 선택합니다. 이후 SD VAE 아래의 목록을 클릭해 설치한 vae를 선택해주고 apply setting을 눌러줍니다.
vae 로딩이 성공하면 위 화면과 같이 cmd창에 출력됩니다.
이제 본격적으로 이미지를 뽑아볼 차례입니다. img2img 탭으로 넘어가세요.
webui 창들의 기본적인 설명입니다. 긍정 프롬엔 자신이 뽑을 이미지에 들어갔으면 하는것들, 부정프롬엔 자신이 뽑을 이미지에 없었으면 하는 것들을 영어로 적어주시면 됩니다. 문장형으로 적으셔도 되고 단어들로 나눠서 적으셔도 됩니다.
특정 요소를 강조하고 싶다면 (tag:1.3) 이런식으로 강조할 수 있습니다. tag: 옆의 숫자는 해당 태그의 강조 세기입니다. 1이 기준이며 1보다 높을수록 더 강조되고 1보다 낮을수록 덜 강조됩니다.
일반적으로 저는 긍정 프롬프트에는
masterpiece, best quality, cinematic light, dynamic angle, detailed background, 1girl, solo, (extremely detailed CG), (8k wallpaper), ((ultra-detailed)), (best illustration), best shadow, (shine) 을 사용하고 있으며 (남성의 경우엔 1girl 대신 1man 또는 1male 사용)
부정 프롬프트에는
freckle, nsfw, nudity, nipple, bad-picture-chill-75v, badv5, ng_deepnegative_v1_75t, badhandv4, (worst quality:1.4, low quality:1.4, bad anatomy:1.4, cropped hands:1.2, extra digit:1.2, fewer digit:1.2), lowres, bad hands, text, error, missing fingers, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, 을 사용하고 있습니다. (여기서 badv5 같은 tag는 임베딩을 이용한 것으로 추후에 추가로 설명하겠습니다.)
또한 자주 사용하는 tag는 그림 생성버튼 아래에 디스켓 모양을 클릭해 저장해둘 수 있습니다.
저장한 태그들은 Styles를 클릭해 목록을 선택한 후 디스켓 아이콘의 왼쪽에 있는 버튼을 눌러주면 자동으로 입력됩니다.
일반적으로 이 글의 대상인 로아 유저분들은 자신의 캐릭터를 뽑으실텐데 resize mode를 crop and resize로 선택, sampling method를 DPM++ SDE Karras 선택, sampling steps를 40~60으로 조절, denoising strength를 0.2~0.4 사이로 조절하신다면 왠만한 자캐 사진은 돌릴 수 있을겁니다.
width랑 height는 마우스로 드래그해서 조절하시면 빨간색으로 그림을 뽑을 영역이 표시될 겁니다. 적당히 캐릭터가 들어가게, 그리고 가능한 자신이 감당할 수 있는 수준에서 크게 조절해주시면 됩니다. (다만 이경우엔 우선 작은 이미지로 뽑아보고 마음에 드는 프롬프트들, 모델같은 조건이 정해진다면 그때 이미지 크기를 키우셔도 됩니다.)
우선 간단하게 예시로 뽑아보면서 설명하겠습니다.
우선 일반적인 얼꽉샷입니다.
원본 사진은 이렇습니다. 특정한 구도를 잡으려는게 아니라면 몸의 중심이 캔버스의 중심에 오게 하는게 좋습니다.
사진 편집 기능을 사용해 그림을 잘라줍니다.
기본적인 셋팅입니다. cfg scale은 7~11쯤으로 넣어주시고 denoising strength는 0.2~0.4 사이로 맞춰주세요.
strength의 수치가 낮을수록 원본과 유사한 그림이 되고 높을수록 모델의 화풍이 더욱 부각되는 그림이 만들어집니다.
다른 처리 없이 빠르게 자캐짤을 뽑고 싶거나 원본과 가깝게 뽑고 싶으신분은 strength를 0.2정도로 두고 뽑으시면 됩니다.
cfg scale은 프롬프트들의 비중이라고 생각하시면 될겁니다. 높을수록 프롬프트를 중시하여 그림을 뽑아주지만 너무 높은경우 사진의 색감이 이상해지는 현상이 발생합니다. 이를 방지해주는 방법도 있지만 지금은 다루지 않겠습니다. 필요하신분은 Dynamic thresholding이란걸 찾아보셔서 적용하시면 됩니다.
얼꽉샷의 경우 어렵지 않게 그림을 만들어 낼 수 있었지만
이렇게 배경의 비중이 높거나 전신이 나와서 캐릭터의 얼굴이 제대로 보이지 않는 경우엔 위와 같은 방법으론 제대로 된 그림이 나오지 않습니다.
이런식으로 얼굴의 형상이 상당히 뭉개질겁니다.
이를 해결하기 위해선 캔버스의 크기를 키워서 ai가 그림그릴 공간을 확보해줘야 합니다.
vram이 충분하다면 처음 뽑을때 이미지 크기를 키우거나, scale up을 이용하거나, inpaint를 사용해야합니다.
이미지를 처음부터 크게 뽑는다면 좋겠지만 vram이 상당히 많이 필요해집니다. 제 경우 포토샵을 동시에 켜둬서 그렇지만 일반적으로 1920x1080이미지를 한번에 뽑는다면 메모리가 19~20기가는 점유됩니다. 따라서 그다지 추천드릴 수 없는 방법입니다.
다른 방법은 scale up을 이용하는겁니다.
우선 한번 뽑은 이미지를 다시 참고 이미지 칸으로 불러와놓고 script에서 sd upscale을 선택해줍니다.
이후 upscaler로 R-ESRGAN 4x+ Anime6B를 선택한 후 denoising strength를 0.2~0.23으로 조절한 다음에 이미지를 생성합니다. upscale은 그림을 타일로 나눠서 각 영역마다 다시 그림을 그려서 해상도를 올리는 방법으로 denoising strength가 너무 높다면 매번 새 그림이 프롬프트에 맞춰 그려지기 때문에 심령사진이 나올수도 있으니 주의합니다.
만약 처음 뽑은 이미지가 너무 작다면 scale factor를 충분히 높여줍니다. 현재 해당 이미지를 840x520으로 뽑았으며 scale factor가 2라면 이미지 크기가 2배, 4라면 4배 커지는 식입니다.
이 스샷의 경우 upscale으로는 얼굴의 표현이 제대로 고쳐지지 않아 inpaint를 사용해야 할 것 같습니다.
inpaint란 이미지의 특정 부분을 다시 그리는 거라고 생각하시면 됩니다.
inpaint에 up scale한 이미지를 불러오면 마우스로 클릭해 색을 칠하여 마스크를 씌울 수 있게됩니다. inpaint masked를 선택하면 mask 선택 영역만 다시 그리는 것이고, inpaint not masked를 선택하면 mask 선택 영역을 제외한 영역을 다시그리는 겁니다.
우리는 얼굴만 수정을 해줄거기 때문에 얼굴에 마스크를 씌우고 inpaint masked, original, only masked를 선택할 것입니다.
기존의 얼굴 표현은 상당히 뭉개져 있기 때문에 strength를 높일겁니다.
이미지의 크기는 처음에 뽑았던 이미지 크기 그대로 사용하시면 됩니다.
다만 이때 0.5를 왠만하면 넘지 않으시는게 좋습니다. 0.6 이상부턴 아예 새로운 그림을 그려버리며 0.5~0.6에선 상당히 원본과 동떨어진 그림을 그릴것입니다.
일반적으로 0.4~0.5 사이에서 조절하면 충분히 만족스러운 결과가 얻어질 겁니다.
이를 detection detailer를 사용해 같은 효과를 얻을수도 있습니다. 필요하다면 검색 후 사용해보시는걸 추천드립니다.
문의사항이 있으시다면 댓글로 남겨주시거나 방명록 남겨주시면 답변해드리겠습니다.