From ba7b03e359a8c306ec1823b97564cfe46da879e7 Mon Sep 17 00:00:00 2001 From: litagin02 Date: Fri, 31 May 2024 19:09:47 +0900 Subject: [PATCH] Delete hf download tab --- app.py | 3 -- docs/CHANGELOG.md | 5 +- gradio_tabs/download_tab.py | 102 ------------------------------------ 3 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 gradio_tabs/download_tab.py diff --git a/app.py b/app.py index 86d4ad3..46684ef 100644 --- a/app.py +++ b/app.py @@ -6,7 +6,6 @@ import torch from config import get_path_config from gradio_tabs.dataset import create_dataset_app -from gradio_tabs.download_tab import create_download_app from gradio_tabs.inference import create_inference_app from gradio_tabs.merge import create_merge_app from gradio_tabs.style_vectors import create_style_vectors_app @@ -57,8 +56,6 @@ with gr.Blocks(theme=GRADIO_THEME) as app: create_style_vectors_app() with gr.Tab("マージ"): create_merge_app(model_holder=model_holder) - with gr.Tab("モデルダウンロード"): - create_download_app() app.launch( server_name=args.host, diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 26c194c..0618709 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## v2.5.0 (2024-05-26) +## v2.5.0 (2024-05-31) このバージョンから[利用規約](/docs/TERMS_OF_USE.md)が追加されました。ご利用の際は必ずお読みください。 @@ -9,7 +9,6 @@ - デフォルトモデルに [あみたろの声素材工房](https://amitaro.net/) のあみたろ様が公開しているコーパスを利用して学習した**小春音アミ**モデルを追加(あみたろ様には事前に連絡して許諾を得ています) - アプデの場合は新たに`App.bat`や`Editor.bat`を起動した際に自動でダウンロードされます - 英語の音声合成の速度向上([gordon0414](https://github.com/gordon0414)さんによる[PR](https://github.com/litagin02/Style-Bert-VITS2/pull/124)です、ありがとうございます!) -- Hugging Face 🤗 に投稿されているモデルをダウンロードして音声合成に利用できるタブをWebUIに追加 - エディターの各種機能改善(多くが[kamexy](https://github.com/kamexy)様による[エディターリポジトリ](https://github.com/litagin02/Style-Bert-VITS2-Editor)へのプルリク群です、ありがとうございます!) - 選択した行の下に新規の行を作成できるように - 日本語変換のエンターで音声合成が走るバグの修正 @@ -33,7 +32,7 @@ ### バグ修正 -- Gradioのアップデートにより、モデル選択時等に`TypeError: Type is not JSON serializable: WindowsPath`のようなエラーが出る問題を修正 +- Gradioのアップデートにより、モデル選択時やスタイルのDBSCAN作成時等に`TypeError: Type is not JSON serializable: WindowsPath`のようなエラーが出る問題を修正 - TensorboardをWebUIから立ち上げた際にエラーが出る問題の修正 ([#129](https://github.com/litagin02/Style-Bert-VITS2/issues/129)) diff --git a/gradio_tabs/download_tab.py b/gradio_tabs/download_tab.py deleted file mode 100644 index ae220e5..0000000 --- a/gradio_tabs/download_tab.py +++ /dev/null @@ -1,102 +0,0 @@ -import shutil - -import gradio as gr -from huggingface_hub import snapshot_download - -from config import get_path_config -from style_bert_vits2.logging import logger - - -assets_root = get_path_config().assets_root - -how_to_md = """ -## 使い方 - -学習済みモデルの共有サイト Hugging Face 🤗 に公開されているモデルをダウンロードして音声合成で使えるようにします。 - -例: - -- `https://huggingface.co/username/my_sbv2_model`を指定すると、`model_assets/username-my_sbv2_model`に全体がダウンロードされます。 -- `https://huggingface.co/username/my_sbv2_models/tree/main/model1`を指定すると、`model_assets/username-my_sbv2_models-model1`に`model1`フォルダがダウンロードされます。 - -**注意** - -- **必ずモデルの利用には(掲載があれば)利用規約を確認してください。** ダウンロード後にREADMEファイルが下記に表示されます。 -- 音声合成で使うには、`model_assets/{model_name}`の**直下**に`*.safetensors`ファイルと`config.json`ファイルと`style_vectors.npy`ファイルが必要です。特にリポジトリの構成は確認しないので、ダウンロード後に確認し、必要ならば再配置を行ってください。 -- 内容はチェックしませんので、**ダウンロードする前にURLにアクセスして中身を必ず確認**してください。怪しいURLは入力しないでください。 -""" - - -def download_model(url: str): - # Parse url like: https://huggingface.co/username/myrepo/tree/main/jvnv-F1-jp - # or like: https://huggingface.co/username/myrepo - - # repo_id = "username/myrepo" - repo_id = url.split("https://huggingface.co/")[1].split("/tree/main")[0] - if len(repo_id.split("/")) != 2: - logger.error(f"Invalid URL: {url}") - return "Error: URLが不正です。" - # repo_folder = "jvnv-F1-jp" - repo_folder = url.split("/tree/main/")[-1] if "/tree/main/" in url else "" - # remove last / if exists - if repo_folder.endswith("/"): - repo_folder = repo_folder[:-1] - if repo_folder == "": - model_name = repo_id.replace("/", "-") - local_dir = assets_root / model_name - logger.info(f"Downloading {repo_id} to {local_dir}") - result = snapshot_download(repo_id, local_dir=local_dir) - else: - model_name = repo_id.replace("/", "-") + "-" + repo_folder.split("/")[-1] - local_dir = assets_root / model_name - logger.info(f"Downloading {repo_id}/{repo_folder} to {local_dir}") - result = snapshot_download( - repo_id, - local_dir=local_dir, - allow_patterns=[repo_folder + "/*"], - ) - # Move the downloaded folder to the correct path - shutil.copytree( - assets_root / model_name / repo_folder, local_dir, dirs_exist_ok=True - ) - shutil.rmtree(assets_root / model_name / repo_folder.split("/")[0]) - # try to download README.md - try: - snapshot_download( - repo_id, - local_dir=local_dir, - allow_patterns=["README.md"], - ) - # README.mdの中身を表示 - with open(local_dir / "README.md", encoding="utf-8") as f: - readme = f.read() - except Exception as e: - logger.warning(f"README.md not found: {e}") - readme = "README.mdが見つかりませんでした。" - - # Remove local_dir/.huggingface - hf_dir = local_dir / ".huggingface" - if hf_dir.exists(): - shutil.rmtree(local_dir / ".huggingface") - return f"保存完了。フォルダ:\n{result}", readme - - -def create_download_app() -> gr.Blocks: - with gr.Blocks() as app: - gr.Markdown(how_to_md) - url = gr.Textbox( - label="URL", placeholder="https://huggingface.co/username/myrepo" - ) - btn = gr.Button("ダウンロード") - info = gr.Markdown("ダウンロード結果") - md = gr.Markdown( - label="README.mdファイル", value="ここにREADME.mdがあれば表示されます。" - ) - btn.click(download_model, inputs=[url], outputs=[info, md]) - - return app - - -if __name__ == "__main__": - app = create_download_app() - app.launch()