본문 바로가기

AI 정보

[AI] 3. WebUI Lora 사용

인공지능 모델이 입력 데이터와 해당하는 정답(label) 데이터를 함께 학습하여, 새로운 입력 데이터에 대해 정확한 출력 결과를 예측할 수 있도록 하는 방법입니다. 이 방법을 그림 학습에 적용하면, "Lora"에 대한 이미지 데이터셋과 해당 이미지가 "Lora"임을 나타내는 라벨 데이터셋을 사용하여 모델을 학습시킬 수 있습니다. (라고 GPT가 말함...)

 

오른쪽에 화투패를 눌러보자!

Lora 부분을 누르면 폴더에 넣은 로라들이보인다. 

로라를 다운받아서 .\stable-diffusion-webui\models\Lora\ 이폴더에 넣으면된다.

(그림과 같이 넣으면 자동으로 썸네일로 사용 또는 추출한 그림을 바로 적용도 가능하다.)

폴더로 구분이 가능하니까 정리를 잘하면 그만큼 편하게 쓸 수 있다.

 

사용법은 로라를 클릭하면  프롬프트에 <lora:BetterRamenEating:1> 요런식으로 나온다.

뒤에 1은 가중치다. 낮을수록 영향력이 덜하고 강할수록 강해진다.

 

라멘을 먹는 가장 쉬운 방법은 

면을 들고 먹거나...

공중 부양해서 먹는게 가장 좋다!

 

그래도 따라하기엔 인간적으로 불가능할 것 같으니 교정을 위해 로라를 써보자!

<lora:BetterRamenEating:1>

 

투핸드 촙스틱을 사용하지만 그래도 노력이 가상하다.

아래로 내리면 Script에서 XYZ플룻을 선택해서 가중치 변화에 따라 확인할 수 있다.

사용법은 프롬프트에 로라 0.1로 가중치를 설정하고 XYZ에 Prompt S/R선택 추출하고 싶은 값을

콤마 단위로 작성하면 프롬프트에서 0.1을 찾아 순서대로 추출하게된다.(꼭 0.1일 필요없음.)

 

대충먹다가 재대로 먹을까 싶다가 포기하는 모습을 볼 수 있다. 0.5쯤이 가장 이상적인듯하다...

행동은 로라로 다 커버하기엔 무리가 있다. 캐릭터의 행동을 고정시켜주는 컨트롤넷을 사용하면 쉽게 해결가능하다.

하지만 컨트롤넷 사용법은 나중에 알아보도록하자...

 

그럼 Lora Block Weight로 적당한 값을 알아보자.

프롬프트에 0.5가중치 옆에 XYZ를 넣는다.

그리고 로라 블록 웨이트에 XYZ플롯을 켜고 X Y에 기본값으로 설정한다.

 

가중치를 한장씩 시험하고 싶다면 프롬프트에 직접  

<lora:"lora name":1:0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0> 요딴식으로 넣어도 된다.

<lora:"lora name":1:IN04> 요렇게 간추려 넣어도된다.

 

17 or 26개의 가중치가 존재한다.(BASE,IN00,IN01,IN02,IN03,IN04,IN05,IN06,IN07,IN08,IN09,IN10,IN11,M00,OUT00,OUT01,OUT02,OUT03,OUT04,OUT05,OUT06,OUT07,OUT08,OUT09,OUT10,OUT11)

 

기본 세팅이 NONE,ALL,INS,IND,INALL,MIDD,OUTD,OUTS,OUTALL,ALL0.5 라서 요것만 해보자.

그래도 잘 처먹(?)는 여친꼴이 안나온다. 꼭 컨트롤넷을 활용하도록 하자!!

(ALL , MIDD가 그나마 괜찮으니 그쪽 가중치를 유심히 연구해보면 될것도 같다...)

 

로라는 중복 사용도 가능하다.

<lora:BetterRamenEating:0.5>,  <lora:Suzumiya Haruhi Series:1>

스즈미아 하루히 로라를 넣으면 하루히가 나와서 라면을 먹그방그 해준다.

 

로라는 학습하기도 쉬워서 쉽게 내 캐릭터를 AI로 만들어내도록 할 수 있다.

학습방법은 길어지니까 다음에 다루기로 하자...