만들어 볼 것:



예제로 급하게 만들어봤어

퀄리티는 좀 떨어지더라도 그냥 이런게 있구나 하고 봐주라


0. 시작 전 요약

= 툰 셰이딩이 들어간 3d 영상을 web ui에 batch img2img 로 넣고,

애니메이션 관련 프롬프트+적당한 시드 유지+낮은 Denoising strength 로 돌리면 됨

진짜 별 거 없음..



*batch img2img 기능 설명에 '서버가 돌아가는 기기 안의 경로'라는 언급이 있는걸 보니까 직접 로컬로 돌려야만 가능한 것 같음,

만들고자 하는 애니메이션의 프레임이 적을 경우에는 batch 기능 안쓰고 하나씩 뽑아서 넣어도 상관없을 것 같다



< 사용한 프로그램 >

-vroid (https://vroid.com/en/studio) / 혹은 3d 모델링과 애니메이션을 제작할 수 있는 프로그램 (블렌더, MMD 등)

-web ui (https://github.com/AUTOMATIC1111/stable-diffusion-webui)

-허니캠 (https://kr.bandisoft.com/honeycam/) / 혹은 영상 촬영, 프레임별 내보내기가 가능한 프로그램


< 사용한 모델(.ckpt파일) >

(흑백,만화느낌)waifu diffusion 1.2 (https://drive.google.com/file/d/1XeoFCILTcc9kn_5uS-G0uqWS5XVANpha/view)

(컬러 애니느낌)nai 유출본중 animefull-final-pruned

모델은 자기 쓰고싶은 거 아무거나 써도 괜찮음




만약 자신이 툰 셰이딩이 들어간 캐릭터 영상을 직접 만들어서, 프레임을 내보낼 수 있다면 2번 목차까지는 건너뛰어도 됨.

그냥 모델링,영상 쉽게 만드는것에 대한 튜토리얼이라서





1. Vroid로 캐릭터 제작 (모델링 쉽게하기)

vroid (https://vroid.com/en/studio)

위 링크에서 우선 프로그램을 받는다.

이 프로그램은 게임 안에서 커스터마이징을 하듯, 3d 캐릭터의 기본 모델링을 쉽게 할 수 있도록 만들어주는 프로그램이다

3d 관련 지식이 아예 없어도 쉽게 만들 수 있음! 다만 복잡한 디자인은 어려움

언어는 영어, 일본어 중에서 고를 수 있다

대충 설치를 해주고 실행시키면

이렇게 생긴게 있을텐데 저거 눌러서 만들고 싶은대로 만들면 됨.

이 프로그램 관련 튜토리얼은 유튜브에 많으니까 그거 참고해서 하면 좋을듯

https://www.youtube.com/results?search_query=vroid+tutorial


나도 글 쓰면서 대충 만들어봄



2. 영상 촬영, 프레임 내보내기

  vroid로 캐릭터를 만들었다면 이제 영상을 뽑아준다

프로그램은 뭘 쓰던 상관없는데 나는 허니캠이 편해서 그거 썼음 (나중에 gif 저장과 프레임 내보내기를 동시에 할 수 있어서)


vroid 창 우측 상단에 저런 카메라 모양 아이콘이 있는데 저거 눌러주면

각종 모션을 테스트해보거나 포즈를 취하고, 사진을 찍을 수 있는 메뉴가 나옴

우클릭 드래그로 회전, 휠 클릭으로 이동할 수 있음


1) 배경 흰색으로 바꿔주기




필수는 아니지만,

영상을 찍기 전에 Background 탭에서 배경을 아예 흰색으로 바꿔주는 게 좋음.

배경이 깔끔할수록 애니메이션도 깔끔하게 나오기 때문,

이거 보면 느껴지겠지만 디폴트 색(옅은 회색)으로 하고 돌렸더니 뭔가 배경에 노이즈가 생겼다

일단은 gif 압축때문에 그런것도 있지만, 뽑아낸 프레임을 보면 전체적으로 얼룩덜룩함..



2)포즈, 애니메이션 지정


아까 Background 탭 있던곳을 보면 Poses&Animations라는 탭이 있는데, 그걸 누르면


안에 기본으로 들어있는 애니메이션들이 있음. 머리카락이 왜저러냐


하위메뉴중에 Animations1은 여성스러운 느낌, Animations2는 남성스러운 느낌이 강한듯한 애니메이션이 들어있고

마지막 Posing메뉴는 직접 포즈를 만들어줄 수 있는데,

연속된 동작을 애니메이션으로 만든다거나 하는건 불가능한 것 같다. (멈춰있는 장면 만드는 데는 활용해도 괜찮을듯)

일단 나는 Animations1 안의 Standby 5 를 적용해줬음


프리셋으로 들어있는 애니메이션이 아닌 다른 애니메이션을 직접 만들고싶다면, 블렌더,MMD 등의 다른 프로그램을 써야하는데

그 프로그램들은 좀더 다루는게 복잡해서 여기서 설명하는건 무리고

튜토리얼 찾아보면 있으니까 보고 천천히 따라해보는게 좋을것같다.

물론 블렌더나 MMD에도 vroid에서 만든 모델을 그대로 가져갈 수 있음



3) 영상촬영, 프레임 추출


내가 쓴 프로그램이 허니캠이라 허니캠 기준으로 설명함

일단 녹화할 영역 지정하고, 우측 상단에 녹화버튼을 눌러서 녹화해준 뒤




편집 모드로 들어가서 프레임을 조금 편집해주자

(녹화 시작하면 애니메이션이 조금 튀는데 그거 삭제해주고, 그 외에 버벅대거나 하는 부분 삭제해주기)

일단은 이 단계에서 mp4나 gif로 저장해준다. 나중에 비교도 해볼겸, 원본도 저장해둘겸해서

+ gif보다 webp가 화질도 좋고 용량도 작다고 하니까 그걸로 저장해도 좋음


이 단계에서 나중에 ai가 인식하기 쉽도록 만드는 것도 꽤 중요해서,

흑백 선화로 뽑을 예정일 경우

이미지를 아예 미리 흑백으로 만들고 대비를 올린다던가 하는 처리를 해줘도 좋음


(허니캠은 이거 누르면 안에 흑백 필터 있더라

모든 프레임에 적용 해주면 됨)

일단 지금은 컬러버전으로 뽑아보자



그런 뒤 ctrl+a 눌러서 프레임을 전부 선택해주고, 우클릭해서 '선택한 프레임을 내보내기'를 클릭해준다

그러면 파일탐색기가 나오는데 경로 지정해주고, 이름 대충 정해주고 확인 누르기


그러면 이렇게 프레임이 하나씩 추출이 됨

개인적으로는 하나의 폴더 안에 각각 ai, original 이라는 폴더를 두개씩 만들어서 관리하고있음


+

선택사항으로

애니메이션의 낮은 프레임 느낌을 위해서 중간 프레임들을 삭제해주면, ai 돌릴때 시간단축도 되고 괜찮은것같던데


이건 프레임 우클릭하면 나오는 선택하기 메뉴로 선택하고 delete키로 삭제해주면 됨




참고로 프레임 추출해주는 스크립트가 있다고 하던데, 그건 내가 아직 안써봐서 모르겠다

구글에 파이썬 프레임 추출 이라고 치니까 뭔가 나오긴함



3. Web UI 활용 (Batch img2img)


web ui에는 batch img2img 라는 기능이 있는데,

특정 폴더 내의 이미지들을 전부 꺼내서 차례대로 ai를 돌린 뒤, 다른 특정 폴더로 집어넣어주는 기능이다

이 기능은 img2img 탭 안에 있음. Inpaint 바로 옆


난 Web ui밖에 안 써봐서 다른 툴들에는 어디있는지 모르는데, 아는 사람 댓글로 알려주면 진짜 고맙겠음..


아무튼 저기 적혀있는 설명을 읽어봤을 때, input 경로가 서버가 돌아가는 기기 자체에 들어있어야 한다고 하는 걸 보면

글 초반에 언급했듯이 직접 로컬로 돌리는 게 아니면 불가능한가보다


Input directory에 아까 프레임을 추출한 폴더 경로를 넣어주고,

그 아래에 있는 Output directory에는 ai를 돌리고 나온 결과물을 저장할 경로를 넣어준다


아 맞다. batch img2img 돌릴때는 web ui 화면상에 결과물이 나오지 않기때문에

파일탐색기로 output 경로 지정해준곳 직접 들어가서 나오는 결과물들 체크해야함



4. 프롬프트 입력, 기타 세팅

일단 당연한 얘기지만, 프롬프트는 만든 모델의 특징을 되도록 많이 적어줘야 함.


1) 컬러 들어간 애니메이션 느낌

모델은 nai 유출본중 animefull-final-pruned 이거 사용했음


우선 세팅 먼저

예제로 만든 결과물 세팅은 이랬음


-Sampling steps = 40~50정도

애니메이션 느낌은 샘플링이 좀 낮아야 느낌이 괜찮게 나오더라


- Denoising strength = 0.4~0.5 사이가 적당함

원본의 실루엣이나 구성 등을 유지해야되니까, 너무 높아도 안되는데

(값이 높을수록 원본과 많이 달라짐, 즉 프레임별로 차이가 커져서 연결이 안 되는 느낌을 받을 수 있음)

너무 낮으면 또 원본 느낌이 너무 많이 남아있어서 어색해질 수 있음

하지만 상황에 따라서도 또 다르니까 여러번 잘 테스트해보자


- CFG scale = 이것도 상황따라 다른데 난 보통 10~18 사이로 놓고 씀

ai가 프롬프트를 좀 무시하는것같다 싶으면 높여주고, 이미지에 노이즈가 너무 많고 좀 깨진다 싶으면 낮춰주면서

적당한 값을 찾는 노가다를 좀 해야함..


-시드값: 시드값이 고정돼있어야 연속된 이미지가 비교적 덜 어색하게 이어짐,

그래서 이건 테스트 해보면서 좀 괜찮은 시드값을 직접 찾아야함

근데 batch img2img 한번 쭉 돌릴때 사용되는 시드는 유지되기때문에 시드 찾아가는 과정에서는 따로 신경은 안 써도 되고(-1로 설정해두면됨)

괜찮은 시드 찾으면 바로 복사해서 넣고 수정작업 들어가면됨

저 초록색 버튼 누르면 마지막으로 사용된 이미지의 시드를 그대로 넣을 수 있음



먼저 영상 원본 (인풋이미지)



프롬프트는 애니 스크린샷 느낌의 일러스트를 뽑을 때처럼 해주면 되는데, anime screencap 이라고 검색하면 많이나옴

난 프롬프트 알못이라 일단 되는대로 다 때려넣었음. 일단 다 넣고 여러번에 걸쳐서 수정 해주는 식으로 진행함

최종 프롬프트 밑에 써놨으니까 참고해


일단 1트:


문제점을 파악해보자

1. 손이 올라올때 책같은것도 같이 생기는 걸 볼 수가 있음.

이건 간단하게 Negative에 book, holding book 이런거 추가해주면 되고,

2. 프레임별로 변화도 너무 커서 연결도 잘 안 되는 느낌이 들 때는, Denoising strength를 줄여주면

좀더 원본에 가까운 느낌이 들기 때문에 프레임별 변화가 줄어들 확률이 커짐

3. 프레임들을 잘 살펴보면 뭔가 원색에 가까운 노이즈들이 생기는 걸 볼 수가 있는데, 이건 CFG 스케일이 너무 커서 그런거라

역시 CFG스케일도 조절해주면서 느낌 보며 수정하면 됨




돌려보고, 이상한 부분 생기면 수정해주는걸 몇번 반복해주면 이렇게 비교적 안정된 결과물을 뽑을 수 있음

아직 고쳐야 할 점은 많이 남았음ㅜㅜ


뽑다보면 종종 이렇게 작붕 난 것 마냥 뭔가 삐끗하는 프레임이 나올 때도 있는데,

그럴땐 그냥 그 프레임만 삭제하고 영상 만들어도 이상한 점 잘 안느껴짐

프레임 뺐을 때 너무 이상하다 싶으면 그것만 따로 다시 돌리거나 인페인트같은 수정 도구들을 이용해보자

그런데 원본이랑 인상이 많이 달라지는 건 어쩔 수 없는 문제인 것 같음.. 내 능력으로는 아직 이걸 커버하질 못하겠다


최종 프롬프트:

(((masterpiece anime screencap))),(cinematic anime screencap),((Kyoto Animation Studio)),High_res,High_quality_anime,Manga_Textbook,a very beautiful anime_girl,cel shading, hard shadow, anime screenshot,Character illustration by Kyoto Animation Studio,High quality anime,doga kobo,((sharp focus)), (((gray_ponytail_hairstyle))), front hair, blue eyes,eye_highlight, ((school uniform)),hair between eyes,long_front_hair,eye shining,cloth_folds,ribbon on chest,(round face),(((pretty face))),(detailed face),(gray hairstyle)


Negative

((((blurry)))),((blur)),nsfw,noise,double face, two face, (((bad anatomy disfigured mutated))), pablo picasso, 2girls, 3girls, mutated hands, mutated fingers, ((short hair)), (bob hair),((ugly girl)),short front hair, blurry, low_res, (opened_mouth),poorly drawn,blush,braid_hairstyle,accessories,ahoge,logo,text,hairband,gradient, hair ribbon, hair accessories,hair_bun,holding book,book,wavy hair,wink,long face,error


Sampling Steps: 46

Sampling method: Euler a

Width: 512

Height: 512

CFG Scale: 13

Denoising strength: 0.47

Seed: 541970228



2) 흑백만화, 선화 느낌

