Python 和人工智能的结合已经彻底改变了绘画和艺术创作领域,任何人都可以通过编写简单的 Python 代码,利用强大的 AI 模型生成令人惊叹的艺术作品。

这通常被称为 AI 绘画 或 文本到图像,你只需要用文字描述你想要的画面,AI 就能将其“画”出来。
下面我将为你详细解释如何用 Python 进行 AI 画画,从入门到实践。
核心概念:如何用 Python 实现 AI 绘画?
用 Python 实现 AI 绘画主要有两种主流方式:
- 使用第三方 API (最简单、最推荐):你不需要下载庞大的模型,也不需要强大的 GPU,你只需要像调用网络服务一样,向一个提供 AI 绘画服务的公司(如 OpenAI, Stability AI, Midjourney)发送你的文字描述和 API 密钥,它们的服务器会处理一切并返回生成的图片,这是最快、最容易上手的入门方式。
- 在本地运行开源模型 (更强大、更灵活):你可以下载开源的 AI 模型(如 Stable Diffusion),在你的电脑(最好有 NVIDIA 显卡)上运行,这种方式完全免费、私密,并且可以对模型进行微调,实现更精细的控制,但技术门槛和硬件要求更高。
对于初学者,我们强烈推荐第一种方式。

使用第三方 API (以 OpenAI 的 DALL-E 3 为例)
这是最流行、效果最好的 API 之一,我们将使用 openai 这个 Python 库来调用它。
第 1 步:准备工作
-
安装 OpenAI Python 库: 打开你的终端或命令行,运行:
pip install openai
-
获取 API 密钥:
- 访问 OpenAI 官网 并注册/登录。
- 进入 API 密钥页面,创建一个新的 Secret Key。
- 重要:请务必保管好你的 API 密钥,不要泄露给别人。
第 2 步:编写 Python 代码
创建一个 Python 文件(ai_drawing.py),然后输入以下代码:

import openai
import requests
from PIL import Image
from io import BytesIO
# 1. 设置你的 API 密钥
# 建议使用环境变量来存储,而不是直接写在代码里
# 这里为了演示,直接写在代码里,实际使用时请替换成你自己的密钥
# openai.api_key = "sk-你的API密钥"
openai.api_key = "sk-..." # <-- 在这里填入你的密钥
def generate_image(prompt):
"""
使用 OpenAI 的 DALL-E 3 模型生成图片
"""
try:
# 2. 调用 OpenAI API
response = client.images.generate(
model="dall-e-3", # 指定使用 DALL-E 3 模型
prompt=prompt, # 你输入的文字描述
n=1, # 生成图片的数量
size="1024x1024", # 图片尺寸 (1024x1024, 1792x1024, 1024x1792)
quality="standard" # 图片质量 (standard, hd)
)
# 3. 获取图片的 URL
image_url = response.data[0].url
# 4. 下载图片并保存到本地
print(f"图片已生成,正在下载: {image_url}")
img_response = requests.get(image_url)
# 5. 保存图片文件
image_filename = "ai_generated_image.png"
with open(image_filename, "wb") as f:
f.write(img_response.content)
print(f"图片已保存为: {image_filename}")
# 6. (可选) 使用 Pillow 库打开并显示图片
img = Image.open(BytesIO(img_response.content))
img.show()
except Exception as e:
print(f"生成图片时发生错误: {e}")
# --- 主程序 ---
if __name__ == "__main__":
# 在这里输入你想要的画面描述
# 描述得越详细,生成的效果通常越好
my_prompt = "一只穿着宇航服的猫,漂浮在木星巨大的红色风暴云上,背景是璀璨的星空,科幻风格,高清细节"
print(f"正在根据以下描述生成图片: '{my_prompt}'")
generate_image(my_prompt)
# 再来一个例子
# my_prompt_2 = "A beautiful oil painting of a serene lake at sunset, with mountains in the background, in the style of Claude Monet"
# generate_image(my_prompt_2)
第 3 步:运行和体验
- 将上面的代码保存为
ai_drawing.py。 - 确保你已经填入了正确的 API 密钥。
- 在终端中运行
python ai_drawing.py。 - 几十秒后,程序会下载生成的图片并自动在你的默认图片查看器中打开,一张名为
ai_generated_image.png的图片会保存在你的代码同目录下。
提示:prompt(提示词)是 AI 绘画的核心,你可以尝试加入艺术风格(如 in the style of Van Gogh)、构图(wide-angle shot)、光照(cinematic lighting)等细节来获得更满意的结果。
在本地运行开源模型 (以 Diffusers 库为例)
这种方式需要你电脑有 NVIDIA 显卡(显存至少 8GB 起步,12GB 或以上更佳),并且需要下载模型文件,会比较占磁盘空间。
第 1 步:安装依赖
你需要安装 diffusers, transformers, torch, accelerate 等库,PyTorch 的安装可能会比较慢,请耐心等待。
# 首先安装 PyTorch (请根据你的系统选择合适的命令,这是 CUDA 12.1 的版本) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 然后安装 Hugging Face 的库 pip install diffusers transformers accelerate
第 2 步:编写 Python 代码
import torch
from diffusers import StableDiffusionPipeline
from PIL import Image
# 1. 加载模型 (第一次运行时会下载模型,文件较大,请耐心等待)
# "runwayml/stable-diffusion-v1-5" 是一个经典的开源模型
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda") # 将模型加载到 GPU
# 2. 设置提示词
prompt = "a photograph of an astronaut riding a horse on mars, high quality, high detail"
# 3. 生成图片
# num_inference_steps 越高,细节越好,但越慢
# guidance_scale 越高,越会严格遵循你的提示词
image = pipe(prompt, num_inference_steps=50, guidance_scale=7.5).images[0]
# 4. 保存和显示图片
image.save("local_generated_image.png")
image.show()
print("本地模型生成完成!")
第 3 步:运行和体验
- 保存代码为
local_drawing.py。 - 运行
python local_drawing.py。 - 程序会自动从 Hugging Face Hub 下载 Stable Diffusion 模型(约 4-5GB),然后开始生成图片,生成速度取决于你的 GPU 性能。
更高级的玩法
一旦你掌握了基础,就可以探索更强大的功能:
- 图像到图像:你可以提供一张草图或照片,让 AI 在其基础上进行修改和扩展。
diffusers库也支持这个功能。 - Inpainting (图像修复):你可以选中图片的某个区域,用文字描述如何修改它,把一张照片里的人换成另一个人,或者移除不需要的物体。
- ControlNet:这是一个革命性的技术,可以让你通过深度图、姿态图、边缘图等方式,对生成图片的构图和结构进行极其精细的控制。
- Dreambooth / LoRA 微调:你可以上传自己或特定物体的多张照片,训练一个专属的模型,让 AI 学会画“你的专属风格”或“你的宠物”。
总结与推荐
| 特性 | API (如 OpenAI) | 本地模型 (如 Diffusers) |
|---|---|---|
| 易用性 | ⭐⭐⭐⭐⭐ (非常简单) | ⭐⭐ (需要配置环境和硬件) |
| 成本 | 按使用量付费 (调用一次收一次钱) | 主要是硬件成本 (电费) 和时间成本 |
| 隐私性 | 你的提示词会发送 |
标签: Python AI绘画创意生成教程 AI绘画Python实现创意代码 Python AI生成创意图像方法