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

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion WebUI 가 v1.8.0 으로 업그레이드 되었다.

사용자 삽입 이미지

- 가장 눈에 띄이는건, Pytorch 버전과 Xformers 버전이 올라갔다는거. 9초 걸리던 생성시간이 8초대로 줄었다.

torch: 2.1.2+cu121 • xformers: 0.0.23.post1 으로 업그레이드 되었다.

- Generate 버튼 눌렀다가 다시 취소할때 뭔가 메시지가 나온다. 한참 기다릴 필요 없어서 좋다. 또한 Extra 에서 이미지 업스케일시 배경에 업스케일링 상태바가 출력된다.

사용자 삽입 이미지

- LoRA 설정 창에서 이미지 업데이트하면 바로 갱신이 안된다. 리로드를 눌러줘야 한다. 버그인듯. 조금 불편하군요.

- 지금 설치되어있는 LoRA 가 2000 여개가 된다. 앞으로 더욱 늘어날 텐데, 이걸 관리해주는 기능이 강화되었으면 한다. 하지만 "어떻게" 강화해야하는지는 잘 모르겠다. 나만큼 LoRA 많이 쓰는 사람도 많은거 같다.
글쓴시간
분류 기술,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배

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 반월 #1

만월과 드레스는 있는데 반월과 드레스는 없다는 생각이 문득 들었다. 그래서 바로 실행. 마침 반월과 관련된 LoRA 가 있어서 그걸 활용해 보았다.

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 메이드 #1 Part2

아래 사진들 생성하다가 의도하지 않은 사진이 나와 몇가지 다듬어 올린다. 왠지 분위기 있게 잘 나온 거 같아 만족하는 중.

들고있는 막대기를 없애려 했지만 잘 안 없어진다. 그래서 이미지와 어울리는 걸로 골랐다. 400여장 중 이정도 건졌으면 성공한 셈이다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 메이드 #1 Part1

오래전부터 메이드 그림을 생성하곤 했지만 맘에 드는게 별로 없었다. 너무 뻔한 그림이였다. 조금 색다른 LoRA 가 나왔고, 우연히 프롬프트 주니깐 나왔다.

아직 SD 1.5 를 사용하고 있지만, 아래와 같이 요즘 나오는 SD 1.5 의 퀄리티도 작년에 비해서 많이 좋아졌다. 그만큼 많은 양이 학습된데다, 양질의 LoRA 도 많이 나오고 있기 때문이다. 기법도 많이 발전했고 말이다.

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - SDXL 두번째 이야기

2023.07.28 에 SDXL 이 공개된지 약 6개월이 지났다. 필자는 아직 SD1.5를 주로 사용하고 있지만, SDXL 도 점점 사용회수를 늘이는 중이다. SDXL 을 사용하면서 선명도 때문에 언젠간 SD1.5 에서 SDXL 으로 전환해야 한다는 생각은 하고 있지만, SD1.5 도 6개월 전에 비해 많이 발전했기 때문에 전환할 일정은 좀 나중이 될거 같다. 아직도 에니메이션 풍의 그림은 SDXL 보다 SD1.5가 더 좋다. 아니면 최종적으로 병행해 사용하거나 말이다.

사용자 삽입 이미지

SDXL 으로 그린 그림. 선명한 그림을 그릴 수 있어 좋지만, 아직 에니풍의 화면은 무리다.



- 현재 SD WebUI 에서 SDXL 을 원활히 사용하기 위해 필요한 메모리 양은 윈도11의 경우 시스템 메모리 24GB 이상, VRAM 12GB 이상이다. CPU 는 크게 상관 없다. 듀얼코어에서도 크게 문제 없다.

- VRAM 이 8GB 인 경우에도 문제 없이 실행해볼 수 있다. --medvram-sdxl 옵션을 사용해야 한다. 시스템 메모리는 조금 많아야 한다.

- VRAM 이 4GB 인 경우에도 --lowvram 옵션을 사용해 실행할 수 있다. 해보지는 않았다.

- 반드시 nVidia 드라이버 최신 버전 사용하고, 리눅스사용할 경우 tcmalloc 반드시 사용하도록 하자.

- 스토리지가 많이 필요하다. 체크포인트만 해도 최소 6GB 이고, LoRA 파일의 용량도 SD1.5 에 비해 평균적으로 3배는 크다.

