schnik's picture
Upload folder using huggingface_hub
e54d50b verified
raw
history blame
No virus
4.36 kB
import gradio as gr
import os
import numpy as np
def no_cpu_warning(video_file, dataset, lora, size):
gr.Warning("This interface is running on CPU. Only cached examples are displayed here, no new music can be generated.")
output = "./cached_examples/"
output += "peft" if lora else "audiocraft"
output += "_" + dataset + "_" + size + "_" + video_file[-7:-4]
chosen_video = np.random.choice(['v', 'v1', 'v2'])
output += "_" + chosen_video + ".mp4"
if not os.path.exists(output):
print(output)
raise gr.Error("This combination of video and model has not been cached. Please use the other model or try one of the listed examples instead.")
print("Displaying video: " + output)
return output
interface = gr.Interface(fn=no_cpu_warning,
inputs=[
gr.Video(value="videos/n_5.mp4",
label="Video Input",
min_length=5,
max_length=20,
sources=['upload'],
show_download_button=True,
include_audio=True),
gr.Radio(["nature", "symmv"],
value="nature",
label="Available Models",
info="Choose one of the available Datasets on which the models has been trained on."),
gr.Radio([False, True],
label="Use the LoRA version of the MusicGen Audio Decoder",
value=False,
info="If set to 'True' the MusicGen Audio Decoder models trained with LoRA "
"(Low Rank Adaptation) are used. If set to 'False', the original "
"MusicGen models are used instead."),
gr.Radio(["small", "medium", "large"],
label="Model Size",
value="large",
info="Choose one of the available model sizes. The larger models are more likely produce "
"results of higher audio quality, but also take more time to generate it."),
],
outputs=[gr.Video(label="video output")],
examples=[
[os.path.abspath("./videos/n_1.mp4"), "nature", False, "large"],
[os.path.abspath("./videos/n_2.mp4"), "nature", False, "large"],
[os.path.abspath("./videos/n_3.mp4"), "nature", False, "large"],
[os.path.abspath("./videos/n_4.mp4"), "nature", False, "large"],
[os.path.abspath("./videos/n_5.mp4"), "nature", True, "large"],
[os.path.abspath("./videos/n_6.mp4"), "nature", True, "large"],
[os.path.abspath("./videos/n_7.mp4"), "nature", True, "large"],
[os.path.abspath("./videos/n_8.mp4"), "nature", True, "large"],
[os.path.abspath("./videos/s_1.mp4"), "symmv", False, "large"],
[os.path.abspath("./videos/s_2.mp4"), "symmv", False, "large"],
[os.path.abspath("./videos/s_3.mp4"), "symmv", False, "large"],
[os.path.abspath("./videos/s_4.mp4"), "symmv", False, "large"],
[os.path.abspath("./videos/s_5.mp4"), "symmv", True, "large"],
[os.path.abspath("./videos/s_6.mp4"), "symmv", True, "large"],
[os.path.abspath("./videos/s_7.mp4"), "symmv", True, "large"],
[os.path.abspath("./videos/s_8.mp4"), "symmv", True, "large"],
],
cache_examples=False,
)
if __name__ == "__main__":
interface.launch(
share=True
)