1️⃣ CFG (classifier-free guidance scale)
'이미지 분류기 없는 가이던스 스케일'
CFG는 그야말로 AI 그림의 입문, 대문앞에 새겨져있다해도 과언이 아닌 녀석이다
즉, '여기가 소림사인가?' 이러고 무림에 입문한 사람이 소림사 대문을 본후
아래에 비석을 보니 'Classifier-free guidance scale' 이라고 새겨져있는 수준이다
하지만 4단어주제에 하나같이 심오하다보니(뭔소린지 모르겠다보니)
대부분의 수행자는 애써 못본척하거나 KFC랑 비슷한거겠지 하고
스스로를 속여넘겨 정신적 데미지를 방지한다
하지만 한달후엔 다른 입문자가 어설프게 수련하는 것을 보고는
미소지으며 '허허 그건 CFG가 7정도가 되어야 가능한 기술이니라' 라고 훈수를 둔다
물론 뭘 알아서 그런건 아니고 맨땅에 미친듯이 헤딩하다보니 그냥 그 숫자가
잘되어서 그런걸 경험적으로 체득했을뿐이다.
여하튼 입문하자마자 보게되고 AI 때려치우기 직전까지도 보고있는게
CFG이며 대부분이 그게 뭘 의미하는지도 모르고 입적하게 된다
역으로 말하면 몰라도 뭐 딱히 상관은 없다는 뜻이기도 하다
2️⃣ 대충 원리
오의를 깨우친 자와 아닌자는 똑같은 기술을 사용하더라도 천양지차의 위력을 발휘한다
즉, CFG를 알고 시작하는 자와 아닌자는 확실히 다르다
근데 왜 몰라도 상관없다고 했는가? 그건..
머리는 몰라도 몸이 체득할 정도로 아득하게 써먹기 때문이다
결국 한달.. 아니 일주일만 되도 알고시작하나 모르고 시작하나 수백번이나 시전한 기술이기에
눈감고도 사용하게 된다. 그리고 솔직히 그 범위가 천하무쌍하지도 않다
고작 5-8.. 다이내믹 사공을 쓰면 뭐 10-15, 모델신공을 쓰면 뭐 2-3? 뭐가 됐던
엥간하면 하루 이틀만에 숫자하나 정해서 쓴다
그럼 그 숫자는 뭘 의미하는가? 그건
unconditioned + scale * (conditioned - unconditioned)
이 공식에서 scale(정도) 부분이다
난데없이 공식이 튀어나와서 놀랐겠지만 진정하도록하자 무섭지 않다
랜덤만남 + 조건어느정도? x (조건만남-랜덤만남)
이러면 좀 쉬워졌을 것이다. 대신 이게 더 무섭다;
즉,
목적달성(사귀기)를 위해 랜덤만남과 조건만남을 어느정도 섞느냐의 얘기다
조건설정 정도를 0이라고 해보자 그럼 남는건 랜덤만남뿐이다
즉 CFG를 0으로하면 내가 내거는 조건들은 개무시하고 완전한 랜덤의 그림을 생성하게 된다
반대로 CFG즉 Scale을 키울 경우 내 조건을 더 확실히 충족하는 상대만을 고르게 된다
일반적으로 보면 그게 좋을거 같지만 실제 남녀조건 보는 것과 마찬가지로
조건이 까다로우면 선택풀이 엄청나게 줄어든다
너무 굉장한 미인 이라고 했더니 똑같이 생긴 성형미인만 주구장창 보게 되는 것과 비슷하다.
다시말하면
조건없는 대형 선택지와 조건건 선택지의 풀 가운데서 적절한 스케일(정도)을 줘서
만족하는 결과물을 찾게하는 것이다
3️⃣ 조금 구체적 원리
앞서 말한 것이 사실 거의 다이다
조건 없이 생성한 결과물과 조건 가운데 생성한 결과물 사이에 스케일을 보고
그만큼의 가이드를 받아서 결과물쪽으로 이동한다
이는 모델자체에서 '조건없는 생성' '조건 있는 생성'을 비교하면서 적절한 값을 찾아가는 과정이기 때문에
`classifier-free` 라고 불린다. 이런 이름이 붙은건 사실 순서가 좀 거꾸로 된 건데
이전까지는 이렇게 원하는 것을 찾아가게 하던 ` guidance` 가이던스(안내)가
모델안에서 해결되지 않고 외부의 도구를 사용해서 이뤄졌다
그게 바로 `classifier` 라는 이미지 분류기, 즉 판단기이다
이미지는 노이즈로부터 점진적으로 복원되는데 이 분류기가 이 과정에 개입해서
지속적으로 방향을 가이드해준다. 고양이는 이렇게 생겼어.. 라고
귀는 이런모양, 꼬리는 이런 길이.. 이렇게 자신이 알고 있는 신호를 줘서 생성물에 영향을 준다
하지만 결국 자유찾게 된 이유가 있는데 분류기가 사람이 아니라는 것이다
즉, 분류기도 학습해야한다. 모델도 학습하고 분류기도 학습하고 심지어 모델이 잘되어도
분류기가 개판이면 쫑난다. 하나만 잘되기도 힘든데 둘다 잘되어야하니 좋을리가 없다
그래서 나온게 모델이 자체적으로 자신이 생성하는 것들
(조건부(Conditional) 샘플과 무조건(Unconditional) 샘플)
가운데서 길을 찾아가는
분류기 없는(Classifier-Free) 안내(Guidance) 정도(Scale) 인것이다
'ComfyUI' 카테고리의 다른 글
프롬프트와 토큰, 텐서, 임베딩 개념 (0) | 2025.02.19 |
---|---|
프롬프트의 기본 1 - CLIP 上 (0) | 2025.02.06 |
프롬프트 컨디션(Conditioning) 이란? (2) | 2025.02.02 |