Nodes/ComfyUI-Kling-Direct/Kling AI Upscale
ComfyUI Node

Kling AI Upscale

Kling's upscaler for image or video, targeted by task ID

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 4
Kling AI Upscale
  • auth
  • media
  • media_file
  • audio
  • url
  • task_id
typeimage
target_id
model_namekling-v1
video_url

The Kling pack's generation nodes download their results at full resolution, so why would you need a separate upscale step? Because "full resolution" on a closed API is whatever Kling decided to render - and when you want a bigger, sharper version of a previous result, KlingDirect_Upscale is the node that asks Kling to re-render it larger. It does images and videos, and the way you tell it what to upscale is the interesting part: you hand it a task ID from an earlier generation, not the media itself.

This is where the pack's task_id outputs stop being bookkeeping and start being workflow. Every generation node returns a task_id; this node consumes one (target_id, marked forceInput so you wire it directly). Kling keeps your generated media server-side, keyed by task, so an upscale call is literally "take the thing I made in that task and make it bigger."

What you set

  • type - image or video. Changes which endpoint the job hits and what the target_id refers to.
  • target_id - the task ID of the image or video to upscale.
  • model_name - kling-v1 (default) or kling-v3.
  • video_url (optional) - required for video upscale as a fallback/alternative to target_id: give it the hosted URL of the video instead of digging out its task ID.

The video_url fallback is worth knowing: if you have the hosted URL of a video but not its task ID (say, a clip from elsewhere on the web), you can upscale that instead. For images, target_id is the path.

Outputs

The pack's standard five, named for the medium: media (an IMAGE tensor of the upscaled image or video frames), media_file (downloaded path), audio (present but empty for image upscale - a media_file of "" and a silent audio tensor; don't go hunting for sound in an upscaled still), url (hosted result), and task_id.

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. No weights to download. You need Kling keys from https://app.klingai.com/global/dev (KYC required) in the Kling AI Authentication node or as env vars, plus the correct region - same shared setup as every node in the pack.

Where people get burned

  • Upscaling a video you can't identify. If the target_id doesn't match a task on your account (or the wrong region), the job fails server-side. Keep the task_id wired straight from the generation node - don't retype it.
  • Expecting detail invention. Kling's upscaler is good, but like all upscaling it's more pixels, not magic. For a heavily compressed source, the result can look sharpened rather than detailed - that's the honest ceiling of any upscaler, cloud or local.
  • Cost. Video upscaling is a full video job, metered accordingly. Image upscaling is cheaper; if you're only ever upscaling stills, consider whether your local ESRGAN-style upscaler would do the same job for free.

The workflow-shaped use: generate → task_id → upscale → task_id again - chain it into Video Extend or save the final media with Video to File for a playable MP4.

CategoryKling AI/Effects

Inputs (5)

NameTypeDefaultDescription
authKLING_AUTH
typeCOMBOimageWhether to upscale an image or video.
target_idSTRINGID of the image or video to upscale (from a previous generation).
model_nameCOMBOkling-v1Upscale model version.
video_urloptSTRINGURL of the video (required for video upscale).

Outputs (5)

NameTypeDescription
mediaIMAGE
media_fileSTRING
audioAUDIO
urlSTRING
task_idSTRING