rahul7star commited on
Commit
d3dcfc1
·
verified ·
1 Parent(s): 5962f83

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +84 -10
app.py CHANGED
@@ -16,9 +16,13 @@ import random
16
  import gc
17
  from optimization import optimize_pipeline_
18
 
 
 
 
 
19
 
20
  MODEL_ID = "Wan-AI/Wan2.2-T2V-A14B-Diffusers"
21
- HF_MODEL = os.environ.get("HF_UPLOAD_REPO", "rahul7star/VideoExplain")
22
 
23
  LANDSCAPE_WIDTH = 832
24
  LANDSCAPE_HEIGHT = 480
@@ -73,8 +77,81 @@ import uuid
73
  import logging
74
  from datetime import datetime
75
  from huggingface_hub import HfApi, upload_file
 
 
 
 
 
 
 
 
76
 
77
- def upload_to_hf(video_path, summary_text):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  api = HfApi()
79
 
80
  # Create a date-based folder (YYYY-MM-DD)
@@ -130,7 +207,6 @@ def get_duration(
130
  return steps * 15
131
 
132
  @spaces.GPU(duration=get_duration)
133
-
134
  def generate_video(
135
  prompt,
136
  negative_prompt=default_negative_prompt,
@@ -161,15 +237,13 @@ def generate_video(
161
  ).frames[0]
162
 
163
 
164
- video_path_raw = os.path.join(tempfile.gettempdir(), f"video_raw_{uuid.uuid4().hex[:8]}.mp4")
165
- export_to_video(output_frames_list, video_path_raw, fps=FIXED_FPS)
 
166
 
167
 
168
- video_path = os.path.join(tempfile.gettempdir(), f"video_{uuid.uuid4().hex[:8]}.mp4")
169
- improve_video_quality(video_path_raw, video_path, bitrate="8M")
170
-
171
-
172
- hf_folder = upload_to_hf(video_path, prompt)
173
 
174
  return video_path, current_seed
175
 
 
16
  import gc
17
  from optimization import optimize_pipeline_
18
 
19
+ import ffmpeg
20
+ import tempfile
21
+ import os
22
+
23
 
24
  MODEL_ID = "Wan-AI/Wan2.2-T2V-A14B-Diffusers"
25
+
26
 
27
  LANDSCAPE_WIDTH = 832
28
  LANDSCAPE_HEIGHT = 480
 
77
  import logging
78
  from datetime import datetime
79
  from huggingface_hub import HfApi, upload_file
80
+ import tempfile
81
+ import random
82
+ import logging
83
+ from datetime import datetime
84
+ import uuid
85
+ import numpy as np
86
+ import torch
87
+ import ffmpeg
88
 
89
+ HF_MODEL = os.environ.get("HF_UPLOAD_REPO", "rahul7star/VideoExplain")
90
+ def upload_to_hf(video_path: str, summary_text: str):
91
+ api = HfApi()
92
+ # Create date-based folder
93
+ today_str = datetime.now().strftime("%Y-%m-%d")
94
+ unique_subfolder = f"WANT2V-EXP-upload_{uuid.uuid4().hex[:8]}"
95
+ hf_folder = f"{today_str}/{unique_subfolder}"
96
+ logging.info(f"Uploading to HF folder: {hf_folder}")
97
+
98
+ # Upload video
99
+ video_filename = os.path.basename(video_path)
100
+ video_hf_path = f"{hf_folder}/{video_filename}"
101
+ upload_file(
102
+ path_or_fileobj=video_path,
103
+ path_in_repo=video_hf_path,
104
+ repo_id=HF_MODEL,
105
+ repo_type="model",
106
+ token=os.environ.get("HUGGINGFACE_HUB_TOKEN"),
107
+ )
108
+ logging.info(f"✅ Uploaded video: {video_hf_path}")
109
+
110
+ # Upload summary
111
+ summary_file = os.path.join(tempfile.gettempdir(), "summary.txt")
112
+ with open(summary_file, "w", encoding="utf-8") as f:
113
+ f.write(summary_text)
114
+
115
+ summary_hf_path = f"{hf_folder}/summary.txt"
116
+ upload_file(
117
+ path_or_fileobj=summary_file,
118
+ path_in_repo=summary_hf_path,
119
+ repo_id=HF_MODEL,
120
+ repo_type="model",
121
+ token=os.environ.get("HUGGINGFACE_HUB_TOKEN"),
122
+ )
123
+ logging.info(f"✅ Uploaded summary: {summary_hf_path}")
124
+
125
+ return hf_folder
126
+
127
+
128
+ def save_video_ffmpeg(frames: list, video_path: str, fps: int = FIXED_FPS):
129
+ h, w, c = frames[0].shape
130
+ process = (
131
+ ffmpeg
132
+ .input(
133
+ 'pipe:', format='rawvideo', pix_fmt='rgb24',
134
+ s=f'{w}x{h}', framerate=fps
135
+ )
136
+ .output(
137
+ video_path,
138
+ pix_fmt='yuv420p',
139
+ vcodec='libx264',
140
+ crf=18,
141
+ preset='slow'
142
+ )
143
+ .overwrite_output()
144
+ .run_async(pipe_stdin=True)
145
+ )
146
+ for frame in frames:
147
+ process.stdin.write(frame.astype(np.uint8).tobytes())
148
+ process.stdin.close()
149
+ process.wait()
150
+ logging.info(f"✅ Video saved to {video_path}")
151
+
152
+
153
+
154
+ def upload_to_hf0(video_path, summary_text):
155
  api = HfApi()
156
 
157
  # Create a date-based folder (YYYY-MM-DD)
 
207
  return steps * 15
208
 
209
  @spaces.GPU(duration=get_duration)
 
210
  def generate_video(
211
  prompt,
212
  negative_prompt=default_negative_prompt,
 
237
  ).frames[0]
238
 
239
 
240
+
241
+ video_path = os.path.join(tempfile.gettempdir(), f"video_{current_seed}.mp4")
242
+ save_video_ffmpeg(output_frames_list, video_path, fps=FIXED_FPS)
243
 
244
 
245
+ hf_folder = upload_to_hf(video_path, summary_text=prompt)
246
+ logging.info(f"✅ Uploaded folder: {hf_folder}")
 
 
 
247
 
248
  return video_path, current_seed
249