王者归来!Stability-AI又放大招 | Stable Cascade:更快更强的图像生成模型!

标题:王者归来!Stability-AI又放大招 | Stable Cascade:更快更强的图像生成模型!

Stable Diffusion官方最新发布了Stable Cascade,相较于之前的SD-1.5以及SDXL模型有了质的提升。可谓开源王者归来!

该模型是建立在 Würstchen 架构之上的,与其他模型(如Stable Diffusion)的主要区别在于它在一个更小的潜在空间中运行。为什么这很重要?潜在空间越小,推理速度越快,训练成本越低。潜在空间有多小?Stable Diffusion使用了一个压缩因子为 8,将 1024x1024 的图像编码为 128x128。Stable Cascade实现了一个压缩因子为 42,这意味着可以将 1024x1024 的图像编码为 24x24,同时保持清晰的重构。文本条件模型随后在高度压缩的潜在空间中进行训练。该架构的先前版本实现了比Stable Diffusion 1.5 低 16 倍的成本。

因此,这种类型的模型非常适合对效率要求较高的用途。此外,该方法还可以实现所有已知的扩展,如微调、LoRA、ControlNet、IP-Adapter、LCM 等。训练和推理部分已经提供了其中一些扩展(微调、ControlNet、LoRA)。

此外,Stable Cascade取得了令人印象深刻的结果,在视觉上和评估上均表现出色。据官方的评估,Stable Cascade在几乎所有比较中在提示对齐和美学质量方面表现最佳。下图显示了使用一组混合的提示和美学提示进行的人类评估结果。具体来说,Stable Cascade(30 个推理steps)与 Playground v2(50 个推理steps)、SDXL(50 个推理steps)、SDXL Turbo(1 个推理steps)和 Würstchen v2(30 个推理steps)进行了比较。

Stable Cascade通过其架构和更高压缩的潜在空间来体现其对效率的关注。尽管最大的模型比Stable Diffusion XL还要多14 亿参数,但仍然具有更快的推理时间,如下图所示。

模型概述

Stable Cascade由三个模型组成:Stage A, Stage B和Stage C,,代表了用于生成图像的阶段,因此得名“Stable Cascade”。Stage A 和 B 用于压缩图像,类似于Stable Diffusion中 VAE 的工作。然而,正如前面提到的,通过这种设置可以实现对图像的更高压缩。此外,Stage C 负责在给定文本提示的情况下生成小尺寸的 24 x 24 的潜在特征。以下图片以可视化方式展示了这一点。请注意,阶段 A 是一个 VAE,而Stage B 和 C 都是扩散模型。

对于此版本,提供了三个阶段的checkpoints,其中阶段 C 提供了一个 10 亿参数版本和一个 36 亿参数版本,强烈建议使用 36 亿参数版本,因为大部分工作都是针对其微调的。阶段 B 的两个版本分别为 7 亿参数和 15 亿参数。两者都取得了出色的结果,但是 15 亿参数版本在重建小而精细的细节方面表现出色。因此,如果您使用每个阶段的更大变体,将会获得最佳结果。最后,阶段 A 包含 2000 万参数,并且由于其size小而被固定。

入门指南

推理

通过推理部分提供的推理说明文档可以运行模型。

里面有关下载模型、计算要求以及如何使用模型的一些教程的更多详细信息。

文生图

文生图文档提供文本到图像、图像变体和图像到图像的基本功能。

● 文生图

"Cinematic photo of an anthropomorphic penguin sitting in a cafe reading a book and having a coffee."

● Image Variation

该模型还可以理解图像embeddings,这使得生成给定图像的多角度变化(左图)成为可能。这里没有prompt。

● 图生图

这个过程与通常操作一样,通过将图像添加噪声直到特定程度,然后让模型从该起始点生成图像。这里左侧的图像被加入了噪声达到了 80%,并附带了标题:A person riding a rodent.

此外,该模型也可以在 huggingface 库中访问到。地址:https://huggingface.co/stabilityai/stable-cascade

ControlNet

ControlNet说明文档展示了如何使用训练的 ControlNet,或者如何使用自己训练的 ControlNet 来为 Stable Cascade 提供支持。此版本提供了以下 ControlNet:

● Inpainting / Outpainting

● Face Identity

注意:Face Identity ControlNet目前还未发布,会在以后的某个时间发布。

● Canny

● 超分辨率

这些都可以通过同一个文档使用,并且只需要针对每个控制网络更改配置。可参考:https://github.com/Stability-AI/StableCascade/tree/master/inference

LoRA

