来提交你的插件吧!
有疑问?来看看呗!

插件详情

textToImg

修改自 薄暝(二创)和喵喵的 OpenRouter 生图插件(原创)。使用 OpenAI 格式的免费 API 生成图片兼容硅基流动生图

图片生成
硅基流动
openAi
openrouter
版本v1.91
作者hugh
Star1
更新2025/12/10

插件说明

AstrBot OpenAI 兼容 硅基流动 图像生成插件

插件根据 薄暝的插件修改算三创
原创作者 喵喵 提供了硅基的函数调用
本人只会复制粘贴,当前代码会进行简单测试

修改内容

插件市场看到原作者插件,但是不会写代码,后面看到二创,但是OpenRouter 现在基本没有免费的model,硅基市场不管是免费也好收费(拉新费用还没用完)也好,对国内用户还是简单的

刚好看到原作者issues也有人要用硅基,就简单修改了下调用参数只添加了图片大小设置,别的参数都是默认有需要的可以自己添加,ttp.py 405行和413行 的 payload 添加就行,请确保参数有效性。最好写死

理论上支持硅基所有的生图

  • image_size: 配置项添加生成图片大小设置,可以看下图硅基对于尺寸生效设置

  • generate_image: utils>ttp.py 对这个函数简单修改了下,添加image_size和max_retries参数 图片大小和重试,对应配置项填写数据,默认1024x1024和3

    对比 generate_image_openrouter 这个函数 原本是默认10次重试。修改为获取配置次数
    generate_image 本身是没有设计多 apiKey 循环的 ,我也复制不明白,就直接使用了配置项 openrouter_api_keys 第一个key作为调用的key
    硅基的 参考图 参数是 image image2 image3 来设置的, main.py 中 input_images 是 _generate_image 函数获取消息流中的base64来组成的一个数组,目前我只设置了一个image取数组中的第一个图来参考,未设置多图参考

  • _generate_image: 二创插件中生成图片的函数,二创中几个指令都是调用这个来生成,所以只要修改这个参数调用就可以实现想要的效果,引入了原创作者的generate_image

    原逻辑直接调用默认的 generate_image_openrouter 生成图片, 新逻辑 根据配置 custom_api_base 自定义api 来判断,写入只要含有 siliconflow 字符串直接调用硅基的生图api,不是直接原逻辑,不知道代码怎么写多写了一层逻辑,不影响使用

硅基流动参数一览

简单测试

测试了 /aiimg 画一个猫

案列

测试了 /aiimg 根据下面图生成一个猫 {图片}

案列

  • 其余无测试

其余无任何修改

AstrBot 图像生成插件,默认使用 Google Gemini 2.5 Flash 模型免费生成高质量图像。

功能特点

  • 🎨 图像生成: 使用 openai 格式模型
  • 🔧 自定义模型支持: 可配置使用任何支持 openai 格式平台支持的图像生成模型
  • ️ 参考图片支持: 支持基于用户提供的图片进行生成或修改
  • 🔑 多 API 密钥支持: 支持配置多个 API 密钥,自动轮换避免额度耗尽
  • ♻️ 智能重试机制: 支持可配置的自动重试,提高请求成功率和稳定性
  • 🚀 异步处理: 基于 asyncio 的高性能异步图像生成
  • 🔗 智能文件传输: 支持本地和远程服务器的文件传输
  • 🧹 自动清理: 自动清理超过 15 分钟的历史图像文件
  • 🛡️ 错误处理: 完善的异常处理和错误提示
  • 🌐 多语言支持: 自动将中文提示词翻译为英文

安装配置

1. 获取 API Key

2. 配置参数

通过 Web 界面配置(推荐)

  1. 访问 AstrBot 的 Web 管理界面
  2. 进入"插件管理"页面
  3. 找到"openai-image-command"插件
  4. 点击"配置"按钮进行可视化配置

配置参数说明

  • openrouter_api_keys: API 密钥列表(支持多个密钥自动轮换)
  • model_name: 使用的模型名称(默认:google/gemini-2.5-flash-image-preview:free)
  • max_retry_attempts: 每个 API 密钥的最大重试次数(默认:3 次,推荐 2-5 次)
  • custom_api_base: 自定义 API Base URL(可选,没有特殊需求别填)
  • nap_server_address: NAP cat 服务地址(同服务器填写 localhost)
  • nap_server_port: 文件传输端口(默认 3658)
  • calls_per_minute_per_group:用于限制同一 QQ 群在一分钟内触发 /aiimg 和 /aiimg 手办化 的次数,避免刷屏。

