diff --git a/comfy_api/latest/_io.py b/comfy_api/latest/_io.py index 83c0da078..19d8176b0 100644 --- a/comfy_api/latest/_io.py +++ b/comfy_api/latest/_io.py @@ -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 diff --git a/comfy_extras/nodes_load_3d.py b/comfy_extras/nodes_load_3d.py index e27e4a87c..6f05f050e 100644 --- a/comfy_extras/nodes_load_3d.py +++ b/comfy_extras/nodes_load_3d.py @@ -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