Uniaff commited on
Commit
6695749
·
verified ·
1 Parent(s): b951d0b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -17
app.py CHANGED
@@ -6,28 +6,22 @@ def generate(video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bo
6
  if video is None or audio is None or checkpoint is None:
7
  return "Пожалуйста, загрузите видео/изображение и аудио файл, а также выберите чекпойнт."
8
 
9
- # Отладка: проверка текущей директории и наличия inference.py
10
  print(f"Текущая рабочая директория: {os.getcwd()}")
11
  print(f"Содержимое текущей директории: {os.listdir('.')}")
12
  print(f"Проверка наличия 'inference.py': {os.path.exists('inference.py')}")
13
 
14
- # Используем пути к файлам напрямую
15
- video_path = video # Строка с путем к видео
16
- audio_path = audio # Строка с путем к аудио
17
 
18
- # Логирование путей для отладки
19
  print(f"Путь к видео: {video_path}")
20
  print(f"Путь к аудио: {audio_path}")
21
 
22
- # Создание директории 'outputs' для сохранения выходного видео
23
  output_dir = "outputs"
24
  os.makedirs(output_dir, exist_ok=True)
25
 
26
- # Определение выходного файла
27
  output_path = os.path.join(output_dir, "output.mp4")
28
  print(f"Путь к выходному файлу: {output_path}")
29
 
30
- # Подготовка аргументов для инференса
31
  args = [
32
  "--checkpoint_path", f"checkpoints/{checkpoint}.pth",
33
  "--segmentation_path", "checkpoints/face_segmentation.pth",
@@ -51,7 +45,6 @@ def generate(video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bo
51
  args.append("--save_as_video")
52
 
53
  try:
54
- # Вызов команды инференса без изменения рабочей директории
55
  cmd = ["python", "inference.py"] + args
56
  print(f"Запуск инференса с командой: {' '.join(cmd)}")
57
  subprocess.run(cmd, check=True)
@@ -59,16 +52,13 @@ def generate(video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bo
59
  print(f"Ошибка при выполнении команды: {e}")
60
  return f"Произошла ошибка при обработке: {e}"
61
 
62
- # Проверка наличия выходного файла
63
  if not os.path.exists(output_path):
64
  print("Выходной файл не существует.")
65
  return "Не удалось создать выходное видео."
66
 
67
- # Возвращаем путь к выходному файлу
68
  print(f"Выходной файл создан по пути: {output_path}")
69
- return output_path # Gradio автоматически обработает путь и выведет видео
70
 
71
- # Корректная структура Gradio Blocks
72
  with gr.Blocks() as ui:
73
  gr.Markdown("## Wav2Lip - Синхронизация губ в видео")
74
  with gr.Row():
@@ -84,18 +74,16 @@ with gr.Blocks() as ui:
84
  pad_bottom = gr.Slider(minimum=0, maximum=50, step=1, value=10, label="Отступ снизу")
85
  pad_left = gr.Slider(minimum=0, maximum=50, step=1, value=0, label="Отступ слева")
86
  pad_right = gr.Slider(minimum=0, maximum=50, step=1, value=0, label="Отступ справа")
87
- save_as_video = gr.Checkbox(label="Сохранять как видео", value=True) # Новый элемент управления
88
  generate_btn = gr.Button("Сгенерировать")
89
  with gr.Column():
90
  result = gr.Video(label="Результат")
91
 
92
- # Вызов метода .click() внутри контекста gr.Blocks()
93
  generate_btn.click(
94
  generate,
95
  inputs=[video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bottom, pad_left, pad_right, save_as_video],
96
  outputs=result,
97
- concurrency_limit=10 # Устанавливаем лимит на количество одновременно выполняемых операций
98
  )
99
 
100
- # Запуск приложения
101
  ui.launch(debug=True)
 
6
  if video is None or audio is None or checkpoint is None:
7
  return "Пожалуйста, загрузите видео/изображение и аудио файл, а также выберите чекпойнт."
8
 
 
9
  print(f"Текущая рабочая директория: {os.getcwd()}")
10
  print(f"Содержимое текущей директории: {os.listdir('.')}")
11
  print(f"Проверка наличия 'inference.py': {os.path.exists('inference.py')}")
12
 
13
+ video_path = video
14
+ audio_path = audio
 
15
 
 
16
  print(f"Путь к видео: {video_path}")
17
  print(f"Путь к аудио: {audio_path}")
18
 
 
19
  output_dir = "outputs"
20
  os.makedirs(output_dir, exist_ok=True)
21
 
 
22
  output_path = os.path.join(output_dir, "output.mp4")
23
  print(f"Путь к выходному файлу: {output_path}")
24
 
 
25
  args = [
26
  "--checkpoint_path", f"checkpoints/{checkpoint}.pth",
27
  "--segmentation_path", "checkpoints/face_segmentation.pth",
 
45
  args.append("--save_as_video")
46
 
47
  try:
 
48
  cmd = ["python", "inference.py"] + args
49
  print(f"Запуск инференса с командой: {' '.join(cmd)}")
50
  subprocess.run(cmd, check=True)
 
52
  print(f"Ошибка при выполнении команды: {e}")
53
  return f"Произошла ошибка при обработке: {e}"
54
 
 
55
  if not os.path.exists(output_path):
56
  print("Выходной файл не существует.")
57
  return "Не удалось создать выходное видео."
58
 
 
59
  print(f"Выходной файл создан по пути: {output_path}")
60
+ return output_path
61
 
 
62
  with gr.Blocks() as ui:
63
  gr.Markdown("## Wav2Lip - Синхронизация губ в видео")
64
  with gr.Row():
 
74
  pad_bottom = gr.Slider(minimum=0, maximum=50, step=1, value=10, label="Отступ снизу")
75
  pad_left = gr.Slider(minimum=0, maximum=50, step=1, value=0, label="Отступ слева")
76
  pad_right = gr.Slider(minimum=0, maximum=50, step=1, value=0, label="Отступ справа")
77
+ save_as_video = gr.Checkbox(label="Сохранять как видео", value=True)
78
  generate_btn = gr.Button("Сгенерировать")
79
  with gr.Column():
80
  result = gr.Video(label="Результат")
81
 
 
82
  generate_btn.click(
83
  generate,
84
  inputs=[video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bottom, pad_left, pad_right, save_as_video],
85
  outputs=result,
86
+ concurrency_limit=30
87
  )
88
 
 
89
  ui.launch(debug=True)