이 저장소에는 텍스트-비디오 모델 적응을 통한 다양하고 정렬된 오디오-비디오 생성 의 공식 PyTorch 구현이 포함되어 있습니다.
우리는 다양한 의미 클래스의 자연스러운 오디오 샘플을 바탕으로 다양하고 사실적인 비디오를 생성하는 작업을 고려합니다. 이 작업을 위해 비디오는 입력 오디오와 전역적으로나 시간적으로 정렬되어야 합니다. 전역적으로 입력 오디오는 의미상 전체 출력 비디오와 연관되고, 시간적으로는 입력 오디오의 각 세그먼트가 해당 세그먼트와 연관됩니다. 그 영상. 우리는 기존의 텍스트 조건 비디오 생성 모델과 사전 훈련된 오디오 인코더 모델을 활용합니다. 제안된 방법은 오디오 기반 표현을 텍스트-비디오 생성 모델에서 예상하는 입력 표현으로 매핑하는 방법을 학습하는 경량 어댑터 네트워크를 기반으로 합니다. 따라서 텍스트, 오디오, 그리고 처음으로 우리가 확인할 수 있는 한 텍스트와 오디오 모두를 조건으로 한 비디오 생성도 가능합니다. 우리는 오디오-비디오 샘플의 중요한 의미론적 다양성을 보여주는 세 가지 데이터 세트에 대해 방법을 광범위하게 검증하고 생성된 비디오와 입력 오디오 샘플의 정렬을 평가하기 위한 새로운 평가 지표(AV-Align)를 추가로 제안합니다. AV-Align은 두 가지 방식 모두에서 에너지 피크의 감지 및 비교를 기반으로 합니다. 최근의 최첨단 접근 방식과 비교하여, 우리의 방법은 콘텐츠와 시간 축 모두에서 입력 사운드에 더 잘 맞는 비디오를 생성합니다. 우리는 또한 우리의 방법으로 제작된 비디오가 더 높은 시각적 품질을 제공하고 더 다양하다는 것을 보여줍니다.
git clone [email protected]:guyyariv/TempoTokens.git cd TempoTokens pip install -r requirements.txt
다음을 사용하여 Accelerate 환경을 초기화합니다.
accelerate config
BEAT 사전 학습된 모델 다운로드
mkdir -p models/BEATs/ && wget -P models/BEATs/ -O "models/BEATs/BEATs_iter3_plus_AS2M_finetuned_on_AS2M_cpt2.pt" "https://valle.blob.core.windows.net/share/BEATs/BEATs_iter3_plus_AS2M_finetuned_on_AS2M_cpt2.pt?sv=2020-08-04&st=2023-03-01T07%3A51%3A05Z&se=2033-03-02T07%3A51%3A00Z&sr=c&sp=rl&sig=QJXmSJG9DbMKf48UDIU1MfzIro8HQOf3sqlNXiflY1I%3D"
VGGSound, Landscape 및 AudioSet-Drum을 포함하여 우리가 훈련한 각 데이터세트에 대해 관련 명령을 실행합니다.
accelerate launch train.py --config configs/v2/vggsound.yaml
accelerate launch train.py --config configs/v2/landscape.yaml
accelerate launch train.py --config configs/v2/audioset_drum.yaml
구성 파일을 검토하고 기본 설정에 따라 매개변수를 사용자 정의하는 것이 좋습니다.
다음 링크를 방문하여 훈련을 수행한 세 가지 데이터 세트에 대해 사전 훈련된 가중치를 얻습니다. https://drive.google.com/drive/folders/10pRWoq0m5torvMXILmIQd7j9fLPEEHtS "models/"라는 디렉터리에 폴더를 저장하는 것이 좋습니다. "
inference.py
스크립트는 훈련된 체크포인트를 사용하여 비디오를 생성하는 목적으로 사용됩니다. 제공된 명령을 사용하여 모델 훈련을 완료하거나 사전 훈련된 모델을 선택하면 VGGSound, Landscape 및 AudioSet-Drum과 같이 훈련에 활용한 데이터 세트에서 비디오를 쉽게 만들 수 있습니다.
accelerate launch inference.py --mapper_weights models/vggsound/learned_embeds.pth --testset vggsound
accelerate launch inference.py --mapper_weights models/landscape/learned_embeds.pth --testset landscape
accelerate launch inference.py --mapper_weights models/audioset_drum/learned_embeds.pth --testset audioset_drum
또한 아래와 같이 자신의 오디오에서 비디오를 생성할 수 있는 기능도 있습니다.
accelerate launch inference.py --mapper_weights models/vggsound/learned_embeds.pth --audio_path /audio/path
> python inference.py --help usage: inference.py [-h] -m MODEL -p PROMPT [-n NEGATIVE_PROMPT] [-o OUTPUT_DIR] [-B BATCH_SIZE] [-W WIDTH] [-H HEIGHT] [-T NUM_FRAMES] [-WS WINDOW_SIZE] [-VB VAE_BATCH_SIZE] [-s NUM_STEPS] [-g GUIDANCE_SCALE] [-i INIT_VIDEO] [-iw INIT_WEIGHT] [-f FPS] [-d DEVICE] [-x] [-S] [-lP LORA_PATH] [-lR LORA_RANK] [-rw] options: -h, --help show this help message and exit -m MODEL, --model MODEL HuggingFace repository or path to model checkpoint directory -p PROMPT, --prompt PROMPT Text prompt to condition on -n NEGATIVE_PROMPT, --negative-prompt NEGATIVE_PROMPT Text prompt to condition against -o OUTPUT_DIR, --output-dir OUTPUT_DIR Directory to save output video to -B BATCH_SIZE, --batch-size BATCH_SIZE Batch size for inference -W WIDTH, --width WIDTH Width of output video -H HEIGHT, --height HEIGHT Height of output video -T NUM_FRAMES, --num-frames NUM_FRAMES Total number of frames to generate -WS WINDOW_SIZE, --window-size WINDOW_SIZE Number of frames to process at once (defaults to full sequence). When less than num_frames, a round robin diffusion process is used to denoise the full sequence iteratively one window at a time. Must be divide num_frames exactly! -VB VAE_BATCH_SIZE, --vae-batch-size VAE_BATCH_SIZE Batch size for VAE encoding/decoding to/from latents (higher values = faster inference, but more memory usage). -s NUM_STEPS, --num-steps NUM_STEPS Number of diffusion steps to run per frame. -g GUIDANCE_SCALE, --guidance-scale GUIDANCE_SCALE Scale for guidance loss (higher values = more guidance, but possibly more artifacts). -i INIT_VIDEO, --init-video INIT_VIDEO Path to video to initialize diffusion from (will be resized to the specified num_frames, height, and width). -iw INIT_WEIGHT, --init-weight INIT_WEIGHT Strength of visual effect of init_video on the output (lower values adhere more closely to the text prompt, but have a less recognizable init_video). -f FPS, --fps FPS FPS of output video -d DEVICE, --device DEVICE Device to run inference on (defaults to cuda). -x, --xformers Use XFormers attnetion, a memory-efficient attention implementation (requires `pip install xformers`). -S, --sdp Use SDP attention, PyTorch's built-in memory-efficient attention implementation. -lP LORA_PATH, --lora_path LORA_PATH Path to Low Rank Adaptation checkpoint file (defaults to empty string, which uses no LoRA). -lR LORA_RANK, --lora_rank LORA_RANK Size of the LoRA checkpoint's projection matrix (defaults to 64). -rw, --remove-watermark Post-process the videos with LAMA to inpaint ModelScope's common watermarks.
우리 코드는 부분적으로 텍스트-비디오-미세 조정을 기반으로 구축되었습니다.
귀하의 연구에 우리의 작업을 사용하는 경우 다음 논문을 인용하십시오.
@misc{yariv2023diverse, title={Diverse and Aligned Audio-to-Video Generation via Text-to-Video Model Adaptation}, author={Guy Yariv and Itai Gat and Sagie Benaim and Lior Wolf and Idan Schwartz and Yossi Adi}, year={2023}, eprint={2309.16429}, archivePrefix={arXiv}, primaryClass={cs.LG} }
이 저장소는 LICENSE 파일에 있는 MIT 라이센스에 따라 릴리스됩니다.