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

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

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

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

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


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

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

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

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지
글쓴시간
분류 기술,IT
M.2 SATA, PCIe, NVMe

M.2 폼팩터의 SSD 를 알아보다가 확인해야할게 많아서 정리해 놓았다.

1. M.2

- M.2 는 한때 NGFF(Next Generation Form Factor)라 불렸던 차세대 폼 팩터에 사용된 커넥터 사양이다. M.2 는 mSATA 표준을 대체하고, PCIe Mini Card 와 동일한 규격의 커넥터 규격을 사용한다. 2013년 부터 도입되었으며 10여년이 지난 지금은 널리 사용되고 있다.

- 요즘엔 주로 카드 형식의 SSD 를 연결할때 사용하는 형식이다.

2. M.2 SATA

사용자 삽입 이미지

SATA 방식 M.2 SSD. B 키와 M 키가 있다.


- M.2 커넥터로 SATA 통신을 하는 규격이다. 운영체제에서는 AHCI 컨트롤러에 연결된 SATA 하드디스크로 인식된다. M.2 초창기에는 주로 사용되던 형식이었으나, 현재는 성능상의 문제로 사용하지 않는다. M.2 SATA 형식의 SSD 를 사용할 때에는 마더보드에서 지원하는지 반드시 확인해야 한다. 최대 600MB/s (SATA 3규격과 동일)까지 지원된다.

3. M.2 PCIe

- M.2 커넥터로 PCIe 통신을 하는 규격이다. 하지만 PCIe 위에 AHCI 컨트롤러가 자리잡고 있기 때문에 운영체제에서는 AHCI 컨트롤러에 연결된 장치로 인식한다. 구형 마더보드에서는 지원하지 않는 경우도 있어 이 형식의 SSD를 사용하는 경우 반드시 확인해야 한다. 보통 PCIe 2.0 x4 속도까지 지원했다.

4. M.2 NVMe

사용자 삽입 이미지

NVMe 방식 M.2인 T705. M키만 있다.


- M.2 커넥터로 PCIe 통신을 하는 규격이다. 하지만 운영체제에서는 NVMe(Non-Volatile Memory Express) 장치로 인식된다. 어쨌든 PCIe 규격으로 통신하기 때문에 PCIe 규격과 호환된다. M.2 PCIe 와 M.2 NVMe 와의 차이점은 운영체제 레벨에서 어떻게 인식되느냐에 있고, 이때문에 지원하는 속도가 NVMe 가 훨씬 빠르다. NVMe 는 AHCI 보다 대기열의 명령큐가 증가(32 -> 64K)하고, 다중 대기열 사용할 수 있으며, CPU에서 직접 접근해 레이턴시(지연)가 낮고(6ms -> 2.8ms), 운영체제에서 더 빠른 드라이버를 사용할 수 있어 AHCI에 비해 IOP향상(100k -> 1M IOP)이 가능해지는 등의 많은 이점이 있다. PCIe 3.0 x4 속도 이상 되는 SSD는 모두 이 방식이다. NVMe PCIe 3.0 x4 의 경우 3,940MB/s 까지 지원된다.

5. 2230, 2242, 2260, 2280, 22110

- 카드의 크기다. 22 는 22 mm 을 의미하며 카드의 너비다. 30, 42, 60, 80 은 카드의 길이이며 단위는 mm이다.

- 너비가 22mm 규격 이외의 것도 M.2 에 정의되어있지만 PC에서 사용되는 규격은 22 만 있다. 많은 마더보드에서 2242 ~ 2280 까지 지원한다. 2230 과 22110 규격의 기기를 사기 전에 마더보드에서 장착되는지 반드시 확인해야 한다.

6. 방열판

NVMe 형태의 SSD는 발열이 있다. 연속해서 많은 데이터를 읽고 쓰는 경우에는 무시하기 어려울 정도로, 발열때문에 성능이 하락할 정도로 열이 심하다. 따라서 이런 경우에는 방열판이나 액티브 쿨링을 사용해야 한다.

7. Key

사용자 삽입 이미지


- M.2 장치에는 Key(키)라고 불리는 부분이 있다. 일종의 홀인데 지원하지 않는 기기를 장착하지 못하도록 키의 위치를 달리해 제조한다.