모델은 Waifu Diffusion 1.2 사용했음

일단 흑백 이미지를 뽑기전에 원본 이미지부터 흑백으로 만들어주고, 대비도 약간만 높혀주자

그래야 ai가 잘 소화시킴



허니캠은 아까 언급했듯이 위쪽에 있는 메뉴 눌러주면 금방 수정할 수 있음

수정한 프레임을 저장한 다음 경로를 다시 input 경로로 입력해주고,

output 경로도 다시 설정해준다


프롬프트는 일단 색 관련된 부분들은 다 빼준다. 그리고 negative에 color,colorful 같은 것들도 일단 추가해줌

(그래도 색 가끔 묻어나올텐데 그런건 그냥 직접 흑백으로 보정해주면됨)


CFG는 23~25정도로 설정해줌.

흑백 선화같은 경우에는 CFG가 꽤 높아야 잘 나오더라


denoising strength는 아까처럼 0.4~0.5 정도로 설정해주고,


중요한건 그림체를 지정해줄 수 있는 프롬프트인데

난 기본으로 이 프롬프트 씀

A very beautiful anime girl,white background,trending on artstation,(idolmaster_cinderella_girls),Drawing By Takeshi Obata,(manga), (halftone), black and white,(((alone))), thin lines, thin line, (white hair), bright, clean,outline,white skin

