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

글쓴시간
분류 기술,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샷 위주로 선정했다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지





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

AI 로 생성한 사진의 특징중 하나가, 그리기 꽤 어렵고, 실존하기 어려운 화려한 의상들에 대해 그럴듯하게 잘 그려준다는 특징이 있다. 그래서 AI로 생성한 그림중에 드레스를 입은 그림이 많은 이유다. 꽤 화려하고 강렬한 인상으로 남는다. 필자가 AI 그림 생성에 뛰어든 이유중 하나이기도 하다. 뭐 계속 보다보면 질리겠지만 말이다. 어쨌든 2개월이 지난 지금까지 계속 이러고 있다.

첫번재로 웨딩 드레스다. 모델 1인 이미지고, 전신 이미지로 골랐다. AI 생성 그림의 최대 약점인 손가락은 최대한 숨겼다.

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

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

몇주 전에 스탭에 따라 다르게 완전히 다르게 생성되는 이미지에 대해 포스트한 적이 있다. 그래서 스탭을 24로 놓고 후보 이미지 생성한 다음, 맘에 드는걸 50 스탭으로 다시 생성하고 스케일업 하는 식으로 이미지를 생성하고 있다.

그런데, 50 스텝을 쓸 때 다른 이미지가 생성되는 경우가 간혹 있다.


사용자 삽입 이미지

24스텝 후보 이미지


사용자 삽입 이미지

50스텝 업스케일 이미지


50스텝에서 의상이 완전히 달라졌다. 이런  경우 24스텝에서 업스케일링 한다.

사용자 삽입 이미지

24스텝 업스케일 이미지


손이 엉망이 되었다. img2img 으로 보정해준다.

사용자 삽입 이미지

최종본


보정이 잘되는건 아니라 이것저것 많이 해봐야 한다. 계속 시도하다보니 손을 가리는게 나와서 그냥이걸로 했다.

아래도 마찬가지다. 50스텝 스케일업이 맘에 안들어서,

사용자 삽입 이미지

50스텝 업스케일 이미지


24스텝에서 업스케일 했다.

사용자 삽입 이미지

24스텝 업스케일 이미지

글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion web UI - 튀는 이미지들

Stable Diffusion web UI (이하 SD)로 작업하다보면 작성한 프롬프트와 전혀 다른 이미지가 생성되는 경우가 있다. 만약 SD 가 의지가 있다면 이유없이 반항하는게 된다. 물론 SD에 의지는 없다.

그래도 몇가지 올려본다.

사용자 삽입 이미지


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

사용자 삽입 이미지


Stable Diffusion web UI (이하 SD)에 대해 안내되어있는 공식적인 최소사양, 권장사양은 없다. 여기서 말하려는건 내 경험에 의한 최소사양과 권장사양을 적으려 한다. 필자가 처음에 SD시작할때, 이런 정보를 찾기 힘들어서 필요한 사양을 가늠하기 어려웠는데, 지금은 아래와 같이 자신있게 말할 수 있다.

- 필자가 생각하는 최소사양 #1 - GPU 사용

1. CPU: 듀얼코어 이상
2. GPU: nVidia 960M 2GB
3. HDD: 16GB 여유공간
4. RAM: 8GB 이상

-> 512px x 512px 이미지 1개 생성하는데 20분 정도 걸리며, 사용상의 제약이 매우 많다. 못하는게 많다.

- 필자가 생각하는 최소사양 #2 - CPU 사용

1. CPU: 하스웰 아키텍처 이상의 듀얼코어 이상 CPU
2. GPU: 없음
3. HDD: 16GB 여유공간
4. RAM: 16GB 이상

-> 512px x 512px 이미지 1개 생성하는데 2시간 돌리다가 포기했다. 하지만 8 시간 정도면 생성 되지 않을까 생각한다. 사용상의 제약이 많다. 참고로 GPU 가 "없음"으로 되어있는건 GPU 없이도 사용 가능하다는 의미. 참고로 PC에서는 GPU 없이 윈도로 부팅이 안된다.

- 필자가 추천하는 권장사양

1. CPU: 듀얼코어 이상
2. GPU: nVidia 3060 12GB 이상
3. SSD: 256GB 이상
4. RAM: 32GB 이상

-> 1920px x 1080px 이미지 1개 생성하는데 2분 정도 걸리며 사용상의 제약이 크지 않다. 인터넷에 AI 로 생성한 그림들을 따라하고, 나만의 그림을 생성하는데 불편함이 없다.

