기본 콘텐츠로 건너뛰기

LoRA 의 뜻과 사용법 - comfyui 에서 사용법

 LoRA(Low-Rank Adaptation)는 딥러닝 모델의 학습을 최적화하고 경량화하는 기술로, 주로 Stable Diffusion과 같은 대형 모델을 커스터마이징할 때 사용된다.

    스테이블디퓨전의 checkpoint 는 보통 6G 이상이고,  Flux1-dev 모델은 22G 정도 되는 대형 모델들이다.  이런 대형 모델들을 사용하면서 자신이 원하는 이미지를 만드는데 부족한 부분을 느낄 수있고 checkpoint 전체를 재 training 시키기 보다는 적은 용량으로 모델을 훈련시켜 보완적인 모델로 사용한다.  그런 소형 모델들을 Lora 라고 하며 checkpoint에 연결하여 사용한다.

LoRA의 특징

  1. 경량화된 학습: LoRA는 기존 대형 모델의 전체 파라미터를 모두 조정하지 않고, 특정 부분의 더 적은 파라미터만 조정한다. 이는 GPU 메모리를 적게 사용하게 만들어 학습 속도를 크게 높여준다.

  2. 빠른 Fine-tuning: LoRA는 대형 모델을 처음부터 다시 학습할 필요 없이, 기존 모델의 특정 요소를 개선하거나 변형할 때 유용하다.  특정 스타일의 이미지로 학습시키려면 LoRA를 사용하여 빠르게 그 스타일에 적합한 모델을 만들어 스타일을 적용 할 수 있다.

  3. 유연성하다: LoRA는 원본 모델(checkpoint)을 손상시키지 않으면서도, 다양한 특성이나 새로운 스타일을 학습시킬 수 있기 때문에 매우 유연하다. 원본 모델과 LoRA 모델을 결합하여 사용하며, 기존 학습된 데이터를 기반으로 모델의 특성을 손쉽게 변경할 수 있다.  특히 특정 인물이나 특정 style 등을 훈련시켜 많이 사용한다.

LoRA 사용법 (comfyui)

    automatic1111 에서도 물론 LoRA를 사용 할 수 있지만  이 글에서는 comfyui 에서의 LoRA 적용법을 설명한다.

  1. LoRA 모델 다운로드 : LoRA 모델들을 다운로드 할 수 있는 사이트는 주로 CIVITAI , Tensor art,  shakker ai 등에서 다운 받을 수 있다.  
  2. LoRA 모델설치 :  D:\ComfyUI_windows_portable\ComfyUI\models\loras 에 다운받은 파일을 옮겨 넣는다.
  3. Comfyui 를 실행시킨다.
  4. LoRA 노드 연결 : workflow 에서 Load checkpoint 노드와 CLIP Text Encode 노드사이에 Load LoRA 노드를 삽입하여 연결한 후 LoRA 모델을 선택하고 이미지를 생성한다.
