stable-diffusion-webui-prompt-travel

stable-diffusion-webui-prompt-travel

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

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

stable-diffusion-webuiAI绘图插件提示词动画Github开源项目

stable-diffusion-webui-prompt-travel

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


<p align="left"> <a href="https://github.com/Kahsolt/stable-diffusion-webui-prompt-travel/commits"><img alt="最后提交" src="https://img.shields.io/github/last-commit/Kahsolt/stable-diffusion-webui-prompt-travel"></a> <a href="https://github.com/Kahsolt/stable-diffusion-webui-prompt-travel/issues"><img alt="GitHub问题" src="https://img.shields.io/github/issues/Kahsolt/stable-diffusion-webui-prompt-travel"></a> <a href="https://github.com/Kahsolt/stable-diffusion-webui-prompt-travel/stargazers"><img alt="GitHub星标" src="https://img.shields.io/github/stars/Kahsolt/stable-diffusion-webui-prompt-travel"></a> <a href="https://github.com/Kahsolt/stable-diffusion-webui-prompt-travel/network"><img alt="GitHub分支" src="https://img.shields.io/github/forks/Kahsolt/stable-diffusion-webui-prompt-travel"></a> <img alt="语言" src="https://img.shields.io/github/languages/top/Kahsolt/stable-diffusion-webui-prompt-travel"> <img alt="许可证" src="https://img.shields.io/github/license/Kahsolt/stable-diffusion-webui-prompt-travel"> <br/> </p>

:stable-diffusion-webui-prompt-travel

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

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

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

其他内容:

图像生成图像的参考图像解码后的胚胎图像 <br/>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

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

<del> cmd 脚本(Windows)- 已弃用 </del>

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

相关项目

⚪ 启发此仓库的扩展

⚪ 第三方工具

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


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

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多