Spaces:
Sleeping
Sleeping
staswrs
commited on
Commit
·
d22bdf6
1
Parent(s):
5572b0e
clean scene 9
Browse files- app.py +10 -5
- inference_triposg.py +15 -4
app.py
CHANGED
|
@@ -80,15 +80,20 @@ def generate(image_path, face_number=50000, guidance_scale=5.0, num_steps=25):
|
|
| 80 |
faces=int(face_number),
|
| 81 |
)
|
| 82 |
|
| 83 |
-
if mesh is None:
|
| 84 |
-
raise ValueError("Mesh generation returned
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
|
| 86 |
-
# Очистка визуала, метаданных и имени
|
| 87 |
-
mesh.visual = None
|
| 88 |
mesh.metadata.clear()
|
| 89 |
mesh.name = "geometry_0"
|
| 90 |
|
| 91 |
-
# Экспорт
|
| 92 |
glb_data = export_glb(mesh)
|
| 93 |
with open(output_path, "wb") as f:
|
| 94 |
f.write(glb_data)
|
|
|
|
| 80 |
faces=int(face_number),
|
| 81 |
)
|
| 82 |
|
| 83 |
+
if mesh is None or mesh.vertices.shape[0] == 0 or mesh.faces.shape[0] == 0:
|
| 84 |
+
raise ValueError("Mesh generation returned an empty mesh")
|
| 85 |
+
|
| 86 |
+
# Безопасная очистка визуала
|
| 87 |
+
if hasattr(mesh, "visual") and mesh.visual is not None:
|
| 88 |
+
try:
|
| 89 |
+
mesh.visual = None
|
| 90 |
+
except Exception:
|
| 91 |
+
print("[WARN] Failed to clear visual, skipping")
|
| 92 |
|
|
|
|
|
|
|
| 93 |
mesh.metadata.clear()
|
| 94 |
mesh.name = "geometry_0"
|
| 95 |
|
| 96 |
+
# Экспорт .glb
|
| 97 |
glb_data = export_glb(mesh)
|
| 98 |
with open(output_path, "wb") as f:
|
| 99 |
f.write(glb_data)
|
inference_triposg.py
CHANGED
|
@@ -89,14 +89,25 @@ def pymesh_to_trimesh(mesh):
|
|
| 89 |
faces = mesh.face_matrix()#.tolist()
|
| 90 |
return trimesh.Trimesh(vertices=verts, faces=faces) #, vID, fID
|
| 91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
def simplify_mesh(mesh: trimesh.Trimesh, n_faces):
|
| 93 |
if mesh.faces.shape[0] > n_faces:
|
| 94 |
ms = mesh_to_pymesh(mesh.vertices, mesh.faces)
|
| 95 |
ms.meshing_merge_close_vertices()
|
| 96 |
-
ms.meshing_decimation_quadric_edge_collapse(targetfacenum
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
|
|
|
|
|
|
| 100 |
|
| 101 |
if __name__ == "__main__":
|
| 102 |
device = "cuda"
|
|
|
|
| 89 |
faces = mesh.face_matrix()#.tolist()
|
| 90 |
return trimesh.Trimesh(vertices=verts, faces=faces) #, vID, fID
|
| 91 |
|
| 92 |
+
# def simplify_mesh(mesh: trimesh.Trimesh, n_faces):
|
| 93 |
+
# if mesh.faces.shape[0] > n_faces:
|
| 94 |
+
# ms = mesh_to_pymesh(mesh.vertices, mesh.faces)
|
| 95 |
+
# ms.meshing_merge_close_vertices()
|
| 96 |
+
# ms.meshing_decimation_quadric_edge_collapse(targetfacenum = n_faces)
|
| 97 |
+
# return pymesh_to_trimesh(ms.current_mesh())
|
| 98 |
+
# else:
|
| 99 |
+
# return mesh
|
| 100 |
+
|
| 101 |
def simplify_mesh(mesh: trimesh.Trimesh, n_faces):
|
| 102 |
if mesh.faces.shape[0] > n_faces:
|
| 103 |
ms = mesh_to_pymesh(mesh.vertices, mesh.faces)
|
| 104 |
ms.meshing_merge_close_vertices()
|
| 105 |
+
ms.meshing_decimation_quadric_edge_collapse(targetfacenum=n_faces)
|
| 106 |
+
simplified = ms.current_mesh()
|
| 107 |
+
if simplified is None or simplified.face_number() == 0:
|
| 108 |
+
return None
|
| 109 |
+
return pymesh_to_trimesh(simplified)
|
| 110 |
+
return mesh
|
| 111 |
|
| 112 |
if __name__ == "__main__":
|
| 113 |
device = "cuda"
|