vid2vid-zero:使用Stable Diffusion进行零样本视频编辑

Paper: Wang W, Jiang Y, Xie K, et al. Zero-shot video editing using off-the-shelf image diffusion models[J]. arXiv preprint arXiv:2303.17599, 2023.
Introduction: Unreleased
Code: https://github.com/baaivision/vid2vid-zero

在这里插入图片描述

目录

  • 一. 预备知识
    • 1. diffusion 引导
    • 2. Null-text Inversion
  • 二. vid2vid-zero
  • 三. 复现

一. 预备知识

1. diffusion 引导

分类器引导 (classifier-guided) 和无分类器引导 (classifier-free) 是 diffusion 在采样和生成时的两种不同方法,它们的区别主要在于引导生成过程中如何处理条件信息:

  • 分类器引导 (classifier-guided diffusion) 1:扩散模型在生成过程中通过一个预训练的噪声分类器提供额外的引导信号,模型通过计算生成数据的分类概率梯度来指导生成的方向,从而增强条件生成的准确性。分类器引导扩散模型可以更精确地控制生成的样本,但生成速度较慢;
  • 无分类器引导 (classifier-free diffusion) 2:无分类器引导扩散模型不依赖单独训练的分类器来提供条件引导,而是将条件信息直接引入到扩散模型的训练和采样过程中:无分类器引导在训练时会同时学习有条件和无条件的去噪扩散模型,在生成时通过调节有条件和无条件生成之间的平衡进行采样:
    ϵ ~ θ ( z λ , c ) = w ϵ θ ( z λ , c ) + ( 1 − w ) ϵ θ ( z λ ) \tilde{\boldsymbol{\epsilon}}_\theta\left(\mathbf{z}_\lambda, \mathbf{c}\right)=w \boldsymbol{\epsilon}_\theta\left(\mathbf{z}_\lambda, \mathbf{c}\right)+(1-w) \boldsymbol{\epsilon}_\theta\left(\mathbf{z}_\lambda\right) ϵ~θ(zλ,c)=wϵθ(zλ,c)+(1w)ϵθ(zλ)
    在这里插入图片描述
    无分类器引导可以通过调整引导系数 w w w 灵活地控制生成结果的条件强度,但引导控制需要合适的超参数调节,否则可能导致生成质量下降。Stable Diffusion 中引导系数默认为 7.5。

2. Null-text Inversion

