【文生图系列】 Stable Diffusion v1复现教程

这篇具有很好参考价值的文章主要介绍了【文生图系列】 Stable Diffusion v1复现教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Stable Diffusion v1

stable diffusion是一个潜在的文本到图像的扩散模型,能够在给定任何文本输入的情况下生成照片逼真的图像。

环境配置

https://github.com/CompVis/stable-diffusion.git ( Stable Diffusion v1)
conda env create -f environment.yaml 使用conda创建一个名字为ldm的虚拟环境
conda activate ldm

权重下载

在README.md中,点击权重下载链接时,出现的huggingface页面,有Dataset card、Files and versions和Community,但是找不到ckpt文件。这个时候需要在红色的框中输出"stable-diffusion-v1",转到runwayml/stable-diffusion-v1-5界面。
【文生图系列】 Stable Diffusion v1复现教程

v1-5用v1-2的权重进行初始化,随后在"laion-aesthetics v2 5+"上以分辨率 512 × 512 512 \times 512 512×512微调了595k步,将文本条件降低了10%,以提高classifier-free guidance sampling。v1-5提供了两个ckpt,v1-5-pruned-emaonly.ckpt,4.27G,使用较少的VRAM,适用于推理。v1-5-pruned.ckpt较重,7.7G,使用更多的VRAM,适合微调。

v1-5-pruned-emaonly.ckpt下载链接: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
v1-5-pruned.ckpt下载链接:https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt

【文生图系列】 Stable Diffusion v1复现教程

txt2img

mkdir -p models/ldm/stable-diffusion-v1/
将下载好的v1-5-pruned-emaonly.ckpt模型放到models/ldm/stable-diffusion-v1/文件夹下,并更名为model.ckpt,不然会报找不到model的错误,软链接不行。也可以定义txt2img的ckpt超参数,设定模型的位置。
python scripts/txt2img.py --prompt “a photograph of an astronaut riding a horse” --plms

【文生图系列】 Stable Diffusion v1复现教程

bug

【文生图系列】 Stable Diffusion v1复现教程

运行txt2img.py时,报上述ImportError错误,受issues_627启发,可能diffusers和transformers的版本太高了,所以降低diffusers和transformers的版本。在environment.yaml中更改diffusers和transformers的版本号,更新conda env update -f environment.yaml,bug消除,正常运行。

diffusers: 0.16.1 —> 0.15.0
transformers: 4.19.2 —>4.28.1

python scripts/txt2img.py --prompt “a photograph of an astronaut riding a horse” --plms
依据提示词"a photograph of an astronaut riding a horse",生成如下六张图片。六张图片中有两张图片宇航员没有骑马,其他四张图片,完成度还不错。
【文生图系列】 Stable Diffusion v1复现教程

超参数

txt2img的超参数解释如下所示。在推理时,可以通过设定相应的参数得到符合要求的图片。

参数 用途
prompt 提示词
outdir 结果保存文件夹,默认是outputs/txt2img-samples
skip_grid 不保存网格,只保存单个样本。在评估大量样本时很有用
skip_save 不保存单个样本,用于速度测量
ddim_steps ddim 采样步骤数
plms 使用plms采样
laion400m 使用LAION400M模型
fixed_code 如果启用,样本见使用相同的起始代码
ddim_eta ddim eta,默认为0.0,eta=0.0对应于确定性采样
H 像素空间上的图像高度,默认是512
W 像素空间上的图像宽度,默认是512
C 隐藏通道数,默认是4
f 下采样因子,默认是8
n_samples 每个给定提示输出的样本数量,又称批次,默认是3
n_rows 网格中的行,默认是n_samples
scale 无条件制导标度,默认是7.5,eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))
from-file 从文件中导入提示词
config 模型的config文件,默认是"configs/stable-diffusion/v1-inference.yaml"
ckpt 模型checkpoint的位置,默认是"models/ldm/stable-diffusion-v1/model.ckpt"
seed 用于重复取样的种子,默认是42
precision 以精度进行评估,有"full"和"autocast"两种选择,默认是"autocast"

当以下面命令行python scripts/txt2img.py --prompt "A classical Chinese Tang Dynasty beauty is drinking tea" --plms --skip_grid运行时,并没有生成上面和宇航员一样的网格图,有四张图片并保存下来。下面是其中生成的最好的照片。典型的唐朝仕女,有茶,但是在喝茶的动作并没有表现出来。
【文生图系列】 Stable Diffusion v1复现教程

Diffusers

from diffusers import StableDiffusionPipeline
import torch

model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")

prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]  
    
image.save("astronaut_rides_horse.png")

下述是上述代码的运行结果展示。
【文生图系列】 Stable Diffusion v1复现教程
【文生图系列】 Stable Diffusion v1复现教程

生成结果如下,只生成一个宇航员在火星上,提示词中的horse并没有出现。

