Aleksmorshen commited on
Commit
5c4ebcf
·
verified ·
1 Parent(s): 3d3c22d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -5
app.py CHANGED
@@ -1,7 +1,9 @@
1
  import gradio as gr
2
  from gradio_client import Client, handle_file
 
 
3
 
4
- # Создаем клиент один раз, на глобальном уровне
5
  client = Client("r3gm/wan2-2-fp8da-aoti-preview")
6
 
7
  def generate_video(input_image, last_image, prompt, steps, negative_prompt, duration_seconds, guidance_scale, guidance_scale_2, seed, randomize_seed, quality, scheduler, flow_shift, frame_multiplier):
@@ -12,8 +14,9 @@ def generate_video(input_image, last_image, prompt, steps, negative_prompt, dura
12
 
13
  frame_multiplier_int = int(frame_multiplier)
14
 
15
- # Используем глобальный клиент
16
- result = client.predict(
 
17
  input_image=handle_file(input_image),
18
  last_image=handle_file(processed_last_image),
19
  prompt=prompt,
@@ -31,8 +34,16 @@ def generate_video(input_image, last_image, prompt, steps, negative_prompt, dura
31
  video_component=True,
32
  api_name="/generate_video"
33
  )
34
- # result - это путь к временному файлу, который теперь не будет удален преждевременно
35
- return result
 
 
 
 
 
 
 
 
36
 
37
  with gr.Blocks() as demo:
38
  gr.Markdown("# Video Generation Interface")
 
1
  import gradio as gr
2
  from gradio_client import Client, handle_file
3
+ import shutil
4
+ import os
5
 
6
+ # Создаем клиент один раз, на глобальном уровне, чтобы избежать повторных подключений
7
  client = Client("r3gm/wan2-2-fp8da-aoti-preview")
8
 
9
  def generate_video(input_image, last_image, prompt, steps, negative_prompt, duration_seconds, guidance_scale, guidance_scale_2, seed, randomize_seed, quality, scheduler, flow_shift, frame_multiplier):
 
14
 
15
  frame_multiplier_int = int(frame_multiplier)
16
 
17
+ # Используем глобальный клиент для выполнения предсказания
18
+ # Результат - это путь к временному файлу, управляемому gradio_client
19
+ client_temp_file_path = client.predict(
20
  input_image=handle_file(input_image),
21
  last_image=handle_file(processed_last_image),
22
  prompt=prompt,
 
34
  video_component=True,
35
  api_name="/generate_video"
36
  )
37
+
38
+ # --- КЛЮЧЕВОЕ ИЗМЕНЕНИЕ ---
39
+ # Копируем результат в новый файл, который находится под нашим контролем.
40
+ # Это предотвращает его преждевременное удаление.
41
+ # Gradio автоматически управляет очисткой файлов, которые он кэширует,
42
+ # поэтому нам не нужно беспокоиться об утечке дискового пространства.
43
+ final_video_path = shutil.copy(client_temp_file_path, ".")
44
+
45
+ # Возвращаем путь к нашей стабильной копии
46
+ return final_video_path
47
 
48
  with gr.Blocks() as demo:
49
  gr.Markdown("# Video Generation Interface")