2024년 2월 25일 일요일

OpenAI SORA 같은 AI Text To Video 기술 개발 동향과 사용법 소개

이 글은 생성AI Text To Video 모델 개발하는 방법을 정리한다.

머리말
얼마전 공개된 OpenAI의 SORA는 생성AI 기술이 혁신적으로 발전되고 있음을 보여준다. 현재, 이와 관련된 다양한 오픈소스 프로젝트가 진행중에 있어, 이를 간략히 살펴보도록 한다. 
Text to Video(Lumiere, 2024)

이 기술은 간단히 말하면, 기존 이미지-텍스트 생성AI 기술인 스테이블 디퓨전에서 시간축을 학습 시 함께 고려한 것이다. 이와 관련된 좀 더 상세한 설명은 다음 링크를 참고한다.
오픈AI 소라 동작 메커니즘 설명

Generative Models by Stability AI
2023년 11월에 릴리즈한 이 오픈소스 프로젝트는 Stability AI에서 개발한 것이다.

이 기술은 공개한 SDXL기술에 기반하여, ADD(Adversarial Diffusion Distillation)을 적용하여, 높은 해상도의 영상을 생성한다(논문 참고). ADD기술을 통해, 디퓨전 시 문제되는 흐릿한 영상 생성 이슈를 해결하고, 엉뚱하게 생성되는 손가락 문제 등을 해결한다. 
ADD

이 기술은 오픈소스로 깃허브에 공개되었다.

CogVideo
칭화대학 연구소에서 개발한 CogVideo는 막대한 학습 비용 문제를 해결하기 위해, 사전학습된 모델을 상혹하여 9B 파라메터 모델 수준에서 학습이 가능한 CogVideo모델을 제안한다. 


이 기술은 동영상의 각 프레임을 이미지 토큰화하고, 고정 길이 훈련 시퀀스로 만든다. 프레임 사이는 보간되도록 모델을 처리한다. 고품질 텍스트-비디오 학습 데이터를 수집하는 것은 매우 많은 비용이 소모되므로, 사전 훈련된 이미지 생성 모델을 사용한다. 트랜스포머 어텐션은 듀얼 채널로 확장되었다. 

이 기술 또한 오픈소스로 공개되어 있다.
이외에 다음과 같은 생성 AI 모델이 공개되어 있다.
  • TiVGAN 및 MoCoGAN(code): GAN 모델 기반 영상 생성 방법. 초기 기술 연구 방향을 확인해 볼 수 있음

텍스트-to-비디오 생성AI 프로그램 개발해 보기
이와 관련된 서비스 개발 시 쉽게 사용할 수 있는 모델 위주로 라이브러리를 간단히 사용해본다. 이 글에서는 허깅페이스에서 개발한 트랜스포머의 디퓨전 라이브러리를 사용한다. 

터미널에서 다음을 실행한다.
pip install transformers diffusion accelerate

새로운 파이썬 파일 text-video.py를 만들고, 다음 코드를 입력한다.
from transformers import AutoTokenizer, AutoModelForCLIP
from diffusers.pipelines import TextToVideoZeroSDXLPipeline
from torchvision import video
from transformers import AutoTokenizer, AutoModelForCLIP
from diffusers.pipelines import TextToVideoZeroSDXLPipeline
from torchvision import video

text_prompt = "A group of friends enjoy a picnic in a park on a sunny day."

text_encoder = AutoModelForCLIP.from_pretrained("laion/CLIP-ViT-bigG-14-laion2B-39B-b160k")
pipeline = TextToVideoZeroSDXLPipeline(text_encoder=text_encoder)

video_path = pipeline.generate_video(text=text_prompt, resolution="1920x1080")
video = video.VideoReader(video_path)
video.write_videofile("generated_video.mp4")

실행하면, 다음과 같이 입력된 텍스트에 맞는 영상이 생성되는 것을 확인할 수 있다.

레퍼런스

댓글 없음:

댓글 쓰기