Skip to content

文生图,图生图

batvbs edited this page Nov 23, 2022 · 51 revisions

文生图

依据设置的提示词和采样参数,生成相关图像。

提示词

  • 提示词 用一句话描述你想生成的内容,或使用多个提示词(用英文逗号,隔开)
  • 反向提示词 你不想要生成的内容。

模版风格

模版风格包含正向和反向提示词,并应用于两者
🎨 随机添加一个艺术家到提示词中
↙️ 从提示词中读取生成参数。如果提示词为空,则读取上一次的生成参数到用户界面
💾 将当前的提示词保存为模版风格(保存在styles.csv)
📋 将所选模板风格,应用于当前提示词
如果你在文本中添加{prompt}标记,并保存为模版风格。
那么将来你使用该模版风格时,你现有的提示词会替换模版风格中的{prompt}

示例1:

masterpiece, best quality, a girl flying in sky
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
Steps: 28, Sampler: Euler a, CFG scale: 11, Seed: 943409469, Size: 512x768, Clip skip: 2, ENSD: 31337

复制此文本,提示词输入框右键粘贴,按↙️读取生成参数,然后点击生成。

生成

  • 生成 单击此按钮,生成一张图像。右键此按钮,可选择无限生成

    • 中止 停止处理图像,并返回迄今为止累积的任何结果
    • 跳过 停止处理当前图像,并继续处理下一个
  • 生成图像数量 : 生成批次每批数量的乘积

保存

无需手动保存,每次生成的图片都会自动备份到outputs文件夹。

  • 保存 点击此按钮,保存选中的一张图片到log文件夹,并将生成参数保存到log.csv文件
    • 保存时生成zip压缩文件:勾选后,点击保存按钮时,将本次批量生成的所有图片打包为images.zip文件。请注意,此zip文件将在下次点击生成按钮时自动删除。
    • 使用脚本生成图片时,图片不会被备份,请手动选择需要的每一张图片并保存。
  • 将有关生成参数的文本信息,作为块内置到 png 图片文件中 在 设置 保存图像/宫格图 可找到此选项
    • 勾选后,可使用 图片信息图库浏览器 标签页 查询并复用生成图片时使用的提示词和采样参数。【强烈建议开启此功能,勾选后记得点 保存设置】

采样参数

  • 迭代步数 迭代改进生成的图像多少次;更高的值需要更长的时间;非常低的值会产生不好的结果。请注意,设置从低到高的多个迭代步数,生成的多张图像并不对应AI绘画的过程。

  • 采样方法 请注意,带有单独字母a的采样方法, 生成效果更好, 但不适用混合种子

    • Euler a : 非常有创意,可以根据迭代步数获得完全不同的图像,将迭代步数设置为高于 30-40 不会有正面作用
    • Euler :
    • LMS :
    • LMS Karras :
    • Heun :
    • DPM2 a :
    • DPM2 a Karras :
    • DPM2 Karras :
    • DPM fast :
    • DPM adaptive :
    • DDIM : 最擅长局部重绘
    • PLMS :
  • 图像分辨率 调整输出图像的宽度高度。请注意,宽度和高度必须是64的整数倍。

  • 提示词相关性 图像应在多大程度上服从提示词 - 较低的值会产生更有创意的结果

  • 随机种子 一个固定随机数生成器输出的值 - 以相同参数和随机种子生成的图像会得到相同的结果

    • 🎲 将随机种子设置为-1,则每次都会使用一个新的随机数

    • ♻️ 重用上一次使用的随机种子,如果想要固定输出结果就会很有用

图生图

依据设置的提示词和重绘幅度,对图像进行重绘。

  • 宽高比调整 原图宽高比和输出宽高比不一致时,对原图进行预调整

image-20221110230206832

  • 重绘幅度 决定算法对图像内容的影响程度。设置 0 时,什么都不会改变,而在 1 时,你将获得不相关的图像

局部重绘

在图像的一部分上画一个蒙版,这部分就会被局部重绘image

image

蒙版

  • 蒙版来源

    • 绘制蒙版 在网页中自己画一个蒙版,或
      • 在外部编辑器中擦除图片的一部分,并上传一张包含透明通道的PNG图片。任何轻微透明的区域都会成为蒙版的一部分。请注意,有些编辑器默认将完全透明的区域保存为黑色。
    • 上传蒙版 选择一个分辨率一致的黑白图像(白色=蒙版区域)
  • 重绘区域

    • 重绘蒙版内容 重绘蒙版区域
    • 重绘非蒙版内容 反选蒙版区域并重绘
  • 蒙版模糊 设置为 0 像素时,严格按照蒙版区域进行重绘,为其它值时,模糊蒙版边缘以改善出图效果

蒙版预处理

蒙版区域被重绘之前,预处理的方式

image

全分辨率局部重绘

