Delete hf download tab

This commit is contained in:
litagin02
2024-05-31 19:09:47 +09:00
parent db3e28cd47
commit ba7b03e359
3 changed files with 2 additions and 108 deletions

3
app.py
View File

@@ -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,

View File

@@ -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))

View File

@@ -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()