如何使用稳定扩散制作 AI GIF 和视频
已发表: 2023-02-20Stable Diffusion 能够生成的不仅仅是静止图像。 通过一些内置的工具和一个特殊的扩展,你可以毫不费力地得到非常酷的 AI 视频。 下面介绍如何使用 Stable Diffusion 为动画 GIF 或实际视频文件生成帧。
稳定扩散能生成视频吗?
使用 Inpaint 为图像制作动画
第 1 步:获取图像及其提示
第 2 步:遮盖零件以使用 InPaint 制作动画
第 3 步:生成您的框架
第 4 步:批量升级您的相框(可选)
第 5 步:在 GIF 或视频制作器中制作动画帧
使用 Deforum 生成视频
第 1 步:安装 Deforum 扩展
第 2 步:写下您的提示
第 3 步:调整 Deforum 设置
第 4 步:生成您的视频
稳定扩散能生成视频吗?
虽然 AI 生成的电影仍然是一个新兴领域,但在技术上可以使用 Stable Diffusion 制作一些简单的动画,无论是作为 GIF 还是实际的视频文件。 但是有一些限制。
因为 img2img 可以轻松生成特定图像的变体,所以 Stable Diffusion 非常适合快速制作一系列动画帧,尤其是循环帧。 想一想从火中升起的火焰、车轮在汽车上旋转或喷泉中飞溅的水。 实际用途可能是为某些 RPG 艺术品赋予逼真的氛围:
稳定扩散
您甚至可以根据真实图像而不是合成图像制作视频。 在这里,我拍了一张正在浇水的植物的照片,然后点击几下,为水流制作了动画:
Jordan Gloor / 稳定扩散
如果您想为一个对象设置动画,使其从 A 点移动到 B 点,那么对于稳定扩散来说这是一项艰巨的任务(至少目前如此)。 您可能会花费大量时间调整提示和设置,然后仔细研究大量输出以找到最佳帧并将它们按正确顺序放置。 到那时,您不妨打开 Adobe Illustrator 并开始手动制作动画。
尽管如此,您可以使用基本的 Stable Diffusion 设置和您选择的用于将动画中的帧拼接在一起的另一种工具来制作一些很酷、简单的动画。 还有一个名为 Deforum 的项目使用 Stable Diffusion 来创建看起来非常有趣的“变形”动画。 它会输出 MP4 视频,因此不需要外部工具,它甚至可以让您添加音频。 我们将向您展示这两种方法的基础知识。
注意:出于本文的目的,我们假设您已经为 Stable Diffusion 安装了图形界面,特别是 AUTOMATIC1111 的 Stable Diffusion 网络用户界面。 与标准的命令行安装相比,它使生成图像的方式更加容易,并附带了大量方便的工具和附加功能。
使用 Inpaint 为图像制作动画
使用 img2img 工具 Inpaint,您可以突出显示要制作动画的图像部分并生成它的多个变体。 然后将它们放入 GIF 或视频制作器中,并将帧保存为动画。
第 1 步:获取图像及其提示
首先将要设置动画的图像拖放到 img2img 工具的 Inpaint 选项卡中。 如果您还没有生成一个,请花一些时间写一个好的提示,这样您就可以获得一张好的入门照片。 您还可以导入自己拍摄或绘制的图像。
如果您要导入不是使用 Stable Diffusion 生成的图像,您仍然需要适当的提示来生成变体,因此请单击 Img2Img 页面顶部的“Interrogate CLIP”。 这将根据 Stable Diffusion认为您的图像包含的内容生成启动提示。 通过添加任何其他重要详细信息来完成提示。
对于我们的指南,我们生成了夜空下机器人的 512×512 图像,我们想要提供延时动画,流星和星系经过。
如果您想精确地进行操作,可以使用我们使用的提示重新创建它:
一个机器人站在田野里,在流星雨、流星、星系、宇宙、银河、超现实、高度详细、4k uhd 期间仰望夜空
这些是我们使用的设置:
检查点:稳定扩散2.0
采样方法: DPM++ SDE
采样步数: 20
CFG比例: 5
种子: 4177542269
第 2 步:遮盖零件以使用 InPaint 制作动画
图像和提示就位后,在 Inpaint 工具中,使用画笔遮盖(遮盖)要制作动画的图像的每个部分。 留下任何你想要静态的东西。
在我们的示例中,我们覆盖了大部分天空。 我们在机器人周围留了一点垫子,因为在我们的测试中,如果我们靠得太近,稳定扩散有时会给机器人增加天线和其他附属物。
提示:您可以通过单击画布右上角的画笔按钮,使用滑块调整 Inpaint 画笔大小。
第 3 步:生成您的框架
现在您已经遮盖了您想要看到移动的图像的每个部分,是时候生成我们的动画帧了。 但首先,您需要确保 img2img 具有正确的设置。 它们可能令人困惑,因此我们将解释其中一些的含义以及您可能想要或可能不想调整它们的原因:
- 蒙版模式:Inpaint Masked – 这确保覆盖的所有内容都被更改,而不是相反。 如果出于某种原因,您想要改为修改未屏蔽的部分,请将其更改为“Inpaint Not Masked”。
- Masked Content: Original – 这确保 Stable Diffusion 在生成变化时能够看到并考虑现有图像。 否则,它会将屏蔽的内容视为空白或随机画布。
- Inpaint Area: Whole Picture——这会强制 Stable Diffusion 在将每个帧与原始图像集成之前为每个帧生成一个全新的图像。 切换到“Only Masked”可能会加快生成速度,但也可能会给您带来更糟糕的结果。
- 采样方法:DPM++ SDE – 这与我们用于生成原始图像的采样方法相同,我们坚持使用它以确保外观一致。 如果不知道用什么,“Euler a”是一个全能的好选择。
- 批次计数:60 – 这是您要生成的图像数量。 您可能需要更多或更少,具体取决于您希望动画序列的速度和长度。
- CFG 等级:5 – 从某种意义上说,CFG 等级决定了 Stable Diffusion 的创作自由度。 数字越高,Stable Diffusion 将越严格地尝试遵循您的提示。 增加它并获得好的结果需要有一个非常好的提示。
- 去噪强度:0.3——可能是这个项目最重要的设置,去噪比例决定了稳定扩散对原始图像的改变程度。 您可能希望将其保持在 0.2 或 0.3 左右,因为太多的帧到帧变化会破坏动画。
- 种子:-1 – 这告诉稳定扩散以随机种子开始。 我们不建议重复使用原始图像中的种子,因为这会减少您获得的变化量(如果有的话)。
完成所有设置后,单击“生成”并坐下来,让 Stable Diffusion 为您绘制动画帧。 您可以在 Stable Diffusion 目录的/outputs/img2img-images
文件夹中找到它们。 如果您不喜欢结果,请调整设置(可能从去噪强度和采样步骤开始)并重试。
第 4 步:批量升级您的相框(可选)
如果您打算创建高清视频,请记住将所有新生成的帧升级到您想要的分辨率。 单击“发送到 Extras”开始。
在 Extras 中,切换到“批处理”选项卡。
将“调整大小”比例调整为您希望调整大小的次数(设置为 2 会将 512×512 图像更改为 1024×1024 图像)。 或者,从“缩放依据”切换到“缩放至”并设置特定分辨率。 同时将“Upscaler 1”设置为您选择的升频器。 我们使用 R-ESRGAN 4x+ 获得了足够好的结果,但请随意进行实验,看看哪个能最好地处理您的图像。
然后点击“生成”,Stable Diffusion 将为您提供每个帧的高分辨率版本,保存在您的/outputs/extras
文件夹中。
第 5 步:在 GIF 或视频制作器中制作动画帧
现在你已经有了你的帧,是时候将它们缝合在一起并创建你的最终动画了。 您可以使用许多工具来执行此操作,包括免费的专用网站,如 Ezgif 和 flixier,它们易于使用且具有许多微调控件。 但是,请记住,这些网站可以看到您上传的所有内容,因此不要向他们提供任何您不满意的信息。
虽然这些网站的解释很清楚,但我们将演示如何使用免费的离线照片编辑工具 GIMP 制作 GIF。 如果您想要一个视频文件,请改用 Kdenlive 或类似的视频编辑器——只需确保调整设置,以便将所有帧导入为一秒或更短的剪辑,具体取决于您想要的每秒帧数。
首先,下载 GIMP 并将其安装到您的计算机上(如果您还没有的话)。 启动它,然后转到“文件”>“作为图层打开”。
找到您生成的帧所在的位置,然后一次选择所有帧,然后单击“打开”。 (按住 Shift 键可以快速选择多个文件。)GIMP 会将您的所有图像作为一个单独的图层导入到一个画布上。 我们想要这个是因为 GIMP 的 GIF 生成工作方式是从下到上遍历每一层,将每个连续的层视为动画中的下一帧。
现在是有趣的部分。 要观看 GIF 预览,请转到“滤镜”>“动画”>“播放”。
按空格键播放和暂停 GIF。 如果帧过快或过慢,请调整播放对话框底部的 FPS,然后单击顶部的刷新按钮以使用新的帧速率重新加载预览。
一旦动画看起来不错,就可以生成 GIF 文件了。 关闭预览并单击文件 > 导出为。 当您输入文件保存名称时,将.gif
扩展名添加到末尾,以便 GIMP 知道您需要 GIF。
在出现的 GIF 导出对话框中,确保选中“作为动画”框。 如果您想要不同的帧速率,也可以调整帧之间的毫秒数。 一秒钟有 1000 毫秒,因此 100 毫秒将使您在 10 FPS 左右正确。 最后,单击“导出”。
繁荣,你有完整的动画 GIF。
使用 Deforum 生成视频
如果您想使用 Stable Diffusion 创建更有趣的动画,并让它输出视频文件而不是一堆帧供您使用,请使用 Deforum。 这是一个图像合成项目,带有可用于 Stable Diffusion Web UI 的扩展,可让您直接生成 MP4 视频文件,甚至包括音频。 这是一个非常强大和复杂的工具,有很多设置可供试验,包括相机平移和缩放、多个提示和视频导入。
出于我们的目的,我们将向您介绍生成相当简单但有趣的动画的基础知识。
第 1 步:安装 Deforum 扩展
要获取 Deforum 扩展,请打开命令提示符并将目录更改为您的stable-diffusion-web-ui
文件夹。 然后使用这个 git clone 命令在你的扩展文件夹中安装 Deforum。
git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum
像往常一样启动 Stable Diffusion web UI,然后打开界面中现在的 Deforum 选项卡。
提示: Deforum 扩展自带默认设置,因此您可以立即点击“生成”按钮来创建兔子变身为猫、椰子和榴莲的视频。 很酷!
第 2 步:写下您的提示
您可能习惯于使用 Stable Diffusion 编写单个提示,但 Deforum 允许您编写多个“预定”提示,这意味着在您选择的动画中的任何时间点,它都会切换为根据计划中的下一个提示生成帧。
单击“提示”选项卡并将现有提示更改为您想要的任何内容,保持括号和选项卡结构不变。 对于我们的示例,我们将使用这组提示:
{ “0”:“流星雨期间,机器人站在夜空下,流星,星系,宇宙,银河,超逼真,高度详细,4k uhd”, “40”:“一个空间站在流星雨期间飞过太空,超逼真,非常详细”, “80”:“超新星爆炸,色彩鲜艳,超逼真,细节丰富” }
那么这些数字是什么意思呢? 默认情况下,Deforum 为您的动画生成 120 帧,我们将这组帧分成三部分。 0
表示第一帧,因此它和之后的所有帧都是第一个提示的 im2img 变体。 然后在第 40 帧,Stable Diffusion 将开始根据我们的第二个提示进行变化。 在 80 时,它切换到第三个。 您可以根据需要添加任意数量的提示更改,并根据需要调整关键帧选项卡上的最大帧限制。
第 3 步:调整 Deforum 设置
您可能已经注意到 Deforum 中涉及大量设置,但我们将通过一些设置来帮助您入门。 首先,在“运行”选项卡中,您会找到许多典型的 Stable Diffusion 设置。 重命名批次,输入你想要开始的种子(我们正在为我们的机器人重复使用那个),并将采样器更改为你想要的。
在关键帧选项卡中,您可以调整动画“相机”的运动。 它默认设置为间隔缩放,但我们想要添加垂直“平移”运动,因此我们将添加0:(-2), 100:(4)
到“Translation Y”帧。 这告诉 Deforum 将第一帧视为 Y 轴上的像素 -2,然后在第 100 帧移动到像素 4。随着动画的进行,这将使我们稍微向上平移。
在“输出”选项卡中,我们将选中“制作 GIF”框,这将在 MPEG 视频文件之外为我们提供一个 GIF 文件。 这也是您使用“添加音轨”和“音轨路径”设置添加音频的地方(如果有的话)。
第 4 步:生成您的视频
最后,点击那个大的“生成”按钮。 由于 Deforum 正在创建和拼接许多帧,这需要时间,所以在等待时喝杯咖啡。 完成后,您会在/outputs/img2img-images
目录中找到 MPEG 文件、GIF 版本、每个单独的帧以及您在批处理名称下使用的设置读数。
这是我们的提示得到的:
这不是夏季大片,但它仍然有点迷人! 查看官方 Deforum 快速入门指南,了解您可以调整的所有其他旋钮和转盘。
如果您正在寻找其他很酷的 AI 项目,请了解如何使用 Stable Diffusion 生成 Minecraft 纹理包或开始使用 ChatGPT,以及使用 ChatGPT 可以做的令人惊讶的事情。