DreamBooth为何有能力让第一个应用创建者年赚2500万美金?

news2024/12/23 4:50:07

DreamBooth 是一种个性化的文本到图像生成模型,它可以通过向扩散模型(比如Stable Diffusion)中注入少量主体对象,从而达到对基础模型的微调。使用微调后的模型可以生成在不同的场景、姿势和视角中的该主体上下文图像。

Dreambooth由Google提出,使用Dreambooth,一旦系统捕获了对象,就可以合成该对象的任何图像,也就是梦有多远,就能带你走多远。

It’s like a photo booth, but once the subject is captured, it can be synthesized wherever your dreams take you.

听起来不错,但它是如何工作的呢?

我们先看几个例子:

输入几只狗的图片,生成这只狗在不同场景下的图片:

上面的狗有的在游泳,有的在笼子里,有的在睡觉等。

输入几张狗的照片,就可以生成同一个狗的多种艺术风格的照片:

生成的狗有的是梵高风格,有的是达芬奇风格等。

重点是狗还是这同一只狗!

如果你接触文生图不久,或者经验不多,也许你并不觉得惊奇,其实现在的文生图包括图生图的一大挑战就是在不同场景生成同一主体对象。下面我一步步来解释这个问题。

当前的文生图模型,很难做到保持原有主体对象的关键视觉特征,举个例子:对于下面的输入图像:

使用当前模型,比如OpenAI的 DALL-E2和Google 的Imagen 模型 ,使用文生图基于prompt生成新的图像:

retro style yellow alarm clock with a white clock face and a yellow number three on the right part of the clock face in the jungle

在丛林中的复古样式的黄色闹钟,白色的钟面,在钟面的右边有黄色的数字3

对比看下生成的效果:

DAEE-E2没有遵从指令表现在:没有丛林背景,数字3没有在右边,数字3不是黄色。一致性和上下文都没有遵从指令要求。

Imagen 没有遵从指令表现在:数字3没有在右边,数字3不是黄色。上下文遵从指令要求,但是一致性没有遵从指令要求。

最后是DreamBooth 上下文和一致性都完美遵从了指令要求。

DreamBooth是如何做到的呢?为了避免过拟合问题,DreamBooth并没有基于大模型重新训练,而是通过引入带有唯一标识的文本prompt和输入图像对:

,下面图例中的[V] 表示占位符

来对文生图模型进行微调。

还有一种类似的技术叫做文本反转。不同之处在于,Dreambooth 对整个模型进行了微调,而文本倒置注入了一个新单词,而不是重用一个罕见的单词,并且只对模型的文本嵌入部分进行了微调。

通过这种方法,能够在不同环境中保持对象的细节,以及场景和主体之间的真实交互:

比如不同场景中的太阳镜:

不同场景中的包包:

不同场景中的花瓶:

不同场景中的紫砂壶:

上面这些图非常适合拍摄商品图啊。下面来看一个活物,题外话:不知道为什么论文作者喜欢写狗的照片!不同场景中的宠物狗:

还可以展示动物不同角度:

变换颜色:

动物杂交(将两种动物合成一种新的动物),比如将狗和犀牛糅合在一起,当然如果你愿意(看),还有人杂交的图片,比如拜登和特朗普:

还可以给狗装扮不同的饰品:

这么厉害的模型可以怎么用呢?

我还是从一个场景中说起:有些人在写网文小说,也有人在做儿童绘本,但是在不同场景中人物形象就是难以控制一致,最好绞劲脑汁,折腾出来了各种奇淫异技,包括我之前也写过几篇这种文章,包括:

《在Stable Diffusion中如何保持人物形象一致性》【如何让Stable Diffusion在不同场景保持人物形象的一致性 - 知乎】

《如何在Midjourney中保持人物形象一致性》【如何在Midjourney 中创建形象一致的人物角色 - 知乎】

这些方法不能说完全没有效果,只是准确度不高,比较费力,属于治标不治本的技能范畴。

除了上面文章中提到的这些方法,这篇文章顺带在介绍一个方法,这是最省力的方法。

使用名人形象作为自己的身份角色,比如:

medium-full shot of [NAME OF CELEBRITY] with a warm smile, sitting in a charming soho cafe filled with plants, looking out the window as people walk by

除了政治人物,还有明星,运动员,知名科学家等的形象都可以拿来用,但是不足之处在于这种名人效应太强了,商业作品有可能侵权,还有种办法,修改名人形象,比如生成名人儿童照片,像下面这样:

其他冷门名人也可以用类似生成你想要的角色:

[NAME OF CELEBRITY] as a 25 year old female scientist, (walking in a tunnel), blue hair, wispy bangs, (white lab coat), (pants), smiling, stunningly beautiful, zeiss lens, half length shot, ultra realistic, octane render, 8k

这样稍微变通,既能保持了名人的基本形貌,也不至于跟原人物形象雷同。甚至还可以将名人变性,改变性别,种族等方法 :

[NAME OF CELEBRITY] as a 25 year old sexy gorgeous thai female mechanic, blue hair, wispy bangs, ((thicc)), (((dirty clothes))), smiling, stunningly beautiful, zeiss lens, half length shot, ultra realistic, octane render, 8k

Negative: Male, man, cartoon, 3d, video game, unreal engine, illustration, drawing, digital illustration, painting, digital painting, sketch, black and white

[NAME OF CELEBRITY] as a 25 year old jacked handsome Jamaican male mechanic, buzzed haircut, chiled jaw, ((swole)), ((huge biceps)), (((dirty clothes))), smiling, stunningly handsom, zeiss lens, half length shot, ultra realistic, octane render, 8k

这是没办法中的办法,尽管如此,我们还是能够在不违法法理的情况下得到了一致性的人物形象。

如果你实在是对人物形象要求比较高,那只能寄出大杀器了,训练自己的模型,在Stable diffusion中主要有三个可选:

  1. Textual Inversion (cheap and good)
  2. DreamBooth (expensive and best)
  3. Hypernetwork (cheap and ok)

在要求较高的场景中 DreamBooth是你的首选,尽管效果最好,但是成本也最高,其他一般场景 Hypernetwork和ControlNet Deep preprocessing 也可以选,至少比上面文章中列举的目前网络上在用的方法更好。

最后,关于DreamBooth训练方法,因为调参比较复杂,还不一定能成功,我在接下来的文章中视情况再做介绍。

题外话,最近很火的生成个人写真的小程序很火,妙鸭,网上大多推测它使用了LoRA模型训练,如果真是这样的话,说明它还不够先进,国外有基于DreamBooth训练个人形象:只需要花费3美元,就可以在一个月内无限迭代生成自己的专属形象,据报告最早做这个网站的人已经赚了2500万美金。

本文首发 纵横AI大世界 公众号。加入我的知识星球,带你了解更多关于AI方面的前沿技术、应用案例以及变现机会。

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

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

相关文章

单通道 6GSPS 16位采样DAC子卡模块--【资料下载】

FMC147是一款单通道6.4GSPS(或者配置成2通道3.2GSPS)采样率的12位AD采集、单通道6GSPS(或配置成2通道3GSPS)采样率16位DA输出子卡模块,该板卡为FMC标准,符合VITA57.4规范,该模块可以作为一个理想…

如何通过sqlplus连接oracle数据库

本文介绍如果通过sqlplus连接oracle数据库。如果用SQL Developer连接数据库服务器端,需要本地安装oracle客户端,而oracle客户端安装包比较大,安装配置也比较繁琐。这里推荐安装使用oracle的Instant Client。Instant Client是Oracle发布的轻量…

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰,不用来搞点事情,总觉得对不住它。业余打发时间就玩起来吧,总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄,让开发板支持以下它,后续就可以接着在上面玩童年…

JAVA 反编译工具

Releases deathmarine/Luyten GitHub 安装exe 打开拖入文件即可

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)

深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇) 项目目标官方升级地址 向前兼容性问题任务拆分调整项目前提工作应用服务改造驱动器改造(p0)改造范围解决问题 客户端连接配置(p0)改…

卖菜大妈都能听懂:告诉你什么是信息化,数字化,智能化

最近两年,数字化成为了新的流行趋势,网上充斥着大量关于数字化的文章。然而,仔细阅读这些文章会发现,其中大多数只是将信息化一词替换成了数字化,而内容并没有实质性的改变。而且,一些文章还在混淆术语&…

NSS刷web3