- SD1.5 에 비해 생성할 이미지의 해상도를 늘여야 하기 때문에 그만큼 느리다. 필자는 SD1.5 는 512x768, SDXL 은 832x1216 을 기본 해상도로 사용하고 있다. 그만큼 메모리 많이 먹는다.

- 필자는 현재 SD WebUI 에 "--xformers --no-half-vae" 옵션만 붙여서 사용하고 있다.

----

Stable Diffusion XL 1.0 출시
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 별

원래 주는 프롬프트에 오타도 났고, 스케일업 설정도 평소와 다르게 들어갔지만 결과가 맘에 들어 올려본다.

사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 랜턴과 바이올린

재미있는 LoRA 가 올라와서 만들어보았다. 곧있으면 신년이기도 해서, 랜턴 이미지는 준비하고 있었는데, 바이올린과 같이 만들면 어떨까 해서 만들어봤다. 예전에 라푼젤이라는 에니메이션 봤을때, 남여 주인공들이 배를 저어 호수 가운데로 가서 소망을 담은 등을 띄우는 걸 매우 감명깊게 보았었던게 기억나기도 한다. 이때문에 이맘때가 되면 윈도 바탕화면에서라도 등을 걸어두곤 한다.

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지

아래 이미지들은 바이올린 이미지 만들다가 프롬프트 잘못줘서 나온 그림이긴 한데 꽤 맘에 들어 올려본다.

사용자 삽입 이미지

사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 별 드레스

밤하늘을 연상시키는 별 무늬 드레스. 역시 LoRA 가 좋은게 올라와있길래 사용했다.

드레스 안감에 별자리가 새겨져있도록 하고싶었지만 못했다. 이걸 영어로 표현하기가 쉬운게 아니다.

그래도 이정도면 매우 만족.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - LCM(Latent Consistency Model)

이미지 생성시간을 획기적으로 줄일 수 있는 방법중 하나로 LCM 을 사용하는 방법이 있다.

1. LCM 을 지원하는 체크포인트를 사용하거나, 사용하는 체크포인트를 LCM 을 사용할 수 있도록 해주는 LCM LoRA 를 설치한다.
2. LCM 샘플러를 사용한다.
3. CFG Scale 을 1 ~ 2, Sampling Steps 를 3 ~ 8 으로 설정한다. (사용하고 있는 체크포인트에 따라 다르다)

쉽게 말하면 사용하고 있는 체크포인트에 ① LCM LoRA 를 사용하고 ② LCM 샘플러를 사용하면 ③ 스탭을 3 ~ 8 정도만 사용해도 양질의 이미지가 생성된다는 의미다.

- LCM LoRA

현재 SD 1.5 용과 SDXL 용이 나와있다. SD 1.5 용은 https://huggingface.co/latent-consistency/lcm-lora-sdv1-5 에서 받을 수 있다. (SDXL 용은 어차피 SDXL Turbo 가 있으니 굳이 사용할 필요 없다고 생각한다)

CivitAI 에서 사용자들이 만들어놓은 LCM LoRA 를 받을 수 있다. 미묘하게 다르다.

- LCM 샘플러

https://github.com/light-and-ray/sd-webui-lcm-sampler 를 설치한다. SDUI 에서 Extensions 탭 - Install from URL 에서 URL 을 직접 입력해 설치할 수 있다.

- 사용한 예

※ 미사용시
프롬프트: (best quality, masterpiece:1.5), (1girl:1.5), (full body:1.5), (large breasts:1.0), (thin waist:1.1), (dress)
설정: 샘플러=DPM++ 2M SDE Heun Karras, 스탭=38, CFG Scale=7, 크기=512 x 768
생성시간: 9초

사용자 삽입 이미지


※ LCM 사용시
프롬프트: (best quality, masterpiece:1.5), (1girl:1.5), (full body:1.5), (large breasts:1.0), (thin waist:1.1), (dress)  <lora:PAseer-SD15-LCM Quick:1>
설정: 샘플러=LCM Test, 스탭=8, CFG Scale=1
생성시간: 2초

사용자 삽입 이미지


뭔가 연구 좀 더 하면 좋아보이긴 하다. 어찌보면 대단하기도 하고.