lym0302
our
1fd4e9c
# 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