AI 大模型推理

  • AI 大模型推理 > API 文档 > 文生图 (image generate)

    文生图 (image generate)

    最近更新时间: 2025-11-05 17:43:06

    七牛云 AI 大模型推理 API 支持文生图(Text-to-Image)功能,兼容 OpenAI Images API 接口格式,支持多种主流图像生成模型,方便您集成到各种业务和应用场景中。

    Token API 接入点

    七牛云 AI 大模型推理 API 接入域名:

    支持接口列表

    接口名 说明
    /images/generations 文生图接口,根据文本描述生成图像,支持多种图像生成模型
    支持模型:Gemini 2.5 Flash Image(又称 Nano Banana)和 kling 系列模型等
    输出格式:Base64 编码的图像数据(PNG 格式);注意 kling 系列模型使用异步任务的模式,所以返回的结果是一个任务 ID

    支持的模型列表

    模型 ID 模型名称 说明 状态
    gemini-2.5-flash-image Gemini 2.5 Flash Image (Nano Banana) 又称 Nano Banana,谷歌最新的快速文生图模型,支持高质量图像生成 ✅已推出
    kling-v1 kling v1 文生图 V1.0 模型 ✅已推出
    kling-v1-5 kling v1-5 文生图 V1.5 模型 ✅已推出
    kling-v2 kling v2 文生图 V2.0 系列模型 ✅已推出
    kling-v2-new kling v2-new 文生图 V2.0 系列模型 ✅已推出
    kling-v2-1 kling v2-1 文生图 V2.1 系列模型 ✅已推出

    HTTP 调用示例

    基础图像生成

    使用上一步获取的七牛云 API KEY 调用文生图接口:

    # 调用文生图 API
    export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/generations" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "prompt": "一只可爱的橘猫坐在窗台上看着夕阳,照片风格,高清画质"
        }'
    

    生成多张高质量图像

    # 生成多张图像
    export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/generations" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "prompt": "主题是未来城市的天际线,霓虹灯光,赛博朋克风格",
            "n": 6
        }'
    

    使用采样参数控制生成

    # 使用高级参数控制图像生成
    export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/generations" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "prompt": "梦幻森林中的精灵小屋,魔法光芒环绕",
            "temperature": 0.8,
            "top_p": 0.95
        }'
    

    请求参数说明

    Header 参数

    参数名 类型 必填 说明
    Authorization string API Key,格式:Bearer YOUR_API_KEY
    Content-Type string 请求内容类型,固定值:application/json

    Body 参数(JSON)

    参数名 类型 必填 默认值 说明 模型支持
    model string - 图像生成模型名称,如 gemini-2.5-flash-image -
    prompt string - 图像生成的文本描述提示词 -
    n integer 1 生成图像数量,取值范围:1-10 -
    size string - 图像尺寸 暂不支持
    quality string - 图像质量,可选值:standard(标准质量)、hd(高清质量) 暂不支持
    style string - 图像风格,可选值:vivid(鲜艳生动)、natural(自然真实) 暂不支持
    temperature float - 生成温度,取值范围:0.0-2.0,控制生成的随机性 -
    top_p float - 核采样参数,取值范围:0.0-1.0 -
    top_k integer - Top-K 采样参数,最小值:1 -
    negative_prompt string - 负向文本提示词 仅限 kling 系列模型
    image string - 参考图像,内容为可公开访问的 url 链接 仅限 kling 系列模型
    image_reference string - 图片参考类型 仅 kling-v1-5 支持当前参数
    image_fidelity float 0.5 生成过程中对用户上传图片的参考强度 仅限 kling 系列模型
    human_fidelity float 0.45 面部参考强度,即参考图中人物五官相似度 仅限 kling 系列模型
    aspect_ratio string “16:9” 生成图片的画面纵横比(宽:高) 仅限 kling 系列模型

    参数详细说明

    model

    • 必填参数
    • 指定使用的图像生成模型
    • 不同模型支持的参数和功能可能有所不同
    • 示例:gemini-2.5-flash-image

    prompt

    • 必填参数
    • 图像生成的文本描述提示词
    • 建议:提示词越详细、具体,生成的图像质量越好
    • 建议包含风格、光线、构图、色彩等细节
    • 使用逗号分隔不同的描述要素
    • 示例:"一只橘色的猫,坐在窗台上,温暖的阳光,柔和的阴影,专业摄影,高清画质,4K 分辨率"

    n

    • 可选参数,默认值为 1
    • 控制一次请求生成的图像数量
    • 取值范围:1-10
    • 注意:生成多张图片会消耗更多 tokens

    size

    • 可选参数
    • 指定生成图像的尺寸,格式为 宽x高

    quality

    • 可选参数
    • 控制图像生成质量
    • 可选值:
      • standard:标准质量
      • hd:高清质量

    style

    • 可选参数
    • 控制图像风格
    • 可选值:
      • vivid:鲜艳、生动的风格
      • natural:自然、真实的风格

    temperature

    • 可选参数
    • 控制生成的随机性和创意性
    • 取值范围:0.0-2.0
    • 较低的值(如 0.2)使输出更确定和一致
    • 较高的值(如 1.0)使输出更随机和创意

    top_p

    • 可选参数
    • 核采样参数,用于控制生成的多样性
    • 取值范围:0.0-1.0
    • 较低的值会使生成更集中于高概率选项
    • 注意:不建议同时修改 temperature 和 top_p

    top_k

    • 可选参数
    • Top-K 采样参数
    • 限制每步采样时考虑的候选项数量

    negative_prompt
    负向文本提示词

    • 不能超过2500个字符
    • 此外,图生图(即image字段不为空时)场景下,不支持负向提示词

    image

    • 图片格式支持 .jpg/.jpeg/.png
    • 图片文件大小不能超过10MB,图片宽高尺寸不小于300px,图片宽高比介于1:2.5 ~ 2.5:1之间
    • image_reference参数不为空时,当前参数必填

    image_reference
    图片参考类型

    • 枚举值:subject(角色特征参考), face(人物长相参考)
    • 使用face(人物长相参考)时,上传图片需仅含1张人脸。
    • 使用 kling-v1-5 且 image 参数不为空时,当前参数必填
    • kling-v1-5 支持当前参数

    image_fidelity
    生成过程中对用户上传图片的参考强度

    • 取值范围:[0,1],数值越大参考强度越大

    human_fidelity
    面部参考强度,即参考图中人物五官相似度

    • 仅 image_reference 参数为 subject 时生效
    • 取值范围:[0,1],数值越大参考强度越大

    aspect_ratio
    生成图片的画面纵横比(宽:高)

    • 枚举值:16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9

    响应格式

    成功响应

    {
      "created": 1234567890,
      "data": [
        {
          "b64_json": "iVBORw0KGgoAAAANSUhEUgA..."
        },
        {
          "b64_json": "iVBORw0KGgoAAAANSUhEUgB..."
        }
      ],
      "output_format": "png",
      "usage": {
        "total_tokens": 5234,
        "input_tokens": 234,
        "output_tokens": 5000,
        "input_tokens_details": {
          "text_tokens": 234,
          "image_tokens": 0
        }
      }
    }
    

    使用 kling 系列模型返回格式如下:

    {
        "task_id": "image-1762159125266058362-1383010xxx"
    }
    

    响应参数说明

    字段名 类型 说明
    created integer 响应创建时间戳(Unix 时间戳,秒)
    data array 生成的图像数据数组
    data[].b64_json string Base64 编码的图像数据
    size string 图像尺寸
    quality string 图像质量
    output_format string 输出格式,默认为 png
    usage object Token 使用统计信息
    usage.total_tokens integer 总 token 数
    usage.input_tokens integer 输入 token 数
    usage.output_tokens integer 输出 token 数(图像生成消耗)
    usage.input_tokens_details object 输入 token 详情(若有)
    usage.input_tokens_details.text_tokens integer 文本 token 数
    usage.input_tokens_details.image_tokens integer 图像 token 数
    task_id string 目前为 kling 系列模型独有的返回结果,task_id 为 kling 模型异步生成图像的任务ID

    如何使用返回的图像数据?

    响应中的 b64_json 字段包含 Base64 编码的图像数据,可通过以下方式使用:

    1. 在 HTML 中直接显示

    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA..." />
    

    2. 使用命令行工具保存图像

    # 使用 jq 和 base64 命令提取并保存图像
    curl "$OPENAI_BASE_URL/images/generations" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "prompt": "一只可爱的橘猫"
        }' | jq -r '.data[0].b64_json' | base64 -d > generated_image.png
    

    查询异步生成图像任务状态

    接口名 说明
    /v1/images/tasks/:task_id kling 生成图像异步任务独有的状态查询接口,
    用于查询生成图像异步任务的当前状态以及最终生成的图像结果。

    参数说明:

    参数名称 参数类型 是否必填 参数描述
    task_id string 生成图像异步任务 ID,在使用 kling 系列模型调用 /images/generations 接口的结果生成
    请求路径参数,直接将值填写在请求路径中

    使用示例可以参考如下,假设你已经使用 /images/generations 接口使用 kling 模型请求发起了一个生成图像异步任务,任务 ID 是 image-1762159125266058362-1383010xxx

    # 调用查询异步生成图像任务状态 API
    export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/v1/images/tasks/image-1762159125266058362-1383010xxx" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY"
    

    成功响应示例如下:

    {
        "task_id": "image-1762159125266058362-1383010xxx",
        "created": 1761793032,
        "status": "succeed",
        "status_message": "成功",
        "data": [
            {
                "index": 0,
                "url": "https://aitoken-image.qnaigc.com/1383010xxx/image-1761793032508597404-1383010xxx/0.png?e=1763089082&token=IDB69r4gicDbMfrecarthgw1btTTWEFNg9i5_yasXqhp:JapC2EihLvSADMficht3pZVn5Xc="
            }
        ],
        "quantity": 1
    }
    

    上述示例响应字段说明:

    字段名 类型 说明
    task_id string 图像生成任务的唯一标识符
    created integer 表示任务创建时间的 Unix 时间戳
    status string 任务的当前状态(例如:succeed 成功,更多看如下状态码细节)
    status_message string 描述当前状态的消息,例如在 succeed 状态时,这个字段信息描述是 成功
    data array
    data[].index integer 图像在生成序列中的索引
    data[].url string 访问生成图像文件的可直接访问 URL
    quantity integer 此任务中生成的图像数量,同时该数量会用于计量计算

    status 字段可能的取值包括:

    • submitted:任务已接收,等待处理
    • processing:任务正在处理中
    • succeed:任务成功完成,图像已生成并可访问
    • failed:任务在处理过程中失败

    常见问题

    Q: 如何将生成的图像保存到七牛云对象存储?
    A: 推荐使用七牛对象存储来存储生成的图像。我们提供了多种语言的上传 SDK,简单易用,欢迎查看我们的【SDK 中心】来了解。更多对象存储信息欢迎参考对象存储的【产品使用文档】。

    参考文档

    以上内容是否对您有帮助?