mirror of
https://github.com/storytold/storyteller-ml.git
synced 2026-10-15 00:03:06 +00:00
remove invalid work options
This commit is contained in:
@@ -119,29 +119,29 @@ def cli():
|
||||
init_logger()
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.option(
|
||||
"-c",
|
||||
"--config-path",
|
||||
type=click.Path(exists=True),
|
||||
help="path to config",
|
||||
default=Path("./configs/44k/config.json"),
|
||||
)
|
||||
@click.option(
|
||||
"-m",
|
||||
"--model-path",
|
||||
type=click.Path(),
|
||||
help="path to output dir",
|
||||
default=Path("./logs/44k"),
|
||||
)
|
||||
def train(config_path: Path, model_path: Path):
|
||||
"""Train model
|
||||
If D_0.pth or G_0.pth not found, automatically download from hub."""
|
||||
from .train import train
|
||||
|
||||
config_path = Path(config_path)
|
||||
model_path = Path(model_path)
|
||||
train(config_path=config_path, model_path=model_path)
|
||||
#@cli.command()
|
||||
#@click.option(
|
||||
# "-c",
|
||||
# "--config-path",
|
||||
# type=click.Path(exists=True),
|
||||
# help="path to config",
|
||||
# default=Path("./configs/44k/config.json"),
|
||||
#)
|
||||
#@click.option(
|
||||
# "-m",
|
||||
# "--model-path",
|
||||
# type=click.Path(),
|
||||
# help="path to output dir",
|
||||
# default=Path("./logs/44k"),
|
||||
#)
|
||||
#def train(config_path: Path, model_path: Path):
|
||||
# """Train model
|
||||
# If D_0.pth or G_0.pth not found, automatically download from hub."""
|
||||
# from .train import train
|
||||
#
|
||||
# config_path = Path(config_path)
|
||||
# model_path = Path(model_path)
|
||||
# train(config_path=config_path, model_path=model_path)
|
||||
|
||||
|
||||
@cli.command()
|
||||
@@ -257,352 +257,352 @@ def infer(
|
||||
)
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.option(
|
||||
"-m",
|
||||
"--model-path",
|
||||
type=click.Path(exists=True),
|
||||
default=Path("./logs/44k/"),
|
||||
help="path to model",
|
||||
)
|
||||
@click.option(
|
||||
"-c",
|
||||
"--config-path",
|
||||
type=click.Path(exists=True),
|
||||
default=Path("./configs/44k/config.json"),
|
||||
help="path to config",
|
||||
)
|
||||
@click.option(
|
||||
"-k",
|
||||
"--cluster-model-path",
|
||||
type=click.Path(exists=True),
|
||||
default=None,
|
||||
help="path to cluster model",
|
||||
)
|
||||
@click.option("-t", "--transpose", type=int, default=12, help="transpose")
|
||||
@click.option(
|
||||
"-a",
|
||||
"--auto-predict-f0",
|
||||
type=bool,
|
||||
default=False,
|
||||
help="auto predict f0 (not recommended for realtime since voice pitch will not be stable)",
|
||||
)
|
||||
@click.option(
|
||||
"-r", "--cluster-infer-ratio", type=float, default=0, help="cluster infer ratio"
|
||||
)
|
||||
@click.option("-n", "--noise-scale", type=float, default=0.4, help="noise scale")
|
||||
@click.option(
|
||||
"-db", "--db-thresh", type=int, default=-30, help="threshold (DB) (ABSOLUTE)"
|
||||
)
|
||||
@click.option(
|
||||
"-fm",
|
||||
"--f0-method",
|
||||
type=click.Choice(["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"]),
|
||||
default="crepe",
|
||||
help="f0 prediction method",
|
||||
)
|
||||
@click.option("-p", "--pad-seconds", type=float, default=0.02, help="pad seconds")
|
||||
@click.option("-ch", "--chunk-seconds", type=float, default=0.5, help="chunk seconds")
|
||||
@click.option(
|
||||
"-cr",
|
||||
"--crossfade-seconds",
|
||||
type=float,
|
||||
default=0.01,
|
||||
help="crossfade seconds",
|
||||
)
|
||||
@click.option(
|
||||
"-ab",
|
||||
"--additional-infer-before-seconds",
|
||||
type=float,
|
||||
default=0.2,
|
||||
help="additional infer before seconds",
|
||||
)
|
||||
@click.option(
|
||||
"-aa",
|
||||
"--additional-infer-after-seconds",
|
||||
type=float,
|
||||
default=0.1,
|
||||
help="additional infer after seconds",
|
||||
)
|
||||
@click.option("-b", "--block-seconds", type=float, default=0.5, help="block seconds")
|
||||
@click.option(
|
||||
"-d",
|
||||
"--device",
|
||||
type=str,
|
||||
default="cuda" if torch.cuda.is_available() else "cpu",
|
||||
help="device",
|
||||
)
|
||||
@click.option("-s", "--speaker", type=str, default=None, help="speaker name")
|
||||
@click.option("-v", "--version", type=int, default=2, help="version")
|
||||
@click.option("-i", "--input-device", type=int, default=None, help="input device")
|
||||
@click.option("-o", "--output-device", type=int, default=None, help="output device")
|
||||
@click.option(
|
||||
"-po",
|
||||
"--passthrough-original",
|
||||
type=bool,
|
||||
default=False,
|
||||
is_flag=True,
|
||||
help="passthrough original (for latency check)",
|
||||
)
|
||||
def vc(
|
||||
# paths
|
||||
model_path: Path,
|
||||
config_path: Path,
|
||||
# svc config
|
||||
speaker: str,
|
||||
cluster_model_path: Path | None,
|
||||
transpose: int,
|
||||
auto_predict_f0: bool,
|
||||
cluster_infer_ratio: float,
|
||||
noise_scale: float,
|
||||
f0_method: Literal["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"],
|
||||
# slice config
|
||||
db_thresh: int,
|
||||
pad_seconds: float,
|
||||
chunk_seconds: float,
|
||||
# realtime config
|
||||
crossfade_seconds: float,
|
||||
additional_infer_before_seconds: float,
|
||||
additional_infer_after_seconds: float,
|
||||
block_seconds: float,
|
||||
version: int,
|
||||
input_device: int | str | None,
|
||||
output_device: int | str | None,
|
||||
device: Literal["cpu", "cuda"],
|
||||
passthrough_original: bool = False,
|
||||
) -> None:
|
||||
"""Realtime inference from microphone"""
|
||||
from .inference_main import realtime
|
||||
|
||||
if auto_predict_f0:
|
||||
LOG.warning(
|
||||
"auto_predict_f0 = True in realtime inference will cause unstable voice pitch, use with caution"
|
||||
)
|
||||
else:
|
||||
LOG.warning(
|
||||
f"auto_predict_f0 = False, transpose = {transpose}. If you want to change the pitch, please change the transpose value."
|
||||
"Generally transpose = 0 does not work because your voice pitch and target voice pitch are different."
|
||||
)
|
||||
model_path = Path(model_path)
|
||||
config_path = Path(config_path)
|
||||
if cluster_model_path is not None:
|
||||
cluster_model_path = Path(cluster_model_path)
|
||||
if model_path.is_dir():
|
||||
model_path = list(sorted(model_path.glob("*.pth")))[-1]
|
||||
LOG.info(f"Since model_path is a directory, use {model_path}")
|
||||
|
||||
realtime(
|
||||
# paths
|
||||
model_path=model_path,
|
||||
config_path=config_path,
|
||||
# svc config
|
||||
speaker=speaker,
|
||||
cluster_model_path=cluster_model_path,
|
||||
transpose=transpose,
|
||||
auto_predict_f0=auto_predict_f0,
|
||||
cluster_infer_ratio=cluster_infer_ratio,
|
||||
noise_scale=noise_scale,
|
||||
f0_method=f0_method,
|
||||
# slice config
|
||||
db_thresh=db_thresh,
|
||||
pad_seconds=pad_seconds,
|
||||
chunk_seconds=chunk_seconds,
|
||||
# realtime config
|
||||
crossfade_seconds=crossfade_seconds,
|
||||
additional_infer_before_seconds=additional_infer_before_seconds,
|
||||
additional_infer_after_seconds=additional_infer_after_seconds,
|
||||
block_seconds=block_seconds,
|
||||
version=version,
|
||||
input_device=input_device,
|
||||
output_device=output_device,
|
||||
device=device,
|
||||
passthrough_original=passthrough_original,
|
||||
)
|
||||
#@cli.command()
|
||||
#@click.option(
|
||||
# "-m",
|
||||
# "--model-path",
|
||||
# type=click.Path(exists=True),
|
||||
# default=Path("./logs/44k/"),
|
||||
# help="path to model",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-c",
|
||||
# "--config-path",
|
||||
# type=click.Path(exists=True),
|
||||
# default=Path("./configs/44k/config.json"),
|
||||
# help="path to config",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-k",
|
||||
# "--cluster-model-path",
|
||||
# type=click.Path(exists=True),
|
||||
# default=None,
|
||||
# help="path to cluster model",
|
||||
#)
|
||||
#@click.option("-t", "--transpose", type=int, default=12, help="transpose")
|
||||
#@click.option(
|
||||
# "-a",
|
||||
# "--auto-predict-f0",
|
||||
# type=bool,
|
||||
# default=False,
|
||||
# help="auto predict f0 (not recommended for realtime since voice pitch will not be stable)",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-r", "--cluster-infer-ratio", type=float, default=0, help="cluster infer ratio"
|
||||
#)
|
||||
#@click.option("-n", "--noise-scale", type=float, default=0.4, help="noise scale")
|
||||
#@click.option(
|
||||
# "-db", "--db-thresh", type=int, default=-30, help="threshold (DB) (ABSOLUTE)"
|
||||
#)
|
||||
#@click.option(
|
||||
# "-fm",
|
||||
# "--f0-method",
|
||||
# type=click.Choice(["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"]),
|
||||
# default="crepe",
|
||||
# help="f0 prediction method",
|
||||
#)
|
||||
#@click.option("-p", "--pad-seconds", type=float, default=0.02, help="pad seconds")
|
||||
#@click.option("-ch", "--chunk-seconds", type=float, default=0.5, help="chunk seconds")
|
||||
#@click.option(
|
||||
# "-cr",
|
||||
# "--crossfade-seconds",
|
||||
# type=float,
|
||||
# default=0.01,
|
||||
# help="crossfade seconds",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-ab",
|
||||
# "--additional-infer-before-seconds",
|
||||
# type=float,
|
||||
# default=0.2,
|
||||
# help="additional infer before seconds",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-aa",
|
||||
# "--additional-infer-after-seconds",
|
||||
# type=float,
|
||||
# default=0.1,
|
||||
# help="additional infer after seconds",
|
||||
#)
|
||||
#@click.option("-b", "--block-seconds", type=float, default=0.5, help="block seconds")
|
||||
#@click.option(
|
||||
# "-d",
|
||||
# "--device",
|
||||
# type=str,
|
||||
# default="cuda" if torch.cuda.is_available() else "cpu",
|
||||
# help="device",
|
||||
#)
|
||||
#@click.option("-s", "--speaker", type=str, default=None, help="speaker name")
|
||||
#@click.option("-v", "--version", type=int, default=2, help="version")
|
||||
#@click.option("-i", "--input-device", type=int, default=None, help="input device")
|
||||
#@click.option("-o", "--output-device", type=int, default=None, help="output device")
|
||||
#@click.option(
|
||||
# "-po",
|
||||
# "--passthrough-original",
|
||||
# type=bool,
|
||||
# default=False,
|
||||
# is_flag=True,
|
||||
# help="passthrough original (for latency check)",
|
||||
#)
|
||||
#def vc(
|
||||
# # paths
|
||||
# model_path: Path,
|
||||
# config_path: Path,
|
||||
# # svc config
|
||||
# speaker: str,
|
||||
# cluster_model_path: Path | None,
|
||||
# transpose: int,
|
||||
# auto_predict_f0: bool,
|
||||
# cluster_infer_ratio: float,
|
||||
# noise_scale: float,
|
||||
# f0_method: Literal["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"],
|
||||
# # slice config
|
||||
# db_thresh: int,
|
||||
# pad_seconds: float,
|
||||
# chunk_seconds: float,
|
||||
# # realtime config
|
||||
# crossfade_seconds: float,
|
||||
# additional_infer_before_seconds: float,
|
||||
# additional_infer_after_seconds: float,
|
||||
# block_seconds: float,
|
||||
# version: int,
|
||||
# input_device: int | str | None,
|
||||
# output_device: int | str | None,
|
||||
# device: Literal["cpu", "cuda"],
|
||||
# passthrough_original: bool = False,
|
||||
#) -> None:
|
||||
# """Realtime inference from microphone"""
|
||||
# from .inference_main import realtime
|
||||
#
|
||||
# if auto_predict_f0:
|
||||
# LOG.warning(
|
||||
# "auto_predict_f0 = True in realtime inference will cause unstable voice pitch, use with caution"
|
||||
# )
|
||||
# else:
|
||||
# LOG.warning(
|
||||
# f"auto_predict_f0 = False, transpose = {transpose}. If you want to change the pitch, please change the transpose value."
|
||||
# "Generally transpose = 0 does not work because your voice pitch and target voice pitch are different."
|
||||
# )
|
||||
# model_path = Path(model_path)
|
||||
# config_path = Path(config_path)
|
||||
# if cluster_model_path is not None:
|
||||
# cluster_model_path = Path(cluster_model_path)
|
||||
# if model_path.is_dir():
|
||||
# model_path = list(sorted(model_path.glob("*.pth")))[-1]
|
||||
# LOG.info(f"Since model_path is a directory, use {model_path}")
|
||||
#
|
||||
# realtime(
|
||||
# # paths
|
||||
# model_path=model_path,
|
||||
# config_path=config_path,
|
||||
# # svc config
|
||||
# speaker=speaker,
|
||||
# cluster_model_path=cluster_model_path,
|
||||
# transpose=transpose,
|
||||
# auto_predict_f0=auto_predict_f0,
|
||||
# cluster_infer_ratio=cluster_infer_ratio,
|
||||
# noise_scale=noise_scale,
|
||||
# f0_method=f0_method,
|
||||
# # slice config
|
||||
# db_thresh=db_thresh,
|
||||
# pad_seconds=pad_seconds,
|
||||
# chunk_seconds=chunk_seconds,
|
||||
# # realtime config
|
||||
# crossfade_seconds=crossfade_seconds,
|
||||
# additional_infer_before_seconds=additional_infer_before_seconds,
|
||||
# additional_infer_after_seconds=additional_infer_after_seconds,
|
||||
# block_seconds=block_seconds,
|
||||
# version=version,
|
||||
# input_device=input_device,
|
||||
# output_device=output_device,
|
||||
# device=device,
|
||||
# passthrough_original=passthrough_original,
|
||||
# )
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.option(
|
||||
"-i",
|
||||
"--input-dir",
|
||||
type=click.Path(exists=True),
|
||||
default=Path("./dataset_raw"),
|
||||
help="path to source dir",
|
||||
)
|
||||
@click.option(
|
||||
"-o",
|
||||
"--output-dir",
|
||||
type=click.Path(),
|
||||
default=Path("./dataset/44k"),
|
||||
help="path to output dir",
|
||||
)
|
||||
@click.option("-s", "--sampling-rate", type=int, default=44100, help="sampling rate")
|
||||
def pre_resample(input_dir: Path, output_dir: Path, sampling_rate: int) -> None:
|
||||
"""Preprocessing part 1: resample"""
|
||||
from .preprocess_resample import preprocess_resample
|
||||
|
||||
input_dir = Path(input_dir)
|
||||
output_dir = Path(output_dir)
|
||||
preprocess_resample(
|
||||
input_dir=input_dir, output_dir=output_dir, sampling_rate=sampling_rate
|
||||
)
|
||||
#@cli.command()
|
||||
#@click.option(
|
||||
# "-i",
|
||||
# "--input-dir",
|
||||
# type=click.Path(exists=True),
|
||||
# default=Path("./dataset_raw"),
|
||||
# help="path to source dir",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-o",
|
||||
# "--output-dir",
|
||||
# type=click.Path(),
|
||||
# default=Path("./dataset/44k"),
|
||||
# help="path to output dir",
|
||||
#)
|
||||
#@click.option("-s", "--sampling-rate", type=int, default=44100, help="sampling rate")
|
||||
#def pre_resample(input_dir: Path, output_dir: Path, sampling_rate: int) -> None:
|
||||
# """Preprocessing part 1: resample"""
|
||||
# from .preprocess_resample import preprocess_resample
|
||||
#
|
||||
# input_dir = Path(input_dir)
|
||||
# output_dir = Path(output_dir)
|
||||
# preprocess_resample(
|
||||
# input_dir=input_dir, output_dir=output_dir, sampling_rate=sampling_rate
|
||||
# )
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.option(
|
||||
"-i",
|
||||
"--input-dir",
|
||||
type=click.Path(exists=True),
|
||||
default=Path("./dataset/44k"),
|
||||
help="path to source dir",
|
||||
)
|
||||
@click.option(
|
||||
"-f",
|
||||
"--filelist-path",
|
||||
type=click.Path(),
|
||||
default=Path("./filelists/44k"),
|
||||
help="path to filelist dir",
|
||||
)
|
||||
@click.option(
|
||||
"-c",
|
||||
"--config-path",
|
||||
type=click.Path(),
|
||||
default=Path("./configs/44k/config.json"),
|
||||
help="path to config",
|
||||
)
|
||||
def pre_config(
|
||||
input_dir: Path,
|
||||
filelist_path: Path,
|
||||
config_path: Path,
|
||||
):
|
||||
"""Preprocessing part 2: config"""
|
||||
from .preprocess_flist_config import preprocess_config
|
||||
|
||||
input_dir = Path(input_dir)
|
||||
filelist_path = Path(filelist_path)
|
||||
config_path = Path(config_path)
|
||||
preprocess_config(
|
||||
input_dir=input_dir,
|
||||
train_list_path=filelist_path / "train.txt",
|
||||
val_list_path=filelist_path / "val.txt",
|
||||
test_list_path=filelist_path / "test.txt",
|
||||
config_path=config_path,
|
||||
)
|
||||
#@cli.command()
|
||||
#@click.option(
|
||||
# "-i",
|
||||
# "--input-dir",
|
||||
# type=click.Path(exists=True),
|
||||
# default=Path("./dataset/44k"),
|
||||
# help="path to source dir",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-f",
|
||||
# "--filelist-path",
|
||||
# type=click.Path(),
|
||||
# default=Path("./filelists/44k"),
|
||||
# help="path to filelist dir",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-c",
|
||||
# "--config-path",
|
||||
# type=click.Path(),
|
||||
# default=Path("./configs/44k/config.json"),
|
||||
# help="path to config",
|
||||
#)
|
||||
#def pre_config(
|
||||
# input_dir: Path,
|
||||
# filelist_path: Path,
|
||||
# config_path: Path,
|
||||
#):
|
||||
# """Preprocessing part 2: config"""
|
||||
# from .preprocess_flist_config import preprocess_config
|
||||
#
|
||||
# input_dir = Path(input_dir)
|
||||
# filelist_path = Path(filelist_path)
|
||||
# config_path = Path(config_path)
|
||||
# preprocess_config(
|
||||
# input_dir=input_dir,
|
||||
# train_list_path=filelist_path / "train.txt",
|
||||
# val_list_path=filelist_path / "val.txt",
|
||||
# test_list_path=filelist_path / "test.txt",
|
||||
# config_path=config_path,
|
||||
# )
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.option(
|
||||
"-i",
|
||||
"--input-dir",
|
||||
type=click.Path(exists=True),
|
||||
default=Path("./dataset/44k"),
|
||||
help="path to source dir",
|
||||
)
|
||||
@click.option(
|
||||
"-c",
|
||||
"--config-path",
|
||||
type=click.Path(exists=True),
|
||||
help="path to config",
|
||||
default=Path("./configs/44k/config.json"),
|
||||
)
|
||||
@click.option(
|
||||
"-n",
|
||||
"--n_jobs",
|
||||
type=int,
|
||||
default=4,
|
||||
help="number of jobs (optimal value may depend on your VRAM capacity and audio duration per file)",
|
||||
)
|
||||
@click.option(
|
||||
"-f",
|
||||
"--force-rebuild",
|
||||
type=bool,
|
||||
default=True,
|
||||
help="force rebuild existing preprocessed files",
|
||||
)
|
||||
@click.option(
|
||||
"-fm",
|
||||
"--f0-method",
|
||||
type=click.Choice(["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"]),
|
||||
default="dio",
|
||||
)
|
||||
def pre_hubert(
|
||||
input_dir: Path,
|
||||
config_path: Path,
|
||||
n_jobs: bool,
|
||||
force_rebuild: bool,
|
||||
f0_method: Literal["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"],
|
||||
) -> None:
|
||||
"""Preprocessing part 3: hubert
|
||||
If the HuBERT model is not found, it will be downloaded automatically."""
|
||||
from .preprocess_hubert_f0 import preprocess_hubert_f0
|
||||
|
||||
input_dir = Path(input_dir)
|
||||
config_path = Path(config_path)
|
||||
preprocess_hubert_f0(
|
||||
input_dir=input_dir,
|
||||
config_path=config_path,
|
||||
n_jobs=n_jobs,
|
||||
force_rebuild=force_rebuild,
|
||||
f0_method=f0_method,
|
||||
)
|
||||
#@cli.command()
|
||||
#@click.option(
|
||||
# "-i",
|
||||
# "--input-dir",
|
||||
# type=click.Path(exists=True),
|
||||
# default=Path("./dataset/44k"),
|
||||
# help="path to source dir",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-c",
|
||||
# "--config-path",
|
||||
# type=click.Path(exists=True),
|
||||
# help="path to config",
|
||||
# default=Path("./configs/44k/config.json"),
|
||||
#)
|
||||
#@click.option(
|
||||
# "-n",
|
||||
# "--n_jobs",
|
||||
# type=int,
|
||||
# default=4,
|
||||
# help="number of jobs (optimal value may depend on your VRAM capacity and audio duration per file)",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-f",
|
||||
# "--force-rebuild",
|
||||
# type=bool,
|
||||
# default=True,
|
||||
# help="force rebuild existing preprocessed files",
|
||||
#)
|
||||
#@click.option(
|
||||
# "-fm",
|
||||
# "--f0-method",
|
||||
# type=click.Choice(["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"]),
|
||||
# default="dio",
|
||||
#)
|
||||
#def pre_hubert(
|
||||
# input_dir: Path,
|
||||
# config_path: Path,
|
||||
# n_jobs: bool,
|
||||
# force_rebuild: bool,
|
||||
# f0_method: Literal["crepe", "crepe-tiny", "parselmouth", "dio", "harvest"],
|
||||
#) -> None:
|
||||
# """Preprocessing part 3: hubert
|
||||
# If the HuBERT model is not found, it will be downloaded automatically."""
|
||||
# from .preprocess_hubert_f0 import preprocess_hubert_f0
|
||||
#
|
||||
# input_dir = Path(input_dir)
|
||||
# config_path = Path(config_path)
|
||||
# preprocess_hubert_f0(
|
||||
# input_dir=input_dir,
|
||||
# config_path=config_path,
|
||||
# n_jobs=n_jobs,
|
||||
# force_rebuild=force_rebuild,
|
||||
# f0_method=f0_method,
|
||||
# )
|
||||
|
||||
|
||||
@cli.command
|
||||
def clean():
|
||||
"""Clean up files, only useful if you are using the default file structure"""
|
||||
import shutil
|
||||
|
||||
folders = ["dataset", "filelists", "logs"]
|
||||
if pyip.inputYesNo(f"Are you sure you want to delete files in {folders}?") == "yes":
|
||||
for folder in folders:
|
||||
if Path(folder).exists():
|
||||
shutil.rmtree(folder)
|
||||
LOG.info("Cleaned up files")
|
||||
else:
|
||||
LOG.info("Aborted")
|
||||
#@cli.command
|
||||
#def clean():
|
||||
# """Clean up files, only useful if you are using the default file structure"""
|
||||
# import shutil
|
||||
#
|
||||
# folders = ["dataset", "filelists", "logs"]
|
||||
# if pyip.inputYesNo(f"Are you sure you want to delete files in {folders}?") == "yes":
|
||||
# for folder in folders:
|
||||
# if Path(folder).exists():
|
||||
# shutil.rmtree(folder)
|
||||
# LOG.info("Cleaned up files")
|
||||
# else:
|
||||
# LOG.info("Aborted")
|
||||
|
||||
|
||||
@cli.command
|
||||
@click.option("-i", "--input-path", type=click.Path(exists=True), help="model path")
|
||||
@click.option("-o", "--output-path", type=click.Path(), help="onnx model path to save")
|
||||
@click.option("-c", "--config-path", type=click.Path(), help="config path")
|
||||
@click.option("-d", "--device", type=str, default="cpu", help="torch device")
|
||||
def onnx(input_path: Path, output_path: Path, config_path: Path, device: str) -> None:
|
||||
"""Export model to onnx"""
|
||||
input_path = Path(input_path)
|
||||
output_path = Path(output_path)
|
||||
config_path = Path(config_path)
|
||||
device_ = torch.device(device)
|
||||
from .onnx_export import onnx_export
|
||||
|
||||
onnx_export(
|
||||
input_path=input_path,
|
||||
output_path=output_path,
|
||||
config_path=config_path,
|
||||
device=device_,
|
||||
)
|
||||
#@cli.command
|
||||
#@click.option("-i", "--input-path", type=click.Path(exists=True), help="model path")
|
||||
#@click.option("-o", "--output-path", type=click.Path(), help="onnx model path to save")
|
||||
#@click.option("-c", "--config-path", type=click.Path(), help="config path")
|
||||
#@click.option("-d", "--device", type=str, default="cpu", help="torch device")
|
||||
#def onnx(input_path: Path, output_path: Path, config_path: Path, device: str) -> None:
|
||||
# """Export model to onnx"""
|
||||
# input_path = Path(input_path)
|
||||
# output_path = Path(output_path)
|
||||
# config_path = Path(config_path)
|
||||
# device_ = torch.device(device)
|
||||
# from .onnx_export import onnx_export
|
||||
#
|
||||
# onnx_export(
|
||||
# input_path=input_path,
|
||||
# output_path=output_path,
|
||||
# config_path=config_path,
|
||||
# device=device_,
|
||||
# )
|
||||
|
||||
|
||||
@cli.command
|
||||
@click.option(
|
||||
"-i",
|
||||
"--input-dir",
|
||||
type=click.Path(exists=True),
|
||||
help="dataset directory",
|
||||
default=Path("./dataset/44k"),
|
||||
)
|
||||
@click.option(
|
||||
"-o",
|
||||
"--output-path",
|
||||
type=click.Path(),
|
||||
help="model path to save",
|
||||
default=Path("./models/44k/kmeans.pt"),
|
||||
)
|
||||
@click.option("-n", "--n-clusters", type=int, help="number of clusters", default=10000)
|
||||
def train_cluster(input_dir: Path, output_path: Path, n_clusters: int) -> None:
|
||||
"""Train k-means clustering"""
|
||||
from .cluster.train_cluster import main
|
||||
|
||||
main(input_dir=input_dir, output_path=output_path, n_clusters=n_clusters)
|
||||
#@cli.command
|
||||
#@click.option(
|
||||
# "-i",
|
||||
# "--input-dir",
|
||||
# type=click.Path(exists=True),
|
||||
# help="dataset directory",
|
||||
# default=Path("./dataset/44k"),
|
||||
#)
|
||||
#@click.option(
|
||||
# "-o",
|
||||
# "--output-path",
|
||||
# type=click.Path(),
|
||||
# help="model path to save",
|
||||
# default=Path("./models/44k/kmeans.pt"),
|
||||
#)
|
||||
#@click.option("-n", "--n-clusters", type=int, help="number of clusters", default=10000)
|
||||
#def train_cluster(input_dir: Path, output_path: Path, n_clusters: int) -> None:
|
||||
# """Train k-means clustering"""
|
||||
# from .cluster.train_cluster import main
|
||||
#
|
||||
# main(input_dir=input_dir, output_path=output_path, n_clusters=n_clusters)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user