Rooni commited on
Commit
da709aa
·
1 Parent(s): c7b280f

Update src/webui.py

Browse files
Files changed (1) hide show
  1. src/webui.py +33 -33
src/webui.py CHANGED
@@ -168,22 +168,22 @@ if __name__ == '__main__':
168
 
169
  with gr.Blocks(title='AICoverGenWebUI') as app:
170
  # main tab
171
- with gr.Tab("Generate"):
172
 
173
- with gr.Accordion('Main Options'):
174
  with gr.Row():
175
  with gr.Column():
176
  rvc_model = gr.Dropdown(voice_models, label='Voice Models', info='Папка моделей «AICoverGen --> rvc_models». После добавления новых моделей в эту папку нажмите кнопку «Обновить».')
177
- ref_btn = gr.Button('Refresh Models 🔁', variant='primary')
178
 
179
  with gr.Column() as yt_link_col:
180
- song_input = gr.Text(label='Song input', info='Ссылка на песню на YouTube или полный путь к локальному файлу. Для загрузки файла нажмите кнопку ниже. Пример: https://www.youtube.com/watch?v=M-mtdN6R3bQ')
181
- show_file_upload_button = gr.Button('Upload file instead')
182
 
183
  with gr.Column(visible=False) as file_upload_col:
184
- local_file = gr.File(label='Audio file')
185
- song_input_file = gr.UploadButton('Upload 📂', file_types=['audio'], variant='primary')
186
- show_yt_link_button = gr.Button('Paste YouTube link/Path to local file instead')
187
  song_input_file.upload(process_file_upload, inputs=[song_input_file], outputs=[local_file, song_input])
188
 
189
  with gr.Column():
@@ -192,7 +192,7 @@ if __name__ == '__main__':
192
  show_file_upload_button.click(swap_visibility, outputs=[file_upload_col, yt_link_col, song_input, local_file])
193
  show_yt_link_button.click(swap_visibility, outputs=[yt_link_col, file_upload_col, song_input, local_file])
194
 
195
- with gr.Accordion('Voice conversion options', open=False):
196
  with gr.Row():
197
  index_rate = gr.Slider(0, 1, value=0.5, label='Index Rate', info="Управляет тем, какую часть акцента голоса AI следует сохранить в вокале.")
198
  filter_radius = gr.Slider(0, 7, value=3, step=1, label='Filter radius', info='Если >=3: применить медианную фильтрацию к собранным результатам основного тона. Может уменьшить одышку')
@@ -204,12 +204,12 @@ if __name__ == '__main__':
204
  f0_method.change(show_hop_slider, inputs=f0_method, outputs=crepe_hop_length)
205
  keep_files = gr.Checkbox(label='Keep intermediate files', info='Сохраняйте все сгенерированные аудиофайлы в каталоге song_output/id, например. Изолированный вокал/инструментал. Оставьте флажок снятым, чтобы сэкономить место')
206
 
207
- with gr.Accordion('Audio mixing options', open=False):
208
- gr.Markdown('### Volume Change (decibels)')
209
  with gr.Row():
210
- main_gain = gr.Slider(-20, 20, value=0, step=1, label='Main Vocals')
211
- backup_gain = gr.Slider(-20, 20, value=0, step=1, label='Backup Vocals')
212
- inst_gain = gr.Slider(-20, 20, value=0, step=1, label='Music')
213
 
214
  gr.Markdown('### Reverb Control on AI Vocals')
215
  with gr.Row():
@@ -218,12 +218,12 @@ if __name__ == '__main__':
218
  reverb_dry = gr.Slider(0, 1, value=0.8, label='Dryness level', info='Уровень AI-вокала без реверберации')
219
  reverb_damping = gr.Slider(0, 1, value=0.7, label='Damping level', info='Поглощение высоких частот в реверберации')
220
 
221
- gr.Markdown('### Audio Output Format')
222
- output_format = gr.Dropdown(['mp3', 'wav'], value='mp3', label='Output file type', info='mp3: небольшой размер файла, достойное качество. wav: большой размер файла, лучшее качество.')
223
 
224
  with gr.Row():
225
- clear_btn = gr.ClearButton(value='Clear', components=[song_input, rvc_model, keep_files, local_file])
226
- generate_btn = gr.Button("Generate", variant='primary')
227
  ai_cover = gr.Audio(label='AI Cover', show_share_button=False)
228
 
229
  ref_btn.click(update_models_list, None, outputs=rvc_model)
@@ -240,15 +240,15 @@ if __name__ == '__main__':
240
  reverb_dry, reverb_damping, output_format, ai_cover])
241
 
242
  # Download tab
243
- with gr.Tab('Download model'):
244
 
245
- with gr.Tab('From HuggingFace/Pixeldrain URL'):
246
  with gr.Row():
247
- model_zip_link = gr.Text(label='Download link to model', info='Это должен быть ZIP-файл, содержащий файл модели .pth и необязательный файл .index.')
248
- model_name = gr.Text(label='Name your model', info='Дайте вашей новой модели уникальное имя среди других ваших моделей голоса.')
249
 
