谁在用 AI 图片生成

2024-9-23 评论(2) 分类:互联网 Tags:

AIGC 图片生成的技术,基本是22年开始爆发,Midjourney 2022年7月推出,Stable Diffusion 2022年8月推出,至今两年发展迅速,已经广泛在很多场景应用,但这个市场上是谁在用图片生成,用来做什么,一直以来在我认知里都有些模糊,这篇文章做下相关调研。

线上线下所有用到图片的地方,都有 AI 图片生成的应用空间,而 AI 图片生成的能力,也会创造出新的领域和行业,就目前能看到的已经在应用的场景,归归类可以分为:生产力工具、大众娱乐、探索创作。

ToB:生产力工具

把 AI 图片生成能力作为实际工作中的生产力工具,用在各领域的内容生产,替换原来的工作流,效率有量级上的提升,同时也有因为 AI 图生成带来的新的领域,例如自媒体。

这里的用户大部分是设计师,全球设计师 9000w,包含建筑设计、室内设计、工业设计、服装设计、产品设计、平面设计等,Adobe 付费订阅人数2650w(2022年),是非常大的市场。

电商

电商有大量的市场,为了展示、介绍、美化不同种类的商品,对图片有巨大的诉求,是AI图片(以及视频)最好的应用场景。

  1. 模特图:模特换衣、模特生成、在线试衣,专门服务服饰品类的工具,全球电商服饰品类市场规模六千亿美元,这让它对应的工具需求也足够大,能搜到的有几十家公司专门在做,例如BotikaVModel.AI摹小仙千面AI模特ZMO.ailinkfox,美图秀秀/醒图等也有相关工具。入门门槛低,但效果的调优是wu’zhi’jing的,不同角度/动作/不同衣服穿上后的自然度等都需要不断调优。
    1 2
    换模特 换衣
  2. 商品图:上传商品图,AI 可以帮你生成商品在不同环境下的宣传图,免去摆拍。相对于直接抠图→套模板,AI生成质量高,可定制程度也高,可以创造符合商品的各种背景,商品能更好融入对应背景、环境的光线阴影、颜色、高保真,这里的效果调优也是无止尽。同样有非常多公司在做,photoecom灵动AIPicCopilot。综合性的图片工具大多也会加入这个功能,比如 photoroom
    3 4
    灵动AI photoroom
  3. 其他长尾:电商很庞大,除了上述两个类,整个上下游各个品类还有不少细小长尾的 AI 图片生成需求,例如 T恤定制、衣服花纹生成、款式生成、站外营销图等。
  4. 从发展趋势看,电商平台如果自身有余力,都会去做这样的工具,嵌入到自己平台内,整个工作流更顺,像淘宝千牛自己就做了。但竞争是无止境的,所有商家都用平台提供的工具,质量品质同质化后,就会有个性化或追求更好效果的诉求,外部工具一直会有机会。

(更多…)

什么是多模态大模型

2024-8-20 评论(2) 分类:技术文章 Tags:

是什么

  1. 在机器学习领域,”模态”被用来描述不同类型的数据形式,如文本、图像、视频、音频等。
  2. 最开始以 ChatGPT 为代表的大语言模型,都是只支持文本这个单一模态。
  3. 可以同时处理文本、图像、音频等多种形式的数据输入输出的大模型,就是多模态大模型。

特点:端到端

一个模型能同时理解和处理多种模态的数据输入。

  1. 非端到端的例子:
    1. 在 ChatGPT 上,可以调用 DALL-E 生成图片,但实际流程是 prompt → GPT4模型 → 生成细节提示词 →DALL-E模型 → 生成高质量细节图像,只是一个能力串联,并不是一个多模态大模型。
    2. 在豆包或其他一些LLM APP上,支持语音输入→文字和语音输出,实际流程是 语音→ASR模型转文字→LLM→文字→tts模型转语音,并不是端到端 语音→LLM→语音。
  2. 端到端的例子:
    1. GPT4o 的实时语音对话,流程是 语音→ GPT4o模型→语音。延迟低、语气/音色/停顿/语义都能综合理解到。
    2. claude3.5 支持按要求识别图片,流程是 图片+prompt → claude模型→文本。能很好结合 prompt 按要求输出对图片的识别。
  3. 端到端的好处:
    1. 模型能直接从原始的数据中学习不同模态之间的关联和映射关系,发现隐藏在数据中的复杂跨模态模式,可以 scale up 达到涌现,没有中间折损,可以做到低延时。

