【DDPM】DiffusionModel原理
DiffusionModel原理
持续施工中
I’m still working on it.
视频:https://www.youtube.com/watch?v=ifCDXFdeaaM
训练过程
在相像中,我们
图像生成模型的目标
求出“真实图像的分布”
而在如今的生成图像中,不仅仅要生成出图像,而是要添加“条件”
以前是只让生成的图像还原真实图像(生成一只狗),现在是要“一只在奔跑的狗”
但不论怎么说,我们的目标,还是求出“真实图像的分布”
也就是模拟一个分布PθP_\thetaPθ,这个PθP_\thetaPθ要和原来的分布PdataP_{data}Pdata越接近越好
那么,怎么来衡量“接接近越好”?
假设,我们现在有个分布PθP_\thetaPθ,现在任意从PdataP_{data}Pdata的样本集中拿一张图,我们照样可以用模型θ\thetaθ来还原出这张图,那这么模型就是完美还原PdataP_{data}Pdata
但实际上,不大可能;
不过,我们如果让模型θ\thetaθ来尽量还原出PdataP_{data}Pdata的样本集的 ...
自建RustDeskServer
Rustdesk Server安装与使用
安装Rustdesk Server
在服务器输入lscpu或uname -m查看CPU构架
12uname -m# x86_64
比如我是x86_64,随后在rustdesk-server/releases找到相应的版本则下载rustdesk-server-linux-amd64.zip
"x86_64"和"amd64"实际上是同一种CPU架构的两种不同称呼,都指的是64位的x86处理器架构。
这种架构最早由AMD公司引入,因此有时被称为"AMD64",但后来也被Intel和其他制造商采纳。
1wget --no-check-certificate https://github.com/rustdesk/rustdesk-server/releases/download/1.1.10-3/rustdesk-server-linux-amd64.zip
解压文件,进入到解压后的目录amd64
1unzip rustdesk-server-linux-amd64.zip ...
N1盒子重装Openwrt
N1盒子重装Openwrt
折腾了一天n1盒子,起因是看到一个新的代理协议"Hysteria"(安装视频:https://www.youtube.com/watch?v=CXj-ID33MhU),在成功地在windows和android上运行了Hysteria后,想在我的旧N1盒子上使用这个新协议,但奈何N1盒子的passwall版本太旧了,不支持Hysteria2,即使直接将Hysteria2的应用替换掉原应用,passwall对Hysteria2的支持也不够好。
于是,就尝试升级passwall,但由于N1盒子的系统版本太旧(21年的),使得直接升级passwall方案也失败。
于是乎……就开启了一系列的折磨,最终的方案是,重新安装24.01.26版本的openwrt系统,再在此系统中,使用Passwall2
如果要找N1重头开始盒子安装Openwrt,请查看:https://www.cnblogs.com/robotpaul/p/17127387.html
Openwrt版本选择
目前主流的openwrt系统有非常多的版本,而且分为“未编译”和“已编 ...
【Ubuntu】打造全自动追剧工具
Ubuntu安装全自动追剧工具
部署参考,以及部署效果展示:https://www.bilibili.com/video/BV1wD4y1B7xZ
原视频是使用群晖nas进行部署,本文使用ubuntu上安装
一共需要安装三个软件:nas-tools(管理器), Emby(媒体播放器), qBittorrent(下载器)
nas-tools安装
nas-tools安装参考:https://github.com/hsuyelin/nas-tools
安装
方式一:Docker拉镜像安装
1docker pull hsuyelin/nas-tools:latest
教程见 这里 。
如无法连接Github,注意不要开启自动更新开关(NASTOOL_AUTO_UPDATE=false),将NASTOOL_CN_UPDATE设置为true可使用国内源加速安装依赖。
查看所有镜像
1docker images
镜像pull后再运行nas-tools
1docker run [id]
方式二:Docker-compose直接运行
可以新建一个nas-tools目录,在这个目录下,创建docker ...
针对SD的Gaussian Shading鲁棒水印实现
A watermark for Diffusion Models
[!NOTE]
This is an unofficial implementation of the Paper by Kejiang Chen et.al. on Gaussian Shading: Provable Performance-Lossless Image Watermarking for Diffusion Models
特性
[x] 在水印图像无损失情况下,水印消息提取正确率100% :tada:
[x] 对于多种不同的高强度失真攻击,拥有极好的鲁棒性;如JPEG压缩QF=10,平均正确率90% :+1:
[x] 支持Stable Diffusion不同版本:v1-4 , v2-0 ,v2-1 :tada:
[x] 支持命令行SD和可视化SD-webui :+1:
[x] 无需额外训练,仅对初始噪声矩阵进行修改,对图像质量几乎无影响 :sparkles:
[x] 即插即用,插件化使用方式 :heavy_check_mark:
【命令行】使用教程
生成水印图像
下载并确保原始的Stable ...
【selenium】自动登录校园网
实验室自动登录校园网
系统Ubuntu20.04
仅适用于宁波大学(实验室)网络,寝室网络的认证更简单一些
部分代码参考:https://github.com/password123456/setup-selenium-with-chrome-driver-on-ubuntu_debian
更新源
12apt updateapt upgrade
下载Chrome包
1wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
安装google-chrome
1dpkg -i google-chrome-stable_current_amd64.deb
检查Chrome版本
12google-chrome --version# Google Chrome 117.0.5938.132
安装selenium, webdriver-manager
https://pypi.org/project/webdriver-manager/
12pip3 install seleniumpip3 ...
【Diffusion】基于分数的生成模型
基于分数的生成模型
(Score-based generative models)
原文链接:
https://www.zhangzhenhu.com/aigc/Score-Based_Generative_Models.html
通过前面的学习,我们发现扩散模型可以从不同的角度进行解释。 其中一个等价的解释是基于分数的生成模型,前面章节虽然简单介绍了下, 但没有详细说明,本章我们详细讨论下基于分数的生成模型。 基于分数的生成模型是由宋旸等人在2019年提出 [1] 的, 后来他们又提出了基于随机微分方程的更一般的形式 [2], 本章我们一起讨论学习一下。
Scored-based的生成模型
在前面 DDPM 和 DDIM 的章节中,已经探讨了 DDPM 的降噪过程,可以看做是沿着分数(梯度)∇logp(xt)∇logp(x_t)∇logp(xt)前进。然而宋旸等人提出基于分数(Score-based)的论文 相关工作并不是建立在 DDPM 的基础上,所以论文里不是从DDPM的马尔科夫链式结构讨论和导出的,而是直接从分数匹配估计算法推导。
首先看下基于分数的生成模型的核心思 ...
【DDIM】详解
去噪扩散隐式模型(Denoising Diffusion Implicit Models,DDIM)
在 DDPMDDPMDDPM 中,生成过程被定义为马尔可夫扩散过程的反向过程,在逆向采样过程的每一步,模型预测噪声
DDIMDDIMDDIM 的作者发现,扩散过程并不是必须遵循马尔科夫链,在之后的基于分数的扩散模型以及基于随机微分等式的理论都有相同的结论。
基于此,DDIMDDIMDDIM 的作者重新定义了扩散过程和去噪过程,并提出了一种新的采样技巧,可以大幅减少采样的步骤,极大的提高了图像生成的效率,代价是牺牲了一定的多样性,图像质量略微下降,但在可接受的范围内。
扩散模型的回顾
首先回顾一下 DDPM 模型的机制,在 DDPM 中,真实世界的图像数据用随机变量 x0x_0x0 表示,它的概率密度记作 q(x0)q(x_0)q(x0),然而它的真实分布未知的,即 q(x0)q(x_0)q(x0) 具体形式是未知的,所以我们没办法直接从 q(x0)q(x_0)q(x0) 采样生成新的图片。
幸运的是,我们有很多 x0x_0x0 的观测样本,因此我们可以想办法利用这些观测样本估 ...
【Cross-Attention】可视化
Cross-Attention Control
原链接
https://prompt-to-prompt.github.io/
自注意力机制
是一种用于序列数据(如文本、音频、视频)处理的机制,它允许模型在处理序列时将不同位置的信息相互关联起来。在自注意力机制中,每个输入位置的表示(例如词或时间步的嵌入)都将用于计算该位置与序列中其他所有位置的加权关联,这种加权关联受输入表示之间的相似性程度和它们之间的距离的影响。
自注意力机制的数学表达如下:
给定输入序列 X=[x1,x2,...,xn]X = [x_1, x_2, ..., x_n]X=[x1,x2,...,xn]
其中每个xix_ixi是输入序列中的元素,通过自注意力计算得到输出序列 Y=[y1,y2,...,yn]Y = [y_1, y_2, ..., y_n]Y=[y1,y2,...,yn] :
yi=∑j=1nαij⋅(WQxj)y_i = \sum_{j=1}^{n} \alpha_{ij} \cdot (W^Q x_j)yi=∑j=1nαij⋅(WQxj)
其中
$ \alpha_{ij} $ ...
【Diffusion】为什么用Classifier-free-guidance
参考原文
https://www.zhangzhenhu.com/aigc/Guidance.html
https://sander.ai/2022/05/26/guidance.html
https://sander.ai/2023/08/28/geometry.html
https://forums.fast.ai/t/why-do-we-need-the-unconditioned-embedding/101134?replies_to_post_number=3
Guidance: a cheat code for diffusion models
"Classifier-free guidance"显著改善了"conditional diffusion models"生成的图像(几乎没有额外成本)。它实施简单且极其有效。它也是OpenAI的DALL·E 2和Google的Imagen的关键组成部分,为它们的惊人图像生成结果提供动力。在这篇博文中,我将分享我的观点,并尝试解释它的工作原理。
引言
无论是 DDPM 还是 DDIM,这些扩散 ...