Revert "Revert "allow upport for inputs.mesh""

This reverts commit 9c93d9648f.
This commit is contained in:
Sirshendu Ganguly
2026-02-13 16:06:03 -05:00
parent 9c93d9648f
commit cdf8b55da2
8 changed files with 66 additions and 2 deletions
+47
View File
@@ -0,0 +1,47 @@
import base64
import os
class RunwareLoadMesh:
"""Runware Load Mesh node for loading 3D model files (uses same logic as Load Image)"""
MESH_EXTENSIONS = {".glb", ".ply"}
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"file_path": ("STRING", {
"default": "",
"multiline": False,
"placeholder": "/path/to/model.glb or .ply",
"tooltip": "Full path to .glb or .ply file. Use this to load from any directory.",
}),
},
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("Base64",)
FUNCTION = "load_mesh"
CATEGORY = "Runware"
DESCRIPTION = "Load a 3D model file from a path or via upload. Base64 encodes and outputs as data URI. Connect to Runware 3D Inference Inputs meshFile."
def load_mesh(self, file_path):
if not file_path or not isinstance(file_path, str) or not file_path.strip():
return ("",)
full_path = os.path.expanduser(file_path.strip())
if not os.path.isfile(full_path) or os.path.splitext(full_path)[1].lower() not in self.MESH_EXTENSIONS:
return ("",)
with open(full_path, 'rb') as f:
mesh_bytes = f.read()
mesh_base64 = base64.b64encode(mesh_bytes).decode('utf-8')
return (f"data:application/octet-stream;base64,{mesh_base64}",)
NODE_CLASS_MAPPINGS = {
"RunwareLoadMesh": RunwareLoadMesh,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"RunwareLoadMesh": "Runware Load Mesh",
}
+8
View File
@@ -15,6 +15,10 @@ class threeDInferenceInputs:
"mask": ("IMAGE", {
"tooltip": "Optional mask image to specify a region of interest in the input image for 3D generation."
}),
"meshFile": ("STRING", {
"default": "",
"tooltip": "Base64 data URI of mesh file (.glb or .ply) from Runware Load Mesh, or media UUID from Runware Media Upload.",
}),
}
}
@@ -28,6 +32,7 @@ class threeDInferenceInputs:
"""Create 3D inference inputs from provided parameters"""
image = kwargs.get("image", None)
mask = kwargs.get("mask", None)
mesh_file = kwargs.get("meshFile", "")
inputs = {}
@@ -37,6 +42,9 @@ class threeDInferenceInputs:
if mask is not None:
inputs["mask"] = rwUtils.convertTensor2IMG(mask)
if mesh_file and isinstance(mesh_file, str) and mesh_file.strip():
inputs["meshFile"] = mesh_file.strip()
return (inputs,)