92 lines
4.8 KiB
Markdown
92 lines
4.8 KiB
Markdown
# 提示词跃迁
|
||
|
||
在模型隐层旅行以制作伪动画,项目 AUTOMATIC1111/stable-diffusion-webui 的插件。
|
||
|
||
----
|
||
|
||
对语言理解模型 CLIP 的输出进行插值,从而实现多条提示词之间的语义过渡,产生看似连续的图像序列,或者说伪动画。😀
|
||
|
||
⚠ 我们成立了插件反馈 QQ 群: 616795645 (赤狐屿),欢迎出建议、意见、报告bug等 (w
|
||
|
||
ℹ 实话不说,我想有可能通过这个来做ppt童话绘本<del>甚至本子</del>……
|
||
ℹ 聪明的用法:先手工盲搜两张好看的图 (只有提示词差异),然后再尝试在其间跃迁 :lolipop:
|
||
|
||
|
||
### 使用方法 & 它如何工作
|
||
|
||
- 在提示词/负向提示词框里输入**多行**文本,每一行被称作一个**阶段**
|
||
- 逐帧生成图像,在每个阶段内,所使用的提示词向量是经过插值运算的
|
||
- 为了保证某种连续性,所有其他参数将被固定
|
||
- 虽然所有图的主随机数种子将被统一固定,但你仍然可以启用 `subseed` 去增加随机性
|
||
- 导出视频!
|
||
- 使用额外的 [后处理流程](#post-processing-pipeline) 可以获得更好的画质和流畅度 👌
|
||
|
||
|
||
### 参数选项
|
||
|
||
- 提示词: (多行文本)
|
||
- 反向提示词: (多行文本)
|
||
- 就是提示词和反向提示词的输入框,但是你必须输入多行文本,每一行是一个阶段
|
||
- 如果提示词和反向提示词的阶段数量不一致,少的那一方会被重复到对齐多的一方
|
||
- 插帧数/steps: (整数,或者逗号分隔的多个整数)
|
||
- 每个阶段之间插帧的数量
|
||
- 若为单个整数,每个阶段使用相同的插帧数量
|
||
- 若为西文逗号分隔的多个整数,每个阶段使用不同的插帧数量,比如有4个阶段则可给出3个独立步数:`12, 24, 36`
|
||
- 起源/genesis: (选项), 每张图像的内容先验
|
||
- `固定/fixed`: 在 txt2img 流程中,始终从高斯噪声开始降噪;在 img2img 流程中,始终从给定的参考图开始降噪
|
||
- `连续/successive`: 从上一帧的内容开始降噪 (这会导致 txt2img 流程从第二步开始强制转为 img2img 流程)
|
||
- `胚胎/embryo`: 从某个已部分降噪的公共先祖胚胎开始降噪,参考 [=> 原理](https://replicate.com/andreasjansson/stable-diffusion-animation#readme)
|
||
- (该功能为实验性质) 只支持两个阶段跃迁,并且不能为逆向提示词插值 :(
|
||
- 起源的额外参数
|
||
- 降噪强度: (浮点数), 在 img2img 流程中所用的降噪强度 (仅对 `连续/successive` 模式)
|
||
- 胚胎步数: (整数或浮点数), 产生公共胚胎的预降噪步数 (仅对 `胚胎/embryo` 模式)
|
||
- 如果 >= 1,解释为采样步数
|
||
- 如果 < 1,解释为占总采样步数的比例
|
||
- 视频相关
|
||
- 帧率/fps: (浮点数), 导出视频的帧率,设置为 `0` 将禁用导出
|
||
- 文件格式/fmt: (选项), 导出视频的文件格式
|
||
- 首尾填充/pad: (整数), 重复首尾帧 `N` 次以留出一段入场/退场时间
|
||
- 帧选择器/pick: (切片器), 使用 [Python切片语法](https://www.pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python) 精心选择所需要导出的帧,注意切片发生在填充之前 (例如:设为 `::2` 将只使用偶数帧 , 设为 `:-1` 将去除最后一帧)
|
||
- 调试开关: (逻辑值)
|
||
- 是否在控制台显示详细日志
|
||
|
||
|
||
### 后处理流程
|
||
|
||
单凭CLIP模型自身能实现语义插值就已经到达能力天花板了,但我们距离高清丝滑的动画还差两步: **图像超分辨率** 和 **视频插帧**。
|
||
⚠ 多媒体数据的处理是非常消耗资源的,我们不能指望 webui 去做这件事。实际上,我们将其从宿主和插件中分离,出来作为一个可选的外部工具。 😃
|
||
|
||
#### 安装依赖
|
||
|
||
⚪ 自动安装
|
||
|
||
- 运行 `tools/install.cmd`
|
||
- 如果遇到诸如 `访问被拒绝` 之类的错误,多次运行直到提示 `Done!` 无错误退出 😂
|
||
- 你将安装好 [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan), [RIFE](https://github.com/nihui/rife-ncnn-vulkan), [FFmpeg](https://ffmpeg.org/) 这三个组件在 [tools](tools) 目录下
|
||
|
||
⚪ 手动安装
|
||
|
||
- 参照 [README.md](README.md#post-processing-pipeline)
|
||
- 我寻思你既然都想着手动安装了,也不至于不肯咬一口英文罢…… 🤔
|
||
|
||
#### 运行任务
|
||
|
||
- 检查 [postprocess.cmd](postprocess.cmd) 中的默认参数
|
||
- 你有两种方式启动后处理任务 😃
|
||
- 从命令行运行 `postprocess.cmd path/to/<image_folder>`
|
||
- 鼠标拖拽任意图片文件夹到 `postprocess.cmd` 的文件图标上然后释放
|
||
|
||
ℹ 任务完成后,资源浏览器将被自动打开并定位到导出的 `synth.mp4` 文件~
|
||
|
||
|
||
插件直出和加入后处理对比 (配置为 `img2img-fixed-ddim`):
|
||
|
||
| 插件直出 | 加入后处理 |
|
||
| :-: | :-: |
|
||
|  |  |
|
||
|
||
|
||
----
|
||
by Armit
|
||
2023/01/20
|