Spaces:
Running
on
Zero
Running
on
Zero
Update trellis/utils/postprocessing_utils.py
Browse files
trellis/utils/postprocessing_utils.py
CHANGED
@@ -459,50 +459,3 @@ def to_glb(
|
|
459 |
|
460 |
|
461 |
|
462 |
-
def export_full_quality_glb(
|
463 |
-
state: dict,
|
464 |
-
req: gr.Request,
|
465 |
-
) -> Tuple[str, str]:
|
466 |
-
"""
|
467 |
-
Export a full-quality GLB file directly from the 3D model state,
|
468 |
-
skipping unnecessary optimization steps.
|
469 |
-
"""
|
470 |
-
user_dir = os.path.join(TMP_DIR, str(req.session_hash))
|
471 |
-
gs, mesh, trial_id = unpack_state(state)
|
472 |
-
|
473 |
-
# Generate full quality GLB directly
|
474 |
-
vertices = mesh.vertices.cpu().numpy()
|
475 |
-
faces = mesh.faces.cpu().numpy()
|
476 |
-
|
477 |
-
# Just do the parametrization and texture baking
|
478 |
-
vertices, faces, uvs = postprocessing_utils.parametrize_mesh(vertices, faces)
|
479 |
-
|
480 |
-
# Generate texture at full resolution
|
481 |
-
observations, extrinsics, intrinsics = postprocessing_utils.render_multiview(gs, resolution=2048, nviews=100)
|
482 |
-
masks = [np.any(observation > 0, axis=-1) for observation in observations]
|
483 |
-
extrinsics = [extrinsics[i].cpu().numpy() for i in range(len(extrinsics))]
|
484 |
-
intrinsics = [intrinsics[i].cpu().numpy() for i in range(len(intrinsics))]
|
485 |
-
|
486 |
-
texture = postprocessing_utils.bake_texture(
|
487 |
-
vertices, faces, uvs,
|
488 |
-
observations, masks, extrinsics, intrinsics,
|
489 |
-
texture_size=2048, # Maximum texture resolution
|
490 |
-
mode='opt', # Use optimization mode for best quality
|
491 |
-
lambda_tv=0.01 # Light smoothing to prevent artifacts
|
492 |
-
)
|
493 |
-
|
494 |
-
# Create the mesh with full quality settings
|
495 |
-
mesh = trimesh.Trimesh(
|
496 |
-
vertices,
|
497 |
-
faces,
|
498 |
-
visual=trimesh.visual.TextureVisuals(
|
499 |
-
uv=uvs,
|
500 |
-
image=Image.fromarray(texture)
|
501 |
-
)
|
502 |
-
)
|
503 |
-
|
504 |
-
# Export
|
505 |
-
glb_path = os.path.join(user_dir, f"{trial_id}_full.glb")
|
506 |
-
mesh.export(glb_path)
|
507 |
-
|
508 |
-
return glb_path, glb_path
|
|
|
459 |
|
460 |
|
461 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|