跳转至

图像生成详细教程

支持多种图像生成模型,包括 Seedream、Flux、DALL-E 等


实际生成效果展示

下面是使用本教程代码实际生成的图片示例:

示例 Prompt 描述 生成效果
橘猫 "一只可爱的橘猫坐在阳光下的草地上,卡通风格,皮克斯动画,柔和光影" 橘猫示例

所有图片都来自 API 实际调用,使用 doubao-seedream-4-0-250828 模型生成。


目录

  1. 前置准备
  2. 你的第一张 AI 图片
  3. DALL-E 格式详解
  4. 保存图片到本地
  5. 模型选择指南
  6. Prompt 编写技巧
  7. 常见问题 FAQ
  8. 完整示例代码

前置准备

安装依赖

pip install openai requests --upgrade

配置 API Key

参考 文本对话教程 的前置准备章节,配置好你的 API Key。


你的第一张 AI 图片

复制运行,快速生成你的第一张 AI 图片:

from openai import OpenAI

client = OpenAI(
    # api_key="你的API_KEY",  # 配置了环境变量就不用写这行
    base_url="https://apinexus.net/v1"
)

response = client.images.generate(
    model="doubao-seedream-4-0-250828",
    prompt="一只可爱的橘猫坐在窗台上,阳光洒在身上,卡通风格,皮克斯动画,柔和光影,高画质,8K分辨率",
    size="1024x1024",
    n=1
)

print(f"生成成功!")
print(f"图片链接: {response.data[0].url}")

DALL-E 格式详解

这是最标准、最常用的图像生成格式,支持所有兼容 OpenAI DALL-E 接口的模型。

完整参数说明

response = client.images.generate(
    model="doubao-seedream-4-0-250828",  # 模型 ID
    prompt="一只可爱的小狗",              # 提示词(最重要)
    size="1024x1024",                     # 图片尺寸
    n=1,                                   # 生成数量
    quality="standard",                    # 质量: standard / hd
    style="vivid",                         # 风格: vivid / natural
    response_format="url",                 # 返回格式: url / b64_json
    user="user-123"                        # 用户标识 (可选)
)

参数详解:

参数 可选值 说明
prompt 任何文字 最重要! 描述你想要的画面
size 1024x1024
1792x1024
1024x1792
正方形 / 横屏 / 竖屏
n 1 ~ 10 一次生成几张图片
quality standard / hd hd 质量更高,更贵更慢
style vivid / natural vivid 鲜艳,natural 自然
response_format url / b64_json 返回 URL 或 base64 编码

支持的尺寸对比

尺寸 比例 适用场景
1024x1024 1:1 正方形 头像、社交媒体配图、LOGO
1792x1024 16:9 横屏 电脑壁纸、PPT 配图、视频封面
1024x1792 9:16 竖屏 手机壁纸、小红书、抖音配图

保存图片到本地

生成图片 URL 后,下载保存到电脑:

import requests
from pathlib import Path

def download_image(url, save_path="generated_image.png"):
    """下载图片到本地"""
    response = requests.get(url, timeout=30)
    response.raise_for_status()  # 下载失败会抛出异常

    with open(save_path, "wb") as f:
        f.write(response.content)

    print(f"图片已保存到: {Path(save_path).absolute()}")
    return save_path

# 使用示例
image_url = response.data[0].url  # 从生成结果中拿到 URL
download_image(image_url, "可爱的橘猫.png")

模型选择指南

可用的图像生成模型:

模型 格式 特点 推荐场景
doubao-seedream-4-0-250828 DALL-E 中文理解好,性价比高 中文提示词首选
doubao-seedream-4.5-251128 DALL-E 增强版,中文理解更好 复杂中文场景
doubao-seedream-3-0-t2i-250415 DALL-E 基础版 简单图像生成
flux-1.1-pro Chat 高质量,英文 prompt 效果佳 写实风格
flux-2-pro Chat 最高质量 专业级图像
flux.1-kontext-pro Chat 上下文理解强 复杂场景
dall-e-3 DALL-E OpenAI 官方 通用场景

选择建议: 1. 中文提示词 -> 优先使用 Seedream 系列 2. 英文提示词 -> Flux 系列或 DALL-E 3 3. 需要快速出图 -> flux-1.1-pro 4. 追求最高质量 -> flux-2-pro


Prompt 编写技巧

写好 Prompt 是成功生成图像的关键。

基本结构

主体描述 + 风格 + 画质 + 构图 + 光线 + 色彩

示例:

一只戴着墨镜的金毛犬,站在海边的沙滩上
+ 3D 卡通渲染,皮克斯动画风格
+ 8K 高清,照片级画质,超精细细节
+ 正面特写,浅景深
+ 金色夕阳,柔和逆光,镜头光晕
+ 温暖色调,高饱和度

好的 Prompt vs 差的 Prompt

