(
model: Any,
request: dict[str, Any],
output_dir: Path,
args: argparse.Namespace,
device: str,
previous_audio: list[Path],
)
| 308 | |
| 309 | |
| 310 | def run_request( |
| 311 | model: Any, |
| 312 | request: dict[str, Any], |
| 313 | output_dir: Path, |
| 314 | args: argparse.Namespace, |
| 315 | device: str, |
| 316 | previous_audio: list[Path], |
| 317 | ) -> tuple[dict[str, Any], list[str]]: |
| 318 | seed = int(request.get("seed", args.seed)) |
| 319 | seed_all(seed) |
| 320 | |
| 321 | init_audio = None |
| 322 | if "init_audio" in request: |
| 323 | init_audio = load_audio(resolve_repo_path(str(request["init_audio"]))) |
| 324 | elif "init_audio_from_previous" in request: |
| 325 | init_audio = load_audio(previous_audio[int(request["init_audio_from_previous"])]) |
| 326 | |
| 327 | inpaint_audio = None |
| 328 | if "inpaint_audio" in request: |
| 329 | inpaint_audio = load_audio(resolve_repo_path(str(request["inpaint_audio"]))) |
| 330 | elif "inpaint_audio_from_previous" in request: |
| 331 | inpaint_audio = load_audio(previous_audio[int(request["inpaint_audio_from_previous"])]) |
| 332 | |
| 333 | chunked_decode = chunked_decode_value(request.get("chunked_decode", args.chunked_decode)) |
| 334 | batch_size = int(request.get("batch_size", 1)) |
| 335 | prompt = request.get("prompt") |
| 336 | if prompt is None: |
| 337 | raise RuntimeError("Stable Audio warmbench request missing prompt") |
| 338 | if isinstance(prompt, list): |
| 339 | batch_size = len(prompt) |
| 340 | |
| 341 | sync_device(device) |
| 342 | started = time.perf_counter() |
| 343 | audio = model.generate( |
| 344 | prompt=prompt, |
| 345 | negative_prompt=request.get("negative_prompt"), |
| 346 | duration=request.get("duration", args.duration), |
| 347 | steps=int(request.get("steps", args.steps)), |
| 348 | cfg_scale=float(request.get("cfg_scale", args.cfg_scale)), |
| 349 | apg_scale=float(request.get("apg_scale", 1.0)), |
| 350 | seed=seed, |
| 351 | batch_size=batch_size, |
| 352 | sampler_type=request.get("sampler_type"), |
| 353 | init_audio=init_audio, |
| 354 | init_noise_level=float(request.get("init_noise_level", 1.0)), |
| 355 | inpaint_audio=inpaint_audio, |
| 356 | inpaint_mask_start_seconds=request.get("inpaint_mask_start_seconds"), |
| 357 | inpaint_mask_end_seconds=request.get("inpaint_mask_end_seconds"), |
| 358 | chunked_decode=chunked_decode, |
| 359 | ) |
| 360 | sync_device(device) |
| 361 | wall_ms = (time.perf_counter() - started) * 1000.0 |
| 362 | |
| 363 | stems = save_batch_audio(audio, output_dir, int(model.model.sample_rate)) |
| 364 | previous_audio.append(Path(stems[0]["audio"])) |
| 365 | timing = [ |
| 366 | f"stable_audio.wall_ms {wall_ms:.6f}", |
| 367 | ] |
no test coverage detected