如何使用Stable Diffusion (Deforum)制作视频

如何使用稳定扩散 (Deforum) 制作视频

Deforum 是一个使用Stable Diffusion创建动画视频的工具。您只需提供提示词和有关相机如何移动设置即可。

我们将完成制作这个 deforum 视频的步骤。

这篇文章适合以前没有制作过 deforum 视频的初学者。你将学习

  • deforum 是什么。
  • 如何在 AUTOMATIC1111 Stable Diffusion 上安装 deforum 扩展。
  • 基本设置。
  • 如何逐步创建您的第一个 deforum 视频。

什么是deforum?

Deforum是用于制作动画的开源免费软件。它使用Stable Diffusion的图像生成图像功能生成一系列图像并将它们拼接在一起以创建视频。

它将小变换应用于图像帧,并使用图像生成图像函数来创建下一帧。由于帧之间的变化很小,因此会产生连续视频的感觉。

如何安装deforum?

我们将使用AUTOMATIC1111 GUI 的deforum 扩展您可以在Windows、  Mac或 Google Colab上使用此 GUI 

在 Google Colab 上使用 deforum

如果您使用快速入门指南中的 Colab notebook,只需在启动 AUTOMATIC1111 之前选中 Deforum 扩展即可。

 

启动后,您应该会在 AUTOMATIC1111 GUI 中看到Deforum 选项卡

在 Windows 上安装 deforum

如果您在 Windows 上本地运行 AUTOMATIC1111,请按照以下说明安装 deforum。

步骤1打开命令提示符 (cmd)并将目录更改为stable-diffusion-webui. 如果您遵循该站点的安装指南,请运行

cd %userprofile%\stable-diffusion-webui

步骤2通过运行以下命令安装 deforum 扩展。

git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum

重新启动 AUTOMATIC1111 GUI 后,您应该会看到 Deforum 选项卡。

在 Mac 上安装 deforum

如果您在 Mac 上本地运行 AUTOMATIC1111,请按照以下说明安装 deforum。

步骤 1.打开终端应用程序。导航到 的安装目录stable-diffusion-webui如果您遵循了该网站的指南,请运行以下命令。

cd ~/stable-diffusion-webui

步骤2通过运行以下命令安装 deforum 扩展。

git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum

重新启动 AUTOMATIC1111 GUI 后,您应该会看到 Deforum 选项卡。

生成测试视频

此步骤是可选的,但将让您大概得了解我们将使用的设置。

第 1 步:在 AUTOMATIC1111 GUI 中,导航至Deforum页面。

第 2 步:导航至关键帧选项卡。

  • 您将在页面的下半部分看到“运动Motion”选项卡。您将在此处设置相机参数。
  • 最大帧数 Max frames是视频的帧数。值越高,视频越长。

您可以使用默认值。

步骤 3:导航至“提示词prompt”选项卡。您将看到一个提示词列表,每个提示词前面都有一个数字。数字为提示词生效的视频帧号。

对于以下提示词,它将使用第一个提示词作为视频的开始。然后,它将在第 30 帧切换为使用第二个提示词,在第 60 帧切换为使用第三个提示词,在第 90 帧切换为使用第四个提示词。

步骤 4:单击“生成”开始生成视频。

第 5 步:完成后,单击“生成”按钮上方的按钮即可观看视频。

您可以通过单击右下角的三个垂直点将视频保存到本地存储。或者您可以在img2img-images文件夹下的输出目录中找到您的视频。

基本设置(附示例)

我们首先进行两个最重要的设置

  • 运动Motion(2D 和 3D)
  • 提示

在学习创建视频的逐步示例之前,对 Deforum 的功能有一些基本了解非常重要。

在本节中,您将看到在保持其他所有内容不变的情况下更改一个参数的示例。这些是视频的构建块。

通过组合它们并在不同时间打开和关闭它们,您可以创建令人惊叹的视觉效果。

运动Motion设置

运动Motion设置是 Deforum 中最常用的一些选项。您只需更改它们和提示词即可制作出不错的视频。因此,您应该很好地掌握运动motion设置的工作原理以及它们的作用。

让我们介绍两种最常用的动画模式

  • 2D – 将图像视为 2D 并执行各种变换(例如缩放和旋转)以创建运动错觉。
  • 3D – 将图像视为 3D 场景的视图。您可以在任何 3D 操作中移动相机的视口。