위 프롬프트 넣고, 뒤에 외형 묘사 넣고

negative에는 기본적으로 넣는것들 넣으면 됨.

난 색 관련 단어랑 아까 저 위에 적어둔 negative 그대로 가져와서 사용함


1트:

1트만에 성공하기는 많이어려움....어쩔수없음 이것도 계속 수정해주면서 시드 가챠를 돌리자


4트쯤:



위에서 설명했던것처럼 이상한 부분 있으면 고쳐주고,

괜찮아 보이는 시드 나오면 고정시켜주다가

유난히 튀는 프레임들은 빼주고 하면서 다듬으면

점점 괜찮아지는 결과물을 뽑을 수 있음.




확실히 근데 얼굴만 있는 게 잘 뽑히기는 하는듯

테스트 삼아서 같은 프롬프트, 세팅으로 한번 뽑아봤는데 얼굴부분은 퀄리티가 쉽게 올라가는듯함


최종 프롬프트:

A very beautiful anime girl,white background,(((monochrome))),(idolmaster_cinderella_girls),Drawing By Takeshi Obata,(manga), (halftone), black and white,(((alone))), thin lines, thin line, (white hair), bright, clean,outline,white skin,(((ponytail_hairstyle))), front hair,eye_highlight, ((school uniform)),((loli)),((young face)),hair between eyes,long front hair,cloth_folds,ribbon on chest,(round face),(((pretty face))),A very beautiful anime girl,side hair,short face,round face,shining eyes,symmetrical face,sharpen


