Spaces:
TDN-M
/
Running on Zero

TDN-M commited on
Commit
cbf80df
·
verified ·
1 Parent(s): c73ffe0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -16
app.py CHANGED
@@ -14,7 +14,6 @@ from huggingface_hub import HfApi, hf_hub_download, snapshot_download
14
  from TTS.tts.configs.xtts_config import XttsConfig
15
  from TTS.tts.models.xtts import Xtts
16
  from vinorm import TTSnorm
17
- from content_generation import create_content # Nhập hàm create_content từ file content_generation.py
18
  from PIL import Image
19
  from pathlib import Path
20
  import requests
@@ -196,14 +195,19 @@ def create_video(image_path, audio_path, output_path):
196
  subprocess.run(command, check=True)
197
 
198
  # Hàm xử lý sự kiện khi nhấn nút "Tạo Video"
199
- def generate_video(audio_file, prompt):
200
- if not os.path.exists(audio_file):
201
- return None, "Audio file not found. Please generate audio first."
202
-
203
- # Bước 1: Tạo mô tả ảnh
 
 
 
 
 
204
  image_description = generate_image_description(prompt)
205
-
206
- # Bước 2: Gọi API tạo ảnh
207
  try:
208
  image = txt2img(image_description, width=800, height=600)
209
  if isinstance(image, str): # Nếu có lỗi từ API
@@ -214,14 +218,14 @@ def generate_video(audio_file, prompt):
214
  image.save(image_path)
215
  except Exception as e:
216
  return None, f"Error generating image: {str(e)}"
217
-
218
- # Bước 3: Tạo video từ ảnh và audio
219
  video_output_path = os.path.join(SAVE_DIR, "output_video.mp4")
220
  try:
221
  create_video(image_path, audio_file, video_output_path)
222
  except Exception as e:
223
  return None, f"Error creating video: {str(e)}"
224
-
225
  return video_output_path, "Video created successfully!"
226
 
227
  # Thư mục lưu trữ ảnh và video
@@ -406,11 +410,11 @@ with gr.Blocks(analytics_enabled=False) as demo:
406
  visible=True,
407
  variant="primary",
408
  )
 
409
 
410
  with gr.Column():
411
  audio_gr = gr.Audio(label="Synthesised Audio", autoplay=True)
412
  out_text_gr = gr.Text(label="Metrics")
413
- video_button = gr.Button("Tạo Video 🎥", visible=False)
414
  video_output = gr.Video(label="Generated Video", visible=False)
415
  video_status = gr.Text(label="Video Status")
416
 
@@ -426,14 +430,18 @@ with gr.Blocks(analytics_enabled=False) as demo:
426
  ],
427
  outputs=[audio_gr, out_text_gr],
428
  api_name="predict",
429
- ).then(
430
- lambda: [gr.update(visible=True)],
431
- outputs=[video_button]
432
  )
433
 
434
  video_button.click(
435
  generate_video,
436
- inputs=[audio_gr, input_text_gr],
 
 
 
 
 
 
 
437
  outputs=[video_output, video_status],
438
  )
439
 
 
14
  from TTS.tts.configs.xtts_config import XttsConfig
15
  from TTS.tts.models.xtts import Xtts
16
  from vinorm import TTSnorm
 
17
  from PIL import Image
18
  from pathlib import Path
19
  import requests
 
195
  subprocess.run(command, check=True)
196
 
197
  # Hàm xử lý sự kiện khi nhấn nút "Tạo Video"
198
+ def generate_video(prompt, language, audio_file_pth, normalize_text, use_llm, content_type):
199
+ # Bước 1: Tạo audio nếu chưa có
200
+ if not os.path.exists("output.wav"):
201
+ audio_file, metrics_text = predict(prompt, language, audio_file_pth, normalize_text, use_llm, content_type)
202
+ if not audio_file:
203
+ return None, metrics_text
204
+ else:
205
+ audio_file = "output.wav"
206
+
207
+ # Bước 2: Tạo mô tả ảnh
208
  image_description = generate_image_description(prompt)
209
+
210
+ # Bước 3: Gọi API tạo ảnh
211
  try:
212
  image = txt2img(image_description, width=800, height=600)
213
  if isinstance(image, str): # Nếu có lỗi từ API
 
218
  image.save(image_path)
219
  except Exception as e:
220
  return None, f"Error generating image: {str(e)}"
221
+
222
+ # Bước 4: Tạo video từ ảnh và audio
223
  video_output_path = os.path.join(SAVE_DIR, "output_video.mp4")
224
  try:
225
  create_video(image_path, audio_file, video_output_path)
226
  except Exception as e:
227
  return None, f"Error creating video: {str(e)}"
228
+
229
  return video_output_path, "Video created successfully!"
230
 
231
  # Thư mục lưu trữ ảnh và video
 
410
  visible=True,
411
  variant="primary",
412
  )
413
+ video_button = gr.Button("Tạo Video 🎥", visible=True) # Nút tạo video luôn hiển thị
414
 
415
  with gr.Column():
416
  audio_gr = gr.Audio(label="Synthesised Audio", autoplay=True)
417
  out_text_gr = gr.Text(label="Metrics")
 
418
  video_output = gr.Video(label="Generated Video", visible=False)
419
  video_status = gr.Text(label="Video Status")
420
 
 
430
  ],
431
  outputs=[audio_gr, out_text_gr],
432
  api_name="predict",
 
 
 
433
  )
434
 
435
  video_button.click(
436
  generate_video,
437
+ inputs=[
438
+ input_text_gr,
439
+ language_gr,
440
+ ref_gr,
441
+ normalize_text,
442
+ use_llm_checkbox,
443
+ content_type_dropdown,
444
+ ],
445
  outputs=[video_output, video_status],
446
  )
447