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

글쓴시간
분류 기술,IT/스테이블 디퓨전
FLUX.1 Dev 사용하기

※ 원칙적(?)으로는 아래와 같이 사용할 수 있다.

1. https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main (공식 리포지토리)
   flux1-dev.safetensors 및 ae.safetensors 파일 다운로드

2. https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main
   clip_l.safetensors 및 t5xxl_fp16.safetensors 파일 다운로드
   -> 공식 리포지토리의 text_encoder, text_encoder_2 아래에 있는 파일과 같은 파일이다.

3. 다운로드 받은 파일을 stable-diffusion-webui-forge 의 디렉토리로 옮김
flux1-dev.safetensors  -> models/Stable-diffusion/
ae.safetensors         -> models/VAE/
clip_l.safetensors     -> models/text_encoder/
t5xxl_fp16.safetensors -> models/text_encoder/
3. stable-diffusion-webui-forge 실행 후, 아래와 같이 세팅
UI: flux
CheckPoint: flux1-dev
VAE / TextEncoder: clip_l.safetensors, t5xxl_fp16.safetensors, ae.safetensors

4. GERERATE 버튼 클릭!

- 이렇게 실행하려면 최소한 24GB VRAM 을 가진 nVidia GPU 와 64GB 의 시스템 메모리가 필요하다.

- 일부 파일은 여기서 받음: https://huggingface.co/camenduru/FLUX.1-dev/tree/main

※ FP8, NF4으로 구성

속도를 빠르게 하고 메모리 사용량을 줄이기 위한 목적으로 FP8 이나 NF4 를 사용한 모델을 사용할 수 있다. 이걸로 해야 필자의 사양(RTX 2060 12GB, MEMORY 64GB)에서 실행된다.


사용자 삽입 이미지



t5xxl_fp16.safetensors -> t5xxl_fp8_e4m3fn.safetensors     https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main
flux1-dev.safetensors  -> flux1-dev-fp8.safetensors        https://huggingface.co/Kijai/flux-fp8/tree/main
flux1-dev.safetensors  -> flux1-dev-bnb-nf4-v2.safetensors https://huggingface.co/lllyasviel/flux1-dev-bnb-nf4/tree/main

아니면 아래의 All-in-one 타입 을 사용할 수 있다.

https://huggingface.co/Comfy-Org/flux1-dev/tree/main FP8

※ 메모리 구성

전용 GPU 메모리(Dedicated GPU Memory): GPU 의 VRAM 용량
공유 GPU 메모리(Shared GPU Memory): GPU 에 의해 공유되는 시스템 메모리. 사용 가능한 용량은 시스템 메모리의 절반

- 스왑 메모리 위치
-- CPU: 모델을 GPU 메모리 및 시스템 메모리에 위치
-- Shared: 모델을 GPU 메모리 및 공유 GPU 메모리에 위치. 좀 더 빠른 대신 실행 이슈(크러시)가 발생할 수 있다.

- GPU Weights (MB): GPU 에 적재할 모델의 크기. 크면 클수록 좋지만, 이미지 생성시에도 GPU 메모리를 필요로 하기 때문에 적당히 조절해야 한다.

- 스왑 메쏘드
-- Queue: 모델 적재 -> 연산 -> 다른 모델 적재 -> 연산의 순서로 차례대로 진행된다.
-- Async: 모델 적재 -> 연산 및 다른 모델 적재 -> 연산 및 다른모델 적재 의 순서로 동시에 처리된다. Queue 보다 빠르지만, 모델에 따라 갑자기 매우 느려질때가 있다. Async 와 Queue 를 비교해보고 빠른걸 선택하자.

사용자 삽입 이미지

CivitAI 에 공개된 이미지 프롬프트를 보고 따라한 그림. FLUX 로 생성했다. https://civitai.com/images/31943195



https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/981
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 베어백 #1 Part 2/2

처음에 뽑은건 아래 첫번째 그림이다. 이게 맘에 들어서 이것저것 튜닝해 보았지만, 왠지 이와 유사한 그림이 나오지는 않았다.
사용자 삽입 이미지

그래도 나름 괜찮아 보인다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

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

꽤 괜찮은 사진이 우연히 생성되었다. 이것저것 프롬프트를 튜닝하다가 꽤 맘에 드는게 나왔다. 베트남의 전통 드레스 아오다이와 유사한것 같긴 하지만 (필자는 아오다이 전문가는 아니다) 어쨌든 꽤 맘에 든다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
글쓴시간
분류 기술,IT
윈도 하이퍼바이저 플랫폼 끄기, 가상 머신 끄기

"Windows 기능"을 실행 시켜서, "Windows 하이퍼바이저 플랫폼", "가상 머신 플랫폼" 을 끄면 된다.

