zhulinyv / Semi-Auto-NovelAI-to-Pixiv

带有 WebUI 的 NovelAI 量产工具, 实现了批量文生图; 批量图生图; 视频转绘; 分块重绘; 批量 Vibe; 批量局部重绘; 批量超分降噪; 批量自动打码; 批量添加水印; 批量上传 Pixiv; 图片筛选; 批量抹除, 还原或导出生成信息; 法术解析; 多模型反推提示词; ChatGPT; 动态加载插件; 自动 roll 画风串; 批量 Enhance; tag选择器; 涂鸦重绘; 图片压缩整理; 批量AI工具
GNU Affero General Public License v3.0
136 stars 17 forks source link
automation batch batch-script chatgpt gradio novelai pixiv python stable-diffusion-webui waifu2x webui

Semi-Auto-NovelAI-to-Pixiv

💬 介绍

English document: README_EN.md

[!TIP] 那天大雨滂沱,雷电交加, 风儿甚是喧嚣,仿佛整个世界都在为某种未知的力量所动摇。

芝士目前已实现的功能:

功能 介绍 示例 说明
教程说明 本项目的介绍及使用教程 image 请仔细阅读
文生图 使用 Gradio 为 NovelAI 写的一个用户界面, 除了界面不同, 其它完全等同于使用 NovelAI 网站 image 生成的图片将保存到 ./output/t2i 文件夹
随机蓝图 通过随机组合 ./files/favorite 中的 tag 生成一张蓝图或无限生成蓝图, 负面提示词将随机选择 favorite negative belief 中的负面提示词, 其它参数将使用 env 配置 image 关于固定项目, 后三个文本框需要填写 favorite 中对应的键值, 当填写固定动作固定角色时, 需要对应的动作类型出处, 留空时随机, 关于随机蓝图的配置, 请查看 WebUI 配置设置页面的其它部分
随机图片 通过读取 ./file/prompt 中的 *.txt 文件并追加输入的提示词作为提示词无限生成图片, 负面提示词将随机选择 favorite negative belief 中的负面提示词, 其它参数将使用 env 配置, 当文件夹下的所有 *.txt 文件均生成过一次后或点击停止生成后, 则将停止运行 image 关于随机图片的配置, 请查看 WebUI 配置设置页面的其它部分
Vibe 等同于使用 NovelAI 网站, 我为它添加了批量功能 image 需要准备一些图片到同一文件夹, 图片名称需要重命名为 (任意(不含下划线)_(信息提取强度, 浮点型(0, 1))_(参考强度, 浮点型(0, 1)).png) 的格式, 例如 hoshino-hinata_1.0_0.6
图生图 等同于使用 NovelAI 网站, 支持任何图片, 另外, 我为它添加了批量图生图 image 生成的图片将保存到 ./output/i2i 文件夹, 但会在 ./output 文件夹内生成一张名为 temp.png 的临时图片, 可以删除, 批量处理时, 请将图片放到同一个文件夹, 例如: ./output/choose_to_i2i
导演工具 使用不用的 AI 工具来编辑你的图片 image 完全等同于官网, 我为它添加了批量功能
视频转绘 将视频用几个步骤重绘, 用于将三次元转绘为二次元 image 实验性功能, 欢迎提出建议
分块重绘 将一张大图拆分成 640x640 的小块, 然后将这些小块用图生图的方式放大为 1024x1024, 不需要担心两张图片衔接过硬, 我使用鸣谢列表中的开源项目修复接缝 rife-ncnn-vulkan image 由于耗时较长, 目前仅开放单张放大, 使用时需要提供图片或图片路径(任选其一)
局部重绘 仅支持 NovelAI 生成的图片, 并且需要上传蒙版, 支持批量操作 image 上传的蒙版应为: 重绘区域为白色, 其余透明而不是黑色, 分辨率等于重绘图像, 批量操作时, 请将图片和蒙版放置于两个文件夹, 并且保证图片和蒙版文件名相同, 例如: ./output/inpaint/img, ./output/inpaint/mask, 生成的图片将保存到 ./output/inpaint
超分降噪 使用鸣谢名单中的开源项目对图片进行超分降噪, 支持任何图片单张或批量处理 image 生成的图片将保存到 ./output/upscale 文件夹, 不建议使用 srmd-cuda, 因为它不稳定. 当使用 waifu2x-caffewaifu2x-converter 时, 将会在 ./output 文件夹内生成一个名为 temp.bat 的临时批处理文件, 可以删除, 批量处理时, 请将图片放到同一个文件夹, 例如: ./output/choose_to_upscale
自动打码 自动检测图片中的关键部位, 并对其打码 image 不能确保 100% 检测出来, 生成的图片将保存到 ./output/mosaic 文件夹, 批量处理时, 请将图片放到同一个文件夹, 例如: ./output/choose_to_mosaic
添加水印 在图片左上, 右上, 左下, 右下随机某个位置范围添加指定数量的随机透明度的随机水印 image 使用前, 请先准备一些自己的水印到 ./files/water 文件夹. 使用时, 请输入需要处理的图片目录并按确定, 处理后的图片将保存到 ./output/water
上传Pixiv 批量将图片上传到 Pixiv image 关于上传Pixiv的配置, , 请查看 WebUI 配置设置页面的其它部分
图片筛选 人工对图片进行筛选的工具 image 使用时, 请先输入图片目录并按下确定, 然后输入输出目录. 会在 ./output 文件夹下生成一个名为 array_data.npy 的文件, 它会保存上次筛选的进度, 即你可以不选择图片目录继续筛选, 筛选完毕后会自动删除.
抹除数据 批量抹除, 还原或导出图片生成信息 image 还原信息时, 需要准备至少带有 prompt 的 .png 图片或内容为 prompt 的 .txt 文件, 并放到某一目录(图片信息文件目录), 选取的待还原图片目录中的文件名(不含扩展名)需要和刚刚的图片信息文件目录中的文件文件名一致
法术解析 使用鸣谢名单中的开源项目进行读取 png info image 使用 iframe 嵌套入本项目
Tagger 使用 SmilingWolf 在 huggingface 上部署的反推模型, 我为它添加了批量操作 image 批量处理时, 生成的 prompt 文本会保存到图片的同一目录
GPT Free 免费, 多模型的 GPT, 使用鸣谢名单中的开源项目 image 使用 iframe 嵌套入本项目
插件商店 展示所有在插件列表(./files/plugins.json)中的插件 image 安装时, 将想要安装的插件名称复制粘贴到左上角名称内, 点击安装即可, 重启后生效
配置设置 在 WebUI 更改配置项 image 修改记得保存, 重启后立即生效

