반응형

스테이블 디퓨전의 샘플링 매소드에 대해서 알아보겠습니다. Stable diffusion Webui에서 이미지 생성 시 선택해야 될 내용 중 checkpoint 만큼 중요한 Sampling Method라는 항목이 있습니다. Sampling Method는 AI 이미지를 생성 시 Checkpoint와 더불어 어떤 방식으로 이미지를 만들지에 대한 방식을 선택하는 항목입니다. 이 값은 보통 Checkpoint 제작자가 어떤 Sampling Method에 맞게 제작되었는지 알려주지만 사용자의 목적에 맞게 변경해서 사용해도 괜찮은 항목입니다. 오히려 다양한 경험을 위해 여러 가지의 Sampling method를 선택 그리고 이미지를 생성해 보는 것도 나쁘지 않습니다.

Sampling Method 선택 방법

1. 스테이블 디퓨전 속 Sampling Method는 Generation Tab 아래에 바로 있습니다. DPM++ 2M Karras로 기본 설정 되어있습니다. 이미지 생성 시 대부분의 제작자는 DPM++ 2M Karras를 기본적으로 작동 되게 제작하기 때문에 웬만하면 변경하지 않아도 사용이 가능합니다. Sampling Method를 변경해서 여러 다른 느낌의 이미지를 얻을 수 있기 때문에 다른 방식도 사용해 보는 것도 좋습니다.

2. 아래에는 샘플링 이해를 위해 Sampling Method 값을 제외한 모든 설정을 동일하게 고정 후 AI 생성된 이미지입니다.

. 이미지는 클릭하시면 크게 보실 수 있습니다.

Euler DPM++2MSDEKarras DPM++2MSDE DPM++3MSDE DPM++3MSDEKarras

위의 사진들은 전부 같은 설정값을 가진 상태로 Sampling Method의 항목만 변경 후 생성 된 AI 이미지입니다.

Sampling Method는 여러 방식이 있습니다. 현재 사용 가능한 리스트로는 DPM++2M Karras, DPM++ SDE Karras, DPM++2M SDE Exponential, DPM++ 2M SDE Karras, Euler a, Euler, LMS, Heun, DPM2, DPM2 a, DPM++ 2S a, DPM++ 2M, DPM++ SDE, DPM++ 2M SDE, DPM++ 2M SDE Heun, DPM++ SDE Heun Karras, DPM++ 2M SDE Heun Exponetial, DPM++ 3M SDE, DPM++ 3M SDE Karras, DPM++ 3M SDE Exponential, DPM Fast, DPM adaptive, LMS Karras, DPM2 Karras, DPM2 a Karras, DPM++ 2S as Karras, Restart, DDIM, PLMS, UniPC 등이 있습니다. 그중에 보편적으로 그리고 많이 사용되고 있는 방식은 Euler a, DPM++ 2M SDE Karras입니다.

Sampling Method에 따른 결과

1. 샘플링 매소드 값에 따라 같은 값을 사용하여도 다른 느낌의 AI 이미지를 생성할 수 있습니다. 현재 사용 중인 Checkpoint로 생성했을 경우, Euler와 DPM++ 2M SDE Karras를 제외한 나머지 생성 된 이미지에서는 여러 가지 에러를 확인할 수 있습니다. 그 이유로는 여러 가지가 있지만 제일 큰 이유로는 사용 중인 Checkpoint가 Euler를 사용하도록 제작되었기 때문입니다. 위의 사진을 클릭 후 확대해서 보시면 알 수 있듯이 Euler Sampling Method가 제일 안정적이고 에러 없는 이미지를 생성해 주는 것을 볼 수 있습니다. Checkpoint 제작자의 목표 Sampling method가 Euler였기 때문입니다. 하지만 보는 이의 관점에 따라서는 DPM++ 2M  SDE Karras가 더 좋은 이미지라고 생각할 수 도 있습니다. 그렇기 때문에 Checkpoint 가 주로 사용하는 Sampling Method를 굳이 고집해서 사용할 필요 없이 다른 Sampling method를 사용 그리고 확인해 볼 필요가 있습니다.

 

반응형
반응형

