AI-多模态-2021:Stable Diffusion【根据文本生成图像】【开源】【目前开源模型中最强】

news2025/7/10 9:45:36

最近大火的Stable Diffusion也开源了(20220823);

我也本地化测试了一下效果确实比Dall-E mini强太多了,对于我们这些玩不上Dall-E2的这个简直就是就是捡钱的感觉,当然后期跑起来,稍微不注意显存就炸了。

这里我写一下安装过程,具体分为两个安装流程;

流程1 -- Hubggingface的方式安装

使用Huggingface的模式进行直接安装。

CompVis/stable-diffusion-v1-1 · Hugging Face​huggingface.co/CompVis/stable-diffusion-v1-1正在上传…重新上传取消

注册

第一个工作需要注册账户,可以关联github;

注册后在个人目录下有一个token号;链接https://huggingface.co/settings/tokens,这个tokens号要在服务器登陆的过程中进行添加;

在服务器登陆要输入huggingface登陆:

huggingface-cli login

登陆界面,输入token就可以分析;

之后才可以再安装;

相关包安装

安装配置的包命令:

pip install --upgrade diffusers transformers scipy

安装过程时间会很长[最好修改镜像路径],一般不会出什么问题。

运行模式

然后直接运行下面的code就可以绘制图出来,第一次计算会下载模型权重,速度很长。国内网络很慢,建议选择其他网络方法,或者早起(早晨速度特别快)。

import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

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


pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token=True)
pipe = pipe.to(device)

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt, guidance_scale=7.5)["sample"][0]  
    
image.save("astronaut_rides_horse.png")

可以调节其他参数,但这个流程具体我没有更多测试。

prompt = "Little Red Riding Hood and big grey wolf, digital painting, artstation, concept art, smooth, sharp focus, illustration, renaissance, flowy, melting, round moons, rich clouds, very detailed, volumetric light, mist, fine art, textured oil over canvas, epic fantasy art, very colorful, ornate intricate scales, fractal gems, 8 k, hyper realistic, high contrast"
prompt = "fantasy magic fashion Asian girl portrait, glossy eyes, face, long hair, fantasy, intricate, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, renaissance, flowy, melting, round moons, rich clouds, very detailed, volumetric light, mist, fine art, textured oil over canvas, epic fantasy art, very colorful, ornate intricate scales, fractal gems, 8 k, hyper realistic, high contrast"
prompt = "All roads lead to Rome,  8 k, hyper realistic, high contrast, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration"
prompt = "Tomorrow is another day,  8 k, hyper realistic, high contrast, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration"

我测试的三组,效果如下:

流程2 -- 使用github进行分布部署

这种模式使用自己下载模型,运行时候使用参数会更好的结果。

通过下载GitHub下载原始代码,路径:

GitHub - CompVis/stable-diffusion​github.com/CompVis/stable-diffusion正在上传…重新上传取消

只用git clone 或者直接download的保存都可以,访问这个目录进行安装。

相关包安装

安装使用conda方式做的:GitHub - CompVis/stable-diffusion安装使用conda方式做的:

conda env create -f environment.yaml
conda activate ldm

但我安装过程因为git clone之后报错,因为各种原因吧。

我是直接本地download下来,然后直接

python setup.py install

具体包括的安装包有CLIP[openai/CLIP]和taming-transformers[CompVis/taming-transformers];这里说一下taming-transformers安装后依然找不到相关代码, 我直接把[taming]目录代码copy根目录下,这样直接import没有问题了。

一些相关包的安装:

conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .

这部分安装包括stable-diffusion的目录;

模型文件下载

访问网站[Hugging Face – The AI community building the future.]:

在Files and versions下载就可以,选择对应的sd-v1-4.ckpt下载,如图:

直接点后面的下载符号就可以下载,之后运行的时候只要链接到模型路径就可以计算。

运行模式1 - 文本转图像:

第一次运行还会安装、和配置很多模型,需要时间很多。

还是建议早起。

全部模型参数如下:

usage: txt2img.py [-h] [--prompt [PROMPT]] [--outdir [OUTDIR]] [--skip_grid] [--skip_save] [--ddim_steps DDIM_STEPS] [--plms] [--laion400m] [--fixed_code] [--ddim_eta DDIM_ETA]
                  [--n_iter N_ITER] [--H H] [--W W] [--C C] [--f F] [--n_samples N_SAMPLES] [--n_rows N_ROWS] [--scale SCALE] [--from-file FROM_FILE] [--config CONFIG] [--ckpt CKPT]
                  [--seed SEED] [--precision {full,autocast}]

