Diffusion
文章平均质量分 85
多恩Stone
聚焦时尚设计领域的高可用 AIGC,现于香港理工-人工智能设计研究所搬砖
展开
-
【Domain Generalization(4)】领域泛化与文生图之 -- CDGA 跨域生成式数据增强 Cross Domain Generative Augmentation
Image Classification 上的领域泛化,重点是用 LDM 来做数据增强,关键是补充了 Cross Domain (两种 Domain 之间)的数据。原创 2025-01-14 21:23:33 · 718 阅读 · 0 评论 -
【Domain Generalization(3)】领域泛化与文生图之 -- QUOTA 任意领域中的生成物体的数量可控
任务是文生图,重点在生成图像中物体数量的准确性/可控性。关键是 Any Domain,在两阶段(不同 Domain) 的数据上对新增的 token 优化/训练,实现领域泛化。原创 2025-01-13 16:55:58 · 987 阅读 · 0 评论 -
【Flux 拆解(1)】CLIP 和 T5 的 Tokenizer 异同
本系列将以 Flux-dev 为例,详细拆解各个部分的细节和重点。Flux 整体框架图如下,来源于: 《Stable Diffusion 3「精神续作」FLUX.1 源码深度前瞻解读》原创 2024-10-19 15:53:22 · 1729 阅读 · 0 评论 -
【分布式训练(2)】深入理解 DeepSpeed 的 ZeRO 内存优化策略 (三阶段的区别)
在深度学习领域,分布式训练是一个重要的研究方向,它允许我们利用多个GPU来加速模型的训练过程。然而,随着模型规模的增大,单个GPU的内存限制成为了一个瓶颈。为了解决这个问题,DeepSpeed 提供了一种名为 Zero Redundancy Optimizer(简称 ZeRO)的技术,它通过不同的阶段(stage)来优化内存使用,从而使得训练更大的模型成为可能。原创 2024-10-12 21:28:13 · 718 阅读 · 0 评论 -
【Hugging Face 下载中断】Git LFS 如何下载指定文件、单个文件夹?
在处理大型模型或数据集时,我们经常使用 Git Large File Storage (LFS) 来管理这些大文件。然而,下载过程中可能会遇到中断,需要重新下载特定文件或文件夹。本文将介绍如何在 Hugging Face 上使用 Git LFS 下载指定文件或单个文件夹。原创 2024-09-20 11:05:48 · 678 阅读 · 0 评论 -
【扩散模型(十)】IP-Adapter 源码详解 4 - 训练细节、具体训了哪些层?
IP-Adapter 训的就是 image_proj_model(或者对于 plus 来说是 resampler) 和 adapter_modules 两块。在 adapter_modules 中,实际只训了 IPAttnProcessor2_0 的 to_k_ip 和 to_v_ip。adapter_modules 是在每个有含有 cross attention 的 unet block 里进行的替换,如下图所示。原创 2024-09-06 18:25:20 · 1181 阅读 · 2 评论 -
【扩散模型(九)】IP-Adapter 与 IP-Adapter Plus 的具体区别是什么?
从下图中可以很直观地看出有两处不同,第一是使用 image encoder 的方式不同、得到了不同的图像特征,第二是将原有的简单 ImageProjModel 替换成了更加复杂的 Resampler 以提取更多的图像信息。(2) .hidden_states[-2]:这行代码调用self.image_encoder时,通过 output_hidden_states=True 参数指示编码器输出除了。是一个简单的投影模型,可能用于将图像特征投影到一个多维空间以便于与其他类型的数据结合。原创 2024-08-27 22:08:23 · 1700 阅读 · 0 评论 -
【扩散模型(六)】IP-Adapter 是如何训练的?2 源码篇(IP-Adapter Plus)
在 IP-Adapter Plus 中,采用的是 Resampler 作为img embedding 到 ip_tokens 的映射网络,对图像(image prompt)中信息的抽取更加细粒度。从以下代码可以看出,IPAdapter 主要由 unet, image_proj_model, adapter_modules 3 个部分组成,而权重需要被优化的(训练到的)只有 ip_adapter..parameters(), 和 ip_adapter.,本文的重点是后续训练的实现。原创 2024-08-27 17:22:24 · 1519 阅读 · 0 评论 -
【扩散模型(八)】Stable Diffusion 3 diffusers 源码详解2 - DiT 与 MMDiT 相关代码(下)
中的 JointTransformerBlock 类,其中 hidden_states (noisy latent)和 encoder_hidden_states (text prompt) 分别通过 norm1 和 norm1_context 后,进入了第四层。transformer_sd3.py 中的 forward 函数中以下片段进入 for 循环,如果不训练 backbone的话,那么就是从 else 分支进入 block 中。下方画出的图片和对应代码即为文图融合的核心关键,在原论文中。原创 2024-08-26 10:34:27 · 1805 阅读 · 2 评论 -
【炼丹经验积累(一)】梯度消失 学习率自动调节 附代码
(1)先 warm up,在前 1/10 个训练步中,学习率从 0 调节到设定的 1e-5。自动调节学习率的方式很多,本文先从最简单地尝试起来,即“线性调节”(2)再衰减,在后续的训练步中,线性地从 1e-5 逐渐减为 0。原创 2024-08-22 15:03:18 · 758 阅读 · 0 评论 -
【问题解决与原理解释】Attempting to unscale FP16 gradients.
在使用 accelerate 训练模型时遇到以下报错,其实本质是没有理解训练过程中的各种精度设置的原理,本文将从等基础概念进行解释。原创 2024-08-18 18:03:11 · 2648 阅读 · 0 评论 -
【扩散模型(七)】Stable Diffusion 3 diffusers 源码详解2 - DiT 与 MMDiT 相关代码(上)
虽然这些变量来自于同一个线性层的输出,但由于 nn.Linear 层的权重在训练过程中是可学习的,并且是随机初始化的,因此这些权重会在训练过程中被更新为不同的值。原创 2024-08-12 15:52:35 · 1728 阅读 · 0 评论 -
【diffusers极速入门(七)】Classifier-Free Guidance (CFG)直观理解以及对应代码
由于 Classifier-Free Guidance (CFG) 相关的理论解释博客已经很多了,本文不涉及理论推导,而侧重直观理解和对应的 diffusers 代码。原创 2024-08-12 12:38:53 · 2392 阅读 · 0 评论 -
【可控图像生成系列论文(六)】ECCV24-Glyph-ByT5 微软亚研院、清华、北大合作工作(上)
现有 “文字渲染的不准确” 的问题,主要归因于 Text Encoder 的局限。例如,最初的 CLIP 文本编码器是为。层面的广泛视觉语言语义对齐而定制的,而 T5/ByT5 文本编码器则侧重于深度语言理解。然而,尽管最近的研究表明 T5/ByT5 文本编码器有利于视觉文本渲染任务,但两者都。缺乏定制的文本编码器设计可能会导致各种应用中的文本渲染不准确。原创 2024-08-08 17:32:43 · 1020 阅读 · 0 评论 -
【扩散模型思考记录(二)】什么是隐空间?为什么要引入隐空间?
引入隐变量空间(latent space)是生成模型中常用的技术,如变分自编码器(VAE)和生成对抗网络(GAN)。通过这种方法,可以将复杂的高维数据分布映射到一个相对简单的低维隐变量空间,从而简化采样过程。引入隐变量空间的核心思想是通过一个相对简单的低维表示来捕捉数据的复杂分布。这使得我们可以从标准分布中采样,并通过生成函数将其映射回原始数据空间,从而生成符合复杂分布的新样本。这种方法不仅简化了采样过程,还提高了生成数据的质量和多样性。原创 2024-07-31 15:46:25 · 1402 阅读 · 0 评论 -
【扩散模型思考记录(一)】图像生成的本质是什么?什么是适合采样的复杂分布?
适合采样的复杂分布指的是一种能够真实且高效地生成新样本的分布。高保真度生成的样本应与真实数据集中的样本相似度高,能够保留数据集的各种重要特征和模式。高多样性生成的样本应具有足够的多样性,能够涵盖数据集中的不同模式和变异性,而不是仅生成几种重复的样本。平滑性分布应当是平滑的,即在高维空间中没有过多的奇异点或异常值。这样的分布有助于模型在未见过的数据点上进行合理的插值和外推。可采样性分布应该是容易采样的。即我们能够设计有效的算法,从这个分布中高效地生成样本。原创 2024-07-31 15:40:08 · 580 阅读 · 0 评论 -
【diffusers极速入门(六)】缓存梯度和自动放缩学习率以及代码详解
缓存梯度(Gradient Checkpointing): 通过在前向传播过程中存储部分中间激活值,减少显存占用,代价是反向传播速度变慢。适用于需要训练非常深或大的模型的情况。自动放缩学习率(Learning Rate Scaling): 根据训练配置(如 GPU 数量(num_processes)、梯度累积步数和批量大小)自动调整学习率,以适应不同的训练环境和配置,确保训练的稳定性和效果。原创 2024-07-30 11:51:20 · 1097 阅读 · 0 评论 -
【diffusers极速入门(五)】扩散模型中的 Scheduler(noise_scheduler)的作用是什么?
Scheduler 在扩散模型中扮演着重要的角色,它通过控制噪声的添加和去除,影响着模型的训练和生成效果。不同的 Scheduler 有不同的特点和适用场景,研究者可以根据具体任务选择合适的 Scheduler。原创 2024-07-29 22:25:44 · 2523 阅读 · 0 评论 -
【diffusers极速入门(四)】EMA 操作是什么?
EMA模型:让模型更稳定、更泛化EMA(Exponential Moving Average,指数移动平均)模型在深度学习中常用于存储模型可学习参数的局部平均值。可以把它想象成一个“影子模型”,这个影子模型的参数会随着原模型的训练不断更新,但更新的方式不是直接复制,而是以指数衰减的方式逐渐向原模型的参数靠拢。EMA模型是一种简单而有效的技术,可以提高深度学习模型的性能。通过维护模型参数的指数移动平均,EMA模型可以帮助模型找到更好的局部最小值,提高模型的稳定性和泛化能力。原创 2024-07-29 21:34:21 · 1097 阅读 · 0 评论 -
【扩散模型(六)】Stable Diffusion 3 diffusers 源码详解1-推理代码-文本处理部分
下图为《Scaling Rectified Flow Transformers for High-Resolution Image Synthesis》 (ICML 2024 )中的 SD3 架构图。原创 2024-07-19 16:12:11 · 1839 阅读 · 2 评论 -
【手撕代码(1)】Transformer 核心操作之一,nn.LayerNorm 的实现
LN 是对单个数据的指定维度进行 Normalization (归一化)处理,且指定的维度至少得包括最后一个维度。原创 2024-07-19 13:28:58 · 829 阅读 · 0 评论 -
【扩散模型(五)】IP-Adapter 源码详解3-推理代码
这里以中最基础的以图生图(Image Variations)为例:输入处理:对 img prompt 和 txt prompt 分别先得到 embedding 后再送入 SD 的 pipeline;过 Unet:与一般输入 txt prompt 类似,通过 Unet 的各个模块;Unet 中的 CA:对于 img prompt 部分需要拆出来,单独过针对性的 k (to_k_ip)和 v(to_v_ip)。原创 2024-07-17 20:43:56 · 1777 阅读 · 1 评论 -
【扩散模型(四)】IP-Adapter 源码详解2-训练核心(cross-attention)
本文通过详细的结构图和相关代码片段介绍了 IP-Adapter 训练代码的核心部分,下篇则介绍其推理代码。原创 2024-07-17 16:20:59 · 2487 阅读 · 2 评论 -
【扩散模型(三)】IP-Adapter 源码详解1-训练输入(image projection)
本文详解了IP-Adapter 训练源码中的输入部分,下篇则详解核心部分,针对图像输入的 Cross-Attention。↩︎。原创 2024-07-05 14:49:50 · 2143 阅读 · 3 评论 -
【可控图像生成系列论文(五)】ControlNet 和 IP-Adapter 之间的区别有哪些?
在 ControlNet 中,由于通过残差连接(红框的部分)将输入直接添加到 SD Decoder Block 中,以便在训练深度神经网络时防止梯度消失问题。IP-Adapter 通常通过一种适配器模块来实现,该模块能够动态调整生成模型的参数或特征,以适应不同的输入条件。条件输入则大小的限制。下图右边是 ControlNet,条件输入需要和最终输出的大小保持 pixel-level 的一致。下图左边是 IP-Adapter,条件输入可以和基础输入、最终输出的大小不一致。原创 2024-06-27 21:54:55 · 1364 阅读 · 0 评论 -
【可控图像生成系列论文(四)】IP-Adapter 具体是如何训练的?1公式篇
IP-Adapter 的结构和 SD 的差别不是特别大,可以参考【扩散模型(二)】中的结构图进行快速理解,本文则将详细介绍其 IP-Adapter 的训练过程。IP-Adapter 的训练目标和 SD 的原始训练目标一致,但由于仅仅训练投影网络和适配模块(Image prompt 输入的 cross attention),可训练参数量非常轻量化(仅 22M)。↩︎↩︎↩︎↩︎↩︎↩︎↩︎需要注意的是,仅使用图像提示也能很好地指导最终生成,因此也可以在没有文本提示的情况下训练模型。原创 2024-06-25 20:07:21 · 1897 阅读 · 2 评论 -
【扩散模型(一)】Stable Diffusion中的重建分支(reconstruction branch)和条件分支(condition branch)
重建分支负责从噪声中逐步重建出清晰的图像。条件分支则引入额外的信息或条件,指导图像的生成过程,使得生成结果符合特定的要求。这种结构使得 Stable Diffusion 模型既能够生成高质量的图像,又能够根据特定的条件生成符合要求的图像。原创 2024-06-24 21:35:25 · 1504 阅读 · 0 评论 -
【扩散模型(二)】IP-Adapter 从条件分支的视角,快速理解相关的可控生成研究
上一篇文章提到可以从两个分支来看 Stable Diffusion1重建分支(reconstruction)负责从噪声中逐步重建出清晰的图像。条件分支(condition)则引入额外的信息或条件,指导图像的生成过程,使得生成结果符合特定的要求。从该视角,可以快速地理解基于 SD 的类似可控生成模型,重点都是在修改 condition 分支的部分,通过修改 corss-attention 中的 QKV 来更好地引入控制条件。原创 2024-06-25 14:38:08 · 1727 阅读 · 1 评论 -
【可控图像生成系列论文(二)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读2
上篇简要介绍了论文的整体流程和方法,本文则将就整体方法、模型结构、训练数据和纹理迁移进行详细介绍。原创 2024-06-20 22:59:08 · 1477 阅读 · 2 评论 -
【diffusers极速入门(三)】生成的图像尺寸与 UNet 和 VAE 之间的关系
UNet 是一种卷积神经网络架构,最初设计用于生物医学图像分割。其结构类似于一个对称的 U 字形,由编码器(下采样)和解码器(上采样)组成。编码器逐步提取图像特征并缩小空间维度,解码器则将这些特征还原到原始的空间维度,同时逐步增加分辨率。对称结构:编码器和解码器对称分布。跳跃连接:直接将编码器的中间层输出传递到解码器的对应层,保留了高分辨率特征。多尺度特征提取:在不同尺度上提取特征,提升了网络对细节的捕捉能力。VAE 变分自编码器是一种生成模型,通过学习输入数据的潜在表示来生成新数据。编码器。原创 2024-06-20 16:57:01 · 2730 阅读 · 0 评论 -
【diffusers 极速入门(二)】如何得到扩散去噪的中间结果?Pipeline callbacks 管道回调函数
动态无分类器引导(classifier-free guidance,CFG)允许在一定步数后禁用 CFG,从而节省计算成本。该回调函数在每一步结束时执行,并修改管道属性和变量,以供下一步使用。这在动态调整某些管道属性或修改张量变量时非常有用。通过访问并转换潜在空间,可以在每步生成后显示图像。以下函数将 SDXL 的潜在空间(4 通道)转换为 RGB 张量(3 通道)。,如果你有其他执行点的回调需求,可以在 github 上提出功能请求。在管道的去噪循环中,可以使用。要设置回调函数,可以指定。原创 2024-06-19 20:24:04 · 1279 阅读 · 0 评论 -
【gradio 极速入门(二)】gr.Image 是如何得到 Mask 的?
Gradio 是一个用于构建和部署交互式机器学习应用的Python库。它的设计目的是让开发者能够轻松地将训练好的机器学习模型封装成一个用户友好的界面,使得非技术人员也能够使用和理解模型的预测结果。(官方链接:https://www.gradio.app/)在 Gradio 中,当设置和时,这些参数影响了用户在交互式界面上使用绘图工具(如笔刷工具)时生成的遮罩mask。原创 2024-06-18 16:43:33 · 1600 阅读 · 1 评论 -
【gradio 极速入门(一)】已解决,TypeError: init() got an unexpected keyword argument ‘source‘
说明 source 不是 gr.Image 里的关键字参数,这可能是 gradio 相关的包版本不兼容导致。则可以通过 pip show 来 check 版本是否一致。如果不一致,则可以先卸载后重装制定版本。验证版本无误后,成功正常运行🎉。原创 2024-06-17 16:35:51 · 1369 阅读 · 0 评论 -
【可控图像生成系列论文(一)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读
背景:考虑到用户的不同需求,图像编辑是一项实用而富有挑战性的任务,其中最困难的部分之一是准确描述编辑后的图像应该是什么样子。创新点:在本文作者提出了一种新的编辑形式,称为模仿编辑,以帮助用户更方便地发挥他们的创造力。原创 2024-06-17 12:03:53 · 1201 阅读 · 0 评论 -
【diffusers 本地下载问题】from_pretrained 找不到本地文件?OSError: Error no file named model.bin found in directory
软链接的颜色取决于它指向的实际文件或目录的类型和属性。:表示文件或目录有特殊的权限或者属性。特别是,如果文件或目录的权限设置了不寻常的位或者它被标记为具有特殊的SELinux安全上下文等,它可能会显示为红色。如果软链接指向的文件或目录具有特殊权限或属性,例如设置了不寻常的权限位或者具有特殊的SELinux上下文,那么软链接可能会显示为红色。综上所述,软链接的颜色取决于其所指向的实际文件或目录的类型和属性,而不是软链接本身的属性。如果软链接指向的是一个目录,它会显示为蓝色,表示这是一个指向目录的软链接。原创 2024-06-14 15:08:10 · 1073 阅读 · 0 评论 -
【SVG 生成系列论文(十一)】如何定制化地生成 SVG 图案?Text-Guided Vector Graphics Customization
评估:作者使用来自矢量级、图像级和文本级的多种指标对该方法进行了广泛评估。背景:矢量图形在数字艺术中被广泛使用,并因其可扩展性和逐层拓扑特性而受到设计师的重视。,重建目标图像,确保在与定制光栅图像对齐的同时实现平滑的形状变形,以保留路径的规则性。本文提出了一种新颖的流程,可以根据文本提示生成高质量的定制矢量图形,同时保留给定的。问题:然而,创建和编辑矢量图形需要创意和设计专业知识,因此是一个耗时的过程。,作者生成了基于文本提示的定制光栅图像(像素图像)。,该方法保留并转换了示例SVG中的关键路径。原创 2024-06-04 19:46:56 · 804 阅读 · 0 评论
分享