🖼️ 动漫/Gal/二游图片识别插件
🎯 功能特色
✨ 智能图片识别: 基于 AnimeTrace,识别动漫、GalGame、二次元游戏角色
💡 智能优化策略: URL优先识别,失败自动回退到图片下载识别
🛡️ 完善的错误处理: 30秒超时保护,异常捕获,优雅降级
📝 引用消息支持: 可以识别引用消息中的图片
🎨 美观的结果展示: 清晰的格式化输出,支持多结果显示
🖼️ 角色图片返回: 可选按识别框裁剪角色区域,并发送多张角色图片
🆕 智能头像识别: 支持@用户、手动输入QQ号、自动识别自己头像
⚙️ 可配置化: 支持自定义超时时间、提示文字、Markdown 输出以及是否发送角色图片
📋 识别模型说明
| 🎌 命令 | 🎯 识别类型 | 🔧 模型 | 💡 适用场景 |
|---|---|---|---|
动漫识别 |
动漫角色识别 | pre_stable | 日本动漫角色 |
gal识别 |
GalGame角色识别 | full_game_model_kira | galgame角色 |
通用识别 |
综合二次元识别 | animetrace_high_beta | 动画和galgame角色 |
头像动漫识别 |
QQ头像动漫识别 | pre_stable | 识别QQ用户头像 |
头像gal识别 |
QQ头像Gal识别 | full_game_model_kira | 识别QQ用户头像 |
头像识别 |
QQ头像通用识别 | animetrace_high_beta | 识别QQ用户头像 |
🚀 使用方式
方式1: 直接识别(推荐)
图片和指令一起发送:
[图片] + 通用识别
方式2: 等待模式
先发送识别命令,在发送图片:
通用识别
📷 请发送要识别的图片(30秒内有效)
[图片]
方式3: 引用识别
引用包含图片的消息并发送识别命令:
[引用消息包含图片] + 通用识别
方式4: QQ头像识别 🆕
支持多种智能方式识别QQ头像:
🎯 @用户识别
@目标用户 头像动漫识别
@目标用户 头像gal识别
@目标用户 头像识别
🆕 手动输入QQ号识别
头像识别 123456789
头像动漫识别 987654321
头像gal识别 555666777
🤖 智能自我识别
头像识别
头像动漫识别
头像gal识别
💡 智能行为:
- @目标用户: 识别指定用户的头像
- 手动输入QQ号: 识别指定QQ号的头像
- 不@任何人: 自动识别发送者自己的头像
⚠️ 注意:
- 正确示例:
@小明 头像gal识别(识别小明的头像) - 手动示例:
头像识别 123456789(识别QQ号123456789的头像) - 智能示例:
头像识别(识别自己的头像)
💡 说明: 使用QQ头像接口 https://q.qlogo.cn/headimg_dl?dst_uin=QQ号&spec=640 获取高清头像进行识别
🎯 智能识别策略
优先使用URL直接调用API → 失败 → 下载图片转base64调用
- URL方式: 更快速高效,减少网络传输
- Base64方式: 兼容性更好,作为回退方案
🛡️ 完善的错误处理
- ⏰ 超时保护: 30秒等待期限,防止无限等待(支持自定义配置)
- 🔄 自动重试: URL识别失败自动回退到base64方式
- 💥 异常捕获: 所有API调用都有try-except保护
- 📝 适度日志: 保留关键错误与核心流程日志,去除多余debug输出,避免刷屏
⚙️ 配置选项
通过 _conf_schema.json 文件支持以下配置:
- 超时时间: 自定义等待用户发送图片的超时时间(默认30秒)
- 提示文字: 自定义提示用户发送图片的文字
- 超时提示: 自定义超时后的提示文字
- 角色图片返回: 是否在文字结果后发送裁剪出的角色图片,以及最多发送几张
🎨 多平台支持
| 🏠 平台 | 🖼️ 直接识别 | 📝 引用识别 | ⏳ 等待模式 |
|---|---|---|---|
| QQ官方机器人 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 个人QQ | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 微信公众号 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| Telegram | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 个人微信 | ❓ 未测试 | ❓ 未测试 | ❓ 未测试 |
✅ 支持 | ❌ 不支持 | ❓ 部分支持/待测试
📋 更新日志
📅 2025年12月2日 - v3.6.0
🐛 Bug 修复
- 修复 AnimeTrace 返回多个角色框时,仅展示第一组角色的异常,现在会按每个角色单独分组展示结果。
✨ 新增功能
- 新增可选的「发送裁剪角色图片」功能,可根据识别结果的 box 裁剪人物区域并发送图片。
- 新增配置项
return_crops(是否发送裁剪图片)与max_crops(每次最多发送的裁剪图片数量)。
🔧 其他改动
- 去除部分无用或过于频繁的 debug 日志,仅保留关键错误与核心流程日志,减少控制台刷屏。
📅 2025年10月10日 - v3.5.0
✨ 新增功能
- Markdown格式支持: 新增
use_markdown配置选项,支持在纯文本和Markdown格式之间切换输出结果 - 配置界面优化: WebUI配置界面更加友好,支持可视化配置markdown开关
🔧 优化改进
- Telegram支持增强: 移除Telegram引用消息图片识别的限制,现在完美支持识别Telegram引用消息中的图片
- 代码结构优化: 重构结果格式化逻辑,支持多种输出格式
📝 配置更新
- 新增配置项
use_markdown(布尔值,默认: true) - 支持在WebUI中直接切换输出格式
- 保持向下兼容,不影响现有用户配置
🔧 配置说明
插件支持通过 _conf_schema.json 文件进行配置,主要配置项包括:
| 配置项 | 说明 | 默认值 | 建议范围 |
|---|---|---|---|
timeout_seconds |
等待用户发送图片的超时时间 | 30 | 20-60秒 |
prompt_send_image |
提示用户发送图片的文字 | "📷 请发送要识别的图片(30秒内有效)" | 支持emoji |
prompt_timeout |
用户超时后的提示文字 | "⏰ 识别请求已超时,请重新发送命令" | 支持emoji |
use_markdown |
是否使用 Markdown 格式输出结果 | true | true/false |
return_crops |
是否在文字结果后发送裁剪出的角色图片 | true | true/false |
max_crops |
每次识别最多发送的裁剪图片数量 | 5 | 建议5 |
💡 配置示例
你可以根据需要自定义提示文字,比如:
- 将超时时间设置为45秒,给用户提供更充足的时间
- 将提示文字改为更友好的表达,如"请发送图片,我会帮你识别动漫角色~"
- 将超时提示改为"时间到了呢,请重新发送识别命令吧~"
🤝 贡献与支持
- 💡 功能建议: 不欢迎提出新功能建议,自己让ai加
- 🐛 问题反馈: 遇到问题请询问ai
- ⭐ 项目支持: 不要给项目点个Star,ai写的
🎨 让每一张二次元图片都能找到它的归属 🎨
Powered by AnimeTrace API | Made with ❤️ for AstrBot