Stable Diffusion详解

Stable Diffusion详解

Stable Diffusion详解

一、Stable Diffusion 简介

Stable Diffusion(简称 SD)是由 Stability AICompVisRunway 团队合作开发的一种潜在扩散模型。它于 2022 年 8 月正式开源,具有出图快、扩展性强、数据安全等特点。

二、Stable Diffusion 的核心概念

1. 扩散模型(Diffusion Model)

扩散模型是一种生成式模型,其核心思想是:

  • 正向过程:对图像逐步添加高斯噪声,直到图像完全变为噪声。
  • 反向过程:从噪声中逐步恢复出原始图像。

2. 潜在扩散模型(Latent Diffusion Model)

为了解决扩散模型在像素空间中计算量大的问题,潜在扩散模型先将图像压缩到潜空间,再进行扩散过程,大大减少了计算量和内存需求。

3. Stable Diffusion WebUI

提供了一个图形化界面,用户无需编写代码即可操作模型生成图像。

在这里插入图片描述

三、Stable Diffusion 的特点

1. 可拓展性强

  • 开源模型与代码,支持自定义学习与创作。
  • 集成超过 110 种插件,支持局部重绘、姿势控制、高清修复等功能。

2. 出图速度快

  • 本地部署,依赖本地显卡算力,无需排队。
  • 支持 3 秒/张 的高效出图。

3. 数据安全

  • 所有图像生成过程在本地完成,避免数据上传到云端,保护用户隐私。

四、Stable Diffusion 的工作原理

在这里插入图片描述

1. 扩散过程

  • 加噪:逐步向图像添加噪声,模拟“墨汁扩散”过程。
  • 去噪:逐步从噪声中恢复图像,即逆向降噪。
在这里插入图片描述

2. 潜空间运算

Stable Diffusion 在潜空间中进行扩散过程,显著降低了计算复杂度。

在这里插入图片描述

3. 整体运行流程

在这里插入图片描述

4. Diffusion模型的原理

在这里插入图片描述

五、Stable Diffusion 的架构

Stable Diffusion 由三个核心组件构成:

在这里插入图片描述

1. CLIP Text Encoder

  • 将文本提示词转换为 768 维向量
  • 使用对比学习训练,理解文本与图像的关系。
  • ClipText ⽂本编码器:首先训练一个处理图像的 CNN 和一个处理文本的Transformer 模型,来预测图像的caption。对比学习阶段:给定一个 Batch 的 N 个 (图片,文本) 对,图片输入给 Image Encoder 得到表征 I1,I2,…,In,文本输入给 Text Encoder 得到表征 T1,T2,…,Tn,其中 (Ij,Tj)属于是正样本,(Ij,Tk)属于负样本。最大化 N 个正样本的Cosine 相似度,最小化N^2−N个负样本的 Cosine 相似度
在这里插入图片描述

Zero-Shot Transfer:这个阶段是使用 CLIP 的预训练好的 Image Encoder 和 Text Encoder 来做Zero-Shot Transfer。比如来一张 ImageNet-1K 验证集的图片,可以使用CLIP 预训练好的模型能完成这个分类的任务。模型的参数是冻结的,在图像生成过程中参数是不会发生变化的。

在这里插入图片描述

2. U-Net + Scheduler(图像信息生成器)

U-Net 原本是用于生物医学图像分割的神经网络模型,因为工作结构像一个 U 型字母,因此被称为 U 型神经网络训练模型。在扩散模型中,U-Net 可以辅助提取并解构训练图像的特征,有了它就能在较少训练样本的情况下获得更加准确多样的数据信息,从而使模型在出图结果上更加精确。

在这里插入图片描述
  • U-Net:提取图像特征,辅助去噪。
  • Scheduler:控制去噪步骤与采样算法。Scheduler 就是用来定义使用哪种算法来运行程序,它可以定义降噪的步骤、是否具备随机性、查找去噪后样本的算法等,因此它又被称为采样算法。

3. VAE 解码器

全称是 Variational Auto Encoder 变分自动编码器。简单来说,它的作用就是将高维数据(像素空间)映射到低维空间(潜空间),从而实现数据的压缩和降维。它由编码器(Encoder)和解码器(Decoder)两部分组成,编码器用于将图像信息降维并传入潜空间中,解码器将潜在数据表示转换回原始图像,而在潜在扩散模型的推理生成过程中我们只需用到 VAE 的解码器部分。

