이번엔 스테이블 디퓨전(txt-to-img) 기능에 대해 소개하는 시간을 갖겠습니다.
지난번 포스팅에서 스테이블 디퓨전을 제대로 설치하셨다면 이제 사용할 준비는 되었습니다.
하지만, 사용법을 알아야 제대로 된 그림을 만들 수 있기 때문에, 차근차근 단계별로 설명 드리겠습니다. 그 중 스테이블 디퓨전(txt-to-img) 기능을 소개해드리겠습니다.
스테이블 디퓨전(txt-to-img) 기능 소개
스테이블 디퓨전을 사용하는데 가장 기초적인 기능들에 대해 나눠서 설명 드리겠습니다.
초보자분들도 이번 포스팅을 확인하시면 스테이블 디퓨전(txt-to-img)을 충분히 이해하실 수 있으니 끝가지 확인해주시기 바랍니다.
먼저, 아래 이미지에 스테이블 디퓨전 webui의 화면에 번호를 붙여 나눠보았습니다.
아래에서 번호 별로 각각 설명 드리겠습니다.
1. Stable Diffusion checkpoint 부분 (모델 선택할 수 있는 기능)
1번으로 표시된 부분은 현재 어떤 모델을 주력으로 사용할 것인지 선택하는 것입니다.
예를 들어, ‘웃는 소녀’를 주제로 이미지를 생성하면 명령어가 같을지라도
각 모델별로 학습한 내용이 다르기 때문에 이미지의 분위기, 스타일이 달라지게 됩니다.
아래 이미지를 참고하시면 이해하는데 도움이 될 것입니다.
1-1. 모델 추가 & 확인하는 방법
1번 영역에서 모델을 변경하려면 이전에, 모델을 다운 받고
폴더에 넣어야 Web-UI에서 인식이 됩니다.
스테이블 디퓨전에서 사용할 수 있는 다양한 모델을 다운 받을 수 있는 곳은
여러 곳이 있지만, 대표적인 사이트가 Hugging face입니다.
Hugging face에서 원하는 모델을 다운 받은 후
C드라이브 -> Stable-diffusion-webui 폴더 -> models로 들어갑니다.
이후, Models 내부에 있는 Stable-diffusion 폴더에 .ckpt모델 파일을 넣어주면
원하는 모델을 스테이블 디퓨전 webui에서 사용할 수 있게 됩니다.
(아래 이미지를 참고하세요)
2-1. Positive prompt 입력창
2-1번에 있는 영역은 바로 이미지에 포함 시키고 싶은 내용을 입력하는 부분입니다.
스테이블 디퓨전(txt-to-img)의 가장 기본적인 입력 부분이죠.
예를 들어, ‘맛있는 스테이크‘ 이미지를 생성하고 싶으면
‘스테이크’, ‘맛있어 보이는’, ‘식당’과 같은 단어를 입력해서 조건을 세밀하게 맞춰줍니다.
조건이 자세하고 구체적일 수록 더 디테일한 결과를 얻을 수 있습니다.
하지만, 모두 영어로 작성해야 하니 참고해주시기 바랍니다.
2-2. Negative Prompt 입력창
2-2번에 있는 영역은 이미지에 포함 시키기 싫은 내용을 입력하는 곳입니다.
AI는 우리가 어떤 이미지를 원하는지 의도를 파악할 수 없습니다.
그래서, 세부적으로 추가 설명을 해야하는 것입니다.
만약, Positive Prompt만 입력하고 Negative Prompt를 그대로 둔다면 이상한 그림이 생성될 것입니다.
‘맛있는 스테이크’ 에 대한 긍정적인 프롬프트를 아무리 많이 작성해도,
제외해야 할 값을 입력하지 않으면 나체의 사람이 스테이크를 먹는 모습 이라던가
온갖 사물이 뒤죽박죽 섞인 모습을 얻을 것입니다.
따라서, 긍정적인 명령보다 사실 더 중요한 것이 Negative Prompt이니 꼭 알아두시기 바랍니다.
3. Generate 버튼 (이미지 생성 버튼)
이 버튼은 Negative, Positive 프롬프트와 아래에서 추가적으로 설명드릴
세부 기능들을 조합해서 이미지를 만들어주는 버튼입니다.
최종 실행 버튼이라고 생각하시면 이해하기 수월합니다.
4. Sampling Method, Sampling steps, Restore faces 기능들
- Sampling method : Euler a , DPM++ SDE Karras , Euler, LMS, Heun, DPM2, DPM2 a, DPM++ 2S a, DPM++ 2M, DPM++ SDE, DPM fast, DPM adaptive, LMS karras, DPM2 karras, DPM2 a karras, DPM++ 2S a karras, DPM++ 2M karras, DPM++ SDE karras, DDIM, PLMS, UniPC 등이 있습니다.
- 복잡한 설명은 제외하고 쉽게 설명드리면 Sampling method를 어떤 것을 선택하냐에 따라 해당 그림체가 달라지게 됩니다. 아래 이미지를 참고하면 쉽습니다.
- 샘플링 메소드 (sampling method)는 이미지를 생성할 때 표현의 방법이 약간씩 다르다고 생각하면 쉽습니다.
- Sampling steps : 이 수치가 높을 수록 조금더 퀄리티 있는 사진을 만들 수 있습니다. 하지만, 막무가내로 올린다고 해서 좋은 퀄리티의 이미지 생성을 보장하지 않습니다. 보통 20~30 최대 50정도의 값에서 조절을 합니다.
- 수치를 높게 설정할수록 이미지를 생성하는 속도가 더 느려지니 복잡한 연산이 필요한 이미지가 아니라면 수치를 많이 올릴 필요가 없습니다.
- Restor faces : 이미지 생성 후, 얼굴이 이상하지 않게 보정해주는 옵션입니다.
- Tiling : 이미지를 타일 형식을 만들어주는 옵션입니다.
(바탕화면 바둑판형식 이미지라고 생각하면 됩니다.)
- Hires fix : 512×512 크기보다 해상도를 높였을 경우 이상하지 않게
업스케일 해주는 기능입니다.
5. Width , Height : 이미지의 가로 x세로를 설정하는 기능입니다.
6. Batch count, Batch size, CFG Scale 기능
- Batch Count : 이미지를 몇 번 생성할 지 횟수를 지정합니다.
- Batch Size : 한 번 이미지를 생성할 때, 몇 장씩 생성할지 지정합니다.
- CFG Scale : 수치가 높을수록 텍스트로 명령한 내용을 따라갑니다.
위 항목을 조금 더 풀어서 쉽게 설명드리겠습니다.
- Batch Count x Batch Size = 총 생성될 이미지 수
즉, Batch Count가 1이고 Batch size가 5면 = 1x 5 = 5장을 생성합니다.
- CFG Scale은 수치 높을 수록 텍스트 명령에 따라가지만, 이게 좋은것만은 아닙니다.기본적으로 사람 또는 동물을 표현할 때, 5~10수준으로 세팅하는 것이 좋습니다.
7. Seed 값
Stable Diffusion을 통해 이미지를 생성하게 되면 Seed값이 생성되게 됩니다.
이 값을 활용하면 해당 이미지와 비슷하게 다음번에 이미지 생성을 진행할 수 있습니다.
8. 이미지 생성 화면
이미지가 생성된 최종 화면입니다.
여러분이 조건을 맞춰 이미지를 생성하면 아래의 화면처럼 생성된
이미지를 확인할 수 있습니다.
이상으로 스테이블 디퓨전(txt-to-img) 기본 기능에 대해 알아보았습니다.
스테이블 디퓨전(txt-to-img) 를 활용하시는 분들은 이번 스테이블 디퓨전(txt-to-img) 기능 설명을 참고하시면 이해하기 조금 더 수월할 것으로 보입니다. 추가적인 설명은 계속해서 포스팅을 이어나갈테니 참고해주세요!