사실 완벽하게 어떤 기술에 대해서 이해하기는 쉽지 않음.

그 이해 자체가 꼭 필요한 것도 아니고.


다만 학습을 시키거나, 남이 학습한 파일을 사용한다면.

기본적인 이해를 나름대로 하고 넘어가야지, 본인 나름대로 기능을 다룰 때 선택을 할 수 있잖아?

혹은 이것들이 뭔지도 몰라서 안 건드리는 사람도 있을 거고.

그래서 나름대로 고민해본 결과.

이 학습들을 표현할 수 있는 단어들이 있다고 생각해서.

그에 빗대어서 설명을 하도록 할거임.


물론 어디까지나 빗대어 표현하는 것이라서, 원래와는 다른 부분이 존재할 수 있고.

가볍게 넘어가는 부분도 있겠지만.

사실 모든 사람이 그렇게 완벽하게 이해할 수는 없는 거니까.


즉, 이 게시물은 대강 이 기술에 대해 알고 있는 사람들이 재미로 읽거나.

혹은 아예 기술에 대해서 모르는 것이 대부분인 초짜들을 대상으로 하는 설명임.

당연히 무엇을 사용할지에 대한 고민에 대한 결정을 내릴 때는 도움이 되겠지만.

자세한 사용법 같은 것은 다른 강좌를 참고하는 것이 좋을거야.




0. AI모델과 뇌


현재 우리가 많이 시행하는 추가 학습은 크게 4가지로 분류되고 있어.


1. 임베딩(Inspect,inversion,드림아티스트 등)

2. 하이퍼 네트워크

3. 드림부스

4. lora(드림부스 기반)


이렇게 있는데.

사실 이렇게 고유한 명칭으로 본다고 해도, 뭐하는 행동인지 전혀 모르잖아?

그러니까 잠시만 더 앞으로 가보자.


일단 AI로 그림을 뽑던, 학습을 하던.

그 시작에는 AI모델(체크포인트)이 있겠지?

나는 이걸 AI그림을 그려내는 일종의 '뇌'라고 생각해.


인공지능이니까, 그다지 틀린 말은 아니지?

그럼 이 모델을 뇌라고 생각하면, 

그 뇌를 이용하는 학습 기술들도, 관련된 단어들로 표현할 수 있겠지?

나는 그래서  4가지의 학습을 각기 이렇게 생각하고 있어.


1. 전자책(임베딩)

2. 최면(하이퍼 네트워크)

3. 세뇌(드림부스)

4. 세뇌 임플란트(드림부스 기반 lora)


이것들은 전부 잘 알고 있는 단어들이지?

나는 오늘 각기 이 기술들을 저렇게 대응해서 설명을 해줄거야.

가장 적절하다고 생각하는 단어들을 찾아서 매칭시켰다고 생각해.

특징을 이해하기도 쉽고.



일단 하나씩 확인해보자.


1. 전자책(임베딩)

책이라는 건 뭘까?

우리가 모르는 것을 알게 해주는 일종의 강좌가 기록된 물건이지.

임베딩도 비슷하게 강좌의 역할을 한다고 보면 되는 물건이야.


AI가 그림을 그릴 때, 어떤 프롬포트(태그)를 사용하면.

그 내용이 그림에 반영되잖아?

그런데 만약에 AI가 어떤 프롬포트(태그)를 잘 모르면? 반영할 수 있어?

당연히 반영할 수 없지.


그리고 사람은 이럴 때, 책을 봐서 해결했어.

그런 것처럼 AI는 임베딩 파일을 보고, 어떤 단어에 대해서 이해할 수가 있어.

자기가 나름대로 아는 지식을 가지고, 그 지식을 기반으로 그 단어를 어떻게 만들지에 대해서 이해할 수 있게 해주는 거지.

그렇다면 이 전자책이 가지는 장점은 뭘까?


전자책은 알다시피 용량이 굉장히 적어.

마찬가지로 임베딩도 용량이 적지.

진짜 간단한 설명만 적혀 있는 건, 1kb안에 처리되기도 하고.

어지간한 것도 30kb 정도면 충분한데다.

정말 많아봐야 300kb 정도?

1mb를 넘는 일이 없지.

그래서 수백 수천개의 전자책(임베딩)을 모아 놓아도.

용량에 대한 부담이 전혀 없다는 장점이 있어.


그럼 제대로 효과를 발휘하는 책은 집필하기 쉬울까?

현실에서도 좋은 교과서에 대해서는 항상 논쟁거리잖아?

당연히 어려울 수 밖에 없지.

그래서 학습으로 좋은 퀄리티를 만들어내는 난이도가 높다는 문제가 있어.


