Kling AI Upscale
Kling's cloud upscaler for images and video alike
- auth
- media
- media_file
- audio
- url
- task_id
Kling's answer to "this render is too soft" - a hosted upscaler that works on both images and video. You hand it the ID of a previous generation, it upscales the media on Kling's side, and hands back the result. Where the local upscaling story (see the KB's upscaling notes) is a matter of picking the right model and VRAM budget, this node is the zero-local-compute option: Kling's model does the lifting, your only cost is credits.
The inputs force one important decision up front:
type-imageorvideo. This determines how the node talks to Kling and what you must supply.target_id- the ID of the image or video to upscale, from a previous generation. This is the primary way to point at something you made with this pack.model_name-kling-v1(default) orkling-v3. Newer isn't automatically better; try v3 if v1's output looks over-smoothed.video_url(optional) - required for video upscaling if you don't have a target ID handy.
Mechanically it's the standard submit-and-poll cloud task. Outputs use the video-style set even for images: media (the result as IMAGE), media_file, audio (present for video), url, and task_id.
Installing it
Bundled in ComfyUI-API-Toolkit. Manager: search "API Toolkit". Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
pip install -r requirements.txt
Restart ComfyUI. Needs the Kling AI Authentication node and a funded account.
Gotchas
The big honesty check: for images, a cloud upscale is often not the best tool. The KB's upscaling material makes the case that local models (Real-ESRGAN and friends, or a diffusion pass) give you fine control and zero per-call cost - so reach for this node when you're already in a Kling workflow and want the result to stay hosted, or when the target is a Kling generation whose ID you hold. For video, though, it earns its keep: local video upscaling is slow and VRAM-hungry, and Kling's version is genuinely convenient. Watch the credit math on video upscale - it's priced by the second. And remember it needs a target_id from a prior generation or a video_url; you can't point it at an arbitrary local file without getting it hosted first (the Cloud Uploader is the bridge).
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| type | COMBO | image | Whether to upscale an image or video. |
| target_id | STRING | ID of the image or video to upscale (from a previous generation). | |
| model_name | COMBO | kling-v1 | Upscale model version. |
| video_urlopt | STRING | URL of the video (required for video upscale). |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| media | IMAGE | — |
| media_file | STRING | — |
| audio | AUDIO | — |
| url | STRING | — |
| task_id | STRING | — |