15 Home
fishslot edited this page 2023-02-26 16:26:28 +08:00
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Welcome to the video_loopback_for_webui wiki!

参数介绍

input_directory待处理图片的目录也可以是一个视频文件。如果给定的是目录图片文件将按字典序排列。如果给定的是一个视频文件将在 output_directory 目录下保存从视频中拆分出的帧。

output_directory输出图片的目录。参数配置合成的视频都会保存在该目录下。

output_frame_rate一个整数表示输出视频的帧率。

use_mask如果勾选该选项表示要启用 inpainting 功能。注意,启用该选项进行渲染前,应该先切换到 inpainting 页面,不然有些参数没法设置。

mask_directory只有当勾选 use_mask 后会出现,填入 inpainting 使用的 mask 的目录,或是填入一张图片的路径,或是留空。当填入 mask 目录时,必须保证 input_directory 中的每张图片都在 mask_directory 中存在同名图片。当填入单张图片的路径时,所有处理都会使用该图片作为 mask 。当此处留空时,表示使用原图片的 alpha 通道作为 mask。

mask_threshold只有当勾选 use_mask 后会出现,用于控制 mask 二值化的阈值。

read_prompt_from_txt如果勾选该选项表示将使用 input_directory 中与图片同名的 .txt 文件中的内容作为 prompt 。如果某张图片没有对应的 .txt 文件,将会使用 WebUI 界面中的 prompt 代替。在 .txt 文件中, --neg 之后的内容将作为 negative prompt如果文件中没有给出 negative prompt ,将使用 WebUI 界面中的 negative prompt 。

max_frames一个整数表示要处理的图片数量。将只处理前 max_frames 帧,用于限制视频时长。

extract_nth_frame一个整数表示从原视频中每隔 extract_nth_frame 帧,取一帧。设定为 1 表示使用所有帧,设定为 2 表示每隔一帧用一帧,以此类推。

loop_n一个整数表示要重复渲染多少次。

superimpose_alpha一个 0~1 之间的浮点数,表示每次渲染后,原视频的改变量。该值越大,每次渲染带来的改变就越大。

fix_seed表示是否要使用固定的 seed。如果不勾选每次生成后 seed 会迭代增加。

fix_subseed表示是否要使用固定的 subseed。如果不勾选每次生成后 subseed 会迭代增加。

temporal_superimpose_alpha_list用逗号分隔的浮点数的序列表示当前帧要混合多少时间上相邻的帧。浮点数的数量必须是奇数中央的浮点数表示当前帧的权重左边的浮点数表示之前的帧的权重右边的浮点数表示之后的帧的权重。如果要禁用时序混合此处留空或者只填一个 1 。

save_every_loop如果勾选该选项重复渲染时每次渲染的结果会分开保存。如果不勾选该选项仅保存最后一次渲染的结果。

各种 schedule可以在此输入任意 python 表达式,表达式的返回值用于更新参数。可以使用 math 模块中的所有函数,还有 loop_i 和 image_i 变量。loop_i 表示当前是第几次重复渲染image_i 表示当前渲染的是第几张图片。需要特别注意的是,当使用 temporal_superimpose_schedule 时,应当保证每次返回的列表长度相同。

batch_size, batch_count这个也会影响生成每次生成一批图片后会先将这批图片全部混合成一张图片再与当前帧进行混合这样每张新生成的图片都会对最终效果有影响而且每张的影响程度都变小了这有时可以提升稳定性。如果增大 batch_size 和 batch_count 后出现重影,应当略微调高 denoising 。

在 img2img 模式中WebUI中的所有参数都会起效包括Prompt, Negative prompt, Sampling method, Sampling steps, Width, Height, CFG Scale, Denoising strength, seed, extra, Variation seed, Variation strength 等等。

在 inpainting 模式中Mask blur, Mask mode, Mask content, Inpaint area, Only masked padding 等参数也都会正常工作。

简易调参tips

(这里仅是作者目前的一些经验之谈,并不是必要遵守的原则)

