Skip to content

gpt-image-1 单图编辑 API 接口

API接口文档

基础信息

  • Base URL: https://www.dmxapi.cn/v1/images/edits
  • 请求方式: POST
  • 认证方式: Bearer Token

示例代码

python
import base64  # 导入 base64 模块
import json  # 导入 json 模块
import requests  # 导入 requests 库

# API 端点,用于图像编辑和操作
url = "https://www.DMXAPI.cn/v1/images/edits"  # <-- 根据你注册的DMXAPI网站修改域名 .com 或 .cn
api_key ="sk-**********************************"  # 替换为你的 DMXAPI 令牌

headers = {
    "Authorization": f"Bearer {api_key}"  # 使用你的 API 密钥进行认证
}

# 请求参数,包含编辑的提示词
payload = {
    "prompt": "给哪吒带上一个红色的鸭舌帽,风格保持不变",  # 描述对上传图片的编辑要求
    # "size": "1024x1024" # 可选参数,指定输出尺寸。注意:编辑通常保持原图比例,指定尺寸可能导致裁剪或缩放
}

# 需要编辑的图片文件,以 multipart/form-data 格式发送
files = [
    (
        "image",  # 参数名称必须是 "image"
        (
            "nezha1.png",  # 文件名(可以随意命名,最好能反映内容)
            open(
                "c:\\nezha1.png",  # <-- 请替换为你的图片文件完整路径
                "rb",  # 以二进制只读模式打开文件
            ),
            "image/png",  # 文件的 MIME 类型 (image/png, image/jpeg 等)
        ),
    )
]

# 发送 POST 请求
# requests 库会自动处理 multipart/form-data 的编码
response = requests.post(url, headers=headers, data=payload, files=files)

# 检查请求是否成功
if response.status_code == 200:
    try:
        # 解析 JSON 响应
        response_data = response.json()  # requests 库可以直接解析 JSON

        # 检查响应数据结构是否符合预期
        if (
            "data" in response_data
            and isinstance(response_data["data"], list)
            and len(response_data["data"]) > 0
        ):
            # 提取第一个结果中的 base64 字符串 (编辑结果通常以 base64 返回)
            image_base64 = response_data["data"][0].get("b64_json")

            if image_base64:
                try:
                    # 解码 base64 字符串为二进制数据
                    image_data = base64.b64decode(image_base64)

                    # 定义保存文件的路径和名称
                    output_filename = (
                        "output_edited_image.png"  # 您可以修改文件名和扩展名
                    )

                    # 将二进制数据写入文件
                    with open(output_filename, "wb") as f:
                        f.write(image_data)

                    print(f"图像已成功保存到 {output_filename}")

                except base64.binascii.Error as e:
                    print(f"Base64 解码错误: {e}")
                except IOError as e:
                    print(f"文件写入错误: {e}")
            else:
                print("响应中未找到 'b64_json' 字段或其值为 None")
        else:
            print("响应数据结构不符合预期或 'data' 列表为空")
            print("原始响应文本:", response.text)  # 打印原始响应以便调试

    except json.JSONDecodeError:
        print("无法解析 JSON 响应")
        print("原始响应文本:", response.text)
    except Exception as e:
        print(f"处理响应时发生未知错误: {e}")

else:
    print(f"请求失败,状态码: {response.status_code}")
    print("响应文本:", response.text)  # 打印错误响应文本

一个 Key 用全球大模型