Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -29,6 +29,8 @@ from torchao.quantization import Int8WeightOnlyConfig
|
|
| 29 |
|
| 30 |
import aoti
|
| 31 |
|
|
|
|
|
|
|
| 32 |
|
| 33 |
MODEL_ID = "Wan-AI/Wan2.2-I2V-A14B-Diffusers"
|
| 34 |
|
|
@@ -246,7 +248,44 @@ def generate_video(
|
|
| 246 |
|
| 247 |
export_to_video(output_frames_list, video_path, fps=FIXED_FPS)
|
| 248 |
|
| 249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 250 |
|
| 251 |
with gr.Blocks() as demo:
|
| 252 |
gr.Markdown("# Fast 4 steps Wan 2.2 I2V (14B) with Lightning LoRA")
|
|
|
|
| 29 |
|
| 30 |
import aoti
|
| 31 |
|
| 32 |
+
from moviepy.editor import VideoFileClip, AudioFileClip
|
| 33 |
+
|
| 34 |
|
| 35 |
MODEL_ID = "Wan-AI/Wan2.2-I2V-A14B-Diffusers"
|
| 36 |
|
|
|
|
| 248 |
|
| 249 |
export_to_video(output_frames_list, video_path, fps=FIXED_FPS)
|
| 250 |
|
| 251 |
+
with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as final_tmpfile:
|
| 252 |
+
video_with_audio_path = final_tmpfile.name
|
| 253 |
+
|
| 254 |
+
try:
|
| 255 |
+
# Загружаем видео
|
| 256 |
+
video_clip = VideoFileClip(video_no_audio_path)
|
| 257 |
+
|
| 258 |
+
# Создаем тихий аудиоклип той же длительности
|
| 259 |
+
from moviepy.audio.AudioClip import AudioClip
|
| 260 |
+
silent_audio = AudioClip(lambda t: [0, 0], duration=video_clip.duration, fps=22050)
|
| 261 |
+
|
| 262 |
+
# Устанавливаем аудио в видео
|
| 263 |
+
video_with_audio = video_clip.set_audio(silent_audio)
|
| 264 |
+
|
| 265 |
+
# Сохраняем видео с аудио
|
| 266 |
+
video_with_audio.write_videofile(
|
| 267 |
+
video_with_audio_path,
|
| 268 |
+
codec='libx264',
|
| 269 |
+
audio_codec='aac',
|
| 270 |
+
verbose=False,
|
| 271 |
+
logger=None
|
| 272 |
+
)
|
| 273 |
+
|
| 274 |
+
# Закрываем клипы для освобождения ресурсов
|
| 275 |
+
video_clip.close()
|
| 276 |
+
video_with_audio.close()
|
| 277 |
+
|
| 278 |
+
# Удаляем временный файл без звука
|
| 279 |
+
import os
|
| 280 |
+
os.unlink(video_no_audio_path)
|
| 281 |
+
|
| 282 |
+
return video_with_audio_path, current_seed
|
| 283 |
+
|
| 284 |
+
except Exception as e:
|
| 285 |
+
print(f"Error adding audio: {e}")
|
| 286 |
+
# В случае ошибки возвращаем видео без звука
|
| 287 |
+
return video_no_audio_path, current_seed
|
| 288 |
+
|
| 289 |
|
| 290 |
with gr.Blocks() as demo:
|
| 291 |
gr.Markdown("# Fast 4 steps Wan 2.2 I2V (14B) with Lightning LoRA")
|