CFG scale은 이미지를 생성할 때 입력한 프롬프트나 이미지가 결과에 얼마나 영향을 미치는지를 조절하는 숫자입니다. 보통 7.0에서 13.0 사이의 값을 사용합니다. CFG scale이 높을수록 입력한 프롬프트나 이미지에 더 충실하게 이미지를 생성하려고 하지만, 이미지가 왜곡될 가능성이 높아집니다. 반대로 CFG scale이 낮을수록 입력한 프롬프트나 이미지와 멀어질 수 있지만, 이미지의 품질은 향상됩니다.
Sampling steps는 이미지를 생성할 때 확산 모델이 랜덤 노이즈로부터 인식할 수 있는 이미지로 바꾸기 위해 반복하는 횟수입니다. 보통 5에서 150 사이의 값을 사용합니다. Sampling steps가 높을수록 이미지에 더 많은 디테일을 추가하려고 하고 처리 시간은 길어집니다.
Sampling steps가 일어나는 과정은 다음과 같습니다. 확산 모델은 먼저 랜덤 노이즈로 이루어진 이미지를 생성합니다. 이 이미지는 seed 값에 따라 결정됩니다. 그리고 입력한 프롬프트를 가이드로 삼아서 이미지를 조금씩 정제합니다. 그리고 이 과정을 다시 반복합니다. 이렇게 하면 이미지가 점점 깨끗해집니다. 각각의 반복을 Sampling step이라고 부릅니다.
스케줄러는 Sampling step마다 어떻게 확산 모델을 업데이트할지를 결정하는 방법입니다. 스케줄러에 따라서는 적은 Sampling steps로도 괜찮은 결과를 낼 수 있습니다. 본문의 예시로 사용된 DPM++ 2M Karras 샘플러의 추천 샘플링 스텝은 다음과 같습니다.
DPM++ 2M Karras 샘플러는 낮은 샘플링 스텝에서도 높은 품질과 다양성을 보여주는 샘플러입니다. 그러나 너무 낮은 샘플링 스텝에서는 이미지가 왜곡되거나 디테일이 부족할 수 있습니다. 반대로 너무 높은 샘플링 스텝에서는 이미지가 과하게 선명해지거나 색상이 변질될 수 있습니다.
Stable Diffusion을 이용한 이미지 업스케일 (0) | 2023.04.30 |
---|---|
이미지 품질은 유지하고 출력시간 줄이기 (0) | 2023.04.29 |
CFG Scale 과 Sampling steps 실험 (0) | 2023.04.29 |
Latent와 ESRGAN 업스케일러 비교 (0) | 2023.04.29 |
오픈포즈를 활용해 원하는 자세로 이미지 생성하기 (0) | 2023.04.29 |
댓글 영역