NoneBot2 由Colab驱动的AI作画插件
Project description
功能
- 提供prompt让AI进行绘图
- 可选将图片保存至本地或WebDAV
- 权限管理: 绘图冷却时间与是否允许使用NSFW tag
安装
- 使用 nb-cli
nb plugin install nonebot_plugin_colab_novelai
- 使用 pip
pip install nonebot_plugin_colab_novelai
获取插件帮助与拓展功能
- 可选择接入 nonebot-plugin-PicMenu 以便用户获取插件相关信息与用法
- 可选择接入 nonebot-plugin-manager 管理插件黑名单
- 可选择接入 nonebot-plugin-savor 通过图片反推tag
Requirements
-
一台能正常访问外网的服务器 (Colab在中国大陆无法访问)
-
确保服务器已正确安装了Chrome浏览器
-
注册一堆Google新帐号(建议六个以上),建议绑定手机号以免登录时出现麻烦,千万不要开启多余的安全设置。
-
前往百度智能云申请免费语音识别服务,注册APP并获取相关密钥
- 用于绕过Colab ReCaptcha
-
前往cpolar注册免费账号
- 用于Colab的内网穿透
.env | .env.dev | .env.prod 配置项
headless_webdriver: bool = True # 是否使用无头模式启动浏览器
google_accounts: Dict[str, str] = {} # Required, 填写要使用的谷歌账密 {"account": "password", ...}
cpolar_username: str = None # Required, 填写cpolar账号邮箱
cpolar_password: str = None # Required, 填写cpolar账号的密码
bce_apikey: str = None # Required, 填写百度智能云的API Key
bce_secretkey: str = None # Required, 填写百度智能云的Secret Key
naifu_max: int = 1 # 一次作图生成的最大图片数量
naifu_cd: int = 0 # 每个用户每生成一张图片的冷却时间
nai_save2local_path: Optional[str] = None # 将图片保存至本地的存储目录, 不填写则不保存
nai_save2webdav_info: Dict[str, Optional[str]] = {
"url": None,
"username": None, "password": None, # 将图片保存至WebDAV需要的相关配置,不填写则不保存
"path": None
}
nai_nsfw_tags: Optional[List[str] | str] = None # 自定义可能会生成NSFW图片的tag, 填写一个列表或者一个文件路径
# 列表: ["tag1", "tag2", "tag3", ...]
# 若使用文件存储, 需要将tag以逗号分隔,无需引号。
配置项额外说明
-
如果你正在使用没有图形界面的Linux服务器,请不要更改
headless_webdriver
-
插件会尝试禁止未授权的用户绘画NSFW图片,通过屏蔽特定tag来实现。预设的一些tag集合位于/utils/distributed.py,如果有其他好的预设想法,欢迎pr。
- 屏蔽的tag集合为
.env
配置项与预设项的并集,匹配时不区分大小写。
- 屏蔽的tag集合为
如何使用?
触发指令: naifu <command> [<subcommands>] [<args>]
-
Command:
draw
-
CommandPermission:
Anyone
-
用于告诉AI开始作图
-
用法:
naifu draw <PROMPT>... [-i --undesired-content <UNDESIRED_CONTENT>...] [-a --sampling <SAMPLING>] [-t --steps <STEPS>] [-c --scale <SCALE>] [-n --num <NUM>] [-s --size <SIZE>] [-r --seed <SEED>]
PROMPT
必选参数,指定作画的关键词,以逗号分隔,必须为英语-i
可选参数,指定作画中想避免出现的内容,以逗号分隔,必须为英语-a
可选参数,指定采样器,支持以下几种,默认为k_euler_ancestral
:k_euler_ancestral, k_euler, k_lms
plms, ddim
-t
可选参数,指定优化图像的迭代次数,取值范围1~50
,默认值为28
-c
可选参数,值越大越接近描述意图,值越小细节越少自由度越大,取值范围1.1~100
,默认值为12
-s
可选参数,指定图片生成大小,支持以下几种,默认为512x768
:384x640, 512x768, 512x1024 # Portrait
640x384, 768x512, 1024x512 # Landscape
512x512, 640x640, 1024x1024 # Square
-n
可选参数,指定图片生成数量,最大值参考.env
配置项,默认值为1
-r
可选参数,指定图片生成种子,取值范围0 ~ 2³²-1
,默认值为-1
即随机
-
Command:
imgdraw
-
CommandPermission:
Anyone
-
提供基准图片作图
-
用法:
naifu imgdraw <PROMPT>... <IMAGE> [-i --undesired-content <UNDESIRED_CONTENT>...] [-a --sampling <SAMPLING>] [-t --steps <STEPS>] [-c --scale <SCALE>] [-n --num <NUM>] [-r --seed <SEED>] [-e strength <STRENGTH>] [-o noise <NOISE>]
PROMPT
必选参数,指定作画的关键词,以逗号分隔,必须为英语IMAGE
必选参数,指定作画基准图片-i
可选参数,指定作画中想避免出现的内容,以逗号分隔,必须为英语-a
可选参数,指定采样器,支持以下几种,默认为k_euler_ancestral
:k_euler_ancestral, k_euler, k_lms
plms, ddim
-t
可选参数,指定优化图像的迭代次数,取值范围1~50
,默认值为50
-c
可选参数,值越大越接近描述意图,值越小细节越少自由度越大,取值范围1.1~100
,默认值为12
-n
可选参数,指定图片生成数量,最大值参考.env
配置项,默认值为1
-r
可选参数,指定图片生成种子,取值范围0 ~ 2³²-1
,默认值为-1
即随机-e
可选参数,值越低越接近原始图像,取值范围0~0.99
,默认值为0.7
-o
可选参数,值增加会增加细节,一般应低于参数<STRENGTH>
,取值范围0~0.99
,默认值为0.2
-
Command:
su
-
CommandPermission:
Superuser
-
用于管理插件白名单用户 (白名单用户无绘图cd,在
.env
中naifu_cd
值为非零时生效)- Subcommand:
ls
- 列出当前所有白名单用户
- 用法:
naifu su ls
- Subcommand:
add
- 添加白名单用户
- 用法:
naifu su add <USER ID>...
- 必须指定用户QQ号,可填写多个并以空格分隔
- Subcommand:
rm
- 移除白名单用户
- 用法:
naifu su rm <USER ID>...
- 必须指定用户QQ号,可填写多个并以空格分隔
- Subcommand:
-
Command:
nsfw
-
CommandPermission:
Superuser
-
管理允许绘制NSFW内容的用户与群组
-
注意: 群聊中只有当用户和群聊均有权限时才能绘制NSFW内容!
- Subcommand:
ls
- 列出当前所有允许NSFW内容的用户与群组
- 用法:
naifu nsfw ls
- Subcommand:
add
- 添加允许NSFW内容的用户或群组
- 用法:
naifu nsfw add [-u --uid <USER ID>...] [-g --gid <GROUP ID>...]
-u
可选参数,为用户QQ号,可填写多个并以空格分隔-g
可选参数,为群号,可填写多个并以空格分隔- 当两个可选参数均未填写时,默认添加当前所处群聊的群号。
- Subcommand:
rm
- 移除允许NSFW内容的用户或群组
- 用法:
naifu nsfw rm [-u --uid <USER ID>...] [-g --gid <GROUP ID>...]
-u
可选参数,为用户QQ号,可填写多个并以空格分隔-g
可选参数,为群号,可填写多个并以空格分隔- 当两个可选参数均未填写时,默认移除当前所处群聊的群号。
- Subcommand:
在权限配置文件第一次加载时,会自动添加.env
的SUPERUSERS
为插件白名单用户以及分配NSFW权限。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot_plugin_colab_novelai-0.2.1.tar.gz
.
File metadata
- Download URL: nonebot_plugin_colab_novelai-0.2.1.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2785275a60476dc80d1795932ef03869d2634f9d2eb86d4329a9d2a96b1e544b |
|
MD5 | 993b416282d2ced323ff3f5bab81c701 |
|
BLAKE2b-256 | 4057c338afa10a90fbee504ae34f86e6a226aef83b6d1742200fed24cac8ffc5 |
Provenance
File details
Details for the file nonebot_plugin_colab_novelai-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_colab_novelai-0.2.1-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43a4096fffeb073a5047761e82dcf68fb9c2d341b530bfee6d299cff3c9acda7 |
|
MD5 | 097c9c4200f2981b7c1e396e34746636 |
|
BLAKE2b-256 | f168a680620cf1ad40e77e8a5801b54c6b3eee83481944d73df39df769bd2de1 |