(更多…)

视频生成模型调研 – 人像视频/基础模型/可控编辑/DiT

2024-7-21 评论(0) 分类:技术文章 Tags:

经常看见有一些视频生成的模型出来,类型还不太一样,简单学习和调研下这个领域和相关技术的情况。在我所看到的有限的范围里,可以把近期出现的视频生成能力分成两类:

  1. 一类是专门精细化控制人物表情动作的模型,驱动一张人像照片动起来。这类模型存在已久,老技术也能实现,近期不断有新模型出现,效果也越来越好,业界好像没针对这一类命个名,姑且叫它人像视频
  2. 另一类是通用的视频生成基础模型,包括基于扩散模型的,以及 sora 出现后的 DiT 架构模型。另外跟 Stable Diffusion 图片生成的生态类似,也会有一些为视频生成基础模型配套的可控编辑扩展模型

人像视频

先来看看人像视频,常见有两类:

  1. 表情控制:输入人物表情视频,让图片的人脸跟着做同样的表情。变种是输入音频,让图片人脸跟着音频的口型动,talking photo。
  2. 姿态控制:输入人物动作的视频,让图片的人跟着视频的动作动。火过的 case 是通义千问的全民舞王科目三。
表情控制(Vimi) 姿态控制(Animate Anyone)

这里的技术都不是这波大模型后才有的,上个时代已经有很多做得不错,上一波爆火的蚂蚁呀嘿已经是 2021 年的事了,相关论文也是 2019 年就有了:《First Order Motion Model for Image Animation》。后面不断有新的方案,包括基于和不基于扩散模型的方案。下面列几个近期出现,看起来还行的方案。

表情控制

基于扩散模型

基于扩散模型的方案,大体思路看起来是在原网络插入 pose/人脸点位 控制,跟 ControlNet 原理差不多,扩散模型本身除了 SD Unet 那套外,基本都会加入视频生成常见的 spatial-attention 和 temporal-attention。

(更多…)

Transformer 里的 Q K V 是什么

2024-7-7 评论(3) 分类:技术文章 Tags:

Transformer 作为新 AI 时代的基石,有必要深入了解下。网上对 Transformer 的教学文章/视频非常多,很多讲得很好,像 3Blue1Brown 的讲解视频,以及这篇文章。整个详细过程原理写不来,本文主要记录一下其中我觉得比较容易混淆的 Attention 模块运算过程,主要是里面的 Q K V 的概念/运算过程/作用。

1

这是 Transformer 架构图,左边是 encoder,右边是 decoder,实际 LLM 大模型是只由右边 decoder 构成,这里面大部分是常用的 Feed Forward(前馈网络)/ Add(残差连接)/ Norm(层归一化),核心还是 Multi-Head Attention 模块,我们来具体看看 Multi-Head Attention 模块里做了什么。

输入

假设一个字是一个 token,输入是”我有一个玩”(用于推测下一个字”具“),5 个字,每个字用一个向量表示,每个向量假设是 9 维(GPT3 是 12288 维),也就是用 9 个数值表示这个字,那每个词顺序排下来,就组成了 5 行 9 列的输入矩阵,称他为 X,每一行代表一个词。

2

6每一个圈圈代表一个数值。”我“字由蓝色的9个数值表示,“有”字是绿色的9个数值。这 9 个数值组成一个 9 维向量,这里每个字对应的向量值是一开始定好的,至于怎么定的不细说,可以看看相关文章。