2D 运动Motion设置

包含以下参数

2D 变焦Zoom

使用缩放功能放大或缩小图像。使用大于 1 的缩放值进行放大,使用小于 1 的缩放值进行缩小。

该值距离 1 越远,缩放速度越快。

默认情况下,缩放集中在中心。您可以通过设置Transform Center XTransform Center Y来控制焦点。我们将在下面介绍它们。

zoom 0:(0.99)
zoom 0:(1.01)

 

2D角度

使用2D 角度旋转图像。正值使图像逆时针旋转,负值使图像顺时针旋转。

值越大,图像旋转得越快。

默认情况下,旋转围绕图像的中心。您可以通过设置Transform Center XTransform Center Y来控制旋转中心。我们将在下面介绍它们。

2D angle:2
2D angle:-2

 

2D Translation平移 X

使用平移 X 将图像横向移动。使用正值将图像向右移动,使用负值将图像向左移动。

2D translation X: 5
2D translation X: -5

 

2D Translation平移Y

使用平移 Y 上下移动相机。使用正值将图像向下移动,使用负值将图像向上移动。

2D translation Y: 5
2D translation Y: 5

 

2D Transform Center变换中心

变换中心用于改变缩放和/或旋转的焦点。

X 和 Y 的默认值为 0.5,即图像的中心。(X, Y) = (0, 0) 是左上角,(1, 1) 是右下角。其他常见位置请参见下图。

您可以指定小于 0 或大于 1 的值。它们将位于图像之外。

下面是在左上角 (0, 0) 和右下角 (1, 1) 放大的两个示例。

Transform Center (0,0) with zoom
Transform Center (1,1) with zoom

 

2D Perspective flip透视翻转

透视翻转对图像执行类似 3D 的变换,以创建一些很酷的效果。

您需要选择启用透视翻转才能启用这些选项。

theta: 12
phi: 12
gamma: 12

 

3D Motion运动设置

3D 运动是 2D 运动的替代方案。想象一下您拿着相机。您可以按照您想要的方式移动和旋转相机。包含以下参数:

3D Translation X 平移

平移 X 将相机向侧面移动。正值将相机向右移动。负值将相机向左移动。

3D translation X: 2

 

3D Translation Y平移

平移 Y 使相机上下移动。使用正值将相机向上移动。负值会使相机向下移动。

3D translation Y: 2

 

3D Translation 平移Z

3D 中的平移 Z 类似于 2D 运动中的缩放。

3D translation Z: 2

 

3D 旋转 X

旋转 X 使相机绕 X 轴旋转。


3D 旋转 X:2

3D 旋转 Y

旋转 Y 使相机绕 Y 轴旋转。


3D 旋转 Y:2

3D 旋转 Z

旋转 Z 使相机绕 Z 轴旋转。


3D 旋转 Z:2

运动Motion schedule时间表

运动设置以表格形式输入

frame1:(value1), frame2:(value2), frame3:(value3), ...

每个条目由两个数字组成:frame生效的数字和运动的数字value。每个条目的frame和value必须用冒号分隔,并且值必须用括号括起来。

您始终需要第 0 帧的条目。

您可以拥有任意数量的条目。

需要注意的是,当您有两个或更多条目时,就意味着在两个帧之间进行插值。

例如,缩放中使用的以下公式意味着在前 100 帧中逐渐将缩放值从 1 增加到 1.02,并在接下来的 100 帧中将缩放值减小回 1。

0:(1), 100:(1.02), 200:(1)

如果您希望新的缩放值从第 100 帧开始生效,您可以编写如下内容:

0:(1), 99:(1), 100:(1.02), 150:(1.02), 151:(1), 200:(1)

此公式将仅在第 100 帧和第 150 帧之间应用缩放效果。

每个设置都有自己的运动时间表。

Zoom:0:(1)

Angle:0:(0)

Transform Center X:0:(0.5)

Transform Center Y:0:(1)

Translate X:0:(0)

Translate Y:0:(5), 60:(0)

提示:不能只写180:(5)。写入 0:(0)、180:(5)。第一个条目必须是第 0 帧。

逐步演示

第 1 步:生成初始图像

初始图像是 deforum 视频中您可以完全控制的少数内容之一。它也可以说是最重要的,因为它为动画的其余部分设定了基调和颜色。

花点时间在txt2img选项卡中生成一个好的起始图像。

