Spaces:
Running
on
T4
Running
on
T4
UI Update - Add Mic Input
Browse files- app.py +32 -15
- web-ui.bat +1 -3
app.py
CHANGED
|
@@ -38,6 +38,11 @@ def interrupt():
|
|
| 38 |
global INTERRUPTING
|
| 39 |
INTERRUPTING = True
|
| 40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
def make_waveform(*args, **kwargs):
|
| 43 |
# Further remove some warnings.
|
|
@@ -264,6 +269,9 @@ def ui(**kwargs):
|
|
| 264 |
css="""
|
| 265 |
#col-container {max-width: 910px; margin-left: auto; margin-right: auto;}
|
| 266 |
a {text-decoration-line: underline; font-weight: 600;}
|
|
|
|
|
|
|
|
|
|
| 267 |
"""
|
| 268 |
with gr.Blocks(title="UnlimitedMusicGen", css=css) as demo:
|
| 269 |
gr.Markdown(
|
|
@@ -288,18 +296,21 @@ def ui(**kwargs):
|
|
| 288 |
with gr.Row():
|
| 289 |
with gr.Column():
|
| 290 |
with gr.Row():
|
| 291 |
-
|
| 292 |
-
|
| 293 |
duration = gr.Slider(minimum=1, maximum=720, value=10, label="Duration", interactive=True)
|
| 294 |
-
model = gr.Radio(["melody", "medium", "small", "large"], label="Model", value="melody", interactive=True)
|
| 295 |
-
with gr.Column():
|
| 296 |
-
melody_filepath = gr.Audio(source="upload", type="filepath", label="Melody Condition (optional)", interactive=True)
|
| 297 |
-
prompt_index = gr.Slider(label="Melody Condition Sample Segment", minimum=-1, maximum=MAX_PROMPT_INDEX, step=1, value=0, interactive=True, info="Which 30 second segment to condition with, - 1 condition each segment independantly")
|
| 298 |
-
harmony_only = gr.Radio(label="Harmony Only",choices=["No", "Yes"], value="No", interactive=True, info="Remove Drums?")
|
| 299 |
with gr.Row():
|
| 300 |
-
submit = gr.Button("
|
| 301 |
# Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license.
|
| 302 |
-
_ = gr.Button("Interrupt").click(fn=interrupt, queue=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 303 |
with gr.Accordion("Video", open=False):
|
| 304 |
with gr.Row():
|
| 305 |
background= gr.Image(value="./assets/background.png", source="upload", label="Background", shape=(768,512), type="filepath", interactive=True)
|
|
@@ -328,6 +339,7 @@ def ui(**kwargs):
|
|
| 328 |
wave_file = gr.File(label=".wav file", elem_id="output_wavefile", interactive=True)
|
| 329 |
seed_used = gr.Number(label='Seed used', value=-1, interactive=False)
|
| 330 |
|
|
|
|
| 331 |
melody_filepath.change(load_melody_filepath, inputs=[melody_filepath, title], outputs=[title, prompt_index , model], api_name="melody_filepath_change")
|
| 332 |
reuse_seed.click(fn=lambda x: x, inputs=[seed_used], outputs=[seed], queue=False, api_name="reuse_seed")
|
| 333 |
submit.click(predict, inputs=[model, text,melody_filepath, duration, dimension, topk, topp, temperature, cfg_coef, background, title, settings_font, settings_font_color, seed, overlap, prompt_index, include_title, include_settings, harmony_only], outputs=[output, wave_file, seed_used], api_name="submit")
|
|
@@ -337,30 +349,35 @@ def ui(**kwargs):
|
|
| 337 |
[
|
| 338 |
"4/4 120bpm 320kbps 48khz, An 80s driving pop song with heavy drums and synth pads in the background",
|
| 339 |
"./assets/bach.mp3",
|
| 340 |
-
"melody"
|
|
|
|
| 341 |
],
|
| 342 |
[
|
| 343 |
"4/4 120bpm 320kbps 48khz, A cheerful country song with acoustic guitars",
|
| 344 |
"./assets/bolero_ravel.mp3",
|
| 345 |
-
"melody"
|
|
|
|
| 346 |
],
|
| 347 |
[
|
| 348 |
"4/4 120bpm 320kbps 48khz, 90s rock song with electric guitar and heavy drums",
|
| 349 |
None,
|
| 350 |
-
"medium"
|
|
|
|
| 351 |
],
|
| 352 |
[
|
| 353 |
"4/4 120bpm 320kbps 48khz, a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions",
|
| 354 |
"./assets/bach.mp3",
|
| 355 |
-
"melody"
|
|
|
|
| 356 |
],
|
| 357 |
[
|
| 358 |
"4/4 320kbps 48khz, lofi slow bpm electro chill with organic samples",
|
| 359 |
None,
|
| 360 |
-
"medium",
|
|
|
|
| 361 |
],
|
| 362 |
],
|
| 363 |
-
inputs=[text, melody_filepath, model],
|
| 364 |
outputs=[output]
|
| 365 |
)
|
| 366 |
|
|
|
|
| 38 |
global INTERRUPTING
|
| 39 |
INTERRUPTING = True
|
| 40 |
|
| 41 |
+
def toggle_audio_src(choice):
|
| 42 |
+
if choice == "mic":
|
| 43 |
+
return gr.update(source="microphone", value=None, label="Microphone")
|
| 44 |
+
else:
|
| 45 |
+
return gr.update(source="upload", value=None, label="File")
|
| 46 |
|
| 47 |
def make_waveform(*args, **kwargs):
|
| 48 |
# Further remove some warnings.
|
|
|
|
| 269 |
css="""
|
| 270 |
#col-container {max-width: 910px; margin-left: auto; margin-right: auto;}
|
| 271 |
a {text-decoration-line: underline; font-weight: 600;}
|
| 272 |
+
#btn-generate {background-image:linear-gradient(to right bottom, rgb(157, 255, 157), rgb(229, 255, 235));}
|
| 273 |
+
#btn-generate:hover {background-image:linear-gradient(to right bottom, rgb(229, 255, 229), rgb(255, 255, 255));}
|
| 274 |
+
#btn-generate:active {background-image:linear-gradient(to right bottom, rgb(229, 255, 235), rgb(157, 255, 157));}
|
| 275 |
"""
|
| 276 |
with gr.Blocks(title="UnlimitedMusicGen", css=css) as demo:
|
| 277 |
gr.Markdown(
|
|
|
|
| 296 |
with gr.Row():
|
| 297 |
with gr.Column():
|
| 298 |
with gr.Row():
|
| 299 |
+
text = gr.Text(label="Describe your music", interactive=True, value="4/4 100bpm 320kbps 48khz, Industrial/Electronic Soundtrack, Dark, Intense, Sci-Fi")
|
| 300 |
+
with gr.Column():
|
| 301 |
duration = gr.Slider(minimum=1, maximum=720, value=10, label="Duration", interactive=True)
|
| 302 |
+
model = gr.Radio(["melody", "medium", "small", "large"], label="AI Model", value="melody", interactive=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 303 |
with gr.Row():
|
| 304 |
+
submit = gr.Button("Generate", elem_id="btn-generate")
|
| 305 |
# Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license.
|
| 306 |
+
_ = gr.Button("Interrupt", elem_id="btn-interrupt").click(fn=interrupt, queue=False)
|
| 307 |
+
with gr.Row():
|
| 308 |
+
with gr.Column():
|
| 309 |
+
melody_filepath = gr.Audio(source="upload", type="filepath", label="Melody Condition (optional)", interactive=True, elem_id="melody-input")
|
| 310 |
+
harmony_only = gr.Radio(label="Use Harmony Only",choices=["No", "Yes"], value="No", interactive=True, info="Remove Drums?")
|
| 311 |
+
with gr.Column():
|
| 312 |
+
radio = gr.Radio(["file", "mic"], value="file", label="Condition on a melody (optional) File or Mic")
|
| 313 |
+
prompt_index = gr.Slider(label="Melody Condition Sample Segment", minimum=-1, maximum=MAX_PROMPT_INDEX, step=1, value=0, interactive=True, info="Which 30 second segment to condition with, - 1 condition each segment independantly")
|
| 314 |
with gr.Accordion("Video", open=False):
|
| 315 |
with gr.Row():
|
| 316 |
background= gr.Image(value="./assets/background.png", source="upload", label="Background", shape=(768,512), type="filepath", interactive=True)
|
|
|
|
| 339 |
wave_file = gr.File(label=".wav file", elem_id="output_wavefile", interactive=True)
|
| 340 |
seed_used = gr.Number(label='Seed used', value=-1, interactive=False)
|
| 341 |
|
| 342 |
+
radio.change(toggle_audio_src, radio, [melody_filepath], queue=False, show_progress=False)
|
| 343 |
melody_filepath.change(load_melody_filepath, inputs=[melody_filepath, title], outputs=[title, prompt_index , model], api_name="melody_filepath_change")
|
| 344 |
reuse_seed.click(fn=lambda x: x, inputs=[seed_used], outputs=[seed], queue=False, api_name="reuse_seed")
|
| 345 |
submit.click(predict, inputs=[model, text,melody_filepath, duration, dimension, topk, topp, temperature, cfg_coef, background, title, settings_font, settings_font_color, seed, overlap, prompt_index, include_title, include_settings, harmony_only], outputs=[output, wave_file, seed_used], api_name="submit")
|
|
|
|
| 349 |
[
|
| 350 |
"4/4 120bpm 320kbps 48khz, An 80s driving pop song with heavy drums and synth pads in the background",
|
| 351 |
"./assets/bach.mp3",
|
| 352 |
+
"melody",
|
| 353 |
+
"80s Pop Synth"
|
| 354 |
],
|
| 355 |
[
|
| 356 |
"4/4 120bpm 320kbps 48khz, A cheerful country song with acoustic guitars",
|
| 357 |
"./assets/bolero_ravel.mp3",
|
| 358 |
+
"melody",
|
| 359 |
+
"Country Guitar"
|
| 360 |
],
|
| 361 |
[
|
| 362 |
"4/4 120bpm 320kbps 48khz, 90s rock song with electric guitar and heavy drums",
|
| 363 |
None,
|
| 364 |
+
"medium",
|
| 365 |
+
"90s Rock Guitar"
|
| 366 |
],
|
| 367 |
[
|
| 368 |
"4/4 120bpm 320kbps 48khz, a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions",
|
| 369 |
"./assets/bach.mp3",
|
| 370 |
+
"melody",
|
| 371 |
+
"EDM my Bach"
|
| 372 |
],
|
| 373 |
[
|
| 374 |
"4/4 320kbps 48khz, lofi slow bpm electro chill with organic samples",
|
| 375 |
None,
|
| 376 |
+
"medium",
|
| 377 |
+
"LoFi Chill"
|
| 378 |
],
|
| 379 |
],
|
| 380 |
+
inputs=[text, melody_filepath, model, title],
|
| 381 |
outputs=[output]
|
| 382 |
)
|
| 383 |
|
web-ui.bat
CHANGED
|
@@ -1,3 +1 @@
|
|
| 1 |
-
py -m app
|
| 2 |
-
|
| 3 |
-
pause
|
|
|
|
| 1 |
+
py -m app
|
|
|
|
|
|