国内要用gpt-image-2生图必用代理站。Hermes原生的 OpenAI provider 又不能自定义 base_url没办法只能自己手搓一个。起因最近在用 Hermes Agent 搭建自动化内容生产系统需要图片生成能力。Hermes 自带了 OpenAI 的 image gen provider但有一个硬伤 ——base_url是写死的只能走https://api.openai.com/v1。国内无法直连 OpenAI必须走代理站。但Hermes原生的 openai 插件不能改 base_url花银子充代理站在Hermes Agent里也不能用 gpt-image-2 生图。方案Hermes 的插件体系支持通过ctx.register_image_gen_provider()注册自定义的 image gen provider。插件的核心是一个继承ImageGenProvider的类实现generate()方法即可。我需要的是一个可配 base_url 的 OpenAI 标准 Images API 适配器需求解法支持任意代理站从 config.yaml 读取 base_url任意分辨率检测到 “WxH” 格式直接使用图生图本地路径自动转 base64 Data URI实现插件结构很简单两个文件image_gen/gpt-image-2/ ├── plugin.yaml # 元数据 └── __init__.py # 核心代码plugin.yamlname:gpt-image-2version:1.0.0description:Generic OpenAI-compatible image generation providerkind:backend配置读取配置走三层优先级config.yaml 环境变量 默认值。def_resolve_api_key()-Optional[str]:cfg_load_config()rawcfg.get(api_key)ifisinstance(raw,str)andraw.strip():returnraw.strip()envos.environ.get(GPT_IMAGE_2_API_KEY,).strip()ifenv:returnenvreturnNonebase_url 同理没有硬编码完全由外部配置决定。自定义尺寸原生 openai 插件只认landscape / portrait / square三个预设。我加了一步检测如果aspect_ratio包含x直接当分辨率传。aspect_inputaspect_ratioorsquareifxinaspect_input.strip().lower():sizeaspect_input.strip().lower()# 如 1920x1080else:size_SIZE_MAP.get(aspect_input,1024x1024)# 走预设映射图生图与本地文件支持图生图的核心是把image_url传给 API。但如果传的是本地路径API 不认。解决方案自动转 Data URI。ifimage_urlandnotimage_url.startswith((http://,https://,data:)):pPath(image_url)ifp.exists():b64base64.b64encode(p.read_bytes()).decode(ascii)extp.suffix.lstrip(.).lower()orpngimage_urlfdata:image/{ext};base64,{b64}参考图reference_image_urls也是同样的处理逻辑。完整请求payload{model:model_id,prompt:prompt,size:size,n:1,}ifimage_url:payload[image]image_urlifref_images:payload[reference_images]ref_images resprequests.post(f{base_url}/images/generations,headersheaders,jsonpayload,timeout300)使用方式配置image_gen:provider:gpt-image-2gpt-image-2:api_key:sk-xxxbase_url:https://你的代理站.com/v1model:gpt-image-2或者用hermes tools配环境变量。文生图# Agent 调用image_generate(prompt一只猫,aspect_ratiolandscape)图生图风格转换image_generate(prompt改成赛博朋克风格,image_url/path/to/source.png)自定义分辨率image_generate(prompt高清城市天际线,aspect_ratio1920x1080)验证实际测试结果文生图一次通过图生图本地文件路径自动转 Data URIAPI 正常返回自定义分辨率传1920x1080正确生成对应尺寸图片切换代理站改base_url即可不改代码收尾说到底就一件事原生 OpenAI provider 不能自定义 base_url。一个插件把 OpenAI 协议、可配 base_url、自定义尺寸、图生图凑齐了300 行代码搞定。山不转路转路不转我转。API 不转我就转插件。项目地址https://github.com/xing006/hermes-image_gen-plugin