在此示例中,我使用了以下提示词。

亨利·卡维尔饰演詹姆斯·邦德的肖像, 赌场, 关键艺术, 短跑, 棕榈树, 非常详细, 数字绘画, 艺术站, 概念艺术, 电影照明, 锐焦点, 插图, 作者:gaston Bussiere alphonse mucha

portrait of henry cavill as james bond, casino, key art, sprinting, palm trees, highly detailed, digital painting, artstation, concept art, cinematic lighting, sharp focus, illustration, by gaston bussiere alphonse mucha

还有这个反向提示词。

变形的,毁容的

deformed, disfigured

将种子设置为随机 (-1)。

我使用Protogen v2.2 模型来呈现逼真的插图风格。

看到您喜欢的图像后,记下种子seed值(在上面的屏幕截图中突出显示)。

第2步:生成视频的第一段

在“提示词”选项卡中输入提示词。我决定重复使用默认提示词中的第二个提示词。提示词是

{
    "0": "portrait of henry cavill as james bond, casino, key art, sprinting, palm trees, highly detailed, digital painting, artstation, concept art, cinematic lighting, sharp focus, illustration, by gaston bussiere alphonse mucha --neg deformed, disfigured",
    "50": "anthropomorphic clean cat, surrounded by fractals, epic angle and pose, symmetrical, 3d, depth of field, ruan jia and fenghua zhong"
}

第 50 帧提示词切换为描述一只猫。

现在转到“运行Run”选项卡。

  • 选择 Protogen 模型。
  • 将种子设置为 2020548858。固定种子值可以让您每次都从相同的图像开始,这样您就可以继续在相同的视频上进行构建。

由于我的詹姆斯·邦德在初始图像中朝左,所以将相机向右移动是很好的。我们将使用3D 动画模型。

关键帧选项卡中,

  • 选择3D动画模式。
  • 将最大帧数设置为 100。这是为了生成足够的帧来查看前两个提示

在下面的“运动Motion”选项卡中,设置:

  • 将 X 平移为0:(2). 这是为了将相机移动到右侧。
  • Z 平移到0:(1.75). 这是为了以慢一点的速度放大。

剩下的就留着0:(0)什么也不做。

“生成”开始制作视频。

这是到目前为止的视频。

摄像机按照我们预期的方式移动。詹姆斯·邦德很好地转变为一只分形猫。

到目前为止,一切都很好。

第 3 步:添加下一个提示

现在集思广益,讨论 txt2img 选项卡中的下一个提示。

我决定过渡到太空场景会很好。这是最后的 deforum 提示词。

{
    "0": "portrait of henry cavill as james bond, casino, key art, sprinting, palm trees, highly detailed, digital painting, artstation, concept art, cinematic lighting, sharp focus, illustration, by gaston bussiere alphonse mucha --neg deformed, disfigured",
    "50": "anthropomorphic clean cat, surrounded by fractals, epic angle and pose, symmetrical, 3d, depth of field, ruan jia and fenghua zhong",
    "90": "giant floating space station, futuristic, star war style, highly detailed, beautiful machine aesthetic, in space, galaxies, dark deep space <lora:epiNoiseoffset_v2:1> --neg bad art, amateur"
}

(我在第三个提示中使用了epi_noiseoffset LoRA 模型修改器。有关详细信息,请参阅LoRA 教程。)

设置以下参数

  • 最大帧数为 250。
  • 旋转 3D X0:(0), 70:(0), 71:(0.5). 这会在第 71 帧处添加旋转变化。

其余设置保持不变。以下是最终的运动设置。

生成

我们得到了最终的视频。

您通常会花费大量时间来调整动作和提示,以达到您想要的确切效果。

您可以重复此步骤并添加任意数量的提示词。

技巧

  • 具有大主题的提示词比具有许多小对象的场景效果更好。
  • 小细节会经常发生变化。这就是图像生成图像的工作原理。因此,带有模式(如分形)或富有想象力的主题的提示词往往比后面的提示词效果更好。
  • 如果您在提示词转换期间看到伪影,将提示词帧移动几帧可能会消除伪影。
  • 设置输出选项制作 GIF制作动画 gif 。
  • 使用“输出”选项中的“删除图像”选项可自动删除中间图像并仅保留视频。
  • 使用输出选项 Add soundtrack 来添加音轨

有用的资源

发表评论