Paper: Mokady R, Hertz A, Aberman K, et al. Null-text inversion for editing real images using guided diffusion models[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 6038-6047.
Introduction: https://null-text-inversion.github.io/
Code: https://github.com/google/prompt-to-prompt

Null-text Inversion 3 是一种在 text-to-image 生成任务中使用的技术,用于优化和改进模型对输入文本的理解和生成能力。Null-text Inversion 的核心思想是在训练阶段引入空文本 (null text) 描述作为输入,通过在每一时间步训练这些 null text 使其尽可能接近真实的文本描述,这样模型可以学习在缺乏明确条件的情况下如何生成更具代表性和高质量的图像。
在这里插入图片描述
由于 DDIM Inversion 每一步都会产生误差,对于无条件 diffusion,累积误差可以忽略。但是对于 classifier-free diffusion,累积误差会不断增加,最终反演所得的噪声可能会偏离高斯分布,这样再经过 DDIM 采样最终生成的图像会严重偏离原图像 4
在这里插入图片描述

因此,作者提出 Pivotal Inversion:将先使用引导系数 w = 1 w = 1 w=1(即 diffusion 中仅使用有条件生成)反演原始图像,将反演过程中的噪声作为 pivotal,用来提供图像的原始信息。然后设定新的引导系数进行反演,优化每一个时间步的 null-text,使该步的隐变量尽可能接近 pivotal 中对应步的隐变量:
min ⁡ ∥ z t − 1 ∗ − z t − 1 ∥ 2 2  , where  z 0 ∗ = z 0 , z ˉ T = z T ∗ \min \left\|z_{t-1}^*-z_{t-1}\right\|_2^2 \text { , where } z_0^*=z_0, \bar{z}_T=z_T^* min zt1zt1 22 , where z0=z0,zˉT=zT

Pivotal Inversion 不再像 DDIM Inversion 所有时间步共用一个 null-text embedding,而是在每个时间步优化不同的 null-text embedding 以提高重建质量。Null-text embedding 优化完成后,再使用 Prompt-to-Prompt 方法对图像进行编辑,就能够在成功编辑的同时尽最大可能维护图像的原始结构。

二. vid2vid-zero

vid2vid-zero 是一种 zero-shot 视频编辑方法,能够在没有任何训练的情况下,利用注意力机制实现双向时间建模。vid2vid-zero 的核心是:

  • 无文本反演模块:用于文本到视频的对齐;
  • 跨帧建模模块:确保时间一致性;
  • 空间正则化模块:保证与原视频的忠实度。

在这里插入图片描述

三. 复现

  • 平台:AutoDL
  • 显卡:RTX 4090 24G
  • 镜像:PyTorch 2.0.0、Python 3.8(ubuntu20.04)、Cuda 11.8
  • 源码:https://github.com/baaivision/vid2vid-zero

实验过程

  1. 克隆仓库后,创建虚拟环境 vid2vid_zero 并按照 README 安装依赖;
  2. 下载 stable diffusion v1-4 节点,修改配置文件中的 pretrained_model_path 值,并修改 vid2vid_zero/p2p/null_text_w_ptp.pyvid2vid_zero/p2p/p2p_stable.py 中的 pretrained_model_path
  3. 因为 vid2vid-zero 不支持分布式计算,所以需要指定一张 GPU 进行推理。遇到 NotImplementedError: Using RTX 4000 series doesn't support faster communication broadband via P2P or IB. Please set NCCL_P2P_DISABLE="1" and NCCL_IB_DISABLE="1" or use accelerate launch which will do this automatically. 报错,增加该字段即可:
    CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE=1 accelerate launch test_vid2vid_zero.py --config configs/car-turn.yaml
    
  4. 随后即可开始训练:
    在这里插入图片描述

  1. Dhariwal P, Nichol A. Diffusion models beat gans on image synthesis[J]. Advances in neural information processing systems, 2021, 34: 8780-8794. ↩︎

  2. Ho J, Salimans T. Classifier-free diffusion guidance[J]. arXiv preprint arXiv:2207.12598, 2022. ↩︎

  3. Mokady R, Hertz A, Aberman K, et al. Null-text inversion for editing real images using guided diffusion models[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 6038-6047. ↩︎

  4. 【AIGC第八篇】Null-text Inversion:基于Null Prompt Finetuning的图像编辑技术 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956599.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 大爆发时代,音视频未来路在何方?

AI 大模型突然大火了 回顾2024年,计算机领域最大的变革应该就是大模型进一步火爆了。回顾下大模型的发展历程: 萌芽期:(1950-2005) 1956年:计算机专家约翰麦卡锡首次提出“人工智能”概念,标志…

蓝桥杯训练—完美的代价

文章目录 一、题目二、示例三、解析四、代码 一、题目 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是&am…

雷电9最新版安装Magisk+LSPosd(新手速通)

大家好啊!我是NiJiMingCheng 我的博客:NiJiMingCheng 在安卓系统的定制与拓展过程中,获取 ROOT 权限以及安装各类框架是进阶玩家常用的操作,这可以帮助我们实现更多系统层面的个性化功能。今天,我将为大家详细介绍如何…

【25】Word:林涵-科普文章❗

目录 题目​ NO1.2.3 NO4.5.6 NO7.8 NO9.10 NO11.12 不连续选择:按住ctrl按键,不连续选择连续选择:按住shift按键,选择第一个,选择最后一个。中间部分全部被选择 题目 NO1.2.3 布局→纸张方向:横向…

ESP8266-01S、手机、STM32连接

1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块,主要模式如下图: 上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。 ESP8266为一个WiFi透传模块,和…

Vscode:问题解决办法 及 Tips 总结

Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…

Comment(爆破+git泄漏+二次注入)

通过爆破密码的后三位,获得账号为:zhangwei666 F12查看控制台 使用bugscanteam的githack工具,下载泄漏的源码,根据控制台的提示,完整源码还在历史的commit中 git log –reflog 查看历史记录 查看最新的提交记录&#…

物联网网关Web服务器--Boa服务器移植与测试

1、Boa服务器介绍 BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。 Boa 嵌入式 web 服务器的官方网站是http://www.boa.org/。 特点 轻量级&#x…

vim文本编辑器

vim命令的使用: [rootxxx ~]# touch aa.txt #首先创建一个文件 [rootxxx ~]# vim aa.txt #vim进入文件aa.txt进行编辑 vim是vi的升级版,具有以下三种基本模式: 输入模式(编辑模式) 点击i进入编辑模式 (说明…

MYSQL主从同步----1、基于binlog 2、基于gtid

目录 前提(无论是基于binlog还是基于gitd) 一、对MySQL主从同步的了解 1、MySQL支持的复制类型 2、为什么要做主从复制 3、主从复制原理---面试会考 二、基于binlog的主从同步 1、主库上的操作 1)配置文件 2)备份数据库&am…

