meigen 0.1.0 → 0.1.2

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MeiGen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <p align="center">
2
- <img src="assets/banner.jpg" alt="LibreArt Banner" width="600">
2
+ <img src="assets/banner.jpg" alt="MeiGen-Art Banner" width="600">
3
3
  </p>
4
4
 
5
5
  <h1 align="center">
6
- LibreArt — Visual Creative Expert
6
+ MeiGen-Art — Visual Creative Expert
7
7
  </h1>
8
8
 
9
9
  <p align="center">
@@ -31,11 +31,11 @@
31
31
 
32
32
  ---
33
33
 
34
- ## Why LibreArt?
34
+ ## Why MeiGen-Art?
35
35
 
36
36
  Most AI image tools are either simple prompt-in-image-out APIs, or complex UIs that require expertise.
37
37
 
38
- LibreArt takes a different approach: it gives your AI assistant **professional creative knowledge** — 1,300+ curated trending prompts, style-specific enhancement techniques, and multi-step workflow orchestration — so you can describe what you want in plain language, and get production-quality results.
38
+ MeiGen-Art takes a different approach: it gives your AI assistant **professional creative knowledge** — 1,300+ curated trending prompts, style-specific enhancement techniques, and multi-step workflow orchestration — so you can describe what you want in plain language, and get production-quality results.
39
39
 
40
40
  **No prompt engineering skills needed.** Just talk to your AI assistant like you would to a creative director.
41
41
 
@@ -45,60 +45,47 @@ LibreArt takes a different approach: it gives your AI assistant **professional c
45
45
 
46
46
  ### Claude Code
47
47
 
48
- One command — no clone, no build:
49
-
50
48
  ```bash
51
- claude mcp add --transport stdio libreart -- npx -y meigen
49
+ # Add the plugin source
50
+ /plugin marketplace add jau123/MeiGen-Art
51
+
52
+ # Install
53
+ /plugin install meigen@meigen-marketplace
52
54
  ```
53
55
 
54
- To pass an API key at install time:
56
+ **After installation, restart Claude Code** (close and reopen, or open a new terminal tab) to activate the plugin.
55
57
 
56
- ```bash
57
- claude mcp add --transport stdio libreart \
58
- --env MEIGEN_API_TOKEN=meigen_sk_xxx \
59
- -- npx -y meigen
60
- ```
58
+ #### First-Time Setup
61
59
 
62
- Or configure later via the interactive setup wizard:
60
+ Once restarted, free features work immediately try asking:
61
+
62
+ > "Search for some creative inspiration"
63
+
64
+ To unlock image generation, run the setup wizard:
63
65
 
64
66
  ```
65
67
  /meigen:setup
66
68
  ```
67
69
 
68
- ### OpenClaw
70
+ The wizard walks you through:
71
+ 1. **Choose a provider** — MeiGen Platform (recommended, supports Nanobanana Pro / GPT image 1.5 / Seedream 4.5), local ComfyUI, or OpenAI-compatible API
72
+ 2. **Enter credentials** — API token, key, or ComfyUI URL. You can also paste a `curl` command and it auto-extracts everything
73
+ 3. **Done** — restart Claude Code once more, then start generating
69
74
 
