import json import struct from types import SimpleNamespace import numpy as np import metahub_save_3d_node as node3d class FakeFolderPaths: def __init__(self, output_dir): self.output_dir = output_dir def get_output_directory(self): return str(self.output_dir) def get_save_image_path(self, _prefix, _output_root): folder = self.output_dir / "3d" folder.mkdir(parents=True, exist_ok=True) return str(folder), "ComfyUI", 1, "3d", "3d/ComfyUI" def _mesh(with_optional_data=True): vertices = np.array([[[0, 0, 0], [1, 0, 0], [0, 1, 0]]], dtype=np.float32) faces = np.array([[[0, 1, 2]]], dtype=np.int64) return SimpleNamespace( vertices=vertices, faces=faces, vertex_colors=np.array([[[1, 0, 0], [0, 1, 0], [0, 0, 1]]], dtype=np.float32) if with_optional_data else None, uvs=np.array([[[0, 0], [1, 0], [0, 1]]], dtype=np.float32) if with_optional_data else None, texture=np.ones((1, 2, 2, 3), dtype=np.float32) if with_optional_data else None, unlit=False, ) def _read_glb_json(path): data = path.read_bytes() assert data[:4] == b"glTF" json_length, json_type = struct.unpack_from("