Files
wawahuy-ComfyUI-HTTP/http_form_data_concat.py
2025-10-11 01:16:26 +07:00

73 lines
2.9 KiB
Python

"""
HTTP Form Data Concatenation node for ComfyUI
Combines multiple form data objects into one
"""
from typing import Dict, Any, Optional
class HTTPFormDataConcat:
"""Form Data Concatenation Node for ComfyUI"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"form_data1": ("HTTP_FORM_DATA",),
},
"optional": {
"form_data2": ("HTTP_FORM_DATA",),
"form_data3": ("HTTP_FORM_DATA",),
"form_data4": ("HTTP_FORM_DATA",),
"form_data5": ("HTTP_FORM_DATA",),
"overwrite_duplicates": ("BOOLEAN", {"default": True}),
}
}
RETURN_TYPES = ("HTTP_FORM_DATA",)
RETURN_NAMES = ("combined_form_data",)
FUNCTION = "concat_form_data"
CATEGORY = "HTTP/Form Data"
def concat_form_data(self, form_data1: Dict[str, Any], form_data2: Optional[Dict[str, Any]] = None,
form_data3: Optional[Dict[str, Any]] = None, form_data4: Optional[Dict[str, Any]] = None,
form_data5: Optional[Dict[str, Any]] = None, overwrite_duplicates: bool = True):
"""Concatenate multiple form data objects"""
combined_data = {"data": {}, "files": {}}
# List of form data objects to process
form_data_list = [form_data1, form_data2, form_data3, form_data4, form_data5]
for form_data in form_data_list:
if form_data is None:
continue
# Merge data fields
data_fields = form_data.get("data", {})
for key, value in data_fields.items():
if key in combined_data["data"] and not overwrite_duplicates:
# If key exists and we don't want to overwrite, append a suffix
suffix = 1
new_key = f"{key}_{suffix}"
while new_key in combined_data["data"]:
suffix += 1
new_key = f"{key}_{suffix}"
combined_data["data"][new_key] = value
else:
combined_data["data"][key] = value
# Merge file fields
file_fields = form_data.get("files", {})
for key, value in file_fields.items():
if key in combined_data["files"] and not overwrite_duplicates:
# If key exists and we don't want to overwrite, append a suffix
suffix = 1
new_key = f"{key}_{suffix}"
while new_key in combined_data["files"]:
suffix += 1
new_key = f"{key}_{suffix}"
combined_data["files"][new_key] = value
else:
combined_data["files"][key] = value
return (combined_data,)