상세 컨텐츠

본문 제목

CFG Scale 과 Sampling steps

Stable Diffusion

by dfus1on 2023. 4. 28. 04:15

본문

 

1girl, cowboy shot, (scenery, wide shot:0.6), (( best quality, high resolution, distinct image )), solo, grey hair, dark blue eyes, long hair, bodysuit, (cockpit, mecha cockpit, sitting, sitting on seat, complicated machine, digital screen, science fiction,holding side sticks on the cockpit) ,((dynamic angle)) Negative prompt: out of frame, ( EasyNegative:0.75, worst quality:1.4, low quality:1.4, trembling:1.4, cropped hands:1.4, extra digit, fewer digit, bad anatomy, watermark ), Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 451036942, Size: 1280x720, Model hash: a074b8864e, Model: CounterfeitV25_25, Clip skip: 2

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 샘플러의 추천 샘플링 스텝은 다음과 같습니다.

 

  • 이미지의 크기가 작거나 간단한 프롬프트나 이미지를 사용할 때: 10 ~ 20
  • 이미지의 크기가 중간이거나 복잡한 프롬프트나 이미지를 사용할 때: 20 ~ 40
  • 이미지의 크기가 크거나 매우 복잡한 프롬프트나 이미지를 사용할 때: 40 ~ 80

 

DPM++ 2M Karras 샘플러는 낮은 샘플링 스텝에서도 높은 품질과 다양성을 보여주는 샘플러입니다. 그러나 너무 낮은 샘플링 스텝에서는 이미지가 왜곡되거나 디테일이 부족할 수 있습니다. 반대로 너무 높은 샘플링 스텝에서는 이미지가 과하게 선명해지거나 색상이 변질될 수 있습니다. 

 

CFG가 높아질수록 뇌절을 한다.
반응형

관련글 더보기

댓글 영역