250
  with gr.Row():
251
- download_btn = gr.Button('Download 🌐', variant='primary', scale=19)
252
  dl_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
253
 
254
  download_btn.click(download_online_model, inputs=[model_zip_link, model_name], outputs=dl_output_message)
@@ -266,7 +266,7 @@ if __name__ == '__main__':
266
  download_online_model,
267
  )
268
 
269
- with gr.Tab('From Public Index'):
270
 
271
  gr.Markdown('## Как использовать')
272
  gr.Markdown('- Нажмите «Инициализировать таблицу общедоступных моделей»')
@@ -275,16 +275,16 @@ if __name__ == '__main__':
275
  gr.Markdown('- Нажмите Загрузить')
276
 
277
  with gr.Row():
278
- pub_zip_link = gr.Text(label='Download link to model')
279
- pub_model_name = gr.Text(label='Model name')
280
 
281
  with gr.Row():
282
- download_pub_btn = gr.Button('Download 🌐', variant='primary', scale=19)
283
  pub_dl_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
284
 
285
- filter_tags = gr.CheckboxGroup(value=[], label='Show voice models with tags', choices=[])
286
  search_query = gr.Text(label='Search')
287
- load_public_models_button = gr.Button(value='Initialize public models table', variant='primary')
288
 
289
  public_models_table = gr.DataFrame(value=[], headers=['Model Name', 'Description', 'Credit', 'URL', 'Tags'], label='Available Public Models', interactive=False)
290
  public_models_table.select(pub_dl_autofill, inputs=[public_models_table], outputs=[pub_zip_link, pub_model_name])
@@ -294,7 +294,7 @@ if __name__ == '__main__':
294
  download_pub_btn.click(download_online_model, inputs=[pub_zip_link, pub_model_name], outputs=pub_dl_output_message)
295
 
296
  # Upload tab
297
- with gr.Tab('Upload model'):
298
  gr.Markdown('## Загрузить локально обученную модель RVC v2 и индексный файл')
299
  gr.Markdown('- Найти файл модели (папка весов) и дополнительный индексный файл (папка журналов/[имя])')
300
  gr.Markdown('- Сжать файлы в zip-файл')
@@ -303,12 +303,12 @@ if __name__ == '__main__':
303
 
304
  with gr.Row():
305
  with gr.Column():
306
- zip_file = gr.File(label='Zip file')
307
 
308
- local_model_name = gr.Text(label='Model name')
309
 
310
  with gr.Row():
311
- model_upload_button = gr.Button('Upload model', variant='primary', scale=19)
312
  local_upload_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
313
  model_upload_button.click(upload_local_model, inputs=[zip_file, local_model_name], outputs=local_upload_output_message)
314
 
 
168
 
169
  with gr.Blocks(title='AICoverGenWebUI') as app:
170
  # main tab
171
+ with gr.Tab("Генерация"):
172
 
173
+ with gr.Accordion('Основные настройки'):
174
  with gr.Row():
175
  with gr.Column():
176
  rvc_model = gr.Dropdown(voice_models, label='Voice Models', info='Папка моделей «AICoverGen --> rvc_models». После добавления новых моделей в эту папку нажмите кнопку «Обновить».')
177
+ ref_btn = gr.Button('Обновить 🔁', variant='primary')
178
 
179
  with gr.Column() as yt_link_col:
180
+ song_input = gr.Text(label='Песня', info='Ссылка на песню на YouTube или полный путь к локальному файлу. Для загрузки файла нажмите кнопку ниже. Пример: https://www.youtube.com/watch?v=M-mtdN6R3bQ')
181
+ show_file_upload_button = gr.Button('Загрузить файл')
182
 
183
  with gr.Column(visible=False) as file_upload_col:
184
+ local_file = gr.File(label='Аудио файл')
185
+ song_input_file = gr.UploadButton('Загрузить 📂', file_types=['audio'], variant='primary')
186
+ show_yt_link_button = gr.Button('По ссылке')
187
  song_input_file.upload(process_file_upload, inputs=[song_input_file], outputs=[local_file, song_input])
188
 
189
  with gr.Column():
 
192
  show_file_upload_button.click(swap_visibility, outputs=[file_upload_col, yt_link_col, song_input, local_file])
193
  show_yt_link_button.click(swap_visibility, outputs=[yt_link_col, file_upload_col, song_input, local_file])
194
 
195
+ with gr.Accordion('Параметры образования голоса', open=False):
196
  with gr.Row():
197
  index_rate = gr.Slider(0, 1, value=0.5, label='Index Rate', info="Управляет тем, какую часть акцента голоса AI следует сохранить в вокале.")
198
  filter_radius = gr.Slider(0, 7, value=3, step=1, label='Filter radius', info='Если >=3: применить медианную фильтрацию к собранным результатам основного тона. Может уменьшить одышку')
 
204
  f0_method.change(show_hop_slider, inputs=f0_method, outputs=crepe_hop_length)
