main
torch.cat requires every frame to share H/W exactly, but real multi-photo scene input (several phone photos of the same scene from different angles) is rarely all identical resolution -- confirmed live: 9 sample photos hit "Expected size 704 but got size 752" here. Scale-to-cover + center-crop each mismatched frame to the first real frame's resolution, not a plain stretch: a straight resize would distort per-photo aspect ratio, which matters since the model reads perspective/ parallax cues from these images to estimate geometry. Cropping the overflow keeps every photo's true proportions intact.
ComfyUI-Hunyuan3D
Lightweight custom nodes that complement ComfyUI's native Hunyuan3D-2 support
(comfy_extras.nodes_hunyuan3d), filling in the gaps needed for a Graydient
image-to-mesh pipeline:
- Load Image From URL (Hunyuan3D) — downloads an input image from a URL,
bypassing ComfyUI's local-file validation (needed for Graydient's
init_image_urlfield mapping). - Mesh to Trimesh — converts the native
MESHoutput ofVoxelToMeshinto atrimeshobject. - UV Unwrap Mesh — single-chart UV unwrap via
xatlas, so the shape-only mesh produced by Hunyuan3D-2 is ready for texture painting/baking in a follow-up workflow. - Save Trimesh — exports the unwrapped mesh to GLB/OBJ/PLY/STL/3MF/DAE.
Pipeline
LoadImage / Hy3DLoadImageFromURL
-> ImageOnlyCheckpointLoader (hunyuan3d-dit-v2-mv-turbo)
-> CLIPVisionEncode -> Hunyuan3Dv2ConditioningMultiView
-> KSampler -> VAEDecodeHunyuan3D -> VoxelToMesh
-> Hy3DMeshToTrimesh -> Hy3DUVUnwrapMesh -> Hy3DSaveTrimesh
For Graydient deployment, pair with Meshsmuggler to return the GLB through an image-only output channel.
Languages
Python
100%