身未动心已远,AI带你流浪地球
摘要:我们提供了一键运行的notebook AI作画 Dreambooth 生成自定义主体,可以在ModelArts平台上调试开发自己的文生图模型。
本文分享自华为云社区《DreamBooth+LoRA微调生成主体》,作者: 杜甫盖房子 。
DreamBooth+LoRA微调生成主体
文生图风靡一时,但预训练的文生图模型无法控制生成特定的主体。DreamBooth提供了一种方法,只需要特定主体的几张图就可以微调文生图模型,生成包含特定主体的图片。例如,提供如下主体图片,给定主体名称为biu model:

微调文生图模型后,使用"biu model in the garden"作为prompt推理,将生成包含该主体的图片:

我们提供了一键运行的notebook AI作画 Dreambooth 生成自定义主体,可以在ModelArts平台上调试开发自己的文生图模型。此外,我们还提供了零代码运行的Workflow DreamBooth自定义生成主体,可以通过简单的可视化配置完成模型训练、AI应用打包、在线推理服务部署等全流程,无需任何开发即可玩转个性化文生图模型微调。
DreamBooth
DreamBooth 是一种生成个性化文生图模型的方法,用户可以给定3~5张某个主体的图像及该主体的名称,微调文生图模型(本案例使用的是Stable Diffusion v1-4),微调后的模型可以使用主体名称作为prompt,生成对应主体的图像,如图:

图源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
DreamBooth想要将定义的主体名称与特定主体绑定,同时保留主体对应类别的细节特征。因此,在构建主体名称时可以加入大类别名,如主体是一只可爱的小猫,则主体名称可以定义为"a [V] cat",其中大类名"cat"可以保留大类特征,[V]作为稀有标识符,可以避免主体受通用词组先验知识的影响。
为了减少微调导致的语义漂移,以及保持扩散模型生成内容的多样性,DreamBooth引入了prior preservation loss,利用大类的先验知识生成与训练主体相同大类的不同实例对模型进行监督:

图源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
LoRA
Low-Rank Adaptation of Large Language Models (LoRA) 是一种训练方法,可以在消耗较少内存的同时加速大模型的训练。大模型通常具有很多参数,直接微调大模型将是一个缓慢而昂贵的过程。在Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning中提出一个洞见:预训练语言模型微调后,权重矩阵中表征特征的部分其实是很低秩的。作者受此启发,认为模型微调时,更新的权重表征特征的部分应该也是低秩的,即在模型微调时,权重可以表示为:W=W0+ΔWW=W0+ΔW,其中,W0W0为不更新的预训练权重矩阵,ΔWΔW为实际更新的、可以进行低秩分解的权重矩阵,如图,蓝色部分为不更新的预训练权重,橙色部分为分解为两个低秩矩阵的微调权重:

图源:LoRA: Low-Rank Adaptation of Large Language Models
LoRA有几个显而易见的优势:
- 预训练权重保持不变,因此模型不容易发生灾难性的遗忘;
- 秩分解矩阵的参数明显少于原始模型,微调部分的权重更小,易于移植;
- 预训练模型可以共享,不同的任务只需要提供很小的LoRA模块,可以高效的切换任务,显著降低存储需求;
- 微调成本大幅降;
- 在推理时可以将橙色部分与蓝色部分合并,不会引入额外的推理时延。
案例
我们提供了两种形式的案例:一键运行的notebook AI作画 Dreambooth 生成自定义主体 和零代码运行的Workflow DreamBooth自定义生成主体。
notebook使用上灵活程度更高,适合有一定代码能力的朋友玩一下。Workflow封装程度更高,提供了详细的使用文档,同时包含了AI应用等节点,不需要写任何代码也可以生成自己的模型并在线测试。
身未动心已远,AI带你流浪地球的更多相关文章
- Visual Studio 2015 未响应/已停止工作的问题解决
在我把之前项目从10版本升级到15版本的时候,一打开转换的项目过几分钟立马卡死,出现未响应/已停止工作的问题,我试过了很多方法: 1.升级操作系统,8.1升级10,没用! 2.重装VS,没用! 3.卸 ...
- 阿里云朱照远: AI打开新视界 8K时代已来!
2018年4月11-12日,2018亚太CDN峰会在北京隆重召开,大会由亚太CDN领袖论坛.电视云论坛.短视频论坛.视频云论坛.新技术论坛.运营商论坛.国际云论坛等7大部分组成.在亚太CDN领袖峰会上 ...
- 超级大佬已提前布局AI域名,人工智能时代真的来临了?
近日,郭盛华公司巨资收购的ai域名引起了业界深度关注,ai人工智能行业想必大家都熟悉不会陌生,但是ai域名你知道吗?了解域名行业的米友,对于ai域名肯定都熟悉,为什么今天小编要突然提到ai域名?因为a ...
- 【动态规划】盖房子(house)--未提交--已提交
问题 D: 盖房子(house) 时间限制: 1 Sec 内存限制: 64 MB提交: 27 解决: 16[提交][状态][讨论版] 题目描述 FJ最近得到了面积为n*m的一大块土地,他想在这块土 ...
- AI带你省钱旅游!精准预测民宿房源价格!
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...
- 2106 Problem F Shuffling Along 中石油-未提交-->已提交
题目描述 Most of you have played card games (and if you haven’t, why not???) in which the deck of cards ...
- 2078 Problem H Secret Message 中石油-未提交-->已提交
题目描述 Jack and Jill developed a special encryption method, so they can enjoy conversations without wo ...
- 最美应用API接口分析
最美应用API接口分析html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scr ...
- History of AI
人工智能的历史源远流长.在古代的神话传说中,技艺高超的工匠可以制作人造人,并为其赋予智能或意识.[1]现代意义上的AI始于古典哲学家用机械符号处理的观点解释人类思考过程的尝试.20世纪40年代基于抽象 ...
- TCP带外数据
传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同 ...
随机推荐
- C#学习笔记--面向对象三大特征
C#核心 面向对象--封装 用程序来抽象现实世界,(万物皆对象)来编程实现功能. 三大特性:封装.继承.多态. 类与对象 声明位置:namespace中 样式:class 类名{} 命名:帕斯卡命名法 ...
- 关于如何解决visualc++6.0打开文件闪退的一种方式(附带解决输入法无法显示)
这里我把VisualC++6.0安装程序和filetool分享在我的网盘里面了 网盘下载QAQ 链接:https://pan.baidu.com/s/1azSMX_cOKgb64WT7-gTdbQ?p ...
- 1. JVM内存区块
本篇文章主要讲解Java(JVM)在运行期间,其运行时数据区域的作用.职责与划分.包括堆内存.栈内存--虚拟机栈.本地方法栈.方法区.常量池.程序计数器等概念. 采集可以使用JavaMXBean(采集 ...
- 提升运维效率:轻松掌握JumpServer安装和使用技巧
前言 JumpServer 是一个开源的跳板机的解决方案,提供了对远程服务器的安全访问.会话录制和审计.用户身份管理等功能,适用于需要管理机器资源&大量服务器资源的情况. 本文将在分享 doc ...
- JavaScript高级程序设计笔记09 代理与反射
代理与反射 ES6新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力. 具体就是,可以给目标对象定义一个关联的代理对象,而这个代理对象可以作为抽象的目标对象来使用. 在对目标对象的各种操 ...
- echarts官网文档打开慢的解决方法
echarts官网文档打开慢的解决方法由于我们在做大数据屏的时候需要很多echarts图表,这个过程中也会遇到需要查询echarts官网文档.手册.配置项的时候,但是由于网站在国外,访问很慢或者打不开 ...
- Kotlin协程系列(三)
1.前言 前面两节,我们运用了kotlin提供的简单协程去实现了一套更易用的复合协程,这些基本上是以官方协程框架为范本进行设计和实现的.虽然我们还没有直接接触kotlin官方协程框架,但对它的绝大多数 ...
- .net中优秀依赖注入框架Autofac看一篇就够了
Autofac 是一个功能丰富的 .NET 依赖注入容器,用于管理对象的生命周期.解决依赖关系以及进行属性注入.本文将详细讲解 Autofac 的使用方法,包括多种不同的注册方式,属性注入,以及如何使 ...
- git推送时报错:fatal: unable to access 'https://github.com/xxx/xxx.git/': Failed to connect to 127.0.0.1 port 31181 after 2063 ms: Connection refused
一.报错原因 1.因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理. 2.当 ...
- Rong晔大佬教程学习(1):背景与项目设计目标
riscv实际上是一种ISA的指令集,而处理器的设计的基本结构是不变的(如下所示),其区别在于所选用的指令集的类型,一般有ARM.RISCV.MIPS等,采用了不同的引擎,那么车的外观.系统等也会随之 ...