正在学习 Gradio, 尝试为本项目写一个 WebUI

🔌 插件

[!TIP] 我独自一人走在湿滑泥泞的街头, 身旁只有寥寥几盏路灯在暗夜中孤寂地闪烁。

💿 部署

💻 配置需求

项目 说明
NovelAI 会员 为了无限生成图片, 建议 25$/month 会员
魔法网络 为了成功发送请求, 确保你可以正常访问相关网站
1GB 显存 为了使用超分降噪所有引擎, 需要至少 1GB 显存
2GB 内存 为了流畅使用本项目, 需要至少 2GB 内存
Windows 10/11(x64) 为了使用全部功能, 需要使用 64 位 Windows10/11
Microsoft Visual C++ 2015 为了使用超分降噪所有引擎, 需要安装运行库

[!WARNING] 远处传来几声猫的嘶叫,仿佛是夜晚的唯一音符,黑暗荒芜, 寒风刺骨, 伶仃孤苦。

🎉 开始部署

0️⃣ Star 本项目

1️⃣ 安装 Python

2️⃣ 安装 Git

3️⃣ 克隆仓库

4️⃣ 接下来的路

5️⃣ 整合包下载

如果上述操作你觉得难以上手或出现问题, 请加群咨询或下载整合包 Semi-Auto-NovelAI-to-Pixiv.7z

解压即用, 整合包用户请运行 整合包启动(Modpack launcher).bat