물론 아무리 용량이 낮더라도, 정말 잘 만든 책이라면 쉽게 이해가 가능해서.

저런 용량에서 이런 성능을 낸다는 걸 믿기 힘들 정도의 퀄리티를 보여줄 때도 있지.

그래서 이미 좋은 임베딩이 있고, 그걸 가져다 쓰는 건 좋은 일이지만.

직접 학습을 시키는 입장에서는 까다로운 선택이 필요하게 될거야.


다만 아주 간단한 정보에 대해서는 이야기가 좀 달라져.

이미 알고 있는 정보를 간단히 섞어주는 것만으로 충분한, 아주 짧은 레시피라면?

Inspect 확장을 이용하면, 우리는 기존 프롬포트(태그)의 수치를 합성해서.

1초만에 새로운 책(임베딩)을 만들 수 있어.


말이 책이지, 초간단 레시피 같은 거야.

흰색이랑 보라색을 몇 대 몇으로 섞어서, 연보라색을 만들어줘.

같은 것을 가능하게 해주는 거지.


이런 간단한 작업이나.

그다지 학습이 어렵지 않은 간단한 소재 같은 경우에는.

여러모로 전자책(임베딩)의 사용이 유리하겠지?


그리고 다른 기술이랑 달리, 그냥 책이라서 뇌(모델) 자체에 영향을 주지 않고.

그냥 방법을 제시하는 것이라서, 동작 성능이 좋고 안정적이야.


임베딩은 pt나 bin 확장자로 되어 있고. 1mb 이하의 저용량 파일로.

embeddings폴더에 집어넣은 뒤.

파일명을 프롬포트에 넣는 것으로 사용할 수 있어.





2. 최면(하이퍼 네트워크)


최면이라고 하면.

일반적으로 생각할 때, 동전을 흔들면서 사람을 마음대로 조종하는 행동이잖아?

실제로 그런 거라고 생각하면 편해.


예를 들어서 평범하게 그림을 그리는 AI(뇌)에게 변태 같은 포즈를 그리라고 한다면?

평소에는 그런 비상식적인 일을 본 적이 많이 없기에.

애초에 그게 아닐거라고 판단해서 그리 행동하지 않아.

행동하더라도 그 비율이 매우 낮지.

이걸 우리는 원하는 그림이 타격되는 확률이 낮다고 해서, 타율이 낮다고 표현하곤 하잖아?


아무튼 프롬포트(설명)을 해도, 기존의 그 뇌의 사고 방식으로는 원하는 그림을 뽑지 못할 떄.

우리는 미리 그 사람의 사고 패턴에 맞게, 최면을 걸 방법을 조사하는 거야.

 뇌의 사고방식을 어떻게 뒤틀면, 변태 같은 포즈를 원하는 걸 자주 내뱉게 될까?


뇌의 사고 방식을 바꾸는, 일종의 최면 방법을 익혀두는 것이

하이퍼 네트워크의 학습인 셈이야.


그런데 최면에는 한가지 문제가 있어.

이건 전자책에서도 비슷한 문제가 있었는데.


얘들이 아예 모르는 개념을 만들어내기가 쉬울까?

결국 책이든 최면이든, 내가 알고 있던 기존 지식을 토대로 이해해서 나름대로 꺼내는 거잖아?

외국인이 한국어의 발음기호를 보고 따라했을 때, 굉장히 어색한 경우가 많은 것처럼.

아예 모르는 것을 만들어내기는 쉽지않아.


언젠가 스쳐지나가듯 봤던 변태 포즈는 할 수 있어도.

처녀가 성관계의 감각을 표현할 수는 없는 거니까.


하지만 아까도 말했지만.

자주 있는 일이 아니라서 타율이 낮은 경우라는 말을 했지?

조금 부족하긴 하지만, 이미 알고 있는 거라면 충분히 하이퍼 네트워크로도 구현할 수 있는 셈이지.


아예 완전히 다른 느낌의 그림체면 모를까.

적당히 다른 그림체를 학습하는 정도라면.

비슷한 그림체를 많이 봐 왔기 때문에, 나름 그럴듯하게 구현할 수 있는 느낌이야.

애초에 처음 배울때, 그 그림체도 섞여 있었을 가능성도 높고.


하지만 아무리 그래도 최면 어플이라는 정신 조작 어플인데.

용량이 가벼울 수 있을까?

그래서 어느 정도는 용량이 나가게 되어 있는거야.

작게는 20메가부터, 무거우면 몇백메가까지.

아무래도 자리 차지는 되니까, 부담이 아예 없다고는 할 수 없어.


