일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 우분투
- 뉴럴링크
- 딥러닝
- 인공지능
- 트랜스포머
- 오픈AI
- 가상환경
- AI
- 확산 모델
- AI 기술
- 오블완
- TRANSFORMER
- 휴머노이드 로봇
- 서보모터
- OpenAI
- ubuntu
- 시간적 일관성
- tts
- 생성형 AI
- ChatGPT
- PYTHON
- 아두이노
- ControlNet
- 딥마인드
- 메타
- 티스토리챌린지
- 멀티모달
- 일론 머스크
- LORA
- LLM
- Today
- Total
AI 탐구노트
Flux.1 설치 및 테스트 본문
이미지 생성 모델하면 떠 오르는 것들이 있을 겁니다. 최근에는 워낙 많이 생겨서 다 나열하기 힘들지만 그래도 떠오르는 이름 말입니다. Stable Diffusion, DALL-E, MidJourney, Flux.1 등등... 그 가운데 하나가 Black Forest Labs에서 공개한 Flux.1 입니다. MidJourney의 아성에 도전하듯 혜성같이 나타났다고 해도 과언이 아니죠. 사실 Flux.1을 개발한 연구진은 예전 Stable Diffusion을 개발했던 연구자들이기도 합니다. 그 연구자들이 나와서 만든 회사가 The Forest labs거든요.
Flux.1의 경우, 3가지 버전 가운데 Schnell (가장 경량)은 Apache 2.0 라이선스로 상용으로 활용할 수도 있습니다. 그 위의 Dev 버전 또한 오픈소스로 공개되어 상용만 아니면 개인이나 연구자들은 원없이 사용해 볼 수 있습니다. 버전 별 비교는 이곳을 참조하시면 됩니다.
어느 정도 품질로 나오느냐... 일단 공식 계정의 데모 사이트에서 간단하게 포도 이미지를 한번 생성해 봅니다.
어떤 버전을 테스트 해 볼까?
우선 어떤 버전을 로컬에 설치할 지를 결정해야 합니다. 개인적인 필요에 따라 혹은 생성된 이미지를 활용한 컨텐츠를 만들기 위해서는 Schnell을 사용하면 될 것 같습니다. 뭐 아주 뛰어난 퀄리티를 필요로 하는 건 아니니까요...
그리고, 어떤 방식으로 설치할 지도 결정해야겠네요. 공식 github인 Black Forest Lab 쪽에서는 제대로 된 하드웨어 시스템 요구사항에 대한 소개가 없습니다. FP16 기반으로 되어 있는 것 같고 그 경우, 아주 큰 VRAM이 있는 환경이 필요할 것 같긴 합니다. 게다가 패키지 설치만 한다고 바로 사용할 수 있는 것은 아니므로 이왕이면 UI 도구도 함께 설치하면 좋겠다 싶습니다.
그래서, 제 선택은 ComfyUI를 설치하고 거기서 Flux.1 Schnell을 설정해서 사용하는 것으로 정했습니다. ComfyUI 쪽에서 FP8로 경량화해서 올려둔 버전이 있었고 제 컴에 있는 GPU에서 돌아갈 수도 있겠다 싶었거든요. 게다가 설명을 보면 Clip, VAE가 함께 들어 있어서 이 모델 가중치 하나면 된다고 하는 것도 장점 같았습니다.
사실 UI 제공만 고려한다면 좀 더 간단한 사용법의 Stable Diffusion WebUI Forge를 이용할 수도 있습니다. 거기서 모델을 SD가 아닌 flux로 선택하고 진행하면 되니까요. 하지만, 저는 좀 많이 돌아가는 길을 택했습니다. 나중에 돌아보니 그렇더군요... -_-;
테스트 환경 구성을 해 봅니다.
1.ComfyUI 설치
우선 ComfyUI를 설치하겠습니다.
# conda 환경 생성
$ conda create -n flux python=3.10
# pytorch 설치 (cuda 12.4 환경)
$ pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
# comfyUI 다운받기
$ git clone https://github.com/comfyanonymous/ComfyUI
$ cd ComfyUI
# 필요 패키지 설치
$ pip install -r requirements.txt
2.ComfyUI manager 설치
ComfyUI 툴을 사용해 모델을 다운받고 하는 작업을 수동으로 하지 않고 UI 툴을 통해 하는 것이 좋습니다. 이를 지원하는 것으로 ComfyUI Manger가 있으며 이를 설치합니다. 아래 명령문을 보면 아시겠지만 ComfyUI 클론한 것에서 custom_nodes로 추가하게 됩니다.
$ cd /home/sol/git/ComfyUI/custom_nodes
$ git clone https://github.com/ltdrdata/ComfyUI-Manager.git
3.ComfyUI 동작 확인
설치가 완료됐으니 실행해 봅니다.
$ python main.py
... <중략> ...
Starting server
To see the GUI go to: http://127.0.0.1:8188
브라우저에서 열어 봅니다. ComfyUI 화면이 멋드러지게 나옵니다. 우와... 이렇게 간단하게 사용할 수 있다니... 했지만 사실 이제부터 필요한 파일들을 채워 넣어야 합니다.
3.모델 다운로드
이제 테스트 할 모델과 이를 구동하기 위해 기본적으로 파일과 모델들(CLIP, VAE 등)을 다운로드 합니다. 한가지 팁을 드리면,
SSD와 HDD를 함께 사용하는 분들이 계실텐데 아래 모델 파일 다운로드는 가능하면 SSD에 하시기 바랍니다. 사이즈가 커서 SSD 용량 아낀다고 HDD를 이용했더니 저장, 로딩 속도가 너무 느립니다. -_-; 테스트 하는 동안만이라도 SSD로 해 두고 나중에 저장은 HDD를 쓰더라도 그게 낫지 않을까 싶네요.
필요한 모델 관리는 앞서 설치한 ComfyUI Manager를 통해 하겠습니다. HuggingFace-cli 를 이용해서 개별 파일을 다운로드할 수도 있지만 아무래도 편한 건 Manager 도구이니까요.
Flux.1 용 Controlnet
Flux.1 Dev용이라고 되어 있던데... Schnell을 위해서도 필요한지는 모르겠습니다. 제 경우엔 당장은 기본 모델만 사용할 것이라 필요치 않구요.
어찌됐건 필요하다 싶으면 아래 ControlNet 가중치들을 ComfyUI/models/controlnet 폴더에 각각 다운받습니다. (저는 스킵)
테스트 진행
1.ComfyUI 실행
이제 준비가 되었으니 ComfyUI를 실행해 봅니다.
$ python main.py
2.Flux.1 Schnell workflow 다운로드 및 로딩
ComfyUI Examples 사이트에는 수많은 모델들을 위한 workflow 파일이 공유되어 있는데 그 가운데 Flux.1에 대한 것도 있습니다.
ComfyUI의 workflow는 json 파일, 혹은 특이하게도 이미지 파일로 제공될 수도 있습니다.
위 링크에서 FP8 용 Flux Schnell의 아래 부분 이미지 파일을 로컬에 저장합니다.
그리고는 아래 그림과 같이 ComfyUI 의 Manager 툴에서 저장한 파일을 불러옵니다. 불러오면 아래와 같이 workflow가 적용되어 나타납니다.
3.Flux.1 Schnell workflow 다운로드 및 로딩
한글로 pormpt를 주니 엉뚱한 것을 만들어 내더군요. 그래서, 단순하게 grape로 넣어서 포도 이미지를 하나 만들어 봤습니다.
Flux.1 Schnell과 VAE 등 몇가지가 올라가니 대략 17~18GB 정도의 VRAM을 사용하는 것 같습니다. 이미지 하나를 생성하는데 걸리는 시간도 3090에서 약 5초 가량 걸리는 것 같습니다.
추가사항
Flux.1 Schnell의 FP8 버전을 사용하더라도 많은 GPU VRAM이 필요했습니다. 게다가 이미지 생성 속도가 예상보다 느려서 다른 모델(SDXL Turbo)로 바꿔야 하나 하는 생각도 했습니다. 그래서, 일단은 SDXL Turbo의 workflow도 한번 적용해 봤습니다. 오호... 역시 생성 속도 하나는 끝내주는군요. ^^
ComfyUI 설정을 위해 참고한 자료입니다.
ComfyUI는 제대로 써먹으려면 세부적으로 설정할 수 있는 것들이 많아서 공부를 좀 많이 해야할 것 같았습니다.
다음에 시간이 되면... -_-;
'DIY 테스트' 카테고리의 다른 글
AudioCraft를 이용한 효과음 만들어 보기 (5) | 2024.10.09 |
---|---|
나만의 썸네일 메이커 만들기 - 1편 (6) | 2024.10.09 |
복수의 인원이 포함된 영상에서의 안면 비식별화 (0) | 2024.10.04 |
퀴즈 : 국기보고 나라 이름 맞추기 게임 만들기 (9) | 2024.10.02 |
아두이노 : 조이스틱으로 서보모터 조종하기 - 2편 (2) | 2024.09.30 |