Midjourney 发布局部修复功能,这里有一份 6000 字的使用指南
2023-08-22 14:52
AIGC研修社
2023-08-22 14:52
订阅此专栏
收藏此文章

今天凌晨 2 点 MJ 发布了它的 inpainting 功能 Vary (Region),之前 NIJI 已经发布了它的预览介绍,我在上一篇文章里有分享:Midjourney 新功能 inpainting 抢先看

那么这次正式的版本体验如何呢?本篇文章会分成四个部分:

  • 官方功能介绍

  • 官方使用教程

  • 常见问题指南

  • 跟 PSAI 的对比


   官方功能介绍
下面是官方在公告栏发布的介绍内容:

嘿,@everyone,今天我们正在测试一个名为 Vary (Region) 的新功能。
如何使用它?
  • 它会显示在放大选项下方,如果您点击它,将会出现一个“编辑器”,允许您重新处理图像的特定区域。
  • 如果您键入/settings 并点击“remix mode”,您还将在编辑器中获得一个文本框,允许您更改 / 修改该区域的提示。
技巧和诀窍
  • 此功能在图像的较大区域(图像的 20% 到 50%)上效果最佳。
  • 这并不是一个神奇的修复工具,通常情况下,使用 Vary (Subtle)可能更好。
  • 如果更改提示与图像更相配(在角色头上添加帽子),而不是那些极不相称的变化(森林中的海豚),更改提示会效果更佳。
  • 在最理想的情况下,您可以将“提示混合”功能用作通用修复系统,但我们要警告,有时这可能会令人沮丧,因为系统可能会与您的意图相抵触(抱歉!)
总的来说,当您按照预期使用此功能(在较大的区域上,或进行轻微的提示修改)时,它可以非常有趣!希望您会喜欢!


   官方使用教程

Vary (Region) 是一种修复工具。您可以选择现有画布的部分区域,由 Midjourney 重新绘制。默认情况下,Midjourney 会智能猜测如何在所选区域内进行绘制。在启用“remix”模式的情况下,选择的区域可以根据新的或修改过的提示进行重新绘制,从而增加您的影响力。


需要了解的事项:

  • Vary (Region) 仅适用于 U 放大后的图像。

  • Vary (Region) 可以接受图像引用和权重。

  • Vary (Region) 的 重新投掷 ( 🔃 ) 仅影响该区域。

  • Vary (Region) 的 变体 V 影响整个画布。


如何使用 Vary (Region):

默认情况下,您所选择的区域将使用来自以下三个地方的语义和像素线索进行自动重新绘制:1) 周围画布的线索,2) 所选区域内部的线索,3) 提示。在启用“remix”模式的情况下,您还可以编辑提示以影响重新绘制的操作。


1、放大图像 U。然后使用 [Vary (Region)] 按钮。


2、一个固定大小的窗口将出现。它将显示画布、当前提示、选择工具和一个看起来像箭头的提交按钮。

  • 您将无法对窗口进行缩放,但您应该能够上下左右滚动以触及画布的所有部分。

  • 在桌面 / 网络上,调整 Discord 窗口的大小也会调整修复窗口的大小,从而帮助保持一切可触及。


3、使用矩形或套索工具选择画布的部分区域。

  • 所有这些区域合在一起称为“区域”。

  • 目前没有用于编辑或擦除区域的工具,但有一个逐步撤消按钮(左上角)。

  • 您可以创建重叠的选择(它们是连续的)或不重叠的选择(它们不是连续的)。

  • 最大的连续区域决定了可能能够“适应”其中的内容,因此,作为一个广泛的指导原则,使您的选择稍微大于您想要适应其中的内容。

  • Midjourney 将整个会话中的选择视为一个单一的区域。


4、默认情况下,跳至步骤 5。

但对于启用“remix”模式的用户,您可以修改或替换提示以影响在遮罩内绘制的内容。

区域提示会受益于与常规的“/imagine”提示不同的编写方式,因为它们仅在遮罩内进行绘制。请参阅下面的故障排除部分以从渗透中学习。