【文生图系列】 Stable Diffusion v1复现教程文章来源地址https://www.toymoban.com/news/detail-486082.html

参考

  1. CompVis/stable-diffusion
  2. runwayml/stable-diffusion-v1-5

到了这里,关于【文生图系列】 Stable Diffusion v1复现教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stable Diffusion教程(5) - 文生图教程

    配套视频教程: https://v.douyin.com/UyHNfYG/  文生图界面标注如下 提示词内输入的东西就是你想要画的东西,反向提示词内输入的就是你不想要画的东西 提示框内只能输入英文,所有符号都要使用英文半角,词语之间使用半角逗号隔开 1.1 一般原则 一般来说越靠前的词汇权重就

    2024年02月08日
    浏览(33)
  • 【文生图系列】Stable Diffusion Webui安装部署过程中bug汇总(Linux系统)

    看网上部署stable diffusion webui的教程,很简单。而且我也有部署stable diffusion v1/v2的经验,想着应该会很快部署完stable diffusion webui,但是没想到在部署过程中,遇到各种各样的奇葩问题,特此在此记录一下。 虚拟环境python stable diffusion webui支持的python版本需大于等于3.10.6,首先

    2024年02月15日
    浏览(34)
  • 文生图模型之Stable Diffusion

    参考文章地址 利用文本生成图片,进一步衍生到inpainting功能 autoencoder CLIP text encoder tokenizer最大长度为77(CLIP训练时所采用的设置),当输入text的tokens数量超过77后,将进行截断,如果不足则进行paddings,这样将保证无论输入任何长度的文本(甚至是空文本)都得到77x768大小

    2024年02月11日
    浏览(30)
  • Stable Diffusion 文生图技术原理

    图片生成领域来说,有四大主流生成模型:生成对抗模型(GAN)、变分自动编码器(VAE)、流模型(Flow based Model)、扩散模型(Diffusion Model)。 从2022年开始,主要爆火的图片生成模型是Diffusion Model(扩散模型)为主。 Diffusion Model:扩散模型,当前DALL-E, Midjourney, Stable Diffu

    2024年02月11日
    浏览(58)
  • stable diffusion实践操作-文生图

    本文专门开一节写 文生图 相关的内容,在看之前,可以同步关注: stable diffusion实践操作 详细信息: 底模:SD 1.5 Lora:baihuaniang_1.0 正向提示词: 反向提示词: CLP终止层数:2 迭代步数:25 采样模式(Sampler):DPM++ 2M Karras 提示词引导数(CFG Scales):11 随机数种子(seed):2514

    2024年02月10日
    浏览(38)
  • AIGC:文生图模型Stable Diffusion

    Stable Diffusion 是由CompVis、Stability AI和LAION共同开发的一个文本转图像模型,它通过LAION-5B子集大量的 512x512 图文模型进行训练,我们只要简单的输入一段文本,Stable Diffusion 就可以迅速将其转换为图像,同样我们也可以置入图片或视频,配合文本对其进行处理。 Stable Diffusion的

    2024年02月15日
    浏览(31)
  • Stable diffusion UI 介绍-文生图

    1.提示词: 你希望图中有什么东西 2.负面提示词:你不希望图中有什么东西 选用了什么模型 使用参数 1.采样器 sampling method 使用什么算法进行采样 2.采样迭代步数 sampling steps 生成图像迭代的步数,越多越好,但是生成速度越大越慢 3. 宽度和长度 生成图片的大小 按照模型的

    2024年02月22日
    浏览(35)
  • Stable Diffusion 系列教程 | 打破模型壁垒

    目录 1.模型基本分类 1.1 CheckPoint 大模型/底模型/主模型 1.2 VAE美化模型/变分自编码器 1.3 HyperNetwork 超网络 1.4 embeddings(/Textual Inversion) 嵌入式向量 1.5 loRa 低秩适应模型 2. 下载途径和渠道 2.1 C站 2.1.1 如何筛选到自己需要的模型 2.1.2 使用技巧 2.1.3 学习他人作品 2.2 HuggingFace 想

    2024年02月11日
    浏览(37)
  • Stable Diffusion 系列教程 | 图生图基础

    前段时间有一个风靡全网的真人转漫画风格,受到了大家的喜欢 而在SD里,就可以通过图生图来实现类似的效果 当然图生图还有更好玩的应用,我们一点一点来探索 首先我们来简单进行一下图生图的这一个实践---真人转动漫 和文生图基本界面差不多,多了一个上传图像区

    2024年02月11日
    浏览(34)
  • 文生图——stable diffusion生成有趣的动漫图像

    Stable Diffusion是一个文本转图像的模型,由CompVis、Stability AI和LAION共同开发。它能够从一段简单的文本输入中快速生成相应的图像。此外,它还可以导入图像并配合文本对其进行处理。从技术角度来看,Stable Diffusion可以理解为从一张完全的高斯噪音图像开始,根据用户输入的

    2024年04月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包