【AIGC】手把手使用扩散模型从文本生成图像

news2024/11/16 16:21:05

手把手使用扩散模型从文本生成图像

  • 从 DALLE 到Stable Diffusion
  • 使用diffusers package从文本prompt生成图像
  • 参考资料

在这篇文章中,我们将手把手展示如何使用Hugging Face的diffusers包通过文本生成图像。

从 DALLE 到Stable Diffusion

DALLE2是收费的,用户只有一些免费的额度,如果免费额度使用完毕就需要付费了,所以必须寻找替代方案,并发现了Hugging Face,他们发布了一个扩散模型的包diffusers ,可以让我们直接使用。
AIGC

使用diffusers package从文本prompt生成图像

首先,使用diffusers包从文本生成图像,我们要有一个GPU,可以使用google的colab,但是常规的colab由于RAM有限制,可能会存在中断的情况,或者也可以购买Pro版本。这里我们使用自己的GPU服务器。

然后,要安装如下package:

  • diffusers==0.2.4 — 这是我们主要使用的包
  • transformers — 这个是Hugging Face的成名基础包
  • scipy — 科学计算的
  • ftfy — 处理一些文本编码问题
  • ipywidgets>=7,<8 — notebook的一个小组件的基础包
  • torch —这个就不用说了
  • pillow — 处理图片的

安装命令:

!pip install diffusers==0.2.4
!pip install transformers scipy ftfy
!pip install "ipywidgets>=7,<8"

导入依赖包:

import torch
from diffusers import StableDiffusionPipeline

下载StableDiffusionPipeline,并使用GPU加载:

model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"


pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)

此时报出一个Warning:
Warning
安装accelerate:pip install accelerate

然后,使用PyTorch的autocast运行推理:
Autocast
最后,查看结果:
image
结果非常不错。我们也可以调整一些参数,例如guide_scalestep和设置随机种子(用于确定性输出),来控制我们的模型输出,具体的更详细的使用方式请看:

参考资料

  1. CompVis/stable-diffusion-v1-4
  2. Stable Diffusion with 🧨 Diffusers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python数据分析第02课:环境准备

如果希望快速开始使用 Python 处理数据科学相关的工作&#xff0c;建议大家直接安装 Anaconda&#xff0c;然后使用 Anaconda 中集成的 Notebook 或 JupyterLab 工具来编写代码。因为对于新手来说&#xff0c;先安装官方的 Python 解释器&#xff0c;再逐个安装工作中会使用到的…

【JAVA】easyExcel导出导入使用

EasyExcel是阿里巴巴开源插件之一&#xff0c;主要解决了poi框架使用复杂&#xff0c;sax解析模式不容易操作&#xff0c;数据量大起来容易OOM&#xff0c;解决了POI并发造成的报错。主要解决方式&#xff1a;通过解压文件的方式加载&#xff0c;一行一行地加载&#xff0c;并且…

【剑指 offer】数组中出现次数超过一半的数字

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;算法训练营&#x1f447; 数 组 中 出 现 次 数 超 过 一 半 的 数 字 核心考点: 数组使用&#xff0c;简单算法的设计 描述&#xff1a; 给一个长度为 n 的数组&#xff0c;数组中有一个数字出现的次数超…

php:php-fpm平滑重启为什么无效

一、问题 今天修改了fpm一些配置&#xff0c;需要上线重启fpm&#xff0c;但是发现一瞬间出现很多502的错误请求&#xff0c;查看日志发现以下错误 fpm&#xff1a;重启日志 nginx&#xff1a;错误日志 2023/04/23 15:19:00 [error] 9#0: *1893053661 recv() failed (104: Co…

【服务器数据恢复】重装系统导致分区无法访问的数据恢复案例

服务器数据恢复环境&#xff1a; 磁盘柜raid卡15块磁盘组建一组raid5磁盘阵列&#xff0c;划分2个lun&#xff1b; 上层操作系统划分若干分区&#xff0c;通过LVM扩容方式将其中一个分区加入到了root_lv中&#xff0c;其他分区格式化为XFS文件系统。 服务器故障&#xff1a; 为…

S/MIME电子邮件证书,符合FDA邮件安全要求

美国食品和药物管理局 &#xff08;FDA&#xff09;要求合作伙伴提交或接收电子监管信息时&#xff0c;必须使用数字证书保障通信安全。 01 为什么FDA使用数字证书保障通信安全&#xff1f; 为了维护数据完整性、准确性,有组织地管理文件,FDA为接受机构的电子监管提交设置了电子…

基于开源 web3引擎的三维系统的开发

目录 结合图像特征的平滑恢复技术 1.开发步骤 &#xff12; 应用案例开发 结束语 应用 &#xff37;&#xff45;&#xff42;&#xff13;&#xff24; 引擎开发的计算机仿真系统或虚拟现实系统均需在 &#xff37;&#xff45;&#xff42; 浏览 器 上 运 行 &#xff0…

