Spaces:
Running
Running
# coding=utf-8 | |
# V2A | |
import logging | |
class Step1: | |
def __init__(self, step1_mode): | |
self.log = logging.getLogger(self.__class__.__name__) | |
self.log.setLevel(logging.INFO) | |
if step1_mode.startswith('mmaudio'): | |
from v2a_models.v2a_mmaudio import V2A_MMAudio | |
variant = step1_mode.replace("mmaudio_", "") | |
self.v2a_model = V2A_MMAudio(variant) | |
elif step1_mode == "foleycrafter": | |
from v2a_models.v2a_foleycrafter import V2A_FoleyCrafter | |
self.v2a_model = V2A_FoleyCrafter() | |
else: | |
self.log.error(f"Error step1_mode: {step1_mode}") | |
def run(self, video_path, output_dir, prompt='', negative_prompt='', duration=10, seed=42, is_postp=False,): | |
# self.log.info("Step1: Generate audio from video.") | |
step1_audio_path, step1_video_path = self.v2a_model.generate_audio( | |
video_path=video_path, | |
output_dir=output_dir, | |
prompt=prompt, | |
negative_prompt=negative_prompt, | |
duration=duration, | |
seed=seed, | |
is_postp=is_postp) | |
self.log.info(f"The audio generated by Step1 is in {step1_audio_path}, and the video is in {step1_video_path}") | |
self.log.info("Finish Step1 successfully.\n") | |
return step1_audio_path, step1_video_path | |