up
65
README.md
@ -129,36 +129,36 @@ plugins = [
|
||||
|
||||
在 nonebot2 项目的 `.env` 文件中添加下表中的必填配置
|
||||
|
||||
| 配置项 | 必填 | 默认值 | 说明 |
|
||||
| :---------------------------: | :--: | :--------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|
||||
| **全局配置** | | | |
|
||||
| `PROXY` | 否 | `None` | 下载模型等文件时使用的代理地址 |
|
||||
| **响应配置** | | | |
|
||||
| `NAILONG_BYPASS_SUPERUSER` | 否 | `True` | 是否不检查超级用户发送的图片 |
|
||||
| `NAILONG_BYPASS_ADMIN` | 否 | `True` | 是否不检查群组管理员发送的图片 |
|
||||
| `NAILONG_NEED_ADMIN` | 否 | `False` | 当自身不为群组管理员时是否不检查群内所有图片 |
|
||||
| `NAILONG_LIST_SCENES` | 否 | `[]` | 聊天场景 ID 黑白名单列表<br />在单级聊天下为该聊天 ID,如 QQ 群号;<br />在多级聊天下为以 `_` 分割的各级聊天 ID,如频道下的子频道或频道下私聊 |
|
||||
| `NAILONG_BLACKLIST` | 否 | `True` | 是否使用黑名单模式 |
|
||||
| `NAILONG_USER_BLACKLIST` | 否 | `[]` | 用户 ID 黑名单列表 |
|
||||
| `NAILONG_PRIORITY` | 否 | `100` | Matcher 优先级 |
|
||||
| **行为配置** | | | |
|
||||
| `NAILONG_RECALL` | 否 | `True` | 是否撤回消息 |
|
||||
| `NAILONG_MUTE_SECONDS` | 否 | `0` | 设置禁言时间,默认为 0 即不禁言<br/>单位:秒 |
|
||||
| `NAILONG_TIP` | 否 | `{"nailong": "本群禁止发奶龙!"}` | 发送的提示,使用 [Alconna 的消息模板](https://nonebot.dev/docs/best-practice/alconna/uniseg#%E4%BD%BF%E7%94%A8%E6%B6%88%E6%81%AF%E6%A8%A1%E6%9D%BF),可用变量见下,可以根据标签自定义对应值,如遇其中没有的标签会回退到 `nailong` |
|
||||
| `NAILONG_FAILED_TIP` | 否 | `{"nailong": "{:Reply($message_id)}呜,不要发奶龙了嘛 🥺 👉👈"}` | 撤回失败或禁用撤回时发送的提示,同上 |
|
||||
| `NAILONG_CHECK_ALL_FRAMES` | 否 | `False` | 使用模型 1 时是否检查图片中的所有帧,启用该项后消息模板中的 `$checked_result` 变量当原图为动图时会变为动图 |
|
||||
| **模型通用配置** | | | |
|
||||
| `NAILONG_MODEL_DIR` | 否 | `./data/nailongremove` | 模型的下载位置 |
|
||||
| `NAILONG_MODEL` | 否 | `1` | 选择需要加载的模型,可用模型见下 |
|
||||
| `NAILONG_AUTO_UPDATE_MODEL` | 否 | `True` | 是否自动更新模型 |
|
||||
| `NAILONG_CONCURRENCY` | 否 | `1` | 当图片为动图时,针对该图片并发识别图片帧的最大并发数 |
|
||||
| `NAILONG_ONNX_TRY_TO_USE_GPU` | 否 | `True` | 加载 onnx 模型时是否尝试使用 GPU,如果失败则会显示一串警告但是对插件并无影响,如果不想看见警告关闭此配置项即可 |
|
||||
| **模型 1 特定配置** | | | |
|
||||
| `NAILONG_MODEL1_TYPE` | 否 | `tiny` | 模型 1 使用的模型类型,可用 `tiny` / `m` |
|
||||
| `NAILONG_MODEL1_YOLOX_SIZE` | 否 | `None` | 针对模型 1,自定义模型输入可能会有尺寸更改 |
|
||||
| `NAILONG_MODEL1_SCORE` | 否 | `{"nailong": 0.5}` | 模型 1 置信度阈值,范围 `0` ~ `1`,可以根据标签自定义对应值,设置对应标签的阈值以检测该标签,设为 `null` 或者不填可以忽略该标签 |
|
||||
| **杂项配置** | | | |
|
||||
| `NAILONG_GITHUB_TOKEN` | 否 | `None` | GitHub Access Token,遇到模型下载或更新问题时可尝试填写 |
|
||||
| 配置项 | 必填 | 默认值 | 说明 |
|
||||
| :-------------------------: | :--: | :--------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|
||||
| **全局配置** | | | |
|
||||
| `PROXY` | 否 | `None` | 下载模型等文件时使用的代理地址 |
|
||||
| **响应配置** | | | |
|
||||
| `NAILONG_BYPASS_SUPERUSER` | 否 | `True` | 是否不检查超级用户发送的图片 |
|
||||
| `NAILONG_BYPASS_ADMIN` | 否 | `True` | 是否不检查群组管理员发送的图片 |
|
||||
| `NAILONG_NEED_ADMIN` | 否 | `False` | 当自身不为群组管理员时是否不检查群内所有图片 |
|
||||
| `NAILONG_LIST_SCENES` | 否 | `[]` | 聊天场景 ID 黑白名单列表<br />在单级聊天下为该聊天 ID,如 QQ 群号;<br />在多级聊天下为以 `_` 分割的各级聊天 ID,如频道下的子频道或频道下私聊 |
|
||||
| `NAILONG_BLACKLIST` | 否 | `True` | 是否使用黑名单模式 |
|
||||
| `NAILONG_USER_BLACKLIST` | 否 | `[]` | 用户 ID 黑名单列表 |
|
||||
| `NAILONG_PRIORITY` | 否 | `100` | Matcher 优先级 |
|
||||
| **行为配置** | | | |
|
||||
| `NAILONG_RECALL` | 否 | `True` | 是否撤回消息 |
|
||||
| `NAILONG_MUTE_SECONDS` | 否 | `0` | 设置禁言时间,默认为 0 即不禁言<br/>单位:秒 |
|
||||
| `NAILONG_TIP` | 否 | `{"nailong": "本群禁止发奶龙!"}` | 发送的提示,使用 [Alconna 的消息模板](https://nonebot.dev/docs/best-practice/alconna/uniseg#%E4%BD%BF%E7%94%A8%E6%B6%88%E6%81%AF%E6%A8%A1%E6%9D%BF),可用变量见下,可以根据标签自定义对应值,如遇其中没有的标签会回退到 `nailong` |
|
||||
| `NAILONG_FAILED_TIP` | 否 | `{"nailong": "{:Reply($message_id)}呜,不要发奶龙了嘛 🥺 👉👈"}` | 撤回失败或禁用撤回时发送的提示,同上 |
|
||||
| `NAILONG_CHECK_ALL_FRAMES` | 否 | `False` | 使用模型 1 时是否检查图片中的所有帧,启用该项后消息模板中的 `$checked_result` 变量当原图为动图时会变为动图 |
|
||||
| **模型通用配置** | | | |
|
||||
| `NAILONG_MODEL_DIR` | 否 | `./data/nailongremove` | 模型的下载位置 |
|
||||
| `NAILONG_MODEL` | 否 | `1` | 选择需要加载的模型,可用模型见下 |
|
||||
| `NAILONG_AUTO_UPDATE_MODEL` | 否 | `True` | 是否自动更新模型 |
|
||||
| `NAILONG_CONCURRENCY` | 否 | `1` | 当图片为动图时,针对该图片并发识别图片帧的最大并发数 |
|
||||
| `NAILONG_ONNX_PROVIDERS` | 否 | `["CPUExecutionProvider"]` | 加载 onnx 模型使用的 provider 列表,请参考上方安装文档 |
|
||||
| **模型 1 特定配置** | | | |
|
||||
| `NAILONG_MODEL1_TYPE` | 否 | `tiny` | 模型 1 使用的模型类型,可用 `tiny` / `m` |
|
||||
| `NAILONG_MODEL1_YOLOX_SIZE` | 否 | `None` | 针对模型 1,自定义模型输入可能会有尺寸更改 |
|
||||
| `NAILONG_MODEL1_SCORE` | 否 | `{"nailong": 0.5}` | 模型 1 置信度阈值,范围 `0` ~ `1`,可以根据标签自定义对应值,设置对应标签的阈值以检测该标签,设为 `null` 或者不填可以忽略该标签 |
|
||||
| **杂项配置** | | | |
|
||||
| `NAILONG_GITHUB_TOKEN` | 否 | `None` | GitHub Access Token,遇到模型下载或更新问题时可尝试填写 |
|
||||
|
||||
### 可用模型
|
||||
|
||||
@ -190,6 +190,11 @@ plugins = [
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### 2.3.1
|
||||
|
||||
- 修改插件依赖以避免一些问题,影响了安装过程,请查看安装文档了解
|
||||
- 对应配置项修改:删除配置项 `NAILONG_ONNX_TRY_TO_USE_GPU`,添加配置项 `NAILONG_ONNX_PROVIDERS`
|
||||
|
||||
### 2.3.0
|
||||
|
||||
- 支持了检查 GIF 中的所有帧并将结果重新封成 GIF,默认禁用,同时弃用 `$checked_image` 变量,新增 `$checked_result` 变量
|
||||
|
||||
|
Before Width: | Height: | Size: 443 KiB After Width: | Height: | Size: 443 KiB |
|
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
|
Before Width: | Height: | Size: 393 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 376 KiB |
|
Before Width: | Height: | Size: 348 KiB After Width: | Height: | Size: 348 KiB |
@ -16,27 +16,27 @@
|
||||
>
|
||||
> 基于 Anaconda 虚拟环境可以参考:[nailongremove 部署教程](https://y0b8o2qjszv.feishu.cn/docx/GJ7ndJU2Aod6jtxpukXcA6etnyb)
|
||||
|
||||
### Windows
|
||||
### 1.1. Windows
|
||||
|
||||
访问 Python 官网 <https://www.python.org>,鼠标移到 Downloads 上,之后点击 All Releases
|
||||
|
||||

|
||||

|
||||
|
||||
之后向下滚动到 Looking for a specific release 下寻找要下载的版本
|
||||
|
||||
在上张图片中可以看到当前最新的 Python 版本为 3.13.0,所以我们寻找最新的 3.12 版本下载
|
||||
|
||||

|
||||

|
||||
|
||||
点进去之后向下滚找到 Windows installer (64-bit) 下载(现在的电脑一般是 X86 架构 CPU 加 64 位操作系统,如果是其他架构请自行下载对应架构的安装包)
|
||||
|
||||

|
||||

|
||||
|
||||
下载完成后打开安装包<small>(忽略这个是 3.11 版的安装界面)</small>,**一定要记得勾选 Add python.exe to PATH!!!** 然后直接点击 Install Now 安装即可
|
||||
|
||||
如果要更改安装路径可以选择 Customize Installation 后自行更改后继续安装,注意安装路径最好不要有中文
|
||||
|
||||

|
||||

|
||||
|
||||
打开终端(Win + R 输入 `powershell` 回车),输入以下内容回车验证 Python 是否安装成功
|
||||
|
||||
@ -44,9 +44,9 @@
|
||||
python -V
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
### Linux
|
||||
### 1.2. Linux
|
||||
|
||||
在 Linux 环境下我们使用 [pyenv](https://github.com/pyenv/pyenv) 来管理系统中的 Python
|
||||
|
||||
@ -76,11 +76,11 @@ source ~/.bashrc
|
||||
pyenv -v
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
按照 [Wiki 中 Suggested build environment 部分](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) 根据你所使用的发行版安装好所需依赖,如下面是 Ubuntu / Debian / Linux Mint 发行版所需执行的命令
|
||||
|
||||

|
||||

|
||||
|
||||
装好依赖后开始安装 Python,执行下面的命令安装 Python 3.12
|
||||
|
||||
@ -101,7 +101,7 @@ python -V
|
||||
```
|
||||
|
||||
<small>(忽略这里的 Python 版本为 3.11)</small>
|
||||

|
||||

|
||||
|
||||
## 2. 部署 NoneBot
|
||||
|
||||
@ -111,7 +111,7 @@ python -V
|
||||
|
||||
Windows 用户在资源管理器中单击地址栏后输入 `powershell` 回车即可打开命令行<small>(忽略我输入的是 pwsh)</small>,如图
|
||||
|
||||

|
||||

|
||||
|
||||
首先安装 `nb-cli` 与 `nb-cli-plugin-bootstrap`,输入以下命令回车
|
||||
|
||||
@ -130,7 +130,7 @@ nb bs
|
||||
选择适配器时,使用键盘上下键将左侧箭头指向 OneBot V11 适配器(如果你要对接野生 QQ 机器人),之后 **按一下空格** 选中该适配器
|
||||
**这步一定要记得按空格选中你要安装的适配器!!!选中后左侧圆圈会变成实心,该项也会亮起,请注意区分!!**
|
||||
|
||||

|
||||

|
||||
|
||||
剩余选项根据你的喜好填写即可,如果不想自定义可以一直回车使用默认设置
|
||||
建议修改一下端口号避免由于端口被占用导致 NoneBot 无法启动
|
||||
@ -140,7 +140,7 @@ nb bs
|
||||
|
||||
安装完成后如图
|
||||
|
||||

|
||||

|
||||
|
||||
## 3. 安装插件
|
||||
|
||||
@ -159,17 +159,51 @@ nb plugin install nonebot-plugin-nailongremove
|
||||
|
||||
安装过程如图
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
如果想要使用模型 0,按照下面的操作来安装额外依赖
|
||||
## 4. 模型相关配置
|
||||
|
||||
先进入虚拟环境,进入虚拟环境后命令行左侧应该会多出来你虚拟环境的名字
|
||||
接上一节,先进入虚拟环境,进入虚拟环境后命令行左侧应该会多出来你虚拟环境的名字
|
||||
|
||||
```shell
|
||||
nb sh
|
||||
```
|
||||
|
||||
接下来介绍安装完插件后要使用对应模型所需要额外做的一些操作
|
||||
|
||||
### 4.1. 模型 1(默认)
|
||||
|
||||
如果想要使用默认的模型 1,为了避免一些问题,onnxruntime 没有包括在插件配置里自动安装,你需要手动安装
|
||||
|
||||
#### CPU 运行
|
||||
|
||||
直接运行下面命令安装 `onnxruntime` 即可
|
||||
|
||||
```shell
|
||||
pip install onnxruntime
|
||||
```
|
||||
|
||||
#### GPU 运行
|
||||
|
||||
首先安装 `onnxruntime-gpu`
|
||||
|
||||
```shell
|
||||
pip install onnxruntime-gpu
|
||||
```
|
||||
|
||||
检查你安装的 `onnxruntime-gpu` 版本,对照 [这里](https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements) 检查你安装的版本需要的 CUDA 和 cuDNN 版本,如果没有安装则需要自行安装(教程待补充)
|
||||
|
||||
最后更改插件配置项,让 `onnxruntime` 使用 CUDA 运行([NoneBot 配置简单介绍看这里](#71-修改插件配置项))
|
||||
|
||||
```properties
|
||||
NAILONG_ONNX_PROVIDERS=["CUDAExecutionProvider"]
|
||||
```
|
||||
|
||||
### 4.2. 模型 0
|
||||
|
||||
如果想要使用模型 0,按照下面的操作来安装额外依赖
|
||||
|
||||
再安装额外依赖
|
||||
|
||||
```shell
|
||||
@ -178,10 +212,10 @@ pip install "nonebot-plugin-nailongremove[model0]"
|
||||
|
||||
安装过程如图
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 4. 启动 NoneBot
|
||||
## 5. 启动 NoneBot
|
||||
|
||||
在命令行中输入以下命令并回车启动 NoneBot
|
||||
|
||||
@ -196,15 +230,15 @@ Linux 下也可以使用 `./#run.sh`
|
||||
|
||||
启动完成并且没问题的话,应该像下面这样,没有任何报错
|
||||
|
||||

|
||||

|
||||
|
||||
## 5. 配置野生 QQ 机器人协议端连接 NoneBot
|
||||
## 6. 配置野生 QQ 机器人协议端连接 NoneBot
|
||||
|
||||
如果你想对接其他聊天平台(在第二步时安装了其他的适配器),请略过这节并自行查看对应平台适配器的文档,见 [适配器商店](https://nonebot.dev/store/adapters)
|
||||
|
||||
请在以下协议实现中选择**其中一个**你心仪的开始使用即可
|
||||
|
||||
### Lagrange.OneBot
|
||||
### 6.1. Lagrange.OneBot
|
||||
|
||||
下载安装步骤参见 [NoneBotX 社区文档](https://x.none.bot/before/install_lagrange)
|
||||
|
||||
@ -242,7 +276,7 @@ Linux 下也可以使用 `./#run.sh`
|
||||
}
|
||||
```
|
||||
|
||||
### NapCat
|
||||
### 6.2. NapCat
|
||||
|
||||
基于 QQNT 本体的协议实现,需要安装 QQNT 客户端,但可以以无头(无图形界面)方式启动
|
||||
|
||||
@ -261,9 +295,9 @@ Linux 下也可以使用 `./#run.sh`
|
||||
}
|
||||
```
|
||||
|
||||
## 6. 后续
|
||||
## 7. 后续
|
||||
|
||||
### 修改插件配置项
|
||||
### 7.1. 修改插件配置项
|
||||
|
||||
参考 [NoneBot 文档 DotEnv 配置 一节](https://nonebot.dev/docs/appendices/config#dotenv-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) 的文件格式,修改 `.env.prod` 文件即可
|
||||
|
||||
@ -273,7 +307,7 @@ Linux 下也可以使用 `./#run.sh`
|
||||
NAILONG_MODEL=1
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
多行配置项例子:
|
||||
|
||||
@ -292,9 +326,9 @@ NAILONG_TIP='
|
||||
'
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
### 更新插件
|
||||
### 7.2. 更新插件
|
||||
|
||||
在 Bot 项目目录下打开命令行,之后执行下面命令即可
|
||||
|
||||
@ -302,6 +336,6 @@ NAILONG_TIP='
|
||||
nb plugin update nonebot-plugin-nailongremove
|
||||
```
|
||||
|
||||
### 常见问题
|
||||
### 7.3. 常见问题
|
||||
|
||||
常见问题请跳转至 [issues](https://github.com/Refound-445/nonebot-plugin-nailongremove/issues?q=is%3Aissue+is%3Aclosed)
|
||||
|
||||
@ -54,7 +54,7 @@ class Config(BaseModel):
|
||||
nailong_model: ModelType = ModelType.TARGET_DETECTION
|
||||
nailong_auto_update_model: bool = True
|
||||
nailong_concurrency: int = 1
|
||||
nailong_onnx_try_to_use_gpu: bool = True
|
||||
nailong_onnx_providers: List[str] = ["CPUExecutionProvider"]
|
||||
|
||||
nailong_model1_type: Model1Type = Model1Type.TINY
|
||||
nailong_model1_yolox_size: Optional[Tuple[int, int]] = None
|
||||
@ -71,9 +71,7 @@ class Config(BaseModel):
|
||||
mode="before",
|
||||
)
|
||||
def transform_to_dict(cls, v: Any): # noqa: N805
|
||||
if not isinstance(v, dict):
|
||||
return {DEFAULT_LABEL: v}
|
||||
return v
|
||||
return v if isinstance(v, dict) else {DEFAULT_LABEL: v}
|
||||
|
||||
@field_validator(
|
||||
"nailong_tip",
|
||||
@ -86,5 +84,21 @@ class Config(BaseModel):
|
||||
raise ValueError(f"Please ensure default label {DEFAULT_LABEL} in dict")
|
||||
return v
|
||||
|
||||
@field_validator("nailong_onnx_provider_type", mode="before")
|
||||
def transform_to_list(cls, v: Any): # noqa: N805
|
||||
return v if isinstance(v, list) else [v]
|
||||
|
||||
@field_validator("nailong_onnx_provider_type", mode="after")
|
||||
def validate_provider_available(cls, v: Any): # noqa: N805
|
||||
try:
|
||||
from onnxruntime.capi import _pybind_state as c
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
available_providers: List[str] = c.get_available_providers() # type: ignore
|
||||
if any(p not in available_providers for p in v):
|
||||
raise ValueError(f"Provider {v} not available in onnxruntime")
|
||||
return v
|
||||
|
||||
|
||||
config = get_plugin_config(Config)
|
||||
|
||||
@ -22,7 +22,17 @@ if config.nailong_model is ModelType.CLASSIFICATION:
|
||||
raise_extra_import_error(e, "model0")
|
||||
|
||||
elif config.nailong_model is ModelType.TARGET_DETECTION:
|
||||
from .target_detection import check as check
|
||||
try:
|
||||
from .target_detection import check as check
|
||||
except ImportError as e:
|
||||
raise ImportError(
|
||||
"To avoid dependency issues, please install onnxruntime manually.\n"
|
||||
"If you have a compatible GPU, "
|
||||
"please run `pip install onnxruntime-gpu` in your project's environment, "
|
||||
"then edit plugin's `NAILONG_ONNX_PROVIDERS` config to use it;\n"
|
||||
"Otherwise run `pip install onnxruntime` in your project's environment "
|
||||
"and use CPU to compute.",
|
||||
) from e
|
||||
|
||||
else:
|
||||
raise ValueError("Invalid model type")
|
||||
raise NotImplementedError # never reach here
|
||||
|
||||
@ -3,8 +3,11 @@ from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
from typing_extensions import override
|
||||
|
||||
# import torch before onnxruntime
|
||||
import torch as torch # isort: skip
|
||||
import onnxruntime # isort: skip
|
||||
|
||||
import numpy as np
|
||||
import onnxruntime
|
||||
from cookit import with_semaphore
|
||||
from nonebot.utils import run_sync
|
||||
|
||||
@ -44,15 +47,7 @@ labels = labels_path.read_text("u8").splitlines()
|
||||
|
||||
session = onnxruntime.InferenceSession(
|
||||
model_path,
|
||||
providers=(
|
||||
[
|
||||
"TensorrtExecutionProvider",
|
||||
"CUDAExecutionProvider",
|
||||
"CPUExecutionProvider",
|
||||
]
|
||||
if config.nailong_onnx_try_to_use_gpu
|
||||
else ["CPUExecutionProvider"]
|
||||
),
|
||||
providers=config.nailong_onnx_providers,
|
||||
)
|
||||
input_shape = config.nailong_model1_yolox_size or config.nailong_model1_type.yolox_size
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ dynamic = ["version"]
|
||||
description = "识别目标并撤回图片插件"
|
||||
authors = [
|
||||
{ name = "445", email = "2877834692@qq.com" },
|
||||
{ name = "student_2333", email = "lgc2333@126.com" }
|
||||
{ name = "student_2333", email = "lgc2333@126.com" },
|
||||
]
|
||||
requires-python = "<4.0,>=3.9"
|
||||
dependencies = [
|
||||
@ -20,9 +20,7 @@ dependencies = [
|
||||
"githubkit>=0.11.14",
|
||||
"yarl>=1.17.1",
|
||||
"tqdm>=4.66.6",
|
||||
# model1
|
||||
"onnxruntime>=1.19.2",
|
||||
"onnxruntime-gpu>=1.19.2"
|
||||
"torch>=2.4",
|
||||
]
|
||||
license = { text = "MIT" }
|
||||
readme = "README.md"
|
||||
@ -33,9 +31,8 @@ homepage = "https://github.com/Refound-445/nonebot-plugin-nailongremove"
|
||||
repository = "https://github.com/Refound-445/nonebot-plugin-nailongremove"
|
||||
|
||||
[project.optional-dependencies]
|
||||
model0 = ["torch>=2.4", "torchvision>=0.19"]
|
||||
model1 = []
|
||||
all = ["nonebot-plugin-nailongremove[model0,model1]"]
|
||||
model0 = ["torchvision>=0.19"]
|
||||
all = ["model0"]
|
||||
|
||||
[build-system]
|
||||
requires = ["pdm-backend"]
|
||||
|
||||