不要这么写 应该这么写
"一只猫" "一只可爱的布偶猫,蓝色眼睛,蓬松毛发,坐在落地窗前,午后阳光,柔和光斑,浅景深,8K 高清,照片级画质"
"风景" "壮丽的阿尔卑斯山日出,雪山倒映在宁静的湖面上,金色阳光,薄雾缭绕,超广角镜头,国家地理杂志风格"
"女孩" "年轻的东方女孩,黑色长直发,清澈的眼神,微笑,自然光,人像摄影,佳能 R5, f/1.8,柔和背景虚化"

常用风格关键词

艺术风格:

皮克斯动画风格, 吉卜力工作室风格, 宫崎骏风格
梵高油画风格, 莫奈印象派, 水墨画, 中国风, 浮世绘
赛博朋克, 蒸汽朋克, 极简主义, 复古胶片

画质描述:

8K 高清, 4K 分辨率, 超高清, 照片级画质, 大师级作品
超精细细节, 极致细节, 丰富的纹理, 清晰的边缘
电影级光影, 专业摄影, HDR, 高动态范围

光线效果:

柔和自然光, 午后阳光, 金色时刻, 逆光, 侧光
柔和漫射, 体积光, 光线追踪, 全局光照
霓虹灯, 赛博朋克光效, 舞台灯光

视角/构图:

正面特写, 半身照, 全身照, 超广角, 鱼眼镜头
俯视视角, 仰视视角, 45度角, 黄金分割构图
浅景深, 背景虚化, 焦外成像散景 (bokeh)

中文 vs 英文

模型系列 推荐语言
Seedream / 豆包系列 中文
Flux 系列 英文效果更好
DALL-E 3 都可以

常见问题 FAQ

Q: 为什么生成的图片和我想的不一样?

这是正常的。可以试试: 1. 把 Prompt 写得更详细,参考上面的编写技巧 2. 换个模型试试,不同模型擅长的风格不同 3. 多生成几次,AI 生成有随机性

Q: 生成的图片 URL 有效期多久?

通常图片 URL 有一定有效期。重要图片请立即下载到本地保存!

Q: 为什么图片里有奇怪的文字?

大多数图像模型的文字生成能力有限。如果需要图片里有清晰的文字,可以尝试不同的模型或后期处理。

Q: 可以用自己的图片作为参考吗?

部分模型支持图生图(Image-to-Image)功能。请参考具体模型的文档说明。

Q: AI 生成的图片有版权问题吗?

一般来说,用户拥有生成图片的使用权,但不同供应商的条款可能不同。商业使用前请仔细阅读服务商的条款。


完整示例代码

这是一个完整的、可以直接运行的图像生成程序:

"""
AI 图像生成演示程序
用法: python generate_image.py
"""

from openai import OpenAI
from pathlib import Path
import requests
from datetime import datetime

client = OpenAI(base_url="https://apinexus.net/v1")

# 创建输出目录
output_dir = Path("generated_images")
output_dir.mkdir(exist_ok=True)


def download_image(url, save_path):
    """下载图片到本地"""
    try:
        response = requests.get(url, timeout=30)
        response.raise_for_status()

        with open(save_path, "wb") as f:
            f.write(response.content)

        print(f"已保存: {save_path}")
        return True
    except Exception as e:
        print(f"下载失败: {e}")
        return False


def generate_with_dalle_format(prompt, model="doubao-seedream-4-0-250828"):
    """用 DALL-E 格式生成图片"""
    print(f"正在生成图片... (模型: {model})")
    print(f"Prompt: {prompt[:50]}...")

    response = client.images.generate(
        model=model,
        prompt=prompt,
        size="1024x1024",
        n=1
    )

    url = response.data[0].url
    print(f"生成成功!")
    print(f"图片链接: {url}")

    # 自动下载
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    save_path = output_dir / f"image_{timestamp}.png"
    download_image(url, save_path)

    return url


def main():
    print("=" * 60)
    print("API Nexus 图像生成演示")
    print("=" * 60)

    # 示例 Prompt 库
    sample_prompts = [
        "一只可爱的布偶猫,蓝色眼睛,坐在窗台上,午后阳光,柔和光斑,浅景深,8K 高清,照片级画质",
        "赛博朋克风格的未来城市夜景,霓虹灯,雨天,玻璃幕墙反射,电影质感,8K",
        "中国风水墨画,远山如黛,云雾缭绕,一叶扁舟,意境悠远,留白",
        "美味的巧克力蛋糕,精致的摆盘,特写镜头,美食摄影,柔和光线,让人垂涎欲滴",
    ]

    print("\n选择示例 Prompt:")
    for i, p in enumerate(sample_prompts, 1):
        print(f"  {i}. {p[:40]}...")

    print("\n或者直接输入你想画的内容!")
    user_input = input("\n请输入 (数字 或 自定义描述): ").strip()

    # 确定 Prompt
    if user_input.isdigit() and 1 <= int(user_input) <= len(sample_prompts):
        prompt = sample_prompts[int(user_input) - 1]
    else:
        prompt = user_input

    # 生成图片
    generate_with_dalle_format(prompt)

    print("\n" + "=" * 60)
    print("完成!去 generated_images 文件夹查看你的作品吧!")


if __name__ == "__main__":
    main()

下一步


最后更新: 2026-06-16