thecollabagepatch commited on
Commit
a71591f
Β·
1 Parent(s): 1aa3245

well that was easier

Browse files
Files changed (1) hide show
  1. app.py +16 -12
app.py CHANGED
@@ -140,7 +140,7 @@ def generate_music(wav_filename, prompt_duration, musicgen_model, output_duratio
140
 
141
  # ========== MELODYFLOW FUNCTIONS (Via Facebook Space) ==========
142
 
143
- def transform_with_melodyflow_api(audio_path, variation, custom_prompt="", solver="euler", steps=128):
144
  """Transform audio using Facebook/MelodyFlow space API"""
145
  if audio_path is None:
146
  return None, "❌ No audio file provided"
@@ -152,10 +152,13 @@ def transform_with_melodyflow_api(audio_path, variation, custom_prompt="", solve
152
  # Determine the prompt to use
153
  if custom_prompt.strip():
154
  prompt_text = custom_prompt.strip()
155
- status_msg = f"βœ… Transformed with custom prompt: '{prompt_text}'"
156
  else:
157
  prompt_text = VARIATION_PROMPTS.get(variation, f"transform this audio to {variation} style")
158
- status_msg = f"βœ… Transformed with {variation} style"
 
 
 
159
 
160
  # Call the MelodyFlow API
161
  result = client.predict(
@@ -163,8 +166,8 @@ def transform_with_melodyflow_api(audio_path, variation, custom_prompt="", solve
163
  text=prompt_text,
164
  solver=solver,
165
  steps=steps,
166
- target_flowstep=0, # Default flowstep
167
- regularize=False,
168
  regularization_strength=0.2,
169
  duration=30, # Max duration
170
  melody=handle_file(audio_path),
@@ -248,12 +251,13 @@ with gr.Blocks() as iface:
248
  choices=["euler", "midpoint"],
249
  value="euler"
250
  )
251
- transform_steps = gr.Slider(
252
- label="Steps",
253
- minimum=64,
254
- maximum=256,
255
- step=32,
256
- value=128
 
257
  )
258
  transform_button = gr.Button("πŸŽ›οΈ Transform Audio", variant="secondary", size="lg")
259
 
@@ -302,7 +306,7 @@ with gr.Blocks() as iface:
302
  # Step 2: Transform (using Facebook MelodyFlow API)
303
  transform_button.click(
304
  transform_with_melodyflow_api,
305
- inputs=[main_audio, transform_variation, transform_prompt, transform_solver, transform_steps],
306
  outputs=[main_audio, transform_status]
307
  )
308
 
 
140
 
141
  # ========== MELODYFLOW FUNCTIONS (Via Facebook Space) ==========
142
 
143
+ def transform_with_melodyflow_api(audio_path, variation, custom_prompt="", solver="euler", flowstep=0.12):
144
  """Transform audio using Facebook/MelodyFlow space API"""
145
  if audio_path is None:
146
  return None, "❌ No audio file provided"
 
152
  # Determine the prompt to use
153
  if custom_prompt.strip():
154
  prompt_text = custom_prompt.strip()
155
+ status_msg = f"βœ… Transformed with custom prompt: '{prompt_text}' (flowstep: {flowstep})"
156
  else:
157
  prompt_text = VARIATION_PROMPTS.get(variation, f"transform this audio to {variation} style")
158
+ status_msg = f"βœ… Transformed with {variation} style (flowstep: {flowstep})"
159
+
160
+ # Set steps based on solver (from your original logic)
161
+ steps = 64 if solver == "midpoint" else 128
162
 
163
  # Call the MelodyFlow API
164
  result = client.predict(
 
166
  text=prompt_text,
167
  solver=solver,
168
  steps=steps,
169
+ target_flowstep=flowstep, # This is the key parameter!
170
+ regularize=solver == "euler", # Regularize for euler, not for midpoint
171
  regularization_strength=0.2,
172
  duration=30, # Max duration
173
  melody=handle_file(audio_path),
 
251
  choices=["euler", "midpoint"],
252
  value="euler"
253
  )
254
+ transform_flowstep = gr.Slider(
255
+ label="Transform Intensity (Flowstep)",
256
+ minimum=0.0,
257
+ maximum=0.15,
258
+ step=0.01,
259
+ value=0.12,
260
+ info="Lower values = more dramatic transformation"
261
  )
262
  transform_button = gr.Button("πŸŽ›οΈ Transform Audio", variant="secondary", size="lg")
263
 
 
306
  # Step 2: Transform (using Facebook MelodyFlow API)
307
  transform_button.click(
308
  transform_with_melodyflow_api,
309
+ inputs=[main_audio, transform_variation, transform_prompt, transform_solver, transform_flowstep],
310
  outputs=[main_audio, transform_status]
311
  )
312