호돌찌의 AI 연구소
article thumbnail

지난 글에 배웠던 Deforum에 이어 다른 방식의 영상 생성 방법을 배워보겠습니다. 아래에서 배워볼 MovetoMove는 유튜브에서 많이 보셨던 연예인의 안무영상을 다른 캐릭터로 합성한듯한 영상을 만들어주는 Temporal kit의 근간이 된 tool입니다.

Temporal kit에 대해서는 다음시간에 알아보도록 하고, 오늘은 MovetoMove와 AnimateDiff에 대해서 알아보도록 하겠습니다.

 

 

MovetoMove의 설치


 

우선 첫 번째로 mov2mov의 설치에 대해서 알아보겠습니다.

  1. webUI에 접속합니다. (접속방법에 대한 설명은 앞서 많이 다뤘기 때문에 생략합니다)
  2. Extensions - Available - Load from을 클릭합니다.
  3. 검색창에 mov2mov를 검색하고 설치합니다.
  4. Installed 탭에서 Apply and restart UI를 클릭해 webUI를 재시작합니다.
  5. 상단탭에 mov2mov가 있다면 설치 완료입니다.

 

MovetoMove를 이용한 동영상 제작


 

MovetoMove를 이용한 동영상 제작은 베이스가 될 영상을 소스로 새로운 영상을 제작하는 방식입니다. 그래서 앞서 배웠던 Deform이 모션, 줌 등의 영상 무빙에 대해서 신경을 많이 써야 했던 것에 비해 제작난이도가 쉬운 편입니다.

  1. Generation 영역에 소스가 될 비디오를 업로드합니다.
  2. 소스가 될 비디오를 어떻게 바꿀지 생각을 해보시고, 소스가될 비디오의 썸네일을 카피한 뒤 0 프레임에 들어갈 이미지를 img2img에서 생성합니다. (모델 설정, 프롬프트를 통해 내가 바꿀 동영상의 캐릭터를 만드는 과정입니다.)

*해당 이미지를 만들 때 동영상과 같은 해상도로 설정하셔도 되지만 소스 이미지의 해상도가 큰 경우 엄청난 시간을 잡아먹기 때문에 이미지생성 시 해상도를 리사이즈해 제작합니다.

*Denoising strength는 0.3 정도의 낮은 값을 주어서 원본의 인물과 괴리감을 최대한 줄이도록 합니다.

  1. 다시 movetomove로 오셔서 img2img에서 생성한 프롬프트와 설정을 그대로 복사해서 옮겨줍니다.
  2. movie FPS의 경우 초당프레임 횟수입니다. 너무 값을 높일 경우 제작에 시간이 상당히 소요됩니다. 만들고자 하는 영상을 생각하셔서 적당한 값으로 설정하시면 되겠습니다.
  3. Seed값을 img2img에서 생성한 이미지와 동일하게 적어줍니다.
  4. 최종적으로 Generate를 누르게 되면 동영상 생성이 시작됩니다.

 

MovetoMove 영상 생성의 한계점


 

movetomove 방식은 소스영상의 모든 프레임을 따서 프레임별로 사진을 생성하고 이어 붙이는 형식으로 영상을 만들기 때문에 컴퓨터의 성능(특히 GPU)에 따라 시간이 많이 차이 납니다. 기본적으로 5초 내외의 영상을 생성하는 데에도 10분~20분 정도의 시간을 평균적으로 소요하게 됩니다.

소스영상을 넣고 내가 뽑을 캐릭터의 스타일 프롬프트만 입력하면 영상을 쉽게 제작할 수 있다는 큰 장점이 있지만 제작에 있어 소요되는 시간과 기대에 미치지 못하는 퀄리티는 아쉬운 점이라고 할 수 있겠습니다.

 


 

MovetoMove에 이어 Animate Diff에 대해 바로 알아보도록 하겠습니다.

소스영상을 활용하는 MovetoMove와는 다르게 AnimateDiff는 움직이는 이미지 gif를 만들어주는 tool이라고 이해하시면 됩니다. MovetoMove보다 일관성이 더 좋은 편이고 만들기도 쉽습니다. 하지만 길이가 긴 영상은 만들지 못한다는 점 참고하시면 되겠습니다.

 

AnimateDiff의 설치


  1. webui에 접속합니다. (접속방법에 대한 설명은 앞서 많이 다뤘기 때문에 생략합니다)
  2. Extensions - Available - Load from을 클릭합니다.
  3. 검색창에 animated를 검색하셔서 animatediff를 설치합니다.
  4. Installed 탭에서 Apply and restart UI를 클릭해 webui를 재시작합니다.
  5. 설치확인은 상단 탭이 아니라, 하단 쪽 AnimateDiff탭을 확인합니다.(Controlnet과 같은 위치)
  6. https://huggingface.co/guoyww/animatediff/tree/main에 접속하셔서 mm_sd_v15._v2.ckpt를 다운로드하여 스테이블디퓨전 폴더의 extensions - animatediff - model 폴더에 저장합니다. (움직이는 이미지 생성 시에 쓰일 모션 모듈을 설치하는 과정입니다)

 

AnimateDiff를 활용하여 움직이는 이미지 만들기 - Text2img


 