optional arguments:
  -h, --help            show this help message and exit
  --prompt [PROMPT]     the prompt to render
  --outdir [OUTDIR]     dir to write results to
  --skip_grid           do not save a grid, only individual samples. Helpful when evaluating lots of samples
  --skip_save           do not save individual samples. For speed measurements.
  --ddim_steps DDIM_STEPS
                        number of ddim sampling steps
  --plms                use plms sampling
  --laion400m           uses the LAION400M model
  --fixed_code          if enabled, uses the same starting code across samples
  --ddim_eta DDIM_ETA   ddim eta (eta=0.0 corresponds to deterministic sampling
  --n_iter N_ITER       sample this often
  --H H                 image height, in pixel space
  --W W                 image width, in pixel space
  --C C                 latent channels
  --f F                 downsampling factor
  --n_samples N_SAMPLES
                        how many samples to produce for each given prompt. A.k.a. batch size
  --n_rows N_ROWS       rows in the grid (default: n_samples)
  --scale SCALE         unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))
  --from-file FROM_FILE
                        if specified, load prompts from this file
  --config CONFIG       path to config which constructs model
  --ckpt CKPT           path to checkpoint of model
  --seed SEED           the seed (for reproducible sampling)
  --precision {full,autocast}
                        evaluate at this precision

其中主要的参数(我使用的),

--prompt 关键词准备;

--plms 预测使用需要使用这个信息;

--W/--H 这里需要注意如果生成图太大,显存可能不足,建议一点一点试试;

--seed 种子数、相同prompt和seed会保证生成图像一致;

--ckpt 写模型的全路径,访问模型;

--outdir 图像生成路径,图绘按照ID顺着添加,目录下有一个文件夹路径会保留所有样本;

我测试的一个样例:

python txt2img.py --prompt "Asia girl, glossy eyes, face, long hair, fantasy, elegant, highly detailed, digital painting, artstation, concept art, smooth, illustration, renaissance, flowy, melting, round moons, rich clouds, very detailed, volumetric light, mist, fine art, textured oil over canvas, epic fantasy art, very colorful, ornate intricate scales, fractal gems, 8 k, hyper realistic, high contrast" 
                  --plms 
                  --outdir ./stable-diffusion-main/Workspace 
                  --ckpt ./stable-diffusion-main/models/ldm/sd-v1-4.ckpt 
                  --ddim_steps 100 
                  --H 512 
                  --W 512 
                  --seed 8

输出结果:

运行模式2--图像+文本--图像

该部分就是通过一个随机图,给一些描述可以产出新的效果。我测试这部分。。。比较诡异;

如果有好的案例欢迎推荐给我,大家注意一下。

python scripts/img2img.py --prompt "magic fashion girl portrait, glossy eyes, face, long hair, fantasy, intricate, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, renaissance, flowy, melting, round moons, rich clouds, very detailed, volumetric light, mist, fine art, textured oil over canvas, epic fantasy art, very colorful, ornate intricate scales, fractal gems, 8 k, hyper realistic, high contrast" 
                          --init-img ./stable-diffusion-main/Workspace2/h3.jpg 
                          --strength 0.8 
                          --outdir ./stable-diffusion-main/Workspace 
                          --ckpt ./stable-diffusion-main/models/ldm/sd-v1-4.ckpt 
                          --ddim_steps 100

经过我测试还有很多人讨论的结果,输入图尽量保持长宽像素保持64的倍数,一般不会报错。

输入图像:

输出结果如下:

结果有点。。。不理解

但看小蓝鸟上还是很多不错的结果。

---未完待续---

参考链接:

[1] CompVis/stable-diffusion-v1-1[CompVis/stable-diffusion-v1-1 · Hugging Face];

