Spaces:
Running
on
Zero
Running
on
Zero
chore: planes to PIL image
Browse files
app.py
CHANGED
@@ -7,6 +7,7 @@ import trimesh
|
|
7 |
import mcubes
|
8 |
import imageio
|
9 |
from torchvision.utils import save_image
|
|
|
10 |
from PIL import Image
|
11 |
from transformers import AutoModel, AutoConfig
|
12 |
from rembg import remove, new_session
|
@@ -183,6 +184,7 @@ def generate_mesh(image, source_size=512, render_size=384, mesh_size=512, export
|
|
183 |
|
184 |
with torch.no_grad():
|
185 |
planes = model_wrapper.forward(image, source_camera)
|
|
|
186 |
|
187 |
if export_mesh:
|
188 |
grid_out = model_wrapper.model.synthesizer.forward_grid(planes=planes, grid_size=mesh_size)
|
@@ -196,7 +198,7 @@ def generate_mesh(image, source_size=512, render_size=384, mesh_size=512, export
|
|
196 |
mesh_path = "xiaoxis_mesh.obj"
|
197 |
mesh.export(mesh_path, 'obj')
|
198 |
|
199 |
-
return
|
200 |
|
201 |
if export_video:
|
202 |
render_cameras = _default_render_cameras(batch_size=1).to(model_wrapper.device)
|
@@ -220,23 +222,23 @@ def generate_mesh(image, source_size=512, render_size=384, mesh_size=512, export
|
|
220 |
video_path = "xiaoxis_video.mp4"
|
221 |
imageio.mimwrite(video_path, frames, fps=fps)
|
222 |
|
223 |
-
return
|
224 |
|
225 |
-
return
|
226 |
|
227 |
return None, None
|
228 |
|
229 |
def step_1_generate_planes(image):
|
230 |
-
|
231 |
-
return
|
232 |
|
233 |
def step_2_generate_obj(image):
|
234 |
-
|
235 |
-
return
|
236 |
|
237 |
def step_3_generate_video(image):
|
238 |
-
|
239 |
-
return
|
240 |
|
241 |
# 从 assets 文件夹中设置示例文件,并限制最多读取 10 个文件
|
242 |
example_folder = "assets"
|
|
|
7 |
import mcubes
|
8 |
import imageio
|
9 |
from torchvision.utils import save_image
|
10 |
+
import torchvision.transforms import ToPILImage
|
11 |
from PIL import Image
|
12 |
from transformers import AutoModel, AutoConfig
|
13 |
from rembg import remove, new_session
|
|
|
184 |
|
185 |
with torch.no_grad():
|
186 |
planes = model_wrapper.forward(image, source_camera)
|
187 |
+
planes_pil_image = ToPILImage(planes)
|
188 |
|
189 |
if export_mesh:
|
190 |
grid_out = model_wrapper.model.synthesizer.forward_grid(planes=planes, grid_size=mesh_size)
|
|
|
198 |
mesh_path = "xiaoxis_mesh.obj"
|
199 |
mesh.export(mesh_path, 'obj')
|
200 |
|
201 |
+
return planes_pil_image, mesh_path
|
202 |
|
203 |
if export_video:
|
204 |
render_cameras = _default_render_cameras(batch_size=1).to(model_wrapper.device)
|
|
|
222 |
video_path = "xiaoxis_video.mp4"
|
223 |
imageio.mimwrite(video_path, frames, fps=fps)
|
224 |
|
225 |
+
return planes_pil_image, video_path
|
226 |
|
227 |
+
return planes_pil_image, None
|
228 |
|
229 |
return None, None
|
230 |
|
231 |
def step_1_generate_planes(image):
|
232 |
+
planes_pil_image, _ = generate_mesh(image)
|
233 |
+
return planes_pil_image
|
234 |
|
235 |
def step_2_generate_obj(image):
|
236 |
+
planes_pil_image, mesh_path = generate_mesh(image, export_mesh=True)
|
237 |
+
return planes_pil_image, mesh_path, mesh_path
|
238 |
|
239 |
def step_3_generate_video(image):
|
240 |
+
planes_pil_image, video_path = generate_mesh(image, export_video=True)
|
241 |
+
return planes_pil_image, video_path
|
242 |
|
243 |
# 从 assets 文件夹中设置示例文件,并限制最多读取 10 个文件
|
244 |
example_folder = "assets"
|