介绍
什么是 Stable Diffusion
CompVis/stable-diffusion 是一个开源项目,它实现了一种基于稳定扩散(Stable Diffusion)的生成对抗网络(GAN)训练方法。这个项目旨在提高 GAN 训练的稳定性和生成图像的质量。
该项目主要包括以下特点:
- 稳定扩散技术:通过引入噪声和扩散过程来平滑生成器和判别器之间的优化过程,从而提高训练稳定性。
- 高质量图像生成:利用稳定扩散技术,生成器能够产生更高质量、更真实的图像。
- 易于使用:项目提供了预训练模型和示例代码,方便用户快速上手和测试。
CompVis/stable-diffusion 可以应用于各种图像生成任务,如将文本描述转换为图像(Text2Img)、风格迁移、超分辨率等。这个项目对于研究人员和开发者来说是一个有价值的资源,可以帮助他们更好地理解和实践基于稳定扩散的 GAN 训练方法。
通俗一些说法是:
Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词(英语)指导下产生图生图的翻译。
该模型由互联网上数百万图像和文本描述对训练而来,通过理解文本描述与图像信息的内在关联,不断利用扩散过程进而得到满意的生成图片
根据维基百科的描述可以得知,Stable Diffusion主要用于 文本生成图像 的深度学习模型,也就是常说的txt2img的应用场景中:通过给定 文本提示词(text prompt),该模型会输出一张匹配提示词的图片。
例如输入文本提示词:“A cute cat”,Stable Diffusion会输出一张带有可爱猫咪的图片。
Github: CompVis/stable-diffusion: A latent text-to-image diffusion model (github.com)
Stable Diffusion是基于“潜在扩散模型”(latent diffusion model;LDM)的模型,官方项目其实并不适合新手直接使用,好在有一些基于 stable-diffusion 封装的 webui 开源项目,可以通过界面交互的方式来使用,极大的降低了使用门槛,以下是几个比较火的 webui 项目:
Stable-Diffusion-WebUI : AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
Sygil-WebUI:Sygil-Dev/sygil-webui: Stable Diffusion web UI
下面我们主要使用的是 Stable-Diffusion-WebUI进行讲解安装和使用
安装
依赖环境 Git 、Python 3.10.6
在 Github 地址( AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI)中下载项目到本地。
打开 stable-diffusion-webui/modules/launch.until.py 文件
1 | torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==2.0.1 torchvision==0.15.2") |
每个https://github.com/ (就在上一步的下面几行,每一个网址都要改)链接前面添加https://ghproxy.com/,替换为以下内容
1 | gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "https://ghproxy.com/https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip") |
命令行进入到 stable-diffusion-webui 项目中下载依赖
1 | pip install requirements.txt |
下载完成之后用命令行执行
1 | ./webui.sh |
等待启动完毕会提示
1 | Running on local URL: http://127.0.0.1:7860 |
访问 http://127.0.0.1:7860 网站即可
汉化
访问网页后找到 Extensions菜单,选中 Available标签,将 Hide extensions with tags 全部取消勾选,然后点击 Load From 重新加载扩展列表
在搜索框 Search 中搜索 zh_Hans 然后下载 zh_Hans Localization
下载后在 Installed 标签勾选 stable-diffusion-webui-localization-zh_Hans 插件,然后点击 Apply and restart UI 按钮。
然后到 Settings 菜单 -> User interface -> localization 中勾选 zh_CN , 点击 Apply Settings, 然后 restart UI 重启完就变成中文界面了。
如果有直接下载汉化包的用户,可以将文件放置\stable-diffusion-webui\extensions这个目录下,之后重新载入网址,按照 Settings设置步骤依次点击就可以变成中文版。
使用
在使用前我们需要下载不同的SD基础模型。
模型站:
以及基础模型
https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.ckpt
Checkpoint模型文件通常以 .safetensors 或者 .ckpt 结尾,在模型站中会有标签标记,下载后放置在
stable-diffusion-webui/module/stable-diffusion-webui/ 目录下
Lora模型文件通常以 .safetensors结尾,下载后放置在stable-diffusion-webui/module/lora/ 目录下
安装完之后就可以愉快使用了
参考
Installation on Apple Silicon · AUTOMATIC1111/stable-diffusion-webui Wiki


