当前位置: 首页 > news >正文

stable-diffusion安装和简单测试

参考:
https://github.com/CompVis/stable-diffusion
理解DALL·E 2, Stable Diffusion和 Midjourney的工作原理
Latent Diffusion Models论文解读
【生成式AI】淺談圖像生成模型 Diffusion Model 原理
【生成式AI】Stable Diffusion、DALL-E、Imagen 背後共同的套路

介绍

Stable Diffuson是潜在扩散模型(LDM)的文本转图像模型通过在一个潜在表示空间中迭代“去噪”数据来生成图像,然后将表示结果解码为完整的图像,让文图生成能够在消费级GPU上,在10秒级别时间生成图片,大大降低了落地门槛。扩散模型(Diffusion Models, DM)是基于Transformer的生成模型,它采样一段数据(例如图像)并随着时间的推移逐渐增加噪声,直到数据无法被识别。该模型尝试将图像回退到原始形式,在此过程中学习如何生成图片或其他数据。

DM存在的问题是强大的DM往往要消耗大量GPU资源,而且由于序列化评估(Sequential Evaluations),推理的成本相当高。为了使DM在有限的计算资源上进行训练而不影响其质量以及灵活性,Stable Diffusion将DM应用于强大的预训练自动编码器(Pre-trained Autoencoders)。

在这样的前提下训练扩散模型,使其有可能在降低复杂性和保留数据细节之间达到一个最佳平衡点,显著提高视觉真实程度。在模型结构中引入交叉注意力层(cross attention layer),使扩散模型成为一个强大而灵活的生成器,实现基于卷积的高分辨率图像生成。

同类:

DALL-E 2由OpenAI开发,它通过一段文本描述生成图像。其使用超过100亿个参数训练的GPT-3转化器模型,能够解释自然语言输入并生成相应的图像。DALL-E 2的工作是训练两个模型。第一个是Prior,接受文本标签并创建CLIP图像嵌入。第二个是Decoder,其接受CLIP图像嵌入并生成图像。使用

Midjourney也是一款由人工智能驱动的工具,其能够根据用户的提示生成图像。目前已经不能免费测试生成图像了。https://discord.com/channels/662267976984297473

安装

stable-diffusion-v1-5下载界面
模型地址:v1-5-pruned-emaonly.ckpt

部分包安装失败,是因为网络问题,可以多尝试几次。
由于包版本不同需要更改部分源码:

报错1:

cannot import name 'rank_zero_only' from 'pytorch_lightning.utilities.distributed'

参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/4111

解决:

from pytorch_lightning.utilities.rank_zero import rank_zero_only 

报错2:

ImportError: cannot import name 'SAFE_WEIGHTS_NAME' from 'transformers.utils' 

参考:https://github.com/CompVis/stable-diffusion/issues/627

pip install diffusers==0.12.1

示例代码:

python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --ckpt /data1/Projects/stable-diffusion/models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt

执行结果:
在这里插入图片描述

prompt方式可参考:入门)Stable Diffusion怎么写prompt?

有哪些好的Stable Diffusion的prompt可以参考

http://www.lryc.cn/news/56274.html

相关文章:

  • MATLAB算法实战应用案例精讲-【智能优化算法】 基于帕累托包络的选择算法II(PESA-II)(附MATLAB代码实现)
  • 【华为机试真题详解JAVA实现】—坐标移动
  • 【软考五】数据库(做题)
  • 【Java Web】012 -- SpringBootWeb综合案例(登录功能、登录校验、异常处理)
  • 跨界智能手表:比亚迪向左,小鹏向右
  • 【c++初阶】第九篇:vector(常用接口的使用 + 模拟实现)
  • Taro React组件使用(6) —— RuiSendCode 短信验证码【倒计时】
  • 把ChatGPT接入我的个人网站
  • 关于数字游民是未来年轻人工作趋势的一种思考
  • 2022年 合肥市经开区信息学竞赛区赛 初中组
  • 【工作小札】自定义classloader实现热加载jar
  • spring—AOP
  • 自己曾经的C++笔记【在c盘爆满的时候找到的回忆】
  • Nginx 实战-负载均衡
  • 本周大新闻|128GB版Quest 2再降价,Mojo Vision完成“新A轮”融资
  • 【论文阅读】如何给模型加入先验知识
  • arm系列交叉编译器各版本区别
  • 随笔记录工作日志
  • LinkedHashMap源码分析以及LRU的应用
  • 【每日一题Day166】LC1053交换一次的先前排列 | 贪心
  • Canal增量数据订阅和消费——原理详解
  • 为什么要使用线程池
  • 在云服务部署前后端以及上传数据库
  • Onedrive for Business迁移方案 | 分享一
  • pt01数据类型、语句选择
  • ChatGPT 存在很大的隐私问题
  • 图的迭代深度优先遍历
  • 华为OD机试-开放日活动-2022Q4 A卷-Py/Java/JS
  • 两亲性聚合物:Lauric acid PEG Maleimide,Mal-PEG-Lauric acid,月桂酸PEG马来酰亚胺,试剂知识分享
  • FB使用入口点函数例子