生成图像
更新时间
7 天前
接口描述
提交生成图像任务。
请求
请求方式: POST
请求地址:
https://{api_url}/kling/v1/images/generations
请求参数
文生图场景
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
model_name | string | 是 | 模型名称,可选择 kling-v1-5 或 kling-v1 或 kling-v2 |
prompt | string | 是 | 文本提示词,描述想要生成的图像内容,不能超过2500个字符 |
negative_prompt | string | 否 | 负向文本提示词,描述不希望在图像中出现的内容,不能超过2500个字符 |
output_format | string | 否 | 输出格式,可选 png 或 jpg,默认为 png |
n | int | 否 | 生成图像数量,范围 [1, 9],默认为 1 |
aspect_ratio | string | 否 | 输出图像比例,可选值:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3,默认为 1:1 |
callback_url | string | 否 | 回调地址,可用于 webhook 等通知场景,任务完成后会向该地址发送请求 |
代码示例
深色背景为可以修改的参数,非必选参数已经注释,可以按照自己的需求启用。
py
import http.client
import json
# 配置全局变量
API_URL = "www.dmxapi.cn" # API 节点
DMX_API_TOKEN = "sk-XXXXXXXXXXXXX" # API 密钥
# 创建HTTP连接对象,用于后续所有API请求
conn = http.client.HTTPSConnection(API_URL)
def kling_generate_image():
"""调用 Kling AI 的图像生成API,提交一个图像生成任务
返回值:
task_id: 生成任务的唯一标识符,用于后续查询任务结果
"""
# 构建API请求体,包含所有图像生成参数
payload = json.dumps({
"model_name": "kling-v1-5", # [必选]模型名称 可选择 kling-v1-5 或 kling-v1 或 kling-v2
"prompt": "生成一张袋鼠的照片,手里拿着一个写着'DMXAPI'的牌子", # [必选]文本提示词
# "negative_prompt": "", # 负向文本提示词
# "output_format": "png", # 输出格式:png 或 jpg
# "n": 1, # int, 生成数量 [1, 9]
# "aspect_ratio": "16:9", # 输出图像比例:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3
# "callback_url": "url", # 回调地址,可以用于 webhook 等通知场景
})
# 构建请求头,包含认证信息和内容类型
headers = {
'Authorization': f'Bearer {DMX_API_TOKEN}', # 使用Bearer令牌认证方式
'Content-Type': 'application/json' # 指定请求体格式为JSON
}
# 发送POST请求,路径为图像生成API端点
conn.request("POST", "/kling/v1/images/generations", payload, headers)
# 获取API响应并解析JSON数据
res = conn.getresponse()
json_data = json.loads(res.read().decode("utf-8"))
# print(json_data)
if json_data['code'] == 0:
# 成功则返回提交的任务 id
return json_data['data']['task_id']
else:
# 失败则返回错误信息
return json_data['message']
if __name__ == "__main__":
print(kling_generate_image())
图生图场景
WARNING
图像类型传参说明:
- 支持Base64编码或图片URL。
- 支持.jpg / .jpeg / .png格式,大小不能超过10MB,图片分辨率不小于300*300px。
- 图片宽高比要在1:2.5 ~ 2.5:1之间。
- Base64仅提供编码部分,data:image/png;base64,后面的部分,详细可以参考示例。
在图生图的场景下(即image字段不为空时),不支持负向提示词
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
model_name | string | 是 | 模型名称,可选择 kling-v1-5 或 kling-v1 或 kling-v2 |
prompt | string | 是 | 文本提示词,描述想要生成的图像内容,不能超过2500个字符 |
image | string | 是 | 参考图片,图片格式支持.jpg / .jpeg / .png |
image_reference | string | 此参数仅支持 kling-v1-5 模型,必填。 | 参考图片类型,可选值:subject(角色特征参考), face(人物长相参考),使用face(人物长相参考)时,上传图片需仅含1张人脸。 |
image_fidelity | float | 否 | 参考图片强度,取值范围:[0,1],数值越大参考强度越大。 |
human_fidelity | float | 否 | 面部参考强度,即参考图中人物五官相似度,取值范围:[0,1],数值越大参考强度越大。 |
output_format | string | 否 | 输出格式,可选 png 或 jpg,默认为 png |
n | int | 否 | 生成图像数量,范围 [1, 9],默认为 1 |
aspect_ratio | string | 否 | 输出图像比例,可选值:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3,默认为 1:1 |
callback_url | string | 否 | 回调地址,可用于 webhook 等通知场景,任务完成后会向该地址发送请求 |
代码示例
py
import http.client
import json
import base64
# 配置全局变量
API_URL = "www.dmxapi.cn" # API 节点
DMX_API_TOKEN = "sk-XXXXXXXXXXXXX" # API 密钥
# 创建HTTP连接对象,用于后续所有API请求
conn = http.client.HTTPSConnection(API_URL)
# 将图片转换为 base64 编码形式
def get_image_base64(image_path):
"""将图片转换为 base64 编码形式
输入参数:
image_path: 图片路径
返回参数:
base64 编码后的图片字符串
"""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
def kling_generate_image():
"""调用 Kling AI 的图像生成API,提交一个图像生成任务
返回值:
task_id: 生成任务的唯一标识符,用于后续查询任务结果
"""
# 构建API请求体,包含所有图像生成参数
payload = json.dumps({
"model_name": "kling-v1-5", # [必选]模型名称 可选择 kling-v1-5 或 kling-v1 或 kling-v2
"prompt": "请生成这张照片的梵高风格", # [必选]文本提示词
"image": get_image_base64("/Users/dmxapi/Desktop/dmx.png"), # [必选]参考图片,直接填 url 或者 base64 编码的形式
"image_reference": "subject", # [必选,仅支持 kling-v1-5 模型]参考图片类型,可选值:subject(角色特征参考), face(人物长相参考)
# "image_fidelity": 0.5, # 参考图片强度,取值范围:[0,1],数值越大参考强度越大
# "human_fidelity": 0.5, # 面部参考强度,取值范围:[0,1],数值越大参考强度越大
# "output_format": "png", # 输出格式:png 或 jpg
# "n": 1, # int, 生成数量 [1, 9]
# "aspect_ratio": "16:9", # 输出图像比例:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3
# "callback_url": "url", # 回调地址,可以用于 webhook 等通知场景
})
# 构建请求头,包含认证信息和内容类型
headers = {
'Authorization': f'Bearer {DMX_API_TOKEN}', # 使用Bearer令牌认证方式
'Content-Type': 'application/json' # 指定请求体格式为JSON
}
# 发送POST请求,路径为图像生成API端点
conn.request("POST", "/kling/v1/images/generations", payload, headers)
# 获取API响应并解析JSON数据
res = conn.getresponse()
json_data = json.loads(res.read().decode("utf-8"))
# print(json_data)
if json_data['code'] == 0:
# 成功则返回提交的任务 id
return json_data['data']['task_id']
else:
# 失败则返回错误信息
return json_data['message']
if __name__ == "__main__":
print(kling_generate_image())
响应参数示例
业务码的含义请参考 业务码。
{
'code': 0, // 业务码 0 表示成功
'message': 'SUCCEED', // 消息
'request_id': 'CjhDaWgU7GAAAAAAAZYRYA', // 请求ID
'data': {
'task_id': 'CjhDaWgU7GAAAAAAAZYRYA', // 任务ID
'task_status': 'submitted', // 任务状态
'created_at': 1746719586481, // 创建时间
'updated_at': 1746719586481 // 更新时间
}
}