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

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion web UI 1.3.0 - 버그

2일전 배포된 Stable Diffusion web UI 1.3.0 에 버그가 제법 많은것 같다. 버그 리포트가 심심치않게 올라오고 있다. 곧 패치되겠지만 당장 실행안되는것부터 해결해야 한다. 필자의 경우 venv 생성시 pytorch 설치부터 안된다.

git 에는 특정 태그로 되돌리는 기능이 있다. 이 기능을 사용해 1.2.1 으로 되돌린 후 사용하자. 아래와 같이 하면 된다.

# git tag
v1.0.0-pre
v1.1.0
v1.1.1
v1.2.0
v1.2.1
v1.3.0
v1.3.0-RC
# dir launch.py
2023-05-30  오후 12:45               953 launch.py
# git checkout v1.2.1
...
# dir launch.py
2023-05-30  오후 12:47            14,682 launch.py

이렇게 한 후 실행한다.

원래대로 돌아가려면 (특정 버전을 사용하지 않으려면)

# git switch -

를 사용한다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - xFormers 0.0.20

사용자 삽입 이미지
요즘에 가장 핫한 AI 알고리즘이 Transformer 라는 알고리즘이다. 대규모 언어 모델을 구현할때 많이 사용한다. xFormers 는 페이스북에서 만든 Transformers 기반의 성능향상 파이썬 모듈이다 nVidia CUDA 에 최적화되어있다. Stable Duffusion 에도 Transformers 가 있기 때문에, 이 부분을 성능향상시켜준다. 

사용자 삽입 이미지

Transformer 아키텍처.라고 한다.


몇일전에 xFormers 0.0.20 이 나왔다. 성능이꽤 많이 향상되었다고 해서, 한번 써 봤다.

2023.05.26 현재 Stable Diffusion webUI에서 소스 수정없이 설치되는 xFormers 버전은 0.0.17 이다. 조만간 0.0.20 을 사용하도록 변경할 것으로 생각한다.

필자는 RTX 2060 12G 을 사용하고 있다. nVidia 홈페이지에서 윈도11용 드라이버를 새로 받았고, Stable Diffusion 디렉토리의 venv디렉토리를 지우고, launch.py 를 수정해 xFormers 0.0.20 을 설치했다.

결론부터 말하자면, 꽤 만족할만한 성능 향상이 있었다. xFormers 0.0.17 으로 2:27 걸리던 이미지 생성시간이 XFormers 0.0.20 으로 업그레이드 하니 2:04 이 걸렸다. 20여초나 단축한 셈. 매우 많은 성능향상이다.

----

https://github.com/facebookresearch/xformers
글쓴시간
분류 기술,IT/스테이블 디퓨전
LoRA 적용시 오류 - output with shape {param} doesn't match the broadcast shape {param}

사용자 삽입 이미지

Traceback (most recent call last):
  File "C:\stable-diffusion-webui\extensions\a1111-sd-webui-lycoris\..\..\extensions-builtin/Lora\lora.py", line 215, in load_loras
    lora = load_lora(name, lora_on_disk.filename)
  File "C:\stable-diffusion-webui\extensions\a1111-sd-webui-lycoris\..\..\extensions-builtin/Lora\lora.py", line 176, in load_lora
    module.weight.copy_(weight)
RuntimeError: output with shape [4, 320, 1, 1] doesn't match the broadcast shape [4, 320, 3, 3]

이와같이 나오는 이유는 적용하려는 파일(.safetensor, .pt 파일)이 LoRA용 파일이 아니기 때문이다. 이런 파일은 LoRA 의 확장 규격을 사용한 거라, 현재 Stable Diffusion WebUI 에서 사용하려면 LyCORIS 사용해야한다. 파일이름, 파일 크기만 가지고는 LoRA 인지 LyCORIS 용인지 명확하게 구분이 안된다. (그래도 LyCORIS 용 파일은 파일 크기가 수십메라 정도로 작다)

프롬프트도 <lyco:***:1.0> 처럼 사용해야 한다. <lora:***:1.0> 이 아니다.

