imageforge-mcp 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +212 -50
- package/dist/index.js +12 -8
- package/dist/index.js.map +1 -1
- package/dist/providers.d.ts +11 -1
- package/dist/providers.js +180 -2
- package/dist/providers.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
English | [中文](#中文说明)
|
|
4
4
|
|
|
5
|
-
A lightweight TypeScript MCP server for
|
|
5
|
+
A lightweight TypeScript MCP server for image generation with OpenAI, Zhipu BigModel, and MiniMax, plus OpenAI image editing.
|
|
6
6
|
|
|
7
|
-
- OpenAI text-to-image requests use `POST /v1/images/generations`; Zhipu uses `POST /api/paas/v4/images/generations`.
|
|
7
|
+
- OpenAI text-to-image requests use `POST /v1/images/generations`; Zhipu uses `POST /api/paas/v4/images/generations`; MiniMax uses `POST /v1/image_generation`.
|
|
8
8
|
- OpenAI image editing and reference-image generation use multipart `POST /v1/images/edits`.
|
|
9
9
|
- Generated images are returned as native MCP `image` content blocks and can optionally be saved locally.
|
|
10
10
|
|
|
@@ -12,10 +12,12 @@ A lightweight TypeScript MCP server for generating and editing images with OpenA
|
|
|
12
12
|
|
|
13
13
|
- OpenAI model: `gpt-image-2`
|
|
14
14
|
- Zhipu models: `glm-image`, `cogview-4-250304`, `cogview-4`, `cogview-3-flash`
|
|
15
|
+
- MiniMax models: `image-01`, `image-01-live`
|
|
15
16
|
- MCP tools: `generate_image` and `edit_image`
|
|
16
17
|
- Text-to-image generation
|
|
17
18
|
- Image generation guided by one or more reference images
|
|
18
19
|
- Zhipu text-to-image generation with optional server-side watermark control
|
|
20
|
+
- MiniMax text-to-image and single-subject reference generation
|
|
19
21
|
- Editing one or more existing images
|
|
20
22
|
- Local absolute paths and HTTP(S) URLs as image inputs
|
|
21
23
|
- PNG, JPEG, and WebP input and output
|
|
@@ -27,16 +29,16 @@ A lightweight TypeScript MCP server for generating and editing images with OpenA
|
|
|
27
29
|
|
|
28
30
|
## Provider capability matrix
|
|
29
31
|
|
|
30
|
-
| Capability | OpenAI | Zhipu |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| Text-to-image | Yes | Yes |
|
|
33
|
-
| Reference-image generation | Yes,
|
|
34
|
-
| Image editing | Yes, through `edit_image` | No |
|
|
35
|
-
| Models | `gpt-image-2` | `glm-image`, `cogview-4-250304`, `cogview-4`, `cogview-3-flash` |
|
|
36
|
-
| Quality values | `auto`, `low`, `medium`, `high` | `glm-image`: `auto`, `hd`; other models: `auto`, `standard`, `hd` |
|
|
37
|
-
| `watermark_enabled` | Ignored without error | Forwarded only when explicitly supplied |
|
|
38
|
-
| `output_format` | Sent to the provider | Ignored; MIME
|
|
39
|
-
| Provider response | Base64 image data | Temporary image URL, downloaded immediately
|
|
32
|
+
| Capability | OpenAI | Zhipu | MiniMax |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| Text-to-image | Yes | Yes | Yes |
|
|
35
|
+
| Reference-image generation | Yes, 1–16 images | No; fails before reading files or sending a request | Yes, exactly one PNG/JPEG subject reference under 10 MB |
|
|
36
|
+
| Image editing | Yes, through `edit_image` | No | No |
|
|
37
|
+
| Models | `gpt-image-2` | `glm-image`, `cogview-4-250304`, `cogview-4`, `cogview-3-flash` | `image-01`, `image-01-live` |
|
|
38
|
+
| Quality values | `auto`, `low`, `medium`, `high` | `glm-image`: `auto`, `hd`; other models: `auto`, `standard`, `hd` | `auto` only |
|
|
39
|
+
| `watermark_enabled` | Ignored without error | Forwarded only when explicitly supplied | Mapped to `aigc_watermark` when explicitly supplied |
|
|
40
|
+
| `output_format` | Sent to the provider | Ignored; actual MIME is authoritative | JPEG only; other values fail before the request |
|
|
41
|
+
| Provider response | Base64 image data | Temporary image URL, downloaded immediately | Base64 image data |
|
|
40
42
|
|
|
41
43
|
## Zhipu BigModel support
|
|
42
44
|
|
|
@@ -62,6 +64,20 @@ Zhipu returns one temporary image URL. ImageForge downloads it immediately and r
|
|
|
62
64
|
|
|
63
65
|
See the [official Zhipu image generation API](https://docs.bigmodel.cn/api-reference/%E6%A8%A1%E5%9E%8B-api/%E5%9B%BE%E5%83%8F%E7%94%9F%E6%88%90) for current provider-side size, quality, watermark, and account-policy rules.
|
|
64
66
|
|
|
67
|
+
## MiniMax support
|
|
68
|
+
|
|
69
|
+
ImageForge calls `POST /v1/image_generation` with Bearer authentication, requests one Base64 image, and returns the MIME detected from the decoded bytes. It supports `image-01` and `image-01-live`; MiniMax credentials never fall back to OpenAI or Zhipu variables.
|
|
70
|
+
|
|
71
|
+
- `image-01`: `size` becomes explicit `width` and `height`; each must be 512–2048 and divisible by 8, with at least `1024×1024` total pixels.
|
|
72
|
+
- `image-01-live`: `size` is reduced to an exact supported aspect ratio. Unsupported ratios fail before the request.
|
|
73
|
+
- `quality` must be `auto`; the provider has no quality field.
|
|
74
|
+
- Output is JPEG. Omit `output_format` or set it to `jpeg`; `png` and `webp` fail before the request because ImageForge does not transcode images.
|
|
75
|
+
- `reference_images` accepts at most one PNG/JPEG under 10 MB. ImageForge safely loads it and sends a Base64 Data URL as a `character` subject reference.
|
|
76
|
+
- `watermark_enabled` maps to `aigc_watermark` only when explicitly supplied.
|
|
77
|
+
- Paid requests are never retried automatically and are never switched to another provider.
|
|
78
|
+
|
|
79
|
+
See the [official MiniMax image-generation guide](https://platform.minimaxi.com/docs/guides/image-generation) for current provider behavior.
|
|
80
|
+
|
|
65
81
|
## OpenAI-compatible CPA and gateway support
|
|
66
82
|
|
|
67
83
|
ImageForge MCP works with OpenAI and with CPA, relay, or proxy services that implement a compatible OpenAI Images API. This includes deployments based on projects such as **New API**, **CLI Proxy API**, and similar OpenAI-compatible gateways.
|
|
@@ -78,7 +94,7 @@ A gateway that only implements `/v1/images/generations` can be used for text-to-
|
|
|
78
94
|
## Requirements
|
|
79
95
|
|
|
80
96
|
- Node.js 22 or later
|
|
81
|
-
-
|
|
97
|
+
- A credential for the selected provider: OpenAI/gateway, Zhipu, or MiniMax
|
|
82
98
|
|
|
83
99
|
## Install and build
|
|
84
100
|
|
|
@@ -108,7 +124,7 @@ For production use, start the published npm package with `npx`. No repository cl
|
|
|
108
124
|
}
|
|
109
125
|
```
|
|
110
126
|
|
|
111
|
-
`-y` allows `npx` to download or update the package without an interactive install prompt. Pin a specific version when reproducible deployments are required, for example `"imageforge-mcp@0.
|
|
127
|
+
`-y` allows `npx` to download or update the package without an interactive install prompt. Pin a specific version when reproducible deployments are required, for example `"imageforge-mcp@0.5.0"`.
|
|
112
128
|
|
|
113
129
|
For a Zhipu-default MCP server, use an independent credential and provider configuration:
|
|
114
130
|
|
|
@@ -117,7 +133,7 @@ For a Zhipu-default MCP server, use an independent credential and provider confi
|
|
|
117
133
|
"mcpServers": {
|
|
118
134
|
"imageforge-zhipu": {
|
|
119
135
|
"command": "npx",
|
|
120
|
-
"args": ["-y", "imageforge-mcp@0.
|
|
136
|
+
"args": ["-y", "imageforge-mcp@0.5.0"],
|
|
121
137
|
"env": {
|
|
122
138
|
"IMAGEFORGE_PROVIDER": "zhipu",
|
|
123
139
|
"ZHIPU_API_KEY": "your-zhipu-token",
|
|
@@ -130,6 +146,26 @@ For a Zhipu-default MCP server, use an independent credential and provider confi
|
|
|
130
146
|
|
|
131
147
|
`ZHIPU_BASE_URL` is optional and defaults to `https://open.bigmodel.cn/api/paas/v4`. `ZHIPU_IMAGE_MODEL` is optional and defaults to `glm-image`. Zhipu credentials never fall back to OpenAI variables, and OpenAI credentials never fall back to Zhipu variables. A per-call `provider`, `api_key`, `base_url`, or `model` overrides the corresponding environment configuration.
|
|
132
148
|
|
|
149
|
+
For a MiniMax-default server:
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"mcpServers": {
|
|
154
|
+
"imageforge-minimax": {
|
|
155
|
+
"command": "npx",
|
|
156
|
+
"args": ["-y", "imageforge-mcp@0.5.0"],
|
|
157
|
+
"env": {
|
|
158
|
+
"IMAGEFORGE_PROVIDER": "minimax",
|
|
159
|
+
"MINIMAX_API_KEY": "your-minimax-token",
|
|
160
|
+
"MINIMAX_IMAGE_MODEL": "image-01"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
`MINIMAX_BASE_URL` defaults to `https://api.minimaxi.com/v1`; `MINIMAX_IMAGE_MODEL` defaults to `image-01`. MiniMax credentials are isolated from OpenAI and Zhipu credentials.
|
|
168
|
+
|
|
133
169
|
`OPENAI_BASE_URL` is optional. When it is unset, ImageForge MCP uses the official OpenAI endpoint `https://api.openai.com/v1`. Set it only when using New API, CLI Proxy API, or another OpenAI-compatible gateway:
|
|
134
170
|
|
|
135
171
|
```json
|
|
@@ -153,7 +189,7 @@ Create a project-scoped `.codex/config.toml` using paths that match your machine
|
|
|
153
189
|
command = "/absolute/path/to/node"
|
|
154
190
|
args = ["/absolute/path/to/ImageForgeMCP/dist/index.js"]
|
|
155
191
|
cwd = "/absolute/path/to/ImageForgeMCP"
|
|
156
|
-
env_vars = ["OPENAI_API_KEY", "OPENAI_BASE_URL", "OPENAI_IMAGE_MODEL", "ZHIPU_API_KEY", "ZHIPU_BASE_URL", "ZHIPU_IMAGE_MODEL", "IMAGEFORGE_PROVIDER", "IMAGEFORGE_INPUT_CONCURRENCY", "IMAGEFORGE_SKIP_DNS_SAFETY_CHECKS"]
|
|
192
|
+
env_vars = ["OPENAI_API_KEY", "OPENAI_BASE_URL", "OPENAI_IMAGE_MODEL", "ZHIPU_API_KEY", "ZHIPU_BASE_URL", "ZHIPU_IMAGE_MODEL", "MINIMAX_API_KEY", "MINIMAX_BASE_URL", "MINIMAX_IMAGE_MODEL", "IMAGEFORGE_PROVIDER", "IMAGEFORGE_INPUT_CONCURRENCY", "IMAGEFORGE_SKIP_DNS_SAFETY_CHECKS"]
|
|
157
193
|
startup_timeout_sec = 10
|
|
158
194
|
tool_timeout_sec = 300
|
|
159
195
|
enabled = true
|
|
@@ -181,6 +217,8 @@ export ZHIPU_IMAGE_MODEL="glm-image"
|
|
|
181
217
|
# Optional: export ZHIPU_BASE_URL="https://open.bigmodel.cn/api/paas/v4"
|
|
182
218
|
```
|
|
183
219
|
|
|
220
|
+
For MiniMax, export `IMAGEFORGE_PROVIDER=minimax`, `MINIMAX_API_KEY`, and optionally `MINIMAX_IMAGE_MODEL=image-01` or `image-01-live`.
|
|
221
|
+
|
|
184
222
|
Codex loads project-scoped `.codex/config.toml` only for trusted projects. After adding or changing the MCP configuration, restart Codex or open a new task, then use `/mcp verbose` to confirm that `imageforge_dev` exposes:
|
|
185
223
|
|
|
186
224
|
- `generate_image`
|
|
@@ -199,18 +237,18 @@ See the [official Codex MCP documentation](https://developers.openai.com/codex/m
|
|
|
199
237
|
| Parameter | Required | Default | Description |
|
|
200
238
|
| --- | --- | --- | --- |
|
|
201
239
|
| `prompt` | Yes | - | Image description |
|
|
202
|
-
| `model` | No | Environment or provider default | OpenAI: `gpt-image-2`; Zhipu: `
|
|
203
|
-
| `base_url` | No |
|
|
204
|
-
| `api_key` | No |
|
|
205
|
-
| `provider` | No | `IMAGEFORGE_PROVIDER`, then `openai` | `openai` or `
|
|
240
|
+
| `model` | No | Environment or provider default | OpenAI: `gpt-image-2`; Zhipu models above; MiniMax: `image-01`, `image-01-live` |
|
|
241
|
+
| `base_url` | No | Provider environment variable or official default | Per-call provider API base URL override |
|
|
242
|
+
| `api_key` | No | Provider-specific API key | Per-call provider credential override; environment variables are preferred |
|
|
243
|
+
| `provider` | No | `IMAGEFORGE_PROVIDER`, then `openai` | `openai`, `zhipu`, or `minimax` |
|
|
206
244
|
| `size` | No | `1024x1024` | Output size requested from the provider |
|
|
207
|
-
| `quality` | No | `auto` | OpenAI
|
|
208
|
-
| `output_format` | No | `png` | `png
|
|
245
|
+
| `quality` | No | `auto` | OpenAI and Zhipu values above; MiniMax accepts only `auto` |
|
|
246
|
+
| `output_format` | No | `png`; MiniMax: `jpeg` | OpenAI: `png/jpeg/webp`; Zhipu ignores it; MiniMax accepts only `jpeg` |
|
|
209
247
|
| `output_path` | No | - | Local save path; relative paths resolve from the MCP working directory |
|
|
210
|
-
| `watermark_enabled` | No | - | Sent
|
|
211
|
-
| `reference_images` | No | - | OpenAI
|
|
248
|
+
| `watermark_enabled` | No | - | Sent to Zhipu or mapped to MiniMax `aigc_watermark` only when explicitly supplied |
|
|
249
|
+
| `reference_images` | No | - | OpenAI: 1–16; MiniMax: one PNG/JPEG under 10 MB; Zhipu rejects it |
|
|
212
250
|
|
|
213
|
-
|
|
251
|
+
For OpenAI, calls without `reference_images` use `/images/generations`; reference images use multipart `/images/edits`. MiniMax always uses `/image_generation` and maps its single reference to `subject_reference`.
|
|
214
252
|
|
|
215
253
|
Zhipu supports synchronous text-to-image only. It rejects `reference_images` before reading the referenced files or making a request, does not support `edit_image`, and ignores `output_format`. No Authorization header is sent to the image CDN, and the returned MCP MIME type is based on the downloaded image bytes.
|
|
216
254
|
|
|
@@ -254,6 +292,33 @@ Faster CogView request using provider-standard quality:
|
|
|
254
292
|
|
|
255
293
|
Common Zhipu failures are returned as tool errors with the HTTP status and a provider response excerpt of at most 500 characters. Authentication failures must be fixed rather than retried; HTTP 429 with business code `1113` means the account balance is insufficient, while other 429 codes can indicate rate, model-load, or account-plan limits. ImageForge does not automatically retry paid generation requests. See the [official Zhipu error-code reference](https://docs.bigmodel.cn/cn/faq/api-code) for current business-code meanings.
|
|
256
294
|
|
|
295
|
+
MiniMax text-to-image:
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"provider": "minimax",
|
|
300
|
+
"model": "image-01",
|
|
301
|
+
"prompt": "A quiet coastal village at sunrise, cinematic light, no text",
|
|
302
|
+
"size": "1536x1024",
|
|
303
|
+
"output_format": "jpeg",
|
|
304
|
+
"output_path": "outputs/minimax-village.jpeg"
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
MiniMax single-subject reference generation:
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"provider": "minimax",
|
|
313
|
+
"model": "image-01",
|
|
314
|
+
"prompt": "Keep the reference character and place them in a quiet library, natural light",
|
|
315
|
+
"reference_images": ["/absolute/path/to/character.jpg"],
|
|
316
|
+
"output_format": "jpeg"
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
MiniMax requires exactly one `reference_images` entry for this mode. `image-01-live` converts `size` to an exact supported aspect ratio instead of sending custom dimensions.
|
|
321
|
+
|
|
257
322
|
## `edit_image`
|
|
258
323
|
|
|
259
324
|
`edit_image` uses the same model, API, output, and local-save parameters as `generate_image`, but requires `input_images`:
|
|
@@ -271,6 +336,22 @@ When `output_path` is supplied, ImageForge MCP returns the native MCP image cont
|
|
|
271
336
|
|
|
272
337
|
Some OpenAI-compatible gateways may return dimensions different from the requested `size`; the actual returned file dimensions are authoritative.
|
|
273
338
|
|
|
339
|
+
## Maintainer release script
|
|
340
|
+
|
|
341
|
+
Run the release workflow from a Git checkout of this repository:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# Read-only checks; allows a dirty worktree but prints a warning.
|
|
345
|
+
bash script/release.sh
|
|
346
|
+
|
|
347
|
+
# Actual npm publication.
|
|
348
|
+
bash script/release.sh --publish
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
The default check mode verifies version consistency, Git whitespace, TypeScript build, all tests, production dependency audit, the npm file list, npm publication dry-run, npm authentication when available, and whether the current version already exists in the Registry. If the version exists but its Registry shasum differs from the local package, the check fails and requires a version bump.
|
|
352
|
+
|
|
353
|
+
`--publish` additionally requires branch `main`, a clean worktree, local `HEAD` equal to `origin/main`, an authenticated npm account, and an unpublished package version. It publishes with public access and the `latest` tag, then waits for the exact version and `latest` tag to become visible in the Registry and prints the Registry shasum. The script intentionally does not change versions, create commits, push Git branches, create tags, retry a failed publication, or overwrite an existing npm version.
|
|
354
|
+
|
|
274
355
|
## Verification
|
|
275
356
|
|
|
276
357
|
```bash
|
|
@@ -288,9 +369,9 @@ Tests use a local HTTP mock. They do not call a real image API or incur generati
|
|
|
288
369
|
|
|
289
370
|
# 中文说明
|
|
290
371
|
|
|
291
|
-
ImageForge MCP 是一个轻量的 TypeScript MCP
|
|
372
|
+
ImageForge MCP 是一个轻量的 TypeScript MCP 图片生成与编辑服务,支持 OpenAI、智谱 BigModel 和 MiniMax 生图,并保留 OpenAI 图片编辑能力。
|
|
292
373
|
|
|
293
|
-
- OpenAI 纯文本生图调用 `POST /v1/images/generations`;智谱调用 `POST /api/paas/v4/images/generations`。
|
|
374
|
+
- OpenAI 纯文本生图调用 `POST /v1/images/generations`;智谱调用 `POST /api/paas/v4/images/generations`;MiniMax 调用 `POST /v1/image_generation`。
|
|
294
375
|
- OpenAI 图片编辑和参考图生图调用 multipart `POST /v1/images/edits`。
|
|
295
376
|
- 生成结果以原生 MCP `image` 内容块返回,也可以同时保存到本地。
|
|
296
377
|
|
|
@@ -298,9 +379,11 @@ ImageForge MCP 是一个轻量的 TypeScript MCP 图片生成与编辑服务,
|
|
|
298
379
|
|
|
299
380
|
- OpenAI 模型:`gpt-image-2`
|
|
300
381
|
- 智谱模型:`glm-image`、`cogview-4-250304`、`cogview-4`、`cogview-3-flash`
|
|
382
|
+
- MiniMax 模型:`image-01`、`image-01-live`
|
|
301
383
|
- MCP 工具:`generate_image`、`edit_image`
|
|
302
384
|
- 支持纯文本生图
|
|
303
385
|
- 支持一张或多张参考图引导生图
|
|
386
|
+
- 支持 MiniMax 单张主体参考图生图
|
|
304
387
|
- 支持一张或多张图片编辑
|
|
305
388
|
- 输入图片支持本地绝对路径和 HTTP(S) URL
|
|
306
389
|
- 输入与输出支持 PNG、JPEG、WebP
|
|
@@ -312,16 +395,16 @@ ImageForge MCP 是一个轻量的 TypeScript MCP 图片生成与编辑服务,
|
|
|
312
395
|
|
|
313
396
|
## 供应商能力矩阵
|
|
314
397
|
|
|
315
|
-
| 能力 | OpenAI | 智谱 |
|
|
316
|
-
| --- | --- | --- |
|
|
317
|
-
| 文生图 | 支持 | 支持 |
|
|
318
|
-
| 参考图生图 |
|
|
319
|
-
| 图片编辑 | 支持,通过 `edit_image` | 不支持 |
|
|
320
|
-
| 模型 | `gpt-image-2` | `glm-image`、`cogview-4-250304`、`cogview-4`、`cogview-3-flash` |
|
|
321
|
-
| quality | `auto`、`low`、`medium`、`high` | `glm-image`:`auto`、`hd`;其他模型:`auto`、`standard`、`hd` |
|
|
322
|
-
| `watermark_enabled` | 静默忽略 | 仅显式传入时转发 |
|
|
323
|
-
| `output_format` | 发送给供应商 |
|
|
324
|
-
| 供应商响应 | Base64 图片数据 | 临时图片 URL,由 ImageForge 立即下载 |
|
|
398
|
+
| 能力 | OpenAI | 智谱 | MiniMax |
|
|
399
|
+
| --- | --- | --- | --- |
|
|
400
|
+
| 文生图 | 支持 | 支持 | 支持 |
|
|
401
|
+
| 参考图生图 | 支持 1–16 张 | 不支持;读取文件或请求前失败 | 支持单张 PNG/JPEG 主体参考图,小于 10 MB |
|
|
402
|
+
| 图片编辑 | 支持,通过 `edit_image` | 不支持 | 不支持 |
|
|
403
|
+
| 模型 | `gpt-image-2` | `glm-image`、`cogview-4-250304`、`cogview-4`、`cogview-3-flash` | `image-01`、`image-01-live` |
|
|
404
|
+
| quality | `auto`、`low`、`medium`、`high` | `glm-image`:`auto`、`hd`;其他模型:`auto`、`standard`、`hd` | 仅 `auto` |
|
|
405
|
+
| `watermark_enabled` | 静默忽略 | 仅显式传入时转发 | 显式传入时映射为 `aigc_watermark` |
|
|
406
|
+
| `output_format` | 发送给供应商 | 忽略,以真实 MIME 为准 | 仅 JPEG,其他值在请求前失败 |
|
|
407
|
+
| 供应商响应 | Base64 图片数据 | 临时图片 URL,由 ImageForge 立即下载 | Base64 图片数据 |
|
|
325
408
|
|
|
326
409
|
## 智谱 BigModel 支持
|
|
327
410
|
|
|
@@ -347,6 +430,20 @@ ImageForge 使用 Bearer 认证调用智谱官方图片生成接口,各模型
|
|
|
347
430
|
|
|
348
431
|
智谱服务端当前尺寸、质量、水印和账号政策应以[官方图片生成 API 文档](https://docs.bigmodel.cn/api-reference/%E6%A8%A1%E5%9E%8B-api/%E5%9B%BE%E5%83%8F%E7%94%9F%E6%88%90)为准。
|
|
349
432
|
|
|
433
|
+
## MiniMax 支持
|
|
434
|
+
|
|
435
|
+
ImageForge 使用 Bearer 认证调用 `POST /v1/image_generation`,固定请求一张 Base64 图片,并根据解码后的真实图片内容返回 MIME。支持 `image-01` 和 `image-01-live`,MiniMax 密钥不会回退到 OpenAI 或智谱配置。
|
|
436
|
+
|
|
437
|
+
- `image-01`:将 `size` 转为 `width`、`height`,宽高须在 512–2048、均为 8 的倍数,且总像素不少于 `1024×1024`。
|
|
438
|
+
- `image-01-live`:将 `size` 约分为精确支持的宽高比;不支持的比例在请求前失败。
|
|
439
|
+
- `quality` 仅接受 `auto`。
|
|
440
|
+
- 输出仅支持 JPEG;省略 `output_format` 或传 `jpeg`,传 `png`/`webp` 会在请求前失败,不做本地转码。
|
|
441
|
+
- `reference_images` 最多一张 PNG/JPEG 且小于 10 MB,安全加载后以 `character` 主体 Data URL 发送。
|
|
442
|
+
- `watermark_enabled` 仅显式传入时映射为 `aigc_watermark`。
|
|
443
|
+
- 不自动重试收费请求,也不自动切换供应商。
|
|
444
|
+
|
|
445
|
+
供应商行为以 [MiniMax 官方图片生成指南](https://platform.minimaxi.com/docs/guides/image-generation)为准。
|
|
446
|
+
|
|
350
447
|
## OpenAI 兼容 CPA 与网关
|
|
351
448
|
|
|
352
449
|
ImageForge MCP 不仅支持 OpenAI 官方接口,也支持实现了 OpenAI Images API 兼容协议的 CPA、中转或代理服务,包括基于 **New API**、**CLI Proxy API** 等项目部署的 OpenAI 兼容网关。
|
|
@@ -363,7 +460,7 @@ ImageForge MCP 不仅支持 OpenAI 官方接口,也支持实现了 OpenAI Imag
|
|
|
363
460
|
## 环境要求
|
|
364
461
|
|
|
365
462
|
- Node.js 22 或更高版本
|
|
366
|
-
-
|
|
463
|
+
- 所选供应商对应的 OpenAI/网关、智谱或 MiniMax 密钥
|
|
367
464
|
|
|
368
465
|
## 安装与构建
|
|
369
466
|
|
|
@@ -393,7 +490,7 @@ npm run build
|
|
|
393
490
|
}
|
|
394
491
|
```
|
|
395
492
|
|
|
396
|
-
`-y` 允许 `npx` 在没有交互式安装提示的情况下下载或更新包。如果部署需要固定版本,可将包名写成 `"imageforge-mcp@0.
|
|
493
|
+
`-y` 允许 `npx` 在没有交互式安装提示的情况下下载或更新包。如果部署需要固定版本,可将包名写成 `"imageforge-mcp@0.5.0"`。
|
|
397
494
|
|
|
398
495
|
如果希望 MCP 默认使用智谱,应使用独立的智谱凭据与供应商配置:
|
|
399
496
|
|
|
@@ -402,7 +499,7 @@ npm run build
|
|
|
402
499
|
"mcpServers": {
|
|
403
500
|
"imageforge-zhipu": {
|
|
404
501
|
"command": "npx",
|
|
405
|
-
"args": ["-y", "imageforge-mcp@0.
|
|
502
|
+
"args": ["-y", "imageforge-mcp@0.5.0"],
|
|
406
503
|
"env": {
|
|
407
504
|
"IMAGEFORGE_PROVIDER": "zhipu",
|
|
408
505
|
"ZHIPU_API_KEY": "你的智谱令牌",
|
|
@@ -415,6 +512,26 @@ npm run build
|
|
|
415
512
|
|
|
416
513
|
`ZHIPU_BASE_URL` 可选,默认值为 `https://open.bigmodel.cn/api/paas/v4`;`ZHIPU_IMAGE_MODEL` 可选,默认值为 `glm-image`。智谱与 OpenAI 的环境密钥不会互相回退。单次调用传入的 `provider`、`api_key`、`base_url` 或 `model` 优先于对应环境变量。
|
|
417
514
|
|
|
515
|
+
MiniMax 默认配置示例:
|
|
516
|
+
|
|
517
|
+
```json
|
|
518
|
+
{
|
|
519
|
+
"mcpServers": {
|
|
520
|
+
"imageforge-minimax": {
|
|
521
|
+
"command": "npx",
|
|
522
|
+
"args": ["-y", "imageforge-mcp@0.5.0"],
|
|
523
|
+
"env": {
|
|
524
|
+
"IMAGEFORGE_PROVIDER": "minimax",
|
|
525
|
+
"MINIMAX_API_KEY": "你的-MiniMax-令牌",
|
|
526
|
+
"MINIMAX_IMAGE_MODEL": "image-01"
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
`MINIMAX_BASE_URL` 默认 `https://api.minimaxi.com/v1`,`MINIMAX_IMAGE_MODEL` 默认 `image-01`。MiniMax、OpenAI 与智谱凭据互不回退。
|
|
534
|
+
|
|
418
535
|
`OPENAI_BASE_URL` 是可选配置。不设置时,ImageForge MCP 默认使用 OpenAI 官方接口 `https://api.openai.com/v1`。只有使用 New API、CLI Proxy API 或其他 OpenAI 兼容网关时才需要设置:
|
|
419
536
|
|
|
420
537
|
```json
|
|
@@ -438,7 +555,7 @@ DNS 安全检查默认启用。只有确实需要访问私有网络地址或 DNS
|
|
|
438
555
|
command = "/你的/node/绝对路径"
|
|
439
556
|
args = ["/你的/ImageForgeMCP/绝对路径/dist/index.js"]
|
|
440
557
|
cwd = "/你的/ImageForgeMCP/绝对路径"
|
|
441
|
-
env_vars = ["OPENAI_API_KEY", "OPENAI_BASE_URL", "OPENAI_IMAGE_MODEL", "ZHIPU_API_KEY", "ZHIPU_BASE_URL", "ZHIPU_IMAGE_MODEL", "IMAGEFORGE_PROVIDER", "IMAGEFORGE_INPUT_CONCURRENCY", "IMAGEFORGE_SKIP_DNS_SAFETY_CHECKS"]
|
|
558
|
+
env_vars = ["OPENAI_API_KEY", "OPENAI_BASE_URL", "OPENAI_IMAGE_MODEL", "ZHIPU_API_KEY", "ZHIPU_BASE_URL", "ZHIPU_IMAGE_MODEL", "MINIMAX_API_KEY", "MINIMAX_BASE_URL", "MINIMAX_IMAGE_MODEL", "IMAGEFORGE_PROVIDER", "IMAGEFORGE_INPUT_CONCURRENCY", "IMAGEFORGE_SKIP_DNS_SAFETY_CHECKS"]
|
|
442
559
|
startup_timeout_sec = 10
|
|
443
560
|
tool_timeout_sec = 300
|
|
444
561
|
enabled = true
|
|
@@ -466,6 +583,8 @@ export ZHIPU_IMAGE_MODEL="glm-image"
|
|
|
466
583
|
# 可选:export ZHIPU_BASE_URL="https://open.bigmodel.cn/api/paas/v4"
|
|
467
584
|
```
|
|
468
585
|
|
|
586
|
+
使用 MiniMax 时导出 `IMAGEFORGE_PROVIDER=minimax`、`MINIMAX_API_KEY`,并按需设置 `MINIMAX_IMAGE_MODEL=image-01` 或 `image-01-live`。
|
|
587
|
+
|
|
469
588
|
Codex 只会加载已信任项目中的 `.codex/config.toml`。新增或修改 MCP 配置后,需要重新启动 Codex 或新建任务,再使用 `/mcp verbose` 确认 `imageforge_dev` 提供以下工具:
|
|
470
589
|
|
|
471
590
|
- `generate_image`
|
|
@@ -484,18 +603,18 @@ npm run build
|
|
|
484
603
|
| 参数 | 必填 | 默认值 | 说明 |
|
|
485
604
|
| --- | --- | --- | --- |
|
|
486
605
|
| `prompt` | 是 | - | 图片描述 |
|
|
487
|
-
| `model` | 否 | 环境变量或供应商默认值 | OpenAI:`gpt-image-2
|
|
488
|
-
| `base_url` | 否 |
|
|
489
|
-
| `api_key` | 否 |
|
|
490
|
-
| `provider` | 否 | `IMAGEFORGE_PROVIDER`,再默认 `openai` | `openai` 或 `
|
|
606
|
+
| `model` | 否 | 环境变量或供应商默认值 | OpenAI:`gpt-image-2`;智谱模型见上;MiniMax:`image-01`、`image-01-live` |
|
|
607
|
+
| `base_url` | 否 | 供应商环境变量或官方默认值 | 单次调用覆盖对应供应商 API 地址 |
|
|
608
|
+
| `api_key` | 否 | 供应商独立密钥 | 单次调用覆盖对应供应商密钥;推荐使用环境变量 |
|
|
609
|
+
| `provider` | 否 | `IMAGEFORGE_PROVIDER`,再默认 `openai` | `openai`、`zhipu` 或 `minimax` |
|
|
491
610
|
| `size` | 否 | `1024x1024` | 请求提供商输出的图片尺寸 |
|
|
492
|
-
| `quality` | 否 | `auto` | OpenAI
|
|
493
|
-
| `output_format` | 否 | `png` |
|
|
611
|
+
| `quality` | 否 | `auto` | OpenAI 与智谱取值见上;MiniMax 仅接受 `auto` |
|
|
612
|
+
| `output_format` | 否 | `png`;MiniMax 为 `jpeg` | OpenAI:`png/jpeg/webp`;智谱忽略;MiniMax 仅接受 `jpeg` |
|
|
494
613
|
| `output_path` | 否 | - | 本地保存路径;相对路径按 MCP 工作目录解析 |
|
|
495
|
-
| `watermark_enabled` | 否 | - |
|
|
496
|
-
| `reference_images` | 否 | - | OpenAI
|
|
614
|
+
| `watermark_enabled` | 否 | - | 显式传入时发送给智谱,或映射为 MiniMax `aigc_watermark` |
|
|
615
|
+
| `reference_images` | 否 | - | OpenAI:1–16 张;MiniMax:单张小于 10 MB 的 PNG/JPEG;智谱拒绝 |
|
|
497
616
|
|
|
498
|
-
不传 `reference_images` 时调用 `/images/generations
|
|
617
|
+
OpenAI 不传 `reference_images` 时调用 `/images/generations`,传入参考图时调用 multipart `/images/edits`。MiniMax 始终调用 `/image_generation`,并把单张参考图映射为 `subject_reference`。
|
|
499
618
|
|
|
500
619
|
智谱首版仅支持同步文生图,不支持参考图和 `edit_image`。传入 `reference_images` 时会在读取参考文件和发起请求前明确报错;`output_format` 对智谱不生效。下载图片时不携带 Authorization,最终 MCP MIME 类型以实际图片内容为准。
|
|
501
620
|
|
|
@@ -539,6 +658,33 @@ CogView 使用供应商标准质量快速生成:
|
|
|
539
658
|
|
|
540
659
|
智谱失败会作为 MCP 工具错误返回,包含 HTTP 状态和最多 500 个字符的供应商错误摘要。认证失败必须修正配置而不是重试;HTTP 429 且业务错误码为 `1113` 表示账户欠费,其他 429 错误也可能表示限流、模型繁忙或套餐限制。ImageForge 不会自动重试可能产生费用的生图请求。业务错误码的当前含义以[智谱官方错误码文档](https://docs.bigmodel.cn/cn/faq/api-code)为准。
|
|
541
660
|
|
|
661
|
+
MiniMax 文生图示例:
|
|
662
|
+
|
|
663
|
+
```json
|
|
664
|
+
{
|
|
665
|
+
"provider": "minimax",
|
|
666
|
+
"model": "image-01",
|
|
667
|
+
"prompt": "日出时宁静的海滨村庄,电影光线,无文字",
|
|
668
|
+
"size": "1536x1024",
|
|
669
|
+
"output_format": "jpeg",
|
|
670
|
+
"output_path": "outputs/minimax-village.jpeg"
|
|
671
|
+
}
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
MiniMax 单主体参考图示例:
|
|
675
|
+
|
|
676
|
+
```json
|
|
677
|
+
{
|
|
678
|
+
"provider": "minimax",
|
|
679
|
+
"model": "image-01",
|
|
680
|
+
"prompt": "保持参考人物特征,将人物置于安静的图书馆,自然光",
|
|
681
|
+
"reference_images": ["/参考人物图片的绝对路径/character.jpg"],
|
|
682
|
+
"output_format": "jpeg"
|
|
683
|
+
}
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
该模式的 `reference_images` 必须恰好一张;`image-01-live` 会把 `size` 转成精确支持的宽高比,而不是发送自定义尺寸。
|
|
687
|
+
|
|
542
688
|
## `edit_image`
|
|
543
689
|
|
|
544
690
|
`edit_image` 与 `generate_image` 使用相同的模型、API、输出和本地保存参数,但 `input_images` 必填:
|
|
@@ -556,6 +702,22 @@ CogView 使用供应商标准质量快速生成:
|
|
|
556
702
|
|
|
557
703
|
部分 OpenAI 兼容网关可能不会严格遵循请求中的 `size`,应以实际返回文件的尺寸为准。
|
|
558
704
|
|
|
705
|
+
## 维护者发布脚本
|
|
706
|
+
|
|
707
|
+
发布流程应在本仓库的 Git checkout 中执行:
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
# 只读检查;工作区不干净时会警告,但继续检查。
|
|
711
|
+
bash script/release.sh
|
|
712
|
+
|
|
713
|
+
# 实际发布到 npm。
|
|
714
|
+
bash script/release.sh --publish
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
默认检查模式会验证版本一致性、Git 空白、TypeScript 构建、全部测试、生产依赖审计、npm 打包文件列表、npm 发布 dry-run、可用时的 npm 登录状态,以及当前版本是否已经存在于 Registry。如果版本已存在但 Registry shasum 与本地包不一致,检查会失败并要求先升级版本号。
|
|
718
|
+
|
|
719
|
+
`--publish` 还会强制要求当前分支为 `main`、工作区干净、本地 `HEAD` 与 `origin/main` 完全一致、npm 已登录且版本尚未发布;随后以 public access 和 `latest` tag 发布,等待 Registry 可查询到准确版本和 `latest` tag,再输出 Registry shasum。脚本不会修改版本号、创建 Git 提交、推送分支、创建 Tag、自动重试失败发布或覆盖已存在的 npm 版本。
|
|
720
|
+
|
|
559
721
|
## 验证
|
|
560
722
|
|
|
561
723
|
```bash
|
package/dist/index.js
CHANGED
|
@@ -31,27 +31,31 @@ async function imageResult(image, outputPath) {
|
|
|
31
31
|
return { content };
|
|
32
32
|
}
|
|
33
33
|
export function createServer() {
|
|
34
|
-
const server = new McpServer({ name: "imageforge-mcp", version: "0.
|
|
34
|
+
const server = new McpServer({ name: "imageforge-mcp", version: "0.5.0" });
|
|
35
35
|
server.registerTool("generate_image", {
|
|
36
|
-
description: "Generate one image with OpenAI gpt-image-2
|
|
36
|
+
description: "Generate one image with OpenAI gpt-image-2, a supported Zhipu image model, or MiniMax image-01 / image-01-live.",
|
|
37
37
|
inputSchema: {
|
|
38
38
|
prompt: z.string().trim().min(1).max(32_000).describe("Image description."),
|
|
39
|
-
model: z.string().optional().describe("Model name: OpenAI gpt-image-2,
|
|
39
|
+
model: z.string().optional().describe("Model name: OpenAI gpt-image-2, Zhipu glm-image / cogview-4-250304 / cogview-4 / cogview-3-flash, or MiniMax image-01 / image-01-live."),
|
|
40
40
|
base_url: z.string().optional().describe("Per-call provider API base URL override."),
|
|
41
41
|
api_key: z.string().optional().describe("Per-call provider API key; environment variables are preferred."),
|
|
42
|
-
provider: z.enum(["openai", "zhipu"]).optional().describe("Image provider. Defaults to IMAGEFORGE_PROVIDER, then openai."),
|
|
43
|
-
watermark_enabled: z.boolean().optional().describe("Provider watermark switch. Zhipu sends it when set; false may require watermark-removal account permission. Unsupported providers silently ignore it. ImageForge never removes watermarks locally."),
|
|
42
|
+
provider: z.enum(["openai", "zhipu", "minimax"]).optional().describe("Image provider. Defaults to IMAGEFORGE_PROVIDER, then openai."),
|
|
43
|
+
watermark_enabled: z.boolean().optional().describe("Provider watermark switch. Zhipu sends it when set; false may require watermark-removal account permission. MiniMax sends it as aigc_watermark. Unsupported providers silently ignore it. ImageForge never removes watermarks locally."),
|
|
44
44
|
size: z.string().default("1024x1024").describe("Output size, for example 1536x1024."),
|
|
45
45
|
quality: generateQualitySchema.default("auto"),
|
|
46
|
-
output_format: outputFormatSchema.
|
|
46
|
+
output_format: outputFormatSchema.optional().describe("Output format. OpenAI: png/jpeg/webp; Zhipu: ignored; MiniMax: jpeg only. Defaults to png, or jpeg for MiniMax."),
|
|
47
47
|
output_path: z.string().trim().min(1).optional().describe("Optional local path to save the generated image. Relative paths resolve from the MCP working directory. Existing files are not overwritten."),
|
|
48
|
-
reference_images: z.array(z.string()).max(16).optional().describe("Optional
|
|
48
|
+
reference_images: z.array(z.string()).max(16).optional().describe("Optional reference images as absolute local paths or HTTP(S) URLs. OpenAI: up to 16. MiniMax: exactly one PNG/JPEG under 10 MB. Zhipu rejects this parameter."),
|
|
49
49
|
},
|
|
50
50
|
}, async ({ prompt, model, base_url, api_key, provider, watermark_enabled, size, quality, output_format, output_path, reference_images }) => {
|
|
51
51
|
const selectedProvider = provider ?? resolveProvider(process.env.IMAGEFORGE_PROVIDER);
|
|
52
52
|
if (selectedProvider === "zhipu" && reference_images?.length) {
|
|
53
53
|
throw new Error("Zhipu image generation does not support reference_images.");
|
|
54
54
|
}
|
|
55
|
+
if (selectedProvider === "minimax" && (reference_images?.length ?? 0) > 1) {
|
|
56
|
+
throw new Error("MiniMax image generation supports at most one reference image.");
|
|
57
|
+
}
|
|
58
|
+
const effectiveOutputFormat = output_format ?? (selectedProvider === "minimax" ? "jpeg" : "png");
|
|
55
59
|
const config = resolveConfig({ provider: selectedProvider, apiKey: api_key, baseUrl: base_url, model });
|
|
56
60
|
const inputImages = reference_images?.length ? await loadImages(reference_images) : undefined;
|
|
57
61
|
const image = await requestImage({
|
|
@@ -59,7 +63,7 @@ export function createServer() {
|
|
|
59
63
|
config,
|
|
60
64
|
size,
|
|
61
65
|
quality,
|
|
62
|
-
outputFormat:
|
|
66
|
+
outputFormat: effectiveOutputFormat,
|
|
63
67
|
inputImages,
|
|
64
68
|
watermarkEnabled: watermark_enabled,
|
|
65
69
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,GAEhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACpE,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,UAAkB;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAqB,EAAE,UAAmB;IACnE,MAAM,OAAO,GAGT;QACF;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB;KACF,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,SAAS,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3E,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type LoadedImage } from "./imageInput.js";
|
|
2
|
-
export type ProviderId = "openai" | "zhipu";
|
|
2
|
+
export type ProviderId = "openai" | "zhipu" | "minimax";
|
|
3
3
|
export type Quality = "auto" | "low" | "medium" | "high" | "standard" | "hd";
|
|
4
4
|
export type OutputFormat = "png" | "jpeg" | "webp";
|
|
5
5
|
export interface GeneratedImage {
|
|
@@ -37,6 +37,16 @@ export declare function requestZhipuImage(input: {
|
|
|
37
37
|
fetchImpl?: typeof fetch;
|
|
38
38
|
downloadFetchImpl?: typeof fetch;
|
|
39
39
|
}): Promise<GeneratedImage>;
|
|
40
|
+
export declare function requestMinimaxImage(input: {
|
|
41
|
+
prompt: string;
|
|
42
|
+
config: ImageConfig;
|
|
43
|
+
size: string;
|
|
44
|
+
quality: Quality;
|
|
45
|
+
outputFormat?: OutputFormat;
|
|
46
|
+
watermarkEnabled?: boolean;
|
|
47
|
+
inputImages?: LoadedImage[];
|
|
48
|
+
fetchImpl?: typeof fetch;
|
|
49
|
+
}): Promise<GeneratedImage>;
|
|
40
50
|
export declare function requestImage(input: Parameters<typeof requestOpenAIImage>[0] & {
|
|
41
51
|
watermarkEnabled?: boolean;
|
|
42
52
|
downloadFetchImpl?: typeof fetch;
|
package/dist/providers.js
CHANGED
|
@@ -5,17 +5,30 @@ const OPENAI_DEFAULT_MODEL = "gpt-image-2";
|
|
|
5
5
|
const ZHIPU_DEFAULT_BASE_URL = "https://open.bigmodel.cn/api/paas/v4";
|
|
6
6
|
const ZHIPU_DEFAULT_MODEL = "glm-image";
|
|
7
7
|
const ZHIPU_MODELS = new Set(["glm-image", "cogview-4-250304", "cogview-4", "cogview-3-flash"]);
|
|
8
|
+
const MINIMAX_DEFAULT_BASE_URL = "https://api.minimaxi.com/v1";
|
|
9
|
+
const MINIMAX_DEFAULT_MODEL = "image-01";
|
|
10
|
+
const MINIMAX_MODELS = new Set(["image-01", "image-01-live"]);
|
|
11
|
+
const MINIMAX_MAX_REFERENCE_BYTES = 10 * 1024 * 1024;
|
|
8
12
|
const zhipuResponseSchema = z.object({
|
|
9
13
|
data: z.array(z.object({ url: z.string().url() })).min(1),
|
|
10
14
|
content_filter: z.array(z.unknown()).optional(),
|
|
11
15
|
});
|
|
16
|
+
const minimaxResponseSchema = z.object({
|
|
17
|
+
data: z.object({
|
|
18
|
+
image_base64: z.array(z.string()).min(1).optional(),
|
|
19
|
+
}).optional(),
|
|
20
|
+
base_resp: z.object({
|
|
21
|
+
status_code: z.number(),
|
|
22
|
+
status_msg: z.string().optional(),
|
|
23
|
+
}),
|
|
24
|
+
});
|
|
12
25
|
export function resolveProvider(value) {
|
|
13
26
|
const provider = value?.trim().toLowerCase();
|
|
14
27
|
if (!provider)
|
|
15
28
|
return "openai";
|
|
16
|
-
if (provider === "openai" || provider === "zhipu")
|
|
29
|
+
if (provider === "openai" || provider === "zhipu" || provider === "minimax")
|
|
17
30
|
return provider;
|
|
18
|
-
throw new Error("provider must be 'openai' or '
|
|
31
|
+
throw new Error("provider must be 'openai', 'zhipu', or 'minimax'.");
|
|
19
32
|
}
|
|
20
33
|
function firstValue(...values) {
|
|
21
34
|
return values.map((value) => value?.trim()).find(Boolean);
|
|
@@ -50,6 +63,21 @@ export function resolveConfig(input) {
|
|
|
50
63
|
baseUrl: normalizeBaseUrl(firstValue(input.baseUrl, process.env.OPENAI_BASE_URL, OPENAI_DEFAULT_BASE_URL), "base_url"),
|
|
51
64
|
};
|
|
52
65
|
}
|
|
66
|
+
if (provider === "minimax") {
|
|
67
|
+
const apiKey = firstValue(input.apiKey, process.env.MINIMAX_API_KEY);
|
|
68
|
+
if (!apiKey)
|
|
69
|
+
throw new Error("Missing MiniMax API key: pass api_key or set MINIMAX_API_KEY.");
|
|
70
|
+
const model = firstValue(input.model, process.env.MINIMAX_IMAGE_MODEL, MINIMAX_DEFAULT_MODEL);
|
|
71
|
+
if (!MINIMAX_MODELS.has(model)) {
|
|
72
|
+
throw new Error(`Unsupported MiniMax model '${model}'. Supported models: ${Array.from(MINIMAX_MODELS).join(", ")}.`);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
provider,
|
|
76
|
+
apiKey,
|
|
77
|
+
model,
|
|
78
|
+
baseUrl: normalizeBaseUrl(firstValue(input.baseUrl, process.env.MINIMAX_BASE_URL, MINIMAX_DEFAULT_BASE_URL), "base_url"),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
53
81
|
const apiKey = firstValue(input.apiKey, process.env.ZHIPU_API_KEY);
|
|
54
82
|
if (!apiKey)
|
|
55
83
|
throw new Error("Missing Zhipu API key: pass api_key or set ZHIPU_API_KEY.");
|
|
@@ -183,9 +211,144 @@ export async function requestZhipuImage(input) {
|
|
|
183
211
|
const downloaded = await loadRemoteImage(parsed.data.data[0].url, input.downloadFetchImpl ?? fetchImpl, undefined, undefined, false);
|
|
184
212
|
return { data: downloaded.data, mimeType: downloaded.mimeType };
|
|
185
213
|
}
|
|
214
|
+
const MINIMAX_ASPECT_RATIOS = new Set(["1:1", "16:9", "4:3", "3:2", "2:3", "3:4", "9:16", "21:9"]);
|
|
215
|
+
const MINIMAX_LIVE_ASPECT_RATIOS = new Set(["1:1", "16:9", "4:3", "3:2", "2:3", "3:4", "9:16"]);
|
|
216
|
+
function gcd(a, b) {
|
|
217
|
+
return b === 0 ? a : gcd(b, a % b);
|
|
218
|
+
}
|
|
219
|
+
function parseSize(size) {
|
|
220
|
+
const match = /^(\d+)x(\d+)$/.exec(size);
|
|
221
|
+
if (!match)
|
|
222
|
+
throw new Error("size must use the WIDTHxHEIGHT format, for example 1024x1024.");
|
|
223
|
+
const width = Number(match[1]);
|
|
224
|
+
const height = Number(match[2]);
|
|
225
|
+
if (!Number.isSafeInteger(width) || !Number.isSafeInteger(height) || width < 1 || height < 1) {
|
|
226
|
+
throw new Error("size width and height must be positive safe integers.");
|
|
227
|
+
}
|
|
228
|
+
return { width, height };
|
|
229
|
+
}
|
|
230
|
+
function parseMinimaxImage01Size(size) {
|
|
231
|
+
const { width, height } = parseSize(size);
|
|
232
|
+
if (!Number.isInteger(width) || !Number.isInteger(height) || width < 512 || width > 2048 || height < 512 || height > 2048) {
|
|
233
|
+
throw new Error("MiniMax image-01 width and height must each be between 512 and 2048 pixels.");
|
|
234
|
+
}
|
|
235
|
+
if (width % 8 !== 0 || height % 8 !== 0) {
|
|
236
|
+
throw new Error("MiniMax image-01 width and height must each be a multiple of 8.");
|
|
237
|
+
}
|
|
238
|
+
if (width * height < 1024 * 1024) {
|
|
239
|
+
throw new Error("MiniMax image-01 total pixels must be at least 1024x1024.");
|
|
240
|
+
}
|
|
241
|
+
return { width, height };
|
|
242
|
+
}
|
|
243
|
+
function aspectRatioFromSize(size) {
|
|
244
|
+
const { width, height } = parseSize(size);
|
|
245
|
+
const divisor = gcd(width, height);
|
|
246
|
+
return `${width / divisor}:${height / divisor}`;
|
|
247
|
+
}
|
|
248
|
+
function validateMinimaxAspectRatio(model, ratio) {
|
|
249
|
+
const allowed = model === "image-01-live" ? MINIMAX_LIVE_ASPECT_RATIOS : MINIMAX_ASPECT_RATIOS;
|
|
250
|
+
if (!allowed.has(ratio)) {
|
|
251
|
+
throw new Error(`MiniMax model ${model} does not support aspect ratio ${ratio}. Supported ratios: ${Array.from(allowed).join(", ")}.`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function minimaxRequestBody(input) {
|
|
255
|
+
const body = {
|
|
256
|
+
model: input.config.model,
|
|
257
|
+
prompt: input.prompt,
|
|
258
|
+
n: 1,
|
|
259
|
+
response_format: "base64",
|
|
260
|
+
};
|
|
261
|
+
if (input.config.model === "image-01-live") {
|
|
262
|
+
const ratio = aspectRatioFromSize(input.size);
|
|
263
|
+
validateMinimaxAspectRatio(input.config.model, ratio);
|
|
264
|
+
body.aspect_ratio = ratio;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
const { width, height } = parseMinimaxImage01Size(input.size);
|
|
268
|
+
body.width = width;
|
|
269
|
+
body.height = height;
|
|
270
|
+
}
|
|
271
|
+
if (input.watermarkEnabled !== undefined)
|
|
272
|
+
body.aigc_watermark = input.watermarkEnabled;
|
|
273
|
+
if (input.inputImages?.length) {
|
|
274
|
+
const reference = input.inputImages[0];
|
|
275
|
+
if (reference.mimeType === "image/webp") {
|
|
276
|
+
throw new Error("MiniMax subject reference images must be PNG or JPEG.");
|
|
277
|
+
}
|
|
278
|
+
if (reference.data.length >= MINIMAX_MAX_REFERENCE_BYTES) {
|
|
279
|
+
throw new Error("MiniMax subject reference image must be smaller than 10 MB.");
|
|
280
|
+
}
|
|
281
|
+
body.subject_reference = [{
|
|
282
|
+
type: "character",
|
|
283
|
+
image_file: `data:${reference.mimeType};base64,${reference.data.toString("base64")}`,
|
|
284
|
+
}];
|
|
285
|
+
}
|
|
286
|
+
return body;
|
|
287
|
+
}
|
|
288
|
+
function decodeBase64Image(encodedImage, label) {
|
|
289
|
+
const normalizedImage = encodedImage.replace(/\s+/g, "");
|
|
290
|
+
if (!/^[A-Za-z0-9+/]+={0,2}$/.test(normalizedImage)) {
|
|
291
|
+
throw new Error(`${label} response contained invalid base64 image data.`);
|
|
292
|
+
}
|
|
293
|
+
const image = Buffer.from(normalizedImage, "base64");
|
|
294
|
+
if (image.length === 0 || image.toString("base64").replace(/=+$/, "") !== normalizedImage.replace(/=+$/, "")) {
|
|
295
|
+
throw new Error(`${label} response contained invalid base64 image data.`);
|
|
296
|
+
}
|
|
297
|
+
if (image.length > 50 * 1024 * 1024) {
|
|
298
|
+
throw new Error(`${label} response image exceeds the 50 MB limit.`);
|
|
299
|
+
}
|
|
300
|
+
return image;
|
|
301
|
+
}
|
|
302
|
+
export async function requestMinimaxImage(input) {
|
|
303
|
+
if (input.quality !== "auto") {
|
|
304
|
+
throw new Error("MiniMax quality must be auto; this provider does not expose a quality option.");
|
|
305
|
+
}
|
|
306
|
+
if (input.outputFormat !== undefined && input.outputFormat !== "jpeg") {
|
|
307
|
+
throw new Error("MiniMax output_format must be jpeg; this provider does not support local transcoding.");
|
|
308
|
+
}
|
|
309
|
+
if (input.prompt.length > 1500) {
|
|
310
|
+
throw new Error("MiniMax prompt must be at most 1500 characters.");
|
|
311
|
+
}
|
|
312
|
+
const requestBody = minimaxRequestBody(input);
|
|
313
|
+
const fetchImpl = input.fetchImpl ?? fetch;
|
|
314
|
+
const response = await fetchImpl(`${input.config.baseUrl}/image_generation`, {
|
|
315
|
+
method: "POST",
|
|
316
|
+
headers: {
|
|
317
|
+
authorization: `Bearer ${input.config.apiKey}`,
|
|
318
|
+
"content-type": "application/json",
|
|
319
|
+
},
|
|
320
|
+
body: JSON.stringify(requestBody),
|
|
321
|
+
signal: AbortSignal.timeout(120_000),
|
|
322
|
+
});
|
|
323
|
+
if (!response.ok) {
|
|
324
|
+
const detail = (await response.text()).slice(0, 500);
|
|
325
|
+
throw new Error(`MiniMax image request failed (${response.status}): ${detail || response.statusText}`);
|
|
326
|
+
}
|
|
327
|
+
let payload;
|
|
328
|
+
try {
|
|
329
|
+
payload = await response.json();
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
throw new Error("MiniMax image response was not valid JSON.");
|
|
333
|
+
}
|
|
334
|
+
const parsed = minimaxResponseSchema.safeParse(payload);
|
|
335
|
+
if (!parsed.success)
|
|
336
|
+
throw new Error("MiniMax image response contained no valid base64 image data.");
|
|
337
|
+
const statusCode = parsed.data.base_resp.status_code;
|
|
338
|
+
if (statusCode !== 0) {
|
|
339
|
+
const detail = parsed.data.base_resp.status_msg?.slice(0, 500) || String(statusCode);
|
|
340
|
+
throw new Error(`MiniMax image request failed (${statusCode}): ${detail}`);
|
|
341
|
+
}
|
|
342
|
+
const encodedImage = parsed.data.data?.image_base64?.[0];
|
|
343
|
+
if (!encodedImage)
|
|
344
|
+
throw new Error("MiniMax image response contained no base64 image data.");
|
|
345
|
+
const image = decodeBase64Image(encodedImage, "MiniMax");
|
|
346
|
+
return { data: image, mimeType: actualMimeType(image) };
|
|
347
|
+
}
|
|
186
348
|
const imageProviders = {
|
|
187
349
|
openai: requestOpenAIImage,
|
|
188
350
|
zhipu: requestZhipuImage,
|
|
351
|
+
minimax: requestMinimaxImage,
|
|
189
352
|
};
|
|
190
353
|
export async function requestImage(input) {
|
|
191
354
|
const provider = input.config.provider;
|
|
@@ -202,6 +365,21 @@ export async function requestImage(input) {
|
|
|
202
365
|
downloadFetchImpl: input.downloadFetchImpl,
|
|
203
366
|
});
|
|
204
367
|
}
|
|
368
|
+
if (provider === "minimax") {
|
|
369
|
+
if ((input.inputImages?.length ?? 0) > 1) {
|
|
370
|
+
throw new Error("MiniMax image generation supports at most one reference image.");
|
|
371
|
+
}
|
|
372
|
+
return imageProviders[provider]({
|
|
373
|
+
prompt: input.prompt,
|
|
374
|
+
config: input.config,
|
|
375
|
+
size: input.size,
|
|
376
|
+
quality: input.quality,
|
|
377
|
+
outputFormat: input.outputFormat,
|
|
378
|
+
watermarkEnabled: input.watermarkEnabled,
|
|
379
|
+
inputImages: input.inputImages,
|
|
380
|
+
fetchImpl: input.fetchImpl,
|
|
381
|
+
});
|
|
382
|
+
}
|
|
205
383
|
return imageProviders[provider](input);
|
|
206
384
|
}
|
|
207
385
|
//# sourceMappingURL=providers.js.map
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imageforge-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Lightweight MCP image generation server with OpenAI and
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Lightweight MCP image generation server with OpenAI, Zhipu, and MiniMax providers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|