일단 임베딩처럼 모델 자체에 영향은 주지 않고, 잠시 사고 방식만 뒤트는 방법이니까.

임베딩보다는 영향을 더 주고 싶고, 임베딩보단 용량에서 손해는 보더라도 성능에서 강점을 가지겠다면.

그리고 그러면서 모델 내에 있는 정보만 활용해서 결과를 만들고 싶다면.

분명 나쁘지 않은 선택이라고 생각해.


그리고 요즘 하이퍼 네트워크는 여러개를 적용해서, 마치 프롬포트처럼 사용할 수 있으니까.

트리거를 발동할 때마다 최면에 걸리는 것처럼.

여러 최면을 동시에 걸면서 사용하는 것도 가능해.

물론 하이퍼 네트워크의 적용 수준을 조절할 수도 있고.


파일은 용량이 1메가를 아득히 넘는 pt 확장자의 파일로.

models->hypernetworks폴더에 넣고 <hypernet:파일명:1> 같은 형식으로 프롬포트에서 사용할 수 있어.




3. 세뇌(드림부스)


최면과 세뇌는 뭐가 다를까.

최면은 순식간에 걸어서, 그 뇌가 움직이는 사고방식을 뒤트는 행위지만.

세뇌는 조금 달라.


일종의 교육을 행하는데, 그 교육에 맞게 기존의 사고 방식까지 뒤트는 느낌이지.

내가 원하는 어떤 사람을 만들기 위해, 기존 사고방식을 뒤틀면서.

새로운 기억도 쑤셔 넣어서, 모르던 것도 알 수 있게 해주는 것이 바로 세뇌야.


당연히 앞선 문제들의 단점인.

모르는 것은 사용할 수 없다는 문제를 단번에 해결해줘.


최면(하이퍼 네트워크)은, 뇌에 기록된 기억에 야한 게 없으면 야한 걸 뽑을 수 없지만.

세뇌(드림부스)는 야한 것을 모르던 애도, 야한 것을 뽑아낼 수 있게 만들 수 있지.


다만 세뇌라는 건, 최면처럼 어플 같은 걸로 반짝하고 거는 게 아니거든.

천천히 그 사람의 뇌 자체를 고쳐서.

내가 원하는 그림을 잘 그리는 뇌로 '개조'하는 거라고 볼 수 있어.


당연히 모든 뇌를 개조하는 것이니까.

다른 그 무엇보다 성능이 좋아.


그런데 이것의 문제가 뭘까? 바로 뇌 자체를 만진다는 거야.

원래 A라는 모델의 뇌가 있으면.

세뇌를 거친 뒤, A(세뇌됨)이라는 아예 다른 뇌가 되어버리는 거지.


최면(하이퍼 네트워크)은 내가 걸 최면에 대한 용량만 저장하면 충분했는데.

세뇌(드림부스)는 뇌(모델) 하나를 새로 저장해야하니.

용량에 대한 압박이 매우 심하지.


그리고 학습시에 모든 뇌를 다 신경써야 하잖아? 뇌 전체를 건드는 셈이니까.

학습시 VRAM의 요구 사양이 매우 높아지는 문제가 있어.

12GB가 최소컷인데, 이것도 사실상 써먹기는 어렵고.

최소 16GB에 권장 24GB라는 괴물같은 장벽을 가지고 있지.


심지어 이걸 여러 종류를 동시에 쓰거나 확실히 파워를 조절하려면.

뇌(모델)을 매번 병합해서 사용하던가., 병합 전에 미리 섞어본 상태로 그림을 뽑는 기능을 사용하게 되는데.

전자는 사전 작업과 저장 용량 문제가 있고.

후자는 성능에 대한 압박 문제가 있어.


그래서 드림부스는 성능이 좋은데도, 쉽게 활용하기는 쉽지 않지.

다만 모델을 만드는걸 좋아한다면, 가장 성능 좋게 학습시킬 방 중 하나니까.

저런 단점에도 충분히 메리트는 있는 셈이지.


참고로 드림부스에서 개발된 세뇌 영역을 강하게 자극하는 하나의 프롬포트(태그)가 생기게 되는데.

이걸 우리는 토큰이라고 불러.

정해진 토큰이 있다면, 드림부스 사용시에 프롬포트(태그)로 집어 넣는 편이 세뇌된 영역의 그림을 뽑아내기 쉽겠지.


또 정규화 이미지라는 것도 있는데, 이건 뇌가 너무 세뇌에 빠져서 망가지는 걸 방지하기 위해. 

세뇌 전 자신의 그림을 넣어서, 그걸 보고 너무 그거에서 멀어지면 안 된다고 알려주는 과세뇌 방지 가이드라인이야.

