Added Support for Draco Compression in 3D Inference
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
"""
|
||||
Runware 3D Inference Settings Draco Compression Node
|
||||
Outputs dracoCompression config: enabled, level, quantizationPosition,
|
||||
quantizationNormal, quantizationTexCoord
|
||||
"""
|
||||
|
||||
from typing import Dict, Any
|
||||
|
||||
|
||||
class Runware3DInferenceSettingsDracoCompression:
|
||||
"""Runware 3D Inference Settings Draco Compression Node"""
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {},
|
||||
"optional": {
|
||||
"useEnabled": ("BOOLEAN", {
|
||||
"tooltip": "Enable to include enabled in dracoCompression",
|
||||
"default": False,
|
||||
}),
|
||||
"enabled": ("BOOLEAN", {
|
||||
"tooltip": (
|
||||
"If true, applies KHR_draco_mesh_compression to the output GLB "
|
||||
"(5-10x geometry size reduction with no triangle loss). "
|
||||
"Only used when 'Use Enabled' is on."
|
||||
),
|
||||
"default": False,
|
||||
"label_on": "true",
|
||||
"label_off": "false",
|
||||
}),
|
||||
"useLevel": ("BOOLEAN", {
|
||||
"tooltip": "Enable to include level in dracoCompression",
|
||||
"default": False,
|
||||
}),
|
||||
"level": ("INT", {
|
||||
"tooltip": "Draco compression level (0-10). Higher = better compression but slower encoding. Only used when enabled.",
|
||||
"default": 7,
|
||||
"min": 0,
|
||||
"max": 10,
|
||||
"step": 1,
|
||||
}),
|
||||
"useQuantizationPosition": ("BOOLEAN", {
|
||||
"tooltip": "Enable to include quantizationPosition in dracoCompression",
|
||||
"default": False,
|
||||
}),
|
||||
"quantizationPosition": ("INT", {
|
||||
"tooltip": "Quantization bits for vertex positions (8-30). Higher = better quality, larger file. Only used when enabled.",
|
||||
"default": 16,
|
||||
"min": 8,
|
||||
"max": 30,
|
||||
"step": 1,
|
||||
}),
|
||||
"useQuantizationNormal": ("BOOLEAN", {
|
||||
"tooltip": "Enable to include quantizationNormal in dracoCompression",
|
||||
"default": False,
|
||||
}),
|
||||
"quantizationNormal": ("INT", {
|
||||
"tooltip": "Quantization bits for vertex normals (8-30). Higher = smoother shading, larger file. Only used when enabled.",
|
||||
"default": 14,
|
||||
"min": 8,
|
||||
"max": 30,
|
||||
"step": 1,
|
||||
}),
|
||||
"useQuantizationTexCoord": ("BOOLEAN", {
|
||||
"tooltip": "Enable to include quantizationTexCoord in dracoCompression",
|
||||
"default": False,
|
||||
}),
|
||||
"quantizationTexCoord": ("INT", {
|
||||
"tooltip": "Quantization bits for texture coordinates (8-30). Higher = sharper textures at UV seams. Only used when enabled.",
|
||||
"default": 14,
|
||||
"min": 8,
|
||||
"max": 30,
|
||||
"step": 1,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("RUNWARE3DINFERENCESETTINGSLAT",)
|
||||
RETURN_NAMES = ("Draco Compression",)
|
||||
FUNCTION = "create"
|
||||
CATEGORY = "Runware"
|
||||
DESCRIPTION = (
|
||||
"Configure settings.dracoCompression for Runware 3D Inference "
|
||||
"(enabled, level, quantizationPosition, quantizationNormal, quantizationTexCoord). "
|
||||
"Connect to Runware 3D Inference Settings."
|
||||
)
|
||||
|
||||
def create(self, **kwargs) -> tuple[Dict[str, Any]]:
|
||||
out: Dict[str, Any] = {}
|
||||
if kwargs.get("useEnabled", False):
|
||||
out["enabled"] = bool(kwargs.get("enabled", False))
|
||||
if kwargs.get("useLevel", False):
|
||||
out["level"] = int(kwargs.get("level", 7))
|
||||
if kwargs.get("useQuantizationPosition", False):
|
||||
out["quantizationPosition"] = int(kwargs.get("quantizationPosition", 16))
|
||||
if kwargs.get("useQuantizationNormal", False):
|
||||
out["quantizationNormal"] = int(kwargs.get("quantizationNormal", 14))
|
||||
if kwargs.get("useQuantizationTexCoord", False):
|
||||
out["quantizationTexCoord"] = int(kwargs.get("quantizationTexCoord", 14))
|
||||
return (out,)
|
||||
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"Runware3DInferenceSettingsDracoCompression": Runware3DInferenceSettingsDracoCompression,
|
||||
}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"Runware3DInferenceSettingsDracoCompression": "Runware 3D Inference Settings Draco Compression",
|
||||
}
|
||||
Reference in New Issue
Block a user