Kling Subject Angles
Kling Subject Angles
- auth
- frontal_image
- images
- url
- task_id
Here's a problem every character pipeline hits: you have one good photo of your character, and no idea what the back of their head looks like. Locally, people solve this with turnaround sheets - generate front, side and back views in one pass, then use that grid as the ground truth for everything downstream. It works, and it costs you a whole workflow to set up.
This node is that workflow, compressed to a single input. Give it a frontal image. Get other angles back. No prompt, no settings, no LoRA.
The entire input list
auth, and frontal_image. That's it.
That's not me being terse - it's genuinely all the node takes. It posts the image to Kling's /v1/general/ai-multi-shot endpoint with element_frontal_image and polls the same task until it's done. There is no prompt to write and no dial to nudge, which is either liberating or limiting depending on what you wanted. You cannot tell it "show me the left side" or "in profile". The image is the request.
What comes back
images is an IMAGE batch. The node collects every url_1, url_2 and url_3 from the task result and concatenates all of them into one batch, so a single run typically hands you several angles at once. Preview or save node downstream of it will walk through the whole batch.
url is the Kling-hosted link to the first one, and task_id is the job id.
If the task completes but there are no image URLs in it, the node raises Kling subject completion finished but returned no image URLs. rather than silently returning an empty batch - so an empty result is loud.
Where it slots into a real workflow
Three genuinely useful jobs, all of them the same underlying move:
Feeding a character-consistency workflow. The pack's Create Element node wants a frontal image plus up to three references from other angles. Run Subject Angles on your portrait, take the outputs as refer_image_1 through _3, and you've built the element sheet without doing any manual framing.
Building a reference set for a local pipeline. Those batch images are a fine starting point for a small IP-Adapter or reference-based workflow - or as a seed dataset if you're going to train a LoRA, which is still the gold standard when you plan to reuse a character fifty times.
Filling in what the model can't know. This is the underrated one. Models routinely fail on the back of a character because they've never seen it - it's the documented weakness in the pose-transfer approaches people use for reposing. Generating the angles first and then conditioning on them sidesteps the guesswork entirely.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
cd ComfyUI-API-Toolkit
pip install -r requirements.txt
Kling needs requests and PyJWT. Auth comes from the Kling AI Authentication node - access key plus secret key, or a single API key via KLING_API_KEY. Everything runs on Kling's side, so there's nothing to download and nothing to run locally. If the Kling nodes are absent from your node menu, it's the missing PyJWT; this pack skips a service rather than failing the whole install when its dependencies aren't there.
Keep in mind
Garbage in, garbage out, with no prompt to rescue it. Since the frontal image is the only input, a blurry or three-quarter-turned photo gives you blurry, confused angles. Crop to the subject - the same rule every Kling reference node in this pack repeats - and use decent lighting.
It's billed. Every call is a metered Kling job. Batch once, save the results, reuse them.
It's a gateway node, not an output. Nothing here is meant to be the final image; it exists to manufacture references for the nodes that need them. Which makes it the cheapest useful thing you can do with a Kling credit before you start spending on video.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| frontal_image | IMAGE | Frontal image of the subject. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| url | STRING | — |
| task_id | STRING | — |