(LoRA 모델을 사용할 때는 반드시 Trigger Words 을 prompt 에 입력해 줘야 LoRA 모델이 작동하여 원하는 이미지를 만들 수 있다.

LoRA가 적용된 workflow

LoRA (Double Exposure ) 를 civitai 에서 다운받아 적용하였다.  LoRA 가 없을때는 double exposure 이미지를 만들기가 어려운데 LoRA를 적용하면 쉽게 만들어 진다.
 
Double Exposure Image
double exposure 사진
LoRA 모델이 없다면 이런 사진을 만들기가 쉽지 않은 일인데 LoRA 모델을 사용하면 아주 쉽게 만들어 진다.
 

LoRA 훈련 시키는 방법

    LoRA 훈련을 개인용 컴퓨터에서 시키기 위해서는 고 사양이 필요하고 많은 시간이 소모된다.  그래서 가급적 LoRA 모델을 훈련 시켜주는 online 사이트를 이용하여 만드는것을 권장한다.   
  • replicate.com
  • fal.ai
  • tost.ai
  • civitai
  • tensor.art
등 이 밖에도 여러 군데가 있는데 대부분 유료로 만들어야 한다.

LoRA 훈련 실습

내가 훈련 시켰던 replicate.com 에서 훈련을 시켜 보겠다.
  1. 먼저 훈련 시킬 이미지가 준비되어 있어야 한다. 최소 10장에서 이미지가 많을 수록 좋지만 시간이 많이 소모되고 비용도 많이 들기 때문에 보통 20장 정도 준비하는 것이 좋다.
  2. 20장의 사진을 zip 파일로 압축한다.
  3.  replicate.com 접속 - "lora trainer" 로 검색
  4. 개인적으로 ostris/flux-dev-lora-trainer 를 선택하였다.
  5. Destination 에 출력파일명, input image 에 20장 압축파일 업로드, trigger_word 입력, autocaption_prefix 를 입력한 후 생성을 시켰다.  대략 시간이 20~30분정도 소요되고 여기에서는 소요되는 시간에 따라 훈련시키는 비용을 지불한다. 

Lora 훈련 입력내용
lora 훈련


모든 훈련이 끝난 후 다운 받아서 lora 설치 폴더에 옮긴 후 사용하면 된다.

LoRA 는 기본 모델인 checkpoint 의 부족한 부분이나 추가 보완을 위하여 적은 용량으로 쉽게 훈련을 시켜 적용하는 이미지 모델이다.  로컬에서의 훈련은 어렵지만 약간의 비용을 들여 온라인 상에서 나만의 LoRA 를 훈련 시켜 사용하면 독보적인 나만의 이미지를 얻을 수 있다.






댓글

이 블로그의 인기 게시물

Comfyui Wildcard 사용법 - Stable Diffusion , Flux 에서 쉽게 Random Prompt 로 이미지 만들기

 Comfyui Wildcard 사용법에 대하여 알아본다. Comfyui 로 Stable Diffusion 또는 Flux 로 이미지를 만들 때 Prompt 가 이미지를 결정하는데 매우 중요한 역할을 한다.  영어가 모국어가 아닌 이상 영어로 prompt 를 만드는 것이 참 어려운 일이다. 물론 처음에는 많은 다른 사람들이 사용한 prompt 들을 모방하여 수정하고 사용하는데 이런 일을 하나하나 해 보기가 시간이 많이 걸리고 어렵다.   그래서 Random 으로 prompt 가 만들어 져서 이미지가 생성되고 그 이미지 중에서 마음에 드는 이미지들을 골라 그 이미지의 Prompt들 만을 가지고 보완하고 개선하면 더 편리하고 좋지 않을까 생각이 든다.  그런 식의 Random Prompt 생성이 가능하게 해주는 것이 wildcard 사용이다. Joker는 card game에서 wildcard 이다. 1. Wildcard 의 의미      와일드 카드(Wildcard)란 카드 게임에서 유래되었다.  이런 카드 게임에서 모든 카드의 대용으로 쓸 수 있는 비장의 카드를 와일드 카드라고 한다. 포커나 훌라를 할 때 조커가 이런 역할을 하는데 ,  이 의미가 컴퓨터와 스포츠로 확장되어 사용되는 것이다. 컴퓨터 용어로 쓰일 때는 한 디렉터리 내에 여러 파일이 존재하거나, 파일 이름의 뒷부분을 정확히 알지 못하는 경우에도 사용할 수 있는 명령어를 말합니다. '*'을 넣으면 빠진 것에 어떤 문자열이 있든지 대신할 수 있고,  '?'는 임의의 한 문자에만  대응한다. Comfyui 에서 wildcard 사용은 "--문자열--"  이런 식으로 wildcard 사용 가능한 노드에 prompt 를 입력해 주면 그 노드는 "문자열" 에  해당되는 파일을 찾아 그 파일 내용 중에서 임의의 일부분을 prompt 로 대체해 준다. 2. Wildcard 사...

Flux Lora 제작 - Local 에서 Fluxgym 을 이용하여 자체 Lora 만들기

 Flux Lora 는 일관된 이미지를 만드는데 꼭 필요하다. 특히 일관된 얼굴의 이미지를 만드는데 있어서 다른 기능들 (ipadapter , controlnet, imgtoimg 등) 을 이용하는 것 보다 훨씬 일정한 캐릭터를 생성하게 해준다.  문제는 이런 Lora는 주로 CIVITAI , Tensor, Hugging face 등 사이트에서 다운 받아 사용하면 되지만  그것은 나만의 독특한 캐릭터가 아니고 나의 취향과 일치 되기가 어려워서 Lora를 구하기가 어렵다.  아니면 그런 사이트 내에서 자체 Lora를 제작하면 되는데 모두 비용이 필요하다. 여기 소개하는 Fluxgym AI 는 Local 컴퓨터에서 VRAM 12G 이상이면 자체 Lora를 만들 수 있게 해준다.   소요되는 시간도 생각보다 많이 걸리지 않는다.   이제 설치하고 자체 Lora를 한번 만들어 보자. Fluxgym 으로 만든 Lora 대표이미지 1. fluxgym 설치 pinokio 앱을 실행한다. ( pinokio 앱 설치 참조 ) 우측 상단 맨 처음 아이콘 (discover) 클릭 fluxgym 을 찾아서 클릭 fluxgym 이것을 클릭하면 된다. 여러가지 파일들을 설치하기 때문에 시간이 좀 소요될 것이다. 모든 설치가 끝나면 pinokio 브라우저 하단 부분에 fluxgym 메뉴가 추가된다. fluxgym 나중에 불필요하면 삭제(쓰레기통 아이콘 클릭) 하면 모두 unintall 된다. 2. fluxgym 실행 항상 pinokio 앱을 실행하여 pinokio 브라우저에서 fluxgym 을 클릭하면 된다. flux화면3-1 -. 1번항 : 여기에 입력한 대로 fluxgym/outputs/ 의 하위 폴더를 만들어 준다. -. 2번항 : Lora를 작동시키는 trigger word 를 입력한다. (예,  hart_style_a......) -. 3번항 : 자신의 가능한 VRAM 선택 : 나는 12 G 선택 ...

Pinokio 앱 설치 - 오픈 소스 AI 플랫폼

  Pinokio 는 오픈 소스 AI 플랫폼이다. 로컬에서 AI 애플리케이션을 쉽게 설치하고 실행할 수 있게 도와주는 오픈 소스 AI 플랫폼이다. 이 플랫폼은 사용자가 복잡한 설치 과정 없이 클릭 한 번으로 AI 도구들을 설치할 수 있도록 설계되어 있다. 이를 통해 기술적인 배경 지식이 없는 초보자나 비전문가들도 쉽게 AI 애플리케이션을 사용할 수 있다.   이미 설치되어 있는 애플리케이션이 있어도 별도의 독립된 공간에서 문제없이 사용할 수 있게 해준다.   우리가 stable diffusion 을 comfyui 에서 사용하기 위해서는 "Python", "git ....", "conda"  뭔지 모르지만 설치해야 하는데 pinokio 브라우저에서 원 클릭으로 알아서 설치를 해주기 때문에  컴맹인 일반인도 쉽게 설치하고 사용 할 수 있다. pinokio.computer 1. Pinokio 주요 기능 원클릭 설치 : 복잡한 환경 설정이나 명령어 입력 없이도 다양한 AI 모델을 한 번의 클릭으로 설치할 수 있다. 예를 들어, Comfyui 나 Flux 같은 AI 도구들을 손쉽게 설치할 수 있다. 다양한 AI 애플리케이션 제공 : Pinokio는 다양한 오픈 소스 AI 애플리케이션을 제공하는 허브 역할을 하며, Pinokio 브라우저 나 홈페이지에서 쉽게 찾아 설치할 수 있다. 브라우저 기반 인터페이스 : 모든 설치된 애플리케이션은 Pinokio 웹 브라우저에서 관리할 수 있어, 친숙한 인터페이스로 쉽게 사용이 가능하다. 독립적인 가상 컴퓨터 : Pinokio는 백엔드 작업을 자동으로 처리하여, 애플리케이션이 로컬에서 실행되는 동안 인터넷에 연결되어 있지 않아도 된다. 2. Pinokio 설치 구글에서 pinokio 를 검색하여 " pinokio.computer " 를 클릭 Download 클릭 다운로드 된 pinokio 압축 파일을  푼다. pinokio 설치파일을 실행하여 설치 설치과정은 복...