cue-ai 0.9.2 → 0.9.4
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/CHANGELOG.md +4 -3
- package/README.md +154 -394
- package/bin/cue-learnings +30 -4
- package/bin/cue-review-progress +0 -0
- package/bin/cue-review-watch +0 -0
- package/dist/cue.js +4328 -3108
- package/package.json +1 -1
- package/plugins/cue/commands/cue-switch.md +1 -1
- package/plugins/cue/commands/cue.md +1 -1
- package/profiles/backend/profile.yaml +4 -0
- package/profiles/browser/profile.yaml +4 -0
- package/profiles/career/profile.yaml +2 -13
- package/profiles/commerce/profile.yaml +0 -2
- package/profiles/coolify/profile.yaml +0 -1
- package/profiles/core/profile.yaml +78 -11
- package/profiles/dash-merge-test/profile.yaml +6 -1
- package/profiles/designer/profile.yaml +9 -1
- package/profiles/dropshipping/profile.yaml +69 -0
- package/profiles/frontend/profile.yaml +4 -0
- package/profiles/google-ads/profile.yaml +34 -0
- package/profiles/google-analytics/profile.yaml +34 -0
- package/profiles/google-drive/profile.yaml +34 -0
- package/profiles/gstack/profile.yaml +117 -29
- package/profiles/marketing/profile.yaml +0 -1
- package/profiles/media/README.md +70 -0
- package/profiles/media/profile.yaml +104 -0
- package/profiles/nano-banana/profile.yaml +52 -0
- package/profiles/ops/profile.yaml +1 -2
- package/profiles/secops/profile.yaml +3 -0
- package/profiles/skill-writer/profile.yaml +15 -0
- package/profiles/video/profile.yaml +3 -0
- package/profiles/web-frontend-base/profile.yaml +6 -0
- package/profiles/webshop/profile.yaml +0 -1
- package/profiles/webshop-google/profile.yaml +1 -0
- package/profiles/x-growth-bot/profile.yaml +2 -0
- package/resources/icons/generate-icons.py +2 -128
- package/resources/mcps/configs/claude.sanitized.json +88 -20
- package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
- package/resources/mcps/configs/codex.sanitized.json +29 -0
- package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
- package/resources/skills/skills/career/job-hunter/README.md +323 -0
- package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
- package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
- package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
- package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
- package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
- package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
- package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
- package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
- package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
- package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
- package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
- package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
- package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
- package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
- package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
- package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
- package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
- package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
- package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
- package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
- package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
- package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
- package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
- package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
- package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
- package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
- package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
- package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
- package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
- package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
- package/resources/skills/skills/design/banana/SKILL.md +375 -0
- package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
- package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
- package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
- package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
- package/resources/skills/skills/design/banana/references/presets.md +69 -0
- package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
- package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
- package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
- package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
- package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
- package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
- package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
- package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
- package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
- package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
- package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
- package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
- package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
- package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
- package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
- package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
- package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
- package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
- package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
- package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
- package/resources/skills/skills/media/brochures/SKILL.md +65 -0
- package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
- package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
- package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
- package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
- package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
- package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
- package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
- package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
- package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
- package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
- package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
- package/resources/skills/skills/media/core-media/SKILL.md +49 -0
- package/resources/skills/skills/media/core-media/create-music.sh +169 -0
- package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
- package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
- package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
- package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
- package/resources/skills/skills/media/core-media/upload.sh +41 -0
- package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
- package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
- package/resources/skills/skills/media/core-platform/setup.sh +31 -0
- package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
- package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
- package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
- package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
- package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
- package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
- package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
- package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
- package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
- package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
- package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
- package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
- package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
- package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
- package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
- package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
- package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
- package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
- package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
- package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
- package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
- package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
- package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
- package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
- package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
- package/resources/skills/skills/media/music-video/SKILL.md +61 -0
- package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
- package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
- package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
- package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
- package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
- package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
- package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
- package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
- package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
- package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
- package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
- package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
- package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
- package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
- package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
- package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
- package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
- package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
- package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
- package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
- package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
- package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
- package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
- package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
- package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
- package/resources/skills/skills/media/workflow/SKILL.md +197 -0
- package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
- package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
- package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
- package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
- package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
- package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
- package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
- package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
- package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
- package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
- package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
- package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
- package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
- package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
- package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
- package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
- package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
- package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
- package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
- package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
- package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
- package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
- package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
- package/src/commands/_index.ts +8 -0
- package/src/commands/ai.ts +2 -2
- package/src/commands/auto-detect.test.ts +74 -0
- package/src/commands/auto-detect.ts +9 -7
- package/src/commands/cli.test.ts +20 -4
- package/src/commands/cli.ts +36 -20
- package/src/commands/create-profile.ts +2 -2
- package/src/commands/debug.ts +2 -2
- package/src/commands/discover.ts +14 -4
- package/src/commands/export-docker.ts +1 -1
- package/src/commands/features-batch1.test.ts +1 -1
- package/src/commands/gates.ts +1 -1
- package/src/commands/import-profile.ts +1 -1
- package/src/commands/init.ts +15 -11
- package/src/commands/install.test.ts +192 -0
- package/src/commands/install.ts +610 -0
- package/src/commands/launch-handoff.e2e.test.ts +33 -1
- package/src/commands/launch.e2e.test.ts +15 -10
- package/src/commands/launch.ts +73 -116
- package/src/commands/materialize.ts +2 -2
- package/src/commands/prune.ts +1 -1
- package/src/commands/security-audit.ts +1 -1
- package/src/commands/shell.ts +7 -7
- package/src/commands/skill-report.ts +1 -1
- package/src/commands/skills.ts +3 -3
- package/src/commands/snapshot.ts +2 -2
- package/src/commands/summon.test.ts +116 -0
- package/src/commands/summon.ts +338 -0
- package/src/commands/trigger-gaps.ts +1 -1
- package/src/commands/use.ts +47 -3
- package/src/commands/watch-live.ts +5 -5
- package/src/commands/watch.ts +8 -8
- package/src/index.ts +2 -0
- package/src/lib/active-sessions.test.ts +3 -3
- package/src/lib/active-sessions.ts +4 -4
- package/src/lib/auto-detect.test.ts +172 -8
- package/src/lib/auto-detect.ts +191 -136
- package/src/lib/codex-persona-parity.test.ts +58 -0
- package/src/lib/companion-detect.test.ts +43 -1
- package/src/lib/companion-detect.ts +35 -0
- package/src/lib/credentials-sync.test.ts +121 -1
- package/src/lib/credentials-sync.ts +95 -1
- package/src/lib/cwd-resolver.test.ts +8 -8
- package/src/lib/cwd-resolver.ts +2 -2
- package/src/lib/dashboard-merge.test.ts +9 -4
- package/src/lib/dashboard-server.ts +1 -1
- package/src/lib/picker.test.ts +1 -1
- package/src/lib/picker.ts +5 -5
- package/src/lib/profile-merge.test.ts +8 -0
- package/src/lib/profile-names.test.ts +3 -3
- package/src/lib/runtime-install.ts +166 -0
- package/src/lib/runtime-materializer.test.ts +137 -0
- package/src/lib/runtime-materializer.ts +105 -2
- package/src/lib/skill-router.test.ts +38 -0
- package/src/lib/skill-router.ts +65 -4
- package/profiles/eu-tender-research/README.md +0 -48
- package/profiles/eu-tender-research/logo.png +0 -0
- package/profiles/eu-tender-research/profile.yaml +0 -108
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Gemini Image Generation Models
|
|
2
|
+
|
|
3
|
+
> Last updated: 2026-03-19
|
|
4
|
+
> Aligned with Google's March 2026 API state
|
|
5
|
+
|
|
6
|
+
## Available Models
|
|
7
|
+
|
|
8
|
+
### gemini-3.1-flash-image-preview -- Nano Banana 2 (DEFAULT)
|
|
9
|
+
| Property | Value |
|
|
10
|
+
|----------|-------|
|
|
11
|
+
| **Model ID** | `gemini-3.1-flash-image-preview` |
|
|
12
|
+
| **Tier** | Nano Banana 2 (Flash) |
|
|
13
|
+
| **Status** | Preview -- **Active, recommended default** |
|
|
14
|
+
| **Speed** | Fast -- optimized for high-volume use |
|
|
15
|
+
| **Aspect Ratios** | All 14 ratios including extreme: 1:4, 4:1, 1:8, 8:1 (see table below) |
|
|
16
|
+
| **Max Resolution** | Up to 4096×4096 (4K tier) |
|
|
17
|
+
| **Input Tokens** | 131,072 |
|
|
18
|
+
| **Features** | Google Search grounding (web + image), thinking levels, image-only output, extreme aspect ratios |
|
|
19
|
+
| **Rate Limits (Free)** | ~5-15 RPM / ~20-500 RPD (per project, resets midnight Pacific. Cut ~92% Dec 2025) |
|
|
20
|
+
| **Output Tokens** | ~1,290 output tokens per image |
|
|
21
|
+
| **Best For** | All standard production generation and editing -- most use cases |
|
|
22
|
+
|
|
23
|
+
### gemini-2.5-flash-image -- Nano Banana (Original)
|
|
24
|
+
| Property | Value |
|
|
25
|
+
|----------|-------|
|
|
26
|
+
| **Model ID** | `gemini-2.5-flash-image` |
|
|
27
|
+
| **Tier** | Nano Banana (Flash, original generation) |
|
|
28
|
+
| **Status** | GA -- **Active** |
|
|
29
|
+
| **Speed** | Fast |
|
|
30
|
+
| **Aspect Ratios** | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 4:5, 5:4, 21:9 (10 ratios) |
|
|
31
|
+
| **Max Resolution** | Up to 1024×1024 (1K tier) |
|
|
32
|
+
| **Input Tokens** | 32,768 |
|
|
33
|
+
| **Rate Limits (Free)** | ~5-15 RPM / ~20-500 RPD |
|
|
34
|
+
| **Best For** | Free-tier users, budget-conscious high-volume workflows, 1K-resolution use cases |
|
|
35
|
+
| **Cost** | ~$0.039/image at 1K |
|
|
36
|
+
|
|
37
|
+
## ⛔ DEPRECATED -- Nano Banana Pro (gemini-3-pro-image-preview)
|
|
38
|
+
|
|
39
|
+
<!-- REMOVED 2026-03-19: gemini-3-pro-image-preview shut down by Google March 9, 2026 -->
|
|
40
|
+
|
|
41
|
+
**Shut down by Google on March 9, 2026.** API calls to this model ID will fail
|
|
42
|
+
with a hard error. Do not use. The replacement is Nano Banana 2
|
|
43
|
+
(`gemini-3.1-flash-image-preview`).
|
|
44
|
+
|
|
45
|
+
**Was:** Nano Banana Pro tier -- professional asset production, 4K output, 14 reference images, 94% text accuracy.
|
|
46
|
+
|
|
47
|
+
**Migration:** Replace all references to `gemini-3-pro-image-preview` with `gemini-3.1-flash-image-preview`.
|
|
48
|
+
|
|
49
|
+
## Deprecated Models (DO NOT USE)
|
|
50
|
+
|
|
51
|
+
### gemini-2.0-flash-exp
|
|
52
|
+
- **Status:** Deprecated, replaced by gemini-2.5-flash-image
|
|
53
|
+
|
|
54
|
+
## Domain-to-Model Routing
|
|
55
|
+
|
|
56
|
+
| Domain Mode | Recommended Model | Reason |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| Cinema, Landscape, Abstract | Nano Banana 2 | Thinking mode improves complex compositions |
|
|
59
|
+
| Product, Portrait | Nano Banana 2 | 2K/4K resolution for fidelity |
|
|
60
|
+
| UI, Infographic | Nano Banana 2 | Search grounding for factual diagrams |
|
|
61
|
+
| Logo | Nano Banana 2 | Text rendering improvements in 3.1 |
|
|
62
|
+
| Editorial | Nano Banana 2 | Default |
|
|
63
|
+
| Free tier / budget | Nano Banana (original) | $0.039/image, still excellent |
|
|
64
|
+
|
|
65
|
+
## Resolution Defaults by Domain
|
|
66
|
+
|
|
67
|
+
| Domain | Default `imageSize` | Rationale |
|
|
68
|
+
|--------|-------------------|-----------|
|
|
69
|
+
| Portrait, Product, Logo | `2K` | Fine detail and text fidelity |
|
|
70
|
+
| Cinema, Landscape | `2K` + widescreen ratio | Atmospheric depth at larger canvas |
|
|
71
|
+
| UI, Infographic | `1K` | Structured output doesn't benefit from 4K |
|
|
72
|
+
| Quick draft / preview | `512` (Nano Banana 2 only) | Rapid iteration |
|
|
73
|
+
| Print / high fidelity | `4K` | Maximum resolution for physical output |
|
|
74
|
+
|
|
75
|
+
## Aspect Ratios
|
|
76
|
+
|
|
77
|
+
All 14 supported ratios. Availability varies by model:
|
|
78
|
+
|
|
79
|
+
| Ratio | Orientation | Use Cases | NB2 (3.1 Flash) | NB (2.5 Flash) |
|
|
80
|
+
|-------|-------------|-----------|:----------------:|:--------------:|
|
|
81
|
+
| `1:1` | Square | Social posts, avatars, thumbnails | ✅ | ✅ |
|
|
82
|
+
| `16:9` | Landscape | Blog headers, YouTube thumbnails, presentations | ✅ | ✅ |
|
|
83
|
+
| `9:16` | Portrait | Stories, Reels, TikTok, mobile | ✅ | ✅ |
|
|
84
|
+
| `4:3` | Landscape | Product shots, classic display | ✅ | ✅ |
|
|
85
|
+
| `3:4` | Portrait | Book covers, portrait framing | ✅ | ✅ |
|
|
86
|
+
| `2:3` | Portrait | Pinterest pins, posters | ✅ | ✅ |
|
|
87
|
+
| `3:2` | Landscape | DSLR standard, photo prints | ✅ | ✅ |
|
|
88
|
+
| `4:5` | Portrait | Instagram portrait, social | ✅ | ✅ |
|
|
89
|
+
| `5:4` | Landscape | Large format photography | ✅ | ✅ |
|
|
90
|
+
| `21:9` | Ultra-wide | Cinematic, film-grade, ultra-wide monitors | ✅ | ✅ |
|
|
91
|
+
| `1:4` | Tall strip | Vertical banners, side panels | ✅ | ❌ |
|
|
92
|
+
| `4:1` | Wide strip | Website banners, headers | ✅ | ❌ |
|
|
93
|
+
| `1:8` | Extreme tall | Narrow vertical strips | ✅ | ❌ |
|
|
94
|
+
| `8:1` | Extreme wide | Ultra-wide banners | ✅ | ❌ |
|
|
95
|
+
|
|
96
|
+
## Resolution Tiers
|
|
97
|
+
|
|
98
|
+
Control output resolution with the `imageSize` parameter. Note the **UPPERCASE** requirement -- lowercase values are silently rejected.
|
|
99
|
+
|
|
100
|
+
| `imageSize` Value | Pixel Range | Model Availability | Use Case |
|
|
101
|
+
|-------------------|-------------|-------------------|----------|
|
|
102
|
+
| `512` | Up to 512×512 | Nano Banana 2 only | Drafts, quick iteration, low bandwidth |
|
|
103
|
+
| `1K` | Up to 1024×1024 | All models | Standard web use, social media |
|
|
104
|
+
| `2K` | Up to 2048×2048 | Nano Banana 2 only | Quality assets, detailed work |
|
|
105
|
+
| `4K` | Up to 4096×4096 | Nano Banana 2 only | Print production, hero images, final assets |
|
|
106
|
+
|
|
107
|
+
**Notes:**
|
|
108
|
+
- Actual pixel dimensions depend on aspect ratio (e.g., 4K at 16:9 = 4096×2304)
|
|
109
|
+
- Higher resolutions consume more tokens and cost more
|
|
110
|
+
- The API default is `1K` if `imageSize` is omitted. The banana skill defaults to `2K` -- always pass `imageSize` explicitly
|
|
111
|
+
- `imageSize` value MUST be uppercase -- `"2k"` will be silently ignored
|
|
112
|
+
|
|
113
|
+
## API Configuration
|
|
114
|
+
|
|
115
|
+
### Endpoint
|
|
116
|
+
```
|
|
117
|
+
https://generativelanguage.googleapis.com/v1beta/models/{model-id}:generateContent
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Required Parameters
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"contents": [{"parts": [{"text": "your prompt here"}]}],
|
|
124
|
+
"generationConfig": {
|
|
125
|
+
"responseModalities": ["TEXT", "IMAGE"],
|
|
126
|
+
"imageConfig": {
|
|
127
|
+
"aspectRatio": "16:9",
|
|
128
|
+
"imageSize": "2K"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Image-Only Output Mode
|
|
135
|
+
Force the model to return only an image (no text response):
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"generationConfig": {
|
|
139
|
+
"responseModalities": ["IMAGE"]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Thinking Level
|
|
145
|
+
Control how much the model "thinks" before generating. Higher levels improve complex compositions but increase latency:
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"generationConfig": {
|
|
149
|
+
"thinkingConfig": {
|
|
150
|
+
"thinkingLevel": "medium"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
Levels: `minimal`, `low`, `medium`, `high`
|
|
156
|
+
|
|
157
|
+
### Google Search Grounding
|
|
158
|
+
Ground generation in real-world visual references. Supports web and image search (Nano Banana 2):
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"tools": [{"googleSearch": {}}]
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
**Prompt pattern:** `[Search/source request] + [Analytical task] + [Visual translation]`
|
|
165
|
+
|
|
166
|
+
Example: "Search for the latest SpaceX Starship design, analyze its proportions and markings, then generate a photorealistic image of it at sunset on the launch pad."
|
|
167
|
+
|
|
168
|
+
### Multi-Image Input
|
|
169
|
+
Up to 14 reference images can be provided:
|
|
170
|
+
- **10 object references** -- for style, composition, or visual matching
|
|
171
|
+
- **4 character references** -- assign distinct names to preserve features across generations
|
|
172
|
+
|
|
173
|
+
Useful for character consistency, style transfer, and brand-aligned generation.
|
|
174
|
+
|
|
175
|
+
## Rate Limits by Tier
|
|
176
|
+
|
|
177
|
+
| Tier | RPM | RPD | Notes |
|
|
178
|
+
|------|-----|-----|-------|
|
|
179
|
+
| Free | ~5-15 | ~20-500 | Per project, resets midnight Pacific. Cut ~92% Dec 2025. |
|
|
180
|
+
| Tier 1 (billing enabled) | 150-300 | 1,500-10,000 | Production workloads |
|
|
181
|
+
| Tier 2 ($250+ spend) | 1,000+ | Unlimited | High-volume |
|
|
182
|
+
| Enterprise | Custom | Custom | Contact Google |
|
|
183
|
+
|
|
184
|
+
## Pricing
|
|
185
|
+
|
|
186
|
+
| Model | Resolution | Cost per Image | Notes |
|
|
187
|
+
|-------|-----------|---------------|-------|
|
|
188
|
+
| NB2 (3.1 Flash) | 1K | ~$0.067 | Standard |
|
|
189
|
+
| NB2 (3.1 Flash) | 2K | ~$0.134 | 2x standard |
|
|
190
|
+
| NB2 (3.1 Flash) | 4K | ~$0.268 | 4x standard |
|
|
191
|
+
| NB (2.5 Flash) | 1K | ~$0.039 | Previous gen, budget option |
|
|
192
|
+
| Batch API | Any | 50% discount | Asynchronous, higher latency |
|
|
193
|
+
|
|
194
|
+
Pricing is approximate and based on ~1,290 output tokens per image.
|
|
195
|
+
|
|
196
|
+
## Image Output Specs
|
|
197
|
+
|
|
198
|
+
| Property | Value |
|
|
199
|
+
|----------|-------|
|
|
200
|
+
| **Format** | PNG |
|
|
201
|
+
| **Max Resolution** | Up to 4096×4096 (4K tier, Nano Banana 2) |
|
|
202
|
+
| **Color Space** | sRGB |
|
|
203
|
+
| **Text Rendering** | Supported -- excellent under 25 characters |
|
|
204
|
+
| **Style Control** | Via prompt engineering |
|
|
205
|
+
|
|
206
|
+
## Safety Filters
|
|
207
|
+
|
|
208
|
+
Gemini uses a two-layer safety architecture:
|
|
209
|
+
|
|
210
|
+
1. **Input filters** -- block prompts containing prohibited content before generation
|
|
211
|
+
2. **Output filters** -- analyze generated images and block unsafe results
|
|
212
|
+
|
|
213
|
+
| `finishReason` | Meaning | Retryable? |
|
|
214
|
+
|----------------|---------|:----------:|
|
|
215
|
+
| `STOP` | Successful generation | N/A |
|
|
216
|
+
| `IMAGE_SAFETY` | Output blocked by safety filter | Rephrase prompt |
|
|
217
|
+
| `PROHIBITED_CONTENT` | Content policy violation | No -- topic is blocked |
|
|
218
|
+
| `SAFETY` | General safety block | Rephrase prompt |
|
|
219
|
+
| `RECITATION` | Detected copyrighted content | Rephrase prompt |
|
|
220
|
+
|
|
221
|
+
**Known issue:** Filters are known to be overly cautious -- benign prompts may be blocked. Iterate with rephrased wording if this happens.
|
|
222
|
+
|
|
223
|
+
## Content Credentials
|
|
224
|
+
|
|
225
|
+
- **SynthID watermarks** are always embedded in generated images (invisible, machine-readable)
|
|
226
|
+
- **C2PA metadata** is included on paid outputs (verifiable provenance chain)
|
|
227
|
+
|
|
228
|
+
## Key Limitations
|
|
229
|
+
- No video generation (image only)
|
|
230
|
+
- No transparent backgrounds (PNG but always with background -- use green screen workaround)
|
|
231
|
+
- Text rendering quality varies -- keep text under 25 characters for best results
|
|
232
|
+
- Safety filters may block some prompts (violence, NSFW, public figures) -- known to be overly cautious
|
|
233
|
+
- Session context resets between Claude Code conversations
|
|
234
|
+
- `imageSize` values MUST be uppercase -- lowercase fails silently
|
|
235
|
+
- Gemini generates ONE image per API call -- no batch parameter exists
|
|
236
|
+
- No negative prompt parameter -- use semantic reframing instead
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# MCP Tools Reference -- @ycse/nanobanana-mcp
|
|
2
|
+
|
|
3
|
+
> Package: `@ycse/nanobanana-mcp`
|
|
4
|
+
> GitHub: https://github.com/YCSE/nanobanana-mcp
|
|
5
|
+
|
|
6
|
+
## Tools
|
|
7
|
+
|
|
8
|
+
### gemini_generate_image
|
|
9
|
+
Generate an image from a text prompt.
|
|
10
|
+
|
|
11
|
+
**Parameters:**
|
|
12
|
+
| Param | Type | Required | Description |
|
|
13
|
+
|-------|------|----------|-------------|
|
|
14
|
+
| `prompt` | string | Yes | Text description of the image to generate |
|
|
15
|
+
|
|
16
|
+
**Returns:** Image data + file path (saved to `~/Documents/nanobanana_generated/`)
|
|
17
|
+
|
|
18
|
+
**Example usage in Claude Code:**
|
|
19
|
+
```
|
|
20
|
+
User: "Generate a sunset over mountains in watercolor style"
|
|
21
|
+
→ Claude calls gemini_generate_image with prompt
|
|
22
|
+
→ Returns image path and description
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### gemini_edit_image
|
|
26
|
+
Edit an existing image with text instructions.
|
|
27
|
+
|
|
28
|
+
**Parameters:**
|
|
29
|
+
| Param | Type | Required | Description |
|
|
30
|
+
|-------|------|----------|-------------|
|
|
31
|
+
| `imagePath` | string | Yes | Path to the image file to edit |
|
|
32
|
+
| `prompt` | string | Yes | Edit instructions |
|
|
33
|
+
|
|
34
|
+
**Returns:** Modified image data + file path
|
|
35
|
+
|
|
36
|
+
**Example:**
|
|
37
|
+
```
|
|
38
|
+
User: "Remove the background from ~/Documents/photo.png"
|
|
39
|
+
→ Claude calls gemini_edit_image with path and instruction
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### gemini_chat
|
|
43
|
+
Multi-turn visual conversation maintaining session context.
|
|
44
|
+
|
|
45
|
+
**Parameters:**
|
|
46
|
+
| Param | Type | Required | Description |
|
|
47
|
+
|-------|------|----------|-------------|
|
|
48
|
+
| `message` | string | Yes | Chat message (can reference previous images) |
|
|
49
|
+
|
|
50
|
+
**Returns:** Text response + optional image
|
|
51
|
+
|
|
52
|
+
**Key feature:** Session consistency -- maintains style, characters, and context across turns. Great for iterative refinement.
|
|
53
|
+
|
|
54
|
+
### set_aspect_ratio
|
|
55
|
+
Configure the aspect ratio for subsequent image generations.
|
|
56
|
+
|
|
57
|
+
**Parameters:**
|
|
58
|
+
| Param | Type | Required | Description |
|
|
59
|
+
|-------|------|----------|-------------|
|
|
60
|
+
| `ratio` | string | Yes | Aspect ratio (e.g., "16:9", "1:1", "9:16") |
|
|
61
|
+
|
|
62
|
+
**Supported ratios:** 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 4:5, 5:4, 1:4, 4:1, 1:8, 8:1, 21:9
|
|
63
|
+
|
|
64
|
+
### set_model
|
|
65
|
+
Switch the active Gemini model.
|
|
66
|
+
|
|
67
|
+
**Parameters:**
|
|
68
|
+
| Param | Type | Required | Description |
|
|
69
|
+
|-------|------|----------|-------------|
|
|
70
|
+
| `model` | string | Yes | Model identifier |
|
|
71
|
+
|
|
72
|
+
**Available models:**
|
|
73
|
+
- `gemini-3.1-flash-image-preview` (default, recommended -- Nano Banana 2)
|
|
74
|
+
- `gemini-2.5-flash-image` (stable fallback -- Nano Banana original)
|
|
75
|
+
<!-- REMOVED 2026-03-19: gemini-3-pro-image-preview shut down by Google March 9, 2026. Do not use. -->
|
|
76
|
+
|
|
77
|
+
### get_image_history
|
|
78
|
+
Retrieve list of images generated in the current session.
|
|
79
|
+
|
|
80
|
+
**Parameters:** None
|
|
81
|
+
|
|
82
|
+
**Returns:** Array of image entries with paths and prompts
|
|
83
|
+
|
|
84
|
+
### clear_conversation
|
|
85
|
+
Reset session context and conversation history.
|
|
86
|
+
|
|
87
|
+
**Parameters:** None
|
|
88
|
+
|
|
89
|
+
**Returns:** Confirmation of reset
|
|
90
|
+
|
|
91
|
+
## Environment Variables
|
|
92
|
+
|
|
93
|
+
| Variable | Required | Description |
|
|
94
|
+
|----------|----------|-------------|
|
|
95
|
+
| `GOOGLE_AI_API_KEY` | Yes | API key from https://aistudio.google.com/apikey |
|
|
96
|
+
| `NANOBANANA_MODEL` | No | Override default model (default: `gemini-3.1-flash-image-preview`) |
|
|
97
|
+
|
|
98
|
+
## Output Directory
|
|
99
|
+
All generated images are saved to: `~/Documents/nanobanana_generated/`
|
|
100
|
+
|
|
101
|
+
Images are named with timestamps for easy identification.
|
|
102
|
+
|
|
103
|
+
## Feature Availability via MCP
|
|
104
|
+
|
|
105
|
+
Some newer Gemini API features depend on the MCP package version of `@ycse/nanobanana-mcp`. Check the package version to confirm support:
|
|
106
|
+
|
|
107
|
+
| Feature | API Status | MCP Support |
|
|
108
|
+
|---------|-----------|-------------|
|
|
109
|
+
| `imageSize` (resolution control) | Available | Depends on package version |
|
|
110
|
+
| Thinking level (`thinkingConfig`) | Available | Depends on package version |
|
|
111
|
+
| Search grounding (`googleSearch`) | Available | Depends on package version |
|
|
112
|
+
| Image-only output (`responseModalities: ["IMAGE"]`) | Available | Depends on package version |
|
|
113
|
+
| Multi-image input (up to 14 refs) | Available | Via `gemini_chat` with image paths |
|
|
114
|
+
| All 14 aspect ratios | Available | Via `set_aspect_ratio` |
|
|
115
|
+
|
|
116
|
+
If a feature is not yet supported by the MCP package, you can still use it via direct API calls with the fallback scripts (`scripts/generate.py` and `scripts/edit.py`).
|
|
117
|
+
|
|
118
|
+
## ImageConfig Parameter Reference
|
|
119
|
+
|
|
120
|
+
| Parameter | Type | Valid values | Default | Critical notes |
|
|
121
|
+
|---|---|---|---|---|
|
|
122
|
+
| `aspect_ratio` | string | "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "1:4"*, "4:1"*, "1:8"*, "8:1"* | "1:1" | * = Nano Banana 2 only |
|
|
123
|
+
| `image_size` | string | "512"*, "1K", "2K"*, "4K"* | "1K" | MUST be uppercase. "2k" silently fails. * = Nano Banana 2 only |
|
|
124
|
+
| `person_generation` | string | "ALLOW_ALL", "ALLOW_ADULT", "ALLOW_NONE" | Varies | ALLOW_ALL restricted in EU/UK |
|
|
125
|
+
|
|
126
|
+
## ❌ Parameters That Do NOT Exist for Gemini Image Models
|
|
127
|
+
|
|
128
|
+
These are common copy-paste errors from Imagen or other model documentation.
|
|
129
|
+
Passing them will not cause errors -- they will be silently ignored.
|
|
130
|
+
|
|
131
|
+
- `numberOfImages` / `n` / `sampleCount` -- Gemini generates ONE image per call. These are Imagen-only. There is no batch parameter.
|
|
132
|
+
- `negativePrompt` -- See prompt-engineering.md for the correct approach (semantic reframing).
|
|
133
|
+
- `output_mime_type` -- Vertex AI only, not available in Gemini API.
|
|
134
|
+
- `candidate_count` -- Only 1 supported for image models.
|
|
135
|
+
- `seed` -- Not supported for reproducible generation.
|
|
136
|
+
|
|
137
|
+
## Error Response Taxonomy
|
|
138
|
+
|
|
139
|
+
| Error type | Cause | Correct response |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| HTTP 429 | Rate limit | Exponential backoff. Free tier: ~5-15 RPM. |
|
|
142
|
+
| HTTP 400 FAILED_PRECONDITION | Billing not enabled | User must enable billing in Google AI Studio |
|
|
143
|
+
| `finishReason: "IMAGE_SAFETY"` | Content policy block | Apply safety rephrase from prompt-engineering.md, retry once |
|
|
144
|
+
| Empty `parts` in response | Wrong `response_modalities` | Must include "IMAGE" in responseModalities |
|
|
145
|
+
| `thought_signature` missing | Multi-turn editing on Gemini 3 | Preserve this field from previous response for edit continuity |
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Post-Processing Pipeline Reference
|
|
2
|
+
|
|
3
|
+
> Load this on-demand when the user needs image manipulation after generation.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Check availability before using:
|
|
8
|
+
```bash
|
|
9
|
+
which magick # ImageMagick 7 (preferred)
|
|
10
|
+
which convert # ImageMagick 6 (fallback)
|
|
11
|
+
which ffmpeg # For video/animation
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Install ImageMagick if not present: `sudo apt install imagemagick` (Debian/Ubuntu) or `brew install imagemagick` (macOS).
|
|
15
|
+
|
|
16
|
+
## Common Operations
|
|
17
|
+
|
|
18
|
+
### Resize for Platforms
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Instagram post (1080x1080)
|
|
22
|
+
magick input.png -resize 1080x1080^ -gravity center -extent 1080x1080 instagram.png
|
|
23
|
+
|
|
24
|
+
# Twitter/X header (1500x500)
|
|
25
|
+
magick input.png -resize 1500x500^ -gravity center -extent 1500x500 twitter-header.png
|
|
26
|
+
|
|
27
|
+
# YouTube thumbnail (1280x720)
|
|
28
|
+
magick input.png -resize 1280x720^ -gravity center -extent 1280x720 youtube-thumb.png
|
|
29
|
+
|
|
30
|
+
# LinkedIn banner (1584x396)
|
|
31
|
+
magick input.png -resize 1584x396^ -gravity center -extent 1584x396 linkedin-banner.png
|
|
32
|
+
|
|
33
|
+
# Favicon (multi-size ICO)
|
|
34
|
+
magick input.png -resize 32x32 favicon.ico
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Background Removal (Transparency)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Remove solid white background
|
|
41
|
+
magick input.png -fuzz 10% -transparent white output.png
|
|
42
|
+
|
|
43
|
+
# Remove solid color background (specify color)
|
|
44
|
+
magick input.png -fuzz 15% -transparent "#F0F0F0" output.png
|
|
45
|
+
|
|
46
|
+
# Clean edges after transparency (anti-alias)
|
|
47
|
+
magick input.png -fuzz 10% -transparent white -channel A -blur 0x1 -level 50%,100% output.png
|
|
48
|
+
|
|
49
|
+
# Auto-crop transparent padding
|
|
50
|
+
magick input.png -trim +repage output.png
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Format Conversion
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# PNG to WebP (web-optimized, smaller file)
|
|
57
|
+
magick input.png -quality 85 output.webp
|
|
58
|
+
|
|
59
|
+
# PNG to JPEG (with white background for transparency)
|
|
60
|
+
magick input.png -background white -flatten -quality 90 output.jpg
|
|
61
|
+
|
|
62
|
+
# PNG to AVIF (modern, smallest size)
|
|
63
|
+
magick input.png -quality 80 output.avif
|
|
64
|
+
|
|
65
|
+
# SVG trace (for logos -- requires potrace)
|
|
66
|
+
potrace input.pbm -s -o output.svg
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Color Adjustments
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Increase contrast
|
|
73
|
+
magick input.png -contrast-stretch 2%x1% output.png
|
|
74
|
+
|
|
75
|
+
# Warm color temperature
|
|
76
|
+
magick input.png -modulate 100,110,105 output.png
|
|
77
|
+
|
|
78
|
+
# Cool color temperature
|
|
79
|
+
magick input.png -modulate 100,90,95 output.png
|
|
80
|
+
|
|
81
|
+
# Desaturate (muted colors)
|
|
82
|
+
magick input.png -modulate 100,70,100 output.png
|
|
83
|
+
|
|
84
|
+
# Convert to grayscale
|
|
85
|
+
magick input.png -colorspace Gray output.png
|
|
86
|
+
|
|
87
|
+
# Sepia tone
|
|
88
|
+
magick input.png -sepia-tone 80% output.png
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Compositing
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Overlay watermark (bottom-right, 20% opacity)
|
|
95
|
+
magick base.png watermark.png -gravity southeast -geometry +20+20 \
|
|
96
|
+
-compose dissolve -define compose:args=20 -composite output.png
|
|
97
|
+
|
|
98
|
+
# Side-by-side comparison
|
|
99
|
+
magick input1.png input2.png +append comparison.png
|
|
100
|
+
|
|
101
|
+
# Vertical stack
|
|
102
|
+
magick input1.png input2.png -append stack.png
|
|
103
|
+
|
|
104
|
+
# Add padding/border
|
|
105
|
+
magick input.png -bordercolor white -border 40 output.png
|
|
106
|
+
|
|
107
|
+
# Add rounded corners
|
|
108
|
+
magick input.png \( +clone -alpha extract -draw \
|
|
109
|
+
"roundrectangle 0,0,%[fx:w-1],%[fx:h-1],20,20" \) \
|
|
110
|
+
-alpha off -compose CopyOpacity -composite rounded.png
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Batch Processing
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Resize all PNGs in directory
|
|
117
|
+
for f in ~/Documents/nanobanana_generated/*.png; do
|
|
118
|
+
magick "$f" -resize 800x800 "${f%.png}_thumb.png"
|
|
119
|
+
done
|
|
120
|
+
|
|
121
|
+
# Convert all to WebP
|
|
122
|
+
for f in ~/Documents/nanobanana_generated/*.png; do
|
|
123
|
+
magick "$f" -quality 85 "${f%.png}.webp"
|
|
124
|
+
done
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Animation (GIF/Video from Multiple Frames)
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Create GIF from multiple images
|
|
131
|
+
magick -delay 100 frame1.png frame2.png frame3.png animation.gif
|
|
132
|
+
|
|
133
|
+
# Create MP4 from image sequence
|
|
134
|
+
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
|
|
135
|
+
-c:v libx264 -pix_fmt yuv420p slideshow.mp4
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Note on 4K Output
|
|
139
|
+
|
|
140
|
+
With Gemini 3.1 Flash's `imageSize: "4K"` option (up to 4096×4096), many traditional
|
|
141
|
+
upscaling post-processing steps are no longer necessary. If your target platform accepts
|
|
142
|
+
images at or below 4K resolution, generate at native 4K instead of generating at 1K
|
|
143
|
+
and upscaling. This produces better detail and avoids upscaling artifacts.
|
|
144
|
+
|
|
145
|
+
## Green Screen Transparency Pipeline
|
|
146
|
+
|
|
147
|
+
Gemini cannot generate transparent backgrounds. Use this workaround:
|
|
148
|
+
|
|
149
|
+
### 1. Generate with green screen prompt
|
|
150
|
+
|
|
151
|
+
Append to any prompt:
|
|
152
|
+
```
|
|
153
|
+
on a solid bright green (#00FF00) chroma key background
|
|
154
|
+
with a thin white outline separating the subject from the background
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 2. Remove green screen (ImageMagick)
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
magick input.png -fuzz 20% -transparent "#00FF00" output.png
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 3. Clean edges + trim (ImageMagick)
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
magick output.png -channel A -blur 0x1 -level 50%,100% -trim +repage final.png
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 4. Alternative (FFmpeg, better for batch)
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
ffmpeg -i input.png -vf "colorkey=0x00FF00:0.3:0.1,despill=type=green" -pix_fmt rgba output.png
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Tips
|
|
176
|
+
- `-fuzz 20%` handles slight color variations at edges; increase to 25% for softer edges
|
|
177
|
+
- The white outline in the prompt helps prevent color spill on subject edges
|
|
178
|
+
- For batch processing, the FFmpeg approach is faster and handles despill automatically
|
|
179
|
+
- Always verify edges after conversion -- may need manual touchup for hair/fur
|
|
180
|
+
|
|
181
|
+
## Quality Assessment
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Get image dimensions and info
|
|
185
|
+
magick identify -verbose input.png | head -20
|
|
186
|
+
|
|
187
|
+
# Check file size
|
|
188
|
+
ls -lh input.png
|
|
189
|
+
|
|
190
|
+
# Get exact pixel dimensions
|
|
191
|
+
magick identify -format "%wx%h" input.png
|
|
192
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Brand/Style Presets Reference
|
|
2
|
+
|
|
3
|
+
> Load this on-demand when the user asks about presets or brand consistency.
|
|
4
|
+
|
|
5
|
+
## Preset Schema
|
|
6
|
+
|
|
7
|
+
Each preset is stored as `~/.banana/presets/NAME.json`:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"name": "tech-saas",
|
|
12
|
+
"description": "Clean tech SaaS brand",
|
|
13
|
+
"colors": ["#2563EB", "#1E40AF", "#F8FAFC"],
|
|
14
|
+
"style": "clean minimal tech illustration, flat vectors, soft shadows",
|
|
15
|
+
"typography": "bold geometric sans-serif",
|
|
16
|
+
"lighting": "bright diffused studio, no harsh shadows",
|
|
17
|
+
"mood": "professional, trustworthy, modern",
|
|
18
|
+
"default_ratio": "16:9",
|
|
19
|
+
"default_resolution": "2K"
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Example Presets
|
|
24
|
+
|
|
25
|
+
### tech-saas
|
|
26
|
+
- **Colors:** #2563EB, #1E40AF, #F8FAFC (blue + white)
|
|
27
|
+
- **Style:** Clean minimal tech illustration, flat vectors, soft shadows
|
|
28
|
+
- **Typography:** Bold geometric sans-serif
|
|
29
|
+
- **Mood:** Professional, trustworthy, modern
|
|
30
|
+
|
|
31
|
+
### luxury-brand
|
|
32
|
+
- **Colors:** #1A1A1A, #C9A96E, #FAFAF5 (black + gold + cream)
|
|
33
|
+
- **Style:** Elegant high-end photography, rich textures, deep contrast
|
|
34
|
+
- **Typography:** Thin elegant serif, generous letter-spacing
|
|
35
|
+
- **Mood:** Exclusive, sophisticated, aspirational
|
|
36
|
+
|
|
37
|
+
### editorial-magazine
|
|
38
|
+
- **Colors:** #000000, #FFFFFF, #FF3B30 (black + white + accent red)
|
|
39
|
+
- **Style:** Bold editorial photography, strong geometric composition
|
|
40
|
+
- **Typography:** Condensed all-caps sans-serif headlines
|
|
41
|
+
- **Mood:** Bold, provocative, contemporary
|
|
42
|
+
|
|
43
|
+
## How Presets Merge into Reasoning Brief
|
|
44
|
+
|
|
45
|
+
When a preset is active, Claude uses its values as defaults for the Reasoning Brief:
|
|
46
|
+
1. **Colors** → inform palette descriptions in Context and Style components
|
|
47
|
+
2. **Style** → becomes the base for the Style component
|
|
48
|
+
3. **Typography** → used for any text rendering
|
|
49
|
+
4. **Lighting** → becomes the base for the Lighting component
|
|
50
|
+
5. **Mood** → influences Action and Context components
|
|
51
|
+
|
|
52
|
+
User instructions always override preset values. If a user says "make it dark"
|
|
53
|
+
but the preset has bright lighting, follow the user's instruction.
|
|
54
|
+
|
|
55
|
+
## Managing Presets
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# List presets
|
|
59
|
+
presets.py list
|
|
60
|
+
|
|
61
|
+
# Show details
|
|
62
|
+
presets.py show tech-saas
|
|
63
|
+
|
|
64
|
+
# Create interactively (Claude fills in details from conversation)
|
|
65
|
+
presets.py create NAME --colors "#hex,#hex" --style "..." --mood "..."
|
|
66
|
+
|
|
67
|
+
# Delete
|
|
68
|
+
presets.py delete NAME --confirm
|
|
69
|
+
```
|