| |
| from __future__ import annotations |
|
|
| import argparse |
| import json |
| from pathlib import Path |
|
|
| from music3lab.editing.audio_prepend_runner import _load_config, run_audio_prepend |
|
|
|
|
| def main() -> int: |
| parser = argparse.ArgumentParser() |
| commands = parser.add_subparsers(dest="command", required=True) |
| check = commands.add_parser("check") |
| check.add_argument("--config", type=Path, required=True) |
| run = commands.add_parser("run") |
| for name in ( |
| "config", |
| "continuation-config", |
| "flow-config", |
| "corpus-root", |
| "encoder-checkpoint", |
| "snapshot", |
| "base-manifest", |
| "diffusers-root", |
| "output-root", |
| ): |
| run.add_argument("--" + name, type=Path, required=True) |
| args = parser.parse_args() |
| if args.command == "check": |
| result = {"schema_version": _load_config(args.config)["schema_version"], "status": "READY"} |
| code = 0 |
| else: |
| result = run_audio_prepend( |
| config_path=args.config, |
| continuation_config=args.continuation_config, |
| flow_config=args.flow_config, |
| corpus_root=args.corpus_root, |
| encoder_checkpoint=args.encoder_checkpoint, |
| snapshot=args.snapshot, |
| base_manifest=args.base_manifest, |
| diffusers_root=args.diffusers_root, |
| output_root=args.output_root, |
| ) |
| code = 0 if result["status"] == "FUNCTIONAL_PASS" else 1 |
| print(json.dumps(result, sort_keys=True, separators=(",", ":"))) |
| return code |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |
|
|