Stable Diffusion 1 - 初始跑通 文字生成图片
文章目录
- 关于 Stable Diffusion
- Lexica
- 代码实现
- 安装依赖库
- 登陆 huggingface
- 查看 huggingface token
- 下载模型
- 计算生成
- 设置宽高
- 测试迭代次数
- 生成多列图片
关于 Stable Diffusion
A latent text-to-image diffusion model
Stable Diffusion 是一个文本到图像的潜在扩散模型,由CompVis、Stability AI和LAION的研究人员和工程师创建。
它使用来自LAION-5B数据库子集的512x512图像进行训练。使用这个模型,可以生成包括人脸在内的任何图像,因为有开源的预训练模型,所以我们也可以在自己的机器上运行它。
- github : https://github.com/CompVis/stable-diffusion
- stability.ai 公司主页:https://stability.ai
- 官方创作平台:http://dreamstudio.ai/ 付费/可试用
https://beta.dreamstudio.ai - hugginface : https://huggingface.co/CompVis/stable-diffusion
教程资源
- 数据派THU : Stable Diffusion的入门介绍和使用教程
https://mp.weixin.qq.com/s/Y3XsytE4_ewCc6yVp6G43A - 35张图,直观理解Stable Diffusion
https://mp.weixin.qq.com/s/9ngMKHLYKjMASUYeashDJw - 当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍
https://mp.weixin.qq.com/s/Q4ZYjUxt22Jsx2W2179C8Q
Lexica
- Lexica: The Stable Diffusion search engine
https://lexica.art

代码实现
这里我使用 colab 运行,colab 使用操作可参考:
https://blog.csdn.net/lovechris00/article/details/123960622
Stable Diffusion 操作方法可详见:
https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb#scrollTo=AAVZStIokTVv
安装依赖库
!pip install "ipywidgets>=7,<8"
!pip install diffusers==0.12.1
!pip install transformers scipy ftfy
!pip install accelerate
!pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
如果 diffusers 版本较低(如,小于等于 0.4.0),后面可能会报如下错误:
getattr(): attribute name must be string
查看信息
import diffusers
print(diffusers.__version__)!nvidia-smi
from google.colab import output
output.enable_custom_widget_manager()
登陆 huggingface
from huggingface_hub import notebook_login
notebook_login()

查看 huggingface token
settings --> tokens
https://huggingface.co/settings/tokens
你的huggingface 如果还没有激活邮箱,需要激活后操作。
登陆成功后,会返回下述结果:
Token is valid.
Your token has been saved in your configured git credential helpers (store).
Your token has been saved to /root/.cache/huggingface/token
Login successful
下载模型
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=True)
pip 内容如下:
StableDiffusionPipeline {"_class_name": "StableDiffusionPipeline","_diffusers_version": "0.12.1","feature_extractor": ["transformers","CLIPFeatureExtractor"],"requires_safety_checker": true,"safety_checker": ["stable_diffusion","StableDiffusionSafetyChecker"],"scheduler": ["diffusers","PNDMScheduler"],"text_encoder": ["transformers","CLIPTextModel"],"tokenizer": ["transformers","CLIPTokenizer"],"unet": ["diffusers","UNet2DConditionModel"],"vae": ["diffusers","AutoencoderKL"]
}
计算生成
from torch import autocast # 移动到 cuda
pipe = pipe.to('cuda')prompt = "a photo of an astronut riding a horse"
with autocast("cuda"):ret = pipe(prompt)
ret 的内容是:
StableDiffusionPipelineOutput(images=[<PIL.Image.Image image mode=RGB size=512x512 at 0x7F99A7332310>], nsfw_content_detected=[False])
有的demo会使用 sample 键,我这里没有,所以如果调用 sample 会报错
查看图片文件
ret.images[0]

设置宽高
宽高必须被 8 整除
# `height` and `width` have to be divisible by 8 but are 300 and 200.
with autocast("cuda"):ret = pipe(prompt, width=400, height=640)ret.images[0]

测试迭代次数
设置随机种子
# 先快速生成低质量图片看效果,然后调高画质
generator = torch.Generator("cuda").manual_seed(1024)with autocast("cuda"):ret = pipe(prompt, generator=generator)ret.images[0]

# 调整迭代次数
with autocast("cuda"):ret = pipe(prompt, generator=generator, num_inference_steps=15)ret.images[0]

