ReubenSun commited on
Commit
b8291ba
·
1 Parent(s): 9ae1b9c
Files changed (1) hide show
  1. app.py +41 -43
app.py CHANGED
@@ -39,49 +39,6 @@ from step1x3d_texture.utils.shape_post_process import (
39
  DegenerateFaceRemover,
40
  )
41
 
42
- geometry_model = None
43
- texture_model = None
44
-
45
- @spaces.GPU(duration=240)
46
- def generate_func(
47
- input_image_path, guidance_scale, inference_steps, max_facenum, symmetry, edge_type
48
- ):
49
- geometry_model = geometry_model.to("cuda")
50
- if "Label" in args.geometry_model:
51
- symmetry_values = ['x', 'asymmetry']
52
- out = geometry_model(
53
- input_image_path,
54
- label={"symmetry": symmetry_values[int(symmetry)], "edge_type": edge_type},
55
- guidance_scale=float(guidance_scale),
56
- octree_resolution=384,
57
- max_facenum=int(max_facenum),
58
- num_inference_steps=int(inference_steps),
59
- )
60
- else:
61
- out = geometry_model(
62
- input_image_path,
63
- guidance_scale=float(guidance_scale),
64
- num_inference_steps=int(inference_steps),
65
- max_facenum=int(max_facenum),
66
- )
67
-
68
- save_name = str(uuid.uuid4())
69
- print(save_name)
70
- geometry_save_path = f"{args.cache_dir}/{save_name}.glb"
71
- geometry_mesh = out.mesh[0]
72
- geometry_mesh.export(geometry_save_path)
73
-
74
- geometry_mesh = DegenerateFaceRemover()(geometry_mesh)
75
- geometry_mesh = FaceReducer()(geometry_mesh)
76
- textured_mesh = texture_model(input_image_path, geometry_mesh)
77
- textured_save_path = f"{args.cache_dir}/{save_name}-textured.glb"
78
- textured_mesh.export(textured_save_path)
79
-
80
- torch.cuda.empty_cache()
81
- print("Generate finish")
82
- return geometry_save_path, textured_save_path
83
-
84
-
85
  if __name__ == "__main__":
86
  parser = argparse.ArgumentParser()
87
  parser.add_argument(
@@ -101,6 +58,47 @@ if __name__ == "__main__":
101
 
102
  texture_model = Step1X3DTexturePipeline.from_pretrained("stepfun-ai/Step1X-3D", subfolder=args.texture_model)
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  with gr.Blocks(title="Step1X-3D demo") as demo:
105
  gr.Markdown("# Step1X-3D")
106
  with gr.Row():
 
39
  DegenerateFaceRemover,
40
  )
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  if __name__ == "__main__":
43
  parser = argparse.ArgumentParser()
44
  parser.add_argument(
 
58
 
59
  texture_model = Step1X3DTexturePipeline.from_pretrained("stepfun-ai/Step1X-3D", subfolder=args.texture_model)
60
 
61
+
62
+ @spaces.GPU(duration=240)
63
+ def generate_func(
64
+ input_image_path, guidance_scale, inference_steps, max_facenum, symmetry, edge_type
65
+ ):
66
+ geometry_model = geometry_model.to("cuda")
67
+ if "Label" in args.geometry_model:
68
+ symmetry_values = ['x', 'asymmetry']
69
+ out = geometry_model(
70
+ input_image_path,
71
+ label={"symmetry": symmetry_values[int(symmetry)], "edge_type": edge_type},
72
+ guidance_scale=float(guidance_scale),
73
+ octree_resolution=384,
74
+ max_facenum=int(max_facenum),
75
+ num_inference_steps=int(inference_steps),
76
+ )
77
+ else:
78
+ out = geometry_model(
79
+ input_image_path,
80
+ guidance_scale=float(guidance_scale),
81
+ num_inference_steps=int(inference_steps),
82
+ max_facenum=int(max_facenum),
83
+ )
84
+
85
+ save_name = str(uuid.uuid4())
86
+ print(save_name)
87
+ geometry_save_path = f"{args.cache_dir}/{save_name}.glb"
88
+ geometry_mesh = out.mesh[0]
89
+ geometry_mesh.export(geometry_save_path)
90
+
91
+ geometry_mesh = DegenerateFaceRemover()(geometry_mesh)
92
+ geometry_mesh = FaceReducer()(geometry_mesh)
93
+ textured_mesh = texture_model(input_image_path, geometry_mesh)
94
+ textured_save_path = f"{args.cache_dir}/{save_name}-textured.glb"
95
+ textured_mesh.export(textured_save_path)
96
+
97
+ torch.cuda.empty_cache()
98
+ print("Generate finish")
99
+ return geometry_save_path, textured_save_path
100
+
101
+
102
  with gr.Blocks(title="Step1X-3D demo") as demo:
103
  gr.Markdown("# Step1X-3D")
104
  with gr.Row():