这个输入矩阵经过 Multi-Head Attention 模块运算,输出另一个同宽高的矩阵,接下来详细看看这个运算过程。

3

权重矩阵 & Multi-Head Attention

Multi-Head Attention 是由多个 Self Attention 模块拼接而成,如果它只有一个 head,就是一个 Self Attension 模块。

(更多…)

AI 瞎想 – LUI交互/新计算机

2024-6-29 评论(0) 分类:互联网 Tags:

LUI 交互

LUI (Language User Interface,自然语言 or 输入框为主的交互) 有几大缺点:

  1. 效率低(打字)or 隐私性差(语音)。
  2. 说话是填空题(要动脑),GUI 是选择题(可无脑选)。
  3. 难以精确表达。

这三点都是成本,如果一些场景想尝试 LUI 代替部分 GUI,需要时刻想好,如果用户得到的体验大于这几点成本,那就是合适的场景,否则不要勉强。

用 LUI 操作使用工具,模型能力(识别/执行能力)得在这个垂直领域靠近 AGI(代指跟人的识别和执行能力一致),或者能在这领域内限定在尽量小的范围内靠近 AGI,否则交互过程中模型不理解/无法执行带来的挫败,加上第一二点的成本,用户得到的体验大概率是负的。

微软copilot 尝试了GUI 为主,LUI为辅的方式。剪映的对话式剪辑尝试了以 LUI 为中心,GUI 为辅或者没有 GUI 的方式。目前看起来都没达到预期。原因自然是模型能力还达不到,识别和执行能力差。

视频剪辑/PPT制作 领域都太大,在这个大垂直领域模型要做到 AGI 的程度还太早,也是高估了短期模型能力的进步速度,需要把领域范围限定得更小,在这范围内用户的输入都能很好理解和执行,才可能跑通。

假如模型真达到 AGI 的程度,跟人的能力一样,是否视频剪辑用 LUI 是最好的方式?想象中不一定,工具能力不会是无限的,总有个范围,这个范围 GUI 能清楚地告诉你,LUI 很难,到时可能会有其他演化的交互配合 LUI。

新计算机

最近学习 transformer,看那些向量/矩阵的乘法,有种在学数字电路原理的感觉,要作类比的话,模型就是新的计算机,transformer 像芯片,SFT 像汇编,prompt 像 c 语言,往上 langchain/coze 是高级语言的尝试。原计算机是确定性计算,模型是概率性的模拟人脑的计算机。

但模型并没有遵循摩尔定律,18 个月性能翻一翻,GPU 运算能力确实每年性能都在暴涨,但模型的性能不是计算速度,而是理解能力。GPT-3.5 出来已经 18 个月了,GPT-4 已经 15 个月,模型能力的进步很有限,在这过程最大的变化只是开源模型逐渐追上,以及基于模型上层搭建的应用和生态上,基础模型能力没有大的突破。

我们预期模型性能能持续增强,基础是 Scaling Law,Llama3 训练中的最大参数量模型是4000亿,传闻 GPT4 参数量是1万亿,而人类大脑神经元突触连接有1000万亿(来源Wikipedia,也有说100万亿的),神经网络本身就是模仿大脑的构造,如果做类比有 100-1000 倍的差距,有很大的空间。Scaling Law 目前看还没收敛,能继续往这条路走,只是技术上的承接还没看到规律,无法形成新的摩尔定律,所以大家很期待 GPT-5,它能一定程度上让人判断模型的摩尔定律大概是什么节奏和速度。

图生成和视频生成领域,反而在过去18个月里有非常明显的提升,因为相对 LLM 它还在早期,而图像和视频的特性导致它早期也能有很好的应用。若 LLM 不顺利,图片视频能持续保持这提升速度,更有可能成为这几年的重点。

手机能跑图生成和 LLM 大模型吗

2024-6-11 评论(1) 分类:技术文章 Tags:
💡 能,但还比较勉强。