[!TIP] 月光透过稀疏的云层,洒在地面上,勾勒出一幅幽冥的画卷。

⚙️ 配置

[!WARNING] 那几声猫的嘶叫,时而远去,时而又近了, 不知脚下的路究竟是通向何方。

⚠️ token 的获取:

⚠️ pixiv_cookie 和 pixiv_token 的获取:

🌟 使用

[!TIP] 抬头是无尽的黑暗, 低头是无尽的黑暗, 仿佛陷入一个无边的漩涡中。

📖 待办

[!TIP] 黑暗如同一双无形的手,将我紧紧拥抱,深深地吞噬着我的思绪。

展开查看待办列表 + [x] 批量文生图 + [x] 批量图生图 + [x] 批量上传 Pixiv + [x] 计算剩余点数 + [x] 批量 [waifu2x](https://github.com/nagadomi/waifu2x) + [x] 批量局部重绘 + [x] ~~批量 vibe~~ + [x] 批量打码 + [x] 用 Gradio 写一个 WebUI + [ ] ~~将项目放到容器持久化运行~~ + [x] 修改界面样式 + [x] ~~添加 ChatGPT~~ + [x] ~~写一个图片筛选器~~ + [ ] ~~通过账号密码获取 token~~ + [x] 添加更多超分引擎 + [x] 添加文生图方式 + [x] 批量水印 + [x] 批量图片信息处理 + [x] 配置项界面 + [x] 打开相关文件夹功能 + [x] 合并随机蓝图等界面 + [x] 热键快速筛图 + [x] 教程和说明页面 + [x] 自定义插件 + [x] 自动生成独立脚本 + [x] 文生图指定数量 + [x] 文生图种子点击切换随机 + [x] 配置项添加是否还原图片信息 + [x] 补全独立脚本生成 + [x] 图片保存分类 + [x] 支持非文生图插件 + [x] 视频转绘 + [x] 提示词反推 + [x] 分块重绘 + [ ] ~~添加更多插帧引擎~~ + [x] 翻译剩余页面 + [x] 自动更新 + [x] 插件商店 + [x] 自定义清除元数据 + [x] 自动安装插件 + [x] 代理配置 + [x] 批量 Enhance + [ ] ~~自定义保存目录~~ + [ ] 学习 C# 使用 wpfui 写一个启动器 + [x] YOLO 检测 NSFW + [x] 启动 LOGO(甚至还加了个提示音) + [x] 重新命名函数和变量 + [ ] 文生图中断 + [x] 插件列表读取远程仓库 + [x] 插件更新与卸载 + [x] 图片筛选添加复制操作 + [x] 整合包 + [x] 新增打码方式 + [x] 局部重绘优化蒙版上传 + [x] 涂鸦重绘 + [ ] ~~局部放大重绘~~ + [x] 图片压缩与分类整理 + [ ] vibe 保存风格 + [x] 回退 vibe 随机图 + [ ] 简化 favorite 编辑 + [ ] 学习 js 写一个自动补全 + [ ] 简化 vibe 图片上传 + [x] 自定义分辨率 + [ ] ...

🤝 鸣谢

本项目使用 waifu2x-ncnn-vulkan | Anime4KCPP | realcugan-ncnn-vulkan | realesrgan-ncnn-vulkan | realsr-ncnn-vulkan | srmd-cuda | srmd-ncnn-vulkan | waifu2x-caffe | waifu2x-converter 降噪和放大图片

本项目使用 Genshin-Sync 上传图片至 Pixiv

本项目使用 GPT4FREE 提供 GPT 服务

本项目使用 novelai-image-metadata 抹除元数据

本项目使用 SmilingWolf/wd-tagger 反推提示词

本项目使用 rife-ncnn-vulkan 处理分块重绘图片接缝

[!NOTE] 坠落, 坠落。

🔊 声明

免责声明: 本软件仅提供技术服务,开发者不对用户使用本软件可能引发的任何法律责任或损失承担责任, 用户应对其使用本软件及其结果负全部责任

Code of conduct | Security


skirt.png