init
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +1 -0
- .gitignore +1 -0
- app.py +85 -0
- requirements.txt +1 -0
- specs/0verflow_Cross Days/spec1.png +3 -0
- specs/0verflow_Cross Days/spec2.png +3 -0
- specs/0verflow_Cross Days/spec3.png +3 -0
- specs/0verflow_Cross Days/spec4.png +3 -0
- specs/0verflow_Cross Days/spec5.png +3 -0
- specs/0verflow_School Days HQ/spec1.png +3 -0
- specs/0verflow_School Days HQ/spec2.png +3 -0
- specs/0verflow_School Days HQ/spec3.png +3 -0
- specs/0verflow_School Days HQ/spec4.png +3 -0
- specs/0verflow_School Days HQ/spec5.png +3 -0
- specs/0verflow_Shiny Days/spec1.png +3 -0
- specs/0verflow_Shiny Days/spec2.png +3 -0
- specs/0verflow_Shiny Days/spec3.png +3 -0
- specs/0verflow_Shiny Days/spec4.png +3 -0
- specs/0verflow_Shiny Days/spec5.png +3 -0
- specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec1.png +3 -0
- specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec2.png +3 -0
- specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec3.png +3 -0
- specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec4.png +3 -0
- specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec5.png +3 -0
- specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec1.png +3 -0
- specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec2.png +3 -0
- specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec3.png +3 -0
- specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec4.png +3 -0
- specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec5.png +3 -0
- specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec1.png +3 -0
- specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec2.png +3 -0
- specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec3.png +3 -0
- specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec4.png +3 -0
- specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec5.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec1.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec2.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec3.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec4.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec5.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec1.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec2.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec3.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec4.png +3 -0
- specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec5.png +3 -0
- specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec1.png +3 -0
- specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec2.png +3 -0
- specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec3.png +3 -0
- specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec4.png +3 -0
- specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec5.png +3 -0
- specs/AKABEiSOFT3_Ryuukishi Bloody † Saga/spec1.png +3 -0
.gitattributes
CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.venv/
|
app.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# app.py
|
2 |
+
from pathlib import Path
|
3 |
+
|
4 |
+
import gradio as gr
|
5 |
+
|
6 |
+
# -----------------------------
|
7 |
+
# 設定
|
8 |
+
# -----------------------------
|
9 |
+
SPECS_DIR = Path("specs")
|
10 |
+
|
11 |
+
|
12 |
+
# -----------------------------
|
13 |
+
# ユーティリティ
|
14 |
+
# -----------------------------
|
15 |
+
def list_game_names():
|
16 |
+
"""specs/ 以下のディレクトリ名をゲーム名として列挙"""
|
17 |
+
if not SPECS_DIR.exists():
|
18 |
+
return []
|
19 |
+
return sorted([p.name for p in SPECS_DIR.iterdir() if p.is_dir()])
|
20 |
+
|
21 |
+
|
22 |
+
def gallery_images(game_name: str):
|
23 |
+
"""選択ゲームの spec1..5 のパス(存在するものだけ)を返す"""
|
24 |
+
images = []
|
25 |
+
for i in range(1, 6):
|
26 |
+
p = SPECS_DIR / game_name / f"spec{i}.png"
|
27 |
+
if p.exists():
|
28 |
+
images.append(str(p))
|
29 |
+
return images
|
30 |
+
|
31 |
+
|
32 |
+
def filter_table(query: str, all_names: list[str]):
|
33 |
+
"""簡易フィルタ:部分一致でゲーム名を絞り込み(大文字小文字無視)"""
|
34 |
+
q = (query or "").strip().lower()
|
35 |
+
names = all_names if not q else [n for n in all_names if q in n.lower()]
|
36 |
+
# Dataframe は 2次元配列でもOK
|
37 |
+
return [[n] for n in names]
|
38 |
+
|
39 |
+
|
40 |
+
def on_select(evt: gr.SelectData):
|
41 |
+
"""左の表の行クリックでギャラリー更新"""
|
42 |
+
# Dataframe の select は SelectData を受け取り、row_value に行全体の値が入る
|
43 |
+
# row_value[0] が 1列目(=ゲーム名)
|
44 |
+
row = evt.row_value or []
|
45 |
+
game = row[0] if row else None
|
46 |
+
if not game:
|
47 |
+
return "## ゲームを選んでください", []
|
48 |
+
return f"## `{game}`", gallery_images(game)
|
49 |
+
|
50 |
+
|
51 |
+
with gr.Blocks() as app:
|
52 |
+
gr.Markdown(
|
53 |
+
"# VisualNovel_Dataset Spectrogram Viewer\n- 左のゲーム名をクリックすると、右にそのスペクトログラム5枚が表示されます。"
|
54 |
+
)
|
55 |
+
|
56 |
+
all_names_state = gr.State(list_game_names())
|
57 |
+
|
58 |
+
with gr.Row():
|
59 |
+
with gr.Column(scale=1):
|
60 |
+
search = gr.Textbox(
|
61 |
+
placeholder="ゲーム名をフィルタ(部分一致)", show_label=False
|
62 |
+
)
|
63 |
+
table = gr.Dataframe(
|
64 |
+
value=[[n] for n in all_names_state.value],
|
65 |
+
headers=["game_name"],
|
66 |
+
show_row_numbers=True,
|
67 |
+
)
|
68 |
+
with gr.Column(scale=2):
|
69 |
+
title_md = gr.Markdown("## ゲームをクリックしてください")
|
70 |
+
gallery = gr.Gallery(
|
71 |
+
columns=3,
|
72 |
+
height="auto",
|
73 |
+
preview=True,
|
74 |
+
show_fullscreen_button=True,
|
75 |
+
)
|
76 |
+
|
77 |
+
# クリックでギャラリー更新
|
78 |
+
table.select(fn=on_select, outputs=[title_md, gallery])
|
79 |
+
|
80 |
+
# フィルタで左表の表示を更新
|
81 |
+
search.change(fn=filter_table, inputs=[search, all_names_state], outputs=table)
|
82 |
+
|
83 |
+
# ローカル実行
|
84 |
+
if __name__ == "__main__":
|
85 |
+
app.launch(inbrowser=True)
|
requirements.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
gradio
|
specs/0verflow_Cross Days/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Cross Days/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Cross Days/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Cross Days/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Cross Days/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_School Days HQ/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_School Days HQ/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_School Days HQ/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_School Days HQ/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_School Days HQ/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Shiny Days/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Shiny Days/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Shiny Days/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Shiny Days/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/0verflow_Shiny Days/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_CharaBration! ~Otome wa Koi shite Charabureru~/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Dekinai Watashi ga, Kurikaesu/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hakata DYINGZOMBIES ~Second Chance for BEAUTIFUL LIVE~/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou 2/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Hataraku Otona no Ren'ai Jijou/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec1.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec2.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec3.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec4.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Maho x Roba -Witches Spiritual Home-/spec5.png
ADDED
![]() |
Git LFS Details
|
specs/AKABEiSOFT3_Ryuukishi Bloody † Saga/spec1.png
ADDED
![]() |
Git LFS Details
|