Uniaff commited on
Commit
8aca7f6
·
verified ·
1 Parent(s): 49487f1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -10
app.py CHANGED
@@ -7,18 +7,24 @@ def generate(video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bo
7
  if video is None or audio is None or checkpoint is None:
8
  return "Пожалуйста, загрузите видео/изображение и аудио файл, а также выберите чекпойнт."
9
 
10
- # Поскольку Gradio возвращает пути к файлам, используем их напрямую
11
- video_path = video # Уже строка с путем к видео
12
- audio_path = audio # Уже строка с путем к аудио
 
 
 
 
 
13
 
14
  # Логирование путей для отладки
15
- print(f"Video path: {video_path}, Audio path: {audio_path}")
 
16
 
17
  # Создание временной директории для сохранения выходного видео
18
  with tempfile.TemporaryDirectory() as temp_dir:
19
  # Определение выходного файла
20
  output_path = os.path.join(temp_dir, "output.mp4")
21
- print(f"Output path: {output_path}")
22
 
23
  # Подготовка аргументов для инференса
24
  args = [
@@ -36,23 +42,24 @@ def generate(video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bo
36
  args.append("--nosmooth")
37
 
38
  try:
39
- # Вызов команды инференса
40
  cmd = ["python", "inference.py"] + args
41
- print(f"Running inference with command: {' '.join(cmd)}")
42
  subprocess.run(cmd, check=True)
43
  except subprocess.CalledProcessError as e:
44
- print(f"Command failed with error: {e}")
45
  return f"Произошла ошибка при обработке: {e}"
46
 
47
  # Проверка наличия выходного файла
48
  if not os.path.exists(output_path):
49
- print("Output file does not exist.")
50
  return "Не удалось создать выходное видео."
51
 
52
  # Возвращаем путь к выходному файлу
53
- print(f"Output file created at: {output_path}")
54
  return output_path # Gradio автоматически обработает путь и выведет видео
55
 
 
56
  with gr.Blocks() as ui:
57
  gr.Markdown("## Wav2Lip - Синхронизация губ в видео")
58
  with gr.Row():
@@ -72,6 +79,7 @@ with gr.Blocks() as ui:
72
  with gr.Column():
73
  result = gr.Video(label="Результат")
74
 
 
75
  generate_btn.click(
76
  generate,
77
  inputs=[video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bottom, pad_left, pad_right],
@@ -79,4 +87,5 @@ with gr.Blocks() as ui:
79
  concurrency_limit=1 # Устанавливаем лимит на количество одновременно выполняемых операций
80
  )
81
 
 
82
  ui.launch(debug=True)
 
7
  if video is None or audio is None or checkpoint is None:
8
  return "Пожалуйста, загрузите видео/изображение и аудио файл, а также выберите чекпойнт."
9
 
10
+ # Отладка: проверка текущей директории и наличия inference.py
11
+ print(f"Текущая рабочая директория: {os.getcwd()}")
12
+ print(f"Содержимое текущей директории: {os.listdir('.')}")
13
+ print(f"Проверка наличия 'inference.py': {os.path.exists('inference.py')}")
14
+
15
+ # Используем пути к файлам напрямую
16
+ video_path = video # Строка с путем к видео
17
+ audio_path = audio # Строка с путем к аудио
18
 
19
  # Логирование путей для отладки
20
+ print(f"Путь к видео: {video_path}")
21
+ print(f"Путь к аудио: {audio_path}")
22
 
23
  # Создание временной директории для сохранения выходного видео
24
  with tempfile.TemporaryDirectory() as temp_dir:
25
  # Определение выходного файла
26
  output_path = os.path.join(temp_dir, "output.mp4")
27
+ print(f"Путь к выходному файлу: {output_path}")
28
 
29
  # Подготовка аргументов для инференса
30
  args = [
 
42
  args.append("--nosmooth")
43
 
44
  try:
45
+ # Вызов команды инференса без изменения рабочей директории
46
  cmd = ["python", "inference.py"] + args
47
+ print(f"Запуск инференса с командой: {' '.join(cmd)}")
48
  subprocess.run(cmd, check=True)
49
  except subprocess.CalledProcessError as e:
50
+ print(f"Ошибка при выполнении команды: {e}")
51
  return f"Произошла ошибка при обработке: {e}"
52
 
53
  # Проверка наличия выходного файла
54
  if not os.path.exists(output_path):
55
+ print("Выходной файл не существует.")
56
  return "Не удалось создать выходное видео."
57
 
58
  # Возвращаем путь к выходному файлу
59
+ print(f"Выходной файл создан по пути: {output_path}")
60
  return output_path # Gradio автоматически обработает путь и выведет видео
61
 
62
+ # Корректная структура Gradio Blocks
63
  with gr.Blocks() as ui:
64
  gr.Markdown("## Wav2Lip - Синхронизация губ в видео")
65
  with gr.Row():
 
79
  with gr.Column():
80
  result = gr.Video(label="Результат")
81
 
82
+ # Вызов метода .click() внутри контекста gr.Blocks()
83
  generate_btn.click(
84
  generate,
85
  inputs=[video, audio, checkpoint, no_smooth, resize_factor, pad_top, pad_bottom, pad_left, pad_right],
 
87
  concurrency_limit=1 # Устанавливаем лимит на количество одновременно выполняемых операций
88
  )
89
 
90
+ # Запуск приложения
91
  ui.launch(debug=True)