AI 大模型推理

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

    图生图 (image edit)

    最近更新时间: 2025-10-23 14:48:23

    七牛云 AI 大模型推理 API 支持图生图(Image-to-Image)功能,兼容 OpenAI Images Edit API 接口格式,支持基于输入图像和文本描述生成新的图像,方便您集成到各种图像编辑和创意应用场景中。

    Token API 接入点

    七牛云 AI 大模型推理 API 提供两个接入域名:

    支持接口列表

    接口名 说明
    /images/edits 图生图接口,根据输入图像和文本描述生成新的图像
    支持模型:Gemini 2.5 Flash Image 等
    输出格式:Base64 编码的图像数据 (PNG 格式)

    支持的模型列表

    模型 ID 模型名称 说明 状态
    gemini-2.5-flash-image Gemini 2.5 Flash Image (Nano Banana) 又称 Nano Banana,谷歌最新的快速图像模型,支持高质量的图像编辑、风格转换和内容修改 ✅已推出
    kling-* 可灵系列 快手可灵图生图模型系列,擅长基于输入图像的智能编辑和风格迁移,支持高质量的中文提示词 🚀即将推出

    HTTP 调用示例

    基础图像编辑

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

    # 调用图生图 API
    export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "data:image/png;base64,iVBORw0KGgo...",
            "prompt": "将图片中的猫改成白色,背景改为蓝天白云"
        }'
    

    使用图片 URL

    # 使用图片 URL 进行图生图
    export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "https://example.com/sample-image.jpg",
            "prompt": "为这个场景添加日落效果,让整体色调更温暖"
        }'
    

    生成多张图像

    # 批量生成多张编辑结果
    export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "data:image/png;base64,iVBORw0KGgo...",
            "prompt": "将这张照片转换为水彩画风格",
            "n": 4,
            "size": "1024x1024",
        }'
    

    使用多张输入图像

    # 使用多张图像作为输入
    export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
    export OPENAI_API_KEY="<七牛云 AI API KEY>"
    
    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": [
                "data:image/png;base64,iVBORw0KGgo...",
                "https://example.com/reference-image.jpg"
            ],
            "prompt": "结合这两张图片的风格,生成一张新的艺术作品"
        }'
    

    请求参数说明

    Header 参数

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

    Body 参数 (JSON)

    参数名 类型 必填 默认值 说明 模型支持
    model string - 图像生成模型名称,如 gemini-2.5-flash-image -
    image string 或 array - 输入图像,支持以下格式:
    - Base64 data URI(如 data:image/png;base64,...)
    - 图片 URL(如 https://example.com/image.jpg)
    - 数组形式的多张图片
    -
    prompt string - 图像编辑的文本描述提示词 -
    n integer 1 生成图像数量,取值范围:1-10 -
    size string - 图像尺寸,格式:宽x高,支持以下尺寸:
    1024x10241536x10241792x10241024x15361024x1792
    1344x768768x13441248x832832x1248
    1184x864864x11841152x896896x11521536x672
    -
    mask string - 遮罩图像 URL 或 Base64 data URI,用于指定编辑区域 -
    quality string - 图像质量,可选值:standard(标准质量)、hd(高清质量) 暂不支持
    background string - 背景处理方式,可选值:transparent(透明)、opaque(不透明)、auto(自动) 暂不支持
    input_fidelity string - 输入图像保真度,可选值:high(高保真)、low(低保真) 暂不支持
    output_format string png 输出格式,可选值:pngjpegwebp 暂不支持
    output_compression integer - 输出压缩质量,取值范围:0-100(仅适用于 webp/jpeg 格式) 暂不支持
    response_format string b64_json 响应格式,可选值:b64_json(Base64 编码)、url(图片 URL) 暂不支持
    stream boolean false 是否启用流式响应 暂不支持

    参数详细说明

    model

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

    image

    • 必填参数
    • 输入图像,支持多种格式:
      • Base64 data URI:使用 data:image/png;base64, 前缀 + Base64 编码的图像数据
      • 图片 URL:可访问的公网图片链接,如 https://example.com/image.jpg
      • 数组形式:支持传入多张图片,格式为 ["url1", "url2"] 或混合 data URI 和 URL
    • 建议使用高质量的输入图像以获得更好的编辑效果

    prompt

    • 必填参数
    • 图像编辑的文本描述提示词
    • 建议:
      • 清晰描述期望的编辑效果
      • 包含风格、色彩、构图等具体细节
      • 使用逗号分隔不同的描述要素
    • 示例:
      • "将图片中的天空改为日落时分的橙红色,增加温暖的氛围"
      • "将照片转换为油画风格,保持主体不变,增强色彩饱和度"
      • "移除背景中的杂物,让背景变得简洁干净"

    n

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

    size

    • 可选参数
    • 指定生成图像的尺寸,格式为 宽x高
    • 支持以下尺寸规格:
      • 正方形:1024x1024
      • 横向:1536x10241792x10241344x7681248x8321184x8641152x8961536x672
      • 纵向:1024x15361024x1792768x1344832x1248864x1184896x1152
    • 具体支持的尺寸取决于所选模型

    quality

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

    background

    • 可选参数
    • 控制背景处理方式
    • 可选值:
      • transparent:生成透明背景
      • opaque:生成不透明背景
      • auto:自动决定

    input_fidelity

    • 可选参数
    • 控制对输入图像的保真程度
    • 可选值:
      • high:高保真,生成的图像更接近原始输入
      • low:低保真,允许更大的创意改动

    mask

    • 可选参数
    • 遮罩图像,用于指定只编辑图像的特定区域
    • 支持格式:
      • Base64 data URI:data:image/png;base64,...
      • 图片 URL:https://example.com/mask.png
    • 遮罩图像规则:
      • 黑色 (#000000) 区域:保持原图不变
      • 白色 (#FFFFFF) 区域:应用编辑效果
      • 灰色区域:部分应用编辑效果

    output_format

    • 可选参数,默认为 png
    • 指定输出图像的格式
    • 可选值:
      • png:PNG 格式,支持透明背景,文件较大
      • jpeg:JPEG 格式,文件较小,不支持透明背景
      • webp:WebP 格式,平衡质量和文件大小

    output_compression

    • 可选参数
    • 输出图像的压缩质量
    • 取值范围:0-100
      • 0:最低质量,最小文件
      • 100:最高质量,最大文件
    • 仅适用于 webpjpeg 格式
    • 不适用于 png 格式

    response_format

    • 可选参数,默认为 b64_json
    • 指定响应中图像数据的格式
    • 可选值:
      • b64_json:返回 Base64 编码的图像数据 (推荐)
      • url:返回图片 URL(需模型支持)

    stream

    • 可选参数,默认为 false
    • 是否启用流式响应
    • 部分模型支持流式返回中间结果

    响应格式

    成功响应

    {
      "created": 1234567890,
      "data": [
        {
          "b64_json": "iVBORw0KGgoAAAANSUhEUgA..."
        },
        {
          "b64_json": "iVBORw0KGgoAAAANSUhEUgB..."
        }
      ],
      "size": "1024x1024",
      "output_format": "png",
      "usage": {
        "total_tokens": 6234,
        "input_tokens": 1234,
        "output_tokens": 5000,
        "input_tokens_details": {
          "text_tokens": 234,
          "image_tokens": 1000
        }
      }
    }
    

    响应参数说明

    字段名 类型 说明
    created integer 响应创建时间戳 (Unix 时间戳,秒)
    data array 生成的图像数据数组
    data[].b64_json string Base64 编码的图像数据
    size 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 数

    如何使用返回的图像数据

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

    1. 在 HTML 中直接显示

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

    使用场景示例

    场景 1:风格转换

    将普通照片转换为艺术风格:

    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "https://example.com/photo.jpg",
            "prompt": "将这张照片转换为印象派油画风格,使用莫奈的色彩表现手法",
        }'
    

    场景 2:背景替换

    更换图片背景:

    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "https://example.com/person.jpg",
            "prompt": "保持人物不变,将背景替换为海滩日落场景",
        }'
    

    场景 3:图像增强

    提升图像质量:

    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "https://example.com/low-quality.jpg",
            "prompt": "提升图像清晰度,增强色彩饱和度和对比度,去除噪点",
            "size": "1792x1024"
        }'
    

    场景 4:局部编辑 (使用遮罩)

    只编辑图像的特定区域:

    curl "$OPENAI_BASE_URL/images/edits" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPENAI_API_KEY" \
        -d '{
            "model": "gemini-2.5-flash-image",
            "image": "https://example.com/room.jpg",
            "mask": "https://example.com/room-mask.png",
            "prompt": "将墙壁改成深蓝色",
        }'
    

    常见问题

    Q: 图生图和文生图有什么区别?

    A: 文生图 (/images/generations) 是纯粹根据文本描述生成全新的图像;图生图 (/images/edits) 则是基于输入的图像进行编辑和改造,可以保留原图的部分特征。

    Q: 支持哪些输入图像格式?

    A: 支持常见的图像格式,包括 PNG、JPEG、WebP 等。可以通过 Base64 data URI 或公网可访问的图片 URL 提供输入图像。

    Q: 如何控制生成结果更接近原图?

    A: 可以使用 input_fidelity: "high" 参数来提高对原图的保真度,生成的图像会更接近输入图像。

    Q: 如何处理多张输入图像?

    A: 将 image 参数设置为数组格式,如 ["url1", "url2"],模型会结合多张输入图像的特征进行编辑。

    Q: 如何将生成的图像保存到七牛云对象存储?

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

    Q: 遮罩图像 (mask) 应该如何制作?

    A: 遮罩图像应该是黑白图像:

    • 白色区域 (#FFFFFF):表示需要编辑的区域
    • 黑色区域 (#000000):表示保持不变的区域
    • 灰色区域:会部分应用编辑效果

    您可以使用 Photoshop、GIMP 等图像编辑软件创建遮罩图像。

    参考文档

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