- A ~ M 까지 있는데 데스크탑 M.2 저장장치에서 중요한건 B 와 M 키다. B 키는 SATA 및 PCIe x2 방식에 사용되고, M 키는 SATA 및 PCIe x4 방식에 사용된다. 최신 NVME SSD 는 PCIe x4 가 필요하기 때문에 M 키만 뚫려있다.

- A 키와 E 키는 PCIe x1 을 지원하기 때문에 WiFi 나 블루투스 기기에서 주로 사용된다.

8. Socket

- Socket 은 7. 에서 설명한 Key 와 같은 의미인데 호스트의 관점에서 본다. 마더보드 스펙에는 Socket 으로 표기되어있다.

- Socket 1 ~ 3 까지 있다.

→ Socket 1은 Wifi 및 블루투스
→ Socket 2는 WWAN, GNSS, SSD Cache
→ Socket 3은 SATA 및 PCIe 방식의 저장장치

따라서 저장장치에서는 Socket 3를 사용한다.

9. 대역폭 공유 및 장치 공유

M.2 에 SATA 모드로 사용시 특정한 SATA 소켓이 비활성화 되거나 M.2 에 PCIe/NVMe 모드로 사용시 특정한 PCIe 슬롯이 비활성화 되는 경우가 있다. 어느 부분이 어떻게, 얼마나 줄어드는지는 마더보드 매뉴얼을 읽어보자.

10. DRAM

플래시 메모리기반 저장장치는 각 셀의 사용 정보(각각의 셀이 쓰기를 몇번 했는지, 수명이 다된 셀은 몇번으로 대체되었는지에 대한 정보)를 기록해 놓는데, 이 정보는 셀이 변경될때마다 매번 바뀌어야 하고, 특히 셀 대체 정보는 셀에서 데이터를 읽고 쓸때마다 계속 참조해야 한다. 아무래도 플래시메모리보다는 DRAM 이 더 빠르기 때문에 DRAM 을 사용해 속도향상을 도모한다. DRAM 이 없으면 속도가 2000 MBps 정도가 한계고 매핑이 발생한 순간부터는 매우 느려진다. SSD 에서 오래써도 성능저하를 줄이려면 DRAM 은 필수인셈.

HDD 에서는 DRAM 이 버퍼로 사용되지만, SSD 에서는 매핑 정보를 담아 빠르게 참조할 수 있는 저장공간으로 사용된다는게 다르다.

11. SSD 수명

SSD 는 수명이 정해져 있다. 셀당 쓰기가 일정한 회수 이상은 쓰기가 안된다. 수명이 다 된 셀은 매핑해서 다른 셀로 대체해 사용한다. 대체할 셀 조차 없으면 SSD 는 더이상 사용할 수 없다.

이렇게 이야기 해도 일상적인 사용환경에서는 10년 이상 사용할 수 있다.

수명 확인은 S.M.A.R.T. 정보를 읽어오는 프로그램을 사용해 확인할 수 있다. 아래 스크린샷의 왼편에 99% 라고 써 있는게 수명이다. 스크린샷의 오른편의 읽기/쓰기량이 많아질 수록 급격하게 수명이 깎인다. 일년에 한번정도는 확인하는게 좋다고 생각한다. 0% 떨어지면 못 사용하니 그 전에 바꾸자. 50% 만 되어도 매핑이 많아져서 성능 하락이 쉽게 느껴진다.

사용자 삽입 이미지

※ 마더보드 스펙 읽기

아래 매뉴얼을 보면

사용자 삽입 이미지


- M.2 Socket 3 타입의 소켓 2개가 있고, M 키를 지원한다.

- M.2_1 포트는 32Gb/s 로 작동한다. M.2_2 포트는 16Gb/s 으로 작동한다.

- M.2_1 이 SATA 모드로 작동할때에는 SATA_1 포트가, M.2_2 이 SATA 모드로 작동할 때에는 SATA_6 포트가 비활성화 된다.

- PCIe 모드로 작동할때에는 비활성화 되는 기기에 대한 언급이 없다. 마더보드에 사용된 칩셋의 대역폭이 충분한경우 비활성화 되지 않는다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - SDXL 두번째 이야기

