Stable Diffusion 성능을 위해 최적화된 webui-user.bat 설정

 

Stable Diffusion Webui A1111을 처음 사용했을 때, 처음엔 잘 느끼진 못했다가
쓰다 보면 이미지 생성이 느리다는 것을 깨닫게 됩니다. 

본능적으로 뭔가 설정이 있지 않을까 하고 생각을 하면서 검색을 통해서 옵션을 넣었던 기억이 납니다.
오늘은 제가 사용하고 있는 설정값을 공유해 보려고 합니다.

이 설정 값은 제 시스템에 맞는 것이긴 한데, NVIDIA를 사용하는 컴퓨터라면 문제없이 동작할 것이라고 생각합니다.
webui-user.bat을 편집기로 열면, "set COMMANDLINE_ARGS="라는 항목이 있습니다. 최신 버전의 A1111를 사용한다면 최소한 --autolaunch는 설정되어 있을 겁니다.

아래는 제 설정값입니다.

set COMMANDLINE_ARGS=--xformers --xformers-flash-attention --opt-channelslast --enable-insecure-extension-access --autolaunch --medvram --theme dark --no-half-vae --disable-nan-check --cors-allow-origins "*" --api --opt-sdp-attention --opt-split-attention


아래는 COMMANDLINE_ARGS에 포함된 각 옵션에 대한 자세한 설명입니다.

1. --xformers: 이미지 생성 작업의 성능을 크게 향상시킬 수 있는 최적화된 텐서 작업인 xFormers를 사용할 수 있습니다.
2. --xformers-flash-attention: 이 옵션은 xFormers에서 제공하는 보다 효율적인 구현을 사용하여 주의 메커니즘을 더욱 최적화합니다.
3. --opt-channelslast: 이 옵션은 NVIDIA 카드를 포함한 특정 GPU에서 더 나은 성능을 위해 메모리 레이아웃을 최적화합니다. 텐서 형식을 더 효율적일 수 있는 채널 마지막 형식으로 변경합니다.
4. --enable-insecure-extension-access: 웹 UI가 안전하지 않은 액세스가 필요할 수 있는 확장 프로그램을 로드하도록 허용합니다. 
5. --autolaunch: 스크립트가 실행될 때 기본 웹 브라우저에서 웹 UI를 자동으로 시작합니다.
6. --medvram: VRAM 사용을 최적화하여 16GB NVIDIA 4070 Ti와 같이 VRAM이 24GB 미만인 시스템에서 더 효율적으로 만듭니다. 이렇게 하면 메모리 부족 오류를 방지하는 데 도움이 됩니다.
7. --theme dark: UI 테마를 어두운 모드로 설정합니다. 이는 사용자 기본 설정이며 성능에 영향을 주지 않습니다.
8. --no-half-vae: 생성된 이미지에서 특정 아티팩트를 방지할 수 있는 VAE 모델에 대해 반정밀도(16비트) 사용을 비활성화합니다. 이는 이미지 품질에 문제가 있는 경우 유용합니다.
9. --disable-nan-check: NaN(숫자 아님) 검사를 비활성화합니다. 이렇게 하면 성능이 약간 향상될 수 있지만 NaN 문제가 발생하지 않는 경우에만 사용해야 합니다.
10. --cors-allow-origins "*": 모든 원본에서 CORS(Cross-Origin Resource Sharing)를 허용합니다. 이는 다른 도메인에서 API 또는 웹 UI에 액세스해야 하는 경우 유용합니다.
11. --api: 웹 UI의 API 기능을 활성화하여 프로그래밍 방식으로 상호 작용할 수 있습니다.
12. --opt-sdp-attention: 특히 4070 Ti와 같은 강력한 GPU에서 성능을 향상할 수 있는 보다 효율적인 구현을 사용하여 주의 메커니즘을 최적화합니다.
13. --opt-split-attention: 주의 계산을 분할하여 주의를 더욱 최적화하여 VRAM 사용량을 관리하고 성능을 향상하는 데 도움을 줍니다.

위 옵션을 이용해서 이미지 생성 시간을 단축해 보세요.