5、在完成选择和提示后,使用箭头按钮提交 Vary (Region) 操作。

  • 您可以返回 Discord 等待作业完成,

  • 或者您可以保持在编辑器中,以在同一画布上开始一个新的 Vary Region 作业。

  • 一旦您获得了结果:

    • 结果中的 🔃 重新投掷按钮将自动再次运行当前的提示(不提供 remix 选项),在同一指定区域内。

    • 结果中的 V 按钮将再次运行当前的提示,但在整个画布上运行,而不仅仅是在区域内。启用“remix”模式后,V 变体将弹出 remix 窗口以编辑提示,但同样此提示将绘制整个画布,而不仅仅是区域。要再次改变区域,请返回到父图像,或者 U 放大结果并重复这些步骤。


Vary (Region) 编辑器窗口

编辑器是一个固定大小的窗口。它将显示画布、当前提示、选择工具和一个看起来像箭头的提交按钮。

  • 您将无法对窗口进行缩放,但您应该能够上下左右滚动以触及画布的所有部分。

  • 在桌面 / 网络上,调整 Discord 窗口的大小也会调整修复窗口的大小,从而帮助保持一切可触及。

  • 默认情况下,提示将不可编辑。启用“remix”模式后,提示将可编辑。


区域自由绘制选择工具(套索)

  • 根据您的设备,您可以使用鼠标、手指或类似于 Apple Pencil 的触控笔工具。

  • 您可以选择尽可能多的画布部分。在此示例中,仅选择了一个区域。

  • 使用撤消按钮进行更正。在此示例中,我没有使用撤消按钮。


区域矩形选择工具

  • 根据您的设备,您可以使用鼠标、手指或类似于 Apple Pencil 的触控笔工具。

  • 您可以选择尽可能多的画布部分。在此示例中,选择了两个区域以创建一个较大的区域。

  • 使用撤消按钮可以进行纠正。没有重做功能。


除了 MJ 的官方使用指南,niji 也出了类似的指南,归藏已经整理好了:

Midjourney 局部重绘 NIJI 使用指南



   常见问题指南


尺寸不正确 


除非您的遮罩包含三个要素:用于估计比例的一点东西,适应大小的遮罩区域,以及强化比例线索的提示,否则 Midjourney 在修复时不会自动处理比例。

让我们通过更仔细地查看一个缩放问题来分解它。

想象一下,您的画布上显示了一个坐在公园长凳上的男孩,您想在他旁边的长凳上加一个鸽子。起初,您可能会在男孩旁边的长凳上遮罩一个矩形,并提示“一只鸽子”。简单,不错的开始。但您可能会看到一只巨大的鸽子,它将填满整个矩形区域。故障排除开始了!

如果您增加矩形的尺寸以在语义上采样男孩的比例,您会发现由于男孩现在在修复画布内部,他可能被混合或替换。

另一方面,如果您将遮罩的尺寸缩小得太多,Midjourney 可能会找不到足够的空间放置鸽子。您可能会看到变形的鸽子,非鸽子,或者根本没有任何东西。大多数缩放问题无法仅通过遮罩解决。

因此!实现成功比例所需的三个要素:

  1. 创建一个遮罩,其尺寸略大于“适合比例的正确尺寸”。
  2. 并且,在采样中包括某些参考主题的小片段。在我们的情况下,经过故障排除后,调整后的遮罩中包含了一个男孩的片段,以用于语义采样。
  3. 并且,使用提示来加强它,以告诉 Midjourney 整个场景的某些信息。在我们的情况下,修订后的提示是:秋天的公园长凳上有一只鸽子和一个年轻男孩

为什么这会起作用?

我们找到了正确的平衡点。在修复时,Midjourney 会将画布作为一个整体进行语义采样,并给予其一些权重 X,然后在遮罩内部进行采样,并给予一些权重 Y,然后将其与您的提示组合,给予一些权重 Z。这种相互作用决定了会绘制到遮罩中的内容。
目前无法配置这些 X、Y 和 Z 权重的平衡。我们可以在提示中添加我们自己的权重(::),但只能在提示中。尽管如此,我们可以感受一下它,并将其用于我们的优势。
旁注:“语义”采样意味着 Midjourney 不仅仅对画布的像素进行采样,实际上还会采样画布上的概念和风格。
在我们的示例中,我们调整后的遮罩让 Midjourney 有机会察觉到男孩在画布上。我们调整后的提示加强了这一点。现在,鸽子可以按比例缩放到他旁边。此外,男孩不会被混合,因为他大部分在修复区域之外,安全地不受影响。