AnimateDiff를 활용하여 text2img에서 움직이는 이미지를 만드는 방법에 대해서 알아보겠습니다.

  1. 움직이게 하고자 하는 이미지를 만듭니다. 세팅, 프롬프트를 입력하여 우선 이미지를 생성합니다.
  2. AnimateDiff탭을 열고 위에서 다운로드한 모션 모듈을 선택합니다.
  3. Enable AnimateDiff를 체크해 줍니다.
  4. 본인이 만들고자 하는 이미지의 세팅을 해줍니다. Number of frames, FPS 값을 설정합니다. 10 프레임으로 3초의 이미지를 만들고 싶을 경우 Number of frames 값은 30, FPS 값은 10이 되겠습니다.
  5. Clsed loop는 첫 프레임과 마지막 프레임을 동일하게 만드는 설정값입니다. 기본값은 R-P입니다.
  6. Frame Interpolation 값에서 FILM을 선택하시면 영상이 조금 더 부드러워 지는 효과가 있습니다. 직접 해보시고 마음에드는 값을 선택하시면 되겠습니다.
  7. ControlNet을 활용하여 조금더 세밀하게 움직이는 부분을 조정할 수도 있습니다.
  8. 앞서 배운 MovetoMove와 마찬가지로 비디오 소스를 넣을 수도 있습니다. 영상 소스의 특정한 움직임이 필요할 경우 사용하시면 됩니다.
  9. 프롬프트창에 움직임에 대한 프롬프트를 입력한 뒤 Generate 하시면 움직이는 이미지가 완성됩니다.

 

AnimateDiff를 활용하여 움직이는 이미지 만들기 - img2img


 

AnimateDiff를 활용하여 img2img에서 움직이는 이미지를 만드는 방법에 대해서 알아보겠습니다.

  1. 움직이게 하고자 하는 이미지를 만듭니다. 세팅, 프롬프트를 입력하여 우선 이미지를 생성합니다.
  2. 사진을 업로드한 뒤 inpaint를 써서 움직이게 만들고 싶은 부위를 칠해줍니다.
  3. 프롬프트 창에 칠한 부분에 대하여 어떠한 영상으로 만들면 될지에 대한 내용을 입력합니다.
  4. text2img에서 설정한 것과 마찬가지로 Enable AnimateDiff를 체크, Number of frames, FPS 값을 설정합니다.
  5. Clsed loop의 경우 A를 선택하게 되면 마지막 프레임을 첫 프레임과 같게 만들려고 시도한다는 뜻입니다. 만들고자 하는 이미지에 맞게 선택하시면 되겠습니다.
  6. Optional last frame의 경우 업로드한 이미지를 마지막 frame으로 만든다는 뜻입니다. 생성한 똑같은 이미지를 넣게 될 경우 이미지는 이동하며 결국 마지막 프레임은 시작과 똑같은 이미지로 끝이 납니다.
  7. ControlNet을 같이 활용하시면 조금 더 퀄리티가 좋은 이미지를 만들 수 있습니다.
  8. Generate 하시면 움직이는 이미지가 완성됩니다.

여기까지 지난 글 Deforum에 이어 MovetoMove와 AnimateDiff에 대해서 알아보았습니다.

실제로 생성해 보시면 아시겠지만, 좋은 퀄리티의 영상을 얻기 위해서는 많은 시도가 필요하고 특히 컨트롤넷이나 다른 플러그인들을 유연하게 활용해야 한다는 것을 알 수 있습니다. 알려드린 것 외에도 많은 설정값들이 있으니 직접 해보면서, 값을 세부조정 하며 생성해 보시는 것을 추천드립니다.

그리고 다음 글에서 다룰 Temporal kit은 소스 영상을 커버하여 상당한 퀄리티의 AI 재생성 영상을 만들 수 있는 tool입니다. 다음 글에는 스테이블디퓨전을 활용한 동영상제작에서 가장 많이 쓰이는 Temporal kit에 대해서 알아보겠습니다. 감사합니다.

 


[이전 글 목록]

2024.03.18 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Text2Image & ControlNet

2024.03.19 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Image2Image

2024.03.20 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Inpaint

2024.03.21 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Dreambooth를 활용한 나만의 모델 학습하기

2024.03.22 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Lora를 통한 모델학습

2024.03.23 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Deforum을 사용해서 동영상 생성해보기

 

본 글은 메타코드 서포터즈 활동을 위해서 강의를 제공받아 작성하였습니다.

메타코드M은 빅데이터, AI 강의를 제공하는 플랫폼이자 IT 현직자 모임을 위한 커뮤니티입니다. 이곳에서는 다양한 IT 분야의 전문 지식과 실무 기술을 배울 수 있는 온라인 강의를 제공하고, 같은 분야에 관심이 있는 사람들과 소통할 수 있는 공간을 제공합니다. 빅데이터 자격증, 데이터 분석, 프로그래밍, 인공지능 등 다양한 분야의 강의와 현직자 커리어 특강을 통해 IT 분야의 전문 지식과 실무 기술을 배우고 커리어를 발전시킬 수 있습니다.

 SD 강의

https://mcode.co.kr/video/list2?viewMode=view&idx=84

 

메타코드M

빅데이터 , AI 강의 플랫폼 & IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.

mcode.co.kr

 

https://www.youtube.com/@mcodeM

 

메타코드M

🔥강의 / 커뮤니티에 참여해 보세요!🔥 https://mcode.co.kr ⚡️강의 플랫폼 (1) 빅데이터 자격증 강의 - 빅데이터 분석기사 / SQLD / ADsP (2) 데이터분석 입문/실습 강의 (3) AI 개발/이론 강의 (4) ChatGPT

www.youtube.com

 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!