stable-diffusion-webui-prom.../README.zh_CN.md

92 lines
4.8 KiB
Markdown
Raw Blame History

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.

# 提示词跃迁
在模型隐层旅行以制作伪动画,项目 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`)
| 插件直出 | 加入后处理 |
| :-: | :-: |
| ![i2i-f-ddim](img/i2i-f-ddim.gif) | ![i2i-f-ddim-pp](img/i2i-f-ddim-pp.gif) |
----
by Armit
2023/01/20