File size: 1,622 Bytes
90884df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python3
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())