- DPM++ : DPM++ 알고리즘 사용. DPM (Fast ODE(Ordinary Differential Equation, 상미분방정식) Solver for Diffusion Probabilistic Model Sampling) 은 2022년에 Stable Diffusion 을 위해 개발된 샘플러다. - 2: DPM 에서 Second Order 의 의미. - M: DPM 에서 Multi Mode 의 의미 - SDE: Stochastic Differential Equation. 확률 미분방정식의 의미로 이 방정식의 메소드도 섞여 있다는 의미 - Heun: 카를 호인의 상 미분방정식 해법 메소드도 들어있다는 의미 - Karras: Karras 가 고안한 노이즈 스케줄러를 사용한다는 의미. 기본 스케줄러보다 스텝별로 더 완만하게 제거한다.
스테이블 디퓨전에서 샘플러는 이미지에서 노이즈를 제거하는 방법에 대한 정의다. 생성한 이미지의 품질에 직접적인 영향을 끼치기 때문에 좋은 샘플러를 사용하는건 그만큼 좋은 이미지를 생성할 수 있다는 의미다.
샘플러의 동작 원리 같은건 인터넷을 찾아보자. 필자도 잘 모른다.
이번 Stable Diffusion WebUI 1.6 (이하 SDUI) 버전에서 꽤 많은 샘플러가 추가 되어있다. 샘플러는 "상 미분방정식(Ordinary Differential Equations)" 이나 "확률 미분방정식(Stochastic Differential Equation)"을 푸는 알고리즘이 들어가 있다. 세계적인 수학자 오일러의 방식이나 카를 호인의 방식이 그것이다. 자세한 구현 방법은 생략하겠다.
어쨌든 SDUI 에서 사용할 수 있는 샘플러에 대한 샘플 이미지를 작성해 보았다. 결론부터 말하자면 현재 필자가 사용하는 샘플러는 "DPM++ 2M SDE Heun Karras" 이다.
샘플러도 좋아야 하지만 샘플러와 모델도 맞아야 한다. 모델을 보면 어떤 샘플러를 사용해 튜닝했는지가 나오는데 예전엔 DPM++ SDE Karras 을 많이 사용했다. (필자도 지난달까지만 해도 이걸 썼다)
1. extreme facial close up: 최대 얼굴 클로즈업 - 얼굴 - (face portrait 라고도 함) 2. facial close up: 얼굴 클로즈 업 - 어깨 부터 위 3. medium close up: 미디엄 클로즈 업 - 겨드랑이 부터 위 4. bust shot: 바스트 샷 - 가슴 위 5. waist shot: 웨이스트 샷 - 허리 위 6. medium shot: 미디엄 샷 - 배꼽부터 위 7. upper body: 상반신 - 골반부터 위 8. cowboy shot: 카우보이 샷 - 허벅지 중간부터 위 9. thigh above body: 허벅지 상위 샷 - 허벅지부터 위 10. full body: 전신 - 발끝부터 위
Stable Diffusion 에서는 구도는 이미지의 크기에 영향을 받는다. SD 1.5 는 512px x 512px, SDXL 은 1024px x 1024px 이기 때문이 1:1 비율이 아닌 이미지 생성시에는 구도가 다르게 표현되곤 한다.
아래는 위 샷 이미지를 540px x 960px (9:16 비율) 에서 구현하고 업스케일한 이미지다. 같은 프롬프트에서 구도 프롬프트만 변경했다. 구도에 따라 얼굴 형태가 어떻게 바뀌는지 살펴봐야 이미지를 제대로 생성할 수 있다.