SDXL 이 공개(2023.07.28)된지 약 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
Gigabyte GeForce RTX™ 4060 OC Low Profile 8G

사용자 삽입 이미지


RTX 4060 을 사용한 그래픽 카드중 LP(Low Profile)을 지원하는게 나왔다고 해서 한번 찾아봤다. 정말 나와있었다. Gigabyte GeForce RTX™ 4060 OC Low Profile 8G 이 바로 그거다.

사용자 삽입 이미지

일반적으로 LP 규격은 슬림 PC 에 주로 사용하고, 슬림PC는 대기업 PC에서 주로 사용되는 규격이다. 하지만 LP 는 케이스 공간이 협소하기 때문에 냉각에 문제가 있어, 발열이 많은 최신 그래픽 카드를 사용하기에는 문제가 있었다. 4060 은 TDP 가 115W 이기 때문에 보조전원까지 필요한 그래픽 카드이고 그만큼 발열이 많은 바, 따라서 LP 에서 사용하기엔 어려웠다. 보통 75W 이하인 보조전원 없는 GPU, 예를들어 xx30 이나 xx50 번대 그래픽 카드로 LP 형식에 맞춰 제조했기 때문에 xx60번대 GPU인 4060 을 LP 로 만든건 의외였다.

사용자 삽입 이미지

어쨌든 나왔고, 4060의 원래 성능과 차이가 없다고 한다. 가격대가 높지만 LP 가 필요한 시스템에서는 충분히 구입할만해 보인다.

사용자 삽입 이미지


전원부가 윗쪽이 아닌 측면에 있고, 50mm 팬 3개를 달았다. 카드 크기는 L=182 W=69 H=40 mm 이다. 그래픽 카드는 생각보다는 아담해 보인다. 구매하지는 않겠지만 재미있는 제품이다.
글쓴시간
분류 기술,IT/하드웨어 정보
Samsung DDR4 16G DDR4-2666V PC4-21300 x 2 구매

벼르고 벼르다가 중고로 구매했다. DDR4 는 이제 끝물이라 구매하기 망설여지긴 하지만, 지금 내 상황에서 SDXL 을 원활히 사용하려면 메모리 증설이 필수였다. 그래서 그냥 구매. 2개에 6.5만냥에 구매했다.

사용자 삽입 이미지

어쨋든 32GB 사용하니 좋긴 좋다. 특히 윈도11은 윈도10 에 비해 메모리를 4GB 정도 더 소요되기 때문에, 16GB 급 메모리를 사용해야하는건 어쩌면 필수일지도 모르겠다.

DDR4-2666 이긴 해도 i3-6100 CPU 가 DDR4-2133 까지만 지원하기 때문에 풀 스피드로 사용하지는 못한다. 그래도 워낙 빠르니 속도에 따른 성능 저하를 알아차리기 힘들겠지만 말이다.



사용자 삽입 이미지

----

DDR4 16G DDR4-2666V PC4-21300 x 2 추가구매

DDR4 32G DDR4-3200AA PC4-25600 x 2
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 별

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

사용자 삽입 이미지
글쓴시간
분류 기술,IT
사이트 해킹 시도?

사이트 로그를 보다가 재미있는 로그가 나와서 적어본다. 정상적이지 않은 로그고 따라서 어떤걸 노렸는지 이해가 가지 않는 로그다. 발신지 IP를 조회해보니 미국으로 나왔다.

JAVA 나 JavaScript, Shell 를 사용한걸 노린거 같고, PostgreSQL 을 사용한걸 가정한듯 하다.

1. 문자열에 PG_ 으로 시작하는 쿼리처럼 생긴 문장이 있다.
2. response.write 로 시작하는 구문이 있다. Java JSP 에서 수식을 계산한건데 Integer 오버플로를 노린거 같아 보인다.
3. Shell 스크립트를 노리기도 했다. nslookup 으로 특정 도메인을 조회하려 했다.

코드 몇개는 실제로 실행해봤는데 딱히 뭔일이 발생하진 않았다. 뭐지.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 랜턴과 바이올린

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

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지

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

사용자 삽입 이미지

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

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

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

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

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지