يحتوي هذا الريبو على تطبيق PyTorch الرسمي لتوليد الصوت إلى الفيديو المتنوع والمتوافق عبر تعديل نموذج النص إلى الفيديو
نحن نعتبر مهمة إنشاء مقاطع فيديو متنوعة وواقعية تسترشد بعينات صوتية طبيعية من مجموعة واسعة من الفئات الدلالية. بالنسبة لهذه المهمة، يجب أن تتم محاذاة مقاطع الفيديو عالميًا ومؤقتًا مع صوت الإدخال: عالميًا، يرتبط صوت الإدخال دلاليًا بالفيديو الناتج بالكامل، ومؤقتًا، يرتبط كل جزء من صوت الإدخال بمقطع مناظر من الفيديو هذا الفيديو. نحن نستخدم نموذجًا موجودًا لإنشاء الفيديو المكيف بالنص ونموذجًا لتشفير الصوت تم تدريبه مسبقًا. تعتمد الطريقة المقترحة على شبكة محولات خفيفة الوزن، والتي تتعلم كيفية تعيين التمثيل المعتمد على الصوت لتمثيل الإدخال المتوقع بواسطة نموذج إنشاء تحويل النص إلى فيديو. على هذا النحو، فإنه يتيح أيضًا إنشاء فيديو مشروطًا بالنص والصوت، ولأول مرة بقدر ما نستطيع التأكد، على كل من النص والصوت. نحن نتحقق من صحة طريقتنا على نطاق واسع على ثلاث مجموعات بيانات توضح تنوعًا دلاليًا كبيرًا لعينات الصوت والفيديو ونقترح كذلك مقياس تقييم جديد (AV-Align) لتقييم محاذاة مقاطع الفيديو التي تم إنشاؤها مع عينات الصوت المدخلة. يعتمد AV-Align على اكتشاف ومقارنة قمم الطاقة في كلتا الطريقتين. بالمقارنة مع أحدث الأساليب، تعمل طريقتنا على إنشاء مقاطع فيديو تتماشى بشكل أفضل مع صوت الإدخال، سواء فيما يتعلق بالمحتوى أو المحور الزمني. نوضح أيضًا أن مقاطع الفيديو التي تنتجها طريقتنا تقدم جودة مرئية أعلى وأكثر تنوعًا.
git clone [email protected]:guyyariv/TempoTokens.git cd TempoTokens pip install -r requirements.txt
وقم بتهيئة بيئة Accelerate باستخدام:
accelerate config
قم بتنزيل نموذج BEATs المدرب مسبقًا
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} }
تم إصدار هذا المستودع بموجب ترخيص MIT كما هو موجود في ملف الترخيص.