在这里插入图片描述

六、Stable Diffusion 的文生图流程

  1. 生成随机潜空间张量(受随机种子控制)
  2. U-Net 结合文本提示预测噪声
  3. 逐步去噪,重复多次(如 50 步)
  4. VAE 解码器将潜图像转换为最终图像
在这里插入图片描述

七、Stable Diffusion 的应用场景

1. 文生图(Text-to-Image)

将文本描述转换为图像,增强视觉表达能力。

2. 图生图(Image-to-Image)

基于原图与提示词进行二次创作,控制生成结果。

3. 图像修复(Inpainting)

替换或填充图像中指定区域,实现自然修复。

Read more

Java Web请求处理链路剖析(从Filter到HandlerInterceptor的完整流程图解)

第一章:Java Web请求处理链路概述 在Java Web应用中,客户端发起的HTTP请求需经过一系列组件协同处理,最终返回响应。这一完整的链路贯穿了从网络通信到业务逻辑执行的多个层次,理解其结构对开发高性能、可维护的Web系统至关重要。 请求进入容器 当客户端发送HTTP请求时,首先由Web服务器(如Tomcat)接收。服务器基于配置的端口监听请求,并将原始HTTP数据封装为 HttpServletRequest 对象,同时创建 HttpServletResponse 用于输出响应。 Servlet生命周期管理 请求被映射到指定的Servlet进行处理。容器根据web.xml或注解配置确定目标Servlet,并确保其实例已初始化。典型的处理流程如下: * 执行 init() 方法完成初始化(仅一次) * 调用 service() 方法分发请求至 doGet() 或 doPost() * 由具体方法生成响应内容并写入输出流 * 容器自动关闭响应,发送数据回客户端 过滤器与拦截机制 在请求到达Servlet前,可配置多个 Filter 实现横切关注点处理,如日志

WebArena:一个真实的网页环境,用于构建更强大的自主智能体

WebArena:一个真实的网页环境,用于构建更强大的自主智能体

WebArena:一个真实的网页环境,用于构建更强大的自主智能体 最近,在 ICLR 2024 上发表了一篇来自卡内基梅隆大学的论文——WebArena: A Realistic Web Environment for Building Autonomous Agents(arXiv: 2307.13854)。这篇论文提出并实现了一个高度逼真、可复现的网页环境,专门用于开发和评估基于自然语言指令的自主智能体(Autonomous Agents)。今天这篇博客就来详细介绍这篇论文:它到底想解决什么问题、如何解决,以及其中的关键细节。 解决什么问题? 随着大语言模型(如 GPT-4)的快速发展,研究者们开始探索让 AI 智能体通过自然语言指令完成日常任务,比如“帮我在网上买个东西”或“去 GitLab 上更新 README”。然而,现有的智能体评估环境存在几个严重问题: 1. 过于简化、不真实:很多环境(

Tauri 架构从“WebView + Rust”到完整工具链与生态

Tauri 架构从“WebView + Rust”到完整工具链与生态

1. Tauri 不是什么 理解边界会更快建立正确心智模型: * 它不是“轻量内核包装器(kernel wrapper)”,而是直接使用 WRY(WebView 层)与 TAO(窗口与事件循环)去做底层系统交互。 (Tauri) * 它不是 VM 或虚拟化环境,而是一个应用工具箱:你构建的是标准的 OS 应用,只是 UI 用 Web 技术渲染。 (GitHub) 2. 总体分层:从 UI 到系统调用的一条链路 你可以把 Tauri 的架构拆成 4 层:前端、桥接、运行时、上游底座。 TAO 和 WRY 是 Tauri 团队维护的关键“

trae整合figma的mcp实现前端代码自动生成

1.现在trae版本在3.0及以上版本。 2.trae账号是企业版。 3.打开设置,找到mcp 这里需要token,需要从figma账号里生成,网页登录figma账号,找到设置,打开后找到security,然后点击generate new token,token名称随便取,权限都钩上。然后生成一个token,把token放到mcp中即可。 4.使用mcp,切换到mcp模式,你也可以自己创建智能体使用 5.提问使用,可参考下面的提示词使用 注意:这里面的figma链接是mcp的链接,不是figma链接,一般需要你有原型的权限才能看到 我需要根据提供的Figma链接生成一个与设计稿高度一致的网页。请严格遵循以下详细要求: