> ## Documentation Index
> Fetch the complete documentation index at: https://quwan-b8010aef.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 即梦图片生成示例

> 使用即梦 API 进行图片生成的完整示例代码

# 即梦图片生成示例

以下示例展示如何使用即梦（Jimeng）API 生成高质量的图片。即梦是火山引擎旗下的AI绘画产品，支持文生图和图生图功能。

## 快速开始

```bash cURL theme={null}
curl -X POST "https://api.tokenops.ai/v1/images/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "prompt": "一只可爱的小猫在花园里玩耍，阳光明媚，油画风格",
    "model": "jimeng-3.0-t2i",
    "size": "1328x1328",
    "response_format": "url",
    "watermark": true
  }'
```

```python Python theme={null}
import requests
import json
import base64
from PIL import Image
from io import BytesIO

API_KEY = "<API-KEY>"
BASE_URL = "https://api.tokenops.ai/v1"

def generate_image_jimeng(prompt, model="jimeng-3.0-t2i", size="1328x1328",
                         watermark=True, response_format="url"):
    """
    使用即梦API生成图片

    Args:
        prompt: 图片描述文本
        model: 模型名称，默认jimeng-3.0-t2i
        size: 图片尺寸
        watermark: 是否添加水印
        response_format: 返回格式，url或b64_json
    """
    url = f"{BASE_URL}/images/generations"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}"
    }

    data = {
        "prompt": prompt,
        "model": model,
        "size": size,
        "response_format": response_format,
        "watermark": watermark
    }

    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        result = response.json()
        images = []

        # 显示响应信息
        if 'created' in result:
            print(f"生成时间: {result['created']}")
        if 'generate_image' in result:
            print(f"生成图片数量: {result['generate_image']}")

        for i, img_data in enumerate(result['data']):
            if response_format == "b64_json" and 'b64_json' in img_data:
                # 处理base64格式
                image_data = base64.b64decode(img_data['b64_json'])
                image = Image.open(BytesIO(image_data))
                filename = f"jimeng_generated_{i+1}.png"
                image.save(filename)
                images.append(filename)
                print(f"图片已保存: {filename}")
            elif 'url' in img_data:
                # 处理URL格式（3天内有效）
                print(f"图片URL: {img_data['url']}")
                images.append(img_data['url'])

        return images
    else:
        print(f"错误: {response.status_code} - {response.text}")
        return None

# 基础使用示例
if __name__ == "__main__":
    prompt = "一只可爱的小猫在花园里玩耍，阳光明媚，油画风格"
    images = generate_image_jimeng(prompt)

    if images:
        print(f"成功生成 {len(images)} 张图片")
```

```python Python - 高级功能 theme={null}
import requests
import json

API_KEY = "<API-KEY>"
BASE_URL = "https://api.tokenops.ai/v1"

def generate_image_jimeng_advanced(prompt, **kwargs):
    """
    即梦图片生成高级功能示例

    支持的高级参数：
    - seed: 随机种子，-1表示随机
    - optimize_prompt_options: 提示词优化配置（开启文本扩写）
    """
    url = f"{BASE_URL}/images/generations"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}"
    }

    # 基础参数
    data = {
        "prompt": prompt,
        "model": kwargs.get("model", "jimeng-3.0-t2i"),
        "size": kwargs.get("size", "1328x1328"),
        "response_format": kwargs.get("response_format", "url"),
        "watermark": kwargs.get("watermark", True)
    }

    # 随机种子
    if kwargs.get("seed"):
        data["seed"] = kwargs["seed"]

    # 提示词扩写（默认开启）
    if kwargs.get("optimize_prompt") is not None:
        data["optimize_prompt_options"] = {
            "enable": kwargs["optimize_prompt"]
        }

    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        result = response.json()
        print(f"生成时间: {result.get('created')}")

        if result.get('generate_image'):
            print(f"生成图片数量: {result['generate_image']}")

        return result['data']
    else:
        print(f"错误: {response.status_code} - {response.text}")
        return None

# 高级功能使用示例
if __name__ == "__main__":
    # 使用固定种子生成
    print("=== 固定种子生成示例 ===")
    images = generate_image_jimeng_advanced(
        prompt="可爱的卡通小动物，清新风格",
        seed=12345,
        optimize_prompt=True
    )

    # 关闭提示词扩写
    print("\n=== 关闭提示词扩写示例 ===")
    images = generate_image_jimeng_advanced(
        prompt="详细的提示词，无需扩写",
        optimize_prompt=False
    )
```

## 图生图示例

即梦支持基于现有图片生成新图片的功能（图生图），通过 `/v1/images/edits` 接口实现：

```bash cURL - 图生图 theme={null}
curl -X POST "https://api.tokenops.ai/v1/images/edits" \
  -H "Authorization: Bearer <API-KEY>" \
  -F "prompt=将图片改为水彩画风格" \
  -F "model=jimeng-3.0-i2i" \
  -F "size=1328x1328" \
  -F "image=@/path/to/your/image.png"
```