Negative:

((((colorful)))),((blur)),nsfw,noise,double face, two face, (((bad anatomy disfigured mutated))), pablo picasso, 2girls, 3girls, mutated hands, mutated fingers, ((short hair)), (bob hair),((ugly girl)),short front hair, blurry, low_res, (opened_mouth),poorly drawn,blush,braid_hairstyle,accessories,ahoge,logo,text,hairband,(gradient), hair ribbon, ((((hair accessories)))),((((hair_bun)))),holding book,book,wavy hair,wink,long face,error,color,machine,((animal ears)),messy hair, curly hair, spiked hair


Sampling Steps: 30

Sampling method: Euler a

CFG Scale: 23

Denoising strength: 0.42

Seed: 1258004580


내가 쓴 프롬프트 말고 다른 그림체 관련 프롬프트 많던데

그런거 실험해보고 예쁘게 나오는거 있으면 올려주라 같이보자 ㅋㅋ


+

선화를 먼저 뽑은 뒤 컬러를 넣는것도 느낌이 꽤 괜찮아보이더라.

https://arca.live/b/aiart/60515400

이친구가 색 넣어줬는데 어떻게 했는지 나도 궁금하네. 예쁘게 잘만들었더라

이 글 보면 어케만들었는지 댓글좀 달아줘ㅜ



