Spaces:
Running on Zero
Running on Zero
[Admin maintenance] Support new ZeroGPU hardware
Browse filesThank you so much for having shared this Space with the community on this demo. We have upgraded the ZeroGPU infra-structure to run on modern blackwell architecture.
For that, we need to upgrade your demo to support that. This PR fixes your demo to work with the new architecture. As this is something we broke on our end, we may merge this PR autonomously. If this breaks unexpectedly or brings unintended consequences, feel free to revert, modify or otherwise. Any issues you can email apolinario@huggingface.co
- app.py +12 -0
- requirements.txt +3 -4
app.py
CHANGED
|
@@ -6,6 +6,7 @@ This source code is licensed under the license found in the
|
|
| 6 |
LICENSE file in the root directory of this source tree.
|
| 7 |
"""
|
| 8 |
|
|
|
|
| 9 |
from tempfile import NamedTemporaryFile
|
| 10 |
import argparse
|
| 11 |
import torch
|
|
@@ -250,6 +251,16 @@ def load_melody_filepath(melody_filepath, title, assigned_model, topp, temperatu
|
|
| 250 |
|
| 251 |
return gr.update(value=melody_name), gr.update(maximum=MAX_PROMPT_INDEX, value=-1), gr.update(value=assigned_model, interactive=True), gr.update(value=topp), gr.update(value=temperature), gr.update(value=cfg_coef), gr.update(maximum=MAX_OVERLAP)
|
| 252 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 253 |
def predict(model, text, melody_filepath = None, duration=10, dimension=2, topk=200, topp=0, temperature=1.0, cfg_coef=4.0, background = None, title="UnlimitedMusicGen", settings_font="./assets/arial.ttf", settings_font_color = "#c87f05", seed=-1, overlap=1, prompt_index = 0, include_title = True, include_settings = True, harmony_only = False, profile = gr.OAuthProfile, segment_length = 30, settings_font_size=28, settings_animate_waveform=False, video_orientation="Landscape", excerpt_duration=3.5, return_history_json=False, progress=gr.Progress(track_tqdm=True)):
|
| 254 |
"""
|
| 255 |
Generate music and video based on the provided parameters and model.
|
|
@@ -621,6 +632,7 @@ def fix_path(path: str) -> str:
|
|
| 621 |
return "./" + path[index:].replace("\\", "/")
|
| 622 |
return path
|
| 623 |
# Add this wrapper function above the gr.api definitions
|
|
|
|
| 624 |
def predict_simple(model: str, text: str, melody_filepath: str = None, duration: int = 10, dimension: int = 2, topk: int = 200, topp: float = 0.01, temperature: float = 1.0, cfg_coef: float = 4.0, background: str = "./assets/background.png", title: str = "UnlimitedMusicGen", settings_font: str = "./assets/arial.ttf", settings_font_color: str = "#c87f05", seed: int = -1, overlap: int = 1, prompt_index: int = -1, include_title: bool = True, include_settings: bool = True, harmony_only: bool = False, profile: str = "Satoshi Nakamoto", segment_length: int = 30, settings_font_size: int = 28, settings_animate_waveform: bool = False, video_orientation: str = "Landscape", return_history_json: bool = False) -> tp.List[tp.Tuple[str, str, str]]:
|
| 625 |
"""
|
| 626 |
Generate music and video based on the provided parameters and model.
|
|
|
|
| 6 |
LICENSE file in the root directory of this source tree.
|
| 7 |
"""
|
| 8 |
|
| 9 |
+
import spaces # noqa: F401 (must be imported before torch / any CUDA-touching module)
|
| 10 |
from tempfile import NamedTemporaryFile
|
| 11 |
import argparse
|
| 12 |
import torch
|
|
|
|
| 251 |
|
| 252 |
return gr.update(value=melody_name), gr.update(maximum=MAX_PROMPT_INDEX, value=-1), gr.update(value=assigned_model, interactive=True), gr.update(value=topp), gr.update(value=temperature), gr.update(value=cfg_coef), gr.update(maximum=MAX_OVERLAP)
|
| 253 |
|
| 254 |
+
def _gpu_duration(model=None, text=None, melody_filepath=None, duration=10, *args, **kwargs):
|
| 255 |
+
"""Rough per-call GPU time estimate for the ZeroGPU scheduler, scaled with requested audio duration."""
|
| 256 |
+
try:
|
| 257 |
+
d = int(duration)
|
| 258 |
+
except (TypeError, ValueError):
|
| 259 |
+
d = 10
|
| 260 |
+
return max(30, min(d * 3 + 30, 300))
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
@spaces.GPU(duration=_gpu_duration)
|
| 264 |
def predict(model, text, melody_filepath = None, duration=10, dimension=2, topk=200, topp=0, temperature=1.0, cfg_coef=4.0, background = None, title="UnlimitedMusicGen", settings_font="./assets/arial.ttf", settings_font_color = "#c87f05", seed=-1, overlap=1, prompt_index = 0, include_title = True, include_settings = True, harmony_only = False, profile = gr.OAuthProfile, segment_length = 30, settings_font_size=28, settings_animate_waveform=False, video_orientation="Landscape", excerpt_duration=3.5, return_history_json=False, progress=gr.Progress(track_tqdm=True)):
|
| 265 |
"""
|
| 266 |
Generate music and video based on the provided parameters and model.
|
|
|
|
| 632 |
return "./" + path[index:].replace("\\", "/")
|
| 633 |
return path
|
| 634 |
# Add this wrapper function above the gr.api definitions
|
| 635 |
+
@spaces.GPU(duration=_gpu_duration)
|
| 636 |
def predict_simple(model: str, text: str, melody_filepath: str = None, duration: int = 10, dimension: int = 2, topk: int = 200, topp: float = 0.01, temperature: float = 1.0, cfg_coef: float = 4.0, background: str = "./assets/background.png", title: str = "UnlimitedMusicGen", settings_font: str = "./assets/arial.ttf", settings_font_color: str = "#c87f05", seed: int = -1, overlap: int = 1, prompt_index: int = -1, include_title: bool = True, include_settings: bool = True, harmony_only: bool = False, profile: str = "Satoshi Nakamoto", segment_length: int = 30, settings_font_size: int = 28, settings_animate_waveform: bool = False, video_orientation: str = "Landscape", return_history_json: bool = False) -> tp.List[tp.Tuple[str, str, str]]:
|
| 637 |
"""
|
| 638 |
Generate music and video based on the provided parameters and model.
|
requirements.txt
CHANGED
|
@@ -4,14 +4,13 @@ einops
|
|
| 4 |
flashy>=0.0.1
|
| 5 |
hydra-core>=1.1
|
| 6 |
hydra_colorlog
|
| 7 |
-
|
| 8 |
-
torchaudio>=2.0.0,<2.6.2 --extra-index-url https://download.pytorch.org/whl/cu124
|
| 9 |
soundfile
|
| 10 |
huggingface_hub
|
| 11 |
hf_xet
|
| 12 |
tqdm
|
| 13 |
transformers==4.43.4 # need Encodec there.
|
| 14 |
-
xformers
|
| 15 |
demucs
|
| 16 |
librosa==0.11.0
|
| 17 |
soundfile
|
|
@@ -29,7 +28,7 @@ mutagen
|
|
| 29 |
fastapi>=0.88.0
|
| 30 |
pydantic
|
| 31 |
typer
|
| 32 |
-
torchvision
|
| 33 |
#torchtext
|
| 34 |
pesq
|
| 35 |
pystoi
|
|
|
|
| 4 |
flashy>=0.0.1
|
| 5 |
hydra-core>=1.1
|
| 6 |
hydra_colorlog
|
| 7 |
+
torchaudio
|
|
|
|
| 8 |
soundfile
|
| 9 |
huggingface_hub
|
| 10 |
hf_xet
|
| 11 |
tqdm
|
| 12 |
transformers==4.43.4 # need Encodec there.
|
| 13 |
+
xformers
|
| 14 |
demucs
|
| 15 |
librosa==0.11.0
|
| 16 |
soundfile
|
|
|
|
| 28 |
fastapi>=0.88.0
|
| 29 |
pydantic
|
| 30 |
typer
|
| 31 |
+
torchvision
|
| 32 |
#torchtext
|
| 33 |
pesq
|
| 34 |
pystoi
|