{"id":30534307,"url":"https://github.com/etherleaf/nonebot-plugin-colab-novelai","last_synced_at":"2025-08-27T13:37:46.420Z","repository":{"id":62964844,"uuid":"559866729","full_name":"EtherLeaF/nonebot-plugin-colab-novelai","owner":"EtherLeaF","description":"解放你的双手，让Colab持续给你提供算力生产色图！","archived":false,"fork":false,"pushed_at":"2022-11-21T06:01:59.000Z","size":123,"stargazers_count":30,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-24T21:49:59.452Z","etag":null,"topics":["chatbot","colaboratory","nonebot-plugin","nonebot2","novelai","python3","qq-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EtherLeaF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-31T09:07:08.000Z","updated_at":"2025-06-03T07:45:07.000Z","dependencies_parsed_at":"2023-01-22T17:31:07.544Z","dependency_job_id":null,"html_url":"https://github.com/EtherLeaF/nonebot-plugin-colab-novelai","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EtherLeaF/nonebot-plugin-colab-novelai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtherLeaF%2Fnonebot-plugin-colab-novelai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtherLeaF%2Fnonebot-plugin-colab-novelai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtherLeaF%2Fnonebot-plugin-colab-novelai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtherLeaF%2Fnonebot-plugin-colab-novelai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EtherLeaF","download_url":"https://codeload.github.com/EtherLeaF/nonebot-plugin-colab-novelai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtherLeaF%2Fnonebot-plugin-colab-novelai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272336063,"owners_count":24916529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatbot","colaboratory","nonebot-plugin","nonebot2","novelai","python3","qq-bot"],"created_at":"2025-08-27T13:37:41.145Z","updated_at":"2025-08-27T13:37:46.367Z","avatar_url":"https://github.com/EtherLeaF.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://v2.nonebot.dev/store\"\u003e\u003cimg src=\"https://s2.loli.net/2022/06/16/opBDE8Swad5rU3n.png\" width=\"180\" height=\"180\" alt=\"NoneBotPluginLogo\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cp\u003e\u003cimg src=\"https://s2.loli.net/2022/06/16/xsVUGRrkbn1ljTD.png\" width=\"240\" alt=\"NoneBotPluginText\"\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# Nonebot-Plugin-Colab-NovelAI\n\n_✨ 基于框架 [NoneBot2](https://v2.nonebot.dev/) 的AI绘图插件 ✨_\n  \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/EtherLeaF/nonebot-plugin-colab-novelai\" alt=\"license\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.8+-blue.svg\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/nonebot-2.0.0b4+-red.svg\" alt=\"NoneBot\"\u003e\n  \u003ca href=\"https://pypi.org/project/nonebot-plugin-colab-novelai\"\u003e\n    \u003cimg src=\"https://badgen.net/pypi/v/nonebot-plugin-colab-novelai\" alt=\"pypi\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.python.org/pypi/nonebot-plugin-colab-novelai\"\u003e\n      \u003cimg src=\"https://img.shields.io/pypi/dm/nonebot-plugin-colab-novelai\" alt=\"pypi download\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n## 功能\n\n- 提供prompt让AI进行绘图\n- 可选将图片保存至本地或WebDAV\n- 权限管理: 绘图冷却时间与是否允许使用NSFW tag\n\n## 安装\n\n- 使用 nb-cli\n\n```\nnb plugin install nonebot_plugin_colab_novelai\n```\n\n- 使用 pip\n\n```\npip install nonebot_plugin_colab_novelai\n```\n\n## 获取插件帮助与拓展功能\n\n- 可选择接入 [nonebot-plugin-PicMenu](https://github.com/hamo-reid/nonebot_plugin_PicMenu) 以便用户获取插件相关信息与用法\n- 可选择接入 [nonebot-plugin-manager](https://github.com/nonepkg/nonebot-plugin-manager) 管理插件黑名单\n- 可选择接入 [nonebot-plugin-savor](https://github.com/A-kirami/nonebot-plugin-savor) 通过图片反推tag\n\n## Requirements\n\n- 一台能正常访问外网的服务器 (Colab在中国大陆无法访问）\n\n- 确保服务器已正确安装了Chrome浏览器\n\n- 注册一堆Google新帐号(建议六个以上)，建议绑定手机号以免登录时出现麻烦，\u003cb\u003e千万不要开启多余的安全设置。\u003c/b\u003e\n\n- 前往[百度智能云](https://ai.baidu.com/tech/speech)申请免费语音识别服务，注册APP并获取相关密钥\n  - 用于绕过Colab ReCaptcha\n\n- 前往[cpolar](https://www.cpolar.com/)注册免费账号\n  - 用于Colab的内网穿透\n\n## .env | .env.dev | .env.prod 配置项\n\n```ini\nheadless_webdriver: bool = True                       # 是否使用无头模式启动浏览器\ncolab_proxy: Optional[str] = None                     # 如有需要可填写代理地址\ngoogle_accounts: Dict[str, str] = {}                  # Required, 填写要使用的谷歌账密 {\"account\": \"password\", ...}\ncpolar_username: str = None                           # Required, 填写cpolar账号邮箱\ncpolar_password: str = None                           # Required, 填写cpolar账号的密码\nbce_apikey: str = None                                # Required, 填写百度智能云的API Key\nbce_secretkey: str = None                             # Required, 填写百度智能云的Secret Key\nnaifu_max: int = 1                                    # 一次作图生成的最大图片数量\nnaifu_cd: int = 0                                     # 每个用户每生成一张图片的冷却时间\nnai_save2local_path: Optional[str] = None             # 将图片保存至本地的存储目录, 不填写则不保存\nnai_save2webdav_info: Dict[str, Optional[str]] = {\n    \"url\": None,\n    \"username\": None, \"password\": None,               # 将图片保存至WebDAV需要的相关配置，不填写则不保存\n    \"path\": None\n}\nnai_nsfw_tags: Optional[List[str] | str] = None       # 自定义可能会生成NSFW图片的tag, 填写一个列表或者一个文件路径\n                                                      # 列表: [\"tag1\", \"tag2\", \"tag3\", ...]\n                                                      # 若使用文件存储, 需要将tag以逗号分隔，无需引号。\n```\n\n### 配置项额外说明\n\n- 如果你正在使用没有图形界面的Linux服务器，请不要更改```headless_webdriver```\n\n- 插件会尝试禁止未授权的用户绘画NSFW图片，通过屏蔽特定tag来实现。预设的一些tag集合位于[/utils/distributed.py](https://github.com/EtherLeaF/nonebot-plugin-colab-novelai/blob/main/nonebot_plugin_colab_novelai/utils/distributed.py)，如果有其他好的预设想法，欢迎pr。\n  - 屏蔽的tag集合为```.env```配置项与预设项的并集，匹配时不区分大小写。\n\n- 如需使用代理，支持填写```http://```or```https://```or```socks5://```+```ip:port```\n\n## 如何使用？\n\n触发指令: ```naifu \u003ccommand\u003e [\u003csubcommands\u003e] [\u003cargs\u003e]```\n\n- Command: ```draw```\n- CommandPermission: ```Anyone```\n- 用于告诉AI开始作图\n\n- 用法: ```naifu draw \u003cPROMPT\u003e... [-i --undesired-content \u003cUNDESIRED_CONTENT\u003e...] [-a --sampling \u003cSAMPLING\u003e] [-t --steps \u003cSTEPS\u003e] [-c --scale \u003cSCALE\u003e] [-n --num \u003cNUM\u003e] [-s --size \u003cSIZE\u003e] [-r --seed \u003cSEED\u003e]```\n  - ```PROMPT``` 必选参数，指定作画的关键词，以逗号分隔，必须为英语\n  - ```-i``` 可选参数，指定作画中想避免出现的内容，以逗号分隔，必须为英语\n  - ```-a``` 可选参数，指定采样器，支持以下几种，默认为```k_euler_ancestral```：\n    - ```k_euler_ancestral, k_euler, k_lms```\n    - ```plms, ddim```\n  - ```-t``` 可选参数，指定优化图像的迭代次数，取值范围```1~50```，默认值为```28```\n  - ```-c``` 可选参数，值越大越接近描述意图，值越小细节越少自由度越大，取值范围```1.1~100```，默认值为```12```\n  - ```-s``` 可选参数，指定图片生成大小，支持以下几种，默认为```512x768```：\n    - ```384x640, 512x768, 512x1024 # Portrait```\n    - ```640x384, 768x512, 1024x512 # Landscape```\n    - ```512x512, 640x640, 1024x1024 # Square```\n  - ```-n``` 可选参数，指定图片生成数量，最大值参考```.env```配置项，默认值为```1```\n  - ```-r``` 可选参数，指定图片生成种子，取值范围```0 ~ 2³²-1```，默认值为```-1```即随机\n\u003cbr\u003e\n\n- Command: ```imgdraw```\n- CommandPermission: ```Anyone```\n- 提供基准图片作图\n\n- 用法: ```naifu imgdraw \u003cPROMPT\u003e... \u003cIMAGE\u003e [-i --undesired-content \u003cUNDESIRED_CONTENT\u003e...] [-a --sampling \u003cSAMPLING\u003e] [-t --steps \u003cSTEPS\u003e] [-c --scale \u003cSCALE\u003e] [-n --num \u003cNUM\u003e] [-r --seed \u003cSEED\u003e] [-e strength \u003cSTRENGTH\u003e] [-o noise \u003cNOISE\u003e]```\n  - ```PROMPT``` 必选参数，指定作画的关键词，以逗号分隔，必须为英语\n  - ```IMAGE``` 必选参数，指定作画基准图片\n  - ```-i``` 可选参数，指定作画中想避免出现的内容，以逗号分隔，必须为英语\n  - ```-a``` 可选参数，指定采样器，支持以下几种，默认为```k_euler_ancestral```：\n    - ```k_euler_ancestral, k_euler, k_lms```\n    - ```plms, ddim```\n  - ```-t``` 可选参数，指定优化图像的迭代次数，取值范围```1~50```，默认值为```50```\n  - ```-c``` 可选参数，值越大越接近描述意图，值越小细节越少自由度越大，取值范围```1.1~100```，默认值为```12```\n  - ```-n``` 可选参数，指定图片生成数量，最大值参考```.env```配置项，默认值为```1```\n  - ```-r``` 可选参数，指定图片生成种子，取值范围```0 ~ 2³²-1```，默认值为```-1```即随机\n  - ```-e``` 可选参数，值越低越接近原始图像，取值范围```0~0.99```，默认值为```0.7```\n  - ```-o``` 可选参数，值增加会增加细节，一般应低于参数```\u003cSTRENGTH\u003e```，取值范围```0~0.99```，默认值为```0.2```\n\u003cbr\u003e\n\n- Command: ```su```\n- CommandPermission: ```Superuser```\n- 用于管理插件白名单用户 (白名单用户无绘图cd，在```.env```中```naifu_cd```值为非零时生效)\n\n  - Subcommand: ```ls```\n  - 列出当前所有白名单用户\n  - 用法: ```naifu su ls```\n  \u003cbr\u003e\n  \n  - Subcommand: ```add```\n  - 添加白名单用户\n  - 用法: ```naifu su add \u003cUSER ID\u003e...```\n    - 必须指定用户QQ号，可填写多个并以空格分隔\n  \u003cbr\u003e\n  \n  - Subcommand: ```rm```\n  - 移除白名单用户\n  - 用法: ```naifu su rm \u003cUSER ID\u003e...```\n    - 必须指定用户QQ号，可填写多个并以空格分隔\n\u003cbr\u003e\n  \n- Command: ```nsfw```\n- CommandPermission: ```Superuser```\n- 管理允许绘制NSFW内容的用户与群组\n- \u003cb\u003e注意: 群聊中只有当用户和群聊均有权限时才能绘制NSFW内容！\u003c/b\u003e\n\n  - Subcommand: ```ls```\n  - 列出当前所有允许NSFW内容的用户与群组\n  - 用法: ```naifu nsfw ls```\n  \u003cbr\u003e\n  \n  - Subcommand: ```add```\n  - 添加允许NSFW内容的用户或群组\n  - 用法: ```naifu nsfw add [-u --uid \u003cUSER ID\u003e...] [-g --gid \u003cGROUP ID\u003e...]```\n    - ```-u``` 可选参数，为用户QQ号，可填写多个并以空格分隔\n    - ```-g``` 可选参数，为群号，可填写多个并以空格分隔\n    - 当两个可选参数均未填写时，默认添加当前所处群聊的群号。\n  \u003cbr\u003e\n  \n  - Subcommand: ```rm```\n  - 移除允许NSFW内容的用户或群组\n  - 用法: ```naifu nsfw rm [-u --uid \u003cUSER ID\u003e...] [-g --gid \u003cGROUP ID\u003e...]```\n    - ```-u``` 可选参数，为用户QQ号，可填写多个并以空格分隔\n    - ```-g``` 可选参数，为群号，可填写多个并以空格分隔\n    - 当两个可选参数均未填写时，默认移除当前所处群聊的群号。\n\n在权限配置文件第一次加载时，会自动添加```.env```的```SUPERUSERS```为插件白名单用户以及分配NSFW权限。\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetherleaf%2Fnonebot-plugin-colab-novelai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetherleaf%2Fnonebot-plugin-colab-novelai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetherleaf%2Fnonebot-plugin-colab-novelai/lists"}