우선 삽질한 것을 참조: 
" LORA 학습을 위한 KOHYA가 업데이트 되면서 특정 블록만을 지정해서 학습시킬 수 있다고 하는 데, HOXY 해보신 분?"

https://arca.live/b/hypernetworks/73364964?mode=best

이 사진들이 그림을 그릴 때 로라를 블록으로 적용한 것이 아니라,  로라를 만들 때 학습되는 블록을 조정하여 만든 로라를 그대로 쓴 거야.

만들어서 필요한 부분/특징만 골라 쓰느냐, 만들 때 필요한 부분/특징만 골라서 만드냐의 차이지.


KOHYA가 업데이트 되면서 2가지 학습 강화 방법을 제공했어
1. 블록으로 콕 집어서 학습시켜라.
2. 그림의 캡션을 사용하면 가중치를 써서 학습시켜라. - 그림 그릴 때 프롬 가중치와 똑같이 학습할 때도 가중치를 주면서 학습시키는 것 가능. 레알로.


2번 좋더라. 이것 써. 
캡션 내용 주에 (face:2.0)이렇게 하면 얼굴을 더 집중해서 파서 로라를 만들어 줘. 정확히는 가중치를 준 것을 먼저 학습하는 효과도 있어.
근데 진짜 만약에 1번을 꼭 써야 한다면 고난과 고생의 시작이야. 아직 답도 없어. 노가다로 시간을 소비해야 조금씩 효과를 볼 수 있어.
샤프한 핀포인트 학습도 안되서 뭔가 두리뭉실해.
'난 얼굴만 필요해. 딴 거 1도 필요없어.' 응 그래서 2번 써볼꺼야 하는 마음은 버려,  아직 안돼.


진짜 꼭 2번을 쓸래?후회 당첨인데?
우선 맛보기만 보여줄께.

0,1,2,3,4 번 파라미터를 사용해서 로라를 만들면서 생성한 샘플이야,
(2번이 정상적인 파라미터가 아닌데..느무느무 마음에 들어, 얻어걸렸어. 개고생의 부산물이야 - 아래 그림을 보면 알아)

이렇게 만든 로라를 가지고 그래로 그린 그림이야

프롬은:professional photo of a 25yo woman, cowboy-shot, professional photography,(masterpiece,best quality:1.3),DSLR RAW filmgrain photo,edited in Adobe Lightroom,highres,HQ,intrinsic detail,focused,insane quality rendering,cinematic lighting,raytracing,depth of field, pear propotional curvy body, cleavage, clean and glowing human skin,chestnut long pixie ,eye shadow,v-shaped earrings,<lora:hanmon_0:0.9> hanmon

모델은 LOFIv2, fantasticmixReal_v30

여러가지를 테스트하다보니 규칙을 지키지 못한 점이 있어. 미얀! (나중에 다른 그림으로 교체할께)

근데 이런 것도 테스트의 결과라서 그냥 올렸어, 옷,몸,얼굴,배경...


로라의 블록을 골라서 그림에 넣은 것이 아니라, 통으로 넣은 거야.
근데 다르지?

로라 파일 사이즈는 아주 작아. 5메가 - 10메가인데 파라미터 조정으로 만들어지는 블록갯수가 달라서 파일사이즈가 다 달라.
(아마도 이런 자유도? 유연성? 최적화? 같은 것이 로라 블록 학습의 매력이고, 언어모델이나 다른 쪽에서 로라를 가지고 열심히 뭔가 하는 이유일지도 몰라)


20대와 중년까지 로라가 잘 먹혀. 블록학습을 가장 잘 보여주는 예로, 4번은 원래 모델의 얼굴 형상과 머리카락을 최대한 보존되고 여기에 새로운 특징을 스까넣은 것처럼 보여.  백인 베이스 믹스라고 할까?

이것이 가장 깊고 상위개념을 담당하는 MID00 블록의 영향이야. 

학습할 때 3번 모델과  다 똑같은 조건이고 딱 하나 MID블록의 Unet을 만들 지 않은 것이 4번 로라이거든 

이 차이는 정말 커. 나중에 자세히 말해 줄께, 아주 긴 이야기라서...


이제 작업의 내용이다.

뭔가 인물에 집중한 로라를 만들고 싶으며 그냥 써도 돼. 얼빠는 2번 추천 (원래 모델 몸은 유지)! 두리뭉실 병합은 3번 추천 (의뢰로 좋아)! 오리지날 얼굴의 형상은 그대로 남기고 새얼굴의 텍스쳐만 이식하고 싶으면 4번

로라의 타입은 스탠다드이고 다섯개의 파라미터를 조정해야 해. 

저 앞의 글이나 모델, 로라 블록머지 등등에 대해 관심없으면 이 글은 더 이상 의미없어. 저리 가!


파라미터 값

No.

이게 뭐냐

down LR weight

(INS00-12)

mid LR weight

MID00

up LR weight

(OUT00-12)

block dim

Network Rank (dim)을 8로 한 경우

block alpha
 Network Alpha를 8로 한 경우

0

일반적 학습 

1,1,1,1,1,1,1,1,1,1,1,1

1

1,1,1,1,1,1,1,1,1,1,1,1

8,8,8,8,8,8,8,8,8,8,8,8,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

8,8,8,8,8,8,8,8,8,8,8,8,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

1

OUT구역 블록만 생성하는 방법

0,0,0,0,0,0,0,0,0,0,0,0 

1

1,1,1,1,1,1,1,1,1,1,1,1

8,8,8,8,8,8,8,8,8,8,8,8,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

8,8,8,8,8,8,8,8,8,8,8,8,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

2

1번+ 가중치 조절 +  DIM , 알파 값 일괄조정

0,0,0,0,0,0,0,0,0,0,0,0 

1

cosine

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,8,8,8,8,8,8,8,8,8,8

3

2번+  알파 값도 부드럽게 조절

0,0,0,0,0,0,0,0,0,0,0,0

1

cosine

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,7,6,5,4,3,2,2,1,1,0

 

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,7,6,5,4,3,2,2,1,1,0

 

4

3번과 동일한데 MID만 0

0,0,0,0,0,0,0,0,0,0,0,0

0

cosine

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,7,6,5,4,3,2,2,1,1,0

 

0,0,0,0,0,0,0,0,0,0,0,0,
 8,
 8,8,7,6,5,4,3,2,2,1,1,0

 



요약하면 통역사(text인코더)의 역할도 조절하고, 화가(UNET)의 역할도 조절해서 뭔가 학습시켜 보자는 거야. 미친거지.