在客户端上跑大模型,一定是未来的趋势。

  1. 上个时代 AI 的核心应用是推荐系统,推荐是依赖海量数据的,海量数据只有服务端上存在,在推荐这主场景下客户端 AI 上能做的事很少,发展得比较吃力。
  2. 生成式 AI 时代,最大的应用就是模型本身,只有训练时依赖海量数据,使用时并不依赖数据,那理论上只要客户端硬件资源足够,在客户端使用,跟在服务端使用,场景和效果是一致的。
  3. 生成式 AI 在端上跑模型,最大的优势是成本。成本是当前生成式 AI 应用除了效果以外第二大关键因素,在用户客户端上跑模型,对服务提供方来说就是 0 成本,0 成本使更多场景大规模免费应用成为可能。其他的优势还包括 隐私保护、实时性、离线可用

硬件条件

那当前手机设备硬件条件如何?我们可以通过一些指标对手机和服务端的算力差距有个大概认识。

显存:一个模型能不能跑,取决于显存够不够,显存不够模型无法加载。

  1. 服务端一般用独立显卡,有独立显存。
  2. 手机通常使用系统级芯片 Soc(System on a Chip),无独立显卡,SoC 中包含了 CPU、GPU、基带等多个组件,使用统一内存架构允许 CPU 和 GPU 共享同一块内存,所以手机 GPU 显存跟手机内存是一个东西。

性能:而模型跑得快不快,取决于芯片性能怎样。

  1. 芯片性能取决于很多因素,例如芯片架构、显存带宽,而算力是其中一个,通常用TOPS(万亿次每秒 Tera Operations Per Second)指标来衡量算力。TOPS 默认是针对 INT8 整型数的处理次数,另一个指标 TFLOPS 是针对 Float32 浮点数的处理次数。
  2. 在通用 GPU 以外,现代芯片会搭载专门处理 AI 运算的硬件加速器,NVIDIA 是 Tensor Core,手机 SoC 芯片是 NPU (Neural Processing Unit 神经网络处理单元),以下是 Tensor Core 和 NPU 的运算性能指标。
  3. 不同芯片性能,特别是涉及不同芯片架构设计的,应该以实测数据作为对比,但当前缺乏这类数据,先用 TOPS 指标看个大概。

我们看看当前常用的英伟达各种显卡芯片,以及移动端设备芯片这几个指标的情况:
(更多…)

在复刻黏土风图生成中学习(2) — ControlNet / IPAdapter / instantID

2024-6-2 评论(1) 分类:技术文章 Tags:

接上篇,继续优化我们的黏土风 workflow。

引导图控制

来看看上篇里的最后一个case:

1

黏土风格效果还可以,但人物动作总会跟原图不一致,一会双手放地板,一会侧身。图生图一般希望整体轮廓、人物姿态与原图一致,有没有办法控制?

我们可以给它加上 ControlNet 节点,用 canny 边缘检测,试试控制画面主体的轮廓结构:

3

这下就比较准确地还原了原图的姿势了。

ControlNet 介绍

ControlNet 是一种神经网络架构,能做到通过添加额外的引导图片输入(如边缘图、姿态图等)来控制 SD 模型的扩散生成方向,实现对图像生成过程的精确引导。

通过这套架构,可以训练出每种控制方式对应的模型,生图过程中应用这个模型,输入对应的引导图,就能生成对应的图。

以下是 ControlNet 作者训练好的几种模型,以及用这些引导图生成的图片效果:sketch草稿、map法线贴图、depth深度图、canny边缘、line线、edge边缘、场景、Pose人物姿势

2

看下 ComfyUI ControlNet 相关的这几个节点:

4

  1. 每个 ControlNet 模型的输入,都是预处理好的一张引导图,一般用简单的算法就能处理出来,这里用的是 ControlNet canny 边缘控制的一个模型,对应一个 canny 算法节点,一个古老的算法,python 的 OpenCV 库就有。
  2. 接着加载 canny 对应的 ControlNet 模型。
  3. 这张边缘图片输入到 ControlNet 模型,跟文本一起,作为模型降噪生成过程中的引导,指引降噪方向,生成符合文本描述、符合图片边缘形状的图。