윈도 하이퍼바이저 플랫폼은 Hyper-V 를 의미하는 것으로 윈도에서 가상화 기능을 사용해 보안성을 향상시키는 기능이다. 문제는 이걸 윈도에서 사용하면 앱에서는 사용할 수 없고, 보안성 향상도 좋지만 조금 느려진다는 것. 특히 게임 할 때에는 그냥 끈다.

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

"FastSD CPU" CPU 만을 사용해서 이미지를 생성한다. LCM 이나 OpenVINO 를 사용하는듯.

예전에 한번 써보고 관심 없었는데, 갑자기 CPU 로 사용하는건 어떨까 해서 찾아봤다.

스텝은 4 이하로 설정하는게 핵심이다. 4 이하로 설정해도 품질이 좋은 이미지를 생성하기 위해 여러가지 작업을 한다. 물론 그렇지 않은 모델보다는 떨어지지만, 속도가 매우 중요한 경우에는 이 방법밖에 없다.

i7-7700K 에서 1장 생성하는데 약 30초 정도 걸린다. 품질도 생각보다는 좋다.

사용자 삽입 이미지

아래와 같이 LCM-LoRA 모델을 사용했다. OpenVINO 로 사용해도 속도는 크게 달라지지 않았다. OpenVINO를 사용해 성능을 향상시키려면 최신 CPU가 필요한것 같기도 하다. 예를 들어 AVX-VNNI 를 지원하는 CPU 말이다. (OpenVINO 는 AVX2 를 지원하는 CPU 에서 사용할 수 있다)

사용자 삽입 이미지


----

Stable Diffusion - LCM(Latent Consistency Model)
FastSD CPU
글쓴시간
분류 기술,IT/하드웨어 정보
Intel® Core™ i7-7700K 발열

Stable Diffusion 에서 성능을 강화한 모델을 CPU 로 돌려보았다. CPU만으로 생성한건 Stable Diffusion - FastSD CPU 을 읽어보자.

사용자 삽입 이미지

CPU 사양은 i7-7700K 인데, 결론은 계속 못 돌릴것 같다. 발열이 너무 심하다. TDP 91W 라는 수치가 믿기지 않을 정도의 발열이다. 80°C 넘는건 기본(80°C 는 CPU 의 1차 발열 제한 수치다) 이고 100°C 에 육박한다. 스로틀링 걸린거 같은데 7700K 가 망가질까봐 더이상 돌려보지 않았다.

※ i7-7700K 의 열 사양

- TDP: 91W
- Thermal Solution: PCG 2015D (130W)
- T JUNCTION: 100°C

105°C 넘어가면 아예 CPU 가 종료(시스템 종료)되는걸로 알려져있다.

Stable Diffusion 을 돌린거라 코어 4개가 모두 사용중이고 아마 AVX, AVX2 를 사용할걸로 생각한다. 원래 AVX 를 사용하면 발열이 심해지기 때문에 어느정도는 있을거라 생각했지만, 이정도일줄은 몰랐다. 이건 그냥 못 쓰는 거다. 게다가 수냉이기 때문에 코어 히트싱크 부근에 물이 끓어 순간적으로 기포 생길까봐 무서워서 못하겠다. (염려된다는거지 실질적인 문제가 있다는건 아니다)

- 차라리 GT 1030 이라도 쓰는게 좋아 보인다. 이건 발열이라도 없으니 말이다. 에혀. 인텔의 삽질을 내가 느낄줄이야. 나중에 AMD 로도 해봐야 겠다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
FLUX.1 Dev - 이미지 생성형 AI

사용자 삽입 이미지

Stability AI 의 Stable Diffusion 3 (SD3) 가 주춤한 사이 FLUX.1 이 공개되었습니다. 8월 1일에 공개되었는데 이제 주목하게 되었네요. Stable Diffusion 시리즈를 만든 개발자 중 일부가 나와 Black Forest Labs 라는 회사를 차렸는데, 이 회사의 첫번째 생성형 AI입니다. 독일 회사입니다.

FLUX.1 의 성능이 매우 좋다고 해서 관심을 많이 가지고 있습니다. 전 아직 안 써 봤습니다만, SD3 보다는 좋아보입니다. SD3 는 라이선스에 이슈가 있어서 아직까지는 대중화 될지 안될지 모릅니다. FLUX.1 의 경우 특히 "손"도 잘 그리는것으로 알고 있습니다. 엄청난 성능에 SD3 로는 대응이 안되어서 Stability AI 에서는 SD 3.1 을 내놓을 예정이라 합니다.

