支持本项目
中文 | Русский
Stable Diffusion的ReActor
快速简单的人脸替换扩展,具有多项改进,没有NSFW过滤(未经审查,使用时请自行承担责任)
最新更新 | 安装 | 功能 | 使用方法 | API | 故障排除 | 更新 | ComfyUI | 免责声明
最新更新内容
点击展开
0.7.0 BETA2
- X/Y/Z功能得到改进!新增一个参数:现在可以选择多个人脸模型来创建多种替换效果,以选择最佳效果!
要使用"人脸模型"轴,你需要启用ReActor并选择任意人脸模型作为源:
完整尺寸演示图:xyz_demo_2.png
0.7.0 BETA1
- 支持X/Y/Z脚本(最多3个轴:CodeFormer权重、修复器可见度、人脸蒙版校正)
完整尺寸演示图:xyz_demo.png
别忘了启用ReActor并设置任意源(以防止"无源"错误)
0.7.0 ALPHA1
- 现在可以混合人脸来构建混合人脸模型("工具->人脸模型->混合")- 应广大用户要求
- 安装脚本中支持CUDA 12(用于1.17.0 ORT-GPU库)
- 新增"检测"选项卡,包含"阈值"和"最大人脸数"参数
0.6.1 BETA3
- "放大"选项卡中新增"强制放大"选项:即使未检测到人脸,ReActor也会运行放大器(FR https://github.com/Gourieff/sd-webui-reactor/issues/116)
- 当选择多图像模式或文件夹模式(包括随机模式)时,ReActor会在处理过程中显示源图像的文件名
0.6.1 BETA2
- 选择"多图像"或"源文件夹"时,"保存原图"选项现在可以正常工作
- "源文件夹"的随机模式
0.6.0
- 新标志
- 适配 A1111 1.7.0 版本(适当的 GFPGAN 加载器)
- 主模型文件的新 URL
- 用户界面重新设计
- 现在可以加载多个源图像(带有参考面孔)或设置包含面部图像的文件夹路径
0.5.1
- 您可以将面部模型保存为 "safetensors" 文件(存储在
<sd-web-ui-folder>\models\reactor\faces
中)并将它们加载到 ReActor 中,保留您使用的面孔的超轻量级面部模型; - "面部遮罩校正"选项 - 如果您在面部轮廓周围遇到一些像素化问题,此选项将会很有用;
安装
A1111 WebUI / WebUI-Forge | SD.Next | Google Colab SD WebUI
如果您使用 AUTOMATIC1111 SD WebUI 或 SD WebUI Forge:
- (对于 Windows 用户):
- 安装 Visual Studio 2022(例如社区版 - 您需要此步骤来构建一些依赖项): https://visualstudio.microsoft.com/downloads/
- 或者只安装 VS C++ 构建工具(如果您不需要完整的 Visual Studio),并在"工作负载 -> 桌面和移动"下选择"使用 C++ 的桌面开发": https://visualstudio.microsoft.com/visual-cpp-build-tools/
- 或者如果您不想安装 VS 或 VS C++ BT - 请按照这些步骤(第 VIII 节)进行操作
- 在 web-ui 中,转到"扩展"选项卡,加载"可用"扩展,在搜索字段中输入"ReActor",或在"从 URL 安装"选项卡中使用此 URL
https://github.com/Gourieff/sd-webui-reactor
- 然后点击"安装" - 请等待几分钟,直到安装过程完成(请耐心等待,不要中断过程)
- 检查 SD-WebUI 控制台中的最后一条消息:
- 如果您看到消息"--- 请重新启动服务器!---"- 请执行此操作,停止服务器(CTRL+C 或 CMD+C)并重新启动 - 或者只需转到"已安装"选项卡,点击"应用并重新启动 UI"
- 如果您看到消息"完成!",只需重新加载 UI 即可
- 尽情使用吧!
- 如果正在运行,请关闭(停止)您的 SD WebUI 服务器
- (对于 Windows 用户)请参阅 Automatic1111 的第 1 步(如果您按照这些步骤(第 VIII 节)进行操作,请转到第 5 步)
- 转到 (Windows)
automatic\venv\Scripts
或 (MacOS/Linux)automatic/venv/bin
,为该文件夹运行终端或控制台 (cmd) 并输入activate
- 运行
pip install insightface==0.7.3
- 运行 SD.Next,转到"扩展"选项卡,在"从 URL 安装"选项卡中使用此 URL
https://github.com/Gourieff/sd-webui-reactor
,然后点击"安装" - 请等待几分钟,直到安装过程完成(请耐心等待,不要中断过程)
- 检查 SD.Next 控制台中的最后一条消息:
- 如果您看到消息"--- 请重新启动服务器!---" - 停止服务器(CTRL+C 或 CMD+C)或只需关闭您的控制台
- 转到
automatic\extensions\sd-webui-reactor
目录 - 如果您在那里看到models\insightface
文件夹,其中包含文件inswapper_128.onnx
,只需将该文件移动到automatic\models\insightface
文件夹 - 运行您的 SD.Next WebUI 并尽情使用吧!
- 在活动的 WebUI 中,转到"扩展"选项卡,加载"可用"扩展,在搜索字段中输入"ReActor",或在"从 URL 安装"选项卡中使用此 URL
https://github.com/Gourieff/sd-webui-reactor
- 然后点击"安装" - 请等待几分钟,直到安装过程完成(请耐心等待,不要中断过程)
- 当您看到消息"--- 请重新启动服务器!---"(在 Colab Notebook 的"启动 Cagliostro Colab UI"部分)时 - 只需转到"已安装"选项卡并点击"应用并重新启动 UI"
- 尽情使用吧!
特性
- 非常快速和准确的图像面部替换(换脸)
- 支持多个面部
- 性别检测
- 能够保存原始图像(在替换之前制作)
- 替换面部的面部修复
- 放大结果图像
- 保存和加载 Safetensors 面部模型
- 面部遮罩校正以避免面部轮廓周围的任何像素化
- 能够设置后处理顺序
- 与不同的 SD WebUI 完全兼容:Automatic1111、SD.Next、Cagliostro Colab UI
- 即使使用 CPU 也能快速运行,SD WebUI 的 ReActor 对您的 GPU 性能完全不挑剔
- 自 0.5.0 版本起支持 CUDA 加速
- API 支持:SD WebUI 内置和外部(通过 POST/GET 请求)
- ComfyUI 支持
- Mac M1/M2 支持
- 控制台日志级别控制
- 无 NSFW 过滤器(此扩展面向高度发展的知识分子,而非变态者;我们的社会必须在其发展道路上朝着最高标准而非最低标准发展 - 这是发展和进化的本质;因此,我的立场是 - 成熟思想的人足够聪明,能够自己理解什么是好什么是坏,并为个人行为承担全部责任;对于其他人 - 在他们理解宇宙如何运作之前,没有"过滤器"能够帮助)
使用方法
使用此软件即表示您同意免责声明
- 在"ReActor"下拉菜单中,导入包含面部的图像;
- 打开"启用"复选框;
- 就是这样,现在生成的结果将具有您选择的面部。
人脸索引
ReActor 按以下顺序检测图像中的人脸: 从左到右,从上到下
如果需要指定人脸,可以为源图像和输入图像设置索引。
检测到的第一个人脸索引为 0。
您可以按需要的顺序设置索引。 例如:0,1,2(源图像);1,0,2(输入图像)。 这意味着:第二个输入人脸(索引=1)将被第一个源人脸(索引=0)替换,依此类推。
性别
您可以指定要在图像中检测的性别。 ReActor 只会替换符合给定条件的人脸。
结果人脸模糊
使用"恢复人脸"选项。您也可以尝试"放大器"选项,或者使用"附加功能"选项卡中的放大器进行更精细的控制。 您还可以设置后期处理顺序(从 0.1.0 版开始):
旧的逻辑是相反的(先放大->然后恢复),导致放大后人脸质量较差(并且纹理差异很大)。
结果中有多个人脸
使用"逗号分隔的人脸编号"选项为交换源和结果图像选择要交换的人脸编号。您可以使用不同的索引顺序。
结果完全是黑色的
这意味着 NSFW 过滤器检测到您的图像是 NSFW。
图像到图像
您可以选择在源图像或生成的图像上激活交换,或使用复选框在两者上都激活。在源图像上激活允许您从给定的基础开始并对其应用扩散过程。
ReActor 可以与修复绘制一起使用 - 但只有蒙版部分会被交换。如果启用了"放大器",请将"修复绘制区域"设为"仅蒙版"选项。否则,请通过附加功能选项卡或通过脚本加载器(屏幕下方)使用"SD 放大"或"Ultimate SD 放大"选项进行放大。
附加功能选项卡
从 0.5.0 版本开始,您可以通过附加功能选项卡使用 ReActor。它提供了超快的性能,并能够避免 SD 管道导致原始图像细节模糊的情况下进行人脸到图像的交换
API
您可以使用内置的 Webui API 或通过外部 API 使用 ReActor。
请按照**此页面**的详细说明进行操作。
故障排除
I. "models 目录中至少应该有一个模型"
请检查存储"inswapper_128.onnx"模型的路径。它必须位于 stable-diffusion-webui\models\insightface
文件夹内。如果它存储在其他目录中,请将其移动到那里。
II. 安装 Insightface 或其他依赖项的任何问题
(适用于 Mac M1/M2 用户)如果在尝试安装 Insightface 时遇到错误 - 请阅读 https://github.com/Gourieff/sd-webui-reactor/issues/42
(适用于 Windows 用户)如果您已安装 VS C++ Build Tools 或 MS VS 2022 但仍然遇到问题,请尝试下一步:
- 关闭(停止)您的 SD WebUI 服务器并重新启动它
(适用于任何操作系统用户)如果问题仍然存在,请执行以下操作:
- 如果正在运行,请关闭(停止)您的 SD WebUI 服务器
- 转到(Windows)
venv\Lib\site-packages
文件夹或(MacOS/Linux)venv/lib/python3.10/site-packages
- 如果您看到任何以
~
开头的文件夹名称(例如"~rotobuf") - 删除它们 - 转到(Windows)
venv\Scripts
或(MacOS/Linux)venv/bin
- 为该文件夹运行终端或控制台(cmd),并输入
activate
- 首先更新您的 pip:
pip install -U pip
- 然后逐个执行:
pip install insightface==0.7.3
pip install onnx
pip install "onnxruntime-gpu>=1.16.1"
pip install opencv-python
pip install tqdm
- 输入
deactivate
,您可以关闭终端或控制台并启动 SD WebUI,ReActor 应该正常启动 - 如果没有,欢迎来到问题部分。
III. "TypeError: UpscaleOptions.init() got an unexpected keyword argument 'do_restore_first'"
首先 - 您需要禁用任何其他基于 Roop 的扩展:
- 转到"扩展 -> 已安装"选项卡,取消选中除此之外的任何基于 Roop 的扩展
- 点击"应用并重启 UI"
替代解决方案:
- https://github.com/Gourieff/sd-webui-reactor/issues/3#issuecomment-1615919243
- https://github.com/Gourieff/sd-webui-reactor/issues/39#issuecomment-1666559134 (如果您使用 Vladmandic SD.Next,可能有效)
IV. "AttributeError: 'FaceSwapScript' object has no attribute 'enable'"
可能需要禁用"SD-CN-Animation"扩展(或可能是导致冲突的其他扩展)
V. "INVALID_PROTOBUF : Load model from <...>\models\insightface\inswapper_128.onnx failed:Protobuf parsing failed" 或 "AttributeError: 'NoneType' object has no attribute 'get'" 或 "AttributeError: 'FaceSwapScript' object has no attribute 'save_original'"
如果模型文件inswapper_128.onnx
有问题,可能会出现此错误
尝试从这里手动下载,
并将其放入stable-diffusion-webui\models\insightface
目录,替换现有文件
六、"ValueError: 此 ORT 构建启用了 ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']" 或 "ValueError: 此 ORT 构建启用了 ['AzureExecutionProvider', 'CPUExecutionProvider']"
- 如果您的 SD WebUI 服务器正在运行,请关闭(停止)它
- 进入 (Windows)
venv\Lib\site-packages
或 (MacOS/Linux)venv/lib/python3.10/site-packages
,查看是否有以"~"开头的文件夹名称(例如"~rotobuf"),删除它们 - 进入 (Windows)
venv\Scripts
或 (MacOS/Linux)venv/bin
,在那里运行终端或控制台 (cmd),然后输入activate
- 接着执行:
python -m pip install -U pip
pip uninstall -y onnxruntime onnxruntime-gpu onnxruntime-silicon onnxruntime-extensions
pip install "onnxruntime-gpu>=1.16.1"
如果这没有帮助 - 似乎您有另一个扩展在 SD WebUI 检查要求时重新安装了 onnxruntime
。请查看您的扩展列表。某些扩展可能会导致每次 SD WebUI 运行时将 onnxruntime-gpu
重新安装为 onnxruntime<1.16.1
。
ORT 1.16.0 存在一个错误 https://github.com/microsoft/onnxruntime/issues/17631 - 请勿安装它!
七、"ImportError: 无法从 'google.protobuf.internal' 导入名称 'builder'"
- 如果您的 SD WebUI 服务器正在运行,请关闭(停止)它
- 进入 (Windows)
venv\Lib\site-packages
或 (MacOS/Linux)venv/lib/python3.10/site-packages
,查看是否有以"~"开头的文件夹名称(例如"~rotobuf"),删除它们 - 进入"google"文件夹(在"site-packages"内),删除那里任何以"~"开头的文件夹
- 进入 (Windows)
venv\Scripts
或 (MacOS/Linux)venv/bin
,在那里运行终端或控制台 (cmd),然后输入activate
- 接着执行:
python -m pip install -U pip
pip uninstall protobuf
pip install "protobuf>=3.20.3"
如果此方法不起作用 - 可能有其他扩展依赖于错误版本的 protobuf,SD WebUI 在启动时的要求检查中安装了它
八、(针对 Windows 用户)如果您仍然无法构建 Insightface,或者只是不想安装 Visual Studio 或 VS C++ 构建工具 - 请执行以下操作:
- 如果您的 SD WebUI 服务器正在运行,请关闭(停止)它
- 下载并将预构建的 Insightface 包放入 stable-diffusion-webui(或 SD.Next)根文件夹,即您有"webui-user.bat"文件或(A1111 便携版)"run.bat"的位置
- 从 stable-diffusion-webui(或 SD.Next)根文件夹运行 CMD 并执行
.\venv\Scripts\activate
或者
(A1111 便携版)运行 CMD - 然后更新您的 PIP:
python -m pip install -U pip
或者
(A1111 便携版)system\python\python.exe -m pip install -U pip
- 然后安装 Insightface:
pip install insightface-0.7.3-cp310-cp310-win_amd64.whl
或者
(A1111 便携版)system\python\python.exe -m pip install insightface-0.7.3-cp310-cp310-win_amd64.whl
- 尽情使用吧!
九、2023年8月7日更新问题
如果在执行 git pull
后您看到消息:Merge made by the 'recursive' strategy
,然后当您检查 git status
时看到 Your branch is ahead of 'origin/main' by
请执行以下操作:
在 extensions\sd-webui-reactor
文件夹内运行终端或控制台 (cmd),然后:
git reset f48bdf1 --hard
git pull
或者
只需删除 extensions
目录内的 sd-webui-reactor
文件夹,然后运行终端或控制台 (cmd) 并输入 git clone https://github.com/Gourieff/sd-webui-reactor
十、StabilityMatrix 问题
如果您在 StabilityMatrix 包管理器中安装此扩展时遇到任何问题 - 请阅读此处了解如何解决:https://github.com/Gourieff/sd-webui-reactor/issues/129#issuecomment-1768210875
更新
检查扩展更新的一个好方法是:https://github.com/Gourieff/sd-webui-extensions-updater
ComfyUI
您可以在 ComfyUI 中使用 ReActor。
安装说明请参阅 ReActor Node 仓库
免责声明
本软件旨在为快速发展的 AI 生成媒体行业做出富有成效的贡献。它将帮助艺术家完成诸如制作自定义角色动画或将角色用作服装模特等任务。
本软件的开发者意识到其可能存在的非道德应用,并致力于采取预防措施来防止这些行为。我们将继续在遵守法律和道德的同时,朝着积极的方向发展这个项目。
本软件的用户应当在遵守当地法律的同时负责任地使用本软件。如果使用了真实人物的面部,建议获得相关人员的同意,并在在线发布内容时明确说明这是深度伪造。开发者和贡献者不对最终用户的行为负责。
使用此扩展即表示您同意不创建任何:
- 违反任何法律的内容;
- 对他人造成伤害的内容;
- 传播(散布)任何可能造成伤害的信息(无论公开或个人)或图像(无论公开或个人);
- 传播错误信息;
- 针对弱势群体的内容。
本软件使用了由 InsightFace 提供的预训练模型 buffalo_l
和 inswapper_128.onnx
。这些模型在以下条件下包含:
来自 insightface 许可证:InsightFace 的预训练模型仅可用于非商业研究目的。这包括自动下载的模型和手动下载的模型。
本软件的用户必须严格遵守这些使用条件。本软件的开发者和维护者对 InsightFace 预训练模型的任何滥用不承担责任。
请注意,如果您打算将本软件用于任何商业目的,您需要训练自己的模型或找到可以商业使用的模型。
模型哈希值
安全使用的模型具有以下哈希值:
inswapper_128.onnx
MD5:a3a155b90354160350efd66fed6b3d80
SHA256:e4a3f08c753cb72d04e10aa0f7dbe3deebbf39567d4ead6dce08e98aa49e16af
1k3d68.onnx
MD5:6fb94fcdb0055e3638bf9158e6a108f4
SHA256:df5c06b8a0c12e422b2ed8947b8869faa4105387f199c477af038aa01f9a45cc
2d106det.onnx
MD5:a3613ef9eb3662b4ef88eb90db1fcf26
SHA256:f001b856447c413801ef5c42091ed0cd516fcd21f2d6b79635b1e733a7109dbf
det_10g.onnx
MD5:4c10eef5c9e168357a16fdd580fa8371
SHA256:5838f7fe053675b1c7a08b633df49e7af5495cee0493c7dcf6697200b85b5b91
genderage.onnx
MD5:81c77ba87ab38163b0dec6b26f8e2af2
SHA256:4fde69b1c810857b88c64a335084f1c3fe8f01246c9a191b48c7bb756d6652fb
w600k_r50.onnx
MD5:80248d427976241cbd1343889ed132b3
SHA256:4c06341c33c2ca1f86781dab0e829f88ad5b64be9fba56e56bc9ebdefc619e43
如果您从未经验证(或不受信任)的来源下载这些模型,请检查哈希值