refactor: simplify Load3DModelInfo schema and rename model_info to model_3d_info

This commit is contained in:
Terry Jia 2026-05-28 20:56:32 -04:00
parent d9caddfcfc
commit 1161959952
2 changed files with 10 additions and 16 deletions

View File

@ -779,19 +779,13 @@ class Load3DCamera(ComfyTypeIO):
@comfytype(io_type="LOAD3D_MODEL_INFO")
class Load3DModelInfo(ComfyTypeIO):
class ModelTransform(TypedDict):
uuid: str
name: str
type: str
position: dict[str, float | int]
rotation: dict[str, float | int | str]
quaternion: dict[str, float | int]
scale: dict[str, float | int]
up: dict[str, float | int]
visible: bool
matrix: list[float]
class Model3DTransform(TypedDict):
# Coordinate system: right-handed, Y-up, world space
position: dict[str, float | int] # scene units
quaternion: dict[str, float | int] # normalized, dimensionless; world rotation
scale: dict[str, float | int] # dimensionless multiplier
Type = list[ModelTransform]
Type = list[Model3DTransform]
@comfytype(io_type="LOAD_3D")
@ -803,7 +797,7 @@ class Load3D(ComfyTypeIO):
normal: str
camera_info: Load3DCamera.CameraInfo
recording: NotRequired[str]
model_info: NotRequired[list[Load3DModelInfo.ModelTransform]]
model_3d_info: NotRequired[list[Load3DModelInfo.Model3DTransform]]
Type = Model3DDict

View File

@ -47,7 +47,7 @@ class Load3D(IO.ComfyNode):
IO.Load3DCamera.Output(display_name="camera_info"),
IO.Video.Output(display_name="recording_video"),
IO.File3DAny.Output(display_name="model_3d"),
IO.Load3DModelInfo.Output(display_name="model_info"),
IO.Load3DModelInfo.Output(display_name="model_3d_info"),
],
)
@ -74,8 +74,8 @@ class Load3D(IO.ComfyNode):
if model_file and model_file != "none":
file_3d = Types.File3D(folder_paths.get_annotated_filepath(model_file))
mesh_path = model_file
model_info = image.get('model_info', [])
return IO.NodeOutput(output_image, output_mask, mesh_path, normal_image, image['camera_info'], video, file_3d, model_info)
model_3d_info = image.get('model_3d_info', [])
return IO.NodeOutput(output_image, output_mask, mesh_path, normal_image, image['camera_info'], video, file_3d, model_3d_info)
process = execute # TODO: remove