Spaces:
Running
on
Zero
Running
on
Zero
import sys | |
sys.path.insert(0, './hy3dshape') | |
sys.path.insert(0, './hy3dpaint') | |
from PIL import Image | |
from hy3dshape.rembg import BackgroundRemover | |
from hy3dshape.pipelines import Hunyuan3DDiTFlowMatchingPipeline | |
from textureGenPipeline import Hunyuan3DPaintPipeline, Hunyuan3DPaintConfig | |
try: | |
from torchvision_fix import apply_fix | |
apply_fix() | |
except ImportError: | |
print("Warning: torchvision_fix module not found, proceeding without compatibility fix") | |
except Exception as e: | |
print(f"Warning: Failed to apply torchvision fix: {e}") | |
# shape | |
model_path = 'tencent/Hunyuan3D-2.1' | |
pipeline_shapegen = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained(model_path) | |
image_path = 'assets/demo.png' | |
image = Image.open(image_path).convert("RGBA") | |
if image.mode == 'RGB': | |
rembg = BackgroundRemover() | |
image = rembg(image) | |
mesh = pipeline_shapegen(image=image)[0] | |
mesh.export('demo.glb') | |
# paint | |
max_num_view = 6 # can be 6 to 9 | |
resolution = 512 # can be 768 or 512 | |
conf = Hunyuan3DPaintConfig(max_num_view, resolution) | |
conf.realesrgan_ckpt_path = "hy3dpaint/ckpt/RealESRGAN_x4plus.pth" | |
conf.multiview_cfg_path = "hy3dpaint/cfgs/hunyuan-paint-pbr.yaml" | |
conf.custom_pipeline = "hy3dpaint/hunyuanpaintpbr" | |
paint_pipeline = Hunyuan3DPaintPipeline(conf) | |
output_mesh_path = 'demo_textured.glb' | |
output_mesh_path = paint_pipeline( | |
mesh_path = "demo.glb", | |
image_path = 'assets/demo.png', | |
output_mesh_path = output_mesh_path | |
) |