205
  keep_files = gr.Checkbox(label='Keep intermediate files', info='Сохраняйте все сгенерированные аудиофайлы в каталоге song_output/id, например. Изолированный вокал/инструментал. Оставьте флажок снятым, чтобы сэкономить место')
206
 
207
+ with gr.Accordion('Параметры микширования звука', open=False):
208
+ gr.Markdown('### Изменение громкости (децибелы)')
209
  with gr.Row():
210
+ main_gain = gr.Slider(-20, 20, value=0, step=1, label='Основной вокал')
211
+ backup_gain = gr.Slider(-20, 20, value=0, step=1, label='Бэк-вокал')
212
+ inst_gain = gr.Slider(-20, 20, value=0, step=1, label='Музыка')
213
 
214
  gr.Markdown('### Reverb Control on AI Vocals')
215
  with gr.Row():
 
218
  reverb_dry = gr.Slider(0, 1, value=0.8, label='Dryness level', info='Уровень AI-вокала без реверберации')
219
  reverb_damping = gr.Slider(0, 1, value=0.7, label='Damping level', info='Поглощение высоких частот в реверберации')
220
 
221
+ gr.Markdown('### Аудио')
222
+ output_format = gr.Dropdown(['mp3', 'wav'], value='mp3', label='Выходной формат аудио', info='mp3: небольшой размер файла, достойное качество. wav: большой размер файла, лучшее качество.')
223
 
224
  with gr.Row():
225
+ clear_btn = gr.ClearButton(value='Очистить', components=[song_input, rvc_model, keep_files, local_file])
226
+ generate_btn = gr.Button("Сгенерировать", variant='primary')
227
  ai_cover = gr.Audio(label='AI Cover', show_share_button=False)
228
 
229
  ref_btn.click(update_models_list, None, outputs=rvc_model)
 
240
  reverb_dry, reverb_damping, output_format, ai_cover])
241
 
242
  # Download tab
243
+ with gr.Tab('Загрузка моделей'):
244
 
245
+ with gr.Tab('С HuggingFace/Pixeldrain URL'):
246
  with gr.Row():
247
+ model_zip_link = gr.Text(label='Ссылка на скачивание модели', info='Это должен быть ZIP-файл, содержащий файл модели .pth и необязательный файл .index.')
248
+ model_name = gr.Text(label='Название', info='Дайте вашей новой модели уникальное имя среди других моделей голоса.')
249
 
250
  with gr.Row():
251
+ download_btn = gr.Button('Скачать 🌐', variant='primary', scale=19)
252
  dl_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
253
 
254
  download_btn.click(download_online_model, inputs=[model_zip_link, model_name], outputs=dl_output_message)
 
266
  download_online_model,
267
  )
268
 
269
+ with gr.Tab('Из общедоступного индекса'):
270
 
271
  gr.Markdown('## Как использовать')
272
  gr.Markdown('- Нажмите «Инициализировать таблицу общедоступных моделей»')
 
275
  gr.Markdown('- Нажмите Загрузить')
276
 
277
  with gr.Row():
278
+ pub_zip_link = gr.Text(label='Ссылка на скачивание модели')
279
+ pub_model_name = gr.Text(label='Название')
280
 
281
  with gr.Row():
282
+ download_pub_btn = gr.Button('Скачать 🌐', variant='primary', scale=19)
283
  pub_dl_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
284
 
285
+ filter_tags = gr.CheckboxGroup(value=[], label='Показать модели голоса с тегами', choices=[])
286
  search_query = gr.Text(label='Search')
287
+ load_public_models_button = gr.Button(value='Обновит�� таблицу общедоступных моделей', variant='primary')
288
 
289
  public_models_table = gr.DataFrame(value=[], headers=['Model Name', 'Description', 'Credit', 'URL', 'Tags'], label='Available Public Models', interactive=False)
290
  public_models_table.select(pub_dl_autofill, inputs=[public_models_table], outputs=[pub_zip_link, pub_model_name])
 
294
  download_pub_btn.click(download_online_model, inputs=[pub_zip_link, pub_model_name], outputs=pub_dl_output_message)
295
 
296
  # Upload tab
297
+ with gr.Tab('Загрузить свою модель):
298
  gr.Markdown('## Загрузить локально обученную модель RVC v2 и индексный файл')
299
  gr.Markdown('- Найти файл модели (папка весов) и дополнительный индексный файл (папка журналов/[имя])')
300
  gr.Markdown('- Сжать файлы в zip-файл')
 
303
 
304
  with gr.Row():
305
  with gr.Column():
306
+ zip_file = gr.File(label='Zip файл')
307
 
308
+ local_model_name = gr.Text(label='Название')
309
 
310
  with gr.Row():
311
+ model_upload_button = gr.Button('Загрузить модель', variant='primary', scale=19)
312
  local_upload_output_message = gr.Text(label='Output Message', interactive=False, scale=20)
313
  model_upload_button.click(upload_local_model, inputs=[zip_file, local_model_name], outputs=local_upload_output_message)
314