Diffusers 一岁啦 !

news/2024/4/28 20:33:18/文章来源:https://blog.csdn.net/HuggingFace/article/details/131950678

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟!

十分高兴 🤗 Diffusers 迎来它的一岁生日!这是令人激动的一年,感谢社区和开源贡献者,我们对我们的工作感到十分骄傲和自豪。去年,文本到图像的模型,如 DALL-E 2, Imagen, 和 Stable Diffusion 以其从文本生成逼真的图像的能力,吸引了全世界的关注,也带动了对生成式 AI 的大量兴趣和开发工作。但是这些强大的工作不易获取。

在 Hugging Face, 我们的使命是一起通过相互合作和帮助,构建一个开放和有道德的 AI 未来,让机器学习民主化。我们的使命促使我们创造了 🤗 Diffusers 库,让 每个人 能实验,研究,或者尝试文本到图像的生成模型。这便是我们设计这个模块化的库的初衷,你可以个性化扩散模型的某个部分,或者仅仅是开箱即用。

作为 🤗 Diffusers 的第一个版本,下面是在社区的帮助下,我们加入的最值得一提的特性。我们对作社区的一员,提高功能性,推动扩散模型不局限于文本到图像的生成,感到骄傲和感激。

目录

  • 提高逼真性

  • 视频生成

  • 文本到 3D 模型生成

  • 图像编辑

  • 加速扩散模型

  • 种族偏见和安全性

  • 对 LoRA 的支持

  • 基于 Torch 2.0 的优化

  • 社区贡献

  • 基于 🤗 Diffusers 的产品

  • 展望

提高逼真性

众所周知,生成模型能生成逼真的图像,但如果你凑近看,绝对能发现某些瑕疵,比如多余的手指。今年,DeepFloyd IF 和 Stability AI SDXL 模型给出了让生成图像更逼真的方法。

DeepFloyd IF - 一个分步生成图片的模块化扩散模型 (比如,一个图片被三倍地上采样以提高分辨率),不像 Stable Diffusion,IF 模型直接在像素层次上操作,并采用一个大语言模型来编码文本。

Stable Diffusion XL (SDXL) - Stability AI 的最前沿的 Stable Diffusion 模型,和之前的 Stable Diffusion 2 相比,参数量显著地增加了。它能生成超真实的图片,先用一个基础模型让图像很接近输入提示词,然后用一个改善模型专门提高细节和高频率的内容。

现在就去查阅 DeepFloyd IF 的 文档 和 SDXL 的 文档,然后生成你自己的图片吧!

视频生成

文本到图像很酷,但文本到视频更酷!我们现在能支持两种文本到视频的方法: VideoFusion 和 Text2Video-Zero。

如果你对文本到图像的流程熟悉,那么文本到视频也一样:

import torch
from diffusers import DiffusionPipeline
from diffusers.utils import export_to_videopipe = DiffusionPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()prompt = "Darth Vader surfing a wave"
video_frames = pipe(prompt, num_frames=24).frames
video_path = export_to_video(video_frames)

60f78bb849c85dd9e13c4fe5708c285c.gif

我们期待文生视频能在 🤗 Diffusers 的第二年迎来革命,也十分激动能看到社区在此之上的工作,进一步推进视频生成领域的进步!

文本到 3D

除了文本到视频,我们也提供了文本到 3D 的生成模型,多亏了 OpenAI 的 Shap-E 模型。Shap-E 在大量 3D 和文本的数据对上以编码的形式训练,在编码器的输出层条件化了一个扩散模型。你用它可以为游戏,内部设计和建筑生成 3D 资产。

现在就尝试 ShapEPipelineShapEImg2ImgPipeline 吧。

538453536ea4f2854fdd0f3255701a04.gif
3D render of a birthday cupcake generated using SHAP-E.

图像编辑

图像编辑是在时尚,材料设计和摄影领域最实用的功能之一。而图片编辑的可能性被扩散模型进一步增加。

在 🤗 Diffusers 中,我们提供了许多 流水线 用来做图像编辑。有些图像编辑流水线能根据你的提示词从心所欲地修改图像,从图片中移除某个概念,甚至有流水线综合了很多创造高质量图片 (如全景图) 的生成方法。用 🤗 Diffusers,你现在就可以体验未来的图片编辑技术!