官方还提供了LoRA 训练和使用Stable Cascade的实现,可以用于微调文本条件模型(Stage C)。具体来说可以添加和学习新的标注,并向模型添加 LoRA 层。LoRA文档展示了如何使用训练好的 LoRA。例如,对狗进行训练的 LoRA,使用以下类型的训练图像:

生成以下给定提示的狗的图像:

Cinematic photo of a dog [fernando] wearing a space suit.

图像重建

最后,对于人们可能非常感兴趣的一件事,特别是如果您想从头开始训练自己的文本条件模型,甚至可能使用与Stage C 完全不同的架构,那就是使用Stable Cascade使用的(扩散)自编码器,以便能够在高度压缩的空间中工作。就像大家使用Stable Diffusion的 VAE 来训练自己的模型(例如 Dalle3)一样,您可以以同样的方式使用Stage A 和 B,同时从更高的压缩中受益,使您能够更快地训练和运行模型。

文档中也展示了如何对图像进行编码和解码,以及您获得的具体好处。例如,假设您有以下维度为 4 x 3 x 1024 x 1024 的图像batch:

可以将这些图像编码成压缩尺寸为 4 x 16 x 24 x 24,从而获得空间压缩因子为 1024 / 24 = 42.67。然后,您可以使用Stage A 和 B 将图像解码回 4 x 3 x 1024 x 1024,得到以下输出:

正如所看到的,即使对于小细节,重建结果也出奇地接近。标准的 VAE 等等是无法实现这样的重建的。图像重建说明文档中提供更多信息和易于尝试的代码。

训练

官方提供了从头开始训练Stable Cascade、微调、ControlNet 和 LoRA 的代码。大家可以在训练文件夹中找到如何执行这些操作的详细说明。

备注

Stable Cascade代码库处于早期开发阶段。可能会遇到意外错误或训练和推理代码不完全优化的情况。

Gradio App

首先安装gradio 和 diffusers:

pip3 install gradio
pip3 install accelerate # optionally
pip3 install git+https://github.com/kashif/diffusers.git@wuerstchen-v3

然后从工程根目录运行以下命令:

PYTHONPATH=./ python3 gradio_app/app.py

参考链接

github地址:

https://github.com/Stability-AI/StableCascade?tab=readme-ov-file

模型下载:

https://huggingface.co/stabilityai/stable-cascade/tree/main

推理说明文档:

https://github.com/Stability-AI/StableCascade/tree/master/inference

文生图文档:

https://github.com/Stability-AI/StableCascade/blob/master/inference/text_to_image.ipynb

ControlNet文档:

https://github.com/Stability-AI/StableCascade/blob/master/inference/controlnet.ipynb

LoRA文档:

https://github.com/Stability-AI/StableCascade/blob/master/inference/lora.ipynb

图像重建说明文档中:

https://github.com/Stability-AI/StableCascade/blob/master/inference/reconstruct_images.ipynb

训练文件夹:

https://github.com/Stability-AI/StableCascade/blob/master/train

参考论文: Wuerstchen: An Efficient Architecture for Large-Scale Text-to-Image Diffusion Models

 更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录 -- 哈希表

文章目录 有效的字母异位词描述题解 两个数组的交集描述题解 快乐数描述题解 两数之和描述题解 四数相加II描述题解 赎金信描述题解:暴力题解:哈希表 三数之和描述题解:哈希表(不适合)题解:双指针 四数之和…

已解决Application run failed org.springframework.beans.factory.BeanNot

问题原因:SpringBoot的版本与mybiats-puls版本不对应且,spring自带的mybiats与mybiats-puls版本不对应 这里我用的是3.2.2版本的SpringBoot,之前mybiats-puls版本是3.5.3.1有所不同。 问题:版本对不上 解决办法:完整…

深入浅出JVM(三)之HotSpot虚拟机类加载机制

HotSpot虚拟机类加载机制 类的生命周期 什么叫做类加载? 类加载的定义: JVM把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终变成可以被JVM直接使用的Java类型(因为可以动态产生,这里的Class文件并不是具体存在磁盘中的文件,而是二进制数据流) 一个…

Qt应用-视频播放器实例

本文讲解Qt视频播放器应用实例。 实现功能 视频的播放暂停、拖动进度控制,声音控制播放列表控制播放区域的暂停控制,全屏控制等。 界面设计 <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"><class>frmVide…

cmd命令开启windows桌面远程控制并设置防火墙允许远程

cmd命令开启桌面远程控制 1、开启之前&#xff1a; 2、使用管理员身份运行cmd 3、执行cmd命令 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Control\Terminal server" /v fDenyTSConnections /t REG_DWORD /d 0 /f4、如果这台电脑的防火墙打开&#xf…