- 확장 LoRA 는 [*, *, 1, 1] 에서 [*, *, 3, 3] 과 같이 뒤의 2개 숫자가 1 에서 3으로 변경되었다. (이건 프로그래밍에서 4차원 배열 정도로 생각하면 된다) 이게 확장 LoRA 규격이다.

----

2023.05.26 추가

Stable Diffusion WebUI 를 최신 버전으로 패치하면 LoRA 로 적용 된다. (LyCORIS 쓸 필요 없다) 기존에는 [*, *, 3, 3] 형식의 LoRA 를 지원하지 않았다고 한다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 뒷태 #1

드레스 입은 뒷태. 마치 영화제에 참석한 배우 같은 느낌. 괘 오래전에 생성해 놓았다가 이제야 올린다. 실내에서 찍은 느낌이긴 괜찮다.

역시 손이 문제이긴 하다. 완벽하게 손을 그린건 없고, 그나마 괜찮은것에서 골랐다. 몸과 얼굴의 비율을 놓고 보면 얼굴이 굉장히 크게 느껴지긴 하지만, 그럭저럭 보기 괜찮아서 올린다.

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

wizard dress 와 galaxy 를 프롬프트에 넣어서 생성했다. 생각보다는 잘 나와서, 올려본다.

원래 AI 로 생성하려는 이미지들은 현실에서는 존재하지 않는 이미지로 해야 한다고 생각한다. 좀더 환타지적인 성격을 가진 이미지를 생성하는게 맞지 않는가 생각했고, 그걸 실 사진처럼 뽑아주면 좋겠다는 생각을 하곤 했는데, 그 첫번째다.

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

체크포인트 변경하고 생성한 이미지들이다. 순수하게 AI 로만 생성하고 후보정(예를 들어 포토샵을 사용한 보정)도 하지 않은 AI 가 생성한 이미지 그대로 게시한다.

실사처럼 보이지도, 만화처럼 보이지도 않는, AI 로만 그릴 수 있는 디테일 있는 그림을 원했고, 이제 어느정도 맞는거 같다. 앞으로도 계속 이미지 생성 하면서 조금씩 변하겠지만 말이다. SD 2.1 도 아직 사용하지 않고 있는거라, 앞으로도 꽤 많은 변화가 있긴 할거 같다. 몇개월, 몇년 후에 서서히 바뀌는 그림들 보면 재미있을것 같다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 윈디하나#2 체크포인트

2023.04.16 에 생성해서 사용하던 체크포인트를 5월 5일자로 교체했다. 다른 체크포인트를 하나 더 머지 했다. 전체적으로 이미지가 밝아진 느낌.

체크포인트 머지 비율로 많이 고민하다가 결국 마지막 이미지에 사용된 체크포인트를 사용하기로 했다. 입력한 프롬프트에 더 알맞는 이미지가 나왔기 때문이다. 프롬프트 가중치나 로라를 사용해 튜닝이 가능한 항목은 체크포인트를 선택하는데 있어 중요하게 생각하지 않는다. 결과적으로 프롬프트가 잘 먹히는 체크포인트가 좋은거다.

체크포인트를 교체하면, 기존에 해놓았던 시드가 먹히질 않는다. 당연한거라서, 이부분은 신경 안썼다. 어차피 프롬프트의 웨이트 수정해서 다시 생성중이다. 이런것도 한달 주기로 반복할 듯.

※ 기존 체크 포인트
사용자 삽입 이미지

※ 체크포인트 후보. 7(5:5):3 비율 혼합
사용자 삽입 이미지

※ 비율을 조절후 최종 결정 7(7:3):3

사용자 삽입 이미지

정말 예뻐졌다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 예복 #1

예복도 AI 들이 잘 그리는 이미지중 하나다. 한번 생성해 보았다. 드레스 패턴이 일정하긴 하지만, 그래도 꽤 신선해 보이는 예복들로 골라 보았다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지










글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 웨딩 드레스 #2

웨딩 드레스 그 두번째. 2샷 위주로 선정했다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지