- 필자의 현재 사양 (2024.03.01 업데이트)

1. CPU: i3-6100 -> i5-7500 -> Ryzen 4750G
2. GPU: RTX 2060 12GB
3. SSD: 512GB
4. RAM: 8GB -> 12GB -> 32GB

-> 1920px x 1080px 이미지 1개 생성하는데 2분 10초 정도 걸리지만 사용상의 제약이 크지 않다. 인터넷에 AI 로 생성한 그림들을 만드는데 약간 불편하다. 특히 메모리 업그레이드 예정.
-> 2023.12.28 업데이트: 메모리 32GB로 업그레이드. 또한 새로나온 DPM++ 2M 의 샘플러 사용해서 2배 빨라졌다. 1920 x 1080px 생성시 100 초 정도 소요.

- 필자의 예전 사양

1. CPU: i5 750
2. GPU: nVidia GT 1030 2GB
3. HDD: 256GB
4. RAM: 16GB

-> 512px x 768px 이미지 1개 생성하는데 15분 정도 걸리며 사용상의 제약이 많다. 맛보기로 조금 해보고 거의 바로 바꿨다. 어쨌든 말하고 싶은건 2GB VRAM 에서도 실행 되고 이미지 생성이 된다는 거다.

- 사용상의 제약이 없으려면 VRAM 이 24GB 이상 되어야 한다고 생각한다. VRAM 이 더 많으면 더 좋다. 따라서 RTX 3090 이나 RTX 4090 사용하면 좋다. CPU 만으로도 사용 가능하지만 64코어 CPU가 필요할 것으로 생각되어서 CPU로 사용하는건 사실상 포기다.

- 보통 기다리는데에 지루하지 않다고 느낄 수 있는 시간이 8초라고 한다. 대기시간이 8초 넘어가면 느리다는 생각을 하고 딴짓하기 시작한다고 들었다. 바꿔 말하면 즉 이미지 1장 생성하는데 8초 이내여야 한다는 의미. 필자의 경우 512 x 1024 로 생성하는데 20초 정도 걸린다. 어쨌든 성능 좋은걸로 바꿔서 줄이긴 줄여야 한다는 의미다.

- 시스템 구성할때 팁 하나 더 주자면... 시스템 냉각에 매우 많이 고민하고 투자해야 한다는 거다. 장비 구매 예산을 짤 때 GPU 구매 비용 뿐만 아니라 그걸 원활하게 냉각시키기 위해 사용하는 비용도 생각해야 한다. 생각외로 비용이 많이 들기 때문이다. 참고로 2060 12G 를 중고로 20만냥에 샀는데 냉각 비용만 20만냥 들었다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - NaN 오류

SD 를 사용하다보면, 아래와 유사한 오류가 발생하면서 더이상 진행안되는 현상이 발생하곤 한다. 데이터 중에 NaN(Not a Number) 값이 있어 처리할 수 없다는 메시지다.

Traceback (most recent call last):
File "/home/windy/stable-diffusion-webui/modules/call_queue.py", line 56, in f
res = list(func(*args, **kwargs))
File "/home/windy/stable-diffusion-webui/modules/call_queue.py", line 37, in f
res = func(*args, **kwargs)
File "/home/windy/stable-diffusion-webui/modules/txt2img.py", line 56, in txt2img
processed = process_images(p)
File "/home/windy/stable-diffusion-webui/modules/processing.py", line 503, in process_images
res = process_images_inner(p)
File "/home/windy/stable-diffusion-webui/modules/processing.py", line 657, in process_images_inner
devices.test_for_nans(x, "vae")
File "/home/windy/stable-diffusion-webui/modules/devices.py", line 152, in test_for_nans
raise NansException(message)
modules.devices.NansException: A tensor with all NaNs was produced in VAE. This could be because there's not enough precision to represent the picture. Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.
컴퓨터로 부동소수점 연산하다보면 NaN 이 생길 수 있기 때문에 이부분에 대해서는 대책을 세워야 한다. SD에서는 아래와 같이 해보라고 한다.

--no-half-vae 옵션 사용
--disable-nan-check 옵션 사용
--xformers 옵션 사용

필자는 3가지 옵션을 다 해봤지만 그래도 간혹 나기는 한다. --no-half-vae 옵션이 가장 발생 빈도를 낮추는것 같다. --disable-nan-check 옵션 주면 그냥 검은색 이미지 생성하고 다음으로 넘어간다. 이 오류는 VAE 를 처리할 때 발생한다.