[HDCTF 2023]SearchMaster [天翼杯 2021]esay_eval 这题会匹配A或B类 如 "A":1: 绕不过去 可以考虑快速析构 <?php class A{public $code "";function __call($method,$args){eval($this->code);}function __wakeup(){$this->code "&q…

Emacs之将.el编译成bin(一百二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Wireshark抓包分析TCP协议:三次握手和四次挥手

01、前言 面试中我们经常会被问到TCP协议的三次握手和四次挥手的过程&#xff0c;为什么总喜欢问这个问题呢&#xff1f; 其实我们平时使用的很多协议都是应用层协议&#xff0c;比如HTTP协议&#xff0c;https协议&#xff0c;DNS协议&#xff0c;FTP协议等&#xff1b;而应…

工作流与状态机

引言与动机&#xff1a;世界是那么的广阔无垠&#xff0c;姿态万千&#xff0c;我们梦想着计算设备的多元化&#xff0c;而如今我们已经梦想成真&#xff0c;但同时业务模型同样变得纷繁复杂。如果不考虑我们拥有的繁杂的业务模型&#xff0c;就很难谈得上去探索行业发展的方向…

NSX多租户之旅

从多租户数据面到完整的多租户框架 我们很高兴地宣布NSX中的Projects这一项新功能&#xff0c;可以对NSX部署的多个租户进行细粒度的资源管理。 Projects提供灵活的资源分配和管理&#xff0c;将NSX的多租户支持提升到新的水平。企业管理员可以将平台划分为不同Projects&…

Java类集框架(一)

目录 1.Collection集合接口 2.List 接口 (常用子类 ArrayList ,LinkedList,Vector) 3.Set 集合 接口(常用子类 HashSet LinkedHashSet,TreeSet) 4.集合输出(iterator , Enumeration) 1.Collection集合接口 Collection是集合中最大父接口&#xff0c;在接口中定义了核心的…

SolidWorks二次开发系列入门100篇之97-极点坐标

什么是极点 一个模型中的极点是指在某个方向上的最高或最低点。在三维模型中&#xff0c;通常有三个方向&#xff1a;x轴、y轴和z轴。因此&#xff0c;在x轴&#xff0c;y轴和z轴的正方向和负方向上&#xff0c;每个模型可能都有两个极点。极点通常是一些锐角或骨刺&#xff0…

攻防世界zorropub题解与subprocess模块

目录 题目分析&#xff1a; subprocess模块&#xff1a; subprocess.Popen()函数&#xff1a; subprocess.run()函数&#xff1a; 题目脚本&#xff1a; 在攻防世界做到一个题目感觉还挺有意思&#xff0c;记录一下 这个放链接也只是攻防世界的页面&#xff0c;所以直接说…

docker数据持久化

在Docker中若要想实现容器数据的持久化&#xff08;所谓的数据持久化即数据不随着Container的结束而销毁&#xff09;&#xff0c;需要将数据从宿主机挂载到容器中。目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中。 &#xff08;1&#xff09;Volumes&#xff1a;…

【C#学习笔记】值类型(1)

虽然拥有编程基础的人可以很快地上手C#&#xff0c;但是依然需要学习C#的特性和基础。本系列是本人学习C#的笔记&#xff0c;完全按照微软官方文档编写&#xff0c;但是不适合没有编程基础的人。 文章目录 .NET 体系结构Hello&#xff0c;World类型和变量&#xff08;重要&…

分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离 (三)

本篇主要说明&#xff1a; 1. 因为这个mysql版本是8.0&#xff0c;所以当其中一台mysql节点挂掉之后&#xff0c;主从同步&#xff0c;甚至双向数据同步都失效了&#xff0c;所以本篇主要记录下当其中的节点挂掉之后如何再次生效。另外推荐大家使用mysql5.7的版本&#xff0c;这…

3-ASCII-座位渲染-二维码

一 ASCII码 1 概念 ascii码是一种计算机信息交换标准,在这个表里面制定了 128个数字跟128个字符的对应关系 我们只关注字母跟数字的对应关系 2 ASCII码转字符 let str String.fromCharCode(数字)二 js对象跟查询字符串互转 a js对象转查询字符串 //创建一个对象 let obj …

新SDK平台下载开源全志D1-H/D1s的SDK

获取SDK SDK 使用 Repo 工具管理&#xff0c;拉取 SDK 需要配置安装 Repo 工具。 Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is…

【Python】模块学习之matplotlib柱状图、饼状图、动态图及解决中文显示问题

目录 前言 安装 pip安装 安装包安装 柱状图 主要方法 参数说明 示例代码 效果图 解决中文显示问题 修改后的图片 饼状图 主要方法 示例代码 效果图 动态图 主要方法 动态图官方使用介绍 示例代码 颜色设置 内建颜色 字体设置 资料获取方法 前言 众所周…