참조: https://arca.live/b/hypernetworks/77378256?mode=best 실사로라 만드는 과정 전부 - xRica 님의 실사로라 캠페인 참여


위에 글에 추가되는 내용인데 결론부터 말하면: 데이터를 열심히 만지면 로라의 퀄이, 엄청 좋아지는 것은 아니지만, 어느 정도 좋아진다.  

이 글은 실사 로라에 진심인 사람들끼리 얘기 좀 하자는 뜻으로 쓴다. 경험치를 나누자는거지. 
초보 로라메이커들에게는 차이가 느껴지지 않을 수도 있다. 


로라에 진심인 사람들이 많이 궁금해하는 것들이다.
1. 데이터의 누끼를 따면 로라가 좋아지나?
2. Topaz같은 업스케일러로 데이터를 만지면 로라가 좋아지나?
3. 데이터를 변경하여 데이터를 늘리면 로라가 좋아지나?


(수정: 아래 내용은 순전히 인물로라에만 해당하는 거야. 그림체나 화풍은 배경이 너무 중요하니까 당연히 다양하게 넣어야지 - 중요한 것은 자기가 학습을 무엇을 시키는 목적에 따라 방법을 조정하자는 거야)


이것에 대한 나의 (지금까지의) 경험치는
1. 인물로라인 경우 데이터의 누끼를 따면 로라의 퀄이 많이 좋아진다. 
    나는 실사 인물 로라 뿐아니라 모든 인물로라는 누끼를 따서 로라 만들고 있어.

2. 짱짱하지 않은 데이터의 경우 데이터를 업스케일링하면 로라의 퀄이 좋아진다. 

    그러나 어느 정도 수준의 오리지날 데이터는 로라의 퀄은 아주 조금 좋아질 수 있다. 

    조그만 사진인 경우 업스케일해서 로라 작업하자. 

    Ai그림을 재학습시키면 노이즈가 쌓여서 더 나빠진다는 결론을 봤을꺼야? 

   진짜 그럴까? 

   그 사람들 hiresfix, upscaler 같은 거 안쓰고 대량 작업했을 확률이 놓아. 그러면 당연히 나빠지지. 

    나는 현재 모든 데이터를 업스케일링하고 다시 768,768로 다운해서 로라를 만들고 있어. 퀄이 달라.

3. 데이터를 늘리는 것은 결국 최종로라를 어떻게 만들겠다는 주관적인 목표에 따라 다르다. 

   뭔가를 강조하고 싶은 데 그 뭔가가 나온 사진이 부족하면 해당 사진을 조작해서 갯수를 늘리자. 

   믈론 데이터가 워낙 부족한 경우에 데이터를 늘리는 경우는 이와는 또 다른 이야기이지. 과적합에 시달리더라도 오만가지 꽁수를 써서 늘려야지.

1번 - 데이터 1: 768,768로 자르고 잡티제거등 간단 작업 + batch size 2

2번 -  데이터 2: 데이터1을 누끼따고 배경 단색 처리 + batch size 1

3번 -  데이터 3: 데이터 2를 TOPAZ로 사진 enhancing + 회색머리 분위기 사진 갯수 늘리기 (얼굴 각도 및 원근 조정 꽁수) + batch size 1


작업결과

1번 - 하늘색, 2번 - 핑크색, 3번 - 똥색
(배치를 줄이니까 loss가 줄어들지? 당연하지 뭐)

세가지 모두 로스가 모노토닉하게 줄어들지만, 과적이 났다.

(추가) 데이터를 업스케일링하면 노이즈가 확대재생산 된다고 주장하던데... 만약 그렇다면 2번과 3번의 loss는 달라야 한다고 생각해. 노이즈가 많으면 loss가 커지는 것이 당연해. 근데 2번과 3번의 loss는 비스무래하다. 아니라는 거지.
오히려 경계의 노이즈가 줄어들어서 loss가 작아질 수 있다는 것이 내 생각이야. 믈론 Min SNR gamma에 따라 다르겠지. 이번 테스트는 Min SNR gamma를 0으로 했는데, 시간나면 1이상으로 바꾸어서 테스트해볼께. 아마 2번보다 3번이 loss가 작아진다가 나의 H0야)

그래서 선택된 로라 에포크의 샘플사진

1번 - 에포크 82번 - 에포크 63번 - 에포크 7

비슷비슷하지만 분명히 퀄의 차이가 있다.

특히 1번에서 2번으로 데이터가 바꾸면 (누끼 따서 배경 날리기) 퀄이 차이가 크다.

3번의 경우 디테일이 조금 좋아지고 의도했던 데로 회색머리 데이터가 좀 더 반영되었다. 


데이터 양을 늘리는 것은 로라를 만들 때 언제나 옳다. 물량에 장사 없다.

BUT 그냥 마냥 긁어 모아서 쑤셔 넣는 것보다, 데이터의 퀄과 그 사람의 어떤 얼굴을 강조할 지 를 염두에 둔 데이터 수집/선정은 필수다.
한 사람의 얼굴도 오만팔천가지의 다른 느낌이 있는 데, 이 느낌들 중에 뭘 강조할 지 마음속으로 결정하고, 그 결정이 강조되는 사진을 좀 더 비중있게 데이터에 넣어야 한다. 
무지성으로 와장창 1000장 데이터, 10000장 데이터를 넣으면 진짜 그 사람의 모습이 그대로 복사된 로라가 나오나? 놉!!!
도대체 그 사람의 진짜 모습이 뭔데?
결국 로라 만드는 사람이 로라에 원하는 주관적인 모습이 있지 않을까? 그렇다면 데이터는 이걸 고려해서 모아야지

