
L'idée de ce référentiel est de générer automatiquement un certain nombre de candidats à la bande-annonce pour une vidéo donnée, l'utilisateur n'a besoin que de fournir le fichier vidéo et quelques paramètres de texte, et tout le reste est pris en charge.
Tout d'abord, nous prenons éventuellement l'intrigue de la vidéo sur IMDB et la divisions en sous-intrigues, au lieu de prendre à IMDB, vous pouvez également fournir votre propre complot ou le modifier, ces sous-intrigues décriront grossièrement les parties principales de la vidéo, et ensuite, nous générons une voix pour chaque sous-intrigue. Maintenant que nous avons la partie parlée de la bande-annonce, nous avons juste besoin de prendre de courts clips correspondant à chaque sous-intrigue et d'appliquer la voix sur eux, nous le faisons en échantillonnant de nombreuses cadres de la vidéo et en prenant certains des cadres les plus similaires à chaque sous-intrigue, avec cela, nous avons les images qui représentent le mieux chaque sous-parcelle, la prochaine étape serait de prendre un clip de quelques secondes à partir de chaque trame. Après avoir généré l'audio et la partie visuelle de la bande-annonce, nous devons juste combiner chaque audio avec le clip correspondant et enfin rejoindre tous les clips dans la bande-annonce finale.
Toutes ces étapes généreront des fichiers intermédiaires que vous pouvez inspecter et supprimer manuellement ce que vous n'aimez pas pour améliorer les résultats.
Remarque: Avec les paramètres par défaut, pour chaque sous-intrigue, un seul audio et un clip seront générés, créant ainsi un seul candidat de bande-annonce. Si vous souhaitez créer plus de candidats à la bande-annonce ou avoir plus d'options d'Audios et de clips parmi lesquels choisir, vous pouvez augmenter
n_audiosetn_retrieved_images, gardez à l'esprit que les candidats à la bande-annonce augmentent géométriquement avec cela, pourn_audios = 3etn_retrieved_images = 3vous aurez 9 (3 ** 3) les candidats de la remorque à la fin.
L'approche recommandée pour utiliser ce référentiel est avec Docker, mais vous pouvez également utiliser un VENV personnalisé, assurez-vous simplement d'installer toutes les dépendances.
L'utilisateur n'a besoin que de fournir deux entrées , le fichier vidéo et l'ID IMDB à partir de cette vidéo. Après cela, vous pouvez accéder au fichier configs.yaml et ajuster les valeurs en conséquence, video_id sera l'ID IMDB, et video_path devrait pointer vers le fichier de la vidéo, vous pouvez également mettre à jour project_name au nom de votre vidéo et fournir une voix de référence avec reference_voice_path .
L'URL de toute l'iMDB de toute IMDB ressemblera à ce "https://www.imdb.com/title/TT0063350", l'ID sera la partie entière après title/ , dans ce cas pour "Night of the Living Dead" Ce serait 0063350 , IMDB a principalement des informations de film mais vous pouvez également trouver des épisodes de la série et d'autres vidéos.
project_dir: 'projects'
project_name: Natural_History_Museum
video_path: 'movies/Natural_History_Museum.mp4'
plot_filename: 'plot.txt'
video_retrieval:
video_url: 'https://www.youtube.com/watch?v=fdcEKPS6tOQ'
plot_retrieval:
video_id:
subplot:
split_char:
voice:
model_id: 'tts_models/multilingual/multi-dataset/xtts_v2'
device: cpu
reference_voice_path: 'voices/sample_voice.wav'
tts_language: en
n_audios: 1
frame_sampling:
n_frames: 500
frame_ranking:
model_id: 'clip-ViT-B-32'
device: cpu
n_retrieved_images: 1
similarity_batch_size: 128
clip:
min_clip_len: 3
audio_clip:
clip_volume: 0.1
voice_volume: 1.0
Construisez l'image Docker
make buildExécutez l'intégralité du pipeline pour créer la bande-annonce à partir d'une vidéo et d'un complot
make trailerExécutez tout le pipeline pour créer la bande-annonce à partir d'une vidéo et récupérer l'intrigue à partir d'IMDB
make trailer_imdbExécutez l'intégralité du pipeline pour créer la bande-annonce à partir d'un intrigue et télécharger la vidéo à partir de YouTube
make trailer_youtubeExécutez l'intégralité du pipeline pour créer la bande-annonce en téléchargeant la vidéo à partir de YouTube et en récupérant l'intrigue à partir d'IMDB
make trailer_imdb_youtubeExécutez l'étape de récupération vidéo
make video_retrievalExécutez l'étape de récupération de l'intrigue
make plot_retrievalExécutez l'étape de sous-intrigue
make subplotExécutez l'étape vocale
make voiceExécutez l'étape du cadre (échantillonnage du cadre)
make frameExécutez l'étape Image_Retrieval (classement des trames)
make image_retrievalExécutez l'étape de clip
make clipExécutez l'étape audio_clip
make audio_clipExécutez l'étape join_clip
make join_clipAppliquez des peluches et du formatage au code (uniquement nécessaire pour le développement)
make lint Pour le développement, assurez-vous d'installer requirements-dev.txt et l'exécuter, make lint pour maintenir le style de codage.
Par défaut, j'utilise XTTS à partir de Coqui AI, le modèle est sous la licence Coqui Public Model, assurez-vous d'y jeter un œil si vous prévoyez d'utiliser les sorties ici.