更快的扩散模型

众所周知,扩散模型以其迭代的过程而耗时。利用 OpenAI 的 Consistency Models,图像生成流程的速度有显著提高。生成单张 256x256 分辨率的图片,现在在一张 CPU 上只要 3/4 秒!你可以在 🤗 Diffusers 上尝试 ConsistencyModelPipeline

在更快的扩散模型之外,我们也提供许多面向更快推理的技术,比如 PyTorch 2.0 的 scaled_dot_product_attention() (SDPA) 和 torch.compile(), sliced attention, feed-forward chunking, VAE tiling, CPU and model offloading, 以及更多。这些优化节约内存,加快生成,允许你能在客户端 GPU 上运行。当你用 🤗 Diffusers 部署一个模型,所有的优化都即刻支持!

除此外,我们也支持具体的硬件格式如 ONNX,Pytorch 中 Apple 芯片的 mps 设备,Core ML 以及其他的。

欲了解更多关于 🤗 Diffusers 的优化,请查看 文档!

道德和安全

生成模型很酷,但是它们也很容易生成有害的和 NSFW 内容,为了帮助用户负责和有道德地使用这些模型,我们添加了 safety_checker 模块来标记生成内容中不合适的。模型的创造者可以决定是加入留该模块。

另外,生成模型也能生成误导性的信息,今年早些时候,Balenciaga Pope以画面真实如病毒般传播,虽然是虚假的。这呼吁了我们区分生成的和真实的内容的重要性。这便是我们对 SDXL 模型的生成内容添加一个不可见水印的原因,以帮助用户更好地辨别。

这些特性的开发都是由我们的 ethical charter 主持,你能在我们的文档中看到。

对 LoRA 的支持

对扩散模型的微调是昂贵,且超出客户端 GPU 能力的。我们添加了低秩适应 (Low-Rank Adaptation, LoRA,是一种参数高效的微调策略) 技术来填补此空缺,你可以更快速地以更少内存地微调扩散模型。最终的模型参数和原模型相比也十分轻量,所以你可以容易地分享你的个性化模型。欲了解更多,请参阅我们的 文档,其展示了如何用 LoRA 在 Stable Diffusion 上进行微调。

在 LoRA 之外,我们对个性化的生成也提供了其他的 训练技术,包括 DreamBooth, textual inversion, custom diffusion 以及更多!

面向 Torch 2.0 的优化

PyTorch 2.0 引入了支持 torch.compile()scaled_dot_product_attention() ( 一种注意力机制的更高效实现)。🤗 Diffusers 提供了对这些特性的 支持,带来了速度的大量提升,有时甚至能快两倍多。

在视觉内容 (图片,视频,三维资产等) 外,我们也提供了音频支持!请查阅 文档 以了解更多。

社区的亮点

过去一年中,最令人愉悦的经历,便是看到社区如何把 🤗 Diffusers 融入到他们的项目中。从使用 LoRA 到更快的文本到图像的生成模型,到实现最前沿的绘画工具,这里是几个我们最喜欢的项目:

67f15ebde89e94681fec2a4203c33901.jpeg

我们构建 Core ML Stable Diffusion,让它对开发者而言,在他们的 iOS, iPadOS 和 macOS 应用中,以 Apple Silicon 最高的效率,更容易添加最前沿的生成式 AI 能力。我们在 🤗 Diffusers 的基础上构建,而不是从头开始,因为不论想法新旧,🤗 Diffusers 能持续快速地跟进领域的发展,并且做到位的改进。
- Atila Orhon

804ec09206ef5fcfa9ad57da396de489.jpeg

🤗 Diffusers 对我深入了解 Stable Diffusion 模型而言十分友好。🤗 Diffusers 的实现最独特之处是,它不是来自科研阶段的代码,而主要由速度驱动。科研时的代码总是写的很糟糕,难于理解 (缺少规范书写,断言,设计和记号不一致),在 🤗 Diffusers 上在数小时内实现我的想法,犹如呼吸一般简单。没有它,我估计会花更多的时间才开始 hack 代码。规范的文档和例子也十分有帮助。
- Simo

7f18ea47f8c874a0d2d9bce1701a482b.jpeg

