Project Icon

stable-diffusion-webui-prompt-travel

Stable Diffusion WebUI扩展实现提示词平滑过渡生成AI动画

stable-diffusion-webui-prompt-travel是Stable Diffusion WebUI的扩展插件,可在潜空间中实现提示词的平滑过渡,生成连续图像序列或伪动画。该扩展支持多种插值模式和生成方式,并提供后处理工具以提升动画质量。它还兼容ControlNet,能在提示词和控制条件间进行插值,为AI动画创作提供更多可能。

stable-diffusion-webui-prompt-travel

在潜在空间中在提示词之间旅行以生成伪动画,这是AUTOMATIC1111/stable-diffusion-webui的扩展脚本。


最后提交 GitHub问题 GitHub星标 GitHub分支 语言 许可证

:stable-diffusion-webui-prompt-travel

尝试对条件提示词的隐藏向量进行插值,以生成看似连续的图像序列,或者说是伪动画。😀 不仅仅是提示词!我们还支持非提示词条件,请阅读 => README_ext.md~

⚠ 我们成立了插件反馈QQ群:616795645(赤狐屿),欢迎提出建议、意见、报告bug等(w ⚠ 我们现在有一个QQ聊天群(616795645),非常欢迎任何建议、讨论和bug报告!!

ℹ 说实话,我想可能可以通过这个来制作ppt童话绘本甚至本子…… ℹ 聪明的用法:先手工盲搜两张好看的图(只有提示词差异),然后再尝试在其间travel :lolipop:

⚠ 记得在设置页勾选"总是保存所有生成的图片",否则上采样和保存中间图片将无法工作。 ⚠ 记得在设置页勾选"总是保存所有生成的图片",否则上采样与保存中间图片将无法工作。

更新日志

⚪ 兼容性

最新版本v3.1与以下版本同步并测试:

⚪ 功能

  • 2023/07/31: v3.1 支持 SDXL v1.0 模型
  • 2023/07/05: v3.0 使用 sd-webui v1.4.0 回调重新实现核心功能;这个新实现会更慢,但与其他扩展的兼容性更好
  • 2023/04/13: v2.7 在 controlnet-travel 中添加 RIFE,跳过融合(实验性)
  • 2023/03/31: v2.6 为后处理工具链添加一个 tkinter GUI
  • 2023/03/30: v2.5 添加 controlnet-travel 脚本(实验性),在提示条件而非提示词之间进行插值,感谢来自 sd-webui-controlnet 的代码基础
  • 2023/02/14: v2.3 集成 depth-image-io 的基本功能,用于深度图到图像模型
  • 2023/01/27: v2.2 添加 'slerp' 线性插值方法
  • 2023/01/22: v2.1 再次添加实验性的 'replace' 模式,这不是平滑插值
  • 2023/01/20: v2.0 添加可选的外部后处理管道以大幅提高平滑度,非常感谢 Real-ESRGANRIFE!!
  • 2023/01/16: v1.5 添加放大选项(问题 #12);添加 'embryo' 起源,复现 stable-diffusion-animation 的想法,但不包括 FILM 支持(问题 #11)
  • 2023/01/12: v1.4 由于 webui 代码变更,移除 'replace' 和 'grad' 模式支持
  • 2022/12/11: v1.3 以更"连续"的方式工作,想法借鉴自 deforum('genesis' 选项)
  • 2022/11/14: v1.2 通过替换词元嵌入进行遍历('replace' 模式)
  • 2022/11/13: v1.1 通过优化条件进行遍历('grad' 模式)
  • 2022/11/10: v1.0 在条件/非条件上线性插值('linear' 模式)

⚪ 修复

  • 2023/12/29: 修复错误的 ffmpeg 环境变量,更新 controlnet 至 v1.1.424
  • 2023/07/05: 更新 controlnet 至 v1.1.229
  • 2023/04/30: 更新 controlnet 至 v1.1.116
  • 2023/03/29: v2.4 修复脚本钩子的错误,现在可以正常与额外网络和 sd-webui-controlnet 一起工作
  • 2023/01/31: 跟进 webui 的更新(问题 #14:ImportError: cannot import name 'single_sample_to_image'
  • 2023/01/28: 跟进 webui 的更新,额外网络重构
  • 2023/01/16: v1.5 在条件长度不匹配时应用零填充(问题 #10:RuntimeError: The size of tensor a (77) must match the size of tensor b (154) at non-singleton dimension 0),演示文件名中的拼写错误
  • 2023/01/12: v1.4 跟进 webui 的更新(问题 #9:AttributeError: 'FrozenCLIPEmbedderWithCustomWords' object has no attribute 'process_text'
  • 2022/12/13: #bdd8bed 修复当负面提示为空时不工作的问题(问题 #6:neg_prompts[-1] IndexError: List index out of range
  • 2022/11/27: v1.2-fix2 跟进 webui 的更新(错误 ImportError: FrozenCLIPEmbedderWithCustomWords
  • 2022/11/20: v1.2-fix1 跟进 webui 的更新(错误 AttributeError: p.all_negative_prompts[0]

⚠ 本脚本可能不会支持调度语法(即:[prompt:prompt:number]),因为在可变条件上进行插值需要采样器级别的跟踪,这很难维护 :(
⚠ 由于 denoising_strength 的一些内在概念/逻辑冲突,本脚本可能无法与 hires.fix 一起工作,你可以选择先进行批量放大,然后再进行批量图像到图像处理。

它是如何工作的?

  • 在提示/负面提示框中输入多行,每行称为一个阶段
  • 逐个生成图像,在一个阶段向下一个阶段过渡(忽略批量配置)
  • 逐步改变处理后的输入提示
    • 冻结所有其他设置(步数采样器CFG系数种子等)
    • 注意只有主要种子会在整个过程中被强制固定,你仍可以设置子种子 = -1以允许更多变化
  • 导出视频!

⚪ 文本生成图像

采样器\生成方式固定连续胚胎
Eular at2i-f-euler_at2i-s-euler_at2i-e-euler_a
DDIMt2i-f-ddimt2i-s-ddimt2i-e-ddim

⚪ 图像生成图像

采样器\生成方式固定连续胚胎
Eular ai2i-f-euler_ai2i-s-euler_ai2i-e-euler_a
DDIMi2i-f-ddimi2i-s-ddimi2i-e-ddim

后处理流程(以i2i-f-ddim为例):

无后处理有后处理
i2i-f-ddimi2i-f-ddim-pp

其他内容:

图像生成图像的参考图像解码后的胚胎图像
i2i-e-euler_a胚胎步数=8为例
i2i-refembryo

⚪ 支持ControlNet

使用 ControlNet(深度)进行提示词旅行使用 ControlNet(深度)进行旅行
ctrlnet-refctrlnet-depth

上面示例的运行配置:

正面提示词:
(((杰作))), 高分辨率, ((男孩)), 儿童, 猫耳朵, 白发, 红眼睛, 黄色铃铛, 红色斗篷, 赤脚, 天使, [飞行], 埃及风格
((杰作)), 高分辨率, ((女孩)), 萝莉, 猫耳朵, 浅蓝色头发, 红眼睛, 魔法杖, 赤脚, [奔跑]

负面提示词:
(((不适合工作场合的内容))), 丑陋,重复,病态,残缺,变性人,跨性别,变异,畸形,长脖子,解剖不正确,比例不当,多余的手臂,多余的腿,毁容,超过2个乳头,畸形,变异,雌雄同体,画面外,多余的肢体,缺少手臂,缺少腿,画得很差的手,画得很差的脸,变异,画得很差,身体长,多个乳房,克隆的脸,比例严重失调,变异的手,糟糕的手,糟糕的脚,长脖子,缺少肢体,畸形的肢体,畸形的手,手指融合,手指过多,额外的手指,缺少手指,多出的数字,较少的数字,变异的手和手指,低分辨率,文字,错误,裁剪,最差质量,低质量,普通质量,JPEG压缩痕迹,签名,水印,用户名,模糊,文字字体,女性焦点,画得很差,变形,画得很差的脸,(多余的腿:1.3),(多余的手指:1.2),画面外

步数:15
CFG缩放:7
Clip跳过:1
种子:114514
尺寸:512 x 512
模型哈希:animefull-final-pruned.ckpt
超网络:(这是我的秘密 :)

选项

  • 提示词:(字符串列表)

  • 负面提示词:(字符串列表)

    • 输入多行提示词文本
    • 我们将每行提示词称为一个阶段,通常你至少需要2行文本才能开始旅行
    • 如果正面提示词数量不等于负面提示词数量,较短的那个的最后一项会重复以匹配较长的那个
  • 模式:(分类)

    • 线性:对CLIP输出的条件/非条件进行线性插值
    • 替换:逐步替换CLIP输出
      • 替换维度:(分类)
        • 词元:按词元向量
        • 通道:按通道向量
        • 随机:按点元素
      • 替换顺序:(分类)
        • 相似:从最相似的开始(L1距离)
        • 不同:从最不同的开始
        • 随机:随机顺序
    • 胚胎:预先去噪几步,然后通过线性插值从共同胚胎孵化一组图像
  • 步数:(整数或整数列表)

    • 两个阶段之间插值的图像数量
    • 如果是整数,则为恒定的旅行步数
    • 如果是整数列表,长度应与阶段数-1匹配,用逗号分隔,例如:12, 24, 36
  • 起源:(分类),每个图像帧的先验

    • 固定:在txt2img流程中从纯噪声开始,或在img2img流程中从给定的相同参考图像开始
    • 连续:从上一个生成的图像开始(这将强制txt2img从第二帧开始实际变为img2img)
    • 胚胎:从相同的半去噪图像开始,参见=> 它是如何工作的?
      • (实验性)它只处理2行提示词,并且不对负面提示词进行插值 :(
  • 起源额外参数

    • 去噪强度:(浮点数),img2img流程中的去噪强度(用于连续
    • 胚胎步数:(整数或浮点数),孵化共同胚胎的步数(用于胚胎
      • 如果 >= 1,视为步数
      • 如果 < 1,视为总步数的比例
  • 视频_*

    • fps:(浮点数),视频的帧率,设置为0以禁用文件保存
    • 格式:(分类),导出视频文件格式
    • 填充:(整数),重复开始/结束帧,提供一个进入/退出时间
    • 选择:(字符串),在填充之前使用Python切片语法挑选帧(例如:设置::2只获取偶数帧,设置:-1删除最后一帧)

安装

最简单的安装方法是:

  1. 转到webui中的"扩展"选项卡,切换到"从URL安装"选项卡
  2. https://github.com/Kahsolt/stable-diffusion-webui-prompt-travel.git 粘贴到"扩展的git仓库URL"中,然后点击安装
  3. (可选)你需要重启webui以安装依赖项,否则将无法生成视频文件 手动安装:
  4. 将此仓库文件夹复制到 https://github.com/AUTOMATIC1111/stable-diffusion-webui 的 'extensions' 文件夹中
  5. (可选)重启 webui

后处理流程

距离真正流畅和高分辨率的动画还有两个步骤,即图像超分辨率和视频帧插值(参见下面的第三方工具)。 ⚠ 媒体数据处理本质上是资源消耗型的,这也不是 webui 的工作或职责,因此我们将其分离出来。😃

一次性设置

⚪ 自动安装(Windows)

  • 运行 cd tools & install.cmd
  • 故障排除
    • 如果遇到任何文件系统访问错误,如 Access denied.,请尝试重新运行,直到看到没有错误的 Done! 😂
    • 如果遇到关于 curl schannel ... Unknown error ... certificate. 的 SSL 错误,由于某些 SSL 安全原因下载器无法工作,请转为手动安装...
  • 你将在 tools 文件夹下安装四个组件:BusyboxReal-ESRGANRIFEFFmpeg

⚪ 手动安装(Windows/Linux/Mac)

ℹ 首先了解 tools 文件夹布局 => tools/README.txt
ℹ 如果你确实想把工具放在其他地方,修改 tools/link.cmd 中的路径并运行 cd tools & link.cmd 😉

对于 Windows:

  • 下载 Busybox
  • 下载 Real-ESRGAN(例如:realesrgan-ncnn-vulkan-20220424-windows.zip
    • (可选)下载有趣的单独模型检查点(例如:realesr-animevideov3.pth
  • 下载 rife-ncnn-vulkan 包(例如:rife-ncnn-vulkan-20221029-windows.zip
  • 下载 FFmpeg 二进制文件(例如:ffmpeg-release-full-shared.7zffmpeg-git-full.7z

对于 Linux/Mac:

  • 下载 Real-ESRGANrife-ncnn-vulkan,按照 tools 文件夹布局放置它们,手动对可执行文件应用 chmod 755
  • ffmpeg 可以在你的应用商店或包管理器中轻松找到,运行类似 apt install ffmpeg;不需要在 tools 文件夹下链接它

每次运行

⚪ tkinter GUI(Windows/Linux/Mac)

manager

对于 Windows:

  • 运行 manager.cmd,启动 webui 的 python 虚拟环境
  • 运行 DOSKEY install(仅设置一次)
  • 运行 DOSKEY run

对于 Linux/Mac:

  • 运行 ../../venv/Scripts/activate,启动 webui 的 python 虚拟环境
  • 运行 pip install -r requirements.txt(仅设置一次)
  • 运行 python manager.py

ℹ 在右键弹出菜单中查找使用帮助信息~

cmd 脚本(Windows)- 已弃用

  • postprocess-config.cmd 中检查参数
  • 选择一种方式启动 😃
    • 从命令行运行 postprocess.cmd path/to/<image_folder>
    • 将任何图像文件夹拖放到 postprocess.cmd 图标上
  • 处理完成后,将自动启动资源管理器定位到名为 synth.mp4 的生成文件

相关项目

⚪ 启发此仓库的扩展

⚪ 第三方工具

⚪ 我的其他实验性玩具扩展


作者:Armit 日期:2022/11/10

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号