首页 > 编程语言 >使用 Python 操作 Stable Diffusion 进行 AI 绘图

使用 Python 操作 Stable Diffusion 进行 AI 绘图

时间:2024-08-12 11:05:55浏览次数:12  
标签:Diffusion Python Stable 生成 AI 图像 下载 图片

在几年前,AI 领域对于普通人来说,还是无法触及的高岭之花。但随着 chatGPT 的爆火,AI 变得越来越大众化,大量的工具让你可以在不具备任何前置知识的情况下使用 AI,其中最火热的便是 AI 绘图了。相信很多人都知道 Midjourney 这个网站,只要输入相关的文字,便可通过网站背后的 AI 产出相对应的图片。但如果你想使用该网站的绘图功能,是需要付费的,而且价格还不便宜。所以本次我们就来介绍另一个 AI 绘图工具,Stable Diffusion。

Stable Diffusion 提供的模型数量要远远高于 Midjourney,并且支持本地部署,我们可以安装相关的库,然后通过 Python 进行绘图,具体过程参考该网址。除此之外,还可以下载它的 UI 版本,直接通过网页进行操作,而不需要我们手动写 Python 代码。那么下面我们就来看看如何通过 Stable Diffusion 提供的 webUI 进行绘图。

首先打开 https://github.com/AUTOMATIC1111/stable-diffusion-webui 将项目下载下来,下载之后的项目目录如下:

接下来我们需要下载模型,打开网址 https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

我们点击将其下载下来即可,注意:模型比较大,有 4 个 G,需要保证网络畅通。下载好之后,将其移动到项目的 models/Stable-diffusion 子目录中。然后在当前项目所在目录中打开命令行,输入 ./webui-user.bat,如果是 Mac 和 Linux 则输入 ./webui-user.bat。然后程序就会自动创建一个 Python 的虚拟环境并安装相关的依赖包,然后启动,启动成功会看到一个可访问的 URL 地址 http://127.0.0.1:7860

图片生成好之后如何保存呢?很简单,点击图片下方第一个按钮(带有一个文件夹图标),即可自动将图片下载下来,并保存在项目的 outputs 目录中。

或者你也可以点击第二个按钮(Save),然后点击 Download 让 Chrome 下载下来。第三个按钮(Zip)和第二个按钮的作用相同,只不过会自动将图片打成一个 zip 包再下载。

如果点击第四个按钮,则是以生成好的图片作为参数(通过 img2img),继续生成图片。

参数设置

然后再来看看相关参数的设置,合理的参数对于模型来说是至关重要的。

  • Sampling method:生成图像的采样方法,默认情况下该参数为 Eulea,但你也可以设置为其它的,比如 DPM++ 系列,这个会比默认生成的图片的细节内容更加丰富。
  • Sampling steps:该参数允许你指定图像生成的迭代次数,较多的迭代次数会对应更好的图像质量,但也需要更长的时间来完成生成。不过经过测试,对于 GTX 4080 来说,即使设置为上限 150 步,也没有任何压力。
  • Width、Height:生成图像的宽度和高度,宽度、高度越大,需要的显存计算资源就越多,默认是 512 * 512。如果觉得生成的图片像素不够,那么可以点击图片下方的最后一个按钮(Send to extras),然后进行 Resize,会通过专门的算法对图片进行放大。
  • Batch count:生成批次,生成图像的最大迭代次数,增加这个值会多次生成图片。
  • Batch size:每一批的数量,表示每一批次生成多少张图片,默认是 1 张,我们也可以每次生成多张,最大是 8 张。因此生成的图片总数为:Batch size * Batch count。
  • CFG Scale:图像与提示符的一致程度,增加这个值会让图像更接近你的提示,但过高也会让图像色彩过于饱和。数值越小,AI 绘图发挥的自我空间越大,越可能产生有创意的结果,默认为 7。
  • Seed:随机种子,用于初始化图像生成过程。相同的种子值每次都会产生相同的图像集,这对于再现性和一致性很有用。如果将种子值设置为 -1,则每次都会生成一个新的种子。默认为 -1,所以即便是相同的文本(图像),每次生成的图像也是不一样的。
  • Restore faces:优化面部图像时可勾选,如果头像是近角时勾选的话,容易过度拟合出现虚化,适合在远角时勾选该选项。
模型选择

