mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-05 19:12:41 +08:00
add File3DAny output to Load3D node; extend SaveGLB to accept File3DAny as input (#12276)
* add File3DAny output to Load3D node; extend SaveGLB node to accept File3DAny as input * fix(grammar): capitalize letter
This commit is contained in:
parent
ef73070ea4
commit
e77b34dfea
@ -618,6 +618,7 @@ class SaveGLB(IO.ComfyNode):
|
|||||||
def define_schema(cls):
|
def define_schema(cls):
|
||||||
return IO.Schema(
|
return IO.Schema(
|
||||||
node_id="SaveGLB",
|
node_id="SaveGLB",
|
||||||
|
display_name="Save 3D Model",
|
||||||
search_aliases=["export 3d model", "save mesh"],
|
search_aliases=["export 3d model", "save mesh"],
|
||||||
category="3d",
|
category="3d",
|
||||||
is_output_node=True,
|
is_output_node=True,
|
||||||
@ -626,8 +627,14 @@ class SaveGLB(IO.ComfyNode):
|
|||||||
IO.Mesh.Input("mesh"),
|
IO.Mesh.Input("mesh"),
|
||||||
types=[
|
types=[
|
||||||
IO.File3DGLB,
|
IO.File3DGLB,
|
||||||
|
IO.File3DGLTF,
|
||||||
|
IO.File3DOBJ,
|
||||||
|
IO.File3DFBX,
|
||||||
|
IO.File3DSTL,
|
||||||
|
IO.File3DUSDZ,
|
||||||
|
IO.File3DAny,
|
||||||
],
|
],
|
||||||
tooltip="Mesh or GLB file to save",
|
tooltip="Mesh or 3D file to save",
|
||||||
),
|
),
|
||||||
IO.String.Input("filename_prefix", default="mesh/ComfyUI"),
|
IO.String.Input("filename_prefix", default="mesh/ComfyUI"),
|
||||||
],
|
],
|
||||||
@ -649,7 +656,8 @@ class SaveGLB(IO.ComfyNode):
|
|||||||
|
|
||||||
if isinstance(mesh, Types.File3D):
|
if isinstance(mesh, Types.File3D):
|
||||||
# Handle File3D input - save BytesIO data to output folder
|
# Handle File3D input - save BytesIO data to output folder
|
||||||
f = f"{filename}_{counter:05}_.glb"
|
ext = mesh.format or "glb"
|
||||||
|
f = f"{filename}_{counter:05}_.{ext}"
|
||||||
mesh.save_to(os.path.join(full_output_folder, f))
|
mesh.save_to(os.path.join(full_output_folder, f))
|
||||||
results.append({
|
results.append({
|
||||||
"filename": f,
|
"filename": f,
|
||||||
|
|||||||
@ -45,6 +45,7 @@ class Load3D(IO.ComfyNode):
|
|||||||
IO.Image.Output(display_name="normal"),
|
IO.Image.Output(display_name="normal"),
|
||||||
IO.Load3DCamera.Output(display_name="camera_info"),
|
IO.Load3DCamera.Output(display_name="camera_info"),
|
||||||
IO.Video.Output(display_name="recording_video"),
|
IO.Video.Output(display_name="recording_video"),
|
||||||
|
IO.File3DAny.Output(display_name="model_3d"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,7 +67,8 @@ class Load3D(IO.ComfyNode):
|
|||||||
|
|
||||||
video = InputImpl.VideoFromFile(recording_video_path)
|
video = InputImpl.VideoFromFile(recording_video_path)
|
||||||
|
|
||||||
return IO.NodeOutput(output_image, output_mask, model_file, normal_image, image['camera_info'], video)
|
file_3d = Types.File3D(folder_paths.get_annotated_filepath(model_file))
|
||||||
|
return IO.NodeOutput(output_image, output_mask, model_file, normal_image, image['camera_info'], video, file_3d)
|
||||||
|
|
||||||
process = execute # TODO: remove
|
process = execute # TODO: remove
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user