현재 SD 는 개발사에서 제공한 모델이 주류가 아닙니다. SD1.5 의 경우 개발사에서 제공한 모델보다는, 수많은 사용자들이 만든 모델들을 사용하고 있고요, Dreamshaper 8 정도가 유명합니다. 저도 제가 병합한걸 쓰고 있습니다. SDXL 의 경우 개발사에서 제공한 모델 보다는, 사용자들이 학습시킨 Pony Diffusion 이나 Animagine XL, JuggernautXL v9 기반의 모델이 더 널리 쓰이고 있죠. 심지어 Novel AI 3 도 SDXL 기반으로 알려져 있고 꽤 성능이 좋죠. 이후에 나온 SD3 나 FLUX.1 도 마찬가지일거라 생각합니다. 사용자들이 학습시키려면 라이선스가 중요한데 일단 SD3 는 사용하기 어렵겠네요. 약 6개월 정도 후면 사용자들이 학습시킨 모델이 나올텐데 이떄쯤에 판가름 되겠죠.

FLUX.1 은 Pro, Dev, Schnell 의 3가지로 제공되는데 Pro 는 유료고, 공개된 건 Dev 와 Schnell 입니다. 120억개 파라메터를 가지고 있습니다. "Schnell"은 4스텝 고속 추론 모델이라 성능이 더 좋은 "Dev" 모델이 주가 될겁니다. 약어로 "FLUX.1 D"라고 부르네요. 아직 Stable Diffusion WebUI (SDUI) 에서는 지원이 안되고, Stable Diffusion WebUI Forge (SDF) 에서 지원된다고 하네요. SDF 는 예전에 VRAM 이 낮은 기기에서도 느리지만 이미지 생성이 되어서 한때 잘 썼었는데요, 다시 보니깐 반갑네요. (물론 같은 파라메터를 주어도 SDUI 와 유사한 이미지를 만들지 않습니다. 내부 알고리즘이 호환이 안되는거라서요)

FLUX 라는건 "선속"이라는 의미입니다. 특정 공간에서의 어떤 물리량의 "흐름"을 의미합니다. 주변에서 흔히 볼 수 있는 FLUX 라는 용어는 광선속을 이야기할때 주로 사용합니다. 광선속의 단위가 루멘, 칸델라, 럭스이고, 조명 기구의 밝기를 나타냅니다. 단위 면적당 광자의 흐름을 나타내죠.

Black Forest Labs
GitHub - black-forest-labs/flux: Official inference repo for FLUX.1 models

----

FLUX.1 Dev 사용하기
글쓴시간
분류 기술,IT
싱크클로즈(Sinkclose) 보안 취약점


사용자 삽입 이미지

싱크클로즈 취약점은 AMD CPU 에서 발견된 취약점으로, ring 0 모드 (커널 모드)에서 SMM (System Management Mode) 락이 활성화되어있어도 SMM 설정을 변경할 수 있는 취약점이라고 합니다. SMM 설정의 변경은 주로 AGESA 설정을 변경 (버전 변경) 할 때 사용합니다.

게스트 메모리 취약점, SMM 락 바이패스 취약점이라고도 합니다. IOActive 라는 보안 업체에서 발견했고, Sinkclose 라는 이름을 붙였습니다.

현재 패치가 나와있는 상태입니다. 바이오스를 패치해야하며,

Ryzen 3000 번대: AGESA 1.2.0.cc
Ryzen 4000 번대: AGESA 1.2.0.cb
Ryzen 5000 번대: AGESA 1.2.0.cb
Ryzen 7000 번대: AGESA 1.2.0.1
Ryzen 8000 번대: AGESA 1.2.0.1

으로 업데이트 하면 됩니다.

제가 사용하는 마더보드는 바이오스가 아직 안 나왔네요.

----

https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7014.html
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 레인보우와 드레스

CivitAI 에서 비슷한 그림을 보고 내 식대로 따라 만들었다. 역시 이미지는 영감을 잘 받아야 좋은 이미지가 나온다. 역시 사진은 빛을 어떻게 담느냐고 AI 에서도 마찬가지다. 빛을 어떻게 표현하느냐가 관건이다.

LoRA 를 괘 많이 사용해서인지 얼굴 표현하는것도 잘 안되었다. 결국 ADetailer 를 사용했다.

날갯짓 하는 포즈도 여러개 나오긴 했는데 전부 손가락 표현이 이상해서 모두 삭제. 에혀.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지


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

메이크업은 좋은데 눈매가 내가 원하는 눈매는 아니다. 뭔가 깊은 생각에 잠겨있는듯한 눈매가 좋아서 말이다.우수(憂愁, 근심 걱정)에 젖은 눈매가 나오긴 하는데 그건 좋아하진 않는다.

이건 메이크업 한 눈매다. 어쨋뜬 맘에 드는 12장 추려 올렸다.

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지