opencv笔记2

图像灰度 彩色图像转化为灰度图像的过程是图像的灰度化处理。彩色图像中的每个像素的颜色由R,G,B三个分量决定,而每个分量中可取值0-255,这样一个像素点可以有256*256*256变化。而灰度图像是R,G,B三个分量…

Hadoop•用Web UI查看Hadoop状态词频统计

听说这里是目录哦 通过Web UI查看Hadoop运行状态🐇一、关闭防火墙二、在物理计算机添加集群的IP映射三、启动集群四、进入HDFS的Web UI 词频统计🦩1、准备文本数据2、在HDFS创建目录3、上传文件4、查看文件是否上传成功5、运行MapReduce程序6、查看MapRe…

C语言二级查漏补缺

直接拿错过的选择开始补知识点 二叉树 推荐视频 基础名词讲解 根节点(Root):二叉树的顶端节点,没有父节点。子节点(Children):每个节点下面的节点。对于二叉树来说,每个节点最多…

Low-Level 大一统:如何使用Diffusion Models完成视频超分、去雨、去雾、降噪等所有Low-Level 任务?

Diffusion Models专栏文章汇总:入门与实战 前言:视频在传输过程中常常因为各种因素(如恶劣天气、噪声、压缩和传感器分辨率限制)而出现质量下降,这会严重影响计算机视觉任务(如目标检测和视频监控)的性能。现有的视频修复方法虽然取得了一些进展,但通常只能针对特定的退…

【22】Word:小李-高新技术企业政策❗

目录 题目​ NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在删除空白行等要求,可以到最后来完成。注意最后一定要检查此部分!注意:大多是和事例一样即可,不用一摸一样,但也不要差太多。 题目 NO1.2 F12Fn&a…

【前端】CSS学习笔记(1)

目录 CSS的简介CSS的概念语法 CSS的引入方式内联样式(行内样式)内部样式外部样式(推荐) 选择器全局选择器元素选择器类选择器ID选择器合并选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器伪类选择器:link:visited:hover:ac…

C#与AI的共同发展

C#与人工智能(AI)的共同发展反映了编程语言随着技术进步而演变,以适应新的挑战和需要。自2000年微软推出C#以来,这门语言经历了多次迭代,不仅成为了.NET平台的主要编程语言之一,还逐渐成为构建各种类型应用程序的强大工具。随着时…

几何数据结构之四叉树与八叉树

几何数据结构之四叉树与八叉树 四叉树的定义四叉树深度的计算公式推导假设:计算过程:1. 划分空间:2. 节点容纳的最小距离:3. 解出深度:4. 考虑常数项: 总结: 八叉树 四叉树的定义 四叉树&#…

机器学习中的方差与偏差

文章目录 方差与偏差1.1 数据1.1.1 数据的分布1.1.2 拟合 1.2 方差与偏差1.2.1 泛化误差的拆分1.2.2 理解方差偏差 1.3 方差-偏差trade-off1.3.1 方差-偏差trade-off1.3.2 方差与偏差诊断 1.4 降低策略1.4.1 噪声1.4.2 高偏差1.4.3 高方差 方差与偏差 1.1 数据 1.1.1 数据的分…

Weblogic - General - 弱口令 任意文件读取漏洞

0x01:漏洞简介 首先需要说明,本文并不是介绍了 Weblogic 某一 CVE 漏洞,而是提供了一种通用的测试思路。 0x0101:弱口令漏洞 弱口令漏洞主要是由于用户安全意识淡薄,为了便于记忆,设置了强度过低的密码&…