vue2的ElementUI的form表单报错“Error: [ElementForm]unpected width”修复

1. 问题 ElementUI的form表单&#xff0c;当动态切换显示表单时报错 Error: [ElementForm]unpected width。 翻译过来就是form表单的label宽度width出了问题。 2. 分析 参数说明类型可选值默认值label-width表单域标签的宽度&#xff0c;例如 ‘50px’。作为 Form 直接子元…

第3.3章:StarRocks数据导入--Stream Load

一、概述 Stream Load是StarRocks常见的数据导入方式&#xff0c;用户通过发送HTTP请求将本地文件或数据流导入至StarRocks中&#xff0c;该导入方式不依赖其他组件。 Stream Load作是一种同步导入方式&#xff0c;可以直接通过请求的返回值判断导入是否成功&#xff0c;无法手…

PHP实践:Laravel中事件使用讲解

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

【wu-lazy-cloud-network】Java自动化内网穿透架构整理

项目介绍 wu-lazy-cloud-network 是一款基于&#xff08;wu-framework-parent&#xff09;孵化出的项目&#xff0c;内部使用Lazy ORM操作数据库&#xff0c;主要功能是网络穿透&#xff0c;对于没有公网IP的服务进行公网IP映射 使用环境JDK17 Spring Boot 3.0.2 版本更新 1…

MySql重要知识梳理

文章目录 一.索引1.索引概述2.索引优缺点3. 索引结构为什么InnoDB存储引擎选择使用Btree索引结构? 4.索引分类思考InnoDB主键索引的Btree高度为多高? 5. 索引语法1.索引语法2.sql性能分析1.SQL执行频率2.慢查询日志3.explain执行计划 3.索引使用规则1.最左前缀法则2.索引失效…

机器学习 深度学习资料 资源machine learning

Kaggle入门&#xff0c;看这一篇就够了 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/25686876 day1-1.什么是机器学习_哔哩哔哩_bilibiliday1-1.什么是机器学习是10天学会机器学习从入门到深度学习的第1集视频&#xff0c;该合集共计62集&#xff0c;视频收藏或关注UP主&a…

时间获取、文件属性获取 2月20日学习笔记

执行两次代码&#xff0c;打印出两次执行过程中新增的文件及删除的文件 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <dirent.h>#def…

Kubernetes安装nginx-controller作为统一网关

nginx-controller是什么呢? 它是一个能调度nginx的一个kubernetes operator,它能监听用户创建,更新,删除NginxConf对象,来调度本地的nginx实现配置的动态更新。如添加新的代理(http,https,tcp,udp),缓存(浏览器缓存,本地缓存),ssl证书(配置本身,ConfigMap,Secret),更新,删除等…

解决pycharm中PIL安装失败

问题&#xff1a;在调用pil时显示pil标红 我在设置中下载每次失败&#xff0c;显示 ERROR: Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distribution found for PIL我尝试了很久&#xff0c;查看了一些博客 &a…

论文阅读——SqueezeSAM

SqueezeSAM: User-Friendly Mobile Interactive Segmentation 比SAM更小&#xff0c;更快。 框架&#xff1a; 使用的U型结构 使用BatchNorm而不是LayerNorm节省计算&#xff1b; 对于用户点击和框&#xff0c;单独作为通道&#xff0c;前融合和后融合&#xff08;sam只有后融…

相机图像质量研究(30)常见问题总结:图像处理对成像的影响--重影

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

strings.xml补充知识

复数名词 <plurals name"book"><item name"one">book</item><item name"others">books</item> </plurals>int bookCount 4; Resources res getResources(); String bookCount res.getQuantityString(R.…

MQTT 入门介绍

一、简述 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布/订阅&#xff08;publish/subscribe&#xff09;模式的"轻量级"通讯协议&#xff0c;该协议构建于TCP/IP协议上&#xff0c…

XML Map 端口进阶篇——常用关键字和格式化器详解

XML Map 端口是用于在不同XML之间建立关系映射的工具&#xff0c;允许通过拖拽操作实现源XML和目标 XML之间的数据字段映射&#xff0c;除此之外&#xff0c;XML Map 端口还提供了其它丰富多彩的功能&#xff0c;使用户能够更加灵活和高效的处理XML 数据映射任务&#xff0c;让…

golang入门介绍-1

今天开始发布关于go语言入门到实战内容&#xff0c;各位小伙伴准备好。 go介绍 Go语言&#xff08;或 Golang&#xff09;起源于 2007 年&#xff0c;并在 2009 年正式对外发布。是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。 Go 是…