5. 잘 안됐던 부분


1) 인상

일단 앞에서 봤듯이 원본과 인상이 상당히 달라진다.

이건 내가 프롬프트를 더 안 잡고 있었어서 그런것도 있겠지만, 생각보다 원본과 비슷하게는 잘 안나옴..


2) 역동적인 장면

아직 역동적인 장면은 못 만들음.

이건 내가 다른 모션으로 시도해봤던건데,(약간 혐 주의)


얼굴이 정면을 바라보고 있지 않거나, 손이나 팔 등이 얼굴을 가리면 바로 이상하게 변함

이 정도로만 동작이 커져도 갑자기 이상해지기 시작해서, 그냥 얼굴 정도 왔다갔다 하는 게 아니면 만들기가 어려움


3) 표정

프롬프트를 하나만 입력해두고 여러 이미지를 돌려서 그런지, 표정 같은 경우에는 표현을 잘 못함.

표정이 계속 변하는 영상을 넣고 돌려봤는데 그냥 계속 웃는 얼굴로 나오더라고

이런건 표정별로 구간을 따로 나눠서 프롬프트를 바꿔 넣으면 해결될 것 같긴 해


4) 배경

배경이 복잡하면 ai 결과물 역시 잘 안나오는데, 이건 배경을 따로 합성하거나 하는 식으로 해결할 수 있지 않을까 싶음.....?

그래서 바로 해봤음.

배경 하나를 대충 먼저 뽑아주고

크로마키를 위해 배경을 초록색으로 설정한 뒤 영상을 찍고,


ai 돌려서 캐릭터를 뽑고

애프터이펙트(영상프로그램)으로 합쳐줌

뇌절 조금 해봤는데(ㅈㅅ..) 재밌다.

영상 잘 만드는 사람들은 응용해봐도 좋을거같다

아무튼 배경의 경우에는 캐릭터랑 잘 어울리게만 만들어놓고 나중에 합성하는 방식으로 가는게 더 효율적일듯함


5) 손

그냥... 이건 뭐 어떻게 해결될지 모르겠다.

손 부분만 마스킹해서 다시 3d 원본이랑 최대한 유사하게 바꿔치는 형태로 진행될까 잘모르겠네


이런 점들은 아마 나중에 영상용 ai가 따로 나오면 많이 개선되지 않을까 싶음

아무래도 지금 쓰는 ai들이 연속된 이미지를 만드는 데에 최적화된 것들은 아니니까




이거 빨리 써올리겠다고 여태 밤샜다.............진짜 너무졸리다 이제 자러가볼게

내가 글을 잘 못 쓰기도 하고, 그냥 이런 커뮤니티에 설명글을 아예 처음 써봐서 좀 횡설수설한 감이 있을텐데

이해안되는 부분있으면 말해줘