Stable Diffusion原理以及CAC的应用

这篇具有很好参考价值的文章主要介绍了Stable Diffusion原理以及CAC的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

添加本文记录


一、How does Stable Diffusion work?

Stable Diffusion基于latent diffusion model(训练模型以生成图像的latent representations(压缩))

latent diffusion三个主要组件:
Stable Diffusion原理以及CAC的应用

  • An autoencoder (VAE).
      VAE模型有编码器,解码器两部分。编码器用于将图像转换为低维潜在表示,作为U-Net模型的输入。解码器反过来,将潜在的表示转换回图像。扩散训练中,使用编码器获取图像的潜表征(latent representations, latents),用于正向扩散过程,每一步都应用越来越多的噪声。在映射过程中,使用VAE解码器将反向扩散过程产生的去噪latent representations转换回图像。

  • A U-Net.
      U-Net的编码器部分和解码器部分都由ResNet块组成。编码器将图像表示压缩为较低分辨率的图像表示,而解码器将较低分辨率的图像表示解码回原始的高分辨率图像表示。更具体地说,U-Net输出预测噪声残差(difference between the slightly less noisy image and the input image)用于计算预测的去噪图像表示。
      为了防止U-Net在下采样时丢失重要信息,通常在编码器的下采样resnet和解码器的上采样resnet之间添加捷径连接。此外,稳定的扩散U-Net能够通过交叉注意层在文本嵌入上调整输出。交叉注意层被添加到U-Net的编码器和解码器部分ResNet块之间。
    Stable Diffusion原理以及CAC的应用

  • A text-encoder
    文本编码器负责转换输入提示符,例如。“宇航员骑马”编码到U-Net可以理解的嵌入空间。它通常是一个简单的基于Transformer的编码器,将输入tokens序列映射为潜在的文本嵌入序列。

二、使用步骤

  • pipeline : CycleDiffusionPipeline

  • scheduler : DDIMScheduler

scheduler.config

FrozenDict([(‘num_train_timesteps’, 1000),
(‘beta_start’, 0.00085),
(‘beta_end’, 0.012),
(‘beta_schedule’, ‘scaled_linear’),
(‘trained_betas’, None),
(‘clip_sample’, False),
(‘set_alpha_to_one’, False),
(‘steps_offset’, 1),
(‘prediction_type’, ‘epsilon’),
(‘_class_name’, ‘PNDMScheduler’),
(‘_diffusers_version’, ‘0.7.0.dev0’),
(‘skip_prk_steps’, True)])

  • model : UNet2DConditionModel

model.config

FrozenDict([(‘sample_size’, 64),
(‘in_channels’, 4),
(‘out_channels’, 4),
(‘center_input_sample’, False),
(‘flip_sin_to_cos’, True),
(‘freq_shift’, 0),
(‘down_block_types’,
[‘CrossAttnDownBlock2D’,
‘CrossAttnDownBlock2D’,
‘CrossAttnDownBlock2D’,
‘DownBlock2D’]),
(‘mid_block_type’, ‘UNetMidBlock2DCrossAttn’),
(‘up_block_types’,
[‘UpBlock2D’,
‘CrossAttnUpBlock2D’,
‘CrossAttnUpBlock2D’,
‘CrossAttnUpBlock2D’]),
(‘only_cross_attention’, False),
(‘block_out_channels’, [320, 640, 1280, 1280]),
(‘layers_per_block’, 2),
(‘downsample_padding’, 1),
(‘mid_block_scale_factor’, 1),
(‘act_fn’, ‘silu’),
(‘norm_num_groups’, 32),
(‘norm_eps’, 1e-05),
(‘cross_attention_dim’, 768),
(‘attention_head_dim’, 8),
(‘dual_cross_attention’, False),
(‘use_linear_projection’, False),
(‘class_embed_type’, None),
(‘num_class_embeds’, None),
(‘upcast_attention’, False),
(‘resnet_time_scale_shift’, ‘default’),
(‘_class_name’, ‘UNet2DConditionModel’),
(‘_diffusers_version’, ‘0.2.2’),
(‘_name_or_path’, ‘CompVis/stable-diffusion-v1-4’)])

总结

学习使用huggingface上得diffuser仓库提供的各种扩散模型相关论文的模型接口,处理的各种生成任务,如何加载和配置pipeline, schedulers,models。想要看text-guided img2img任务的中间结果,需要客制化采样器
时候还没有调通text-encoder传来的encoder_hidden_states。文章来源地址https://www.toymoban.com/news/detail-505162.html

