Spaces:
Running
on
Zero
Running
on
Zero
keep it all on HF - easy dict errors
Browse files
app.py
CHANGED
@@ -166,22 +166,24 @@ def render_preview_video(state: dict, req: gr.Request) -> str:
|
|
166 |
"""
|
167 |
if not state:
|
168 |
print(f"[{req.session_hash}] render_preview_video called with empty state. Returning None.")
|
169 |
-
# Consider returning a placeholder or raising an error if state is required
|
170 |
return None
|
171 |
|
172 |
user_dir = os.path.join(TMP_DIR, str(req.session_hash))
|
173 |
os.makedirs(user_dir, exist_ok=True) # Ensure directory exists
|
174 |
|
175 |
-
print(f"[{req.session_hash}] Unpacking state for video rendering.")
|
176 |
-
gs, mesh
|
|
|
177 |
|
178 |
-
print(f"[{req.session_hash}] Rendering video...")
|
|
|
179 |
video = render_utils.render_video(gs, num_frames=120)['color']
|
180 |
-
video_geo = render_utils.render_video(mesh, num_frames=120)['normal']
|
181 |
-
video = [np.concatenate([video[i], video_geo[i]], axis=1) for i in range(len(video))]
|
182 |
|
183 |
-
video_path = os.path.join(user_dir, 'preview_sample.mp4')
|
184 |
-
print(f"[{req.session_hash}] Saving video to {video_path}")
|
|
|
185 |
imageio.mimsave(video_path, video, fps=15)
|
186 |
|
187 |
torch.cuda.empty_cache()
|
|
|
166 |
"""
|
167 |
if not state:
|
168 |
print(f"[{req.session_hash}] render_preview_video called with empty state. Returning None.")
|
|
|
169 |
return None
|
170 |
|
171 |
user_dir = os.path.join(TMP_DIR, str(req.session_hash))
|
172 |
os.makedirs(user_dir, exist_ok=True) # Ensure directory exists
|
173 |
|
174 |
+
print(f"[{req.session_hash}] Unpacking state for video rendering.")
|
175 |
+
# Only unpack gs, as mesh causes type errors with render_utils after unpacking
|
176 |
+
gs, _ = unpack_state(state) # We still need the mesh for GLB, but not for this video preview
|
177 |
|
178 |
+
print(f"[{req.session_hash}] Rendering video (Gaussian only)...")
|
179 |
+
# Render ONLY the Gaussian splats, as rendering the unpacked mesh fails
|
180 |
video = render_utils.render_video(gs, num_frames=120)['color']
|
181 |
+
# REMOVED: video_geo = render_utils.render_video(mesh, num_frames=120)['normal']
|
182 |
+
# REMOVED: video = [np.concatenate([video[i], video_geo[i]], axis=1) for i in range(len(video))]
|
183 |
|
184 |
+
video_path = os.path.join(user_dir, 'preview_sample.mp4')
|
185 |
+
print(f"[{req.session_hash}] Saving video to {video_path}")
|
186 |
+
# Save only the Gaussian render
|
187 |
imageio.mimsave(video_path, video, fps=15)
|
188 |
|
189 |
torch.cuda.empty_cache()
|