스테이블 디퓨전의 샘플링에 대해서 알아보겠습니다.  스테이블 디퓨전 속 샘플링 스텝 설정은 AI의 이미지 생성 과정 중 이미지에서 노이즈를 제거하는 값입니다. 얼마만큼의 샘플링 스텝이 설정되는지에 따라서 이미지의 생성 속도, 노이즈는 얼마나 제거되는지, 그리고 디테일이 얼마나 살아나는지에 대해 차이가 발생합니다. Stable diffusion sampling steps의 값이 높을수록 노이즈를 제거하는 스텝이 증가하므로 조금 더 깨끗하고 선명한 이미지를 생성할 수 있습니다. 그러나 이 Sampling Steps의 값이 늘어나면 늘어날수록 걸리는 시간이 증가하기 때문에 적절한 값을 찾아 사용해야 됩니다.

 

How to : Stable Diffusion Sampling Steps

1. 스테이블 디퓨전의 Sampling Steps 값을 이해하기 위해서는 여러 값을 고정 후 Sampling Steps의 값만 변경하여 AI 이미지를 생성하면 이해하기 편합니다.

2. 아래에는 이해하시기 편하게 Sampling Steps 값을 제외한 모든 설정을 동일하게 고정 후 Generate 된 이미지 들입니다.

이미지는 클릭하시면 크게 보실 수 있습니다.

S.S 값 - 150 S.S 값 - 100 S.S 값 - 50 S.S 값 - 30 S.S 값 - 20 S.S 값 - 10 S.S 값 - 1

위의 사진들은 전부 같은 설정값을 가진 상태로 Stable Diffusion Sampling Steps 값만 변경 후 생성한 AI 이미지입니다. 사용된 Prompt는 masterpiece, best quality, pov, raw, realistic, solo, beautiful, light sky-blue eyes, red lips, 8k, Very detailed, high detailed texture, cinematic illumination, volumetric lighting, black hair, simple white background, glossy lips, 로 입력 하였습니다. 하지만 위의 사진들과 같이 Sampling Steps 값에 따른 사진의 결과물의 디테일 차이가 생기는 것을 알 수 있습니다. 

 

Stable diffusion Sampling Steps에 따른 사진 결과

1. Stable diffusion sampling steps - 150부터 50 사이의 경우에는 AI 이미지의 디테일의 차이를 거의 찾아볼 수 없을 정도로 흡사한 것을 보실 수 있습니다. 그 이유로는 Sampling Steps 값이 30 이후부터는 샘플링 스텝 단계에서 제거되어야 할 노이즈값이 0에 거의 근접하기 때문입니다. 샘플링 스텝의 값이 높으면 높을수록 한없이 0에 가까워지나 30 이후부터는 인간의 눈으로 구별을 할 수 있을 노이즈들이 대부분 제거되었기 때문에 한 장의 AI 이미지 생성을 위한 시간과 결과물의 디테일의 사이에서 선택을 해야 되기 때문에 Sampling Steps은 보통 20~30 사이로 설정합니다.

2. Stable diffusion sampling steps - 30부터 20 사이의 경우에는 AI 이미지의 디테일의 차이를 자세히 본다면 찾아볼 수 있습니다. 이유로는 30 아래의 샘플링 스텝의 값은 아직 인간의 눈으로 구별 가능한 노이즈를 제거하는 단계 이기 때문입니다. 하지만 20~30 사이의 샘플링 값은 이미 충분히 디테일한 AI 이미지를 생성할 수 있기 때문에 최소한의 시간 대비 좋은 품질을 생성하기에는 적당한 값입니다.

3. Stable diffusion sampling steps - 10부터 1 사이의 경우에는 AI 이미지의 디테일이 너무 떨어집니다. 이 단계의 샘플링 스텝은 인간의 눈으로 이해하기에는 많은 오류와 노이즈가 있기 때문에 원하던 이미지를 생성할 수 없거나 또는 이미지 자체가 생성되지 않는 경우를 볼 수 있습니다. 이 단계의 결과물은 디테일의 문재가 많기 때문에 거의 사용이 불가능 한 단계입니다.

 

Stable diffusion Sampling Steps 값은 들어가는 시간과 리소스를 계산했을 때 20에서 30 사이가 가장 합리적인 값입니다.

 

 

 

 

반응형

+ Recent posts