Tammy는 딥 러닝 모델을 사용하여 원본 뮤직 비디오를 생성하는 Python/Pytorch 기반 오픈 소스 프로젝트입니다. 이를 통해 사용자는 BPM이나 피아노 패턴과 같은 노래의 다양한 측면과 동기화되는 텍스트 프롬프트 전환을 기반으로 비디오를 자동으로 생성할 수 있습니다. 이 프로젝트는 LSTM을 사용한 오디오 소스 분리, GAN을 사용한 프레임 생성, 초해상도 모델을 사용한 공간 업스케일링, 프레임 보간 모델을 사용한 시간 업샘플링을 포함하여 비디오 생성 프로세스의 다양한 단계에서 딥 러닝 모델을 활용합니다. 이 프로젝트의 목표는 고유한 뮤직 비디오를 제작하기 위한 맞춤형 모델 파이프라인을 구축할 수 있는 사용하기 쉬운 프레임워크를 제공하는 것입니다.
특징
빠른 시작
데이터 흐름 및 코드 구조
세대 설정
더 많은 예
기여
빠른 시작을 위해:
sudo apt-get install ffmpeg libsndfile1
및 git-lfs를 설치하세요.pip install .
settingssettings_cpu.yaml
및 기본 노래 thoughtsarebeings_clip.wav
의 기본 설정을 사용하는 python run_tammy.py
실행합니다. tammy
패키지는 자신의 스크립트 또는 기타 설정 파일에서 쉽게 사용할 수 있으며 오디오 파일은 python run_tammy.py --settings_file <your_settings.yaml> --audio_path <your_audio_file.mp3/wav>
실행하여 기존 run_tammy.py
스크립트와 함께 사용할 수 있습니다. python run_tammy.py --settings_file <your_settings.yaml> --audio_path <your_audio_file.mp3/wav>
.
tammy.prompthandler
생성 설정에 대한 보다 간결한 설명을 기반으로 생성될 모든 프레임(예: 번역 또는 텍스트 프롬프트)에 대한 설정을 생성합니다.tammy.sequence_maker
에는 텍스트 프롬프트를 기반으로 이미지 시퀀스를 생성하는 generator
있습니다. 현재 지원되는 모델은 VQGAN-CLIP 및 Stable-Diffusion 입니다.tammy.upscaling
생성된 이미지를 초해상도로 확장합니다. 현재 지원되는 유일한 모델은 SwinIR 입니다.tammy.superslowmo
생성된(선택적으로 업스케일된) 이미지를 보간하여 sequence_maker
를 사용하여 모든 프레임을 생성할 필요 없이 FPS를 높입니다. 현재 지원되는 유일한 모델은 SuperSloMo 입니다. 비디오 생성에는 <settings_file_name>.yaml
파일에 지정된 많은 구성 설정이 있습니다. 주로 테스트에 사용되는 일부 예제 설정 파일은 settings
폴더에서 찾을 수 있습니다. 대부분의 설정 이름( settings.yaml
의 키)은 설명이 필요합니다. 명확성을 위해 일부 설정을 아래에 설명합니다.
계측기는 프레임 전환을 조정하는 데 사용됩니다. 특히 Animation_2d 모드에서 확대/축소하고 보간 모드에서 전환 속도를 표시합니다. tammy
에게는 도구를 제공하는 두 가지 옵션이 있습니다.
do_spleet: True
설정하고 instrument: <instrument name>
zoom_instrument: <file_name>
으로 키프레임 파일을 제공하고 파일 이름을 file_name_fps.txt
로 지정하여 수동으로 수행합니다. 여기서 fps
sequence_settings.initial_fps
의 fps
값과 일치해야 합니다. 키프레임은 https://www.chigozie.co.uk/audio-keyframe-generator/ 등을 사용하여 수동으로 생성할 수 있습니다. sequence_settings.initial_fps
설정은 오디오 클립의 길이에 따라 생성되는 프레임 수를 결정합니다. 프레임 보간을 사용하면 do_slowmo: True
설정하고 initial_fps
의 배수여야 하는 target_fps
를 제공하여 프레임 속도를 목표까지 높일 수 있습니다. 이를 통해 generator
사용하여 처음부터 모든 프레임을 생성하는 것보다 더 빠르게 높은 프레임 속도의 비디오를 생성할 수 있습니다.
원하는 경우, 생성된 프레임 수는 sequence_settings.max_frames
제공하여 제한할 수 있습니다. 이 경우 생성된 비디오 길이는 제공된 오디오 클립보다 짧으며 max_frames
/ initial_fps
입니다.
tammy
의 VQGAN-CLIP 및 Animation_2d 모드를 사용하여 생성된 비디오입니다.
전체 영상(최고의 경험을 위해 4K로 시청하세요!: https://www.youtube.com/watch?v=T_bii9VLDk0
tammy
의 Stable Diffusion 및 Interpolation 모드를 사용하여 생성된 비디오.
<your_name><feature>
라는 새 분기에 기능과 관련 테스트를 추가하세요.pytest
실행하여 모든 테스트가 통과하는지 확인하세요.pre-commit install
.