这里的 canny 可以替换成 sketch、depth、pose 等算法,搭配上对应的 ControlNet 模型,就能实现不同的控制方式。

ControlNet 原理

扩散生图模型出现后,就有很多人探索怎样更好控制它的生成,显然如果只能用文字生图,可控性太差,最直观的还是能通过草图指引控制它画什么。

怎么解这个问题?对模型简单做一个端到端微调是否可行?例如想让模型按 canny 检测出来的边缘去生成图片,那造一堆 原图 – canny图 的配对作为训练集,微调让模型学习到边缘图和最终生图的关系,是否就可以?大思路是这样,但需要解决微调带来的过拟合、破坏原模型能力的问题,需要设计一个网络结构,能很好认得 canny 引导图特征、跟扩散模型很好结合、效果稳定。

有很多人做过不同的研究,提出过多种方法,ControlNet 的方法相对前人有很大优势,能稳定用在各种场景上,效果最佳,应用广泛。

网络架构

(更多…)

理解 Stable Diffusion UNet 网络

2024-5-26 评论(0) 分类:技术文章 Tags:

前面的学习中,我们把 SD UNet 网络当成黑盒,不太影响对图片生成大致原理的理解,但在继续学 SD 的过程中,发现 ControlNet、T2I-Adapter、IPAdapter 等这些技术,都是在原 SD 网络模型上以各种方式对网络做修改叠加,要理解这些技术,还是得先了解下 SD UNet 网络结构的一些细节,不然看得很费劲。

SD 模型构成

从之前的学习我们知道,Stable Diffusion 模型里包含了三个组件:CLIP、VAE、UNet,这三个组件的参数和大小分布(来源):

组件 参数个数 文件大小 占比
CLIP 123,060,480 492 MB 12%
VAE 83,653,863 335 MB 8%
UNet 859,520,964 3.44 GB 80%
Total 1,066,235,307 4.27 GB 100%

整个生图的核心网络就是 UNet。UNet 最初是用于医学图像分割任务而提出来的,但它的特性展现了在图像其他领域的应用潜力,后续经过扩散模型的改进,很好应用在了图像生成上,所以 Stable Diffusion 的 UNet 实际上在原 UNet 网络架构上做了一些改造。

基础 UNet 网络

我们先来看看原 UNet 网络架构:

1

(更多…)

在复刻黏土风图生成中学习(1) — 模型微调/LoRA 原理/图生图

2024-5-19 评论(0) 分类:技术文章 Tags:

继续学习 Stable Diffusion,这次想以搭建一个实际可用的生图场景 — 黏土风格作为引导,弄清楚整个流程的同时,把过程中遇到的相关概念和原理也做了解,所以这篇是掺和了应用流程和原理的文章。

ComfyUI & 模型

使用 Stable Diffusion 去生成图,有非常多的插件/模型/配置相互搭配组合使用,一般用 WebUIComfyUI 这两个工具,更推荐 ComfyUI,自由串联一个个模块,流程更清楚,网上有很多在自己电脑部署使用 comfyUI 的保姆级教程,比如这个,这里就不多介绍了。

先看 ComfyUI 这个默认的最简单的 workflow:

1

这里面简单的几个元素概念和生图流程,上篇文章都有介绍过:最左边的 Load Checkpoint 是加载 SD 模型,接着用 CLIP 模型编码文本 → 生成隐空间原始噪声图 → 采样器根据文本和噪声图输入→在隐空间里迭代降噪生成隐空间图片→最终用VAE解码图片。

为什么叫模型 checkpoint ?模型在微调训练过程中,会在关键节点保存模型参数的状态,这个保存点被称为 checkpoint,SD 有大量基于基座模型微调训练的模型,包括官方出的,比如 SDv1.5 是从 v1.2 的基础上调整得到的,SDXL Turbo 也是基于 SDXL1.0 基础上训练的,这些模型都被称为 checkpoint,这些 checkpoint 包含了生成图所需要的全部核心组件,包括 VAE、CLIP、UNet 的模型数据,可以直接使用。

