Python AI 绘画
本文我们将为大家介绍如何基于一些开发 API 或开源的库来搭建一套自己的 AI 作图工具。
通过文生图 API
通过文生图 API,您可以基于文本描述创造出全新的原创图像。
阿里云百炼提供两大系列模型:
- 通义千问(Qwen-Image): 擅长渲染复杂的中英文文本,本章节以这个为例。
- 通义万相(Wan系列): 用于生成写实图像和摄影级视觉效果。
通过运行以下命令安装 DashScope Python SDK:
# 如果运行失败,您可以将pip替换成pip3再运行 pip install -U requests dashscope
我们需要开通阿里云百炼模型服务并获得 API-KEY。
我们可以先使用阿里云主账号访问百炼模型服务平台:https://bailian.console.aliyun.com/,然后点击右上角登录,登录成功后点击右上角的齿轮⚙️图标,选择 API key,然后复制 API key,如果没有也可以创建 API key:
开通阿里云百炼不会产生费用,仅模型调用(超出免费额度后)、模型部署、模型调优会产生相应计费。
现在要使用 API,都需要按 token 来计费,还好都不贵,我们可以先购买个最便宜的包:阿里云百炼大模型服务平台。
接下来我们通过设置提示词来生成图片:
实例
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
prompt = "一副典雅庄重的对联悬挂于厅堂之中,房间是个安静古典的中式布置,桌子上放着一些青花瓷,对联上左书"义本生知人机同道善思新",右书"通云赋智乾坤启数高志远", 横批"智启通义",字体飘逸,中间挂在一着一副中国风的画作,内容是岳阳楼。"
# 请用百炼API Key
api_key = "sk-xxx"
print('----同步调用,请等待任务执行----')
rsp = ImageSynthesis.call(api_key=api_key,
model="qwen-image",
prompt=prompt,
n=1,
size='1328*1328',
prompt_extend=True,
watermark=True)
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
# 在当前目录下保存图片
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('同步调用失败, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
输出结果类似如下,会看到有个 url 的参数,我们访问它就可以下载通过提示词描述的图片了:
----同步调用,请等待任务执行---- response: {"status_code": 200, "request_id": "1968746e-f434-4f77-9f8c-9b1adb80e8d7", "code": null, "message": "", "output": {"task_id": "d85c65d9-c4ff-4d66-a895-7c7746620b0c", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/7d/05/20250916/8d68e658/d85c65d9-c4ff-4d66-a895-7c7746620b0c-1.png?xxxxxxxxx", ...
以上实例生成的图片如下:
更多内容可以参考官方文档:https://help.aliyun.com/zh/model-studio/text-to-image
Stable Diffusion
需要使用的开源库为 Stable Diffusion web UI,它是基于 Gradio 库的 Stable Diffusion 浏览器界面
Stable Diffusion web UI GitHub 地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui
运行 Stable Diffusion 需要硬件要求比较高,运行时会消耗较大的资源,特别是显卡。
Windows 环境安装
本地环境要求安装 Python 3.10.6 或以上版本,并把它加入到本机的环境变量中。
下载 Stable Diffusion web UI GitHub 源码 https://github.com/AUTOMATIC1111/stable-diffusion-webui。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
如果没有安装 Git ,可以在右上角下载 zip 压缩包。
解压 stable-diffusion-webui,并进入 stable-diffusion-webui 目录。
接下来我们需要下载模型,下载地址:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
将下载的模型移动到 stable-diffusion-webui/models/Stable-diffusion 目录下。
进入 stable-diffusion-webui 目录:
Windows 使用非管理员运行:
webui-user.bat
Linux 和 Mac OS 环境执行以下命令:
./webui.sh
接下来程序就会自动安装并启动,启动成功会看到一个可访问的 URL 地址 http://127.0.0.1:7860:
访问 http://127.0.0.1:7860,界面如下:
注意: 如果安装出现卡住不动,很可能是下载 Github 源码出现问题了,可以使用 Github 的一些镜像来解决,目前还没非常稳定的镜像,建议 Google 搜索下。 我这边在 2023 年 4 月 6 号使用以下镜像地址 https://hub.fgit.ml,打开 stable-diffusion-webui 目录的 launch.py 文件,替换以下部分代码的 Github 地址(代码大概在 230~240 行之间):
Civitai 介绍
Civitai 有许多定制好的模型,而且可以免费下载,我们使用国风3模型来测试,下载地址:https://civitai.com/models/10415/3-guofeng3?modelVersionId=36644
下载完后,我们将模型移动到 stable-diffusion-webui/models/Stable-diffusion 目录下,重新启动 stable-diffusion-webui :
./webui.sh
这样我们就可以在模型列表中选择国风3模型了:
选择后,我们可以到模型介绍页面去拷贝一些提示词和测试参数:
为了快速生成,我高度跟宽度都减半了,之后点生成按钮即可:
生成完整过程,可以关注我们微信视频号查看: