hysts HF Staff commited on
Commit
b2549c7
·
1 Parent(s): 583ab5f

Enhance image preprocessing documentation and clarify 3D model generation process. Update function docstrings to include detailed descriptions of input, output, and processing steps.

Browse files
Files changed (1) hide show
  1. app.py +31 -18
app.py CHANGED
@@ -36,28 +36,32 @@ pipeline.preprocess_image(Image.fromarray(np.zeros((512, 512, 3), dtype=np.uint8
36
 
37
 
38
  def preprocess_image(image: Image.Image) -> Image.Image:
39
- """Preprocess the input image.
40
 
41
- Args:
42
- image (Image.Image): The input image.
43
-
44
- Returns:
45
- Image.Image: The preprocessed image.
46
- """
47
- return pipeline.preprocess_image(image)
48
-
49
-
50
- def preprocess_images(images: list[tuple[Image.Image, str]]) -> list[Image.Image]:
51
- """Preprocess a list of input images.
52
 
53
  Args:
54
- images (List[Tuple[Image.Image, str]]): The input images.
55
 
56
  Returns:
57
- List[Image.Image]: The preprocessed images.
 
 
 
 
 
 
 
 
 
 
 
58
  """
59
- images = [image[0] for image in images]
60
- return [pipeline.preprocess_image(image) for image in images]
61
 
62
 
63
  def save_state_to_file(gs: Gaussian, mesh: MeshExtractResult, output_path: str) -> None:
@@ -118,6 +122,10 @@ def image_to_3d(
118
  ) -> tuple[str, str]:
119
  """Convert an image to a 3D model.
120
 
 
 
 
 
121
  Args:
122
  image (Image.Image): The input image.
123
  seed (int): The random seed.
@@ -127,8 +135,13 @@ def image_to_3d(
127
  slat_sampling_steps (int): The number of sampling steps for structured latent generation.
128
 
129
  Returns:
130
- str: The path to the pickle file that contains the state of the generated 3D model.
131
- str: The path to the video of the 3D model.
 
 
 
 
 
132
  """
133
  outputs = pipeline.run(
134
  image,
 
36
 
37
 
38
  def preprocess_image(image: Image.Image) -> Image.Image:
39
+ """Preprocess the input image for 3D model generation.
40
 
41
+ This function performs several preprocessing steps to prepare the image for 3D model generation:
42
+ 1. Handles alpha channel or removes background if not present
43
+ 2. Centers and crops the object
44
+ 3. Normalizes the image size to 518x518 pixels
45
+ 4. Applies proper alpha channel processing
 
 
 
 
 
 
46
 
47
  Args:
48
+ image (Image.Image): The input image to be preprocessed. Can be either RGB or RGBA format.
49
 
50
  Returns:
51
+ Image.Image: The preprocessed image with the following characteristics:
52
+ - Size: 518x518 pixels
53
+ - Format: RGBA
54
+ - Background: Removed
55
+ - Object: Centered and properly scaled
56
+
57
+ Raises:
58
+ None: This function does not raise any exceptions.
59
+
60
+ Note:
61
+ The preprocessing is handled by the pipeline's internal preprocessing function,
62
+ which uses rembg for background removal if needed.
63
  """
64
+ return pipeline.preprocess_image(image)
 
65
 
66
 
67
  def save_state_to_file(gs: Gaussian, mesh: MeshExtractResult, output_path: str) -> None:
 
122
  ) -> tuple[str, str]:
123
  """Convert an image to a 3D model.
124
 
125
+ This function takes an input image and generates a 3D model using a two-stage process
126
+ with separate parameters for each stage. It also generates a preview video that combines
127
+ color and normal map renderings of the 3D model.
128
+
129
  Args:
130
  image (Image.Image): The input image.
131
  seed (int): The random seed.
 
135
  slat_sampling_steps (int): The number of sampling steps for structured latent generation.
136
 
137
  Returns:
138
+ tuple[str, str]: A tuple containing:
139
+ - str: Path to the state file (.pth) containing the 3D model data
140
+ - str: Path to the preview video file (.mp4) showing the 3D model rotation
141
+
142
+ Note:
143
+ The generated files are saved as temporary files that will not be automatically
144
+ deleted. It is the caller's responsibility to manage these files.
145
  """
146
  outputs = pipeline.run(
147
  image,