[2]CompVis/stable-diffusion[https://github.com/CompVis/stable-diffusion]

模型方法--Stable Diffusion - 知乎

当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍_创业者西乔的博客-CSDN博客

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

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

相关文章

Fabric.js 限制边框宽度缩放

本文简介 点赞 关注 收藏 学会了 使用 fabric.js 在某些情况下你可能需要固定元素边框的宽度,仔细看文档你会发现 fabric.js 已经为我们提供了这个功能。本文简单介绍一下这个功能。 实现方法 先揭晓答案,将元素的 strokeUniform 属性设置为 true 后…

适合贵校的核心营销讯息

香港 (Xinwengao.com) — 优秀的学校具备策略来提升形象、提高学生的成功率、改善收生(和重新入学)的成果。这包括为你的学校定下营销讯息。大多数学校都具备自己的营销策略,但很少有营销讯息。一个有力的营销讯息可大大地支援营销策略。 即…

避坑细节拉满!阿里p8技术官私传:MyBatis源码全解析,全彩版附代码分享

摘要 MyBatis是一款优秀的持久层框架,它支持自定义SQL,存储过程以及高级映射,越来越多的企业已经将MyBatis使用到了正式的生产环境,而国内Mybatis流行的原因就在于绝大部分项目都是面向表结构编程的,把Java对象仅当成…

【敏捷研发系列】前端DevOps流水线实践

一、背景现状 软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运…

认识操作系统

操作系统 1 OS 简史 1.1 批处理操作系统 1946-02-04 世界上第一台公认的通用计算机ENIAC在 宾夕法尼亚大学 诞生。1956 年实现 GM-NAA I/O 系统具备批处理特性。 1.2 从专用走向通用 1964 年,美国IBM公司发布 IBM System/360 的大型机。将计算机架构和实现分开…

【Java入门基础第10天】Java常用的转义字符

Java常用的转义字符1、\t:一个制表位,实现对齐功能2、\n:换行符3、\\:转义字符 一个4、\":一个"5、\:一个6、\r:一个回车 System.out.println("学刑法\r有钱途")7、应用实例(Exercise)1、\t:一个制表位,实现对齐功能 \t:一个制表位,实现对齐功…

从文科生到前端专家 - 在转行时我想过的问题

▐ 在学习编程之前 在高中时,因为学不会物理和化学,我选择了文科,这也意味着计算机专业类对我关上了大门,不过在当时我也没有想到自己在未来会喜欢上写代码并以此为生。 现在回想起来,与编程有关的只有两件事情。 一是…

java学习day65(乐友商城)实现搜索、分页、排序

1.索引库数据导入 昨天我们学习了Elasticsearch的基本应用。今天就学以致用&#xff0c;搭建搜索微服务&#xff0c;实现搜索功能。 1.1.创建搜索服务 创建module&#xff1a; Pom文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <…

【软件测试】瓶颈?资深测试聊测试开发的瓶颈在哪?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试开发的发展是不…

嵌入式C语言面向对象编程 --- 封装

大部分使用 C 语言进行开发的工程师,在接触更高级的编程语言之前,都认为 C 语言是面向过程的。事实也是如此,对于一些小规模的单片机应用程序,一般都是使用“面向过程”的思维进行单片机C语言编程开发。 但是,如果是需要用C语言开发一些规模比较大的软件的时候,比如操作…

pycharm 中sqlite升级方法

sqlite 3.21升级到3.40 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> help Type help()…

小哥用Python兼职月入过万,用Python做项目有多赚钱?

问&#xff1a;请问用Python可以接哪些兼职的活赚钱&#xff1f; 1 兼职费用足够学费生活费 恰巧上学期间接过一些外包&#xff0c;恩&#xff0c;足够我和我媳妇的学费以及生活费&#xff0c;以及xx各种费用。 主要干过以下几种&#xff1a; 游戏外挂&#xff1a;主要开发…

Jetpack Compose中的导航路由

Jetpack Compose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持&#xff0c;使用需要单独添加依赖&#xff1a; implementation "androidx.navigation:navigation-compose:$nav_version" Jetpack库中的Navigation使用起来还是比较麻…

毕业时就已26,工作4年就已大龄,码农出路在哪?

边工作边迷茫这可能是我们大多数职场人的常态。一边觉得这份工作不适合自己&#xff0c;另一边又不知道能去做什么。喜欢的工作&#xff0c;却又不知道如何提升。长此以往&#xff0c;内心难免产生焦躁&#xff0c;尤其随着年龄的增长&#xff0c;内心更是希望能够在事业上有所…

MySQL数据库的安装、创建库、创建表、创建测试数据及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库&#xff0c;并在其中创建新的数据表&#xff0c;填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾&#xff1b;若多行语句无;&#xff0c;则被默认为一条语句未输入完…

设计好接口的36个锦囊

前言 大家好&#xff0c;我是捡田螺的小男孩。作为后端开发&#xff0c;不管是什么语言&#xff0c;Java、Go还是C&#xff0c;其背后的后端思想都是类似的。后面打算出一个后端思想的技术专栏&#xff0c;主要包括后端的一些设计、或者后端规范相关的&#xff0c;希望对大家日…

redis安装 3台机器 6节点

一&#xff1a; redis官网地址&#xff1a; 6.2.6版本 1 | Index of /releases/http://download.redis.io/releases/ 二&#xff1a; 编辑配置文件 1: 注释本地IP地址&#xff1a; 1&#xff1a; bind: 本地IP 2&#xff1a; protected-mode no: #关闭保护模式 3&#xff1…

KG-构建:知识图谱基础代码构建(医疗向)

项目来源是GitHub上面刘老师做的一个基于知识医疗图谱的问答机器人&#xff0c;本文主要关注点放在建立知识图谱这一侧。这个项目并且将数据集也开源了放在dict和data文件夹下&#xff0c;让我觉得真的很难得&#xff0c;得给老师一个star&#xff01; https://github.com/liu…

智能制造数字化转型难点有哪些?

① 企业高层没有意识到数字化转型的必要性、紧迫性和复杂性&#xff0c;观念还停留在部署常用的IT系统。实际上&#xff0c;数字化转型远远不是IT部门能够实现的&#xff0c;必须由企业的决策层引领&#xff0c;自顶向下推进。 ② 企业已经应用了诸多信息系统&#xff0c;但是…

《MySQL高级篇》九、数据库的设计规范

文章目录1. 为什么需要数据库设计2. 范 式2.1 范式简介2.2 范式都包括哪些2.3 键和相关属性的概念2.4 第一范式(1st NF)2.5 第二范式(2nd NF)2.6 第三范式(3rd NF)2.7 小结3. 反范式化3.1 概述3.2 应用举例3.3 反范式的新问题3.4 反范式的适用场景4. BCNF(巴斯范式)5. 第四范式…