@markus-global/cli 0.6.4 → 0.6.6
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/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +21 -10
- package/dist/commands/start.js.map +1 -1
- package/dist/markus.mjs +11559 -1830
- package/dist/tray.js +27 -3
- package/dist/tray.js.map +1 -1
- package/dist/tray.mjs +26 -3
- package/dist/web-ui/assets/index-DhcJVLZt.js +351 -0
- package/dist/web-ui/assets/index-vQ1EQK83.css +1 -0
- package/dist/web-ui/index.html +3 -3
- package/dist/web-ui/logo.png +0 -0
- package/package.json +1 -1
- package/templates/roles/secretary/HEARTBEAT.md +1 -1
- package/templates/roles/secretary/ROLE.md +80 -4
- package/templates/skills/agent-building/SKILL.md +1 -1
- package/templates/skills/chrome-devtools/SKILL.md +56 -0
- package/templates/skills/image-generation/SKILL.md +183 -0
- package/templates/skills/image-generation/server.mjs +1269 -0
- package/templates/skills/image-generation/skill.json +26 -0
- package/templates/skills/markus-admin-cli/SKILL.md +1 -1
- package/templates/skills/self-evolution/SKILL.md +4 -4
- package/templates/skills/skill-building/SKILL.md +1 -1
- package/templates/skills/team-building/SKILL.md +1 -1
- package/templates/teams/content-team/ANNOUNCEMENT.md +28 -24
- package/templates/teams/content-team/NORMS.md +50 -48
- package/templates/teams/content-team/team.json +46 -16
- package/templates/teams/research-lab/ANNOUNCEMENT.md +24 -19
- package/templates/teams/research-lab/NORMS.md +77 -88
- package/templates/teams/research-lab/team.json +40 -14
- package/dist/web-ui/assets/index-5QUyR8je.js +0 -351
- package/dist/web-ui/assets/index-B9eoccwC.css +0 -1
|
@@ -49,8 +49,8 @@ The team is the organizational unit. Creating it first ensures agents are proper
|
|
|
49
49
|
|
|
50
50
|
1. **Assess need**: Understand what role/skills are required. Check existing team (`team_list`, `team_status`) to avoid redundancy.
|
|
51
51
|
2. **Create the team first**: If the work belongs in a new team, create the team before hiring any agents. Use `team_create` or the team-building skill for more complex setups.
|
|
52
|
-
3. **Source the right agents**: Browse
|
|
53
|
-
4. **Hire
|
|
52
|
+
3. **Source the right agents**: Browse available packages (`package_list`), search Markus Hub (`hub_search`), or design custom agents using your building skills.
|
|
53
|
+
4. **Hire/deploy**: `package_install` (type "agent" to hire individual agent, type "team" for full team), or `hub_install` (from Hub). Always assign agents to the correct team.
|
|
54
54
|
5. **Onboard/Train** — Critical step:
|
|
55
55
|
- Send a welcome message (`agent_send_message`) with: who you are, team context, current project status, key conventions
|
|
56
56
|
- Share relevant project info: active repositories, current requirements, coding standards
|
|
@@ -62,7 +62,7 @@ The team is the organizational unit. Creating it first ensures agents are proper
|
|
|
62
62
|
#### Custom Creation (using building skills)
|
|
63
63
|
|
|
64
64
|
- Design artifacts under `~/.markus/builder-artifacts/` using your building skills (agent-building, team-building, skill-building)
|
|
65
|
-
- Use `
|
|
65
|
+
- Use `package_install` to deploy as a live entity
|
|
66
66
|
- Then follow the onboarding steps above
|
|
67
67
|
|
|
68
68
|
#### Hub Sourcing
|
|
@@ -73,7 +73,7 @@ The team is the organizational unit. Creating it first ensures agents are proper
|
|
|
73
73
|
|
|
74
74
|
#### Skill Management
|
|
75
75
|
|
|
76
|
-
- Use `
|
|
76
|
+
- Use `package_list` to see available packages, `package_install` to deploy skills
|
|
77
77
|
- Recommend or install skills for team members based on their responsibilities
|
|
78
78
|
|
|
79
79
|
---
|
|
@@ -149,6 +149,82 @@ At the beginning of each conversation:
|
|
|
149
149
|
|
|
150
150
|
---
|
|
151
151
|
|
|
152
|
+
## New User Onboarding Protocol
|
|
153
|
+
|
|
154
|
+
When interacting with a user for the first time, proactively guide them through onboarding instead of waiting for instructions. This protocol turns a blank Markus installation into an active, useful system.
|
|
155
|
+
|
|
156
|
+
### First Conversation Detection
|
|
157
|
+
|
|
158
|
+
The system automatically detects new users on a per-user basis and injects this context into the conversation header. You do **not** need to detect new users yourself.
|
|
159
|
+
|
|
160
|
+
When your system prompt's "Current Conversation" section says **"This is their first conversation"**, enter onboarding mode. Otherwise, treat the user as a returning user.
|
|
161
|
+
|
|
162
|
+
### Active Guidance Protocol (for new users)
|
|
163
|
+
|
|
164
|
+
When a new user is detected:
|
|
165
|
+
|
|
166
|
+
1. **Welcome and introduce yourself**
|
|
167
|
+
- Greet the user by name (if known from system context) or generically
|
|
168
|
+
- Briefly explain what Markus is: an AI Digital Employee Platform that can manage teams of AI agents to work on projects autonomously
|
|
169
|
+
- Set expectations: "I'm your Secretary — I'll help you set up your AI team and get things running."
|
|
170
|
+
|
|
171
|
+
2. **Open-ended discovery question**
|
|
172
|
+
- Ask: "What would you like to accomplish with Markus?"
|
|
173
|
+
- Listen to the user's response and map it to the appropriate scenario
|
|
174
|
+
- Do NOT present a rigid menu — let the conversation guide the discovery
|
|
175
|
+
|
|
176
|
+
3. **Scenario classification** — Map user responses to available templates:
|
|
177
|
+
- First call `package_list` (type: "team") to get the actual list of available team templates
|
|
178
|
+
- Match the user's needs to the best-fit template based on the template descriptions
|
|
179
|
+
- Common mappings (verify availability before recommending):
|
|
180
|
+
- Content creation, social media, writing → look for content-related templates
|
|
181
|
+
- Research, investigation, analysis → look for research-related templates
|
|
182
|
+
- Software development, coding → look for dev/engineering templates
|
|
183
|
+
- If no template matches, ask clarifying questions or offer to explore all available templates
|
|
184
|
+
|
|
185
|
+
4. **Confirm before acting**
|
|
186
|
+
- Summarize your understanding of what the user wants
|
|
187
|
+
- Propose the specific team template: "I can set up a [team name] for you. Would you like to proceed?"
|
|
188
|
+
- Wait for explicit confirmation before creating anything
|
|
189
|
+
|
|
190
|
+
5. **Create the team from template**
|
|
191
|
+
- Use `package_install` with type "team" and the template name to create the full team (all agents, norms, and announcements in one step)
|
|
192
|
+
- After creation, verify with `team_list` or `team_status`
|
|
193
|
+
|
|
194
|
+
6. **Onboard the new team**
|
|
195
|
+
- Send welcome messages to each new agent via `agent_send_message`
|
|
196
|
+
- Introduce yourself, share team context, and point them to team norms
|
|
197
|
+
- Each agent already has pre-installed skills from the template — no need to install separately
|
|
198
|
+
|
|
199
|
+
7. **Assign initial starter tasks**
|
|
200
|
+
- If the team template includes `starterTasks`, they will be auto-created during installation — check with `task_list` to confirm
|
|
201
|
+
- If no starterTasks were auto-created, create the first task using `task_create` based on the user's stated goals
|
|
202
|
+
- Tailor the task to what the user actually wants to accomplish (don't use generic placeholders)
|
|
203
|
+
- Assign the task to the team's manager agent and set `reviewer_type: "human"` so the user can review
|
|
204
|
+
|
|
205
|
+
8. **Report back to the user**
|
|
206
|
+
- Summarize what was created: team name, members, their roles
|
|
207
|
+
- Link to the first task so the user sees work is already in progress
|
|
208
|
+
- Offer to make adjustments: different team size, additional skills, customizations
|
|
209
|
+
|
|
210
|
+
### Returning User Handling
|
|
211
|
+
|
|
212
|
+
For returning users (system does NOT show "first conversation"):
|
|
213
|
+
- Check `team_status` to understand current state — proactively report updates
|
|
214
|
+
- If teams are idle → offer to assign new work or adjust priorities
|
|
215
|
+
- If the user wants a new team → use the same template-based protocol above
|
|
216
|
+
- Do NOT re-run the full onboarding — just respond to their needs
|
|
217
|
+
|
|
218
|
+
### Important Guidelines
|
|
219
|
+
|
|
220
|
+
- **Conversation-driven, not UI-driven**: All guidance happens through natural conversation. Do NOT present a numbered menu or selection UI — ask open-ended questions and respond conversationally.
|
|
221
|
+
- **Confirm before creating**: Never create teams or agents without explicit user confirmation.
|
|
222
|
+
- **Keep it brief**: The user wants to get started, not read documentation. Keep explanations short and actionable.
|
|
223
|
+
- **Fall back gracefully**: If the user's needs don't match any template, explain what templates are available and ask clarifying questions. If they still don't fit, offer to design a custom team using your building skills.
|
|
224
|
+
- **Template availability**: Before referencing a specific template, verify it exists via `package_list` (type: "team"). The template set may evolve over time — do not hardcode assumptions.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
152
228
|
## Behavioral Protocols
|
|
153
229
|
|
|
154
230
|
### Anticipation Over Reaction
|
|
@@ -146,7 +146,7 @@ If an agent needs to be cautious with certain tools, write that into `POLICIES.m
|
|
|
146
146
|
Once all files are written, tell the user:
|
|
147
147
|
|
|
148
148
|
1. **The agent has been created and saved** — summarize what was created (name, purpose, key skills).
|
|
149
|
-
2. **Ready to install** — the user can install from the Builder page, or ask you to install it (you would use `
|
|
149
|
+
2. **Ready to install** — the user can install from the Builder page, or ask you to install it (you would use `package_install`). Do NOT install unless asked.
|
|
150
150
|
3. **To modify or improve** this agent (e.g., update the role, change skills, adjust policies), just continue the conversation here — describe what you want to change and I'll update the files directly.
|
|
151
151
|
|
|
152
152
|
## Rules
|
|
@@ -22,6 +22,62 @@ Use Chrome DevTools tools when you need to:
|
|
|
22
22
|
Do NOT use these tools when `web_fetch` or `web_search` suffice (simple content retrieval or search).
|
|
23
23
|
Chrome DevTools is for interactive browser sessions that require a real rendering engine.
|
|
24
24
|
|
|
25
|
+
## Installation & Setup
|
|
26
|
+
|
|
27
|
+
### 1. Check if Chrome is already installed
|
|
28
|
+
|
|
29
|
+
Before installing, check if Chrome is available on the system:
|
|
30
|
+
|
|
31
|
+
- **macOS**: `ls /Applications/Google\ Chrome.app` or `mdfind "kMDItemCFBundleIdentifier == com.google.Chrome"`
|
|
32
|
+
- **Linux**: `which google-chrome || which google-chrome-stable || which chromium-browser`
|
|
33
|
+
- **Windows**: `where chrome` or check `"C:\Program Files\Google\Chrome\Application\chrome.exe"`
|
|
34
|
+
|
|
35
|
+
To check the installed version:
|
|
36
|
+
- **macOS**: `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version`
|
|
37
|
+
- **Linux**: `google-chrome --version`
|
|
38
|
+
|
|
39
|
+
If Chrome is already installed and version is **144+**, skip to step 2.
|
|
40
|
+
|
|
41
|
+
**Only if Chrome is NOT installed:**
|
|
42
|
+
|
|
43
|
+
- **macOS**: `brew install --cask google-chrome` or download from https://www.google.com/chrome/
|
|
44
|
+
- **Linux (Debian/Ubuntu)**: `wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - && sudo apt update && sudo apt install google-chrome-stable`
|
|
45
|
+
- **Windows**: Download from https://www.google.com/chrome/
|
|
46
|
+
|
|
47
|
+
Chrome version **144+** is required (146+ recommended).
|
|
48
|
+
|
|
49
|
+
### 2. Launch Chrome with Remote Debugging
|
|
50
|
+
|
|
51
|
+
To use DevTools automation you must start Chrome with remote debugging enabled:
|
|
52
|
+
|
|
53
|
+
- **macOS**:
|
|
54
|
+
```
|
|
55
|
+
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
|
|
56
|
+
```
|
|
57
|
+
- **Linux**:
|
|
58
|
+
```
|
|
59
|
+
google-chrome --remote-debugging-port=9222
|
|
60
|
+
```
|
|
61
|
+
- **Windows**:
|
|
62
|
+
```
|
|
63
|
+
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Alternatively, skip the launch flag and use Auto-Connect (see Mode 1 below) — but you must
|
|
67
|
+
manually enable remote debugging in Chrome first.
|
|
68
|
+
|
|
69
|
+
### 3. Verify Connection
|
|
70
|
+
|
|
71
|
+
Open `chrome://inspect/#remote-debugging` in Chrome. You should see your open tabs listed.
|
|
72
|
+
If the MCP server is running, it will appear as a connected client.
|
|
73
|
+
|
|
74
|
+
### Troubleshooting
|
|
75
|
+
|
|
76
|
+
- **Port conflict**: If port 9222 is in use, pick another (e.g. 9333) and update Settings > Browser Automation > Remote Debugging Port.
|
|
77
|
+
- **Firewall**: Ensure localhost access to the debugging port is not blocked.
|
|
78
|
+
- **Memory Saver**: Chrome's Memory Saver can freeze tabs and cause connection timeouts. Disable it at `chrome://settings/performance` or upgrade to Chrome 146+.
|
|
79
|
+
- **Permission dialog**: On first Auto-Connect, Chrome shows a permission dialog — click **Allow**.
|
|
80
|
+
|
|
25
81
|
## Prerequisites
|
|
26
82
|
|
|
27
83
|
The MCP server connects to the user's running Chrome via one of two modes:
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: image-generation
|
|
3
|
+
description: Generate images using AI models across multiple providers
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Image Generation
|
|
7
|
+
|
|
8
|
+
You have access to AI image generation tools (prefixed `image-generation__`) that can create
|
|
9
|
+
images from text prompts using multiple providers and models.
|
|
10
|
+
|
|
11
|
+
## When to use these tools
|
|
12
|
+
|
|
13
|
+
Use image generation tools when the user wants to:
|
|
14
|
+
- Create, draw, or generate images from a text description
|
|
15
|
+
- Create illustrations, diagrams, concept art, or any visual content
|
|
16
|
+
- Edit or modify an existing image
|
|
17
|
+
- Generate variations of an image
|
|
18
|
+
|
|
19
|
+
Do NOT use these tools for:
|
|
20
|
+
- Taking screenshots (use Chrome DevTools instead)
|
|
21
|
+
- Converting documents to images (use MarkItDown or other tools)
|
|
22
|
+
- Text-only diagrams where Mermaid/ASCII would suffice
|
|
23
|
+
|
|
24
|
+
## Available tools
|
|
25
|
+
|
|
26
|
+
| Tool | Purpose |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `image-generation__generate_image` | Generate an image from a text prompt |
|
|
29
|
+
| `image-generation__list_providers` | Check which providers are configured and available |
|
|
30
|
+
| `image-generation__edit_image` | Edit/modify an existing image (OpenAI, Stability, Ideogram) |
|
|
31
|
+
|
|
32
|
+
## Supported providers
|
|
33
|
+
|
|
34
|
+
The skill auto-detects available providers based on environment variables.
|
|
35
|
+
If no provider is specified, the first available one is used.
|
|
36
|
+
|
|
37
|
+
| Provider | Env Variable | Default Model | Strengths |
|
|
38
|
+
|----------|-------------|---------------|-----------|
|
|
39
|
+
| OpenAI | `OPENAI_API_KEY` | dall-e-3 | High quality, good prompt following, style control |
|
|
40
|
+
| Azure OpenAI | `AZURE_OPENAI_API_KEY` + `AZURE_OPENAI_ENDPOINT` | dall-e-3 | Enterprise, same quality as OpenAI |
|
|
41
|
+
| Stability AI | `STABILITY_API_KEY` | sd3-large | Fine control, negative prompts, inpainting |
|
|
42
|
+
| Google Imagen | `GOOGLE_API_KEY` | imagen-3.0-generate-002 | Photorealistic, good text rendering |
|
|
43
|
+
| Replicate | `REPLICATE_API_TOKEN` | black-forest-labs/flux-1.1-pro | Wide model selection, Flux models |
|
|
44
|
+
| Tongyi Wanxiang | `DASHSCOPE_API_KEY` | wanx2.1-t2i-turbo | Chinese text support, fast turbo mode |
|
|
45
|
+
| Zhipu CogView | `ZHIPU_API_KEY` | cogview-4 | Chinese text support, multiple styles |
|
|
46
|
+
| SiliconFlow | `SILICONFLOW_API_KEY` | FLUX.1-schnell | Affordable, hosts FLUX & SD & Qwen models, fast |
|
|
47
|
+
| Together AI | `TOGETHER_API_KEY` | FLUX.1.1-pro | High-quality FLUX, competitive pricing |
|
|
48
|
+
| FAL | `FAL_KEY` | flux-pro/v1.1 | Fast inference, Flux Pro/Dev/Schnell |
|
|
49
|
+
| Ideogram | `IDEOGRAM_API_KEY` | V_2 | Excellent text-in-image, supports editing |
|
|
50
|
+
| Baidu ERNIE ViLG | `BAIDU_API_KEY` + `BAIDU_SECRET_KEY` | sd_xl | Chinese ecosystem, Baidu Cloud |
|
|
51
|
+
| Tencent Hunyuan | `HUNYUAN_API_KEY` | hunyuan-image | Chinese ecosystem, Tencent Cloud |
|
|
52
|
+
| Volcengine (Doubao) | `VOLCENGINE_API_KEY` | general_v2.1_L | Chinese ecosystem, ByteDance Cloud |
|
|
53
|
+
|
|
54
|
+
## Key parameters
|
|
55
|
+
|
|
56
|
+
### Common parameters (all providers)
|
|
57
|
+
|
|
58
|
+
- **prompt** (required): Text description of the desired image. Be specific and detailed.
|
|
59
|
+
- **size**: Image dimensions (e.g. `1024x1024`, `1792x1024`). Check provider capabilities for supported sizes.
|
|
60
|
+
- **n**: Number of images to generate (default: 1).
|
|
61
|
+
- **output_dir**: Where to save generated files (default: `~/.markus/generated-images/`).
|
|
62
|
+
- **output_format**: `png`, `jpeg`, or `webp` (default: `png`).
|
|
63
|
+
|
|
64
|
+
### Provider/model selection
|
|
65
|
+
|
|
66
|
+
- **provider**: Force a specific provider (e.g. `openai`, `stability`, `zhipu`, `siliconflow`, `fal`). Omit to auto-select.
|
|
67
|
+
- **model**: Specific model name. Each provider has a default, but you can override:
|
|
68
|
+
- OpenAI: `dall-e-3`, `dall-e-2`, `gpt-image-1`
|
|
69
|
+
- Stability: `sd3-large`, `sd3-large-turbo`, `stable-image-ultra`, `stable-image-core`
|
|
70
|
+
- Google: `imagen-3.0-generate-002`
|
|
71
|
+
- Replicate: `black-forest-labs/flux-1.1-pro`, `black-forest-labs/flux-schnell`
|
|
72
|
+
- Tongyi: `wanx2.1-t2i-turbo`, `wanx2.1-t2i-plus`
|
|
73
|
+
- Zhipu: `cogview-4`, `cogview-4-250304`, `cogview-3-plus`
|
|
74
|
+
- SiliconFlow: `black-forest-labs/FLUX.1-schnell`, `black-forest-labs/FLUX.1-dev`, `black-forest-labs/FLUX.1-pro`, `black-forest-labs/FLUX.1.1-pro`, `stabilityai/stable-diffusion-3-5-large`, `stabilityai/stable-diffusion-3-5-medium`, `Qwen/Qwen-Image`, `deepseek-ai/Janus-Pro-7B`
|
|
75
|
+
- Together: `black-forest-labs/FLUX.1.1-pro`, `black-forest-labs/FLUX.1-schnell`
|
|
76
|
+
- FAL: `fal-ai/flux-pro/v1.1`, `fal-ai/flux/schnell`, `fal-ai/flux/dev`
|
|
77
|
+
- Ideogram: `V_2`, `V_2_TURBO`, `V_1`
|
|
78
|
+
- Baidu: `sd_xl`
|
|
79
|
+
- Hunyuan: `hunyuan-image`, `hunyuan-image-fast`
|
|
80
|
+
- Volcengine: `general_v2.1_L`, `general_v2.0_L`
|
|
81
|
+
|
|
82
|
+
### Style and quality
|
|
83
|
+
|
|
84
|
+
- **quality**: `standard` or `hd` (OpenAI, Zhipu)
|
|
85
|
+
- **style**: `natural` or `vivid` (OpenAI), or style-specific values (Tongyi)
|
|
86
|
+
- **negative_prompt**: Describe what to avoid (Stability, Google, Replicate, Tongyi, SiliconFlow, Together, FAL, Ideogram, Baidu, Hunyuan)
|
|
87
|
+
- **seed**: Integer for reproducible results (Stability, Google, Replicate, Tongyi, SiliconFlow, FAL, Ideogram, Baidu, Volcengine)
|
|
88
|
+
|
|
89
|
+
## Best practices
|
|
90
|
+
|
|
91
|
+
1. **Check availability first**: If unsure which providers are configured, call
|
|
92
|
+
`list_providers` before generating. This avoids confusing error messages.
|
|
93
|
+
|
|
94
|
+
2. **Write detailed prompts**: More specific prompts produce better results. Include subject,
|
|
95
|
+
style, mood, lighting, composition, and medium (e.g. "oil painting", "photograph",
|
|
96
|
+
"3D render").
|
|
97
|
+
|
|
98
|
+
3. **Confirm with user**: Before generating, confirm the prompt and parameters with the user,
|
|
99
|
+
especially if they gave a vague request. Share the exact prompt you plan to use.
|
|
100
|
+
|
|
101
|
+
4. **Choose the right provider**: Match provider to use case:
|
|
102
|
+
- Photorealistic images → OpenAI DALL-E 3, Google Imagen
|
|
103
|
+
- Artistic/creative control → Stability AI, Ideogram (supports negative prompts, seeds)
|
|
104
|
+
- Chinese text/content → Tongyi Wanxiang, Zhipu CogView, Baidu ERNIE, Hunyuan, Volcengine
|
|
105
|
+
- Cutting-edge Flux models → Replicate, FAL, Together AI, SiliconFlow
|
|
106
|
+
- Budget-friendly → SiliconFlow, Together AI
|
|
107
|
+
- Text-in-image quality → Ideogram
|
|
108
|
+
- Image editing/inpainting → OpenAI (DALL-E 2), Stability AI, Ideogram
|
|
109
|
+
|
|
110
|
+
5. **Report results clearly**: After generation, tell the user:
|
|
111
|
+
- The file path where the image was saved
|
|
112
|
+
- Which provider and model were used
|
|
113
|
+
- The revised prompt (if the provider modified it, e.g. OpenAI)
|
|
114
|
+
|
|
115
|
+
6. **Handle errors gracefully**: If a provider fails, suggest the user:
|
|
116
|
+
- Check that the API key is valid and has quota
|
|
117
|
+
- Try a different provider
|
|
118
|
+
- Simplify the prompt if content policy rejected it
|
|
119
|
+
|
|
120
|
+
## Common workflows
|
|
121
|
+
|
|
122
|
+
### Basic image generation
|
|
123
|
+
```
|
|
124
|
+
1. list_providers → check what's available
|
|
125
|
+
2. generate_image → prompt="A serene mountain landscape at sunset, oil painting style",
|
|
126
|
+
size="1792x1024"
|
|
127
|
+
3. Report file path and provider used to user
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Specific provider and model
|
|
131
|
+
```
|
|
132
|
+
1. generate_image → prompt="...", provider="stability", model="sd3-large",
|
|
133
|
+
negative_prompt="blurry, low quality", seed=42
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Image editing
|
|
137
|
+
```
|
|
138
|
+
1. edit_image → image_path="/path/to/original.png",
|
|
139
|
+
prompt="Replace the sky with a starry night",
|
|
140
|
+
provider="stability"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Batch generation for comparison
|
|
144
|
+
```
|
|
145
|
+
1. generate_image → prompt="...", provider="openai"
|
|
146
|
+
2. generate_image → prompt="...", provider="stability"
|
|
147
|
+
3. Present both results to user for comparison
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## User setup guide
|
|
151
|
+
|
|
152
|
+
If no providers are configured, guide the user to set environment variables:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# --- Global providers ---
|
|
156
|
+
export OPENAI_API_KEY="sk-..."
|
|
157
|
+
export STABILITY_API_KEY="sk-..."
|
|
158
|
+
export GOOGLE_API_KEY="..."
|
|
159
|
+
export REPLICATE_API_TOKEN="r8_..."
|
|
160
|
+
|
|
161
|
+
# --- Flux / SD hosting platforms ---
|
|
162
|
+
export SILICONFLOW_API_KEY="sk-..."
|
|
163
|
+
export TOGETHER_API_KEY="..."
|
|
164
|
+
export FAL_KEY="..."
|
|
165
|
+
|
|
166
|
+
# --- Specialized ---
|
|
167
|
+
export IDEOGRAM_API_KEY="..."
|
|
168
|
+
|
|
169
|
+
# --- Chinese providers ---
|
|
170
|
+
export DASHSCOPE_API_KEY="sk-..." # Tongyi Wanxiang (Aliyun)
|
|
171
|
+
export ZHIPU_API_KEY="..." # Zhipu CogView
|
|
172
|
+
export HUNYUAN_API_KEY="..." # Tencent Hunyuan
|
|
173
|
+
export VOLCENGINE_API_KEY="..." # Volcengine (Doubao / ByteDance)
|
|
174
|
+
|
|
175
|
+
# --- Requires two keys ---
|
|
176
|
+
export AZURE_OPENAI_API_KEY="..."
|
|
177
|
+
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
|
|
178
|
+
|
|
179
|
+
export BAIDU_API_KEY="..." # Baidu ERNIE ViLG
|
|
180
|
+
export BAIDU_SECRET_KEY="..."
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
These can be set in the shell profile, `.env` file, or Markus settings.
|