예쁜 느낌, 어린 느낌, 관능적인 느낌, 똘아이 느낌... 이 중 하나를 골라야해. 

모든 느낌이 있은 로라를 만들겠다는 것은 불가능하다고 봐.


이 글의 로라의 경우 데이터는 두가지 느낌으로 나뉜다.
화장많이 한 모델, 샤방한 동네누나 - 근데 화장많이 한 모델의 데이터가 더 많아서 1번 2번 모델은 그쪽을 추종한다.
3번에서 회색머리 샤방한 동네누나를 강조하기 위해서 회색머리 데이터만 증가시켰다. 극단적으로 화장많이 한 모델의 데이터를 다 날릴 수도 있다. 

그저 선택이야.


이제 로라의 적용이다. 모델은 anindeMix_vasi20, 로라의 얼굴만 DDSD로 넣은 것이 아니라 그냥 로라를 통으로 넣은 사진이다.

pos 프롬

NSFW, 1 woman, (solo:1.3) , (face shot:1.4), clean skin , glowing skin, seductive dynamic pose, detailed face, __lingerie_combinations__, __neckwear__, __earrings__, sand beach, sunset golden hour, (best quality, realistic, masterpiece :1.3), (photorealistic:1.2), (intricate details),  rembrandt lighting, ray tracing, shallow depth of field,  xricav8  <lyco:xricav8_sd15_LOHA-08:0.8>,  <lora:adapted_model_converted:1.0>

neg 프롬

(low quality , worst quality:1.3) , weird, weird image, (malformed body, bad anatomy , wrong anatomy:1.4) , low effort , blur , poor , lowres , cartoon , greyscale , monochrome , (text , title , signature , jpeg artifacts , watermark , frame, photo box, signature:1.3) , (multi scene:1.2), tatoo,(skin trouble, spot, age spots:1.1), muscle, mucular, mutiple navel

1번 로라2번 로라3번 로라


같은 인물의 사진인데 데이터를 만지작 거리는 것에 따라 만들어지는 로라가 다르다.
어떤 로라가 좋은 로라인지는 몰라. 나는 3번 로라가 가장 원래 인물을 따왔다고 판단된다, 내가 그런 느낌의 얼굴을 원한다는 거지 뭐.

1번은 주변이 아주 잘 학습되어서 sand beach, sunset golden hour라는 프롬을 씹었다.

우리가 만들려는 것이 인물로라인데 왜 환경까지 학습시켜서 이런 성질 드러운 로라를 만들어냈을까? 

믈론 잘 달래서 쓰면 1번로라도 배경프롬을 먹지. 

근데 로라의 고집이 쎄서 배경에 대한 프롬을 씹는 경우가 많아. 모델마다 다 달라.
다시 강조하는 데 인물로라 만들 때 배경날려서 로라만들자. 퀄리티, 속도.... 등등 모두 좋아


전신샷의 모델은  henmixReal_v40

이번에도 1번은 데이터에 원래 있던 숲을 그렸고, sand beach, sunset golden hour라는 프롬을 바닥에 모래 조금 뿌리고 씹었다. 

1번 로라2번 로라3번 로라

전신샷에서도 역시 나는 3번 로라가 가장 잘 나온 것 같다.


전신샷 하나 더, 이번 모델은  요즘 잘 쓰고 있는 xRica_v5.6_2.5D 

1번 로라는 sand beach, sunset golden hour라는 프롬을 또 씹었다. 바닥에 모래 조금 더 뿌리고 말았다. 

프롬 잘먹는 xRica_v5.6_2.5D모델에서 이정도라면 1번로라는 폐기해야.

1번 로라2번 로라3번 로라

3번 로라 한 표.

----
응용해보자, 기왕 로라 3개 만들었으니 한 사진에 동시에 먹여보자. 모델은 xRica_v5.6_2.5D  얼굴은 xRicaMix_v4.7

왼쪽 부터 1번 2번 3번 로라를 얼굴에만 적용한거야.
모아놓으니 로라의 차이가 조금 보이지?
1번 2번은 화장누님인데, 2번(누끼)이 좀 더 디테일이 살아있고,  3번(누끼+업스케일링+데이터변화)은 좀더 자연스러운 동네누나가 더보이지. 아님말구
이 조그만 차이가 노가다의 결과야. 뻘짓인지도

 


chilloutmix_NiPrunedFp32Fix 모델에서 적용해 본 결과

왼쪽 부터 1번 2번 3번 로라를 얼굴에만 적용한 결과


응 맞아 그게그거야.
근데 그 차이를 만들고 싶은 로라에 진심인 사람만 좀 더 낑낑거리는 거지. 
humanRealistic_realisticV3 모델에서 열심히 보면 그 차이가 사알짝 보이지. 눈, 눈썹, 입꼬리 코끝... 좀 더 디테일한 로라가 표정이 더 자연스러워. 예를 들면 3번이라든가. 

모델의 원래 얼굴(왼쪽 첫번째)도 좋지. 근데 만족못하니까 모델병합도 하고 로라도 만들고 그러는 거 잖아.  
왜? 뭐! 더 노가다해서 만들면 어때? 응?


80프로 까지는 누구나 다 해. 80프로에서 조금 더 나아지려면 개고생을 해야지