BentoML 是一个统一的框架,对构建,装载,和量化产品级 AI 应用,涉及传统的机器学习,预训练 AI 模型,生成式和大语言模型。所有的 Hugging Face 的 Diffusers 模型和管线都能无缝地整合进 BentoML 的应用中,让模型的运行能在最合适的硬件并按需实现自主规模缩放。
- BentoML

316a014e6fd1909844cfd3ee4134dffc.png

Invoke AI 是一个开源的生成式 AI 工具,用来助力专业创作,从游戏设计和摄像到建筑和产品设计。Invoke 最近开放了 invoke.ai,允许用户以最新的开源研究成果助力,在任意电脑上生成资产。
- InvokeAI

6b0d5e543543bf6f97851028b4a4e1d1.png

TaskMatrix 连接大语言模型和一系列视觉模型,助力聊天同时发送送和接受图片。
-Chenfei Wu

7ed8ac3e420871b2aadbb41c9c282a81.png

Lama Cleaner 是一个强大的图像绘画工具,用 Stable Diffusion 的技术移除不想要的物体、瑕疵、或者人物。它也可以擦除和替换图像中的任意东西。
- Qing

43c703174585de95346afd53ebbdf329.png

Grounded-SAM 结合了一个强大的零样本检测器 Grounding-DINO 和 Segment-Anything-Model (SAM) 来构建一个强大的流水线,以用文本输入检测和分割任意物体。当和 🤗 Diffusers 绘画模型结合起来时,Grounded-SAM 能做高可控的图像编辑人物,包括替换特定的物体,绘画背景等等。
- Tianhe Ren

944669676d4b983c03deeaea202547e7.jpeg

Stable-Dreamfusion 结合 🤗 Diffusers 中方便的 2D 扩散模型来复现最近文本到 3D 和图像到 3D 的方法。
- kiui

29bc379f5c66a71c2acbb0b5522c18b6.png

MMagic (Multimodal Advanced, Generative, and Intelligent Creation) 是一个先进并且易于理解的生成式 AI 工具箱,提供最前沿的 AI 模型 (比如 🤗 Diffusers 的扩散模型和 GAN 模型),用来合成,编辑和改善图像和视频。在 MMagic 中,用户可以用丰富的部件来个性化他们的模型,就像玩乐高一样,并且很容易地管理训练的过程。
- mmagic

656b75579eda84d68050c1c48b731fa6.png

Tune-A-Video,由 Jay Zhangjie Wu 和他来自 Show Lab 的团队开发,是第一个用单个文本-视频对实现微调预训练文本到图像的扩散模型,它能够在改变视频内容的同时保持内容的运动状态。
- Jay Zhangjie Wu

同时我们也和 Google Cloud 合作 (他们慷慨地提供了计算资源) 来提供技术性的指导和监督,以帮助社区用 TPU 来训练扩散模型 (请参考 比赛 )。有很多很酷的模型,比如这个 demo 结合了 ControlNet 和 Segment Anything。

6181b9b4f9955c46a8d868eec150f217.png
ControlNet and SegmentAnything demo of a hot air balloon in various styles

阅读原文 查看动图

最后,我们十分高兴收到超过 300 个贡献者对我们的代码的改进,以保证我们能以最开放的形式合作。这是一些来自我们社区的贡献:

  • Model editing by @bahjat-kawar, 一个修改模型隐式假设的流水线。

  • LDM3D by @estelleafl, 一个生成 3D 图片的扩散模型。

  • DPMSolver by @LuChengTHU, 显著地提高推理速度。

  • Custom Diffusion by @nupurkmr9, 一项用同一物体的少量图片生成个性化图片的技术。

除此之外,由衷地感谢如下贡献者,为我们实现了 Diffusers 中最有用的功能。

  • @takuma104

  • @nipunjindal

  • @isamu-isozaki

  • @piEsposito

  • @Birch-san

  • @LuChengTHU

  • @duongna21

  • @clarencechen

  • @dg845

  • @Abhinay1997

  • @camenduru

  • @ayushtues

用 🤗 Diffusers 做产品

