Update app.py
Browse files
app.py
CHANGED
|
@@ -27,27 +27,30 @@ main_dir = Path().resolve()
|
|
| 27 |
print(main_dir)
|
| 28 |
|
| 29 |
os.chdir(main_dir)
|
| 30 |
-
models_dir = "rvc_models"
|
| 31 |
audio_separat_dir = main_dir / "audio_input"
|
| 32 |
|
| 33 |
-
rvc_models_dir = os.path.join(models_dir)
|
| 34 |
-
|
| 35 |
AUDIO_DIR = main_dir / 'audio_input'
|
| 36 |
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
|
| 40 |
|
| 41 |
-
def get_current_models(models_dir):
|
| 42 |
-
models_list = os.listdir(models_dir)
|
| 43 |
-
items_to_remove = ['hubert_base.pt', 'readme.txt', 'rmvpe.pt']
|
| 44 |
-
return [item for item in models_list if item not in items_to_remove]
|
| 45 |
|
| 46 |
|
| 47 |
|
| 48 |
# Function to get the list of audio files in the specified directory
|
| 49 |
def get_audio_files():
|
| 50 |
-
if not os.path.exists(
|
| 51 |
os.makedirs(AUDIO_DIR)
|
| 52 |
# List all supported audio file formats
|
| 53 |
return [f for f in os.listdir(AUDIO_DIR) if f.lower().endswith(('.mp3', '.wav', '.flac', '.ogg', '.aac'))]
|
|
@@ -70,13 +73,6 @@ def play_audio(file_path):
|
|
| 70 |
|
| 71 |
|
| 72 |
|
| 73 |
-
def update_models_list():
|
| 74 |
-
models_l = get_current_models(rvc_models_dir)
|
| 75 |
-
dropdown_instance = gr.Dropdown(choices=models_l)
|
| 76 |
-
return dropdown_instance
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
voice_models = get_current_models(rvc_models_dir)
|
| 80 |
|
| 81 |
|
| 82 |
def download_audio(url):
|
|
@@ -261,8 +257,16 @@ with gr.Blocks(title="Hex RVC", theme=gr.themes.Default(primary_hue="red", secon
|
|
| 261 |
gr.Markdown(" join [AIHub](https://discord.gg/aihub) to get the rvc model!")
|
| 262 |
|
| 263 |
with gr.Tab("Inference"):
|
| 264 |
-
MODEL_NAME = gr.Dropdown(
|
| 265 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 266 |
with gr.Row():
|
| 267 |
# = gr.Textbox(label="Model Name", placeholder="Enter model name")
|
| 268 |
# SOUND_PATH = gr.Textbox(label="Audio Path (Optional)", placeholder="Leave blank to upload audio")
|
|
@@ -327,9 +331,12 @@ with gr.Blocks(title="Hex RVC", theme=gr.themes.Default(primary_hue="red", secon
|
|
| 327 |
)
|
| 328 |
|
| 329 |
with gr.Tab("Download RVC Model"):
|
| 330 |
-
|
| 331 |
-
|
|
|
|
|
|
|
| 332 |
button_model = gr.Button("Download model")
|
|
|
|
| 333 |
button_model.click(fn=download_online_model, inputs=[url, dirname], outputs=[dirname])
|
| 334 |
with gr.Tab("Audio Separation"):
|
| 335 |
with gr.Row():
|
|
|
|
| 27 |
print(main_dir)
|
| 28 |
|
| 29 |
os.chdir(main_dir)
|
| 30 |
+
models_dir = main_dir / "rvc_models"
|
| 31 |
audio_separat_dir = main_dir / "audio_input"
|
| 32 |
|
|
|
|
|
|
|
| 33 |
AUDIO_DIR = main_dir / 'audio_input'
|
| 34 |
|
| 35 |
|
| 36 |
+
# Function to list all folders in the models directory
|
| 37 |
+
def get_folders():
|
| 38 |
+
if models_dir.exists() and models_dir.is_dir():
|
| 39 |
+
return [folder.name for folder in models_dir.iterdir() if folder.is_dir()]
|
| 40 |
+
return []
|
| 41 |
+
|
| 42 |
+
# Function to refresh and return the list of folders
|
| 43 |
+
def refresh_folders():
|
| 44 |
+
return gr.Dropdown.update(choices=get_folders())
|
| 45 |
|
| 46 |
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
|
| 50 |
|
| 51 |
# Function to get the list of audio files in the specified directory
|
| 52 |
def get_audio_files():
|
| 53 |
+
if not os.path.exists(QUDIO_DIR):
|
| 54 |
os.makedirs(AUDIO_DIR)
|
| 55 |
# List all supported audio file formats
|
| 56 |
return [f for f in os.listdir(AUDIO_DIR) if f.lower().endswith(('.mp3', '.wav', '.flac', '.ogg', '.aac'))]
|
|
|
|
| 73 |
|
| 74 |
|
| 75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
|
| 77 |
|
| 78 |
def download_audio(url):
|
|
|
|
| 257 |
gr.Markdown(" join [AIHub](https://discord.gg/aihub) to get the rvc model!")
|
| 258 |
|
| 259 |
with gr.Tab("Inference"):
|
| 260 |
+
MODEL_NAME = gr.Dropdown(
|
| 261 |
+
label="Select a Model Folder",
|
| 262 |
+
choices=get_folders(),
|
| 263 |
+
interactive=True,
|
| 264 |
+
elem_id="model_folder"
|
| 265 |
+
)
|
| 266 |
+
# Button to refresh the list of folders
|
| 267 |
+
refresh_button = gr.Button("Refresh Folder List")
|
| 268 |
+
# Action to refresh folder list on button click
|
| 269 |
+
refresh_button.click(refresh_folders, outputs=folder_dropdown)
|
| 270 |
with gr.Row():
|
| 271 |
# = gr.Textbox(label="Model Name", placeholder="Enter model name")
|
| 272 |
# SOUND_PATH = gr.Textbox(label="Audio Path (Optional)", placeholder="Leave blank to upload audio")
|
|
|
|
| 331 |
)
|
| 332 |
|
| 333 |
with gr.Tab("Download RVC Model"):
|
| 334 |
+
with gr.Row():
|
| 335 |
+
url = gr.Textbox(label="Your model URL")
|
| 336 |
+
dirname = gr.Textbox(label="Your Model name")
|
| 337 |
+
outout_pah = gr.Textbox(label="output download", interactive=False)
|
| 338 |
button_model = gr.Button("Download model")
|
| 339 |
+
|
| 340 |
button_model.click(fn=download_online_model, inputs=[url, dirname], outputs=[dirname])
|
| 341 |
with gr.Tab("Audio Separation"):
|
| 342 |
with gr.Row():
|