adefossez commited on
Commit
40689f8
2 Parent(s): 378cf0a 9d7284e

Merge branch 'main' into our_hf

Browse files
Files changed (3) hide show
  1. app.py +16 -2
  2. app_batched.py +14 -3
  3. hf_loading.py +1 -4
app.py CHANGED
@@ -66,6 +66,16 @@ with gr.Blocks() as demo:
66
  1. Melody -- a music generation model capable of generating music condition on text and melody inputs. **Note**, you can also use text only.
67
  2. Small -- a 300M transformer decoder conditioned on text only.
68
  3. Medium -- a 1.5B transformer decoder conditioned on text only.
 
 
 
 
 
 
 
 
 
 
69
 
70
  See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft)
71
  for more details.
@@ -79,7 +89,7 @@ with gr.Blocks() as demo:
79
  with gr.Row():
80
  submit = gr.Button("Submit")
81
  with gr.Row():
82
- model = gr.Radio(["melody", "medium", "small"], label="Model", value="melody", interactive=True)
83
  with gr.Row():
84
  duration = gr.Slider(minimum=1, maximum=30, value=10, label="Duration", interactive=True)
85
  with gr.Row():
@@ -107,7 +117,11 @@ with gr.Blocks() as demo:
107
  "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions",
108
  "./assets/bach.mp3",
109
  "melody"
110
- ]
 
 
 
 
111
  ],
112
  inputs=[text, melody, model],
113
  outputs=[output]
 
66
  1. Melody -- a music generation model capable of generating music condition on text and melody inputs. **Note**, you can also use text only.
67
  2. Small -- a 300M transformer decoder conditioned on text only.
68
  3. Medium -- a 1.5B transformer decoder conditioned on text only.
69
+ 4. Large -- a 3.3B transformer decoder conditioned on text only (might OOM for the longest sequences.)
70
+
71
+ When the optional melody conditioning wav is provided, the model will extract
72
+ a broad melody and try to follow it in the generated samples.
73
+
74
+ For skipping queue, you can duplicate this space, and upgrade to GPU in the settings.
75
+ <br/>
76
+ <a href="https://huggingface.co/spaces/musicgen/MusicGen?duplicate=true">
77
+ <img style="margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>
78
+ </p>
79
 
80
  See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft)
81
  for more details.
 
89
  with gr.Row():
90
  submit = gr.Button("Submit")
91
  with gr.Row():
92
+ model = gr.Radio(["melody", "medium", "small", "large"], label="Model", value="melody", interactive=True)
93
  with gr.Row():
94
  duration = gr.Slider(minimum=1, maximum=30, value=10, label="Duration", interactive=True)
95
  with gr.Row():
 
117
  "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions",
118
  "./assets/bach.mp3",
119
  "melody"
120
+ ],
121
+ [
122
+ "lofi slow bpm electro chill with organic samples",
123
+ "medium",
124
+ ],
125
  ],
126
  inputs=[text, melody, model],
127
  outputs=[output]
app_batched.py CHANGED
@@ -71,8 +71,15 @@ with gr.Blocks() as demo:
71
  presented at: "Simple and Controllable Music Generation".
72
 
73
  Enter the description of the music you want and an optional audio used for melody conditioning.
74
- This will generate a 12s extract with the `melody` model. For generating longer sequences
75
- (up to 30 seconds), use the Colab demo or your own GPU.
 
 
 
 
 
 
 
76
 
77
  See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft)
78
  for more details.
@@ -100,9 +107,13 @@ with gr.Blocks() as demo:
100
  None,
101
  ],
102
  [
103
- "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions",
104
  "./assets/bach.mp3",
105
  ]
 
 
 
 
106
  ],
107
  inputs=[text, melody],
108
  outputs=[output]
 
71
  presented at: "Simple and Controllable Music Generation".
72
 
73
  Enter the description of the music you want and an optional audio used for melody conditioning.
74
+ The model will extract the broad melody from the uploaded wav if provided.
75
+ This will generate a 12s extract with the `melody` model.
76
+
77
+ For generating longer sequences (up to 30 seconds) and skipping queue, you can duplicate
78
+ to full demo space, which contains more control and upgrade to GPU in the settings.
79
+ <br/>
80
+ <a href="https://huggingface.co/spaces/musicgen/MusicGen?duplicate=true">
81
+ <img style="margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>
82
+ </p>
83
 
84
  See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft)
85
  for more details.
 
107
  None,
108
  ],
109
  [
110
+ "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions bpm: 130",
111
  "./assets/bach.mp3",
112
  ]
113
+ [
114
+ "lofi slow bpm electro chill with organic samples",
115
+ None,
116
+ ],
117
  ],
118
  inputs=[text, melody],
119
  outputs=[output]
hf_loading.py CHANGED
@@ -1,10 +1,9 @@
1
  """Utility for loading the models from HF."""
2
- import os
3
  from pathlib import Path
4
  import typing as tp
5
 
6
  from omegaconf import OmegaConf
7
- from huggingface_hub import hf_hub_download, login
8
  import torch
9
 
10
  from audiocraft.models import builders, MusicGen
@@ -16,8 +15,6 @@ MODEL_CHECKPOINTS_MAP = {
16
  "melody": "facebook/musicgen-melody",
17
  }
18
 
19
- login(os.environ['ACCESS_TOKEN'])
20
-
21
 
22
  def _get_state_dict(file_or_url: tp.Union[Path, str],
23
  filename="state_dict.bin", device='cpu'):
 
1
  """Utility for loading the models from HF."""
 
2
  from pathlib import Path
3
  import typing as tp
4
 
5
  from omegaconf import OmegaConf
6
+ from huggingface_hub import hf_hub_download
7
  import torch
8
 
9
  from audiocraft.models import builders, MusicGen
 
15
  "melody": "facebook/musicgen-melody",
16
  }
17
 
 
 
18
 
19
  def _get_state_dict(file_or_url: tp.Union[Path, str],
20
  filename="state_dict.bin", device='cpu'):