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

글쓴시간
분류 기술,IT/스테이블 디퓨전
nVidia GT 1030 (2GB VRAM) 으로 Stable Diffusion WebUI 사용하기

※ 여러가지 시행착오끝에 아래와 같은 512x768 이미지를 GT 1030 에서 2분대에 생성할 수 있도록 했다. 작년 이맘때 생성한게 10분 대였다는걸 감안하면 많은 발전이다. 그만큼 기술이 늘었다는 셈이다. 이 방법은 아마도 2G VRAM 을 가진 모든 nVidia 계열에서 사용할 수 있을거 같다.

사용자 삽입 이미지

※ 하는 방법을 적어 놓는다.

1. Ubuntu 22.04 를 설치하고 nVidia 그래픽 카드 드라이버를 설치한다. 이 글을 쓰는 시점에서 드라이버 버전은 550.67 이다. 윈도에서는 이 방법이 되지 않는다.

2. OS 가 띄워진 후에도 VRAM 2GB 를 온전히 비워질 수 있도록 한다. 필자의 경우 모니터 연결은 내장 그래픽을 사용했다.

3. Stable Diffusion WebUI 를 설치하고 실행한다. 옵션은 "--medvram --listen --xformers" 을 준다.

glibc version is 2.35
Check TCMalloc: libtcmalloc_minimal.so.4
libtcmalloc_minimal.so.4 is linked with libc.so,execute LD_PRELOAD=/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
Version: v1.9.0
Commit hash: adadb4e3c7382bf3e4f7519126cd6c70f4f8557b
Launching Web UI with arguments: --medvram --listen --xformers
Loading weights [********] from Model.safetensors
Running on local URL:  http://0.0.0.0:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 7.1s (prepare environment: 1.4s, import torch: 2.4s, import gradio: 0.6s, setup paths: 1.2s, import ldm: 0.1s, initialize shared: 0.1s, other imports: 0.3s, list SD models: 0.1s, load scripts: 0.4s, create ui: 0.4s).
Creating model from config: /home/windy/stable-diffusion-webui/configs/v1-inference.yaml
Applying attention optimization: xformers... done.
Model loaded in 1.6s (load weights from disk: 0.5s, create model: 0.3s, apply weights to model: 0.5s, calculate empty prompt: 0.2s).

4. 이미지를 생성한다. 아래 화면 참조하자. 네거티브 프롬프트가 반드시 75토큰을 초과해야한다. (왜그래야 하는지는 모르겠다)

사용자 삽입 이미지


4-1. 아래와 같이 화면에 표시된다.

100%|████████████████████████████████████████████████████████| 24/24 [02:33<00:00,  6.40s/it]
Total progress: 100%|██████████████████████████████████████████████| 24/24 [02:36<00:00,  6.54s/it]
Total progress: 100%|██████████████████████████████████████████████| 24/24 [02:36<00:00,  6.36s/it]

4-2. VRAM 사용량은 아래와 같다. 1952 MB 사용한다.

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.67                 Driver Version: 550.67         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GT 1030         Off |   00000000:01:00.0 Off |                  N/A |
| N/A   53C    P0             N/A /   19W |    1955MiB /   2048MiB |    100%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      5895      C   python3                                      1952MiB |
+-----------------------------------------------------------------------------------------+


4-3. 생성 완료된 후 나오는 텍스트는 아래와 같다.

best quality, masterpiece, 1girl

Negative prompt: ng_deepnegative_v1_75t, EasyNegativeV2, bad_prompt_version2,
Steps: 24, Sampler: DPM++ 2M SDE Heun, Schedule type: Karras, CFG scale: 7, Seed: 1121270688, Size: 512x768, Model hash: ********, Model: Model, Clip skip: 2, Version: v1.9.0

Time taken: 2 min. 44.3 sec.

A: 1.78 GB, R: 1.83 GB, Sys: 1.9/1.94531 GB (98.1%)

5. 정말 아슬아슬하게 생성되는 셈이다. 단 이렇게 하면 배치로는 못 생성한다. --lowvram 과 아닌건 성능 차이가 많기 때문에 필자는 이렇게 사용하고 있다.
글쓴시간
분류 기술,IT
nVidia 그래픽 카드 윈도/리눅스 드라이버 버전

사용자 삽입 이미지

nVidia 제품별 리눅스 드라이버 지원상황을 살펴보았다.


제품 시리즈                    버전          출시일
------------------------------ ------------- -------
RIVA TNT, TNT2, Geforce 256, 2 71.86         2005.xx
GeForce 2 MX,3,4               96.43         2012.09
GeForce 5 FX                   169.12        2008.02
GeForce 6, 7                   304.137       2017.09
GeForce 8, 9,100,200,300       340.108       2019.12
GeForce 400,500                390.157       2022.11
GeForce 600,700                470.239.06    2024.02
GeForce 900 ~                  550.76        2024.04
최종갱신일: 2024.04.21