启用全分辨率局部重绘后,蒙版区域会被放大,处理后粘贴回原图。 这允许你重绘大型图片,并允许你以更高的精度进行局部重绘。

  • 预留像素 放大时,在蒙版四周保留的缓冲区域宽度

image

图像放大(更多)

对图像进行放大。相比普通放大, AI放大(超分辨率)会根据已知图像信息尝试恢复图像细节。

image

缩放比例

  • 等比缩放 放大指定的倍数

  • 指定尺寸缩放 放大到指定的分辨率

    • 裁剪以适应 原图宽高比和输出宽高比不一致时,对原图进行裁剪

放大算法 2 (Upscaler 2) 可见度 默认值1(权重100%),即只有放大算法2生效

  • None : 原意是不做任何放大,但由于任何放大算法后面都会检查一遍结果是否符合输出大小,并且用 Lanczos 缩放到指定大小。所以 None 实际上一直都是 Lanczos 放大

  • Lanczos : 高质量传统插值放大算法之一(多相位插值 sinc 的一种)。不过比起另一款传统缩放算法 Mitchell–Netravali (双三次插值 Bicubic 的一种) 来说,lanczos在缩小方面其实比较优秀。所以 WebUI 在使用各类ai模型放大的时候(通常结果为固定的2倍或者4倍大小),都会是先放大到大于等于指定大小然后再用 Lanczos 缩小回来

  • Nearest : 最快最简单但效果最差的算法,适合在比较不同算法的结果时充当像素点对像素点的原图参考图(只限整数倍放大)

  • LDSR :

  • ESRGAN类

    • BSRGAN : 以 ESRGAN 为骨干的一个超分算法,如果不知道选什么,先试试这个吧
    • ESRGAN : 倾向于抹除图片瑕疵(但容易误伤细节)
    • Remacri : BSRGAN的另一个实现,倾向于保留乃至增加图片细节(适合放大笔触,擅长放大风景图),在使用 SD upscale 脚本的时候是比较推荐的预放大器
    • Lollypop : BSRGAN的另一个实现,特点跟 Remacri 相似,但更擅长偏真实的人类画像
  • ScuNET :

  • ScuNET PSNR :

  • RSwinIR_4x : 非常锐利清晰且稳定的算法。对于画面稍微有点模糊或者细节比较少的图会是个好的选择

面部修复

  • GFPGAN 可见度 默认值0(权重0%),老照片面部修复模型,需要时启用

  • CodeFormer 可见度 默认值0(权重0%),扭曲面部修复模型,需要时启用。此模型效果差于GFPGAN

    • CodeFormer 权重 : 此算法对面部的重绘幅度 (0 = 最大效果, 1 = 最小效果)
  • 放大后再进行面部修复 未勾选时,先进行面部修复再放大

额外功能

☑️面部修复

功能同上。勾选默认无修复,需在 设置 保存图像/宫格图 选择面部修复模型,并保存设置。 image

☑️平铺

尝试生成可平铺(上下一致,左右一致,如瓷砖)的图片。

此功能几乎不可用,大多数模型未对此进行训练,出图质量极差

☑️高分辨率修复

先以指定的 第一遍分辨率(通常为较低分辨率)生成图片,然后进行一次图生图(可调整重绘幅度)。

默认情况下,文生图在非常高的分辨率下(>1024x1024),提示词主体在图像里的占比较小,此功能可避免此情况。

image

▼混合种子

混合两个“不同随机种子生成的图像“

可点击随机种子右侧的 按钮找到这个功能(此功能对带有 a 后缀的 采样方法 无效)

  • 差异随机种子 : 第二个图像的随机种子
  • 差异强度 : 混合比例。0输出原图,1输出第二张图

不同差异强度的图片是非线性的,几乎没有规律。此功能的可用性存疑。

▼种子分辨率调整(Resize seed)

尝试生成与“同一随机种子在指定分辨率下生成的图像”相似的图片

可点击随机种子右侧的 按钮找到这个功能(此功能对带有 a 后缀的 采样方法 无效)

  • 宽度高度 : 原始图像的分辨率

当你改变分辨率时,即使你保留所有其他参数和随机种子,图像依然可能完全改变。
你可以指定原始图像的分辨率,此功能会尝试生成相似的图像。

通常情况下,使用 图生图-填充 或 脚本-向外绘制 可获得更好的效果,此功能的可用性存疑。

在下面的例子中,最左边的图片分辨率是512x512,而其他的图片是用完全相同的参数产生的,但垂直方向的分辨率更大。

image

反推提示词

提供一张图片,分析图片反推提示词。可在图生图页面的生成按钮旁找到这个功能

  • CLIP 反推提示词 使用 CLIP 生成说明文字(自然语言描述)来源
  • DeepBooru 反推提示词 使用 deepbooru 生成说明文字(用 , 隔开的多个tag)

