Add AppendInstanceDiffusionTracking -node

This commit is contained in:
kijai 2024-05-04 15:12:43 +03:00
parent a8c216c7e9
commit 4412c67aa6
2 changed files with 35 additions and 0 deletions

View File

@ -114,6 +114,7 @@ NODE_CONFIG = {
"GLIGENTextBoxApplyBatchCoords": {"class": GLIGENTextBoxApplyBatchCoords},
"Intrinsic_lora_sampling": {"class": Intrinsic_lora_sampling, "name": "Intrinsic Lora Sampling"},
"CreateInstanceDiffusionTracking": {"class": CreateInstanceDiffusionTracking},
"AppendInstanceDiffusionTracking": {"class": AppendInstanceDiffusionTracking, "name": "Append Diffusion Tracking"},
}
def generate_node_mappings(node_config):

View File

@ -740,7 +740,41 @@ for example:
print(tracked)
return (tracked, )
class AppendInstanceDiffusionTracking:
RETURN_TYPES = ("TRACKING",)
RETURN_NAMES = ("tracking",)
FUNCTION = "append"
CATEGORY = "KJNodes/experimental"
DESCRIPTION = """
Appends tracking data to be used with InstanceDiffusion:
https://github.com/logtd/ComfyUI-InstanceDiffusion
"""
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"tracking_1": ("TRACKING", {"forceInput": True}),
"tracking_2": ("TRACKING", {"forceInput": True}),
},
}
def append(self, tracking_1, tracking_2):
tracking_copy = tracking_1.copy()
# Check for existing class names and class IDs, and raise an error if they exist
for class_name, class_data in tracking_2.items():
if class_name in tracking_copy:
for class_id in class_data.keys():
if class_id in tracking_copy[class_name]:
raise ValueError(f"Class ID {class_id} already exists for class name {class_name}. Cannot append tracking data.")
# If class name does not exist, add it
tracking_copy[class_name] = class_data
return (tracking_copy, )
class InterpolateCoords:
RETURN_TYPES = ("STRING",)