meigen 0.1.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.
Files changed (83) hide show
  1. package/README.md +242 -0
  2. package/README.zh-CN.md +242 -0
  3. package/bin/meigen-mcp.js +2 -0
  4. package/data/trending-prompts.json +26737 -0
  5. package/dist/config.d.ts +24 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +71 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +18 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/lib/meigen-api.d.ts +64 -0
  14. package/dist/lib/meigen-api.d.ts.map +1 -0
  15. package/dist/lib/meigen-api.js +118 -0
  16. package/dist/lib/meigen-api.js.map +1 -0
  17. package/dist/lib/prompt-library.d.ts +44 -0
  18. package/dist/lib/prompt-library.d.ts.map +1 -0
  19. package/dist/lib/prompt-library.js +130 -0
  20. package/dist/lib/prompt-library.js.map +1 -0
  21. package/dist/lib/prompts.d.ts +21 -0
  22. package/dist/lib/prompts.d.ts.map +1 -0
  23. package/dist/lib/prompts.js +116 -0
  24. package/dist/lib/prompts.js.map +1 -0
  25. package/dist/lib/providers/comfyui.d.ts +82 -0
  26. package/dist/lib/providers/comfyui.d.ts.map +1 -0
  27. package/dist/lib/providers/comfyui.js +436 -0
  28. package/dist/lib/providers/comfyui.js.map +1 -0
  29. package/dist/lib/providers/gemini.d.ts +13 -0
  30. package/dist/lib/providers/gemini.d.ts.map +1 -0
  31. package/dist/lib/providers/gemini.js +63 -0
  32. package/dist/lib/providers/gemini.js.map +1 -0
  33. package/dist/lib/providers/openai.d.ts +14 -0
  34. package/dist/lib/providers/openai.d.ts.map +1 -0
  35. package/dist/lib/providers/openai.js +75 -0
  36. package/dist/lib/providers/openai.js.map +1 -0
  37. package/dist/lib/providers/types.d.ts +22 -0
  38. package/dist/lib/providers/types.d.ts.map +1 -0
  39. package/dist/lib/providers/types.js +7 -0
  40. package/dist/lib/providers/types.js.map +1 -0
  41. package/dist/lib/semaphore.d.ts +13 -0
  42. package/dist/lib/semaphore.d.ts.map +1 -0
  43. package/dist/lib/semaphore.js +32 -0
  44. package/dist/lib/semaphore.js.map +1 -0
  45. package/dist/lib/upload.d.ts +17 -0
  46. package/dist/lib/upload.d.ts.map +1 -0
  47. package/dist/lib/upload.js +135 -0
  48. package/dist/lib/upload.js.map +1 -0
  49. package/dist/server.d.ts +7 -0
  50. package/dist/server.d.ts.map +1 -0
  51. package/dist/server.js +163 -0
  52. package/dist/server.js.map +1 -0
  53. package/dist/tools/comfyui-workflow.d.ts +17 -0
  54. package/dist/tools/comfyui-workflow.d.ts.map +1 -0
  55. package/dist/tools/comfyui-workflow.js +230 -0
  56. package/dist/tools/comfyui-workflow.js.map +1 -0
  57. package/dist/tools/enhance-prompt.d.ts +12 -0
  58. package/dist/tools/enhance-prompt.d.ts.map +1 -0
  59. package/dist/tools/enhance-prompt.js +27 -0
  60. package/dist/tools/enhance-prompt.js.map +1 -0
  61. package/dist/tools/generate-image.d.ts +23 -0
  62. package/dist/tools/generate-image.d.ts.map +1 -0
  63. package/dist/tools/generate-image.js +266 -0
  64. package/dist/tools/generate-image.js.map +1 -0
  65. package/dist/tools/get-inspiration.d.ts +12 -0
  66. package/dist/tools/get-inspiration.d.ts.map +1 -0
  67. package/dist/tools/get-inspiration.js +111 -0
  68. package/dist/tools/get-inspiration.js.map +1 -0
  69. package/dist/tools/list-models.d.ts +13 -0
  70. package/dist/tools/list-models.d.ts.map +1 -0
  71. package/dist/tools/list-models.js +104 -0
  72. package/dist/tools/list-models.js.map +1 -0
  73. package/dist/tools/search-gallery.d.ts +15 -0
  74. package/dist/tools/search-gallery.d.ts.map +1 -0
  75. package/dist/tools/search-gallery.js +78 -0
  76. package/dist/tools/search-gallery.js.map +1 -0
  77. package/dist/tools/upload-reference-image.d.ts +13 -0
  78. package/dist/tools/upload-reference-image.d.ts.map +1 -0
  79. package/dist/tools/upload-reference-image.js +69 -0
  80. package/dist/tools/upload-reference-image.js.map +1 -0
  81. package/package.json +45 -0
  82. package/skills/setup/SKILL.md +324 -0
  83. package/skills/visual-creative/SKILL.md +185 -0