那模型文件的后缀为什么是 .safetensors ?早期的模型文件后缀是 .ckpt (checkpoint缩写),一个通过 Python 序列化后的数据,使用时需要对它反序列化,这个反序列化过程也就容易被注入恶意代码,所以后面提出了新型安全的格式 safetensors,只包含张量数据(模型上的参数数据),无需反序列化,安全且速度快,目前模型基本都以这种方式存储。

我们用这个默认 workflow,选个模型,用纯提示词 claymation style, a tower 试试生成黏土风图片:(图上使用了 dreamshaperXL 模型,是在SDXL 的基础上微调的最受欢迎的一个模型)

2

可以看到效果并不是很好,比较生硬。可能加多一些细节提示词、调节下相关参数会好一些,但在图片训练过程中,黏土风格相关的图片数量应该是不多的,训练图片对应的文本描述也比较散,如果固定要这种风格,生图的 prompt 要尽量贴近训练时这类图偏对应的文本,才有可能有好一点的效果,这很难控制,也不保证效果,很难达到我们想要的风格。

(更多…)

Stable Diffusion 图片生成原理简述

2024-5-13 评论(1) 分类:技术文章 Tags:

最近关注和学习 AI 比较多,包括 AIGC 和 LLM 大模型,现在 AI 的原理介绍和入门教程已经非常多了,但还是想自己写一下,主要是遵从费曼学习法,分享是最好的学习,帮助自己整理思路。

AI 图片生成像魔法一样,要完全理解里面的算法细节原理门槛挺高,但如果只是了解基本思路和相关概念,还是比较简单的。Stable Diffusion 涉是当前最流行的 AI 图片生成模型,本文基于 Stable Diffusion 介绍图片生成的基本原理,希望对大家有帮助。

扩散模型

目前市面上文字生成图片基本上都基于 Diffusion 扩散模型,Stable Diffusion / Flux 都是,它最基本的原理是:根据文字指示,把一张随机生成的全是噪点的图片,一步步去掉噪点生成跟文字描述匹配的图片。

具体是怎样做到的?这里可以分步看两个问题:
  1. 生成:怎么从一张随机噪点的图生成一张正常的图
  2. 控制生成:怎么控制这个生成的图跟用户输入的 prompt 文字关联上

1. 生成

先看下第一个问题:从随机噪点图生成一张正常图片。

Denoising UNet

简化看下大概过程:

Denoising UNet 是一种基于 UNet 架构的深度学习模型,专门用于图像去噪任务。

可以粗略地理解为,Denoising UNet 这个模型在训练过程中记录了海量图片的内容(不是精确存储,可以理解为识别提取了图片特征,模糊地记忆图片的关键信息,跟人脑对一个画面的记忆类似)。在使用这个模型时,输入一个随机噪点图,经过模型处理能还原生成一张整张的图片。

如果你是用一张图片拼命训练它,那这个模型训练出来后,最终使用它时生成出来的就是这张图片本身,因为整个模型记录的都是这张图片的信息。如果你用一万张不同的图片训练这个模型,那使用它生成出来的会是这一万张图片内容随机组合的一张图片。

加噪降噪

上面说的这个生成过程,并不是一次性就从随机噪声图变成正常图了,而是一步步降噪的过程。

如下图所示,X0是正常的图片,XT是一个完全随机噪声,从X0到XT还有中间非常多加了不同程度噪点的图,模型学习记录的是怎么对一张有噪点的图逐步去噪点,还原出最终图。

1

Denoisiong UNet 这个模型的能力是,给一张图片,它能预测出来这张图片上是加了多少噪声,这样就可以让这张图减掉这些噪声,得到更清晰一点的图,最终逐步降噪为一张正常图片。

(更多…)