Skip to content

flux-kontext API 文生图接口文档

简介

Black Forest Labs推出商业级精度的图像生成,满足专业设计需求。

FLUX.1 Kontext模型,突破性的生成式流匹配模型(generative flow matching models),能够同时实现图像生成和编辑功能。支持文本+图像输入的上下文感知生成/编辑模型,控制更精准。

模型列表

flux-kontext-max – 功能最全面、处理能力最强的版本,可能拥有最大的上下文理解能力和生成效果。

flux-kontext-pro – 专为专业人士或高级用户设计的版本,在性能和功能上做了优化和平衡。

flux-kontext-dev – 主要面向开发者,用于测试、集成和早期开发探索的版本,可能在规模或速度上有所侧重。

API接口文档

请求方式

POST https://www.dmxapi.cn/v1/images/generations

请求头

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求参数

参数名类型必填说明
promptstring图像生成的文本描述提示词
modelstring使用的AI图像生成模型,可选值:flux-kontext-maxflux-kontext-proflux-kontext-dev
sizestring图像尺寸比例,支持比例格式(如16x93x2)或具体尺寸,默认为1x1
ninteger生成图像的数量,默认为1(注意:修改此值可能导致API报错)

请求示例

bash
curl -X POST "https://www.dmxapi.cn/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "充满科技感的店铺,招牌写着:DMXAPI",
    "model": "flux-kontext-pro",
    "size": "16x9",
    "n": 1
  }'

响应格式

成功响应示例:

json
{
  "data": [
    {
      "url": "https://example.com/generated-image.png",
      "seed": 123456789
    }
  ]
}

或Base64格式响应:

json
{
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
      "seed": 123456789
    }
  ]
}

文生图代码示例 (Python)

python
import base64
import os
import time
import requests

# ============== API配置部分 ==============
# 配置DMXAPI的图像生成接口地址
API_URL = "https://www.dmxapi.cn/v1/images/generations"  # DMXAPI图像生成的完整API地址

# 配置API密钥 - 建议在生产环境中使用环境变量管理,避免硬编码
API_KEY = "sk-*************************************"  # 替换为你的DMXAPI令牌

# ============== 请求参数配置 ==============
params = {
    "prompt": "充满科技感的店铺,招牌写着:DMXAPI",  # 图像生成的文本描述提示词
    "model": "flux-kontext-pro",                    # 使用的AI图像生成模型
    "size": "16x9",                                 # 图像尺寸比例,支持比例格式(如3x2)或具体尺寸
    "n": 1,                                         # 生成图像的数量(注意:修改此值可能导致API报错)
}

# ============== HTTP请求头配置 ==============
# 构建包含认证信息和内容类型的请求头
headers = {
    "Authorization": f"Bearer {API_KEY}",  # Bearer token认证方式
    "Content-Type": "application/json"     # 指定请求体为JSON格式
}

try:
    # ============== 发送API请求 ==============
    print("正在向DMXAPI发送图像生成请求...")
    # 发送POST请求到图像生成API,设置30秒超时
    response = requests.post(API_URL, headers=headers, json=params, timeout=30)

    # ============== 处理API响应 ==============
    if response.status_code == 200:
        # 请求成功,解析JSON响应数据
        data = response.json()
        print("API请求成功,正在处理返回的图像数据...")
        
        # ============== 处理URL格式的图像响应 ==============
        if data.get("data") and data["data"][0].get("url"):
            # 获取图像的下载URL
            img_url = data["data"][0]["url"]
            print(f"正在从URL下载图片: {img_url}")
            
            # 从URL下载图像文件
            img_response = requests.get(img_url, timeout=30)
            if img_response.status_code == 200:
                # 创建输出目录(如果不存在)
                os.makedirs("output", exist_ok=True)
                
                # 生成带时间戳的文件名,避免文件名冲突
                filename = f"output/image_{time.strftime('%Y%m%d_%H%M%S')}.png"
                
                # 将图像数据写入文件
                with open(filename, "wb") as f:
                    f.write(img_response.content)
                print(f"图片保存成功: {filename}")
                
                # 显示生成图像时使用的种子值(用于复现相同结果)
                if data["data"][0].get("seed"):
                    print(f"使用的种子值: {data['data'][0]['seed']}")
            else:
                print(f"图片下载失败,HTTP状态码: {img_response.status_code}")
                
        # ============== 处理Base64格式的图像响应 ==============
        elif data.get("data") and data["data"][0].get("b64_json"):
            print("检测到Base64格式的图像数据,正在解码...")
            # 解码Base64格式的图像数据
            img_data = base64.b64decode(data["data"][0]["b64_json"])
            
            # 创建输出目录(如果不存在)
            os.makedirs("output", exist_ok=True)
            
            # 生成带时间戳的文件名
            filename = f"output/image_{time.strftime('%Y%m%d_%H%M%S')}.png"
            
            # 将解码后的图像数据写入文件
            with open(filename, "wb") as f:
                f.write(img_data)
            print(f"图片保存成功: {filename}")
            
        # ============== 处理异常响应格式 ==============
        else:
            print("警告:响应数据格式不符合预期")
            print("API返回的数据中既没有'url'字段也没有'b64_json'字段")
            print(f"完整响应内容: {data}")
            
    else:
        # ============== 处理API请求失败 ==============
        print(f"API请求失败")
        print(f"HTTP状态码: {response.status_code}")
        print(f"错误原因: {response.reason}")
        print(f"详细错误信息: {response.text}")

# ============== 异常处理 ==============
except requests.exceptions.RequestException as e:
    # 处理网络相关的异常(连接超时、DNS解析失败等)
    print(f"网络请求发生错误: {str(e)}")
    print("请检查网络连接或API地址是否正确")
    
except Exception as e:
    # 处理其他未预期的异常
    print(f"程序执行过程中发生其他错误: {str(e)}")
    print("请检查代码逻辑或联系技术支持")

参考

http://imagemodels.dmxapi.com/

一个 Key 用全球大模型