到了这里,关于Stable Diffusion原理以及CAC的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 本文通过实例介绍了Redis的基础知识、数据类型、数据结构以及典型应用场景 值得一看!

    作者:禅与计算机程序设计艺术 2017年,Redis是基于MIT许可发布的一个开源的高性能键值数据库,其开发语言为C语言。它提供了多种数据类型(strings、hashes、lists、sets、sorted sets等),分布式支持(可横向扩展),内存存储,持久化功能,事务处理功能等。作为一种高性能的

    2024年02月06日
    浏览(70)
  • 《Stable Diffusion web UI 从Civitai添加更多模型》

    我们在使用Stable Diffusion需要很多模型,前面已经介绍过如何下载一个模型,那现在我们想要更多模型用前面方法就太麻烦了,如果知道常用模型的地址,那我们直接从C站把很多模型下过来,需要什么就可以直接选择。   首先主要用的模型是: (1)checkpoint 主模型——(我们

    2024年02月05日
    浏览(81)
  • Stable Diffusion的原理

    CSDN-markdown语法之怎样使用LaTeX语法编写数学公式 参考视频:【diffusion】扩散模型详解!原理+代码! 用一颗桃树为你讲清楚 知识点:AI绘图原理 Diffusion扩散模型 Windows深度学习环境搭建:Windows深度学习环境搭建 绘图的过程:逆向降噪的过程 例如将一个掉满花瓣的草地复原成

    2024年02月09日
    浏览(64)
  • stable diffusion原理

    隐空间是压缩数据的一个表示。数据压缩的目的是学习数据中较重要的信息。以编码器-解码器网络为例,首先使用全卷积神经网(FCN)络学习图片特征,我们将特征提取中对数据的降维看作一种有损压缩。但是由于解码器需要重建(reconstruct)数据,所以模型必须学习如何储存所有

    2024年02月01日
    浏览(35)
  • Stable Diffusion原理说明

    本文参考:深入浅出讲解Stable Diffusion原理,新手也能看明白 - 知乎 目录 1、Stable Diffusion能做什么? 2、扩散模型(Diffusion model) (1)前向扩散(Forward Diffusion) (2)反向扩散(Reverse Diffusion) (3)如何训练  3、Stable Diffusion Model (1)潜在扩散模型(Latent diffusion model) (

    2024年02月11日
    浏览(42)
  • Stable Diffusion模型原理

    在Stable Diffusion诞生之前,计算机视觉和机器学习方面最重要的突破是 GAN(Generative Adversarial Networks 生成对抗网络)。GAN让超越训练数据已有内容成为可能,从而打开了一个全新领域——现在称之为生成建模。 然而,在经历了一段蓬勃发展后,GAN开始暴露出一些瓶颈和弊病,

    2024年02月03日
    浏览(68)
  • AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理

    大家好,我是风雨无阻。 本文适合人群: 想要了解AI绘图基本原理的朋友。 对Stable Diffusion AI绘图感兴趣的朋友。 本期内容: Stable Diffusion 能做什么 什么是扩散模型 扩散模型实现原理 Stable Diffusion 潜扩散模型 Stable Diffusion文本如何影响图片生成 Stable Diffusion Cross-attention 技术

    2024年02月13日
    浏览(61)
  • Stable Diffusion的数学原理

    Stable Diffusion是一种深度学习模型,用于生成和操作图像。它主要基于变分自编码器(Variational Autoencoders, VAEs)和扩散模型(Diffusion Models)的结合。下面是这些关键概念的详细解释: 变分自编码器是一种生成模型,用于学习输入数据的潜在表示。VAE包括两部分:编码器和解码

    2024年02月03日
    浏览(33)
  • stable diffusion简介和原理

    Stable Diffusion中文的意思是稳定扩散,本质上是基于AI的图像扩散生成模型。 Stable Diffusion是一个引人注目的深度学习模型,它使用潜在扩散过程来生成图像,允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论,不仅因为它在技术上的创新,还

    2024年02月08日
    浏览(45)
  • Stable Diffusion——stable diffusion基础原理详解与安装秋叶整合包进行出图测试

    在2022年,人工智能创作内容(AIGC)成为了AI领域的热门话题之一。在ChatGPT问世之前,AI绘画以其独特的创意和便捷的创作工具迅速走红,引起了广泛关注。随着一系列以Stable Diffusion、Midjourney、NovelAI等为代表的文本生成图像的跨模态应用相继涌现与Stable Diffusion的开源,Stab

    2024年02月21日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包