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