所有的参数设置都与 DreamBooth 的训练质量,以及输入视频的质量高度相关,所以这里没法给出一个通用的标准,只能给出一些大致的思路。

不同的参数配置往往会引起奇妙的化学反应,请尽情测试不同的搭配。

DreamBooth 模型的稳定性非常重要,请务必对训练集进行最严格的挑选,只使用一致性极高的图片(保证角色的服饰、装饰位置、色调等细节完全相同,只有视角和动作不同)。 除了 DreamBooth ,第二重要的是 prompt ,调整好合适的 prompt 比调整其他参数有用得多。比如,如果发现角色偶尔会突然从正对观众变成背对观众,应该先试试在 negative prompt 里加上 from behind, facing away 之类的词,而不是急着调整 superimpose_alpha 。

如果有重影,可以尝试

  1. 调小 superimpose_alpha ,并相应调高 loop_n

  2. 调低 batch_size 和 batch_count

  3. 调低 denoising

  4. 调高 denoising (是的你没看错,不过与调低 denoising 相比,这对模型有一定要求)

  5. 勾选 fix_seed 和 fix_subseed

  6. 在 temporal_superimpose_alpha_list 中提高当前帧的权重,比如将 0.1,0.8,0.1 改为 0.01,0.98,0.01 甚至改为 0.0,1.0,0.0

superimpose_alpha

superimpose_alpha 控制每次渲染后视频的改变量。在绝大多数情况下,当调低 superimpose_alpha 时,应相应调高 loop_n 。

如果 superimpose_alpha 较低而 loop_n 也较低,可能出现重影。可以打开 save_every_loop ,观察每次重复渲染后的效果,以此确定到底 loop_n 设定为多少比较好。

如果特别在乎重影,以 loop_n 为 5 举例,可以设定 superimpose_alpha_schedule 为 0.3 if loop_i<4 else 1 ,这样会在最后一次重复渲染时把 superimpose_alpha 替换为 1表示完全使用新的帧不过这往往需要搭配较低的 denoising 使用,或是设定 denoising_schedule ,实现在最后一次渲染时相应降低 denoising 。

较低的 superimpose_alpha 可以增加渲染后视频与原视频的相似度(尤其是边缘的契合度)。较低的 denoising 也有类似的效果。

增大 batch_size 和 batch_count 有时可以降低错误率,不过需要相应提高 denoising 。

视频闪烁严重

可以试试修改 temporal_superimpose_alpha_list ,降低当前帧的权重,比如把 0.01,0.98,0.01 改成 0.1,0.8,0.1 。

一般来说混合前一帧和后一帧就够了(也就是用 3 个浮点数),但是也可以混合更多帧,比如 0.02,0.03,0.8,0.03,0.02 不过这样可能会导致重影,需要慎重测试。

如果降低当前帧的权重后发现伪影,可以改成单边混合,比如 0.1,0.9,0.0 表示只混合之前的一帧,而 0.02,0.05,0.93,0.0,0.0 表示混合之前的两帧。

改 temporal_superimpose_alpha_list 时应当非常小心,不要一次改太多。

并不强制要求temporal_superimpose_alpha_list 中所有权重相加等于 1 ,脚本会自动归一化。

有时,调低 superimpose_alpha 也能缓解闪烁的问题。

关于 schedule

如果某种现象(比如重影)只在视频的其中一段出现,可以使用 schedule 对该部分针对性的使用不同的参数。

schedule 也很适合用于收尾工作,可以设定在最后几次 loop 时使用特殊的参数,以此实现一些特殊效果。

当然,也可以使用 schedule 来渐近的改变参数,比如 设定 denoising_schedule 为 max(0.1, 0.4-0.02*loop_i) 将使得每次 loop 时使用的 denoising 逐渐降低最低为0.1。

denoising

denoising 的调整思路和原本 img2img 下差不多,不过,在这里可以通过提高 loop_n 的方式来强行使用较低的 denoising ,有时会有奇效。