Spaces:
Running
on
Zero
Running
on
Zero
fix
Browse files
app.py
CHANGED
@@ -67,6 +67,7 @@ def get_random_seed(randomize_seed, seed):
|
|
67 |
return seed
|
68 |
|
69 |
# process image
|
|
|
70 |
def process_image(input_image):
|
71 |
input_image = np.array(input_image) # uint8
|
72 |
# bg removal if there is no alpha channel
|
@@ -74,12 +75,12 @@ def process_image(input_image):
|
|
74 |
input_image = rembg.remove(input_image, session=bg_remover) # [H, W, 4]
|
75 |
mask = input_image[..., -1] > 0
|
76 |
image = recenter_foreground(input_image, mask, border_ratio=0.1)
|
77 |
-
image = cv2.resize(image, (518, 518), interpolation=cv2.
|
78 |
return image
|
79 |
|
80 |
# process generation
|
81 |
@spaces.GPU(duration=60)
|
82 |
-
def process_3d(input_image, num_steps=50, cfg_scale=7
|
83 |
|
84 |
# seed
|
85 |
kiui.seed_everything(seed)
|
@@ -89,10 +90,8 @@ def process_3d(input_image, num_steps=50, cfg_scale=7.0, grid_res=384, seed=42,
|
|
89 |
output_glb_path = f"output/partpacker_{datetime.now().strftime('%Y%m%d_%H%M%S')}.glb"
|
90 |
|
91 |
# input image (assume processed to RGBA uint8)
|
92 |
-
image = np.
|
93 |
-
image = image.astype(np.float32) / 255.0
|
94 |
image = image[..., :3] * image[..., 3:4] + (1 - image[..., 3:4]) # white background
|
95 |
-
image = (image * 255).astype(np.uint8)
|
96 |
image_tensor = torch.from_numpy(image).permute(2, 0, 1).contiguous().unsqueeze(0).float().cuda()
|
97 |
|
98 |
data = {"cond_images": image_tensor}
|
@@ -162,8 +161,8 @@ with block:
|
|
162 |
with gr.Column(scale=1):
|
163 |
with gr.Row():
|
164 |
# input image
|
165 |
-
input_image = gr.Image(label="Input Image")
|
166 |
-
seg_image = gr.Image(label="Segmentation Result", type="
|
167 |
with gr.Accordion("Settings", open=True):
|
168 |
# inference steps
|
169 |
num_steps = gr.Slider(label="Inference steps", minimum=1, maximum=100, step=1, value=50)
|
|
|
67 |
return seed
|
68 |
|
69 |
# process image
|
70 |
+
@spaces.GPU(duration=10)
|
71 |
def process_image(input_image):
|
72 |
input_image = np.array(input_image) # uint8
|
73 |
# bg removal if there is no alpha channel
|
|
|
75 |
input_image = rembg.remove(input_image, session=bg_remover) # [H, W, 4]
|
76 |
mask = input_image[..., -1] > 0
|
77 |
image = recenter_foreground(input_image, mask, border_ratio=0.1)
|
78 |
+
image = cv2.resize(image, (518, 518), interpolation=cv2.INTER_LINEAR)
|
79 |
return image
|
80 |
|
81 |
# process generation
|
82 |
@spaces.GPU(duration=60)
|
83 |
+
def process_3d(input_image, num_steps=50, cfg_scale=7, grid_res=384, seed=42, simplify_mesh=False, target_num_faces=100000):
|
84 |
|
85 |
# seed
|
86 |
kiui.seed_everything(seed)
|
|
|
90 |
output_glb_path = f"output/partpacker_{datetime.now().strftime('%Y%m%d_%H%M%S')}.glb"
|
91 |
|
92 |
# input image (assume processed to RGBA uint8)
|
93 |
+
image = input_image.astype(np.float32) / 255.0
|
|
|
94 |
image = image[..., :3] * image[..., 3:4] + (1 - image[..., 3:4]) # white background
|
|
|
95 |
image_tensor = torch.from_numpy(image).permute(2, 0, 1).contiguous().unsqueeze(0).float().cuda()
|
96 |
|
97 |
data = {"cond_images": image_tensor}
|
|
|
161 |
with gr.Column(scale=1):
|
162 |
with gr.Row():
|
163 |
# input image
|
164 |
+
input_image = gr.Image(label="Input Image", type="numpy")
|
165 |
+
seg_image = gr.Image(label="Segmentation Result", type="numpy", format="png", interactive=False, image_mode="RGBA")
|
166 |
with gr.Accordion("Settings", open=True):
|
167 |
# inference steps
|
168 |
num_steps = gr.Slider(label="Inference steps", minimum=1, maximum=100, step=1, value=50)
|