From 7e7ac679063e9b01bdc1a37d75fb14a95608d33d Mon Sep 17 00:00:00 2001 From: litagin02 Date: Sun, 16 Jun 2024 17:56:32 +0900 Subject: [PATCH] Feat: each tab executables --- Dataset.bat | 11 +++++++++++ Inference.bat | 11 +++++++++++ Merge.bat | 11 +++++++++++ StyleVectors.bat | 11 +++++++++++ Train.bat | 11 +++++++++++ docs/CHANGELOG.md | 6 ++++++ gradio_tabs/dataset.py | 8 +++++++- gradio_tabs/inference.py | 12 ++++++++++++ gradio_tabs/merge.py | 8 +++++++- gradio_tabs/style_vectors.py | 10 ++++++++++ gradio_tabs/train.py | 8 +++++++- 11 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 Dataset.bat create mode 100644 Inference.bat create mode 100644 Merge.bat create mode 100644 StyleVectors.bat create mode 100644 Train.bat diff --git a/Dataset.bat b/Dataset.bat new file mode 100644 index 0000000..0dfc3ef --- /dev/null +++ b/Dataset.bat @@ -0,0 +1,11 @@ +chcp 65001 > NUL +@echo off + +pushd %~dp0 +echo Running gradio_tabs/dataset.py... +venv\Scripts\python gradio_tabs/dataset.py + +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +popd +pause \ No newline at end of file diff --git a/Inference.bat b/Inference.bat new file mode 100644 index 0000000..833bd8e --- /dev/null +++ b/Inference.bat @@ -0,0 +1,11 @@ +chcp 65001 > NUL +@echo off + +pushd %~dp0 +echo Running gradio_tabs/inference.py... +venv\Scripts\python gradio_tabs/inference.py + +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +popd +pause \ No newline at end of file diff --git a/Merge.bat b/Merge.bat new file mode 100644 index 0000000..523ef47 --- /dev/null +++ b/Merge.bat @@ -0,0 +1,11 @@ +chcp 65001 > NUL +@echo off + +pushd %~dp0 +echo Running gradio_tabs/merge.py... +venv\Scripts\python gradio_tabs/merge.py + +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +popd +pause \ No newline at end of file diff --git a/StyleVectors.bat b/StyleVectors.bat new file mode 100644 index 0000000..6f6a4c3 --- /dev/null +++ b/StyleVectors.bat @@ -0,0 +1,11 @@ +chcp 65001 > NUL +@echo off + +pushd %~dp0 +echo Running gradio_tabs/style_vectors.py... +venv\Scripts\python gradio_tabs/style_vectors.py + +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +popd +pause \ No newline at end of file diff --git a/Train.bat b/Train.bat new file mode 100644 index 0000000..f7adce3 --- /dev/null +++ b/Train.bat @@ -0,0 +1,11 @@ +chcp 65001 > NUL +@echo off + +pushd %~dp0 +echo Running gradio_tabs/train.py... +venv\Scripts\python gradio_tabs/train.py + +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +popd +pause \ No newline at end of file diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b7bd5de..4b1cd16 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,6 +13,12 @@ これらのマージの活用法については各自いろいろ考えて実験してみて、面白い使い方があればぜひ共有してください。 +囁きについて実験的に作ったヌルモデルを[こちら](https://huggingface.co/litagin/sbv2_null_models)に置いています。これをヌルモデルマージで使うことで、任意のモデルを囁きモデルにある程度は変換できます。 + +### 改善? + +- WebUIの`App.bat`の起動が少し重いので、それぞれの機能を分割した`Dataset.bat`, `Inference.bat`, `Merge.bat`, `StyleVectors.bat`, `Train.bat`を追加 (今までの`App.bat`もこれまで通り使えます) + ## v2.5.1 (2024-06-14) ライセンスとのコンフリクトから、[利用規約](/docs/TERMS_OF_USE.md)を[開発陣からのお願いとデフォルトモデルの利用規約](/docs/TERMS_OF_USE.md)に変更しました。 diff --git a/gradio_tabs/dataset.py b/gradio_tabs/dataset.py index a905caf..5404595 100644 --- a/gradio_tabs/dataset.py +++ b/gradio_tabs/dataset.py @@ -1,5 +1,6 @@ import gradio as gr +from style_bert_vits2.constants import GRADIO_THEME from style_bert_vits2.logging import logger from style_bert_vits2.utils.subprocess import run_script_with_log @@ -109,7 +110,7 @@ Style-Bert-VITS2の学習用データセットを作成するためのツール def create_dataset_app() -> gr.Blocks: - with gr.Blocks() as app: + with gr.Blocks(theme=GRADIO_THEME) as app: gr.Markdown( "**既に1ファイル2-12秒程度の音声ファイル集とその書き起こしデータがある場合は、このタブは使用せずに学習できます。**" ) @@ -257,3 +258,8 @@ def create_dataset_app() -> gr.Blocks: ) return app + + +if __name__ == "__main__": + app = create_dataset_app() + app.launch(inbrowser=True) diff --git a/gradio_tabs/inference.py b/gradio_tabs/inference.py index 5935786..53393be 100644 --- a/gradio_tabs/inference.py +++ b/gradio_tabs/inference.py @@ -523,3 +523,15 @@ def create_inference_app(model_holder: TTSModelHolder) -> gr.Blocks: ) return app + + +if __name__ == "__main__": + from config import get_path_config + import torch + + path_config = get_path_config() + assets_root = path_config.assets_root + device = "cuda" if torch.cuda.is_available() else "cpu" + model_holder = TTSModelHolder(assets_root, device) + app = create_inference_app(model_holder) + app.launch(inbrowser=True) diff --git a/gradio_tabs/merge.py b/gradio_tabs/merge.py index a73937e..b4c9204 100644 --- a/gradio_tabs/merge.py +++ b/gradio_tabs/merge.py @@ -910,6 +910,8 @@ add_diff_md = """ new_model = A + weight * (B - C) ``` としてマージされます。 + +通常のマージと違い、**重みを1にしてもAの要素はそのまま保たれます**。 """ weighted_sum_md = """ @@ -935,7 +937,11 @@ new_model = A + weight * B ``` としてマージされます。 +通常のマージと違い、**重みを1にしてもAの要素はそのまま保たれます**。 + 実際にはヌルモデルでないBに対しても使えますが、その場合はおそらく音声が正常に生成されないモデルができる気がします。が、もしかしたら何かに使えるかもしれません。 + +囁きについて実験的に作ったヌルモデルを[こちら](https://huggingface.co/litagin/sbv2_null_models)に置いています。これを `B` に使うことで、任意のモデルを囁きモデルにある程度は変換できます。 """ tts_md = f""" @@ -1522,4 +1528,4 @@ if __name__ == "__main__": assets_root, device="cuda" if torch.cuda.is_available() else "cpu" ) app = create_merge_app(model_holder) - app.launch() + app.launch(inbrowser=True) diff --git a/gradio_tabs/style_vectors.py b/gradio_tabs/style_vectors.py index 4618efb..f6ba949 100644 --- a/gradio_tabs/style_vectors.py +++ b/gradio_tabs/style_vectors.py @@ -1,3 +1,8 @@ +""" +TODO: +importが重いので、WebUI全般が重くなっている。どうにかしたい。 +""" + import json import shutil from pathlib import Path @@ -568,3 +573,8 @@ def create_style_vectors_app(): ) return app + + +if __name__ == "__main__": + app = create_style_vectors_app() + app.launch(inbrowser=True) diff --git a/gradio_tabs/train.py b/gradio_tabs/train.py index e77b761..fbf8522 100644 --- a/gradio_tabs/train.py +++ b/gradio_tabs/train.py @@ -14,6 +14,7 @@ import gradio as gr import yaml from config import get_path_config +from style_bert_vits2.constants import GRADIO_THEME from style_bert_vits2.logging import logger from style_bert_vits2.utils.stdout_wrapper import SAFE_STDOUT from style_bert_vits2.utils.subprocess import run_script_with_log, second_elem_of @@ -484,7 +485,7 @@ english_teacher.wav|Mary|EN|How are you? I'm fine, thank you, and you? def create_train_app(): - with gr.Blocks().queue() as app: + with gr.Blocks(theme=GRADIO_THEME).queue() as app: gr.Markdown(change_log_md) with gr.Accordion("使い方", open=False): gr.Markdown(how_to_md) @@ -840,3 +841,8 @@ def create_train_app(): ) return app + + +if __name__ == "__main__": + app = create_train_app() + app.launch(inbrowser=True)