스테이블 디퓨전, Dynamic-Thresholding (CFG Scale 보정) 사용법

이번 포스팅은 Dynamic Thresholding의 설치 및 사용 방법에 대해
소개해보도록 하겠습니다. Dynamic Thresholding은
CFG 스케일 수치가 높아져도 보정을 해주어 깨지지 않고 배경이 더 잘 표현되고
사용자의 프롬프트를 잘 따라가도록 도움을 주는 확장 기능입니다.

Dynamic-Thresholding 설치방법

1. Dynamic-Thresholding 깃허브 링크를 복사합니다. (아래 참고)

https://github.com/mcmonkeyprojects/sd-dynamic-thresholding.git

2. Install from URL 탭에 링크를 붙여넣고 Install 합니다.

dynamic thresholding

복사한 링크를 입력 창에 붙여 넣고 Install 해줍니다.
Installed into ~~~ restart 문구가 뜨면 설치가 완료 된 것입니다.

3. Installed 탭으로 이동해서 Apply and restart UI를 누릅니다.

dynamic thresholding2

Dynamic thresholding이 잘 설치 되었는지 Installed 탭으로 이동해서
확인해줍니다.

이후, Apply and restart ui를 눌러
스테이블 디퓨전을 재 부팅해줍니다.

4. 재 실행 후, 아래에 dynamic-thresholding 탭을 확인합니다.

스테이블 디퓨전을 재 실행 하고 나서 아래로 내려봅니다.
Enable Dynamic Thresholding 체크 박스가 생겼다면
성공적으로 설치된 것입니다.

Dynamic-Thresholding 사용법

다이나믹 스레숄딩의 기본적인 기능과 사용 방법에 대해 설명해보겠습니다.
Enable 버튼을 누르면 기본적으로 Dynamic Thresholding 기능이 적용되지만
적절한 수치를 조절해주어야 괜찮은 결과를 얻을 수 있습니다.

1. Dynamic Thresholding(CFG Scale Fix)를 켜줍니다.

dynamic-thresholding

먼저 체크 박스 버튼을 눌러 다이나믹 스레숄딩을
사용하겠다고 선언합니다.

2. Advanced Options 수치 설정 방법

설정 값을 잘 모르겠다면 처음엔 위 이미지를 참고해서
그대로 적용하셔도 상관없습니다.

  • Mimic CFG SCALE
    7~10을 기본 값 (안정 값)으로 입력합니다.
    이 값은 체크포인트마다 다를 수 있으니 기본으로 7이나 8 정도로 시작하고
    이미지가 마음에 들지 않는다면 늘리거나 줄여가며 수치를 조정합니다.
  • Top Percentile of latents to clamp
    CFG 수치가 매우 높다면 100으로 주고
    중간 정도일 경우 97~99로 입력합니다.

    일반적으로 97~99 사이의 값을 입력합니다.
    이것도 체크포인트 모델에 따라 다르니 사용해보고 조정합니다.
  • Interpolate Phi
    기본 값으로 1을 줍니다.
    하지만, 사용해보시면서 수치를 조절해도 좋습니다.
  • Mimic Scale Scheduler , CFG Scale Scheduler
    여러 스케쥴러가 있지만, 개발자의 권장 사항에 따르면
    ‘Half Cosine UP’이 가장 좋은 효율을 발휘한다고 합니다.

    두 scheduler모두 Half Cosine UP을 선택합니다.
    하지만 사용 후 마음에 안 들면 바꾸셔도 됩니다.
  • Minimum value of (Mimic scale scheduler, CFG scale scheduler)
    이것도 개발자 권장 사항에 따르면
    3~4의 값을 설정하는 게 좋다고 하니 3 또는 4의 값을 입력합니다.
  • Scheduler Value
    기본 값으로 둡니다.
  • Scaling Start Point, Variability Measure
    기본 값은 MEAN, AD로 두고 사용합니다.
    추후, 다뤄보시면서 변경하는 것을 추천합니다.

3. CFG Scale 값 결정

dynamic-thresholding2

Dynamic Thresholding을 적용하기 전에는
CFG Scale을 10 미만으로 줘야 이미지가 깨지지 않았지만

이제, 20~30까지 줘도 보정이 되는 확장 기능이 세팅 되었으니
원하는 값으로 줘봅니다.

하지만 매번 높은 값이 좋은 퀄리티의 이미지를
생성해주는 것은 아니니 참고해주시기 바랍니다.

4. 이미지 생성 후 결과 비교

  • Dynamic Thresholding 미 적용
  • CFG Scale = 20
dynamic-thresholding3
  • Dynamic Thresholding 적용
  • CFG Scale = 20
cfg20

Dynamic thresholding을 적용하기 전의 이미지와
적용 후 이미지를 비교해봅니다.

CFG Scale 값을 높게 주었을 때 확실히 적용 전보다
적용 후 배경이나 피사체가 훨씬 덜 깨지고 배경의 경우 조금 더 디테일하게 이미지를
만들어주는 것을 알 수 있습니다.