GeForce 600 시리즈 드라이버 지원을 아직까지 해주는군요. (470.xx 에서 업그레이드는 없습니다만 아직까지 버그 픽스가 되고 있네요) 생각 외였습니다. 제가 가지고 있던 8400GS 는 이제 보내줘야 할때가 왔나보네요.

Ubuntu 22.04 버전에서는 390.157 이하의 버전이 설치되질 않는다고 합니다. 340.108 은 설치 안되는걸 확인했습니다. 커널 버전에 따라서 안되는게 있네요. 그냥 포기.

----

https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/

nVidia GeForce 8400GS (G98) - GPU-Z
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion WebUI 4K 이미지 생성 - 2번째 이야기

사용자 삽입 이미지


기존에 4K 이미지 생성하는걸 실패했다는 글을 작성한적이 있다. 시스템 메모리를 업그레이드하면 되지 않을까 했었는데, 실제 메모리 업그레이드를 단행해 보았다. 그리고 4K 이미지 생성되었다.

※ 테스트 사양

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

※ 테스트

③ 544 x 960 → 2176 x 3840 변환(Hires. fix)작업: 시간: 15m 42s, A: 26.46 GB, R: 42.11 GB, Sys: 12.0/12 GB (100.0%)

-> Extra 탭에서 변환하는 것보다 Hires. fix 으로 생성하는게 디테일이 더 살아있다. 4K 이미지 생성시 시스템 메모리 64GB 는 필수다.

※ 메모리 사용량

마지막 단계에서 아래와 같이 사용한다. 이때 위에 나온 "A: 26.46 GB" 를 사용하는 셈이다.

사용자 삽입 이미지

----
글쓴시간
분류 이야기
경축! 누적 방문자수 1000만 돌파

사용자 삽입 이미지


2006년 3월 첫 글을 쓴 이후로 18년이나 블로그 운영했네요. 18년만에 방문자수 천만 천만을 돌파했습니다.  늦은건지 빠른건지는 모르겠지만, 그리고 저 방문자의 상당수가 웹 크롤러일거 같긴 하지만, 그래도 꽤 많이 카운트가 올라갔고 오랬동안 운영했습니다.


사용자 삽입 이미지

블로그 카운터



왠지모르게 센시티브해질때 지난 글을 둘러보기도 합니다. 그리고 시간 가는줄 모르고 글을 고치기도 하죠. 이때는 이렇게 생각했었구나 라고 한번 되돌아보기도 합니다. 10년이상 운영하면 그 자체로 좋은거니까요. 앞으로도 계속, 쭈욱~ 운영하고 싶어집니다.
글쓴시간
분류 기술,IT
DDR4 16G DDR4-2666V PC4-21300 x 2 추가구매

사용자 삽입 이미지


당근에서 또 구매했다. 이번엔 기존보다 더 저렴하게 구매했다. DDR4 16GB 2개에 6.2만냥. 6만원에 구하는게 가장 좋은건데 2천원 차이라 큰 생각없이 그냥 구매했다. 근데 거래할때 더 깎아줬다. 현재 동일한 스펙으로 신품을 구매하려면 9.0 만원 정도 들어간다. (배송비는 별도다)

판매자는 하도 안팔려서 싸게 내어 놓은거라고 했는데, A/S 기간이 지난 메모리는 원래 신품 최저가의 70%정도다. 단종된 메모리는 더 낮다.

메모리 모듈의 파트넘버는 M378A2K43CB1-CTD 이다. 지난번에 구매했던건 D 다이였는데 이번엔 C 다이다. 이것만 빼고는 파트넘버가 같고 따라서 스펙은 같다.

사용자 삽입 이미지

파트넘버가 거의 같아서 예전에 했더것 처럼 오버클러킹이 잘 될줄 알았지만, 전혀 되질 않는다. 처음부터 4000MHz 넣었지만 안되었고, 3600MHz, 3200MHz 으로도 넣어봤지만 역시 안되었다. 심지어 전압을 자동조절로 바꿨는데도 안된다. C다이가 더 잘된다는 소문은 꼭 들어맞는건 아닌가보다. 결과적으로 국민오버라는 "1.35v, 3200MHz, 18-18-18-18-40" 설정이 안된다. 아주 아쉽다. 찾아보니 3000MHz 정도는 된다고 하는데, 이건 나에겐 의미 없어서 그냥 오버클럭 포기다. 지금 4000MHz 으로 오버해서 사용하고 있으니 말이다. 게다가 어차피 i5-7500 과 같이 사용하려고 구매한 거라 오버클럭이 안된다.

----

DDR4 16G DDR4-2666V PC4-21300 x 2

AMD Ryzen™ 7 PRO 4750G 메모리 오버클러킹