生成多列图片
from PIL import Imagedef image_grid(imgs, rows, cols):assert len(imgs) == rows * colsw, h = imgs[0].sizegrid = Image.new("RGB", size=(cols*w, rows*h) )grid_w, grid_h = grid.sizefor i, img in enumerate(imgs):grid.paste(img, box=(i%cols * w, i // cols * h) )return grid
num_imgs = 3
prompts = [prompt] * num_imgswith autocast("cuda"):ret = pipe(prompts, generator=generator, num_inference_steps=15)
ret 内容如下,包含三张图片
StableDiffusionPipelineOutput(images=[<PIL.Image.Image image mode=RGB size=512x512 at 0x7F99A7150820>, <PIL.Image.Image image mode=RGB size=512x512 at 0x7F99A7103280>, <PIL.Image.Image image mode=RGB size=512x512 at 0x7F99A7103520>], nsfw_content_detected=[False, False, False])
显示图片
grid = image_grid(ret.images, rows=1, cols=3)

2023-02-15(情人节快乐)
相关文章:
Stable Diffusion 1 - 初始跑通 文字生成图片
文章目录关于 Stable DiffusionLexica代码实现安装依赖库登陆 huggingface查看 huggingface token下载模型计算生成设置宽高测试迭代次数生成多列图片关于 Stable Diffusion A latent text-to-image diffusion model Stable Diffusion 是一个文本到图像的潜在扩散模型ÿ…...
【cuda入门系列】通过代码真实打印线程ID
【cuda入门系列】通过代码真实打印线程ID1.gridDim(6,1),blockDim(4,1)2.gridDim(3,2),blockDim(2,2)【cuda入门系列之参加CUDA线上训练营】在Jetson nano本地跑 hello cuda! 【cuda入门系列之参加CUDA线上训练营】一文认识cuda基本概念 【cuda入门系列之参加CUDA线…...
【Python语言基础】——Python NumPy 数据类型
Python语言基础——Python NumPy 数据类型 文章目录 Python语言基础——Python NumPy 数据类型一、Python NumPy 数据类型一、Python NumPy 数据类型 Python 中的数据类型 默认情况下,Python 拥有以下数据类型: strings - 用于表示文本数据,文本用引号引起来。例如 “ABCD”…...
数据工程师需要具备哪些技能?
成为数据工程师需要具备哪些技能?数据工程工作存在于各个行业,在银行业、医疗保健业、大型科技企业、初创企业和其他行业找到工作机会。许多职位描述要求数据工程师、拥有数学或工程学位,但如果有合适的经验学位往往没那么重要。 大数据开发…...
Cosmos 基础 -- Ignite CLI(二)Module basics: Blog
一、快速入门 Ignite CLI version: v0.26.1 在本教程中,我们将使用一个模块创建一个区块链,该模块允许我们从区块链中写入和读取数据。这个模块将实现创建和阅读博客文章的功能,类似于博客应用程序。最终用户将能够提交新的博客文章&#x…...
Quartz 快速入门案例,看这一篇就够了
前言 Quartz 是基于 Java 实现的任务调度框架,对任务的创建、修改、删除、触发以及监控这些操作直接提供了 api,这意味着开发人员拥有最大的操作权,也带来了更高的灵活性。 什么是任务调度? 任务调度指在将来某个特定的时间、固…...
图解LeetCode——1233. 删除子文件夹(难道:中等)
一、题目 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] …...
Doris--简单使用
一、数据表的创建与数据导入 1.1、创建表 1.1.1、单分区 CREATE TABLE table1 (siteid INT DEFAULT 10,citycode SMALLINT,username VARCHAR(32) DEFAULT ,pv BIGINT SUM DEFAULT 0 -- 聚合模型, value column 使用sum聚合 ) AGGREGATE KEY(siteid, citycode, …...
使用GPT让你的RStudio如虎添翼
API的的调用目前来说不限制地区,但是OpenAI的API的申请限制了地区。运行的时候,如果出现了429,意味着你被限流了,需要等一会才行。 前提是,你需要注册一个OpenAI的账户,然后在https://openai.com/api/ 里申…...
Python 算法交易实验45 再探量化
说明 去年大部分精力都在构建底层架构和工具了,一直都没有时间搞量化。目前底层的数据库服务(ADB)和清洗(衍生 AETL) 工具已经好了,我想尽快的把量化启动起来。 内容 1 思想 作为交易来说,只有买卖。通过数据分析与模型,我们获得的增强点是决策。在合适的时候进行买卖的…...
Dubbo加载配置文件方式,加载流程,加载配置文件源码解析
配置方法 API配置 以Java编码的方式组织配置,Dubbo3配置API详解 :https://dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/config/api/#bootstrap-api public static void main(String[] args) throws IOException {ServiceConfig<Greet…...
十大开源测试工具和框架,一定有你需要的
目录 前言 Katalon Studio Selenium Appium JMeter SOAP UI Robot Framework Watir JUnit Robotium Citrus 总结 前言 免费的开源框架和工具由于其开源特性,现在逐渐成为自动化测试的首选解决方案。区别在于,你是喜欢使用类库编写一个全新的…...
加密技术在android中的应用
1、算法基础 算法基础参照linux的全盘加密与文件系统加密在android中的应用 消息摘要算法 对称加密算法 非对称加密算法...
备战蓝桥杯【一维前缀和】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...
研报精选230214
目录 【行业230214艾瑞股份】中国增强现实(AR)行业研究报告【行业230214国信证券】信息安全深度剖析5:密评和信创双催化,密码产业开启从1到N【行业230214民生证券】磁性元器件深度报告:乘新能源之风,磁性元…...
【SSL/TLS】准备工作:证书格式
证书格式1. 格式说明1.1 文件编码格式1.2 文件后缀格式2. xca导出格式1. 格式说明 1.1 文件编码格式 1. PEM格式: 使用Base 64 ASCII进行编码的纯文本格式。后缀为“.pem”, ".cer", ".crt", ".key" 2. DER格式 二进制编码格式,文件…...
Linux常用命令---系统常用命令
Linux系统常用命令场景一: 查看当前系统内核版本相关信息场景二: sosreport 命令场景三: 如何定位并确定命令?场景四:查看当前系统运行负载怎场景五: 查看当前系统的内存可用情况场景六:查看网卡…...
C 结构体
C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性ÿ…...
手语检测识别
论文:Real-Time Sign Language Detection using Human Pose Estimation Github:https://github.com/google-research/google-research/tree/master/sign_language_detection SLRTP 2020 手语识别任务包括手语检测(Sign language detection&a…...
android fwk模块之Sensor架构
本文基于Android 12源码整理,包含如下内容: 通信架构应用层实现使用方式SensorManager抽象接口具体实现fwk层的实现native中的SensorManager的初始化流程native中的消息队列初始化与数据读取sensorservice实现HAL层的实现通信架构 应用层实现 涉及代码&…...
RT-Thread线程管理与调度机制详解
RT-Thread线程管理深度解析1. 嵌入式实时操作系统中的线程概念在嵌入式实时操作系统(RTOS)中,线程是最基本的调度单位,也被称为任务。与裸机编程的单线程模式不同,RTOS通过多线程机制实现了任务的并发执行。裸机系统通常采用一个无限循环结构…...
告别Anaconda臃肿安装!用VSCode+Miniconda打造轻量级Python数据分析环境
轻量级Python数据分析环境:VSCodeMiniconda高效组合方案 为什么需要告别Anaconda? 在数据科学领域,开发环境的效率直接影响工作产出。传统Anaconda发行版虽然功能全面,但其庞大的体积(通常超过3GB)和缓慢…...
虚幻引擎登录界面常见BUG排查手册:解决UI显示与事件调度器问题
虚幻引擎登录界面开发实战:从UI异常到事件调度的深度解决方案 登录界面作为用户接触产品的第一道门户,其稳定性和交互体验直接影响用户对产品的第一印象。在虚幻引擎开发中,从UI控件渲染到事件逻辑处理,每个环节都可能隐藏着意想不…...
OpenClaw对接GLM-4.7-Flash:模型性能优化指南
OpenClaw对接GLM-4.7-Flash:模型性能优化指南 1. 为什么需要专门优化GLM-4.7-Flash的对接? 上个月我在本地部署了OpenClawGLM-4.7-Flash组合,原本期待它能流畅处理我的自动化办公需求,结果遭遇了典型的"水土不服"症状…...
【调优】Openclaw高阶调优指南之配置篇
适配openclaw 2026.3.23+版本,收录于 养龙虾专栏 本文的配置调优主要包含如下内容,优化调整的地方均有截图,无需担心命令无效: 标题 配置优化内容 主要内容概要 一、OpenClaw配置体系概述 1. 配置文件结构与位置 介绍 openclaw.json 的路径及 JSON5 格式特性 2. 配置生效机…...
百融智能与中国人民大学高瓴人工智能学院智能体联合共建实验室正式揭牌
3月24日,百融智能(原百融云创6608.HK)与中国人民大学高瓴人工智能学院举行产学研合作发布会,并为“智能体联合实验室”揭牌。双方发布三项捐赠基金与六项联合研究课题,探索“科研攻关—人才培养—成果转化”的协同机制…...
3D Face HRN生产环境部署:支持Nginx反向代理+HTTPS外网安全访问
3D Face HRN生产环境部署:支持Nginx反向代理HTTPS外网安全访问 你想把那个酷炫的3D人脸重建模型放到公网上,让团队成员或客户也能用上吗?直接暴露Gradio的端口,不仅不安全,还可能因为网络问题访问不了。 今天&#x…...
yuzu模拟器终极性能优化:突破帧率限制的完整指南
yuzu模拟器终极性能优化:突破帧率限制的完整指南 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 你是否正在为yuzu模拟器的卡顿问题而烦恼?游戏画面不流畅、帧率波动大、操作延迟明显&#…...
Llama-3.2V-11B-cot部署教程:bf16精度下双卡4090吞吐量实测
Llama-3.2V-11B-cot部署教程:bf16精度下双卡4090吞吐量实测 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具,专为双卡RTX 4090环境优化。本教程将带您完成从环境准备到实际推理的全流程部署&#…...
TradingAgents-CN:5分钟掌握AI金融分析终极指南
TradingAgents-CN:5分钟掌握AI金融分析终极指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 你是不是也曾经为投资决策而烦恼&…...