我想添加东西,但它没有显示出来


1、首先检查区域。
  • 探索连续的区域部分是否足够大,以容纳您要添加的内容。
  • 探索在区域内部进行采样的内容,以帮助 Midjourney 获得上下文。例如,如果您要在脸部上添加一些东西,可能会有助于采样一些脸部特征,如眼睛、耳朵、鼻子。如果您要在天空中添加一些东西,采样一些天空的标志物,如地平线,可能会有所帮助。

2、然后检查提示。
  • 将 remix 设置为 ON,以便您可以修改提示。
  • 将提示重点放在您想要在区域中展示的内容上。
    • 将其放在提示的前面。
    • 使用权重来强调它。
  • 探索如何帮助 Midjourney 在画布上定位。例如,如果您要给您的僵尸戴眼镜,可以在提示中重复主题,例如 一个戴眼镜的僵尸,而不仅仅是提示 戴眼镜。如果您要在天空中添加鸟,观察一下您的天空。是日落吗?一片云层?尝试将这些内容添加到提示中。不要仅仅写 一群鸟,尝试使用诸如 日落中的一群鸟云中的一群鸟 等短语。
  • 探索增加 chaos (c) 和 weird (w) 的值,这有助于 Midjourney 打破自己的语义规则。
  • 总的来说,还要遵循良好提示和提示故障排除的规则,即避免使用介词短语,以形容词开头等。



我想要移除一些东西,但它仍然存在,或者其他东西出现了。

移除东西是一个有趣的挑战,因为每个提示都是累加的。您不能让提示为空!所以,在选择要擦除的画布区域后,您要写什么提示呢?

尝试从画布中移除内容时需要考虑的事项:

  • ❌ 指令不能被 Midjourney 解释为指令。您不能说:“删除这个”,“抹去一切”,“去掉它”,“用背景替换”等。Midjourney 只会根据它看到的单词在区域内绘制一些东西:“删除、这个、抹去、一切、去掉、它、用、背景”。
  • ❌ 标点符号作为填充物并不总是有效,因为标点是噪音,而噪音是某种东西而不是空白。实际上,Midjourney 会故意为您绘制一些东西,因为这是系统默认的行为。您可以通过 stylize 0style raw 来减少这种倾向,但可能仍然会发生。
  • ❌ 负权重不会可靠地起作用,因为在 Midjourney 中,某物的缺失永远不是空白,它只是其他某物。如果您想要移除一个葡萄柚,因此使用 no grapefruitgrapefruit::-0.5,您实际上是在告诉 Midjourney:“选择其他东西在这里绘制。”它不太可能是一个葡萄柚,而是与不是葡萄柚相关的任何东西。
  • 🤔 描述应该用什么填补空间可能有效,但并不总是如此。如果您试图从月球表面移除飞行中的蝙蝠的剪影,因此提示 moon:: silhouette of bat::-0.5 或只是 moon 以获得更多的月亮而不是蝙蝠,您实际上可能会在蝙蝠曾经存在的区域内获得另一个月亮。如果您试图从风浪汹涌的海洋中移除一艘船,提示 stormy ocean(带有或不带有 no ship)可能会在移除船只的同时获得另一个带有自己天空和地平线的海洋。毕竟,该区域是嵌入在较大画布中的自己的微型画布,虽然 Midjourney 会努力将所有内容混合在一起,但它可能不明白如何做到。您可以尝试更改区域的大小和形状来达到目标。使用这种方法可能需要多次尝试。
  • ✅ 有时,单词 empty 可能会起作用,这是因为 Midjourney 在语义上对画布进行采样的方式。类似词语,如 emptinessnothingblank,效果可能不如预期,因为它们自身具有较强的关联性。但是在故障排除时,我喜欢首先尝试使用 empty。Midjourney 将从语义上采样背景,并使用其认为存在的空白版本重新绘制它。虽然不是非常可靠,但基于 Midjourney 实际在区域内绘制的方式,这是一个较强的起点。
  • ✅ 不断重新投掷和 / 或更改提示和区域,直到移除成功为止。在撰写本文时,这是唯一“非常可靠”的方法。有时,区域恰好适合阻止 Midjourney 在空白处绘制任何内容。有时,提示的解释恰好适合鼓励 Midjourney 以我们认为正确的方式擦除物体。