package/README.md ADDED
@@ -0,0 +1,242 @@
1
+ <p align="center">
2
+ <img src="assets/banner.jpg" alt="LibreArt Banner" width="600">
3
+ </p>
4
+
5
+ <h1 align="center">
6
+ LibreArt — Visual Creative Expert
7
+ </h1>
8
+
9
+ <p align="center">
10
+ <strong>Turn your AI assistant into a creative director for image generation</strong><br>
11
+ <sub>MCP plugin for Claude Code, OpenClaw, and any MCP-compatible host</sub>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://www.meigen.ai"><img src="https://img.shields.io/badge/Gallery-meigen.ai-blue?style=flat-square" alt="Gallery"></a>
16
+ <a href="#tools"><img src="https://img.shields.io/badge/Tools-7-green?style=flat-square" alt="7 Tools"></a>
17
+ <a href="#providers"><img src="https://img.shields.io/badge/Providers-3-orange?style=flat-square" alt="3 Providers"></a>
18
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square" alt="MIT"></a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <a href="#quick-start">Quick Start</a> •
23
+ <a href="#what-can-it-do">What Can It Do</a> •
24
+ <a href="#providers">Providers</a> •
25
+ <a href="#configuration">Configuration</a>
26
+ </p>
27
+
28
+ <p align="center">
29
+ <strong>English</strong> | <a href="README.zh-CN.md">中文</a>
30
+ </p>
31
+
32
+ ---
33
+
34
+ ## Why LibreArt?
35
+
36
+ Most AI image tools are either simple prompt-in-image-out APIs, or complex UIs that require expertise.
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.
39
+
40
+ **No prompt engineering skills needed.** Just talk to your AI assistant like you would to a creative director.
41
+
42
+ ---
43
+
44
+ ## Installation
45
+
46
+ ### Claude Code
47
+
48
+ One command — no clone, no build:
49
+
50
+ ```bash
51
+ claude mcp add --transport stdio libreart -- npx -y meigen
52
+ ```
53
+
54
+ To pass an API key at install time:
55
+
56
+ ```bash
57
+ claude mcp add --transport stdio libreart \
58
+ --env MEIGEN_API_TOKEN=meigen_sk_xxx \
59
+ -- npx -y meigen
60
+ ```
61
+
62
+ Or configure later via the interactive setup wizard:
63
+
64
+ ```
65
+ /meigen:setup
66
+ ```
67
+
68
+ ### OpenClaw
69
+
70
+ Add to your `~/.openclaw/openclaw.json` (requires [MCP adapter](https://github.com/androidStern/openclaw-mcp-adapter)):
71
+
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
+ ```
90
+
91
+ ### Any MCP-Compatible Host
92
+
93
+ Add to your `.mcp.json` or equivalent config:
94
+
95
+ ```json
96
+ {
97
+ "mcpServers": {
98
+ "libreart": {
99
+ "type": "stdio",
100
+ "command": "npx",
101
+ "args": ["-y", "libreart"],
102
+ "env": {
103
+ "MEIGEN_API_TOKEN": "meigen_sk_..."
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ > **Tip:** Even without an API key, free features (inspiration search, prompt enhancement, model listing) work immediately.
111
+
112
+ ---
113
+
114
+ ## What Can It Do
115
+
116
+ ### 1. Explore & Get Inspired
117
+
118
+ > "Help me think of something for a social media post"
119
+
120
+ When you're not sure what to create, the assistant browses the curated gallery of 1,300+ trending prompts, shows you visual previews, and lets you pick a style before generating anything.
121
+
122
+ ### 2. Simple Idea to Pro Image
123
+
124
+ > "A cat sitting in a Japanese garden"
125
+
126
+ Short descriptions get automatically enhanced into professional prompts with specific visual details — lighting, composition, lens, color palette — then generated. No prompt engineering knowledge needed.
127
+
128
+ ### 3. Batch & Variant Generation
129
+
130
+ > "Design 4 different logo concepts for a coffee brand"
131
+
132
+ The assistant writes distinct creative directions for each variant, generates them in parallel (up to 4 at once), and presents the results with comparative commentary.
133
+
134
+ ### 4. Multi-Step Creative Workflow
135
+
136
+ > "Create a logo, then show me how it looks on a mug and a t-shirt"
137
+
138
+ The assistant chains generation steps: creates the base image first, then uses it as a reference to generate product mockups — maintaining visual consistency across the series.
139
+
140
+ ### 5. Reference Image Style Transfer
141
+
142
+ > "Use this local photo as a style reference for my new image"
143
+
144
+ Local images are automatically compressed and uploaded. The returned URL works as a reference across all three providers — for style transfer, composition guidance, or img2img workflows.
145
+
146
+ ---
147
+
148
+ <h2 id="tools">Tools</h2>
149
+
150
+ | Tool | Free | Description |
151
+ |------|------|-------------|
152
+ | `search_gallery` | Yes | Search 1,300+ curated trending prompts with visual previews |
153
+ | `get_inspiration` | Yes | Get full prompt, all images, and metadata for any gallery entry |
154
+ | `enhance_prompt` | Yes | Transform a brief idea into a professional image prompt (runs locally) |
155
+ | `list_models` | Yes | List available models across all configured providers |
156
+ | `upload_reference_image` | Yes | Compress and upload a local image for use as a reference |
157
+ | `comfyui_workflow` | Yes | Manage ComfyUI workflow templates: list, view, import, modify, delete |
158
+ | `generate_image` | Key | Generate an image — routes to the best available provider automatically |
159
+
160
+ ---
161
+
162
+ <h2 id="providers">Providers</h2>
163
+
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.
165
+
166
+ ### MeiGen Platform (Recommended)
167
+
168
+ Cloud API with multiple model options: NanoBanana Pro, Seedream 4.5, Midjourney Niji7, and more. Free daily credits included.
169
+
170
+ ```json
171
+ { "meigenApiToken": "meigen_sk_..." }
172
+ ```
173
+
174
+ ### ComfyUI (Local)
175
+
176
+ Run generation on your own GPU with full control over models, samplers, and workflow parameters. Import any ComfyUI API-format workflow.
177
+
178
+ ```json
179
+ {
180
+ "comfyuiUrl": "http://localhost:8188",
181
+ "comfyuiDefaultWorkflow": "txt2img"
182
+ }
183
+ ```
184
+
185
+ ### OpenAI-Compatible API
186
+
187
+ Bring your own API key for OpenAI (gpt-image-1), Together AI, Fireworks AI, or any OpenAI-compatible service.
188
+
189
+ ```json
190
+ {
191
+ "openaiApiKey": "sk-...",
192
+ "openaiBaseUrl": "https://api.openai.com",
193
+ "openaiModel": "gpt-image-1"
194
+ }
195
+ ```
196
+
197
+ > All three providers support **reference images**. MeiGen and OpenAI accept URLs directly; ComfyUI injects them into LoadImage nodes in your workflow.
198
+
199
+ ---
200
+
201
+ ## Configuration
202
+
203
+ ### Interactive Setup (Recommended)
204
+
205
+ ```
206
+ /meigen:setup
207
+ ```
208
+
209
+ The wizard walks you through provider selection, API key entry, and ComfyUI workflow import. You can also paste a `curl` command from your API provider's docs — it auto-extracts the key, URL, and model.
210
+
211
+ ### Config File
212
+
213
+ Configuration is stored at `~/.config/meigen/config.json`. ComfyUI workflows are stored at `~/.config/meigen/workflows/`.
214
+
215
+ ### Environment Variables
216
+
217
+ Environment variables take priority over the config file.
218
+
219
+ | Variable | Description |
220
+ |----------|-------------|
221
+ | `MEIGEN_API_TOKEN` | MeiGen platform token |
222
+ | `OPENAI_API_KEY` | OpenAI / compatible API key |
223
+ | `OPENAI_BASE_URL` | API base URL (default: `https://api.openai.com`) |
224
+ | `OPENAI_MODEL` | Default model (default: `gpt-image-1`) |
225
+ | `COMFYUI_URL` | ComfyUI server URL (default: `http://localhost:8188`) |
226
+
227
+ ---
228
+
229
+ ## Development
230
+
231
+ ```bash
232
+ npm install # Install dependencies
233
+ npm run build # Compile TypeScript → dist/
234
+ npm run dev # Development mode (tsx)
235
+ npm run typecheck # Type check without emitting
236
+ ```
237
+
238
+ ---
239
+
240
+ ## License
241
+
242
+ MIT
@@ -0,0 +1,242 @@
1
+ <p align="center">
2
+ <img src="assets/banner.jpg" alt="LibreArt Banner" width="600">
3
+ </p>
4
+
5
+ <h1 align="center">
6
+ LibreArt — AI 视觉创意专家
7
+ </h1>
8
+
9
+ <p align="center">
10
+ <strong>让你的 AI 助手成为图片生成的创意总监</strong><br>
11
+ <sub>适用于 Claude Code、OpenClaw 及任何 MCP 兼容客户端的插件</sub>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://www.meigen.ai"><img src="https://img.shields.io/badge/Gallery-meigen.ai-blue?style=flat-square" alt="Gallery"></a>
16
+ <a href="#工具"><img src="https://img.shields.io/badge/Tools-7-green?style=flat-square" alt="7 Tools"></a>
17
+ <a href="#生成后端"><img src="https://img.shields.io/badge/Providers-3-orange?style=flat-square" alt="3 Providers"></a>
18
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square" alt="MIT"></a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <a href="#安装">安装</a> •
23
+ <a href="#它能做什么">它能做什么</a> •
24
+ <a href="#生成后端">生成后端</a> •
25
+ <a href="#配置">配置</a>
26
+ </p>
27
+
28
+ <p align="center">
29
+ <a href="README.md">English</a> | <strong>中文</strong>
30
+ </p>
31
+
32
+ ---
33
+
34
+ ## 为什么选择 LibreArt?
35
+
36
+ 大多数 AI 图片工具,要么是简单的"输入提示词 → 输出图片"的 API,要么是需要专业知识的复杂界面。
37
+
38
+ LibreArt 走了一条不同的路:它赋予你的 AI 助手**专业的创意能力**——1,300+ 精选热门提示词、风格化的提示词增强技术、多步骤工作流编排——你只需要用自然语言描述想要什么,就能得到专业品质的结果。
39
+
40
+ **不需要任何提示词工程知识。** 像跟创意总监对话一样,跟你的 AI 助手聊就行了。
41
+
42
+ ---
43
+
44
+ ## 安装
45
+
46
+ ### Claude Code
47
+
48
+ 一行命令,无需 clone 或构建:
49
+
50
+ ```bash
51
+ claude mcp add --transport stdio libreart -- npx -y meigen
52
+ ```
53
+
54
+ 安装时传入 API Key:
55
+
56
+ ```bash
57
+ claude mcp add --transport stdio libreart \
58
+ --env MEIGEN_API_TOKEN=meigen_sk_xxx \
59
+ -- npx -y meigen
60
+ ```
61
+
62
+ 也可以安装后通过交互式向导配置:
63
+
64
+ ```
65
+ /meigen:setup
66
+ ```
67
+
68
+ ### OpenClaw
69
+
70
+ 添加到 `~/.openclaw/openclaw.json`(需要 [MCP adapter](https://github.com/androidStern/openclaw-mcp-adapter)):
71
+
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
+ ```
90
+
91
+ ### 其他 MCP 兼容客户端
92
+
93
+ 添加到 `.mcp.json` 或对应配置文件:
94
+
95
+ ```json
96
+ {
97
+ "mcpServers": {
98
+ "libreart": {
99
+ "type": "stdio",
100
+ "command": "npx",
101
+ "args": ["-y", "libreart"],
102
+ "env": {
103
+ "MEIGEN_API_TOKEN": "meigen_sk_..."
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ > **提示:** 即使没有 API Key,免费功能(灵感搜索、提示词增强、模型列表)也可以直接使用。
111
+
112
+ ---
113
+
114
+ ## 它能做什么
115
+
116
+ ### 1. 探索灵感
117
+
118
+ > "帮我想想社交媒体发什么图"
119
+
120
+ 当你还没有明确想法时,助手会浏览 1,300+ 精选热门提示词库,展示视觉预览,让你先挑选喜欢的风格,再开始生成。
121
+
122
+ ### 2. 简单想法变专业图片
123
+
124
+ > "一只猫坐在日式庭院里"
125
+
126
+ 简短的描述会被自动增强为专业提示词——补充光影、构图、镜头、配色等视觉细节——然后直接生成。不需要任何提示词工程知识。
127
+
128
+ ### 3. 批量变体生成
129
+
130
+ > "设计 4 个不同风格的咖啡品牌 logo"
131
+
132
+ 助手会为每个变体撰写不同的创意方向,最多 4 张并行生成,并附上对比点评。
133
+
134
+ ### 4. 多步骤创意工作流
135
+
136
+ > "先做一个 logo,然后看看印在马克杯和 T 恤上的效果"
137
+
138
+ 助手会串联生成步骤:先生成基础图片,再将其作为参考图生成产品效果图——在整个系列中保持视觉一致性。
139
+
140
+ ### 5. 参考图风格迁移
141
+
142
+ > "用这张本地照片的风格来生成新图片"
143
+
144
+ 本地图片会自动压缩上传,返回的 URL 可用于所有三种后端——风格迁移、构图参考或 img2img 工作流。
145
+
146
+ ---
147
+
148
+ <h2 id="工具">工具</h2>
149
+
150
+ | 工具 | 免费 | 说明 |
151
+ |------|------|------|
152
+ | `search_gallery` | 是 | 搜索 1,300+ 精选热门提示词,附带视觉预览 |
153
+ | `get_inspiration` | 是 | 获取某条提示词的完整内容、所有图片和元数据 |
154
+ | `enhance_prompt` | 是 | 将简短想法转化为专业图片提示词(本地运行) |
155
+ | `list_models` | 是 | 列出所有已配置后端的可用模型 |
156
+ | `upload_reference_image` | 是 | 压缩并上传本地图片,用作参考图 |
157
+ | `comfyui_workflow` | 是 | 管理 ComfyUI 工作流模板:列表、查看、导入、修改、删除 |
158
+ | `generate_image` | 需要 Key | 生成图片——自动路由到最佳可用后端 |
159
+
160
+ ---
161
+
162
+ <h2 id="生成后端">生成后端</h2>
163
+
164
+ LibreArt 支持三种图片生成后端,可以配置一个或多个——助手会自动选择最佳可用后端,也可以在每次请求时手动指定。
165
+
166
+ ### MeiGen 平台(推荐)
167
+
168
+ 云端 API,支持多种模型:NanoBanana Pro、Seedream 4.5、Midjourney Niji7 等。包含每日免费额度。
169
+
170
+ ```json
171
+ { "meigenApiToken": "meigen_sk_..." }
172
+ ```
173
+
174
+ ### ComfyUI(本地)
175
+
176
+ 在自己的 GPU 上运行,完全控制模型、采样器和工作流参数。支持导入任意 ComfyUI API 格式的工作流。
177
+
178
+ ```json
179
+ {
180
+ "comfyuiUrl": "http://localhost:8188",
181
+ "comfyuiDefaultWorkflow": "txt2img"
182
+ }
183
+ ```
184
+
185
+ ### OpenAI 兼容 API
186
+
187
+ 使用你自己的 API Key 接入 OpenAI(gpt-image-1)、Together AI、Fireworks AI 或任何 OpenAI 兼容服务。
188
+
189
+ ```json
190
+ {
191
+ "openaiApiKey": "sk-...",
192
+ "openaiBaseUrl": "https://api.openai.com",
193
+ "openaiModel": "gpt-image-1"
194
+ }
195
+ ```
196
+
197
+ > 三种后端都支持**参考图**。MeiGen 和 OpenAI 直接接受 URL;ComfyUI 会将参考图注入到工作流的 LoadImage 节点中。
198
+
199
+ ---
200
+
201
+ ## 配置
202
+
203
+ ### 交互式配置(推荐)
204
+
205
+ ```
206
+ /meigen:setup
207
+ ```
208
+
209
+ 配置向导会引导你选择后端、输入 API Key、导入 ComfyUI 工作流。你也可以直接粘贴 API 提供商文档中的 `curl` 命令——自动提取 Key、URL 和模型名。
210
+
211
+ ### 配置文件
212
+
213
+ 配置存储在 `~/.config/meigen/config.json`。ComfyUI 工作流存储在 `~/.config/meigen/workflows/`。
214
+
215
+ ### 环境变量
216
+
217
+ 环境变量优先级高于配置文件。
218
+
219
+ | 变量 | 说明 |
220
+ |------|------|
221
+ | `MEIGEN_API_TOKEN` | MeiGen 平台 Token |
222
+ | `OPENAI_API_KEY` | OpenAI / 兼容 API Key |
223
+ | `OPENAI_BASE_URL` | API 地址(默认:`https://api.openai.com`) |
224
+ | `OPENAI_MODEL` | 默认模型(默认:`gpt-image-1`) |
225
+ | `COMFYUI_URL` | ComfyUI 服务地址(默认:`http://localhost:8188`) |
226
+
227
+ ---
228
+
229
+ ## 开发
230
+
231
+ ```bash
232
+ npm install # 安装依赖
233
+ npm run build # 编译 TypeScript → dist/
234
+ npm run dev # 开发模式(tsx)
235
+ npm run typecheck # 类型检查
236
+ ```
237
+
238
+ ---
239
+
240
+ ## 许可证
241
+
242
+ MIT
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ require('../dist/index.js');