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

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

基础环境承接Stable Diffusion v1, 详情请见我的博文【文生图系列】 Stable Diffusion v1复现教程。然后更新pytorch和torchvision的版本,因为要使用GPU和xformers,需要下载gpu版本的pytorch。再下载open-clip-torch库文件,安装命令如下所示:

conda install pytorch == 1.12.1 torchvision == 0.13.1 torchaudio0.12.1 cudatoolkit=11.3 -c pytorch
pip install open-clip-torch
2.7.0
pip install -e .

在pytorch官网上寻找下载命令,pytorch为1.12.1时,有cuda 10.2, 11.3 和11.6的版本,我选择了cuda为11.3版本,那么对应的cudatoolkit=11.3,pytorch安装命令如上所示。

xformers

xformers能够有效地利用GPU,未安装xformers,我的GPU内存为15多G,会出现CUDA out of memory的错误,利用xformer,运行scripts/txt2img.py时,GPU内存占用最高为13多G。

官方文档中是cuda-11.4,由于我的pytorch的cuda是11.3,按照官方教程安装xformers,会出现xFormers wasn’t build with CUDA support cuda错误。所以将cuda的版本更改为11.3。

export CUDA_HOME=/usr/local/cuda-11.3
conda install -c nvidia/label/cuda-11.3.0 cuda-nvcc
conda install -c conda-forge gcc
conda install -c conda-forge gxx_linux-64==9.5.0

下载并安装xformers,在pip install -e .时,会耗费较长时间。

cd …
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
cd …/stablediffusion

bug 记录

  1. Torch not compiled with CUDA,需要下载带有cuda版本的pytorch
  2. xFormers wasn’t build with CUDA support cuda版本不匹配,就如上述所述,将cuda版本由11.4更改为11.3,然后重新安装xformers

txt2img

下载stable-diffusion-2-1 模型,下载链接如下所示。stable-diffusion-2-1 是在stable-diffusion-2模型上微调得到的。数据未变,设置punsafe=0.1额外训练了55k步,然后调整punsafe=0.98后再额外训练155k步。

v2-1_768-ema-pruned.ckpt下载: https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.ckpt

sd v2版本和sd v1版本的超参数几乎一样,这里不再赘述,具体见【文生图系列】 Stable Diffusion v1复现教程。sd v2相比于v1支持更高分辨,能生成更高清的图片。

python scripts/txt2img.py --prompt “a professional photograph of an astronaut riding a horse” --ckpt v2-1_768-ema-pruned.ckpt --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768 --device cuda

宇航员骑马的生成图片如下所示,相比于v1,生成的图片更全面,也更有质感。马生成的不错,不够露脸的宇航员有些恐怖。

【文生图系列】 Stable Diffusion v2复现教程ps: 原图近乎9M,CSDN最高上传5M的图片,将图片进行了压缩到了3M。

租赁的服务器,明天就要到期了。配置完环境之后,趁着最后的时间极速测试一下。下图是生成的一张白发帅哥,超级帅气,很像贝克汉姆。

python scripts/txt2img.py --prompt “a best-quality photo of an extremely handsome young man with white hair who is muscle” --ckpt v2-1_768-ema-pruned.ckpt --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768 --device cuda

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

python scripts/txt2img.py --prompt “a best-quality photo of a classical Chinese Tang Dynasty beauty who is drinking tea” --ckpt v2-1_768-ema-pruned.ckpt --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768 --device cuda

和sd v1相比,相同的提示词,“唐朝美女喝茶的提示词”,sd v2能把品茗这个动作画出来,但是服饰不怎么像唐朝。

【文生图系列】 Stable Diffusion v2复现教程
原图近乎9M,CSDN最高上传5M的图片,将图片进行了压缩到了3M。

diffusers

使用diffusers库能够更简单更有效率地运行sd 2。

Cannot initialize model with low cpu memory usage because accelerate was not found in the environment. Defaulting to low_cpu_mem_usage=False. It is strongly recommended to install accelerate for faster and less memory-intense model loading. You can do so with:

pip install accelerate safetensors

import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler

model_id = "stabilityai/stable-diffusion-2-1"

# Use the DPMSolverMultistepScheduler (DPM-Solver++) scheduler here instead
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.enable_attention_slicing()#如果出现CUDA out of memory.加这行代码
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
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")

"a photo of an astronaut riding a horse on mars"在火星上骑马的生成图片如下所示,宇航员、马和火星三个要素都具备,而且riding这个动词也能够很好地表现出来。同样的prompt,sd v2相比于sd V1版本的生成图像更全面。

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

参考

  1. Stability-AI/stablediffusion
  2. stabilityai/stable-diffusion-2-1

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

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

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

相关文章

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

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

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

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

    2024年02月11日
    浏览(61)
  • Stable Diffusion 系列教程 - 1 基础准备(针对新手)

    使用SD有两种方式: 本地: 显卡要求: 硬件环境推荐NVIDIA的具有8G显存的独立显卡,这个显存勉勉强强能摸到门槛。再往下的4G可能面临各种炸显存、炼丹失败、无法生成图片等各种问题。对于8G显存,1.0模型就不行,需要更高的环境配置,所以8G仅仅是个基础。最好还是16

    2024年02月03日
    浏览(48)
  • Stable Diffusion(SD)核心基础知识——(文生图、图生图)

    Stable Diffusion是计算机视觉领域的一个生成式大模型,可以用于文生图,图生图,图像inpainting,ControlNet控制生成,图像超分等丰富的任务。 文生图(txt2img) 文生图任务是指将一段文本输入到SD模型中,经过一定的迭代次数,SD模型输出一张符合输入文本描述的图片。 步骤一

    2024年01月22日
    浏览(51)
  • 【文生图系列】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日
    浏览(44)
  • 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日
    浏览(46)
  • Stable Diffusion 文生图技术原理

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

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

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

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

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

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

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

    2024年02月15日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包