depth-to-image 能做什么
使用深度到图像,您可以更好地控制单独合成主体和背景。
假设我想把La La Land中的浪漫场景变成一场摔跤比赛……

原始图像。
我们稍后会详细介绍,但现在只是将深度到图像视为图像到图像的增强版本。它们可以以完全相同的方式使用——给定图像和文本提示,它将生成一个新图像。
假设我使用提示
两个男人摔跤的照片
对于图像到图像和深度到图像。以下是去噪强度从 0.4 到 1.0 变化的结果。(请记住,去噪强度越高,图像变化越大。)

比较图像到图像和深度到图像。
让我们看看图像到图像的生成(第一行)。我们遇到了一个问题:在低去噪强度下,图像变化不够大。在高去噪强度下,我们确实看到了两个摔跤手,但原始构图丢失了。
Depth-to-image 解决了这个问题。您可以将降噪强度一直提高到 1(最大值)而不会丢失原始成分!
现在您知道图像深度可以做什么,让我们看看它是如何工作的。
那么什么是图像深度?
回想一下,在图像到图像中,Stable Diffusion 将图像和提示作为输入。图像生成基于图像和提示。最终图像在颜色和形状上与输入图像相似。
在深度到图像中,Stable Diffusion 同样将图像和提示作为输入。该模型首先使用 MIDaS 估计输入图像的深度图,MIDaS 是 2019 年开发的一种人工智能模型,用于估计单眼深度感知(即从单个视图估计深度)。然后,Stable Diffusion 使用深度图作为图像生成的额外条件。
换句话说,depth-to-image 使用三个条件来生成新图像:(1) 文本提示,(2) 原始图像和 (3) 深度图。
配备了深度图,模型对场景的三维构成有了一定的了解。前景对象和背景的图像生成可以分离。
深度图
您无需提供深度图即可使用深度到图像。本节再现深度图用于教育目的。
深度图是与编码深度信息的原始图像大小相同的简单灰度图像。全白表示该物体离您最近。更多的黑色意味着更远。
这是一个图像示例及其由 MIDaS 估计的深度图。

原来的

深度图
让我们结合图像和深度图(使用 Depthy)。将指针悬停在图像上以查看效果。
如果您想了解更多关于图像深度如何在更深层次上工作的信息,请参阅模型架构。
安装图像深度模型
如何安装
在 AUTOMATIC1111 GUI 中安装图像深度模型:
- 下载模型文件 (512-depth-ema.ckpt)
- 下载配置文件,重命名为
512-depth-ema.yaml
将它们都放在模型目录中:
stable-diffusion-webui/models/Stable-diffusion
如何使用
要使用该模型,请按左上角检查点下拉框旁边的刷新按钮。选择512-depth-ema.ckpt
加载模型。

请注意,深度模型可用于图像到图像和修复,但不能用于文本到图像。如果您尝试这样做,您将看到一个错误。
要使用该模型,请转到 img2img 选项卡。按照 img2img 和修复的说明使用。
从型号名称可以看出,这是一款 512 型号。这意味着当新图像的至少一侧为 512 像素时效果最佳。
一些使用思路
现在通过一些用例。
img2img 的替代品
假设您有一张这样的人像照片。

原始肖像图像。
您想通过包括一名亚洲女性来增加多样性。但是你已经在他周围设计了额外的元素,所以你不想改变这个人的形状。
你可以用 img2img 做到这一点,但你不能将去噪强度设置得太高,因为你会失去原来的形状。
使用 img2img,这是你能做的最好的事情:

图像到图像。提示:a beautiful happy asian woman with perfect detailed eyes, detailed facial feature, detailed skin, natural lighting, long hair. Denoising strength: 0.58
形状有一些变化,但还不算太糟。然而,去噪强度仍然太低,无法偏离原始人的肤色。也没有遵循长发提示。
现在的困境是:将去噪强度增加到 1 会得到我们想要的结果,但我们会失去原来的形状:

具有相同提示但去噪强度设置为 1 的图像到图像。
使用深度到图像模型可以让我们在不丢失原始形状的情况下将去噪强度设置为 1:

Depth-to-image 具有相同的提示和去噪强度设置为 1。
请注意,该男子的形状已完全保留,并且稳定扩散以某种方式弄清楚了如何渲染长发。
修复
您可以类似地在修复中使用图像深度,以修复缺陷或创造新事物。
如果您关心保留原始构图,则需要使用深度到图像。


使用深度到图像模型修复。
风格转移
depth-to-image 的一个优点是你可以在不丢失合成的情况下将降噪强度一直调到 1。这使得将场景转换为不同的风格变得容易。
这里有些例子:

立体主义

虚幻引擎

油画

插图
深度到图像的风格迁移。
偷个姿势
使用稳定扩散很难生成特定的人体姿势。使用深度到图像,您可以使用具有您想要的姿势的照片作为基础图像。将去噪强度设置为 1,您就可以开始工作了!深度到图像将完全保留姿势。照片可以是电影场景、绘画或您用手机拍摄的照片。
不再有额外的肢体、怪异的手和无休止的修补来修复姿势!
概括
深度到图像是图像到图像的一个很好的替代方法,尤其是当您想要保留场景的构图时。
这个强大的工具自发布以来并没有引起太多关注。我希望本文能激发您考虑将其纳入您的工作流程。