```python Python - 图生图 theme={null}
import requests

API_KEY = "<API-KEY>"
BASE_URL = "https://api.tokenops.ai/v1"

def edit_image_jimeng(image_path, prompt, model="jimeng-3.0-i2i", size="1328x1328"):
    """
    使用即梦API进行图生图

    Args:
        image_path: 本地图片路径
        prompt: 生成描述
        model: 模型名称，默认jimeng-3.0-i2i
        size: 输出图片尺寸
    """
    url = f"{BASE_URL}/images/edits"
    headers = {
        "Authorization": f"Bearer {API_KEY}"
    }

    with open(image_path, 'rb') as f:
        files = {
            'image': f
        }
        data = {
            'prompt': prompt,
            'model': model,
            'size': size
        }

        response = requests.post(url, headers=headers, files=files, data=data)

    if response.status_code == 200:
        result = response.json()
        print(f"生成时间: {result.get('created')}")

        if result.get('generate_image'):
            print(f"生成图片数量: {result['generate_image']}")

        for i, img_data in enumerate(result['data']):
            if 'url' in img_data:
                print(f"生成的图片URL: {img_data['url']}")
                return img_data['url']
    else:
        print(f"错误: {response.status_code} - {response.text}")
        return None

# 使用示例
if __name__ == "__main__":
    edited_image = edit_image_jimeng(
        image_path="/path/to/your/image.png",
        prompt="将图片改为动漫风格"
    )
```

```python Python - 使用URL图生图 theme={null}
import requests
import json

API_KEY = "<API-KEY>"
BASE_URL = "https://api.tokenops.ai/v1"

def edit_image_jimeng_with_url(image_url, prompt, model="jimeng-3.0-i2i", size="1328x1328"):
    """
    使用即梦API进行图生图（使用URL作为输入）

    Args:
        image_url: 图片URL
        prompt: 生成描述
        model: 模型名称
        size: 输出图片尺寸
    """
    url = f"{BASE_URL}/images/edits"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}"
    }

    data = {
        "prompt": prompt,
        "model": model,
        "size": size,
        "image": image_url
    }

    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        result = response.json()
        print(f"生成时间: {result.get('created')}")

        for i, img_data in enumerate(result['data']):
            if 'url' in img_data:
                print(f"生成的图片URL: {img_data['url']}")
                return img_data['url']
    else:
        print(f"错误: {response.status_code} - {response.text}")
        return None

# 使用示例
if __name__ == "__main__":
    base_image = "https://example.com/your-image.jpg"
    edited_image = edit_image_jimeng_with_url(
        image_url=base_image,
        prompt="生成狗狗趴在草地上的近景画面"
    )
```

## 支持的参数

### 文生图参数（/v1/images/generations）

| 参数 | 类型 | 必需 | 说明 |
| - | - | - | - |
| prompt | string | 是 | 图片描述文本 |
| model | string | 是 | 模型名称，如 `jimeng-3.0-t2i` |
| size | string | 否 | 图片尺寸，默认 `1328x1328`，详见下方尺寸说明 |
| response\_format | string | 否 | 返回格式（`url` 或 `b64_json`），默认 `url` |
| seed | integer | 否 | 随机数种子，-1表示随机 |
| watermark | boolean | 否 | 是否添加水印，默认 `true` |
| optimize\_prompt\_options | object | 否 | 提示词优化配置，`{"enable": true/false}` |

### 图片尺寸说明

即梦支持自定义生成图像宽高，要求：

* 宽高比在 **1:3 到 3:1** 之间
* 宽高乘积在 **512×512 到 2048×2048** 之间
* 默认生成 **1328×1328** 的图像

**推荐尺寸：**

| 分辨率 | 标清 1K | 高清 2K |
| - | - | - |
| 1:1 | 1328×1328 | 2048×2048 |
| 4:3 | 1472×1104 | 2304×1728 |
| 3:2 | 1584×1056 | 2496×1664 |
| 16:9 | 1664×936 | 2560×1440 |
| 21:9 | 2016×864 | 3024×1296 |

> [!NOTE]
>
> 竖版图片可交换宽高值，如 1:1 比例的 1328×1328，4:3 比例的竖版为 1104×1472。

### 图生图参数（/v1/images/edits）

| 参数 | 类型 | 必需 | 说明 |
| - | - | - | - |
| prompt | string | 是 | 生成描述文本 |
| model | string | 是 | 模型名称，如 `jimeng-3.0-i2i` |
| image | file/string | 是 | 输入图片（文件或URL） |
| size | string | 否 | 输出图片尺寸，默认 `1328x1328`，详见上方尺寸说明 |
| seed | integer | 否 | 随机数种子，-1表示随机 |

## 响应格式

### 文生图响应

```json theme={null}
{
  "created": 1762841059,
  "data": [
    {
      "url": "https://xxx.com/images/xxx.png"
    }
  ],
  "generate_image": 1
}
```

### 图生图响应

```json theme={null}
{
  "created": 1762841059,
  "data": [
    {
      "url": "https://xxx.com/images/xxx.png"
    }
  ],
  "generate_image": 1
}
```

## 重要提示

> [!WARNING]
>
> **即梦API特性说明**：
>
> * 即梦使用异步任务机制，提交任务后会轮询获取结果
> * 图片生成时间可能较长（通常10-60秒），请耐心等待
> * 生成的图片URL有效期为3天

> [!NOTE]
>
> **提示词扩写功能**：
>
> * 即梦支持提示词扩写功能（use\_pre\_llm），默认开启
> * 通过 `optimize_prompt_options.enable` 参数可控制是否启用
> * 开启后会自动优化用户输入的提示词，生成更好的图片


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.