反推结果通常并不准确,如果是webui生成的图片,可尝试使用图片信息功能获取提示词。

提示词语法

权重

() [] (:)

webUI

  • a (word) 增加 word 的权重为 1.1

  • a ((word)) 增加 word 的权重为 1.21 (= 1.1 * 1.1)

  • a [word] 减少 word 的权重为 0.91 (= 1 / 1.1)

  • a (word:1.5) 调整 word 的权重为 1.5

    • 用鼠标选中Tag,按ctrl+↑↓,可快速调整权重,如图所示
    • 请注意,[:] 是另一种作用,详见下面的 中途切换Tag
  • a\(word\) - 转义(),使其能够被当做正常文字输入

image

NAI

  • a {word} 增加 word 的权重为 1.05

    • 此括号对webUI无效! 如您需要使用,安装此扩展,使用NAIConvert按钮转换提示词
  • a [word] 减少 word 的权重为 0.95

  • Nai不支持(): \ , Nai支持嵌套多个括号,但不支持组合嵌套,如{{a},b}a {apple} in table

交替使用tag

[tag|tag]

方便的语法,用于每隔一步轮换tag。

[cow|horse] in a field

第1步 第3步...,提示词是 cow in a field (在田里)
第2步 第4步...,提示词是 horse in a field (在田里)
以此类推,循环往复。

Alternating Words

可轮换多个提示词,如下所示:
[cow|cow|horse|man|siberian tiger|ox|man] in a field

中途切换Tag

[tag:tag:]

方便的语法,用于中途切换Tag

[boy:girl:0.3] flying in sky

前 30% 步,提示词是 boy flying in sky (男孩在天空飞翔)
30% 步后,提示词是 girl flying in sky (女孩在天空飞翔)

Tag可以为空,也可以串联或嵌套使用,前面tag为空时可省略前面的:
a [mountain::0.25][:lake:0.75] in [foreground:[background:25]:6]
如果数字是 小数,那么在指定的百分比步切换;
如果数字是 整数,那么在指定的步数切换。

脚本

使用脚本生成图片时,图片不会被备份,请手动选择需要的每一张图片并保存

向外绘制

向外绘制扩展了原始图像,并在创建的空白处进行了绘画。

image

建议提供一个与图片相匹配的提示词迭代步数为50到100,用 Euler a 或 DPM2 采样方法重绘幅度提示词相关性设置为最大。

image

提示词矩阵

固定Tag|可选Tag1|可选Tag2

使用 | 字符分隔多个提示,为它们每个可能的组合生成一个图像(始终保留提示的第一部分, 使用相同的种子)

  • 把变量部分放在提示词文本的开头 字面意思,把固定Tag移动到提示尾部。
table|apple|banana
桌子|苹果|香蕉

image

a busy city street in a modern city|illustration|cinematic lighting
繁华的城市街道|插图(绘画风格)|电影灯光

prompt-matrix

你可以使用多个 可选Tag,为它们每个可能的组合生成一个图像
a girl, blue background|detailed face|highly detailed|artstation|illustration by Sophie Anderson
一个女人,蓝色背景|高清的脸|超高清|插图(画家Sophie Anderson)|artstation(一个3D建模网站)

prompt_matrix

X/Y 图表

创建一个具有不同参数的宫格图。

选择 X轴Y轴 的类型,并输入用逗号分隔的多个 (整数或小数)

  • 用逗号分隔的多个,尾部不要添加多余的逗号。

    • 1, 2, 3, 4, 5
  • 可使用- 符号表示一个范围

    • 1-5 = 1, 2, 3, 4, 5
  • 可使用()括号控制 范围的增量。

    • 1-7 (+2) = 1, 3, 5, 7
    • 3-1 (-0.5) = 3, 2.5, 2, 1.5, 1
  • 可使用[]括号控制 范围的值数量

    • 1-10 [3] = 1, 5, 10
    • 0.0-1.0 [6] = 0.0, 0.2, 0.4, 0.6, 0.8, 1.0

设置

  • 在图表中包括轴类型和值 字面意思,如图所示
  • 生成图表时,保留每一张图像 字面意思
  • 保持随机种子为-1 字面意思,随机种子

提示词 搜索/替换

轴类型选择 提示词 搜索/替换,输入用逗号分隔的多个 (文本)。在提示词里搜索第一个值,替换为文本列表中的每一个值。

例如,提示词为 女孩拿着一个苹果,文本列表为 一个苹果,一个西瓜,一把枪,你会得到三个提示词

  • 女孩拿着一个苹果
  • 女孩拿着一个西瓜
  • 女孩拿着枪

如果你想在文本中使用英文逗号, 你必须将文本放在"引号"中,并确保分隔值的逗号 两边没有多余的空格。

xy_grid-medusa