在过去一年中,我们看到了许多公司在 🤗 Diffusers 的基础上构建他们的产品。这是几个吸引到我们关注的产品:

  • Pla‍iDay: “PlaiDay 是一个生成式 AI 产品,人们可以合作,创造和连接。我们的平台解锁了人脑的无限创造力,为表达提供了一个安全,有趣的画板。”

  • Previs One: “Previs One 是一个面向电影故事板和预可视化的扩散模型 - 它能如同导演般理解电影和电视的合成规则。”

  • Zust.AI: “我们利用生成式 AI 来为品牌和市场营销创造工作室级别的图像产品。”

  • Dashtoon: “Dashtoon 在构建一个创造和消耗视觉内容的平台。我们有多个流水线配置多个 LoRA,多个 Control-Net,甚至多个 Diffusers 模型。Diffusers 已经让产品设计师和 ML 设计师之间的鸿沟十分小了,这让 dashtoon 能更加重视用户的价值。”

  • Virtual Staging AI: “用生成模型做家具,来填满空荡荡的房间吧。”

  • Hexo.AI: “Hexo AI 帮助品牌在市场上得到更高的 ROI,通过个性化的市场规模。Hexo 在构建一个专门的生成引擎,通过引入用户数据,生成全部个性化的创造。”

如果你在用 🤗 Diffusers 构建产品,我们十分乐意讨论如何让我们的库更加好!欢迎通过 patrick@hf.co 或者 patrick@hf.co 来联系我们。

展望

作为我们的一周年庆,我们对社区和开源贡献者十分感激,他们帮我们在如此短的时间如此多的事情。我们十分开心,将在今年秋天的 ICCV 2023 展示一个 🤗 Diffusers 的 demo - 如果你参加,请过来看我们的表演!我们将持续发展和提高我们的库,让它对每个人而言更加容易使用。我们也十分激动能看到社区用我们的工具和资源做的下一步创造。感谢你们作为我们目前旅途中的一员,我们期待继续一起为机器学习的民主化做贡献!🥳 ❤️ Diffusers 团队


致谢: 感谢 Omar Sanseviero, Patrick von Platen, Giada Pistilli 的审核,以及 Chunte Lee 设计的 thumbnail。

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟!


英文原文: https://hf.co/blog/diffusers-turns-1

作者: Steven Liu, Sayak Paul, Pedro Cuenca

译者: Vermillion-Qi

审校/排版: zhongdongy (阿东)

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

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

相关文章

【leetcode】链表的中间节点|链表中倒数第k个节点

目录 1.链表的中间节点 2.链表中倒数第k个节点 1.链表的中间节点 思路1:遍历链表,统计节点个数count,返回第count/2 1个节点 📖Note:注意循环条件为--mid,--mid循环执行mid-1次,mid--循环mid次&#xf…

ubuntu开机自启动

ubuntu开机自启动 1、建一个test.sh脚本,并写入 #!/bin/sh gnome-terminal -x bash -c ‘cd /home/文件路径/;python3 main.py’ exit 0 2、:wq!保存 3、创建rc-local.service文件(sudo vim /etc/systemd/system/rc-local.service)&#xf…

VAE-根据李宏毅视频总结的最通俗理解

1.VAE的直观理解 先简单了解一下自编码器,也就是常说的Auto-Encoder。Auto-Encoder包括一个编码器(Encoder)和一个解码器(Decoder)。其结构如下: 自编码器是一种先把输入数据压缩为某种编码, 后仅通过该编…

【Jenkins系列】-Pipeline语法全集

Jenkins为您提供了两种开发Pipeline的方式:脚本式和声明式。 脚本式流水线(也称为“传统”流水线)基于Groovy作为其特定于域的语言。而声明式流水线提供了简化且更友好的语法,并带有用于定义它们的特定语句,而无需学习…

记一次安装nvm切换node.js版本实例详解

最后效果如下: 背景:由于我以前安装过node.js,后续想安装nvm将node.js管理起来。 问题:nvm-use命令行运行成功,但是nvm-list显示并没有成功。 原因:因为安装过node.js,所以原先的node.js不收n…

STM32 USB使用记录:HID类设备(后篇)

文章目录 目的基础说明项目构建与代码调整接收发送代码与测试示例链接报告描述符总结 目的 接上篇: 《STM32 USB使用记录:HID类设备(前篇)》 USB HID 类的设备有个比较大的好处是大部分时候接入主机中都是可以免驱使用的。这篇文…

