윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion WebUI 4K 이미지 생성

사용자 삽입 이미지

nVidia 드라이버 업데이트로 언제부턴가 VRAM 이 부족하면 시스템 메모리의 50%까지 가져와 사용하도록 변경되었다.

이런 변경사항때문에 4K 로 바로 업스케일 가능한지 테스트해보았다.

※ 테스트 사양

메모리: VRAM 12GB, SYSTEM RAM 32 GB
SD WebUI: v1.7.0, "--xformers --no-half-vae" 옵션

※ 테스트

① 544 x 960 → 1088 x 1920 변환(Hires. fix)작업: 시간: 01m 56s, A: 8.40 GB, R: 12.71 GB, Sys: 12.0/12 GB (100.0%)
② 544 x 960 → 1632 x 2880 변환(Hires. fix)작업: 시간: 08m 43s, A: 15.93 GB, R: 25.72 GB, Sys: 12.0/12 GB (100.0%)
③ 544 x 960 → 2176 x 3840 변환(Hires. fix)작업: 실패. > 12m

A: 캐시 제외한 비디오 메모리 사용량
R: 토치 라이브러리의 최대 메모리 사용량
Sys: 비디오 메모리 사용량/총 비디오 메모리

※ 4K 를 바로 생성하려면 시스템 메모리 64GB 는 되어야 한다고 예상된다. 지금은 그냥 Extra 탭에서 업스케일링 하고 있다. 조만간 64GB으로 업그레이드할 생각이긴 하다.

※ 실패시에는 아래와 같은 문구가 나왔다. 마지막단계(생성 다 끝나고 VAE 사용하는 단계)에서 오류난다.

OutOfMemoryError: CUDA out of memory. Tried to allocate 7.97 GiB (GPU 0; 12.00 GiB total capacity; 18.51 GiB already allocated; 0 bytes free; 18.54 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Time taken: 12 min. 41.4 sec.

A: 20.55 GB, R: 22.88 GB, Sys: 12.0/12 GB (100.0%)

메시지의 내용은 7.97GiB 할당하다가 오류났고 이걸 해결하려면 결과적으로 7.97GiB 메모리가 더 필요하다는 의미다. 최소 VRAM 을 8GB 증설하던가, 시스템 메모리를 16GB 증설하던가 해야 한다.

※ 테스트에 사용한 이미지는 아래와 같다.

사용자 삽입 이미지

원본


사용자 삽입 이미지

Hires fix 2배


사용자 삽입 이미지

Hires fix 3배


사용자 삽입 이미지

Extra 2배


사용자 삽입 이미지

Extra 3배


사용자 삽입 이미지

Extra 4배