使用方法

/aiimg 命令调用

/aiimg 帮助 获取帮助
/aiimg <描述> 根据文字描述生成图像,支持参考图片
/aiimg 手办化 将参考图片转换为手办风格(模版 1)
/aiimg 手办化 2 将参考图片转换为手办风格(模版 2)

智能重试机制

插件内置了双层重试机制,提高图像生成的成功率:

重试策略

  • API 密钥轮换: 当一个 API 密钥失败时,自动切换到下一个可用密钥
  • 单密钥重试: 对每个 API 密钥都会进行用户配置次数的重试
  • 智能错误分类: 额度/速率限制错误直接切换密钥,网络/临时错误进行重试
  • 指数退避: 重试间隔 2 秒 →4 秒 →8 秒,最大 10 秒

总重试次数计算

总重试次数 = API密钥数量 × max_retry_attempts

例如:3 个 API 密钥,每个重试 3 次 = 最多 9 次尝试

使用场景

插件支持以下使用场景:

  • 纯文本生成图像: 直接通过文字描述生成图片
  • 基于参考图片生成/修改: 上传图片后,可以基于该图片进行修改或生成新图片
  • 智能参考控制: 插件会自动判断是否使用参考图片

技术实现

核心组件

  • main.py: 插件主要逻辑,继承自 AstrBot 的 Star 类
  • utils/ttp.py: API 调用和图像处理逻辑
  • utils/file_send_server.py: 文件传输服务器通信

工作流程

  1. 接收用户的图像生成请求和可选的参考图片
  2. 根据 use_reference_images 参数决定是否使用参考图片
  3. 构建多模态请求消息(文本+图片)发送到服务器
  4. 调用用户选择的模型进行图像生成或修改
  5. 解析返回的 base64 图像数据
  6. 自动清理超过 15 分钟的历史图像文件
  7. 保存新生成的图像到本地文件系统
  8. 通过文件传输服务发送图像(如需要)
  9. 返回图像链到聊天

支持的模型

插件支持配置任何 openai 格式平台上可用的图像生成模型,包括但不限于:

  • google/gemini-2.5-flash-image-preview:free(默认免费模型)
  • google/gemini-2.0-flash-exp:free
  • openai/gpt-4o
  • anthropic/claude-3.5-sonnet
  • 其他支持图像生成的生图模型

您可以在插件的配置文件中的 model_name 字段指定要使用的模型。

文件结构

AstrBot_plugin_gemini2.5image-openrouter/
├── main.py                 # 插件主文件
├── metadata.yaml          # 插件元数据
├── _conf_schema.json      # 配置模式定义
├── utils/
│   ├── ttp.py            # OpenRouter API 调用
│   └── file_send_server.py # 文件传输工具
├── images/               # 生成的图像存储目录
├── LICENSE              # 许可证文件
└── README.md           # 项目说明文档

错误处理

插件包含完善的错误处理机制:

  • API 调用失败处理: 详细的 API 错误信息记录
  • Base64 图像解码错误处理: 自动检测和修复格式问题
  • 参考图片处理异常捕获: 当参考图片转换失败时的回退机制
  • 文件传输异常捕获: 网络传输失败时的错误提示
  • 自动清理失败处理: 清理历史文件时的异常保护
  • 详细的错误日志输出: 便于调试和问题定位

版本信息

  • 当前版本: v1.8
  • 更新内容:
    • ✨ 新增智能重试机制,支持用户可配置的重试次数
    • 🔧 添加 Web 界面可视化配置支持
    • ♻️ 实现双层重试策略(API 密钥轮换+单密钥重试)
    • 📊 改进错误分类和指数退避算法
    • 📝 完善配置文档和使用说明
    • 🐛 新增自定义模型配置功能,支持配置不同的 OpenRouter 模型
    • 🔑 优化 API 密钥管理,支持多个密钥自动轮换
    • 🛡️ 改进错误处理和日志记录
    • 📸 新增参考图片支持功能
    • 🧹 添加自动清理机制
    • 使用 astrbot 命令调用

开发信息

  • 二改作者: 薄暝
  • 原作者: 喵喵
  • 版本: v1.8
  • 许可证: 见 LICENSE 文件
  • 原项目地址: GitHub Repository
  • 现项目地址: GitHub Repository

贡献

欢迎提交 Issue 和 Pull Request 来改进这个插件。
非常感谢原作者喵喵的插件!

许可证

本项目采用开源许可证,详见 LICENSE 文件。

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community