Nodes/ComfyUI-Kling-Direct/Kling Task Status
ComfyUI Node

Kling Task Status

Peek at a running Kling job without polling or paying twice

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 4
Kling Task Status
  • auth
  • status
  • result_json
  • task_id
endpoint/v1/videos/text2video
task_id

Every generation node in this pack blocks until Kling finishes: submit the task, poll the API, download the result. That's fine for the normal "click run, wait, get video" flow. But if you're building anything more clever - a workflow that fires off a job and checks on it later, a pipeline that decides what to do based on a task's state, or a queue that shouldn't hold up the whole graph - you want KlingDirect_TaskStatus, the one-shot status check that does no polling and no downloading.

It's a deliberately simple node: feed it auth, the endpoint the task was submitted to, and the task_id you saved from an earlier generation, and it returns the current status string plus the raw result JSON. One call, no waiting, no credits burned on a re-render.

The inputs that matter

  • endpoint - a dropdown of the task endpoints this pack can submit to: text2video, image2video, omni-video, video-extend, lip-sync, motion-control, effects, upscale, image generations, and more. The long list exists because Kling's status API is per-endpoint; pick the one that matches the node that produced your task_id. Getting this wrong returns a status for the wrong task space.
  • task_id - the ID from a previous generation node's task_id output. It's forceInput, so wire it directly rather than retyping.

Outputs

Three STRINGs: status (e.g. succeed, processing, failed, unknown), result_json (the full task response, pretty-printed and truncated to 8000 chars - this is where the video URL lives once the task completes), and task_id passed through so you can keep chaining.

The trick that makes it useful: since the generation nodes are blocking, this node earns its keep in async arrangements - a workflow that submits, saves the task_id, runs other local work, then comes back to check. Combined with the pack's ApiHealthCheck and the task_id passthrough, you can build a poor man's job queue inside ComfyUI where a status check decides the next branch.

Install and what it needs

Part of ComfyUI-Kling-Direct: ComfyUI Manager → search "Kling Direct" → install, or git clone https://github.com/IxMxAMAR/ComfyUI-Kling-Direct into ComfyUI/custom_nodes, then restart. Requires auth (access key + secret key from https://app.klingai.com/global/dev, KYC required, wired via the Kling AI Authentication node or env vars) and the correct region selected - same setup as every node in the pack, no extra dependencies.

Where people get burned

  • Wrong endpoint. The status call hits the endpoint you selected, so a task_id from lip-sync checked against the text2video endpoint will not find the task. Match the node that made the ID.
  • Expecting it to poll. It doesn't. One check, one answer. If the status says processing, run the node again later - that's on you, and that's the point.
  • The truncated JSON. result_json is capped at 8000 characters; for huge responses the tail (sometimes including the download URL) can be cut. The status field and task_id are never affected.

One honest caveat: because this is a one-shot check on an async task, a plain workflow (submit → immediately check) will usually report processing and then you've got nothing to show. Use it where you'd genuinely queue - it's a control-flow tool, not a progress bar.

CategoryKling AI/Config

Inputs (3)

NameTypeDefaultDescription
authKLING_AUTH
endpointCOMBO/v1/videos/text2videoThe endpoint the task was submitted to.
task_idSTRINGTask ID returned from a previous generation node.

Outputs (3)

NameTypeDescription
statusSTRING
result_jsonSTRING
task_idSTRING