ux: rename kling3 chained payload port to payload_data

This commit is contained in:
Dreaming Computers
2026-02-11 10:40:23 +07:00
parent f04d5017f4
commit bedb0146ae
4 changed files with 46 additions and 3 deletions
+24
View File
@@ -374,9 +374,33 @@ def run_kling3_video(
elements=elements,
log=log,
)
return run_kling3_video_from_request(
payload=payload,
poll_interval_s=poll_interval_s,
timeout_s=timeout_s,
log=log,
)
def run_kling3_video_from_request(
*,
payload: dict[str, Any],
poll_interval_s: float,
timeout_s: int,
log: bool,
) -> Any:
"""Submit a prebuilt Kling 3.0 createTask payload and return VIDEO output."""
if not isinstance(payload, dict):
raise _validation_error("request payload must be an object.")
if payload.get("model") != MODEL_NAME:
raise _validation_error(f"request payload model must be '{MODEL_NAME}'.")
payload_input = payload.get("input")
if not isinstance(payload_input, dict):
raise _validation_error("request payload must include an input object.")
_log(log, "Creating Kling 3.0 video task...")
start_time = time.time()
api_key = _load_api_key()
task_id, create_response_text = _create_task(api_key, payload)
_log(log, f"createTask response (elapsed={time.time() - start_time:.1f}s): {create_response_text}")
_log(log, f"Task created with ID {task_id}. Polling for completion...")
+20 -3
View File
@@ -51,6 +51,7 @@ from .kie_api.kling3_video import (
merge_kling3_elements,
preflight_kling3_payload,
run_kling3_video,
run_kling3_video_from_request,
)
from .kie_api.suno_music import MODEL_OPTIONS as SUNO_MODEL_OPTIONS, run_suno_generate
from .kie_api.gemini3_pro_llm import (
@@ -782,6 +783,7 @@ Inputs:
- sound: Single-shot only
- element: Optional single KIE_ELEMENT
- elements: Optional KIE_ELEMENTS batch
- payload_data: Optional payload object from preflight (overrides direct inputs)
- log: Console logging on/off
Rules:
@@ -816,6 +818,8 @@ Outputs:
"sound": ("BOOLEAN", {"default": True}),
"element": ("KIE_ELEMENT",),
"elements": ("KIE_ELEMENTS",),
"payload_data": ("KIE_KLING3_REQUEST",),
"request": ("KIE_KLING3_REQUEST",),
"log": ("BOOLEAN", {"default": True}),
},
}
@@ -838,10 +842,22 @@ Outputs:
sound: bool = True,
element: dict | None = None,
elements: list[dict] | None = None,
payload_data: dict | None = None,
request: dict | None = None,
log: bool = True,
poll_interval_s: float = 10.0,
timeout_s: int = 1000,
):
chained_payload = payload_data if payload_data is not None else request
if chained_payload is not None:
video_output = run_kling3_video_from_request(
payload=chained_payload,
poll_interval_s=poll_interval_s,
timeout_s=timeout_s,
log=log,
)
return (video_output,)
merged_elements: list[dict] | None = None
if elements is not None:
if not isinstance(elements, list):
@@ -887,6 +903,7 @@ Inputs:
- Same as KIE Kling 3.0 (Video)
Outputs:
- KIE_KLING3_REQUEST: validated payload object for chaining into KIE Kling 3.0 (Video)
- STRING: payload_json (exact payload that would be sent to createTask)
- STRING: notes
"""
@@ -917,8 +934,8 @@ Outputs:
},
}
RETURN_TYPES = ("STRING", "STRING")
RETURN_NAMES = ("payload_json", "notes")
RETURN_TYPES = ("KIE_KLING3_REQUEST", "STRING", "STRING")
RETURN_NAMES = ("payload_data", "payload_json", "notes")
FUNCTION = "preflight"
CATEGORY = "kie/helpers"
@@ -995,7 +1012,7 @@ Outputs:
notes_lines.append("Element names: " + ", ".join(element_names))
notes = "\n".join(notes_lines)
return (json.dumps(payload, indent=2, ensure_ascii=False), notes)
return (payload, json.dumps(payload, indent=2, ensure_ascii=False), notes)
class KIE_Flux2_I2I:
+1
View File
@@ -13,6 +13,7 @@ Validate Kling 3.0 inputs and build the exact payload JSON without submitting a
- Same inputs as `KIE Kling 3.0 (Video)`.
## Outputs
- `payload_data` (KIE_KLING3_REQUEST): validated payload object for direct chaining into `KIE Kling 3.0 (Video)`.
- `payload_json` (STRING): exact request payload after validation and upload URL resolution.
- `notes` (STRING): validation summary with detected settings and status.
+1
View File
@@ -19,6 +19,7 @@ Generate Kling 3.0 videos in single-shot or multi-shot mode.
- `sound` (BOOLEAN, optional): single-shot only
- `element` (KIE_ELEMENT, optional): one element
- `elements` (KIE_ELEMENTS, optional): batched elements
- `payload_data` (KIE_KLING3_REQUEST, optional): prebuilt validated payload from preflight; when connected, this overrides direct field inputs
- `log` (BOOLEAN, optional)
## Rules