透过prompt提示词来生成图片,一直是生成式AI中最受欢迎的应用,而Stable Diffusion算法应该这方面开源项目中的翘楚。事实上这个SDW项目也是我们前一篇文字TGW的基石,目前在Github上已经获得将近14万个星以及超过2.6万个folks,受欢迎程度远远超过TGW项目。
本文主题的SDW则是Stable-Diffusion-Webui的缩写,这个开源项目为SD算法整合一个web界面,在https://github.com/AUTOMATIC1111/stable-diffusion-webui中发布,让我们可以在本地部署Stable Diffusion这项非常有趣的文生图应用,只需要再搭配合适的模型即可。
在技术方面,SDW项目是集成多项先进算法于一身,主要包括(不限于)以下几种:
CompVis的stable-diffusion项目;
CompVis的taming-transformers项目;
sczhou的CodeFormer项目;
salesforce的BLIP项目;
crowsonkb的k-diffusion项目;
TencentARC的GFPGAN项目;
其他
安装过程需要从Github上复刻上述几个项目到本地存储上,以备后续启动时进行调用。但是这些项目原本就处在高变动频率阶段,任何一个项目的修改都会影响SDW的安装舒畅度,难度是相当高的。
其次,这个项目是基于PyTorch框架进行计算与调用,对于Python版本以及依赖库的版本都相当敏感,而在不同版本操作系统上,都需要有些细微处的调试,如果还混着使用venv或conda这类的虚拟环境的话,对计算机技能就有更大的挑战。
原始的SDW项目并没有提供Docker版本,只是对不同操作系统提供针对性的安装脚本,在脚本中为我们去检测不同环境所需要的不同配置,作者是煞费苦心地为我们提供贴心的设计,但是技术处于高速迭代的当下,这些脚本往往不能一路到底顺利地安装好Stable Diffusion Webui环境。
如今,在Jetson-containers开发环境中,我们已经有预处理好的Docker镜像文件,只要简单执行以下指令,就能轻松启动SDW操作环境:
$ jetson-containers run $(autotag stable-diffusion-webui)
然后在浏览器中输入“0.0.0.0:7860”后,就能看到以下操作画面:
这样是不是非常简单?我们所需要耗费的时间,就是单纯的下载镜像文件的时间,如果带宽好一些大概也就10分钟就差不多了。
不过目前的状态还不能真正执行,因为我们还没有可以执行文生图功能的模型,不过执行的代码中已经嵌入了下载 。现在我们只要在Web界面左上角点击“刷新”按钮,就可以在命令终端里看到开始下载指定的模型到指定路径的工作,如下图:
存放路径为荣器内的/data/models/stable-diffusion/models/Stable-diffusion/,对应外部jetson-containers/data/models/stable-diffusion/models/stable-diffusion,请自行到目录下去看看,是否有个大小为4.3GB的v1-5-pruned-emaonly.safetensors模型文件?如果有的话,我们就可以在Jetson Orin Nano上开始进行有趣的”AI文生图”应用了。
现在就可以在Jetson上开始使用Stable-Diffusion-Webui为我们生成想要的图片,下图是我们输入提示词“color follower rowing out of ground, mud, dirt, grass, high quality, photorealistic sharp focus,depth of field”的执行结果,让它一次为我们生成6张图片让我们挑选,这是根据参数Batch Count*Batch Size计算出来的。
剩下的工作,就需要读者自行根据SDW项目所提供的使用手册去进行体验与测试,地址在https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki,里面的Usage与Developers两部分,与大家的操作有比计较直接的关系,从这里开始进入应用会比较适合。
至于操作界面部分,可以根据Usage -> User-Interface-Customizations里面的内容,调整Web操作界面的元素部署、颜色、预设值等等。