spring 存储对象 + 获取对象

前言 本篇在spring中如何使用五大类注释与方法注释将对象加入IOC容器中,了解如何使用注释来获取容器中的Bean对象,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言1.通过注释将类加入IoC…

【LeetCode每日一题】——946.验证栈序列

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 栈 二【题目难度】 中等 三【题目编号】 946.验证栈序列 四【题目描述】 给定 pushed 和 p…

Kyuubi入门简介

一、官方简介 HOME — Apache Kyuubi 二、概述 1、一个企业级数据湖探索平台 2、一个高性能的通用JDBC和SQL执行引擎 3、一个基于spark的查询引擎服务 三、优点 1、提供hiveserver2查询spark sql的能力,查询效率更为高效,首次构建连接时会持续保持连…

FANUC机器人SRVO-050碰撞检测报警和SRVO-053干扰值过大故障报警总结

FANUC机器人SRVO-050碰撞检测报警和SRVO-053干扰值过大故障报警总结 前面和大家分享了关于SRVO-050碰撞检测报警和SRVO-053干扰值过大的原因分析以及处理方法,感兴趣的朋友可以参考以下链接中的内容: FANUC机器人SRVO-050碰撞检测报警原因分析及处理对策

【ArcGIS Pro二次开发】(54):三调名称转用地用海名称

三调地类和用地用海地类之间有点相似但并不一致。 在做规划时,拿到的三调,都需要将三调地类转换为用地用海地类,然后才能做后续的工作。 一般情况下,三调转用地用海存在【一对一,多对一和一对多】3种情况。 前2种情况…

ROS从入门到精通6-8:costmap代价地图插件编写案例(prohibition_layer)

目录 0 专栏介绍1 为什么需要代价地图插件?2 自定义代价地图插件3 仿真测试 0 专栏介绍 本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机器人建模和应用ROS进行实际项目的开发和调试的工程能力。 🚀详情&…

2023年的深度学习入门指南(20) - LLaMA 2模型解析

2023年的深度学习入门指南(20) - LLaMA 2模型解析 上一节我们把LLaMA 2的生成过程以及封装的过程的代码简单介绍了下。还差LLaMA 2的模型部分没有介绍。这一节我们就来介绍下LLaMA 2的模型部分。 这一部分需要一些深度神经网络的基础知识,不懂的话不用着急&#xf…

向npm注册中心发布包(下)

目录 1、在package.json文件中指定dependencies和devDependencies 1.1 将依赖项添加到 package.json 文件 1.2 从命令行中 将依赖项添加到 package.json 文件 1.3 手动编辑 package.json 文件 2、关于语义版本控制 2.1 在已发布的包中增加语义版本 2.2 使用语义版本控制…

Vue实现柱状图横向自动滚动

Vue实现柱状图横向自动滚动 1. 前言2. 代码3、实现效果图 1. 前言 原理:通过定时器修改Echarts的配置(options)达到我们想要的效果。 此外,我们还需要了解Echarts中dataZoom这个组件,这个组件用于:用于区域…

探究Spring Bean的六种作用域:了解适用场景和使用方式

这里写目录标题 单例(Singleton)作用域:原型(Prototype)作用域:请求(Request)作用域:会话(Session)作用域:全局(applicati…

MySQL绿色安装和配置

1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 (1) MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 (2) MySQL Enterprise Ed…

文件上传--题目

之前有在技能树中学过文件上传,正好借这次进行一个整合: 技能树中所包含的题目类型有 无限制绕过 1.上传一句话木马 2.链接中国蚁剑 前端验证 1.会发现这个网站不让提交php,改后缀为jpg格式,再用burp抓包 2.在用中国蚁剑连接 .…

[start] m40 test

software & update 470 drive version # cd /etc/apt # mv sources.list sources.list.bak # sudo vi /etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ ja…

Linux搭建Promtail + Loki + Grafana 轻量日志监控系统

一、简介 日志监控告警系统,较为主流的是ELK(Elasticsearch 、 Logstash和Kibana核心套件构成),虽然优点是功能丰富,允许复杂的操作。但是,这些方案往往规模复杂,资源占用高,操作苦…