다만 오히려 정규화 이미지를 없이 학습해서, 과세뇌를 유도해서 세뇌 상태를 강화하려는 방식으로 학습하는 경우도 있어.


드림부스는 그 결과물 자체가 뇌(모델)이므로. ckpt나 safetensors 확장자로 되어 있고.

models->Stable-diffusion 폴더에 넣고.

일반적인 모델 사용하듯이 활용하면 끝.




4. 세뇌 임플란트(드림부스 기반 lora)


최근 가장 핫한 녀석이지.

로라는 원래 있던 로라 기술을 드림부스 기반으로 만들어서 탄생한 걸로 알고 있어.

즉, 이건 굳이 따지자면 드림부의 딸 같은 거라고 보면 되는 거지.


그리고 실제로 난 이걸 드림부스처럼 세뇌의 일종이라고 보고 있어.

다만 조금 특이한 건 임플란트라는 용어지.


이건 조금 익숙하지 않은 사람도 있을 수 있는데.

치아 임플란트는 들어봐도, 세뇌 임플란트는 뭔 소린가 싶을 수 있거든.


임플란트라는 건 심는 거잖아?

즉, 세뇌를 시키는 장치를 몸에 박아넣는 것이 세뇌 임플란트(lora)라고 보면 되는 거야.

기억이 담긴 USB 정도라고 생각하면 되겠네.


몸에 장치가 박히는 순간, 그 장치에 저장된 기억에 접근할 수 있게 되고.

그래서 새로운 기억이 들어오는 순간.

그 뇌는 순식간에 세뇌된 것처럼 행동하게 되는 거야.


뭐, 실제로는 ai가 사용해야하는 lora 레이어를 나중에 삽입하거나 동시에 진행하고 합성하거나....

묘하게 복잡한 과정을 거치긴 하지만.

결국은 lora를 만들면서 생긴 세뇌 기억 데이터를, lora를 킬 때만 현재 뇌(모델)가 가진 것처럼(병합된 것처럼) 결과물을 내도록 만드는 물건이야.


따라서 이건 기억 전체가 아니라 삽입할 일부 기억만 있으면 되잖아?

그래서 용량이 매우 적어.

하이퍼랑 비슷하거나 살짝 더 적은 정도?

심지어 최면(하이퍼)나 세뇌(드림부스)에 비해 학습 난이도도 낮지.

컴퓨터 사양도 최면(하이퍼)보다 살짝 덜 요구하는 걸로 알고 있고.

일단 드림부스 기반인데, 드림부스만큼 무식한 용량을 요구하지 않는다는 것부터 장점임.


그리고 기존에는 토큰으로만 세뇌파트 영향력을 조절하던 드림부스와 다르게.

모델을 장착하는 거라서, 개별적인 적용 파워를 조정할 수 있고.

심지어 동시에 여러 개를 장착해서 적용할 수도 있지.


아까 말했던 전자책(임베딩)과 최면(하이퍼)의 단점인.

새로운 정보를 가질 수 없다는 단점이 해결되어서.

최면(하이퍼)보다 더 쉽게 빠르게 특정 학습 성능을 이뤄낼 수 있어.


물론 최종적으로 보면, 뇌 전체를 만지는 드림부스보다 성능이 떨어져.

왜냐면 이건 어디까지나 소량의 기억으로 아무 뇌나 들어가서 세뇌로 활동하는 거잖아?

그 뇌 전용으로 딱 맞춰서 세뇌 개발한 것보다는 성능이 떨어질 수밖에 없지.


하지만 드림부스의 수많은 단점은 해결했지?

심지어 이것도 나름 '기억'이라고 볼 수 있는, 일종의 작은 뇌(모델)란 말이야?

그래서 이걸 써서 드림부스처럼 병합해 새로운 모델을 만들 수도 있어.

그 가장 큰 예시가 이번에 떠오른 파스텔믹스 모델이고.


성능을 좀 포기하는 걸로, 그 이상의 장점들을 잔뜩 가지고 있다는 거지.

그 점에서 지금 가장 메리트 있는 학습 선택지가 될 수 밖에 없는 거야.

다만 위에서도 말했지만, 다른 학습들도 장단점이 있어서.

꼭 이게 옳다고는 말하기 힘들어.


파일은 용량이 1기가가 안 넘는 pt, safetensors 확장자의 파일로.

models->lora폴더에 넣고 <lora:파일명:1> 같은 형식으로 프롬포트에서 사용할 수 있어.





나름 간단히 설명해보려 노력했는데.

도움이 되었을지는 모르겠네.

다들 긴 글 읽어줘서 고마워!