70
- Add to your `~/.openclaw/openclaw.json` (requires [MCP adapter](https://github.com/androidStern/openclaw-mcp-adapter)):
75
+ ### OpenClaw
71
76
 
72
- ```json
73
- {
74
- "plugins": {
75
- "openclaw-mcp-adapter": {
76
- "servers": {
77
- "libreart": {
78
- "transport": "stdio",
79
- "command": "npx",
80
- "args": ["-y", "libreart"],
81
- "env": {
82
- "MEIGEN_API_TOKEN": "meigen_sk_..."
83
- }
84
- }
85
- }
86
- }
87
- }
88
- }
89
- ```
77
+ Our skills follow the [Agent Skills](https://agentskills.io) open standard. Copy them into your OpenClaw workspace and they work directly. For MCP tools, use OpenClaw's MCP adapter to connect the MeiGen server.
90
78
 
91
- ### Any MCP-Compatible Host
79
+ ### Other MCP-Compatible Hosts
92
80
 
93
- Add to your `.mcp.json` or equivalent config:
81
+ Add to your MCP config (e.g. `.mcp.json`, `claude_desktop_config.json`, etc.):
94
82
 
95
83
  ```json
96
84
  {
97
85
  "mcpServers": {
98
- "libreart": {
99
- "type": "stdio",
86
+ "meigen": {
100
87
  "command": "npx",
101
- "args": ["-y", "libreart"],
88
+ "args": ["-y", "meigen@latest"],
102
89
  "env": {
103
90
  "MEIGEN_API_TOKEN": "meigen_sk_..."
104
91
  }
@@ -107,7 +94,7 @@ Add to your `.mcp.json` or equivalent config:
107
94
  }
108
95
  ```
109
96
 
110
- > **Tip:** Even without an API key, free features (inspiration search, prompt enhancement, model listing) work immediately.
97
+ > **Tip:** Even without an API key, free features (inspiration search, prompt enhancement, model listing) work immediately. Configure your provider via `~/.config/meigen/config.json` or environment variables — see [Configuration](#configuration).
111
98
 
112
99
  ---
113
100
 
@@ -161,11 +148,16 @@ Local images are automatically compressed and uploaded. The returned URL works a
161
148
 
162
149
  <h2 id="providers">Providers</h2>
163
150
 
164
- LibreArt supports three image generation backends. You can configure one or multiple — the assistant auto-selects the best available, or you can specify per-request.
151
+ MeiGen-Art supports three image generation backends. You can configure one or multiple — the assistant auto-selects the best available, or you can specify per-request.
165
152
 
166
153
  ### MeiGen Platform (Recommended)
167
154
 
168
- Cloud API with multiple model options: NanoBanana Pro, Seedream 4.5, Midjourney Niji7, and more. Free daily credits included.
155
+ Cloud API with multiple model options: Nanobanana Pro, GPT image 1.5, Seedream 4.5, and more.
156
+
157
+ **Get your API token:**
158
+ 1. Sign in at [meigen.ai](https://www.meigen.ai)
159
+ 2. Click your avatar → **Settings** → **API Keys**
160
+ 3. Create a new key (starts with `meigen_sk_`)
169
161
 
170
162
  ```json
171
163
  { "meigenApiToken": "meigen_sk_..." }
@@ -184,13 +176,13 @@ Run generation on your own GPU with full control over models, samplers, and work
184
176
 
185
177
  ### OpenAI-Compatible API
186
178
 
187
- Bring your own API key for OpenAI (gpt-image-1), Together AI, Fireworks AI, or any OpenAI-compatible service.
179
+ Bring your own API key for OpenAI (gpt-image-1.5), Together AI, Fireworks AI, or any OpenAI-compatible service.
188
180
 
189
181
  ```json
190
182
  {
191
183
  "openaiApiKey": "sk-...",
192
184
  "openaiBaseUrl": "https://api.openai.com",
193
- "openaiModel": "gpt-image-1"
185
+ "openaiModel": "gpt-image-1.5"
194
186
  }
195
187
  ```
196
188
 
@@ -221,7 +213,7 @@ Environment variables take priority over the config file.
221
213
  | `MEIGEN_API_TOKEN` | MeiGen platform token |
222
214
  | `OPENAI_API_KEY` | OpenAI / compatible API key |
223
215
  | `OPENAI_BASE_URL` | API base URL (default: `https://api.openai.com`) |
224
- | `OPENAI_MODEL` | Default model (default: `gpt-image-1`) |
216
+ | `OPENAI_MODEL` | Default model (default: `gpt-image-1.5`) |
225
217
  | `COMFYUI_URL` | ComfyUI server URL (default: `http://localhost:8188`) |
226
218
 
227
219
  ---
package/README.zh-CN.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <p align="center">
2
- <img src="assets/banner.jpg" alt="LibreArt Banner" width="600">
2
+ <img src="assets/banner.jpg" alt="MeiGen-Art Banner" width="600">
3
3
  </p>
4
4
 
5
5
  <h1 align="center">
6
- LibreArt — AI 视觉创意专家
6
+ MeiGen-Art — AI 视觉创意专家
7
7
  </h1>
8
8
 
9
9
  <p align="center">
@@ -31,11 +31,11 @@
31
31
 
32
32
  ---
33
33
 
34
- ## 为什么选择 LibreArt
34
+ ## 为什么选择 MeiGen-Art
35
35
 
36
36
  大多数 AI 图片工具,要么是简单的"输入提示词 → 输出图片"的 API,要么是需要专业知识的复杂界面。
37
37
 
38
- LibreArt 走了一条不同的路:它赋予你的 AI 助手**专业的创意能力**——1,300+ 精选热门提示词、风格化的提示词增强技术、多步骤工作流编排——你只需要用自然语言描述想要什么,就能得到专业品质的结果。
38
+ MeiGen-Art 走了一条不同的路:它赋予你的 AI 助手**专业的创意能力**——1,300+ 精选热门提示词、风格化的提示词增强技术、多步骤工作流编排——你只需要用自然语言描述想要什么,就能得到专业品质的结果。
39
39
 
40
40
  **不需要任何提示词工程知识。** 像跟创意总监对话一样,跟你的 AI 助手聊就行了。
41
41
 
@@ -45,60 +45,47 @@ LibreArt 走了一条不同的路:它赋予你的 AI 助手**专业的创意
45
45
 
46
46
  ### Claude Code
47
47
 
48
- 一行命令,无需 clone 或构建:
49
-
50
48
  ```bash
51
- claude mcp add --transport stdio libreart -- npx -y meigen
49
+ # 添加插件源
50
+ /plugin marketplace add jau123/MeiGen-Art
51
+
52
+ # 安装
53
+ /plugin install meigen@meigen-marketplace
52
54
  ```
53
55
 
54
- 安装时传入 API Key:
56
+ **安装完成后,重启 Claude Code**(关闭再打开,或新建终端标签页)以激活插件。
55
57
 
56
- ```bash
57
- claude mcp add --transport stdio libreart \
58
- --env MEIGEN_API_TOKEN=meigen_sk_xxx \
59
- -- npx -y meigen
60
- ```
58
+ #### 首次配置
61
59
 
62
- 也可以安装后通过交互式向导配置:
60
+ 重启后,免费功能无需配置即可使用——试试问:
61
+
62
+ > "帮我搜索一些创意灵感"
63
+
64
+ 如需解锁图片生成,运行配置向导:
63
65
 
64
66
  ```
65
67
  /meigen:setup
66
68
  ```
67
69
 
68
- ### OpenClaw
70
+ 向导会引导你完成:
71
+ 1. **选择后端** — MeiGen 平台(推荐,支持 Nanobanana Pro / GPT image 1.5 / Seedream 4.5)、本地 ComfyUI、或 OpenAI 兼容 API
72
+ 2. **输入凭证** — API Token、Key 或 ComfyUI 地址。也可以直接粘贴 `curl` 命令,自动提取配置
73
+ 3. **完成** — 再次重启 Claude Code,即可开始生成图片
69
74
 
70
- 添加到 `~/.openclaw/openclaw.json`(需要 [MCP adapter](https://github.com/androidStern/openclaw-mcp-adapter)):
75
+ ### OpenClaw
71
76
 
72
- ```json
73
- {
74
- "plugins": {
75
- "openclaw-mcp-adapter": {
76
- "servers": {
77
- "libreart": {
78
- "transport": "stdio",
79
- "command": "npx",
80
- "args": ["-y", "libreart"],
81
- "env": {
82
- "MEIGEN_API_TOKEN": "meigen_sk_..."
83
- }
84
- }
85
- }
86
- }
87
- }
88
- }
89
- ```
77
+ 我们的技能遵循 [Agent Skills](https://agentskills.io) 开放标准,可复制到 OpenClaw 工作区直接使用。如需 MCP 工具,通过 OpenClaw 的 MCP adapter 连接 MeiGen server 即可。
90
78
 
91
79
  ### 其他 MCP 兼容客户端
92
80
 
93
- 添加到 `.mcp.json` 或对应配置文件:
81
+ 添加到 MCP 配置文件(如 `.mcp.json`、`claude_desktop_config.json` 等):
94
82
 
95
83
  ```json
96
84
  {
97
85
  "mcpServers": {
98
- "libreart": {
99
- "type": "stdio",
86
+ "meigen": {
100
87
  "command": "npx",
101
- "args": ["-y", "libreart"],
88
+ "args": ["-y", "meigen@latest"],
102
89
  "env": {
103
90
  "MEIGEN_API_TOKEN": "meigen_sk_..."
104
91
  }
@@ -107,7 +94,7 @@ claude mcp add --transport stdio libreart \
107
94
  }
108
95
  ```
109
96
 
110
- > **提示:** 即使没有 API Key,免费功能(灵感搜索、提示词增强、模型列表)也可以直接使用。
97
+ > **提示:** 即使没有 API Key,免费功能(灵感搜索、提示词增强、模型列表)也可以直接使用。通过 `~/.config/meigen/config.json` 或环境变量配置你的后端——详见[配置](#配置)。
111
98
 
112
99
  ---
113
100
 
@@ -161,11 +148,16 @@ claude mcp add --transport stdio libreart \
161
148
 
162
149
  <h2 id="生成后端">生成后端</h2>
163
150
 
164
- LibreArt 支持三种图片生成后端,可以配置一个或多个——助手会自动选择最佳可用后端,也可以在每次请求时手动指定。
151
+ MeiGen-Art 支持三种图片生成后端,可以配置一个或多个——助手会自动选择最佳可用后端,也可以在每次请求时手动指定。
165
152
 
166
153
  ### MeiGen 平台(推荐)
167
154
 
168
- 云端 API,支持多种模型:NanoBanana Pro、Seedream 4.5、Midjourney Niji7 等。包含每日免费额度。
155
+ 云端 API,支持多种模型:Nanobanana Pro、GPT image 1.5、Seedream 4.5 等。
156
+
157
+ **获取 API Token:**
158
+ 1. 登录 [meigen.ai](https://www.meigen.ai)
159
+ 2. 点击头像 → **设置** → **API Keys**
160
+ 3. 创建新 Key(以 `meigen_sk_` 开头)
169
161
 
170
162
  ```json
171
163
  { "meigenApiToken": "meigen_sk_..." }
@@ -184,13 +176,13 @@ LibreArt 支持三种图片生成后端,可以配置一个或多个——助
184
176
 
185
177
  ### OpenAI 兼容 API
186
178
 
187
- 使用你自己的 API Key 接入 OpenAI(gpt-image-1)、Together AI、Fireworks AI 或任何 OpenAI 兼容服务。
179
+ 使用你自己的 API Key 接入 OpenAI(gpt-image-1.5)、Together AI、Fireworks AI 或任何 OpenAI 兼容服务。
188
180
 
189
181
  ```json
190
182
  {
191
183
  "openaiApiKey": "sk-...",
192
184
  "openaiBaseUrl": "https://api.openai.com",
193
- "openaiModel": "gpt-image-1"
185
+ "openaiModel": "gpt-image-1.5"
194
186
  }
195
187
  ```
196
188
 
@@ -221,7 +213,7 @@ LibreArt 支持三种图片生成后端,可以配置一个或多个——助
221
213
  | `MEIGEN_API_TOKEN` | MeiGen 平台 Token |
222
214
  | `OPENAI_API_KEY` | OpenAI / 兼容 API Key |
223
215
  | `OPENAI_BASE_URL` | API 地址(默认:`https://api.openai.com`) |
224
- | `OPENAI_MODEL` | 默认模型(默认:`gpt-image-1`) |
216
+ | `OPENAI_MODEL` | 默认模型(默认:`gpt-image-1.5`) |
225
217
  | `COMFYUI_URL` | ComfyUI 服务地址(默认:`http://localhost:8188`) |
226
218
 
227
219
  ---
package/dist/config.js CHANGED
@@ -37,7 +37,7 @@ function loadConfig() {
37
37
  meigenApiToken: process.env.MEIGEN_API_TOKEN || file.meigenApiToken,
38
38
  openaiApiKey: process.env.OPENAI_API_KEY || file.openaiApiKey,
39
39
  openaiBaseUrl: process.env.OPENAI_BASE_URL || file.openaiBaseUrl || 'https://api.openai.com',
40
- openaiModel: process.env.OPENAI_MODEL || file.openaiModel || 'gpt-image-1',
40
+ openaiModel: process.env.OPENAI_MODEL || file.openaiModel || 'gpt-image-1.5',
41
41
  meigenBaseUrl: process.env.MEIGEN_BASE_URL || 'https://www.meigen.ai',
42
42
  uploadGatewayUrl: process.env.UPLOAD_GATEWAY_URL || file.uploadGatewayUrl || 'https://gen.meigen.art/api',
43
43
  comfyuiUrl: process.env.COMFYUI_URL || file.comfyuiUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA2DH,gCAgBC;AAMD,sDAMC;AAGD,gDAKC;AA7FD,2BAA8C;AAC9C,+BAA2B;AAC3B,2BAA4B;AAkC5B,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc;QAEnE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY;QAC7D,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,IAAI,wBAAwB;QAC5F,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,aAAa;QAE1E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB;QAErE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,IAAI,4BAA4B;QAEzG,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU;QACtD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,MAAoB;IACxD,MAAM,SAAS,GAAmB,EAAE,CAAA;IACpC,IAAI,MAAM,CAAC,cAAc;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,mBAAmB,EAAE;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpD,IAAI,MAAM,CAAC,YAAY;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,yCAAyC;AACzC,SAAgB,kBAAkB,CAAC,MAAoB;IACrD,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAA;IAC1C,IAAI,mBAAmB,EAAE;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA2DH,gCAgBC;AAMD,sDAMC;AAGD,gDAKC;AA7FD,2BAA8C;AAC9C,+BAA2B;AAC3B,2BAA4B;AAkC5B,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc;QAEnE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY;QAC7D,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,IAAI,wBAAwB;QAC5F,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,eAAe;QAE5E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB;QAErE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,IAAI,4BAA4B;QAEzG,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU;QACtD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,MAAoB;IACxD,MAAM,SAAS,GAAmB,EAAE,CAAA;IACpC,IAAI,MAAM,CAAC,cAAc;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,mBAAmB,EAAE;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpD,IAAI,MAAM,CAAC,YAAY;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,yCAAyC;AACzC,SAAgB,kBAAkB,CAAC,MAAoB;IACrD,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAA;IAC1C,IAAI,mBAAmB,EAAE;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * OpenAI-compatible Provider
3
- * Supports gpt-image-1, DALL-E 3, and any OpenAI-compatible service (Together AI, DeepInfra, etc.)
3
+ * Supports gpt-image-1.5, DALL-E 3, and any OpenAI-compatible service (Together AI, DeepInfra, etc.)
4
4
  */
5
5
  import type { ImageProvider, ImageGenerationRequest, ImageGenerationResult } from './types.js';
6
6
  export declare class OpenAIProvider implements ImageProvider {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * OpenAI-compatible Provider
4
- * Supports gpt-image-1, DALL-E 3, and any OpenAI-compatible service (Together AI, DeepInfra, etc.)
4
+ * Supports gpt-image-1.5, DALL-E 3, and any OpenAI-compatible service (Together AI, DeepInfra, etc.)
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.OpenAIProvider = void 0;
@@ -31,7 +31,7 @@ class OpenAIProvider {
31
31
  if (request.quality) {
32
32
  body.quality = request.quality;
33
33
  }
34
- // gpt-image-1 supports reference images via the image parameter
34
+ // gpt-image-1.5 supports reference images via the image parameter
35
35
  // DALL-E series does not support image input in the generations endpoint
36
36
  if (request.referenceImages?.length && !model.startsWith('dall-e')) {
37
37
  body.image = request.referenceImages;
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/lib/providers/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/lib/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AA4InE,wBAAgB,YAAY,cAyB3B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AA+JnE,wBAAgB,YAAY,cAyB3B"}
package/dist/server.js CHANGED
@@ -15,7 +15,17 @@ const get_inspiration_js_1 = require("./tools/get-inspiration.js");
15
15
  const generate_image_js_1 = require("./tools/generate-image.js");
16
16
  const comfyui_workflow_js_1 = require("./tools/comfyui-workflow.js");
17
17
  const upload_reference_image_js_1 = require("./tools/upload-reference-image.js");
18
- const SERVER_INSTRUCTIONS = `You are an AI image creation assistant powered by LibreArt / MeiGen.
18
+ const SERVER_INSTRUCTIONS = `You are an AI image creation assistant powered by MeiGen-Art.
19
+
20
+ ## Phase 0: Provider Check
21
+
22
+ If generate_image returns "No image generation providers configured", guide the user:
23
+ 1. **Recommended**: Get a MeiGen API token at https://www.meigen.ai
24
+ (sign in → click avatar → Settings → API Keys → create a new key starting with meigen_sk_)
25
+ 2. Then run /meigen:setup and paste the token
26
+ 3. Restart Claude Code to activate
27
+
28
+ Free features (search_gallery, enhance_prompt, get_inspiration, list_models) work without any API key.
19
29
 
20
30
  ## Phase 1: Intent Assessment
21
31
 
@@ -43,7 +53,16 @@ User knows what they want. Don't over-process.
43
53
  How to tell: the prompt has specific visual details, style references,
44
54
  or technical terms (lens, lighting, composition, etc.)
45
55
 
46
- ### D. BATCH REQUEST "4 directions", "multiple versions", "a set of assets"
56
+ ### D. EDIT/MODIFYuser provides an existing image and asks for changes
57
+ User wants to modify an existing image: add text, change background, adjust colors, remove elements, etc.
58
+ -> Do NOT enhance or expand the prompt. Keep it minimal and edit-focused.
59
+ -> Upload the reference image (if local), then generate with a short, literal prompt
60
+ describing ONLY the edit, e.g. "Add the text 'meigen.ai' at the bottom of this image"
61
+ -> The reference image carries all the visual context — the prompt only needs to describe the change
62
+ -> NEVER re-describe the entire original image in the prompt
63
+ How to tell: user provides/references an image AND describes a specific change (not a new creation)
64
+
65
+ ### E. BATCH REQUEST — "4 directions", "multiple versions", "a set of assets"
47
66
  User wants multiple images.
48
67
  -> Plan the variants first, show the plan, get confirmation
49
68
  -> THEN generate (see Phase 2 for limits)
@@ -112,7 +131,7 @@ You are a creative assistant, not a generation API wrapper.
112
131
  compress and upload it, then use the returned URL as referenceImages
113
132
  - Works with ALL providers:
114
133
  - MeiGen: full support (native)
115
- - OpenAI: gpt-image-1 supports image input (DALL-E does not)
134
+ - OpenAI: gpt-image-1.5 supports image input (DALL-E does not)
116
135
  - ComfyUI: requires a LoadImage node in the workflow (e.g., img2img workflows)
117
136
 
118
137
  ## Phase 4: Error Recovery
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8IH,oCAyBC;AArKD,oEAAmE;AACnE,2CAAwC;AACxC,uDAAqD;AACrD,iEAAiE;AACjE,iEAAiE;AACjE,2DAA2D;AAC3D,mEAAmE;AACnE,iEAAiE;AACjE,qEAAqE;AACrE,iFAAgF;AAEhF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEA+H4C,CAAA;AAExE,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,+BAAe,CAAC,MAAM,CAAC,CAAA;IAE7C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAA;IAED,4CAA4C;IAC5C,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,mCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAA,2CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEzC,mDAAmD;IACnD,IAAA,wDAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,8BAA8B;IAC9B,IAAA,6CAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvC,yEAAyE;IACzE,IAAA,yCAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAiKH,oCAyBC;AAxLD,oEAAmE;AACnE,2CAAwC;AACxC,uDAAqD;AACrD,iEAAiE;AACjE,iEAAiE;AACjE,2DAA2D;AAC3D,mEAAmE;AACnE,iEAAiE;AACjE,qEAAqE;AACrE,iFAAgF;AAEhF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAkJ4C,CAAA;AAExE,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,+BAAe,CAAC,MAAM,CAAC,CAAA;IAE7C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAA;IAED,4CAA4C;IAC5C,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,mCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAA,2CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEzC,mDAAmD;IACnD,IAAA,wDAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,8BAA8B;IAC9B,IAAA,6CAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvC,yEAAyE;IACzE,IAAA,yCAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAe3D,eAAO,MAAM,mBAAmB;;;;;;;;;;CAkB/B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,QAiFxG"}
1
+ {"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AA4C3D,eAAO,MAAM,mBAAmB;;;;;;;;;;CAkB/B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,QAiFxG"}
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.generateImageSchema = void 0;
10
10
  exports.registerGenerateImage = registerGenerateImage;
11
11
  const zod_1 = require("zod");
12
+ const fs_1 = require("fs");
13
+ const path_1 = require("path");
14
+ const os_1 = require("os");
15
+ const crypto_1 = require("crypto");
12
16
  const config_js_1 = require("../config.js");
13
17
  const openai_js_1 = require("../lib/providers/openai.js");
14
18
  const comfyui_js_1 = require("../lib/providers/comfyui.js");
@@ -16,10 +20,39 @@ const semaphore_js_1 = require("../lib/semaphore.js");
16
20
  // Concurrency control: ComfyUI serial (local GPU), API max 4 parallel
17
21
  const apiSemaphore = new semaphore_js_1.Semaphore(4);
18
22
  const comfyuiSemaphore = new semaphore_js_1.Semaphore(1);
23
+ /** Save base64 image to ~/Pictures/meigen/, returns the file path or undefined on failure */
24
+ function saveImageLocally(base64, mimeType) {
25
+ try {
26
+ const ext = mimeType.includes('png') ? 'png' : mimeType.includes('webp') ? 'webp' : 'jpg';
27
+ const date = new Date().toISOString().slice(0, 10);
28
+ const id = (0, crypto_1.randomBytes)(4).toString('hex');
29
+ const filename = `${date}_${id}.${ext}`;
30
+ const dir = (0, path_1.join)((0, os_1.homedir)(), 'Pictures', 'meigen');
31
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
32
+ const filePath = (0, path_1.join)(dir, filename);
33
+ (0, fs_1.writeFileSync)(filePath, Buffer.from(base64, 'base64'));
34
+ return filePath;
35
+ }
36
+ catch {
37
+ return undefined;
38
+ }
39
+ }
40
+ /** Safe notification — silently ignores if client doesn't support logging */
41
+ async function notify(extra, message) {
42
+ try {
43
+ await extra.sendNotification({
44
+ method: 'notifications/message',
45
+ params: { level: 'info', logger: 'generate_image', data: message },
46
+ });
47
+ }
48
+ catch {
49
+ // Client doesn't support logging — ignore
50
+ }
51
+ }
19
52
  exports.generateImageSchema = {
20
53
  prompt: zod_1.z.string().describe('The image generation prompt'),
21
54
  model: zod_1.z.string().optional()
22
- .describe('Model name. For OpenAI-compatible: gpt-image-1, dall-e-3, etc. For MeiGen: use model IDs from list_models.'),
55
+ .describe('Model name. For OpenAI-compatible: gpt-image-1.5, dall-e-3, etc. For MeiGen: use model IDs from list_models.'),
23
56
  size: zod_1.z.string().optional()
24
57
  .describe('Image size for OpenAI-compatible providers: "1024x1024", "1536x1024", "auto". MeiGen/ComfyUI: use aspectRatio instead.'),
25
58
  aspectRatio: zod_1.z.string().optional()
@@ -27,7 +60,7 @@ exports.generateImageSchema = {
27
60
  quality: zod_1.z.string().optional()
28
61
  .describe('Image quality for OpenAI-compatible providers: "low", "medium", "high"'),
29
62
  referenceImages: zod_1.z.array(zod_1.z.string()).optional()
30
- .describe('Public image URLs (http/https) for style/content guidance. Sources: gallery image URLs from search_gallery/get_inspiration, Image URLs from previous generate_image results, or URLs from upload_reference_image. Local file paths are NOT supported — use upload_reference_image to convert local files to URLs first. Works with all providers: MeiGen, OpenAI (gpt-image-1), ComfyUI (requires LoadImage node in workflow).'),
63
+ .describe('Public image URLs (http/https) for style/content guidance. Sources: gallery image URLs from search_gallery/get_inspiration, Image URLs from previous generate_image results, or URLs from upload_reference_image. Local file paths are NOT supported — use upload_reference_image to convert local files to URLs first. Works with all providers: MeiGen, OpenAI (gpt-image-1.5), ComfyUI (requires LoadImage node in workflow).'),
31
64
  provider: zod_1.z.enum(['openai', 'meigen', 'comfyui']).optional()
32
65
  .describe('Which provider to use. Auto-detected from configuration if not specified.'),
33
66
  workflow: zod_1.z.string().optional()
@@ -42,7 +75,7 @@ function registerGenerateImage(server, apiClient, config) {
42
75
  return {
43
76
  content: [{
44
77
  type: 'text',
45
- text: 'No image generation providers configured.\n\nTo configure, run /meigen:setup or set one of:\n- MEIGEN_API_TOKEN: Use MeiGen platform (see list_models for available models)\n- OPENAI_API_KEY: Use OpenAI/compatible API\n- Import a ComfyUI workflow for local generation\n\nSee list_models() for available options.',
78
+ text: 'No image generation providers configured.\n\nQuickest way to start:\n1. Get a MeiGen API token at https://www.meigen.ai (sign in → avatar → Settings → API Keys)\n2. Run /meigen:setup and paste your token\n\nOr configure one of:\n- MEIGEN_API_TOKEN: MeiGen platform (Nanobanana Pro, GPT image 1.5, Seedream 4.5)\n- OPENAI_API_KEY: OpenAI/compatible API (gpt-image-1.5, etc.)\n- Import a ComfyUI workflow for local GPU generation',
46
79
  }],
47
80
  isError: true,
48
81
  };
@@ -119,9 +152,11 @@ function registerGenerateImage(server, apiClient, config) {
119
152
  async function generateWithOpenAI(config, prompt, model, size, quality, referenceImages) {
120
153
  const provider = new openai_js_1.OpenAIProvider(config.openaiApiKey, config.openaiBaseUrl, config.openaiModel);
121
154
  const result = await provider.generate({ prompt, model, size, quality, referenceImages });
155
+ const savedPath = saveImageLocally(result.imageBase64, result.mimeType);
122
156
  const refNote = referenceImages?.length
123
157
  ? `\nUsed ${referenceImages.length} reference image(s) for guidance.`
124
158
  : '';
159
+ const pathNote = savedPath ? `\nSaved to: ${savedPath}` : '';
125
160
  return {
126
161
  content: [
127
162
  {
@@ -131,7 +166,7 @@ async function generateWithOpenAI(config, prompt, model, size, quality, referenc
131
166
  },
132
167
  {
133
168
  type: 'text',
134
- text: `Image generated successfully via OpenAI (${model || config.openaiModel}).${refNote}\n\nNote: OpenAI-generated images are returned as inline data and do not have a reusable URL.`,
169
+ text: `Image generated via OpenAI (${model || config.openaiModel}).${refNote}${pathNote}`,
135
170
  },
136
171
  ],
137
172
  };
@@ -148,20 +183,10 @@ async function generateWithMeiGen(apiClient, prompt, model, aspectRatio, referen
148
183
  throw new Error('No generation ID returned');
149
184
  }
150
185
  // Notify: generation submitted
151
- await extra.sendNotification({
152
- method: 'notifications/message',
153
- params: { level: 'info', logger: 'generate_image', data: 'Image generation submitted, waiting for result...' },
154
- });
186
+ await notify(extra, 'Image generation submitted, waiting for result...');
155
187
  // 2. Poll until completed (with progress notifications)
156
188
  const status = await apiClient.waitForGeneration(genResponse.generationId, 300_000, async (elapsedMs) => {
157
- await extra.sendNotification({
158
- method: 'notifications/message',
159
- params: {
160
- level: 'info',
161
- logger: 'generate_image',
162
- data: `Still generating... (${Math.round(elapsedMs / 1000)}s elapsed)`,
163
- },
164
- });
189
+ await notify(extra, `Still generating... (${Math.round(elapsedMs / 1000)}s elapsed)`);
165
190
  });
166
191
  if (status.status === 'failed') {
167
192
  throw new Error(status.error || 'Generation failed');
@@ -177,6 +202,8 @@ async function generateWithMeiGen(apiClient, prompt, model, aspectRatio, referen
177
202
  const buffer = await imageRes.arrayBuffer();
178
203
  const base64 = Buffer.from(buffer).toString('base64');
179
204
  const mimeType = imageRes.headers.get('content-type') || 'image/jpeg';
205
+ const savedPath = saveImageLocally(base64, mimeType);
206
+ const pathNote = savedPath ? `\nSaved to: ${savedPath}` : '';
180
207
  return {
181
208
  content: [
182
209
  {
@@ -186,7 +213,7 @@ async function generateWithMeiGen(apiClient, prompt, model, aspectRatio, referen
186
213
  },
187
214
  {
188
215
  type: 'text',
189
- text: `Image generated via MeiGen (model: ${model || 'default'}).\nImage URL: ${status.imageUrl}\n\nYou can use this URL as referenceImages in follow-up generate_image() calls for variations or style transfer.`,
216
+ text: `Image generated via MeiGen (model: ${model || 'default'}).${pathNote}\nImage URL: ${status.imageUrl}\n\nYou can use this URL as referenceImages in follow-up generate_image() calls for variations or style transfer.`,
190
217
  },
191
218
  ],
192
219
  };
@@ -211,21 +238,13 @@ async function generateWithComfyUI(config, prompt, workflow, aspectRatio, negati
211
238
  }
212
239
  }
213
240
  // Notify: generation submitted
214
- await extra.sendNotification({
215
- method: 'notifications/message',
216
- params: { level: 'info', logger: 'generate_image', data: `Submitting workflow "${workflowName}" to ComfyUI...` },
217
- });
241
+ await notify(extra, `Submitting workflow "${workflowName}" to ComfyUI...`);
218
242
  const provider = new comfyui_js_1.ComfyUIProvider(config.comfyuiUrl || 'http://localhost:8188');
219
243
  const result = await provider.generate(workflowData, prompt, { width, height, negativePrompt, referenceImages }, async (elapsedMs) => {
220
- await extra.sendNotification({
221
- method: 'notifications/message',
222
- params: {
223
- level: 'info',
224
- logger: 'generate_image',
225
- data: `Still generating... (${Math.round(elapsedMs / 1000)}s elapsed)`,
226
- },
227
- });
244
+ await notify(extra, `Still generating... (${Math.round(elapsedMs / 1000)}s elapsed)`);
228
245
  });
246
+ const savedPath = saveImageLocally(result.imageBase64, result.mimeType);
247
+ const pathNote = savedPath ? `\nSaved to: ${savedPath}` : '';
229
248
  return {
230
249
  content: [
231
250
  {
@@ -235,7 +254,7 @@ async function generateWithComfyUI(config, prompt, workflow, aspectRatio, negati
235
254
  },
236
255
  {
237
256
  type: 'text',
238
- text: `Image generated via ComfyUI (workflow: ${workflowName}).${result.referenceImageWarning ? `\n\nWarning: ${result.referenceImageWarning}` : ''}\n\nNote: ComfyUI-generated images are returned as inline data and do not have a reusable URL.`,
257
+ text: `Image generated via ComfyUI (workflow: ${workflowName}).${pathNote}${result.referenceImageWarning ? `\n\nWarning: ${result.referenceImageWarning}` : ''}`,
239
258
  },
240
259
  ],
241
260
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-image.js","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-image.js","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meigen",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Visual creative expert plugin — search inspiration, enhance prompts, and generate AI images with intelligent workflow orchestration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -46,8 +46,7 @@ Present these options to the user:
46
46
 
47
47
  ### Option A: MeiGen Platform (Recommended)
48
48
 
49
- - Supports **Nanobanana Pro**, **Seedream 4.5**, **Midjourney Niji7** and more
50
- - Free daily credits included
49
+ - Supports **Nanobanana Pro**, **GPT image 1.5**, **Seedream 4.5** and more
51
50
  - Reference image support for style transfer
52
51
  - No additional accounts needed — just get a token from meigen.ai
53
52
 
@@ -178,7 +177,7 @@ Collect the following information. Present common presets first for convenience:
178
177
 
179
178
  | Service | Base URL | Default Model |
180
179
  |---------|----------|---------------|
181
- | **OpenAI** | `https://api.openai.com` (default) | `gpt-image-1` |
180
+ | **OpenAI** | `https://api.openai.com` (default) | `gpt-image-1.5` |
182
181
  | **Together AI** | `https://api.together.xyz/v1` | (check their docs) |
183
182
  | **Fireworks AI** | `https://api.fireworks.ai/inference/v1` | (check their docs) |
184
183
 
@@ -194,7 +193,7 @@ Ask the user to either pick a preset or provide custom values.
194
193
  - Only needed if using a non-OpenAI service
195
194
 
196
195
  3. **Model Name** (optional): Which model to use
197
- - Default: `gpt-image-1`
196
+ - Default: `gpt-image-1.5`
198
197
  - Different services use different model names
199
198
 
200
199
  ### Optional: Test the connection
@@ -210,7 +209,7 @@ This helps catch invalid keys or wrong URLs before saving.
210
209
 
211
210
  Proceed to **Step 4** with config from the collected fields (see bottom of this section for format).
212
211
 
213
- Only include fields that differ from defaults. Omit `openaiBaseUrl` if it's `https://api.openai.com`, omit `openaiModel` if it's `gpt-image-1`.
212
+ Only include fields that differ from defaults. Omit `openaiBaseUrl` if it's `https://api.openai.com`, omit `openaiModel` if it's `gpt-image-1.5`.
214
213
 
215
214
  ## Step 3D: Import from curl Example
216
215
 
@@ -221,7 +220,7 @@ Ask the user to paste their curl command. Common formats they might paste:
221
220
  curl https://api.openai.com/v1/images/generations \
222
221
  -H "Authorization: Bearer sk-xxx" \
223
222
  -H "Content-Type: application/json" \
224
- -d '{"model": "gpt-image-1", "prompt": "a cat", "n": 1, "size": "1024x1024"}'
223
+ -d '{"model": "gpt-image-1.5", "prompt": "a cat", "n": 1, "size": "1024x1024"}'
225
224
  ```
226
225
 
227
226
  **Format 2: Simple model list test**