기본 콘텐츠로 건너뛰기

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 Controlnet 적용 방법 - Comfyui 에서 사용

Flux에서도 이제 Controlnet 기능을 사용할 수있다. Comfyui 에서 Stable Diffusion 과 같은 방식으로 사용 할 수 있는  controlnet 모델들이 출시 되었다. 1. Controlnet 이란 ?      ControlNet은 Stable Diffusion 과 같은 이미지 생성 모델에서 조건부 입력 을 추가하여 결과 이미지를 더 세밀하게 제어할 수 있게 한다. 예를 들어, 포즈 , 스케치 , 엣지 지도(edge map) 등을 입력으로 받아 생성된 이미지를 밑그림으로 이미지에 반영할 수 있다.  2. Flux용 Controlnet 모델     Stable Diffusion 용 Controlnet 모델들은 Canny, Depth, Hed, Scribble, Open Pose, Sketch 등 여러가지 모델들이 있는데 Flux 용 모델들은 그 중에서 Canny, Depth, Hed 3가지 종류의 모델들만 출시되었다. 각각의 적용하는 대상은 어떤 이미지를 생성 하는가에 따라 적합한 것을 사용하면 되는데 3가지 모델들이 서로 다른 듯 비슷한 기능들이 섞여 있어서 많은 시행을 해 본 후 더 적합한 모델들을 사용하기를 권한다. 3. Controlnet 적용 기본     Controlnet 의 적용은 먼저 원본 이미지가 필요하고 그것을 Controlnet 모델들이 인식할 수 있도록 바꾸어 주는 전처리기를 통과한 후 Controlnet 모델들을 선택하여 이  이미지를 적용하여 Sampler에 입력한다. 이를 간단하게 workflow 를 구성하면 다음과 같다. 기본 Controlnet Workflow 전처리기는 Controlnet 모델별로 각각 다른 전처리기를 사용하기 때문에 항상 모델에 맞는 전처리기를 사용하여야 올바른 이미지를 얻을 수 있다. 4. Controlnet 모델 과 필수Nod 다운로드 및 설치     다운로드는 huggingf...

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 설치파일을 실행하여 설치 설치과정은 복...