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 引导](#1. diffusion 引导)
    • [2. Null-text Inversion](#2. Null-text Inversion)
  • [二. vid2vid-zero](#二. vid2vid-zero)
  • [三. 复现](#三. 复现)

一. 预备知识

1. diffusion 引导

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

  • 分类器引导 (classifier-guided diffusion) [1](#1):扩散模型在生成过程中通过一个预训练的噪声分类器提供额外的引导信号,模型通过计算生成数据的分类概率梯度来指导生成的方向,从而增强条件生成的准确性。分类器引导扩散模型可以更精确地控制生成的样本,但生成速度较慢;
  • 无分类器引导 (classifier-free diffusion) [2](#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)+(1−w)ϵθ(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](#3) 是一种在 text-to-image 生成任务中使用的技术,用于优化和改进模型对输入文本的理解和生成能力。Null-text Inversion 的核心思想是在训练阶段引入空文本 (null text) 描述作为输入,通过在每一时间步训练这些 null text 使其尽可能接近真实的文本描述,这样模型可以学习在缺乏明确条件的情况下如何生成更具代表性和高质量的图像。

由于 DDIM Inversion 每一步都会产生误差,对于无条件 diffusion,累积误差可以忽略。但是对于 classifier-free diffusion,累积误差会不断增加,最终反演所得的噪声可能会偏离高斯分布,这样再经过 DDIM 采样最终生成的图像会严重偏离原图像 [4](#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 zt−1∗−zt−1 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 的核心是:

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

三. 复现

实验过程

  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. 报错,增加该字段即可:

    bash 复制代码
    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的图像编辑技术 ↩︎

相关推荐
孤狼warrior3 天前
图像生成 Stable Diffusion模型架构介绍及使用代码 附数据集批量获取
人工智能·python·深度学习·stable diffusion·cnn·transformer·stablediffusion
love530love5 天前
【避坑指南】提示词“闹鬼”?Stable Diffusion 自动注入神秘词汇 xiao yi xian 排查全记录
人工智能·windows·stable diffusion·model keyword
世界尽头与你5 天前
Stable Diffusion web UI 未授权访问漏洞
安全·网络安全·stable diffusion·渗透测试
love530love5 天前
【故障解析】Stable Diffusion WebUI 更换主题后启动报 JSONDecodeError?可能是“主题加载”惹的祸
人工智能·windows·stable diffusion·大模型·json·stablediffusion·gradio 主题
ai_xiaogui10 天前
Stable Diffusion Web UI 绘世版 v4.6.1 整合包:一键极速部署,深度解决 AI 绘画环境配置与 CUDA 依赖难题
人工智能·stable diffusion·环境零配置·高性能内核优化·全功能插件集成·极速部署体验
微学AI11 天前
金仓数据库的新格局:以多模融合开创文档数据库
人工智能·stable diffusion
我的golang之路果然有问题11 天前
开源绘画大模型简单了解
人工智能·ai作画·stable diffusion·人工智能作画
我的golang之路果然有问题11 天前
comfyUI中的动作提取分享
人工智能·stable diffusion·ai绘画·人工智能作画·comfy
stephen one15 天前
2026 AI深度伪造危机:实测 Midjourney v7 与 Flux 2 Max 识别,谁才是 AI 检测的天花板?
人工智能·ai作画·stable diffusion·aigc·midjourney
长不大的蜡笔小新18 天前
基于Stable Diffusion的多模态图像生成与识别系统
stable diffusion