MII、 RMII、 GMII、 RGMII 接口介绍

1、RGMII 接口概要 以太网的通信离不开物理层 PHY 芯片的支持&#xff0c;以太网 MAC 和 PHY 之间有一个接口&#xff0c;常用的接口有MII、 RMII、 GMII、 RGMII 等。 MII&#xff08;Medium Independent Interface&#xff0c; 媒体独立接口&#xff09;&#xff1a; MII 支持…

技术招聘演化论:怎样从纸上答题升级到实战编程?

创新赛道的出现 一些企业或许已经对招聘管理系统&#xff08;Applicant Tracking System&#xff0c;简称 ATS&#xff09;有一定了解&#xff0c;ATS 可以帮助企业管理招聘流程&#xff0c;其中包括发布招聘信息、接收简历、筛选候选人和安排面试等。在中国&#xff0c;一些知…

seata1.6.0 单机,集群搭建 基于nacos注册中心 mysql数据库

seata1.6.0 单机&#xff0c;集群搭建 基于nacos注册中心 mysql数据库 大纲 1 单机搭建2 集群搭建 由于项目中的dubbo版本为2.6.0 故客户端程序&#xff08;TM RM&#xff09;使用seata-all 1.4.2 &#xff0c;服务端&#xff08;TC&#xff09;使用seata-server-1.6.0.zip …

SQL Server基础 第六章 聚合函数和分组查询

前言 在数据查询的很多场合&#xff0c;除了需要显示数据表的原始数据&#xff0c;还需要对这些数据进行分析、汇总以及求极值等&#xff0c; 如获取公司员工的人数、工资总额、最高工资、最低工资和平均工资等。本章我们将通过学习SQL Server 聚合函数轻松获取上述数据。另外&…

基于Java+SpringBoot+vue学生学习平台详细设计实现

基于JavaSpringBootvue学生学习平台详细设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目…

软件架构的演进(超详细)

文章目录 前言1、什么是单体架构2、分布式架构3、SOA架构4、微服务架构总结 前言 之前对各种架构一直有所了解&#xff0c;但也只是了解&#xff0c;没有过多的研究为什么架构在慢慢演进&#xff0c;新架构代替老架构的理由是什么&#xff0c;而刚好最近学习了一下架构的演进过…

人工智能会取代人工翻译吗?

当今社会正处于语言和技术高速发展的阶段&#xff0c;因此语言和技术的碰撞是不可避免的——甚至有些人说这种碰撞已经发生了&#xff0c;我们只是在等待尘埃落定。数字化、物联网、人工智能和机器学习&#xff0c;以及更进一步——智能手机、语音识别&#xff0c;以及互联网和…

27《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

​《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限&#xff0c;如果错误欢迎批评指正。 第六章&#xff1a;The principles of protein folding kinetics &#xff08;蛋白质折叠动力学的原理&#xff09; 整个二级结构通常作为一个单…

JS规范及常见问题

数字和字符串不能混合使用。 做加减法可能出错 "1"1 "11"做判断可能出错 "2"<"11"false几种for循环的使用: for(var i0;i<list.length;i): es5,需要拿到下标时、遍历非标准数组如FileList时for(var i in obj): es5,遍历对象时…

SpringBoot接口传递自定义参数,参数解析器

Hi I’m Shendi SpringBoot接口传递自定义参数&#xff0c;参数解析器 简介 我的需求&#xff1a;编写了一个日志微服务&#xff0c;使用方式是 创建日志对象 - 日志流程 - 完成日志对象&#xff0c;这样的方式使用时就需要在每个接口都去创建和完成一下&#xff0c;多出了一点…

查看 AndroidManifest.xml 文件内容,解决全是二进制代码问题

想查看打包后apk的AndroidManifest.xml文件内容&#xff0c;之前都是将后缀apk改为zip&#xff0c;直接解压查看&#xff0c;有时会遇到都是二进制代码&#xff0c;给出集中查看明文的方法&#xff1a; 方法一、通过android studio自带的Analyze apk 功能 通过 studio Build …

9.7 字符串的指针和指向字符串的指针变量

9.7 字符串的指针和指向字符串的指针变量 一.字符串表示形式二.字符串指针做函数参数1.数组名做函数参数2.数组指针做函数参数 三.字符指针变量与字符数组&#xff08;1&#xff09;字符数组是由若干个元素组成&#xff0c;每个元素中存放一个字符。&#xff08;2&#xff09;赋…

优化配置Little Snitch for Mac的规则和设置

Little Snitch for Mac是一款专业的macOS防火墙软件&#xff0c;它可以帮助你控制应用程序是否访问网络或者磁盘&#xff0c;并对系统不可信的进程和信息进行监控。如果你想保护你的Mac的网络安全&#xff0c;那么你需要了解如何配置和优化Little Snitch for Mac的规则和设置。…