@comate/zulu 1.2.1-beta.2 → 1.3.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/comate-engine/assets/skills/auto-commit-comate/SKILL.md +260 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/data_structures.md +189 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/new_version_instruction.md +209 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/old_version_instruction.md +208 -0
- package/comate-engine/assets/skills/auto-commit-comate/scripts/git_diff_cli.py +196 -0
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/git_utils.py +20 -10
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/client.py +69 -40
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/farseer.py +8 -9
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/matching.py +65 -9
- package/comate-engine/assets/skills/auto-commit-comate/scripts/match_card_cli.py +37 -0
- package/comate-engine/assets/skills/cnap-comate/SKILL.md +157 -0
- package/comate-engine/assets/skills/cnap-comate/references/cases.md +198 -0
- package/comate-engine/assets/skills/cnap-comate/references/deploy-troubleshoot.md +15 -0
- package/comate-engine/assets/skills/cnap-comate/references/install.md +43 -0
- package/comate-engine/assets/skills/cnap-comate/references/kubectl.md +55 -0
- package/comate-engine/assets/skills/cnap-comate/references/login.md +125 -0
- package/comate-engine/assets/skills/cnap-comate/references/oncall.md +24 -0
- package/comate-engine/assets/skills/cnap-comate/scripts/install_cnap_cli.sh +36 -0
- package/comate-engine/assets/skills/code-security/SKILL.md +176 -0
- package/comate-engine/assets/skills/code-security/references/credential_hosting.md +102 -0
- package/comate-engine/assets/skills/code-security/references/vul_repair_sensitive.md +219 -0
- package/comate-engine/assets/skills/code-security/scripts/build_repair_info.py +0 -0
- package/comate-engine/assets/skills/code-security/scripts/credential_hosting.py +99 -0
- package/comate-engine/assets/skills/code-security/scripts/credential_poll.py +350 -0
- package/comate-engine/assets/skills/code-security/scripts/http_client.py +173 -0
- package/comate-engine/assets/skills/code-security/scripts/parse_scan_result.py +301 -0
- package/comate-engine/assets/skills/code-security/scripts/repair_vulnerability.py +261 -0
- package/comate-engine/assets/skills/code-security/scripts/report_chat.py +198 -0
- package/comate-engine/assets/skills/code-security/scripts/scan_vulnerability.py +316 -0
- package/comate-engine/assets/skills/code-security-comate/SKILL.md +219 -0
- package/comate-engine/assets/skills/code-security-comate/references/credential_hosting.md +102 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-go_sql_injection.md +399 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-java_sql_injection.md +591 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-php_sql_injection.md +318 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-python_sql_injection.md +198 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair_sensitive.md +219 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/credential_hosting.py +87 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/credential_poll.py +345 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/http_client.py +173 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/parse_scan_result.py +392 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/repair_vulnerability.py +245 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/report_chat.py +145 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/scan_vulnerability.py +444 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/utils.py +153 -0
- package/comate-engine/assets/skills/comate-docs-comate/SKILL.md +148 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/doc-map-extended.md +78 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/models-and-billing.md +51 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/product-overview.md +73 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/query_content.md +83 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/query_repo.md +57 -0
- package/comate-engine/assets/skills/comate-docs-comate/scripts/ku_operator.py +1575 -0
- package/comate-engine/assets/skills/create-image-comate/SKILL.md +278 -0
- package/comate-engine/assets/skills/create-skill-comate/SKILL.md +308 -217
- package/comate-engine/assets/skills/create-skill-comate/agents/analyzer.md +274 -0
- package/comate-engine/assets/skills/create-skill-comate/agents/comparator.md +202 -0
- package/comate-engine/assets/skills/create-skill-comate/agents/grader.md +223 -0
- package/comate-engine/assets/skills/create-skill-comate/assets/eval_review.html +146 -0
- package/comate-engine/assets/skills/create-skill-comate/eval-viewer/generate_review.py +489 -0
- package/comate-engine/assets/skills/create-skill-comate/eval-viewer/viewer.html +1325 -0
- package/comate-engine/assets/skills/create-skill-comate/references/schemas.md +430 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__init__.py +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/aggregate_benchmark.cpython-311.pyc +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/aggregate_benchmark.py +412 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/generate_report.py +334 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/package_skill.py +140 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/utils.py +53 -0
- package/comate-engine/assets/skills/find-skills-comate/SKILL.md +15 -12
- package/comate-engine/assets/skills/find-skills-comate/scripts/fetch_skills.py +32 -3
- package/comate-engine/assets/skills/get-ugate-token-comate/SKILL.md +159 -0
- package/comate-engine/assets/skills/get-ugate-token-comate/getUgateToken.py +150 -0
- package/comate-engine/assets/skills/icafe-comate/SKILL.md +240 -0
- package/comate-engine/assets/skills/icafe-comate/references/ai-workflows.md +233 -0
- package/comate-engine/assets/skills/icafe-comate/references/commands.md +1147 -0
- package/comate-engine/assets/skills/icafe-comate/references/error-handling.md +164 -0
- package/comate-engine/assets/skills/icafe-comate/references/git-auto-bindcard-workflow.md +201 -0
- package/comate-engine/assets/skills/icafe-comate/references/git-bindcard-workflow.md +327 -0
- package/comate-engine/assets/skills/icafe-comate/references/iql-syntax.md +327 -0
- package/comate-engine/assets/skills/icafe-comate/references/platform-concepts.md +317 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-create-workflow.md +171 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-find-workflow.md +127 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-update-workflow.md +118 -0
- package/comate-engine/assets/skills/icode-comate/SKILL.md +366 -0
- package/comate-engine/assets/skills/icode-comate/references/api/add_reviewers.md +44 -0
- package/comate-engine/assets/skills/icode-comate/references/api/build_fetch_command.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/check_repo_permission.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/create_branch.md +79 -0
- package/comate-engine/assets/skills/icode-comate/references/api/create_draft_comment.md +109 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_ai_cr_result.md +190 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_ai_review.md +97 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_diff_content.md +92 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_diff_file.md +88 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_machine_check.md +73 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_my_reviews.md +115 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_person_commit.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_person_repo.md +63 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_branch.md +62 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_config.md +91 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_members.md +118 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_reviews.md +91 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_review_comments.md +87 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_review_info.md +81 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_submit_settings.md +105 -0
- package/comate-engine/assets/skills/icode-comate/references/api/icode-api.md +86 -0
- package/comate-engine/assets/skills/icode-comate/references/api/publish_comments.md +72 -0
- package/comate-engine/assets/skills/icode-comate/references/api/set_review_score.md +58 -0
- package/comate-engine/assets/skills/icode-comate/references/api/start_ai_review.md +77 -0
- package/comate-engine/assets/skills/icode-comate/references/api/submit_review.md +50 -0
- package/comate-engine/assets/skills/icode-comate/references/api/trigger_ai_cr.md +63 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/add-reviewer.md +92 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/fix-machine-check.md +144 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/merge-cr.md +100 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/ssh-setup.md +106 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/submit-acr.md +135 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/submit-cr.md +123 -0
- package/comate-engine/assets/skills/icode-comate/references/git/clone.md +67 -0
- package/comate-engine/assets/skills/icode-comate/references/git/icode-git.md +68 -0
- package/comate-engine/assets/skills/icode-comate/references/git/push.md +64 -0
- package/comate-engine/assets/skills/icode-comate/references/git/push_cr.md +103 -0
- package/comate-engine/assets/skills/icode-comate/references/install.md +144 -0
- package/comate-engine/assets/skills/icode-comate/references/login.md +111 -0
- package/comate-engine/assets/skills/icode-comate/scripts/add-reviewer.sh +154 -0
- package/comate-engine/assets/skills/icode-comate/scripts/common.sh +145 -0
- package/comate-engine/assets/skills/icode-comate/scripts/fix-machine-check.sh +131 -0
- package/comate-engine/assets/skills/icode-comate/scripts/merge-cr.sh +105 -0
- package/comate-engine/assets/skills/icode-comate/scripts/ssh-setup.sh +159 -0
- package/comate-engine/assets/skills/icode-comate/scripts/submit-acr.sh +236 -0
- package/comate-engine/assets/skills/icode-comate/scripts/submit-cr.sh +104 -0
- package/comate-engine/assets/skills/icode-comate/scripts/test-preflight.sh +89 -0
- package/comate-engine/assets/skills/ku-operator-comate/SKILL.md +121 -0
- package/comate-engine/assets/skills/ku-operator-comate/examples.md +190 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/add_member.md +49 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/change_scope.md +38 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/copy_doc.md +50 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/create_doc.md +61 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/delete_doc.md +31 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/edit_content.md +568 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/move_doc.md +45 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_comment.md +79 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_content.md +83 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_flowchart.md +84 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_permission.md +38 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_recent_view.md +67 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_repo.md +57 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_user_info.md +37 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/update_member.md +41 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/upload_attachment.md +52 -0
- package/comate-engine/assets/skills/ku-operator-comate/scripts/ku_operator.py +1575 -0
- package/comate-engine/node_modules/better-sqlite3/node_modules/.bin/prebuild-install +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-optional +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-test +2 -2
- package/comate-engine/package.json +2 -0
- package/comate-engine/server.js +263 -79
- package/dist/bundle/index.js +3 -3
- package/package.json +1 -1
- package/comate-engine/assets/skills/figma2code-comate/codeConnect.md +0 -37
- package/comate-engine/assets/skills/figma2code-comate/designToken.md +0 -3
- package/comate-engine/assets/skills/figma2code-comate/f2cMcp.md +0 -59
- package/comate-engine/assets/skills/smart-commit/SKILL.md +0 -646
- package/comate-engine/node_modules/@comate/plugin-host/dist/index-AZIho4HV.js +0 -1
- package/comate-engine/node_modules/@comate/plugin-host/dist/user-BIpzRUfb.js +0 -44
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/issue_type_mapping.json +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/query_reference.md +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/compat.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/create_card_cli.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/__init__.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/logger.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/recognize_card_cli.py +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-image
|
|
3
|
+
description: "Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image). Use for image create/modify requests incl. edits. Supports text-to-image + image-to-image; 1K/2K/4K resolution."
|
|
4
|
+
metadata:
|
|
5
|
+
enableWhen:
|
|
6
|
+
- isInternal
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Nano Banana Pro Image Generation & Editing
|
|
10
|
+
|
|
11
|
+
Generate new images or edit existing ones using Google's Nano Banana Pro API (Gemini 3 Pro Image) via curl.
|
|
12
|
+
|
|
13
|
+
## Requirements
|
|
14
|
+
|
|
15
|
+
### macOS / Linux
|
|
16
|
+
|
|
17
|
+
- `curl` and `jq` must be installed
|
|
18
|
+
- `base64` built-in
|
|
19
|
+
- `sips` for auto-resolution detection (macOS built-in)
|
|
20
|
+
- `identify` for auto-resolution detection (Linux, via `imagemagick`)
|
|
21
|
+
|
|
22
|
+
### Windows
|
|
23
|
+
|
|
24
|
+
- `curl.exe` built-in (Windows 10 1803+)
|
|
25
|
+
- PowerShell 5.1+ built-in (Windows 10+), used for all JSON parsing
|
|
26
|
+
|
|
27
|
+
### Common
|
|
28
|
+
|
|
29
|
+
- API endpoint: `https://comate.baidu-int.com/api/aidevops/autocomate/rest/autowork/v1/generate-image`
|
|
30
|
+
- Username is passed via Header `login-name`, NOT in the request body
|
|
31
|
+
- Username: ${COMATE_USERNAME}
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
**Important:** Always save output images to the user's current working directory.
|
|
38
|
+
|
|
39
|
+
### 1. Generate new image (text-to-image)
|
|
40
|
+
|
|
41
|
+
**macOS / Linux (bash/zsh):**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
curl -s -X POST https://comate.baidu-int.com/api/aidevops/autocomate/rest/autowork/v1/generate-image \
|
|
45
|
+
-H "Content-Type: application/json" \
|
|
46
|
+
-H "login-name: ${COMATE_USERNAME}" \
|
|
47
|
+
-d '{
|
|
48
|
+
"contents": [{"parts": [{"text": "YOUR_PROMPT_HERE"}]}],
|
|
49
|
+
"resolution": "1K"
|
|
50
|
+
}' \
|
|
51
|
+
| jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' \
|
|
52
|
+
| base64 --decode > output-name.png
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Windows (PowerShell):**
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
# Write JSON to temp file to avoid PowerShell double-quote escaping bug with curl.exe -d
|
|
59
|
+
$tmpFile = "$env:TEMP\request.json"
|
|
60
|
+
@'
|
|
61
|
+
{"contents":[{"parts":[{"text":"YOUR_PROMPT_HERE"}]}],"resolution":"1K"}
|
|
62
|
+
'@ | Set-Content -Path $tmpFile -Encoding UTF8 -NoNewline
|
|
63
|
+
|
|
64
|
+
$response = curl.exe -s -X POST https://comate.baidu-int.com/api/aidevops/autocomate/rest/autowork/v1/generate-image `
|
|
65
|
+
-H "Content-Type: application/json" `
|
|
66
|
+
-H "login-name: $env:${COMATE_USERNAME}" `
|
|
67
|
+
-d "@$tmpFile" | ConvertFrom-Json
|
|
68
|
+
|
|
69
|
+
$imgBase64 = $response.candidates[0].content.parts |
|
|
70
|
+
Where-Object { $_.inlineData } |
|
|
71
|
+
Select-Object -First 1 -ExpandProperty inlineData |
|
|
72
|
+
Select-Object -ExpandProperty data
|
|
73
|
+
[System.IO.File]::WriteAllBytes(
|
|
74
|
+
(Join-Path (Get-Location) "output-name.png"),
|
|
75
|
+
[System.Convert]::FromBase64String($imgBase64)
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 2. Edit existing image (image-to-image)
|
|
80
|
+
|
|
81
|
+
**base64 image data is large — must write to a temp file, never inline in the command.**
|
|
82
|
+
|
|
83
|
+
**macOS / Linux (bash/zsh):**
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Step 1: encode input image
|
|
87
|
+
IMG_B64=$(base64 -i path/to/input.png | tr -d '\n')
|
|
88
|
+
|
|
89
|
+
# Step 2: write JSON to temp file
|
|
90
|
+
cat > /tmp/request.json << EOF
|
|
91
|
+
{
|
|
92
|
+
"contents": [
|
|
93
|
+
{
|
|
94
|
+
"parts": [
|
|
95
|
+
{"inline_data": {"mime_type": "image/png", "data": "${IMG_B64}"}},
|
|
96
|
+
{"text": "YOUR_EDIT_INSTRUCTIONS_HERE"}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"resolution": "2K"
|
|
101
|
+
}
|
|
102
|
+
EOF
|
|
103
|
+
|
|
104
|
+
# Step 3: send request
|
|
105
|
+
curl -s -X POST https://comate.baidu-int.com/api/aidevops/autocomate/rest/autowork/v1/generate-image \
|
|
106
|
+
-H "Content-Type: application/json" \
|
|
107
|
+
-H "login-name: ${COMATE_USERNAME}" \
|
|
108
|
+
-d @/tmp/request.json \
|
|
109
|
+
| jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' \
|
|
110
|
+
| base64 --decode > output-name.png
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Windows (PowerShell):**
|
|
114
|
+
|
|
115
|
+
```powershell
|
|
116
|
+
# Step 1: encode input image
|
|
117
|
+
$imgBytes = [System.IO.File]::ReadAllBytes((Resolve-Path "path\to\input.png"))
|
|
118
|
+
$imgBase64 = [System.Convert]::ToBase64String($imgBytes)
|
|
119
|
+
|
|
120
|
+
# Step 2: write JSON to temp file
|
|
121
|
+
$tmpFile = "$env:TEMP\request.json"
|
|
122
|
+
@"
|
|
123
|
+
{
|
|
124
|
+
"contents": [
|
|
125
|
+
{
|
|
126
|
+
"parts": [
|
|
127
|
+
{"inline_data": {"mime_type": "image/png", "data": "$imgBase64"}},
|
|
128
|
+
{"text": "YOUR_EDIT_INSTRUCTIONS_HERE"}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"resolution": "2K"
|
|
133
|
+
}
|
|
134
|
+
"@ | Set-Content -Path $tmpFile -Encoding UTF8
|
|
135
|
+
|
|
136
|
+
# Step 3: send request
|
|
137
|
+
$response = curl.exe -s -X POST https://comate.baidu-int.com/api/aidevops/autocomate/rest/autowork/v1/generate-image `
|
|
138
|
+
-H "Content-Type: application/json" `
|
|
139
|
+
-H "login-name: $env:${COMATE_USERNAME}" `
|
|
140
|
+
-d "@$tmpFile" | ConvertFrom-Json
|
|
141
|
+
|
|
142
|
+
$outBase64 = $response.candidates[0].content.parts |
|
|
143
|
+
Where-Object { $_.inlineData } |
|
|
144
|
+
Select-Object -First 1 -ExpandProperty inlineData |
|
|
145
|
+
Select-Object -ExpandProperty data
|
|
146
|
+
|
|
147
|
+
[System.IO.File]::WriteAllBytes(
|
|
148
|
+
(Join-Path (Get-Location) "output-name.png"),
|
|
149
|
+
[System.Convert]::FromBase64String($outBase64)
|
|
150
|
+
)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Default Workflow (draft > iterate > final)
|
|
156
|
+
|
|
157
|
+
- Draft (1K): quick feedback loop
|
|
158
|
+
- Iterate: adjust prompt in small diffs; keep filename new per run
|
|
159
|
+
- Final (4K): only when prompt is locked
|
|
160
|
+
|
|
161
|
+
## Resolution Options
|
|
162
|
+
|
|
163
|
+
- **1K** (default) - ~1024px, use for drafts and quick feedback
|
|
164
|
+
- **2K** - ~2048px, use for mid-quality or medium-size input images
|
|
165
|
+
- **4K** - ~4096px, use only when prompt is locked and quality is required
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Auto-Resolution Detection (image-to-image only)
|
|
170
|
+
|
|
171
|
+
When editing an existing image and the user has not specified a resolution,
|
|
172
|
+
auto-detect based on the input image's longest edge.
|
|
173
|
+
|
|
174
|
+
**macOS (bash/zsh):**
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
MAX_DIM=$(sips -g pixelWidth -g pixelHeight "input.png" \
|
|
178
|
+
| awk '/pixel/{print $2}' | sort -rn | head -1)
|
|
179
|
+
|
|
180
|
+
if [ "${MAX_DIM}" -ge 3000 ]; then RESOLUTION="4K"
|
|
181
|
+
elif [ "${MAX_DIM}" -ge 1500 ]; then RESOLUTION="2K"
|
|
182
|
+
else RESOLUTION="1K"
|
|
183
|
+
fi
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Linux (bash):**
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# requires: apt install imagemagick / yum install imagemagick
|
|
190
|
+
MAX_DIM=$(identify -format "%[fx:max(w,h)]" input.png)
|
|
191
|
+
|
|
192
|
+
if [ "${MAX_DIM}" -ge 3000 ]; then RESOLUTION="4K"
|
|
193
|
+
elif [ "${MAX_DIM}" -ge 1500 ]; then RESOLUTION="2K"
|
|
194
|
+
else RESOLUTION="1K"
|
|
195
|
+
fi
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Windows (PowerShell):**
|
|
199
|
+
|
|
200
|
+
```powershell
|
|
201
|
+
Add-Type -AssemblyName System.Drawing
|
|
202
|
+
$img = [System.Drawing.Image]::FromFile((Resolve-Path "input.png"))
|
|
203
|
+
$maxDim = [Math]::Max($img.Width, $img.Height)
|
|
204
|
+
$img.Dispose()
|
|
205
|
+
|
|
206
|
+
$resolution = if ($maxDim -ge 3000) { "4K" }
|
|
207
|
+
elseif ($maxDim -ge 1500) { "2K" }
|
|
208
|
+
else { "1K" }
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Prompt Handling
|
|
214
|
+
|
|
215
|
+
**For generation:** Pass the user's image description as-is to the `text` field.
|
|
216
|
+
**For editing:** Pass editing instructions to the `text` field alongside the `inline_data` image part.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Output
|
|
221
|
+
|
|
222
|
+
- Saves PNG to current directory
|
|
223
|
+
- Script outputs the full path to the generated image
|
|
224
|
+
- **Do not read the image back** - display the image using markdown syntax: ``
|
|
225
|
+
- **Display the image path only once** using a relative path (e.g. `output-name.png` or `subdir/output-name.png`);
|
|
226
|
+
- do NOT display absolute paths (e.g. `/home/user/...` formats are forbidden); do NOT repeat the path multiple times in
|
|
227
|
+
the conversation
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Notes
|
|
232
|
+
|
|
233
|
+
| Rule | macOS/Linux | Windows |
|
|
234
|
+
|-------------------|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
|
235
|
+
| curl command | `curl` | `curl.exe` (avoid PowerShell `curl` alias conflict) |
|
|
236
|
+
| `-d` body | inline `'{"key":"val"}'` is fine | **never** inline — PowerShell escapes `"` to `\u0022`, corrupts JSON; **always** write to temp file and use `-d "@$tmpFile"` |
|
|
237
|
+
| base64 encode | `base64 -i file \| tr -d '\n'` | `[Convert]::ToBase64String([IO.File]::ReadAllBytes(...))` |
|
|
238
|
+
| base64 decode | `base64 --decode` | `[IO.File]::WriteAllBytes(path, [Convert]::FromBase64String(...))` (PS 5.1 compatible) |
|
|
239
|
+
| image size detect | `sips` (macOS) / `identify` (Linux) | `System.Drawing.Image` (built-in) |
|
|
240
|
+
| line continuation | `\` | `` ` `` (backtick) |
|
|
241
|
+
| env variable | `${COMATE_USERNAME}` | `$env:COMATE_USERNAME` |
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Windows Pitfall: PowerShell escapes `"` when passing to external programs
|
|
246
|
+
|
|
247
|
+
When PowerShell passes a variable containing `"` to an external program like `curl.exe`,
|
|
248
|
+
it silently converts `"` into `\u0022`, which corrupts JSON and causes the server to return:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
JsonParseException: Unexpected character ('u'): was expecting double-quote to start field name
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Wrong (never do this on Windows):**
|
|
255
|
+
|
|
256
|
+
```powershell
|
|
257
|
+
$body = '{"contents":[...]}'
|
|
258
|
+
curl.exe ... -d $body # PowerShell corrupts the " characters
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Correct — always write JSON to a temp file and pass with `-d @file`:**
|
|
262
|
+
|
|
263
|
+
```powershell
|
|
264
|
+
# Single-quote here-string: content is taken literally, no escaping
|
|
265
|
+
$tmpFile = "$env:TEMP\request.json"
|
|
266
|
+
@'
|
|
267
|
+
{"contents":[{"parts":[{"text":"YOUR_PROMPT_HERE"}]}],"resolution":"1K"}
|
|
268
|
+
'@ | Set-Content -Path $tmpFile -Encoding UTF8 -NoNewline
|
|
269
|
+
|
|
270
|
+
curl.exe ... -d "@$tmpFile" # curl reads the file directly, no PowerShell escaping
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Here-string type selection:**
|
|
274
|
+
|
|
275
|
+
| Situation | Here-string type | Reason |
|
|
276
|
+
|--------------------------------------------|------------------------|---------------------------------|
|
|
277
|
+
| text-to-image (no variables in JSON) | `@'...'@` single-quote | content taken literally, safest |
|
|
278
|
+
| image-to-image (need `$imgBase64` in JSON) | `@"..."@` double-quote | allows variable expansion |
|