Kling AI Style Transfer & Effects
Overview
Apply artistic styles through prompt engineering, use the Effects API for pre-built visual transformations, and leverage Kolors for image-based style references. Available on v1.6+ models.
Style via Prompt Engineering
The most direct approach -- include style descriptors in your prompt:
import jwt, time, os, requests
BASE = "https://api.klingai.com/v1"
def get_headers():
ak, sk = os.environ["KLING_ACCESS_KEY"], os.environ["KLING_SECRET_KEY"]
token = jwt.encode(
{"iss": ak, "exp": int(time.time()) + 1800, "nbf": int(time.time()) - 5},
sk, algorithm="HS256", headers={"alg": "HS256", "typ": "JWT"}
)
return {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
# Style: Studio Ghibli watercolor
response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={
"model_name": "kling-v2-6",
"prompt": "A cozy cottage in a meadow, hand-painted watercolor style, "
"soft pastel colors, Studio Ghibli aesthetic, gentle breeze",
"negative_prompt": "photorealistic, harsh lighting, dark, gritty",
"duration": "5",
"mode": "professional",
"cfg_scale": 0.7, # higher = stricter prompt adherence
})
Style Prompt Recipes
| Style |
Prompt Keywords |
cfg_scale |
| Cinematic |
"cinematic lighting, anamorphic lens, film grain, 35mm" |
0.5-0.6 |
| Anime |
"anime style, cel-shaded, vibrant colors, clean lines" |
0.6-0.7 |
| Watercolor |
"watercolor painting, soft edges, pastel, hand-painted" |
0.7-0.8 |
| Oil painting |
"oil painting, thick brushstrokes, impasto, canvas texture" |
0.7-0.8 |
| Neon/cyberpunk |
"neon lights, cyberpunk, rain, dark city, purple and blue" |
0.5-0.6 |
| Vintage film |
"vintage 8mm film, warm tones, light leaks, soft focus" |
0.6-0.7 |
| Pixel art |
"pixel art style, retro 16-bit, limited palette" |
0.8-0.9 |
| Photorealistic |
"photorealistic, 4K, natural lighting, DSLR quality" |
0.4-0.5 |
Effects API
The Effects API applies pre-built transformations to existing images. Available on v1.6+.
Endpoint: POST https://api.klingai.com/v1/videos/effects
# Apply an effect to an image
response = requests.post(f"{BASE}/videos/effects", headers=get_headers(), json={
"model_name": "kling-v1-6",
"image": "https://example.com/portrait.jpg",
"effect_type": "hug", # effect to apply
"duration": "5",
"mode": "standard",
})
task_id = response.json()["data"]["task_id"]
# Poll for result as usual
Available Effects
| Effect |
Description |
hug |
Embrace/hug motion between subjects |
kiss |
Kiss animation between subjects |
heart |
Heart gesture or heart-shaped framing |
expand |
Zoom/expand outward effect |
squish |
Compression/squish animation |
Kolors Image Restyle
Use Kolors to restyle images before converting to video:
# Generate styled image with Kolors
image_response = requests.post(f"{BASE}/images/kolors", headers=get_headers(), json={
"prompt": "A cyberpunk city street, neon signs, rain-slicked roads",
"aspect_ratio": "16:9",
"imageCount": 1,
})
# Then use the generated image as input for I2V
image_url = image_response.json()["data"]["images"][0]["url"]
video_response = requests.post(f"{BASE}/videos/image2video", headers=get_headers(), json={
"model_name": "kling-v2-1",
"image": image_url,
"prompt": "Camera slowly pushes forward through the rain, neon reflections",
"duration": "5",
"mode": "professional",
})
cfg_scale Tuning
The cfg_scale parameter (0.0-1.0) controls how strictly the model follows your prompt:
| cfg_scale |
Effect |
| 0.0-0.3 |
More creative freedom, may drift from prompt |
| 0.4-0.5 |
Balanced (default), natural results |
| 0.6-0.7 |
Stronger prompt adherence |
| 0.8-1.0 |
Very strict, may reduce quality/naturalness |
For style transfer: Use 0.6-0.8 to ensure the style keywords are respected.
Style Consistency Across Clips
# Use a consistent style template for all clips in a project
STYLE_TEMPLATE = {
"suffix": ", cinematic lighting, 35mm film grain, warm color grading, "
"anamorphic lens flare, shallow depth of field",
"negative": "cartoon, anime, painting, illustration, CGI, digital art",
"cfg_scale": 0.6,
"model": "kling-v2-6",
"mode": "professional",
}
def styled_generation(scene_prompt: str):
return requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={
"model_name": STYLE_TEMPLATE["model"],
"prompt": scene_prompt + STYLE_TEMPLATE["suffix"],
"negative_prompt": STYLE_TEMPLATE["negative"],
"cfg_scale": STYLE_TEMPLATE["cfg_scale"],
"duration": "5",
"mode": STYLE_TEMPLATE["mode"],
})
Prerequisites
- An approved style brief, rights-cleared or synthetic references, sandbox workspace, content-policy review, credit cap, draft-only destination, and an asset-removal owner.
Instructions
- Use only approved style references and a watermarked sandbox canary; reject living-artist imitation requests, private materials, and unlicensed inputs unless documented rights permit them.
- Verify reference rights, policy outcome, model/mode, duration, credit estimate, and draft destination before submission.
- Review the canary for attribution, policy, and quality; cancel and remove it on rights, policy, or budget drift rather than publishing it.
- Promote only after owner approval and retain a redacted receipt with removal at the approved retention boundary.
Output
Produce a style-transfer receipt with style-brief ID, reference classification, model/mode, credit estimate, policy/rights outcome, draft-only status, approver, and cleanup reference. Exclude prompt text, asset URLs, identities, and credentials.
Error Handling
| Condition |
Response |
| Reference rights or imitation policy is unclear |
Do not generate; request documented clearance or use a synthetic, non-identifying alternative. |
| Policy or budget check fails |
Cancel the task, remove temporary drafts, and require owner review before retrying. |
Examples
style=approved-geometric-motion; references=synthetic; mode=standard; policy=pass; rights=pass; destination=draft-only; cleanup=24h is safe to review.
Resources
1---2name: klingai-style-transfer3description: Apply artistic styles and visual effects to Kling AI video generation. Use when creating stylized content or using effects API. Trigger with phrases like 'klingai style', 'kling ai effects', 'klingai artistic video', 'stylize klingai video'.4license: MIT5---6# Kling AI Style Transfer & Effects
7
8## Overview
9
10Apply artistic styles through prompt engineering, use the Effects API for pre-built visual transformations, and leverage Kolors for image-based style references. Available on v1.6+ models.
11
12## Style via Prompt Engineering
13
14The most direct approach -- include style descriptors in your prompt:
15
16```python
17import jwt, time, os, requests
18
19BASE = "https://api.klingai.com/v1"
20
21def get_headers():
22 ak, sk = os.environ["KLING_ACCESS_KEY"], os.environ["KLING_SECRET_KEY"]
23 token = jwt.encode(
24 {"iss": ak, "exp": int(time.time()) + 1800, "nbf": int(time.time()) - 5},
25 sk, algorithm="HS256", headers={"alg": "HS256", "typ": "JWT"}
26 )
27 return {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
28
29# Style: Studio Ghibli watercolor
30response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={
31 "model_name": "kling-v2-6",
32 "prompt": "A cozy cottage in a meadow, hand-painted watercolor style, "
33 "soft pastel colors, Studio Ghibli aesthetic, gentle breeze",
34 "negative_prompt": "photorealistic, harsh lighting, dark, gritty",
35 "duration": "5",
36 "mode": "professional",
37 "cfg_scale": 0.7, # higher = stricter prompt adherence
38})
39```
40
41## Style Prompt Recipes
42
43| Style | Prompt Keywords | cfg_scale |
44|-------|----------------|-----------|
45| Cinematic | "cinematic lighting, anamorphic lens, film grain, 35mm" | 0.5-0.6 |
46| Anime | "anime style, cel-shaded, vibrant colors, clean lines" | 0.6-0.7 |
47| Watercolor | "watercolor painting, soft edges, pastel, hand-painted" | 0.7-0.8 |
48| Oil painting | "oil painting, thick brushstrokes, impasto, canvas texture" | 0.7-0.8 |
49| Neon/cyberpunk | "neon lights, cyberpunk, rain, dark city, purple and blue" | 0.5-0.6 |
50| Vintage film | "vintage 8mm film, warm tones, light leaks, soft focus" | 0.6-0.7 |
51| Pixel art | "pixel art style, retro 16-bit, limited palette" | 0.8-0.9 |
52| Photorealistic | "photorealistic, 4K, natural lighting, DSLR quality" | 0.4-0.5 |
53
54## Effects API
55
56The Effects API applies pre-built transformations to existing images. Available on v1.6+.
57
58**Endpoint:** `POST https://api.klingai.com/v1/videos/effects`
59
60```python
61# Apply an effect to an image
62response = requests.post(f"{BASE}/videos/effects", headers=get_headers(), json={
63 "model_name": "kling-v1-6",
64 "image": "https://example.com/portrait.jpg",
65 "effect_type": "hug", # effect to apply
66 "duration": "5",
67 "mode": "standard",
68})
69
70task_id = response.json()["data"]["task_id"]
71# Poll for result as usual
72```
73
74## Available Effects
75
76| Effect | Description |
77|--------|-------------|
78| `hug` | Embrace/hug motion between subjects |
79| `kiss` | Kiss animation between subjects |
80| `heart` | Heart gesture or heart-shaped framing |
81| `expand` | Zoom/expand outward effect |
82| `squish` | Compression/squish animation |
83
84## Kolors Image Restyle
85
86Use Kolors to restyle images before converting to video:
87
88```python
89# Generate styled image with Kolors
90image_response = requests.post(f"{BASE}/images/kolors", headers=get_headers(), json={
91 "prompt": "A cyberpunk city street, neon signs, rain-slicked roads",
92 "aspect_ratio": "16:9",
93 "imageCount": 1,
94})
95
96# Then use the generated image as input for I2V
97image_url = image_response.json()["data"]["images"][0]["url"]
98video_response = requests.post(f"{BASE}/videos/image2video", headers=get_headers(), json={
99 "model_name": "kling-v2-1",
100 "image": image_url,
101 "prompt": "Camera slowly pushes forward through the rain, neon reflections",
102 "duration": "5",
103 "mode": "professional",
104})
105```
106
107## cfg_scale Tuning
108
109The `cfg_scale` parameter (0.0-1.0) controls how strictly the model follows your prompt:
110
111| cfg_scale | Effect |
112|-----------|--------|
113| 0.0-0.3 | More creative freedom, may drift from prompt |
114| 0.4-0.5 | Balanced (default), natural results |
115| 0.6-0.7 | Stronger prompt adherence |
116| 0.8-1.0 | Very strict, may reduce quality/naturalness |
117
118**For style transfer:** Use 0.6-0.8 to ensure the style keywords are respected.
119
120## Style Consistency Across Clips
121
122```python
123# Use a consistent style template for all clips in a project
124STYLE_TEMPLATE = {
125 "suffix": ", cinematic lighting, 35mm film grain, warm color grading, "
126 "anamorphic lens flare, shallow depth of field",
127 "negative": "cartoon, anime, painting, illustration, CGI, digital art",
128 "cfg_scale": 0.6,
129 "model": "kling-v2-6",
130 "mode": "professional",
131}
132
133def styled_generation(scene_prompt: str):
134 return requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={
135 "model_name": STYLE_TEMPLATE["model"],
136 "prompt": scene_prompt + STYLE_TEMPLATE["suffix"],
137 "negative_prompt": STYLE_TEMPLATE["negative"],
138 "cfg_scale": STYLE_TEMPLATE["cfg_scale"],
139 "duration": "5",
140 "mode": STYLE_TEMPLATE["mode"],
141 })
142```
143
144## Prerequisites
145
146- An approved style brief, rights-cleared or synthetic references, sandbox workspace, content-policy review, credit cap, draft-only destination, and an asset-removal owner.
147
148## Instructions
149
1501. Use only approved style references and a watermarked sandbox canary; reject living-artist imitation requests, private materials, and unlicensed inputs unless documented rights permit them.
1512. Verify reference rights, policy outcome, model/mode, duration, credit estimate, and draft destination before submission.
1523. Review the canary for attribution, policy, and quality; cancel and remove it on rights, policy, or budget drift rather than publishing it.
1534. Promote only after owner approval and retain a redacted receipt with removal at the approved retention boundary.
154
155## Output
156
157Produce a style-transfer receipt with style-brief ID, reference classification, model/mode, credit estimate, policy/rights outcome, draft-only status, approver, and cleanup reference. Exclude prompt text, asset URLs, identities, and credentials.
158
159## Error Handling
160
161| Condition | Response |
162|---|---|
163| Reference rights or imitation policy is unclear | Do not generate; request documented clearance or use a synthetic, non-identifying alternative. |
164| Policy or budget check fails | Cancel the task, remove temporary drafts, and require owner review before retrying. |
165
166## Examples
167
168`style=approved-geometric-motion; references=synthetic; mode=standard; policy=pass; rights=pass; destination=draft-only; cleanup=24h` is safe to review.
169
170## Resources
171
172- [Effects API](https://app.klingai.com/global/dev/document-api/apiReference/model/videoEffects)
173- [Kolors API](https://app.klingai.com/global/dev/document-api/apiReference/model/imageGeneration)
174- [Developer Portal](https://app.klingai.com/global/dev)