Spaces:
Paused
Paused
Update gradio_app.py
Browse files- gradio_app.py +15 -12
gradio_app.py
CHANGED
|
@@ -43,14 +43,14 @@ intrinsic, intrinsic_normed_cond = spar3d_utils.create_intrinsic_from_fov_rad(
|
|
| 43 |
COND_FOVY, COND_HEIGHT, COND_WIDTH
|
| 44 |
)
|
| 45 |
|
| 46 |
-
def create_rgba_image(rgb_image: Image.Image,
|
| 47 |
-
"""Create an RGBA image from RGB image and optional
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
return
|
| 54 |
|
| 55 |
def create_batch(input_image: Image.Image) -> dict[str, Any]:
|
| 56 |
"""Prepare image batch for model input."""
|
|
@@ -100,12 +100,15 @@ def generate_and_process_3d(prompt: str, seed: int = 42, width: int = 1024, heig
|
|
| 100 |
# Process the generated image
|
| 101 |
rgb_image = generated_image.convert('RGB')
|
| 102 |
|
| 103 |
-
# Remove background
|
| 104 |
-
|
| 105 |
-
|
|
|
|
|
|
|
|
|
|
| 106 |
|
| 107 |
# Create RGBA image
|
| 108 |
-
rgba_image = create_rgba_image(rgb_image,
|
| 109 |
|
| 110 |
# Auto crop with foreground
|
| 111 |
processed_image = spar3d_utils.foreground_crop(
|
|
|
|
| 43 |
COND_FOVY, COND_HEIGHT, COND_WIDTH
|
| 44 |
)
|
| 45 |
|
| 46 |
+
def create_rgba_image(rgb_image: Image.Image, mask: np.ndarray = None) -> Image.Image:
|
| 47 |
+
"""Create an RGBA image from RGB image and optional mask."""
|
| 48 |
+
rgba_image = rgb_image.convert('RGBA')
|
| 49 |
+
if mask is not None:
|
| 50 |
+
# Convert mask to alpha channel format
|
| 51 |
+
alpha = Image.fromarray((mask * 255).astype(np.uint8))
|
| 52 |
+
rgba_image.putalpha(alpha)
|
| 53 |
+
return rgba_image
|
| 54 |
|
| 55 |
def create_batch(input_image: Image.Image) -> dict[str, Any]:
|
| 56 |
"""Prepare image batch for model input."""
|
|
|
|
| 100 |
# Process the generated image
|
| 101 |
rgb_image = generated_image.convert('RGB')
|
| 102 |
|
| 103 |
+
# Remove background
|
| 104 |
+
no_bg_image = bg_remover.process(rgb_image)
|
| 105 |
+
|
| 106 |
+
# Convert to numpy array to extract mask
|
| 107 |
+
no_bg_array = np.array(no_bg_image)
|
| 108 |
+
mask = (no_bg_array.sum(axis=2) > 0).astype(np.float32)
|
| 109 |
|
| 110 |
# Create RGBA image
|
| 111 |
+
rgba_image = create_rgba_image(rgb_image, mask)
|
| 112 |
|
| 113 |
# Auto crop with foreground
|
| 114 |
processed_image = spar3d_utils.foreground_crop(
|