Spaces:
Running
on
L40S
Running
on
L40S
update
Browse files- app.py +6 -4
- infer_api.py +6 -5
app.py
CHANGED
@@ -83,7 +83,8 @@ def arbitrary_to_apose(image, seed):
|
|
83 |
def apose_to_multiview(apose_img, seed):
|
84 |
# convert image to PIL.Image
|
85 |
apose_img = Image.fromarray(apose_img)
|
86 |
-
results
|
|
|
87 |
return results[0]["images"]
|
88 |
|
89 |
def multiview_to_mesh(images):
|
@@ -92,9 +93,10 @@ def multiview_to_mesh(images):
|
|
92 |
|
93 |
def refine_mesh(apose_img, mesh1, mesh2, mesh3, seed):
|
94 |
apose_img = Image.fromarray(apose_img)
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
98 |
return refined
|
99 |
|
100 |
with gr.Blocks(title="StdGEN: Semantically Decomposed 3D Character Generation from Single Images") as demo:
|
|
|
83 |
def apose_to_multiview(apose_img, seed):
|
84 |
# convert image to PIL.Image
|
85 |
apose_img = Image.fromarray(apose_img)
|
86 |
+
results = infer_api.genStage2(apose_img, seed, num_levels=1)
|
87 |
+
infer_api.add_results(results)
|
88 |
return results[0]["images"]
|
89 |
|
90 |
def multiview_to_mesh(images):
|
|
|
93 |
|
94 |
def refine_mesh(apose_img, mesh1, mesh2, mesh3, seed):
|
95 |
apose_img = Image.fromarray(apose_img)
|
96 |
+
results = infer_api.genStage2(apose_img, seed, num_levels=2)
|
97 |
+
infer_api.add_results(results)
|
98 |
+
print(infer_api.results.keys())
|
99 |
+
refined = infer_api.genStage4([mesh1, mesh2, mesh3], infer_api.results)
|
100 |
return refined
|
101 |
|
102 |
with gr.Blocks(title="StdGEN: Semantically Decomposed 3D Character Generation from Single Images") as demo:
|
infer_api.py
CHANGED
@@ -381,6 +381,7 @@ class InferAPI:
|
|
381 |
self.multiview_configs = multiview_configs
|
382 |
self.slrm_configs = slrm_configs
|
383 |
self.refine_configs = refine_configs
|
|
|
384 |
|
385 |
# self.canonical_infer = InferCanonicalAPI(self.canonical_configs)
|
386 |
# self.multiview_infer = InferMultiviewAPI(self.multiview_configs)
|
@@ -398,6 +399,10 @@ class InferAPI:
|
|
398 |
|
399 |
def genStage4(self, meshes, imgs):
|
400 |
return infer_refine(meshes, imgs)
|
|
|
|
|
|
|
|
|
401 |
|
402 |
|
403 |
############## Refine ##############
|
@@ -810,8 +815,6 @@ def process_im(im):
|
|
810 |
im = infer_multiview_image_transforms(im)
|
811 |
return im
|
812 |
|
813 |
-
all_results = {}
|
814 |
-
|
815 |
@spaces.GPU(duration=180)
|
816 |
def infer_multiview_gen(img, seed, num_levels):
|
817 |
set_seed(seed)
|
@@ -824,9 +827,7 @@ def infer_multiview_gen(img, seed, num_levels):
|
|
824 |
data["color_prompt_embeddings"] = infer_multiview_color_text_embeds[None, ...]
|
825 |
|
826 |
results = run_multiview_infer(data, infer_multiview_pipeline, infer_multiview_cfg, num_levels=num_levels)
|
827 |
-
|
828 |
-
all_results[k] = results[k]
|
829 |
-
return results, all_results
|
830 |
|
831 |
infer_canonicalize_config = {
|
832 |
'config_path': './configs/canonicalization-infer.yaml',
|
|
|
381 |
self.multiview_configs = multiview_configs
|
382 |
self.slrm_configs = slrm_configs
|
383 |
self.refine_configs = refine_configs
|
384 |
+
self.results = {}
|
385 |
|
386 |
# self.canonical_infer = InferCanonicalAPI(self.canonical_configs)
|
387 |
# self.multiview_infer = InferMultiviewAPI(self.multiview_configs)
|
|
|
399 |
|
400 |
def genStage4(self, meshes, imgs):
|
401 |
return infer_refine(meshes, imgs)
|
402 |
+
|
403 |
+
def add_results(self, results):
|
404 |
+
for k in results:
|
405 |
+
self.results[k] = results[k]
|
406 |
|
407 |
|
408 |
############## Refine ##############
|
|
|
815 |
im = infer_multiview_image_transforms(im)
|
816 |
return im
|
817 |
|
|
|
|
|
818 |
@spaces.GPU(duration=180)
|
819 |
def infer_multiview_gen(img, seed, num_levels):
|
820 |
set_seed(seed)
|
|
|
827 |
data["color_prompt_embeddings"] = infer_multiview_color_text_embeds[None, ...]
|
828 |
|
829 |
results = run_multiview_infer(data, infer_multiview_pipeline, infer_multiview_cfg, num_levels=num_levels)
|
830 |
+
return results
|
|
|
|
|
831 |
|
832 |
infer_canonicalize_config = {
|
833 |
'config_path': './configs/canonicalization-infer.yaml',
|