Skip to content
Graph visualization
扫码添加客服

生成图像

更新时间
7 天前

TIP

由于任务是异步提交的,请在提交任务后,通过 查询任务状态 接口查询任务状态及结果。

对于图像生成场景,Kling 的生成预计在 30 秒内,请耐心等待。

接口描述

提交生成图像任务。

请求

  • 请求方式: POST

  • 请求地址: https://{api_url}/kling/v1/images/generations

请求参数

文生图场景

参数名类型必填说明
model_namestring模型名称,可选择 kling-v1-5 或 kling-v1 或 kling-v2
promptstring文本提示词,描述想要生成的图像内容,不能超过2500个字符
negative_promptstring负向文本提示词,描述不希望在图像中出现的内容,不能超过2500个字符
output_formatstring输出格式,可选 png 或 jpg,默认为 png
nint生成图像数量,范围 [1, 9],默认为 1
aspect_ratiostring输出图像比例,可选值:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3,默认为 1:1
callback_urlstring回调地址,可用于 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_namestring模型名称,可选择 kling-v1-5 或 kling-v1 或 kling-v2
promptstring文本提示词,描述想要生成的图像内容,不能超过2500个字符
imagestring参考图片,图片格式支持.jpg / .jpeg / .png
image_referencestring此参数仅支持 kling-v1-5 模型,必填。参考图片类型,可选值:subject(角色特征参考), face(人物长相参考),使用face(人物长相参考)时,上传图片需仅含1张人脸。
image_fidelityfloat参考图片强度,取值范围:[0,1],数值越大参考强度越大。
human_fidelityfloat面部参考强度,即参考图中人物五官相似度,取值范围:[0,1],数值越大参考强度越大。
output_formatstring输出格式,可选 png 或 jpg,默认为 png
nint生成图像数量,范围 [1, 9],默认为 1
aspect_ratiostring输出图像比例,可选值:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3,默认为 1:1
callback_urlstring回调地址,可用于 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 // 更新时间
	}
}