新区域与画布的其他部分不匹配。

区域将使用来自三个地方的语义和像素提示进行绘制:1)来自周围画布的提示,2)来自所选区域内部的提示,3)提示。如果区域内的新绘画与画布的其他部分在美学上不匹配,请执行以下两项操作:

  • 通过将区域稍微放大或包括画布中具有良好美学代表性的部分,增加所选区域内美学采样。
  • 在区域提示中重复您的样式和美学词汇,以强调它们。
    • 如果不幸的是,您在父提示中没有提供自己的样式和美学词汇,我为您感到失望,但是您可以尝试通过运行父图像通过 /describe 并从那里提取一些样式和美学词汇添加到区域提示中。
旁注:“语义”采样意味着 Midjourney 不仅仅对画布的像素进行采样,实际上还会采样画布上的概念和风格。



我的新内容不断覆盖或与现有内容混合。

区域将使用来自三个地方的语义和像素提示进行绘制:1)来自周围画布的提示,2)来自区域内部的提示,3)提示。如果 Midjourney 正在混合,这可能与区域本身的大小有关。它足够大,可以包含您现有的内容,这意味着这些内容将混合或被混合。以下是您可以采取的措施:
  • 通过将区域稍微缩小或仔细绘制选择,使其不会从问题点进行采样,从而减少所选区域内的语义采样。例如,如果您正在在青蛙旁边添加一只鸟,而鸟始终看起来像青蛙,仔细绘制区域以避免采样青蛙的任何部分。
  • 使用提示技巧来更好地控制混合效果。例如,使用分解短语,如 两个主题,并尝试为其中一个添加负权重。换句话说,如果您正在在青蛙旁边添加一只鸟,而鸟始终看起来像青蛙,尝试 bird:: frog::-0.3
旁注:“语义”采样意味着 Midjourney 不仅仅对画布的像素进行采样,实际上还会采样画布上的概念和风格。


   跟 PSai 的对比


在此之前我已经测试了 outpainting 的横向对比,大家可以在这里看到:

AI 扩图哪家强?midjourney,Photoshop,dalle2,stable diffusion 大比拼


本次测试我尝试了几种最常见的方向:


1、去除画面中的元素:


MJ 的案例:

在前面的注意事项里面官方已经提到了 MJ 去除元素的方式,也就是是通过去掉提示词里的相关的词汇来达成的,下面的案例我试图去掉月亮这个元素。

方法是通过套索工具圈出月亮和月亮的倒影,然后再去掉提示词里的 moon。

最后的效果如下,其实还是不错的,倒影里的月亮去掉了,但是人物的倒影还有。虽然个别图上还会出现月亮。

但是这个方式存在一个问题,如果我在提示词里找不到对应的词怎么办?因为 AI 生成的随机性,并不是每个元素都能在提示词里找到对应的词汇。


PS 的案例:

还是用这张图来测试。PS 的方式也是用套索工具圈出不想要的内容,然后用 no 的提示词即可。

可以看出效果也非常好。


2、增加画面里的元素

MJ 的案例:

这里我测了一个典型的场景,就是现在的 AI 生成都不能准备的生成指定的数量,那么inpainting 的功能是否可以生成特定的物件MJ 官方举的例子是那种提示词结构非常简单清晰的情况,但是大多数的时候,我们的提示词并没有这么完美。

比如下面这个例子,我想生成三把宝剑,但是如何让 MJ 来理解三把宝剑呢?宝剑这个单词在提示词里已经有了,所以我无法去掉它,增加它效果也不好,数量也无法识别。最后的结果就是通过 inpainting 来增加画面里已经有的元素失败了,画面毫无变化。

mj 无法增加画面里已经有的元素。

真是一点变化也没有呢。


PS 的案例:

那么同样的图,PS 可以做到增加指定的元素么?我在左侧圈出来的区域生成了同样风格的宝剑,很完美。提示词就是你要生成的物体,指向明显。


总结:

MJ 的 inpainting 功能有用,但是并不是那么好用。相对于 PS 的 inpainting 来说差距还是有的。我觉得跟他们的实现技术的方式有关系,MJ 无法针对性单独对重绘区域进行提示描述,但是修改原始的提示词会造成很多不必要的混乱。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

AIGC研修社
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开