cockolo terada commited on
Commit
f854dde
·
verified ·
1 Parent(s): 10529b8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -17
app.py CHANGED
@@ -1,16 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import argparse
2
  from pathlib import Path
3
 
4
  import gradio as gr
5
  import torch
6
 
7
- # --- [変更点1] 必要な関数だけをインポート ---
8
  # 拡張機能タブから必要なものだけをインポート
9
  from gradio_tabs.single import create_synthesis_app
10
  from gradio_tabs.merge import create_merge_app
11
 
12
- # ---------------------------------------------
13
-
14
  from config import get_path_config
15
  from style_bert_vits2.constants import GRADIO_THEME, VERSION
16
  from style_bert_vits2.nlp.japanese import pyopenjtalk_worker
@@ -27,37 +43,38 @@ update_dict()
27
 
28
  parser = argparse.ArgumentParser()
29
  parser.add_argument("--device", type=str, default="cuda")
30
- parser.add_argument("--host", type=str, default="127.0.0.1")
31
- parser.add_argument("--port", type=int, default=None)
 
 
32
  parser.add_argument("--no_autolaunch", action="store_true")
33
- parser.add_argument("--share", action="store_true")
34
 
35
  args = parser.parse_args()
36
  device = args.device
37
  if device == "cuda" and not torch.cuda.is_available():
 
38
  device = "cpu"
 
 
 
39
 
40
  path_config = get_path_config()
 
 
 
41
  model_holder = TTSModelHolder(Path(path_config.assets_root), device)
42
 
43
  # 起動時にトップへスクロールさせるjsを追加
44
  with gr.Blocks(theme=GRADIO_THEME, js="() => { window.scrollTo(0, 0); }") as app:
45
- # タイトルを少し変更しても良いかもしれません
46
  gr.Markdown(f"# Style-Bert-VITS2 拡張ツール (version {VERSION})")
47
 
48
- # --- [変更点2] 表示したいタブだけを残す ---
49
  with gr.Tabs():
50
  with gr.Tab("拡張音声合成"):
51
- # 拡張ツールの音声合成タブ (single.py)
52
  create_synthesis_app(model_holder=model_holder)
53
  with gr.Tab("モデルマージ"):
54
  create_merge_app(model_holder=model_holder)
55
 
56
- # ---------------------------------------------
57
-
58
- app.launch(
59
- server_name=args.host,
60
- server_port=args.port,
61
- inbrowser=not args.no_autolaunch,
62
- share=args.share,
63
- )
 
1
+ # ===================================================================
2
+ # [最重要] アプリケーションの本体を読み込む前に、モデルのセットアップを実行
3
+ import initialize
4
+ import time
5
+
6
+ print("--- [1/3] Starting Model Setup Script ---")
7
+ start_time = time.time()
8
+ # Hugging Face Spacesでは推論のみ行うのが一般的なので、
9
+ # only_infer=True を指定して不要なモデルのダウンロードをスキップします。
10
+ # これにより起動が高速化します。
11
+ initialize.main(only_infer=True)
12
+ end_time = time.time()
13
+ print(f"--- [2/3] Model Setup Complete. Elapsed time: {end_time - start_time:.2f} seconds ---")
14
+ # ===================================================================
15
+
16
+
17
+ # [3/3] モデルの準備が完了したので、アプリケーションの本体を読み込んで起動
18
+ print("--- [3/3] Initializing and launching Gradio App... ---")
19
+
20
  import argparse
21
  from pathlib import Path
22
 
23
  import gradio as gr
24
  import torch
25
 
 
26
  # 拡張機能タブから必要なものだけをインポート
27
  from gradio_tabs.single import create_synthesis_app
28
  from gradio_tabs.merge import create_merge_app
29
 
 
 
30
  from config import get_path_config
31
  from style_bert_vits2.constants import GRADIO_THEME, VERSION
32
  from style_bert_vits2.nlp.japanese import pyopenjtalk_worker
 
43
 
44
  parser = argparse.ArgumentParser()
45
  parser.add_argument("--device", type=str, default="cuda")
46
+ # Hugging Face Spacesで動かす場合、hostとportはGradioが自動で設定するため、
47
+ # ここでの指定は通常不要です。
48
+ # parser.add_argument("--host", type=str, default="127.0.0.1")
49
+ # parser.add_argument("--port", type=int, default=None)
50
  parser.add_argument("--no_autolaunch", action="store_true")
51
+ parser.add_argument("--share", action="store_true", help="Set to True to create a public link")
52
 
53
  args = parser.parse_args()
54
  device = args.device
55
  if device == "cuda" and not torch.cuda.is_available():
56
+ print("CUDA not available, falling back to CPU.")
57
  device = "cpu"
58
+ else:
59
+ print(f"Using device: {device}")
60
+
61
 
62
  path_config = get_path_config()
63
+
64
+ # この時点で、initialize.pyが作成したモデルへのシンボリックリンクが
65
+ # Path(path_config.assets_root) 以下に存在しているはずです。
66
  model_holder = TTSModelHolder(Path(path_config.assets_root), device)
67
 
68
  # 起動時にトップへスクロールさせるjsを追加
69
  with gr.Blocks(theme=GRADIO_THEME, js="() => { window.scrollTo(0, 0); }") as app:
 
70
  gr.Markdown(f"# Style-Bert-VITS2 拡張ツール (version {VERSION})")
71
 
 
72
  with gr.Tabs():
73
  with gr.Tab("拡張音声合成"):
 
74
  create_synthesis_app(model_holder=model_holder)
75
  with gr.Tab("モデルマージ"):
76
  create_merge_app(model_holder=model_holder)
77
 
78
+ # Hugging Face Spacesでは、share=Trueは不要(自動で公開URLが生成される)
79
+ # また、サーバー名とポートも指定しない方が安定します。
80
+ app.launch()