模型也分为很多种,比如写实的、二次元动漫风格的、国风的等等,我们可以去 https://civitai.com/ 里面下载自己感兴趣的模型。

喜欢哪一种,直接点进去下载即可,下载完之后移动到 models/Stable-diffusion 子目录中,然后重启 webUI 即可使用,这些模型 Stable Diffusion 都是支持的。

重启之后,下载的模型便可以选择了,我们来看一下效果。

上面是 3D 国风的,再来看看一个动漫风格的。

还是蛮有趣的,当然你也可以试试更多其它模型。

标签:Diffusion,Python,Stable,生成,AI,图像,下载,图片
From: https://www.cnblogs.com/wan-ming-zhu/p/18354536

相关文章

  • 记录JSch连接SFTP Exception:Algorithm negotiation fail问题解决
    问题描述:关于正式环境访问外网连接不成功 1、首先检查是否开放防火墙(已确认开放),策略开放后,通过命令连接是否畅通: 通过telnet命令,可以得出,访问畅通。telnet192.168.1.122 2、查看生产环境日志,观察生产环境访问外网服务器异常:抛出异常,提示:算法协商失败com.jcraft.j......
  • 简单的python web项目的docker-compose.yml 示例
    一个简单的pythonweb项目,包含redis,mysql,nginx,定时业务调度等其中web启动注册了自定义命令flaskcreate-db&&flaskinit-db&&uwsgi/web/uwsgi.iniversion:'3.5'services:db:image:mysqlcontainer_name:yeping_mysqlcommand:--default-......
  • Epson C4校准和Python通讯流程
    第一章简介1.1机器人型号EsonC41.2.目的使用EponC4机械臂,通过python进行指令控制,在通讯之前,进行了原点和工具坐标系的校准1.3.流程C4机械臂的机械原点校准C4机械臂的工具坐标系校准C4机械臂的通讯第二章机械原点校准2.1.原点校准-硬件操作2.1.1.原点校准......
  • python实现文字识别
    在Python中实现文字识别(OCR,OpticalCharacterRecognition)的一种流行方式是使用开源库如Tesseract。Tesseract是一个由HP实验室开发、后来由Google优化的OCR引擎,支持多种操作系统,并且能够识别多种语言的文本。步骤1:安装Tesseract首先,你需要在你的系统上安装Tesseract。......
  • CSP真题答案《202309-01、02》基于Python的实现
    注意:注释在测试CSP时应全部删除!!!第一题:#键盘输入两个数以空格隔开,分别为n,mn,m=map(int,input().split())#根据n值可以循环输入n行值,得到一个列表(操作数)madenum=[list(map(int,input().split()))for_inrange(n)]#根据m值可以循环输入m行值,得到一个列表(初始......
  • OpenAI API: How do I handle errors in Python?
    题意:在使用OpenAIAPI进行Python开发时,怎样处理错误?问题背景:Itriedusingthebelowcode,buttheOpenAIAPIdoesn'thavethe AuthenticationError methodinthelibrary.HowcanIeffectivelyhandlesucherror.我尝试使用下面的代码,但是OpenAIAPI的库中并没......
  • AttributeError: module ‘openai’ has no attribute ‘error’
    题意:访问Python中 openai 模块的一个不存在的属性 error问题背景:I'mrunningaPythonsummarizerinAzureMLthatqueriesmygpt4deploymentforinformation.Everythingwasworkingfineuntiltwodaysago,whenIdecidedtoswitchtheoutputdirectory......
  • 基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物
    植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于生态工程保护建设和植被自然生长等因素,中国陆地生态系统发挥了重......
  • 【python学习】巧用notedown:Markdown与Jupyter Notebook的高效互转指南
    在数据科学、教学、技术写作等领域,Markdown文件和JupyterNotebook都是非常重要的工具。notedown是一个轻量级的Python库,能够方便地将Markdown文件转换为JupyterNotebook,或将JupyterNotebook转换为Markdown文件。这篇博客将介绍notedown的基本用法、常见命......
  • Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)
    需求目标网站:https://movie.douban.com/top250需求:爬取电影中文名、英文名、电影详情页链接、导演、主演、上映年份、国籍、类型、评分、评分人数,并保存到csv文件当中目标url:https://movie.douban.com/top250所需第三方库requestslxml安装requests安装命令......