@trieungoctam/vibekit 1.0.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/LICENSE +21 -0
- package/README.md +85 -0
- package/agents/debugger.md +158 -0
- package/agents/docs-manager.md +220 -0
- package/agents/planner.md +129 -0
- package/agents/researcher.md +58 -0
- package/agents/reviewer.md +152 -0
- package/agents/tester.md +126 -0
- package/bin/vibekit.js +18 -0
- package/hooks/lib/ck-config-utils.cjs +831 -0
- package/hooks/lib/colors.cjs +95 -0
- package/hooks/lib/config-counter.cjs +103 -0
- package/hooks/lib/context-builder.cjs +616 -0
- package/hooks/lib/git-info-cache.cjs +143 -0
- package/hooks/lib/hook-logger.cjs +92 -0
- package/hooks/lib/privacy-checker.cjs +297 -0
- package/hooks/lib/project-detector.cjs +474 -0
- package/hooks/lib/scout-checker.cjs +263 -0
- package/hooks/lib/transcript-parser.cjs +181 -0
- package/hooks/post-edit-simplify-reminder.cjs +156 -0
- package/hooks/privacy-block.cjs +166 -0
- package/hooks/scout-block.cjs +147 -0
- package/hooks/session-init.cjs +360 -0
- package/package.json +41 -0
- package/rules/development-rules.md +52 -0
- package/rules/documentation-management.md +121 -0
- package/rules/orchestration-protocol.md +43 -0
- package/rules/primary-workflow.md +57 -0
- package/rules/team-coordination-rules.md +90 -0
- package/skills/ai/agent-browser/SKILL.md +294 -0
- package/skills/ai/agent-browser/references/.gitkeep +0 -0
- package/skills/ai/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/skills/ai/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/skills/ai/ai-artist/SKILL.md +122 -0
- package/skills/ai/ai-artist/data/awesome-prompts.csv +3592 -0
- package/skills/ai/ai-artist/data/lighting.csv +19 -0
- package/skills/ai/ai-artist/data/nano-banana-templates.csv +17 -0
- package/skills/ai/ai-artist/data/platforms.csv +11 -0
- package/skills/ai/ai-artist/data/styles.csv +26 -0
- package/skills/ai/ai-artist/data/techniques.csv +19 -0
- package/skills/ai/ai-artist/data/use-cases.csv +16 -0
- package/skills/ai/ai-artist/references/advanced-techniques.md +184 -0
- package/skills/ai/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
- package/skills/ai/ai-artist/references/domain-code.md +66 -0
- package/skills/ai/ai-artist/references/domain-data.md +72 -0
- package/skills/ai/ai-artist/references/domain-marketing.md +66 -0
- package/skills/ai/ai-artist/references/domain-patterns.md +33 -0
- package/skills/ai/ai-artist/references/domain-writing.md +68 -0
- package/skills/ai/ai-artist/references/image-prompting.md +141 -0
- package/skills/ai/ai-artist/references/llm-prompting.md +165 -0
- package/skills/ai/ai-artist/references/nano-banana.md +136 -0
- package/skills/ai/ai-artist/references/reasoning-techniques.md +201 -0
- package/skills/ai/ai-artist/references/validation-workflow.md +117 -0
- package/skills/ai/ai-artist/scripts/core.py +197 -0
- package/skills/ai/ai-artist/scripts/extract_prompts.py +102 -0
- package/skills/ai/ai-artist/scripts/generate.py +370 -0
- package/skills/ai/ai-artist/scripts/search.py +147 -0
- package/skills/ai/ai-multimodal/.env.example +204 -0
- package/skills/ai/ai-multimodal/SKILL.md +110 -0
- package/skills/ai/ai-multimodal/references/audio-processing.md +387 -0
- package/skills/ai/ai-multimodal/references/image-generation.md +939 -0
- package/skills/ai/ai-multimodal/references/music-generation.md +311 -0
- package/skills/ai/ai-multimodal/references/video-analysis.md +515 -0
- package/skills/ai/ai-multimodal/references/video-generation.md +457 -0
- package/skills/ai/ai-multimodal/references/vision-understanding.md +492 -0
- package/skills/ai/ai-multimodal/scripts/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/check_setup.py +315 -0
- package/skills/ai/ai-multimodal/scripts/document_converter.py +395 -0
- package/skills/ai/ai-multimodal/scripts/gemini_batch_process.py +1185 -0
- package/skills/ai/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/skills/ai/ai-multimodal/scripts/requirements.txt +26 -0
- package/skills/ai/ai-multimodal/scripts/tests/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/skills/ai/mcp-management/README.md +219 -0
- package/skills/ai/mcp-management/SKILL.md +210 -0
- package/skills/ai/mcp-management/assets/tools.json +3146 -0
- package/skills/ai/mcp-management/references/configuration.md +114 -0
- package/skills/ai/mcp-management/references/gemini-cli-integration.md +221 -0
- package/skills/ai/mcp-management/references/mcp-protocol.md +116 -0
- package/skills/ai/mcp-management/scripts/.env.example +10 -0
- package/skills/ai/mcp-management/scripts/cli.ts +195 -0
- package/skills/ai/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/ai/mcp-management/scripts/dist/cli.js +160 -0
- package/skills/ai/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/skills/ai/mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/ai/mcp-management/scripts/package.json +20 -0
- package/skills/ai/mcp-management/scripts/tsconfig.json +15 -0
- package/skills/core/brainstorm/SKILL.md +164 -0
- package/skills/core/brainstorm/scripts/frame-template.html +214 -0
- package/skills/core/brainstorm/scripts/helper.js +88 -0
- package/skills/core/brainstorm/scripts/server.cjs +338 -0
- package/skills/core/brainstorm/scripts/start-server.sh +153 -0
- package/skills/core/brainstorm/scripts/stop-server.sh +55 -0
- package/skills/core/brainstorm/spec-document-reviewer-prompt.md +49 -0
- package/skills/core/brainstorm/visual-companion.md +286 -0
- package/skills/core/code-review/SKILL.md +147 -0
- package/skills/core/code-review/references/code-review-reception.md +113 -0
- package/skills/core/code-review/references/codebase-scan-workflow.md +29 -0
- package/skills/core/code-review/references/edge-case-scouting.md +119 -0
- package/skills/core/code-review/references/parallel-review-workflow.md +69 -0
- package/skills/core/code-review/references/requesting-code-review.md +116 -0
- package/skills/core/code-review/references/task-management-reviews.md +140 -0
- package/skills/core/code-review/references/verification-before-completion.md +139 -0
- package/skills/core/cook/README.md +86 -0
- package/skills/core/cook/SKILL.md +113 -0
- package/skills/core/cook/references/intent-detection.md +101 -0
- package/skills/core/cook/references/review-cycle.md +75 -0
- package/skills/core/cook/references/subagent-patterns.md +75 -0
- package/skills/core/cook/references/workflow-steps.md +172 -0
- package/skills/core/debug/SKILL.md +121 -0
- package/skills/core/debug/references/defense-in-depth.md +124 -0
- package/skills/core/debug/references/frontend-verification.md +103 -0
- package/skills/core/debug/references/investigation-methodology.md +101 -0
- package/skills/core/debug/references/log-and-ci-analysis.md +97 -0
- package/skills/core/debug/references/performance-diagnostics.md +113 -0
- package/skills/core/debug/references/reporting-standards.md +122 -0
- package/skills/core/debug/references/root-cause-tracing.md +122 -0
- package/skills/core/debug/references/systematic-debugging.md +102 -0
- package/skills/core/debug/references/task-management-debugging.md +155 -0
- package/skills/core/debug/references/verification.md +123 -0
- package/skills/core/debug/scripts/find-polluter.sh +63 -0
- package/skills/core/debug/scripts/find-polluter.test.md +102 -0
- package/skills/core/execute/SKILL.md +70 -0
- package/skills/core/fix/SKILL.md +111 -0
- package/skills/core/fix/references/complexity-assessment.md +72 -0
- package/skills/core/fix/references/mode-selection.md +46 -0
- package/skills/core/fix/references/parallel-exploration.md +100 -0
- package/skills/core/fix/references/review-cycle.md +77 -0
- package/skills/core/fix/references/skill-activation-matrix.md +78 -0
- package/skills/core/fix/references/task-orchestration.md +103 -0
- package/skills/core/fix/references/workflow-ci.md +28 -0
- package/skills/core/fix/references/workflow-deep.md +122 -0
- package/skills/core/fix/references/workflow-logs.md +72 -0
- package/skills/core/fix/references/workflow-quick.md +59 -0
- package/skills/core/fix/references/workflow-standard.md +111 -0
- package/skills/core/fix/references/workflow-test.md +75 -0
- package/skills/core/fix/references/workflow-types.md +33 -0
- package/skills/core/fix/references/workflow-ui.md +75 -0
- package/skills/core/plan/SKILL.md +145 -0
- package/skills/core/plan/plan-document-reviewer-prompt.md +49 -0
- package/skills/core/subagent-dev/SKILL.md +277 -0
- package/skills/core/subagent-dev/code-quality-reviewer-prompt.md +26 -0
- package/skills/core/subagent-dev/implementer-prompt.md +113 -0
- package/skills/core/subagent-dev/spec-reviewer-prompt.md +61 -0
- package/skills/core/tdd/SKILL.md +371 -0
- package/skills/core/tdd/testing-anti-patterns.md +299 -0
- package/skills/core/test/SKILL.md +109 -0
- package/skills/core/test/references/report-format.md +58 -0
- package/skills/core/test/references/test-execution-workflow.md +103 -0
- package/skills/core/test/references/ui-testing-workflow.md +65 -0
- package/skills/core/verify/SKILL.md +139 -0
- package/skills/dev/backend-dev/SKILL.md +96 -0
- package/skills/dev/backend-dev/references/backend-api-design.md +495 -0
- package/skills/dev/backend-dev/references/backend-architecture.md +454 -0
- package/skills/dev/backend-dev/references/backend-authentication.md +338 -0
- package/skills/dev/backend-dev/references/backend-code-quality.md +659 -0
- package/skills/dev/backend-dev/references/backend-debugging.md +904 -0
- package/skills/dev/backend-dev/references/backend-devops.md +494 -0
- package/skills/dev/backend-dev/references/backend-mindset.md +387 -0
- package/skills/dev/backend-dev/references/backend-performance.md +397 -0
- package/skills/dev/backend-dev/references/backend-security.md +290 -0
- package/skills/dev/backend-dev/references/backend-technologies.md +256 -0
- package/skills/dev/backend-dev/references/backend-testing.md +429 -0
- package/skills/dev/context-engineering/SKILL.md +108 -0
- package/skills/dev/context-engineering/references/context-compression.md +84 -0
- package/skills/dev/context-engineering/references/context-degradation.md +93 -0
- package/skills/dev/context-engineering/references/context-fundamentals.md +75 -0
- package/skills/dev/context-engineering/references/context-optimization.md +82 -0
- package/skills/dev/context-engineering/references/evaluation.md +89 -0
- package/skills/dev/context-engineering/references/memory-systems.md +88 -0
- package/skills/dev/context-engineering/references/multi-agent-patterns.md +90 -0
- package/skills/dev/context-engineering/references/project-development.md +97 -0
- package/skills/dev/context-engineering/references/runtime-awareness.md +202 -0
- package/skills/dev/context-engineering/references/tool-design.md +86 -0
- package/skills/dev/context-engineering/scripts/compression_evaluator.py +349 -0
- package/skills/dev/context-engineering/scripts/context_analyzer.py +317 -0
- package/skills/dev/context-engineering/scripts/tests/test_edge_cases.py +246 -0
- package/skills/dev/databases/SKILL.md +84 -0
- package/skills/dev/databases/analytics.md +198 -0
- package/skills/dev/databases/db-design.md +188 -0
- package/skills/dev/databases/incremental-etl.md +213 -0
- package/skills/dev/databases/references/mongodb-aggregation.md +447 -0
- package/skills/dev/databases/references/mongodb-atlas.md +465 -0
- package/skills/dev/databases/references/mongodb-crud.md +408 -0
- package/skills/dev/databases/references/mongodb-indexing.md +442 -0
- package/skills/dev/databases/references/postgresql-administration.md +594 -0
- package/skills/dev/databases/references/postgresql-performance.md +527 -0
- package/skills/dev/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/dev/databases/references/postgresql-queries.md +475 -0
- package/skills/dev/databases/scripts/.coverage +0 -0
- package/skills/dev/databases/scripts/db_backup.py +502 -0
- package/skills/dev/databases/scripts/db_migrate.py +426 -0
- package/skills/dev/databases/scripts/db_performance_check.py +457 -0
- package/skills/dev/databases/scripts/requirements.txt +20 -0
- package/skills/dev/databases/scripts/tests/coverage-db.json +1 -0
- package/skills/dev/databases/scripts/tests/requirements.txt +4 -0
- package/skills/dev/databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/dev/databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/dev/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/dev/databases/stacks/bigquery.md +231 -0
- package/skills/dev/databases/stacks/d1_cloudflare.md +137 -0
- package/skills/dev/databases/stacks/mysql.md +216 -0
- package/skills/dev/databases/stacks/postgres.md +235 -0
- package/skills/dev/databases/stacks/sqlite.md +244 -0
- package/skills/dev/databases/transactional.md +176 -0
- package/skills/dev/devops/.env.example +76 -0
- package/skills/dev/devops/SKILL.md +97 -0
- package/skills/dev/devops/references/browser-rendering.md +305 -0
- package/skills/dev/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/dev/devops/references/cloudflare-platform.md +271 -0
- package/skills/dev/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/dev/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/dev/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/dev/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/dev/devops/references/docker-basics.md +297 -0
- package/skills/dev/devops/references/docker-compose.md +292 -0
- package/skills/dev/devops/references/gcloud-platform.md +297 -0
- package/skills/dev/devops/references/gcloud-services.md +304 -0
- package/skills/dev/devops/references/kubernetes-basics.md +99 -0
- package/skills/dev/devops/references/kubernetes-helm-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-helm.md +81 -0
- package/skills/dev/devops/references/kubernetes-kubectl.md +74 -0
- package/skills/dev/devops/references/kubernetes-security-advanced.md +98 -0
- package/skills/dev/devops/references/kubernetes-security.md +95 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting.md +49 -0
- package/skills/dev/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-workflows.md +78 -0
- package/skills/dev/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/dev/devops/scripts/docker_optimize.py +332 -0
- package/skills/dev/devops/scripts/requirements.txt +20 -0
- package/skills/dev/devops/scripts/tests/requirements.txt +3 -0
- package/skills/dev/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/dev/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/dev/frontend-design/SKILL.md +78 -0
- package/skills/dev/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/skills/dev/frontend-design/references/analysis-best-practices.md +80 -0
- package/skills/dev/frontend-design/references/analysis-prompts.md +141 -0
- package/skills/dev/frontend-design/references/analysis-techniques.md +118 -0
- package/skills/dev/frontend-design/references/animejs.md +396 -0
- package/skills/dev/frontend-design/references/asset-generation.md +337 -0
- package/skills/dev/frontend-design/references/design-extraction-overview.md +71 -0
- package/skills/dev/frontend-design/references/extraction-best-practices.md +141 -0
- package/skills/dev/frontend-design/references/extraction-output-templates.md +162 -0
- package/skills/dev/frontend-design/references/extraction-prompts.md +127 -0
- package/skills/dev/frontend-design/references/technical-accessibility.md +119 -0
- package/skills/dev/frontend-design/references/technical-best-practices.md +97 -0
- package/skills/dev/frontend-design/references/technical-optimization.md +44 -0
- package/skills/dev/frontend-design/references/technical-overview.md +90 -0
- package/skills/dev/frontend-design/references/technical-workflows.md +150 -0
- package/skills/dev/frontend-design/references/visual-analysis-overview.md +95 -0
- package/skills/dev/frontend-design/references/workflow-3d.md +102 -0
- package/skills/dev/frontend-design/references/workflow-describe.md +87 -0
- package/skills/dev/frontend-design/references/workflow-immersive.md +87 -0
- package/skills/dev/frontend-design/references/workflow-quick.md +57 -0
- package/skills/dev/frontend-design/references/workflow-screenshot.md +63 -0
- package/skills/dev/frontend-design/references/workflow-video.md +74 -0
- package/skills/dev/frontend-dev/SKILL.md +400 -0
- package/skills/dev/frontend-dev/resources/common-patterns.md +331 -0
- package/skills/dev/frontend-dev/resources/complete-examples.md +872 -0
- package/skills/dev/frontend-dev/resources/component-patterns.md +502 -0
- package/skills/dev/frontend-dev/resources/data-fetching.md +767 -0
- package/skills/dev/frontend-dev/resources/file-organization.md +502 -0
- package/skills/dev/frontend-dev/resources/loading-and-error-states.md +501 -0
- package/skills/dev/frontend-dev/resources/performance.md +406 -0
- package/skills/dev/frontend-dev/resources/routing-guide.md +364 -0
- package/skills/dev/frontend-dev/resources/styling-guide.md +428 -0
- package/skills/dev/frontend-dev/resources/typescript-standards.md +418 -0
- package/skills/dev/git/SKILL.md +114 -0
- package/skills/dev/git/references/branch-management.md +88 -0
- package/skills/dev/git/references/commit-standards.md +46 -0
- package/skills/dev/git/references/gh-cli-guide.md +109 -0
- package/skills/dev/git/references/safety-protocols.md +69 -0
- package/skills/dev/git/references/workflow-commit.md +58 -0
- package/skills/dev/git/references/workflow-merge.md +48 -0
- package/skills/dev/git/references/workflow-pr.md +58 -0
- package/skills/dev/git/references/workflow-push.md +52 -0
- package/skills/dev/git-worktree/SKILL.md +218 -0
- package/skills/utils/ask/SKILL.md +58 -0
- package/skills/utils/bootstrap/SKILL.md +101 -0
- package/skills/utils/bootstrap/references/shared-phases.md +59 -0
- package/skills/utils/bootstrap/references/workflow-auto.md +52 -0
- package/skills/utils/bootstrap/references/workflow-fast.md +50 -0
- package/skills/utils/bootstrap/references/workflow-full.md +60 -0
- package/skills/utils/bootstrap/references/workflow-parallel.md +59 -0
- package/skills/utils/ck-help/SKILL.md +102 -0
- package/skills/utils/ck-help/scripts/ck-help.py +1321 -0
- package/skills/utils/ck-help/scripts/commands_data.yaml +3 -0
- package/skills/utils/ck-help/scripts/skills_data.yaml +593 -0
- package/skills/utils/copywriting/SKILL.md +94 -0
- package/skills/utils/copywriting/references/copy-formulas.md +150 -0
- package/skills/utils/copywriting/references/cta-patterns.md +168 -0
- package/skills/utils/copywriting/references/email-copy.md +193 -0
- package/skills/utils/copywriting/references/headline-templates.md +140 -0
- package/skills/utils/copywriting/references/landing-page-copy.md +175 -0
- package/skills/utils/copywriting/references/power-words.md +189 -0
- package/skills/utils/copywriting/references/social-media-copy.md +222 -0
- package/skills/utils/copywriting/references/workflow-cro.md +83 -0
- package/skills/utils/copywriting/references/workflow-enhance.md +32 -0
- package/skills/utils/copywriting/references/workflow-fast.md +29 -0
- package/skills/utils/copywriting/references/workflow-good.md +39 -0
- package/skills/utils/copywriting/references/writing-styles.md +247 -0
- package/skills/utils/copywriting/scripts/extract-writing-styles.py +308 -0
- package/skills/utils/copywriting/templates/copy-brief.md +49 -0
- package/skills/utils/docs/SKILL.md +55 -0
- package/skills/utils/docs/references/init-workflow.md +32 -0
- package/skills/utils/docs/references/summarize-workflow.md +18 -0
- package/skills/utils/docs/references/update-workflow.md +59 -0
- package/skills/utils/journal/SKILL.md +11 -0
- package/skills/utils/kanban/SKILL.md +99 -0
- package/skills/utils/preview/SKILL.md +75 -0
- package/skills/utils/preview/references/generation-modes.md +95 -0
- package/skills/utils/preview/references/view-mode.md +42 -0
- package/skills/utils/repomix/SKILL.md +248 -0
- package/skills/utils/repomix/references/configuration.md +211 -0
- package/skills/utils/repomix/references/usage-patterns.md +232 -0
- package/skills/utils/repomix/scripts/.coverage +0 -0
- package/skills/utils/repomix/scripts/README.md +179 -0
- package/skills/utils/repomix/scripts/repomix_batch.py +455 -0
- package/skills/utils/repomix/scripts/repos.example.json +15 -0
- package/skills/utils/repomix/scripts/requirements.txt +15 -0
- package/skills/utils/repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/skills/utils/research/SKILL.md +171 -0
- package/skills/utils/scout/SKILL.md +89 -0
- package/skills/utils/scout/references/external-scouting.md +140 -0
- package/skills/utils/scout/references/internal-scouting.md +119 -0
- package/skills/utils/scout/references/task-management-scouting.md +125 -0
- package/skills/utils/sequential-thinking/.env.example +8 -0
- package/skills/utils/sequential-thinking/README.md +183 -0
- package/skills/utils/sequential-thinking/SKILL.md +95 -0
- package/skills/utils/sequential-thinking/package.json +31 -0
- package/skills/utils/sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/utils/sequential-thinking/references/advanced-techniques.md +76 -0
- package/skills/utils/sequential-thinking/references/core-patterns.md +95 -0
- package/skills/utils/sequential-thinking/references/examples-api.md +88 -0
- package/skills/utils/sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/utils/sequential-thinking/references/examples-debug.md +90 -0
- package/skills/utils/sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/utils/sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/utils/sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/utils/sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/utils/write-skill/SKILL.md +655 -0
- package/skills/utils/write-skill/anthropic-best-practices.md +1150 -0
- package/skills/utils/write-skill/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/utils/write-skill/graphviz-conventions.dot +172 -0
- package/skills/utils/write-skill/persuasion-principles.md +187 -0
- package/skills/utils/write-skill/render-graphs.js +168 -0
- package/skills/utils/write-skill/testing-skills-with-subagents.md +384 -0
- package/src/commands/init.js +238 -0
|
@@ -0,0 +1,939 @@
|
|
|
1
|
+
# Image Generation Reference
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for image creation, editing, and composition using Imagen 4 and Gemini models ("Nano Banana").
|
|
4
|
+
|
|
5
|
+
> **Nano Banana** = Google's internal name for native image generation in Gemini API. Two variants: Nano Banana (Flash - speed) and Nano Banana Pro (3 Pro - quality with reasoning).
|
|
6
|
+
|
|
7
|
+
## Core Capabilities
|
|
8
|
+
|
|
9
|
+
- **Text-to-Image**: Generate images from text prompts
|
|
10
|
+
- **Image Editing**: Modify existing images with text instructions
|
|
11
|
+
- **Multi-Image Composition**: Combine up to 14 reference images (Pro model)
|
|
12
|
+
- **Iterative Refinement**: Multi-turn conversational refinement
|
|
13
|
+
- **Aspect Ratios**: 10 formats (1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9)
|
|
14
|
+
- **Image Sizes**: 1K, 2K, 4K (uppercase K required)
|
|
15
|
+
- **Quality Variants**: Standard/Ultra/Fast for different needs
|
|
16
|
+
- **Text in Images**: Up to 25 chars optimal (4K text in Pro)
|
|
17
|
+
- **Search Grounding**: Real-time data integration (Pro only)
|
|
18
|
+
- **Thinking Mode**: Advanced reasoning for complex prompts (Pro only)
|
|
19
|
+
|
|
20
|
+
## Models
|
|
21
|
+
|
|
22
|
+
### Nano Banana (Default - Recommended)
|
|
23
|
+
|
|
24
|
+
**gemini-2.5-flash-image** - Nano Banana Flash ⭐ DEFAULT
|
|
25
|
+
- Best for: Speed, high-volume generation, rapid prototyping
|
|
26
|
+
- Quality: High
|
|
27
|
+
- Context: 65,536 input / 32,768 output tokens
|
|
28
|
+
- Speed: Fast (~5-10s per image)
|
|
29
|
+
- Cost: ~$1/1M input tokens
|
|
30
|
+
- Aspect Ratios: All 10 supported
|
|
31
|
+
- Image Sizes: 1K, 2K, 4K
|
|
32
|
+
- Status: Stable (Oct 2025)
|
|
33
|
+
|
|
34
|
+
**gemini-3-pro-image-preview** - Nano Banana Pro
|
|
35
|
+
- Best for: Professional assets, 4K text rendering, complex prompts
|
|
36
|
+
- Quality: Ultra (with advanced reasoning)
|
|
37
|
+
- Context: 65,536 input / 32,768 output tokens
|
|
38
|
+
- Speed: Medium
|
|
39
|
+
- Cost: ~$2/1M text input, $0.134/image (resolution-dependent)
|
|
40
|
+
- Multi-Image: Up to 14 reference images (6 objects + 5 humans)
|
|
41
|
+
- Features: Thinking mode, Google Search grounding
|
|
42
|
+
- Status: Preview (Nov 2025)
|
|
43
|
+
|
|
44
|
+
### Imagen 4 (Alternative - Production)
|
|
45
|
+
|
|
46
|
+
**imagen-4.0-generate-001** - Standard quality, balanced performance
|
|
47
|
+
- Best for: Production workflows, marketing assets
|
|
48
|
+
- Quality: High
|
|
49
|
+
- Speed: Medium (~5-10s per image)
|
|
50
|
+
- Cost: ~$0.02/image (estimated)
|
|
51
|
+
- Output: 1-4 images per request
|
|
52
|
+
- Resolution: 1K or 2K
|
|
53
|
+
- Updated: June 2025
|
|
54
|
+
|
|
55
|
+
**imagen-4.0-ultra-generate-001** - Maximum quality
|
|
56
|
+
- Best for: Final production, marketing assets, detailed artwork
|
|
57
|
+
- Quality: Ultra (highest available)
|
|
58
|
+
- Speed: Slow (~15-25s per image)
|
|
59
|
+
- Cost: ~$0.04/image (estimated)
|
|
60
|
+
- Output: 1-4 images per request
|
|
61
|
+
- Resolution: 2K preferred
|
|
62
|
+
- Updated: June 2025
|
|
63
|
+
|
|
64
|
+
**imagen-4.0-fast-generate-001** - Fastest generation
|
|
65
|
+
- Best for: Rapid iteration, bulk generation, real-time use
|
|
66
|
+
- Quality: Good
|
|
67
|
+
- Speed: Fast (~2-5s per image)
|
|
68
|
+
- Cost: ~$0.01/image (estimated)
|
|
69
|
+
- Output: 1-4 images per request
|
|
70
|
+
- Resolution: 1K
|
|
71
|
+
- Updated: June 2025
|
|
72
|
+
|
|
73
|
+
### Legacy Models
|
|
74
|
+
|
|
75
|
+
**gemini-2.0-flash-preview-image-generation** - Legacy
|
|
76
|
+
- Status: Deprecated (use Nano Banana or Imagen 4 instead)
|
|
77
|
+
- Context: 32,768 input / 8,192 output tokens
|
|
78
|
+
|
|
79
|
+
## Model Comparison
|
|
80
|
+
|
|
81
|
+
| Model | Quality | Speed | Cost | Best For |
|
|
82
|
+
|-------|---------|-------|------|----------|
|
|
83
|
+
| gemini-2.5-flash-image | ⭐⭐⭐⭐ | 🚀 Fast | 💵 Low | **DEFAULT** - General use |
|
|
84
|
+
| gemini-3-pro-image | ⭐⭐⭐⭐⭐ | 💡 Medium | 💰 Medium | Text/reasoning |
|
|
85
|
+
| imagen-4.0-generate | ⭐⭐⭐⭐ | 💡 Medium | 💰 Medium | Production (alternative) |
|
|
86
|
+
| imagen-4.0-ultra | ⭐⭐⭐⭐⭐ | 🐢 Slow | 💰💰 High | Marketing assets |
|
|
87
|
+
| imagen-4.0-fast | ⭐⭐⭐ | 🚀 Fast | 💵 Low | Bulk generation |
|
|
88
|
+
|
|
89
|
+
**Selection Guide**:
|
|
90
|
+
- **Default/General**: Use `gemini-2.5-flash-image` (fast, cost-effective)
|
|
91
|
+
- **Production Quality**: Use `imagen-4.0-generate-001` (alternative for final assets)
|
|
92
|
+
- **Marketing/Ultra Quality**: Use `imagen-4.0-ultra` for maximum quality
|
|
93
|
+
- **Text-Heavy Images**: Use `gemini-3-pro-image-preview` for 4K text rendering
|
|
94
|
+
- **Complex Prompts with Reasoning**: Use `gemini-3-pro-image-preview` with Thinking mode
|
|
95
|
+
- **Real-time Data Integration**: Use `gemini-3-pro-image-preview` with Search grounding
|
|
96
|
+
|
|
97
|
+
## Quick Start
|
|
98
|
+
|
|
99
|
+
### Basic Generation (Default - Nano Banana Flash)
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
from google import genai
|
|
103
|
+
from google.genai import types
|
|
104
|
+
import os
|
|
105
|
+
|
|
106
|
+
client = genai.Client(api_key=os.getenv('GEMINI_API_KEY'))
|
|
107
|
+
|
|
108
|
+
# Nano Banana Flash - DEFAULT (fast, cost-effective)
|
|
109
|
+
response = client.models.generate_content(
|
|
110
|
+
model='gemini-2.5-flash-image',
|
|
111
|
+
contents='A serene mountain landscape at sunset with snow-capped peaks',
|
|
112
|
+
config=types.GenerateContentConfig(
|
|
113
|
+
response_modalities=['IMAGE'], # Uppercase required
|
|
114
|
+
image_config=types.ImageConfig(
|
|
115
|
+
aspect_ratio='16:9',
|
|
116
|
+
image_size='2K' # 1K, 2K, 4K - uppercase K required
|
|
117
|
+
)
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
# Save images
|
|
122
|
+
for i, part in enumerate(response.candidates[0].content.parts):
|
|
123
|
+
if part.inline_data:
|
|
124
|
+
with open(f'output-{i}.png', 'wb') as f:
|
|
125
|
+
f.write(part.inline_data.data)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Alternative - Imagen 4 (Production Quality)
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
# Imagen 4 Standard - alternative for production workflows
|
|
132
|
+
response = client.models.generate_images(
|
|
133
|
+
model='imagen-4.0-generate-001',
|
|
134
|
+
prompt='Professional product photography of smartphone',
|
|
135
|
+
config=types.GenerateImagesConfig(
|
|
136
|
+
numberOfImages=1,
|
|
137
|
+
aspectRatio='16:9',
|
|
138
|
+
imageSize='1K'
|
|
139
|
+
)
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
# Save Imagen 4 output
|
|
143
|
+
for i, generated_image in enumerate(response.generated_images):
|
|
144
|
+
with open(f'output-{i}.png', 'wb') as f:
|
|
145
|
+
f.write(generated_image.image.image_bytes)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Imagen 4 Quality Variants
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
# Ultra quality (marketing assets)
|
|
152
|
+
response = client.models.generate_images(
|
|
153
|
+
model='imagen-4.0-ultra-generate-001',
|
|
154
|
+
prompt='Professional product photography of smartphone',
|
|
155
|
+
config=types.GenerateImagesConfig(
|
|
156
|
+
numberOfImages=1,
|
|
157
|
+
imageSize='2K' # Use 2K for ultra (Standard/Ultra only)
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# Fast generation (bulk)
|
|
162
|
+
# Note: Fast model doesn't support imageSize parameter
|
|
163
|
+
response = client.models.generate_images(
|
|
164
|
+
model='imagen-4.0-fast-generate-001',
|
|
165
|
+
prompt='Quick concept sketch of robot character',
|
|
166
|
+
config=types.GenerateImagesConfig(
|
|
167
|
+
numberOfImages=4, # Generate multiple variants (default: 4)
|
|
168
|
+
aspectRatio='1:1'
|
|
169
|
+
)
|
|
170
|
+
)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Nano Banana Pro (4K Text, Reasoning)
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
# Nano Banana Pro - for text rendering and complex prompts
|
|
177
|
+
response = client.models.generate_content(
|
|
178
|
+
model='gemini-3-pro-image-preview',
|
|
179
|
+
contents='A futuristic cityscape with neon lights',
|
|
180
|
+
config=types.GenerateContentConfig(
|
|
181
|
+
response_modalities=['IMAGE'], # Uppercase required
|
|
182
|
+
image_config=types.ImageConfig(
|
|
183
|
+
aspect_ratio='16:9',
|
|
184
|
+
image_size='4K' # 4K text rendering
|
|
185
|
+
)
|
|
186
|
+
)
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
# Nano Banana Pro - with Thinking mode and Search grounding
|
|
190
|
+
response = client.models.generate_content(
|
|
191
|
+
model='gemini-3-pro-image-preview',
|
|
192
|
+
contents='Current weather in Tokyo visualized as artistic infographic',
|
|
193
|
+
config=types.GenerateContentConfig(
|
|
194
|
+
response_modalities=['TEXT', 'IMAGE'], # Both text and image
|
|
195
|
+
image_config=types.ImageConfig(
|
|
196
|
+
aspect_ratio='1:1',
|
|
197
|
+
image_size='4K'
|
|
198
|
+
)
|
|
199
|
+
),
|
|
200
|
+
tools=[{'google_search': {}}] # Enable search grounding
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
# Save from content parts
|
|
204
|
+
for i, part in enumerate(response.candidates[0].content.parts):
|
|
205
|
+
if part.inline_data:
|
|
206
|
+
with open(f'output-{i}.png', 'wb') as f:
|
|
207
|
+
f.write(part.inline_data.data)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Multi-Image Reference (Nano Banana Pro)
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
from PIL import Image
|
|
214
|
+
|
|
215
|
+
# Up to 14 reference images (6 objects + 5 humans recommended)
|
|
216
|
+
img1 = Image.open('style_ref.png')
|
|
217
|
+
img2 = Image.open('color_ref.png')
|
|
218
|
+
img3 = Image.open('composition_ref.png')
|
|
219
|
+
|
|
220
|
+
response = client.models.generate_content(
|
|
221
|
+
model='gemini-3-pro-image-preview',
|
|
222
|
+
contents=[
|
|
223
|
+
'Blend these reference styles into a cohesive hero image for a tech product',
|
|
224
|
+
img1, img2, img3
|
|
225
|
+
],
|
|
226
|
+
config=types.GenerateContentConfig(
|
|
227
|
+
response_modalities=['IMAGE'],
|
|
228
|
+
image_config=types.ImageConfig(
|
|
229
|
+
aspect_ratio='16:9',
|
|
230
|
+
image_size='4K'
|
|
231
|
+
)
|
|
232
|
+
)
|
|
233
|
+
)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Multi-Turn Refinement Chat
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
# Conversational image refinement
|
|
240
|
+
chat = client.chats.create(
|
|
241
|
+
model='gemini-2.5-flash-image',
|
|
242
|
+
config=types.GenerateContentConfig(
|
|
243
|
+
response_modalities=['TEXT', 'IMAGE']
|
|
244
|
+
)
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
# Initial generation
|
|
248
|
+
response1 = chat.send_message('Create a minimalist logo for a coffee brand called "Brew"')
|
|
249
|
+
|
|
250
|
+
# Iterative refinement
|
|
251
|
+
response2 = chat.send_message('Make the text bolder and add steam rising from the cup')
|
|
252
|
+
response3 = chat.send_message('Change the color palette to warm earth tones')
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## API Differences
|
|
256
|
+
|
|
257
|
+
### Imagen 4 vs Nano Banana (Gemini Native)
|
|
258
|
+
|
|
259
|
+
| Feature | Imagen 4 | Nano Banana (Gemini) |
|
|
260
|
+
|---------|----------|---------------------|
|
|
261
|
+
| Method | `generate_images()` | `generate_content()` |
|
|
262
|
+
| Config | `GenerateImagesConfig` | `GenerateContentConfig` |
|
|
263
|
+
| Prompt param | `prompt` (string) | `contents` (string/list) |
|
|
264
|
+
| Image count | `numberOfImages` (camelCase) | N/A (single per request) |
|
|
265
|
+
| Aspect ratio | `aspectRatio` (camelCase) | `aspect_ratio` (snake_case) |
|
|
266
|
+
| Size | `imageSize` | `image_size` |
|
|
267
|
+
| Response | `generated_images[i].image.image_bytes` | `candidates[0].content.parts[i].inline_data.data` |
|
|
268
|
+
| Multi-image input | ❌ | ✅ Up to 14 references |
|
|
269
|
+
| Multi-turn chat | ❌ | ✅ Conversational |
|
|
270
|
+
| Search grounding | ❌ | ✅ (Pro only) |
|
|
271
|
+
| Thinking mode | ❌ | ✅ (Pro only) |
|
|
272
|
+
| Text rendering | Limited | 4K (Pro) |
|
|
273
|
+
|
|
274
|
+
**Imagen 4** uses `generate_images()`:
|
|
275
|
+
```python
|
|
276
|
+
response = client.models.generate_images(
|
|
277
|
+
model='imagen-4.0-generate-001',
|
|
278
|
+
prompt='...',
|
|
279
|
+
config=types.GenerateImagesConfig(
|
|
280
|
+
numberOfImages=1, # camelCase
|
|
281
|
+
aspectRatio='16:9', # camelCase
|
|
282
|
+
imageSize='1K' # Standard/Ultra only
|
|
283
|
+
)
|
|
284
|
+
)
|
|
285
|
+
# Access: response.generated_images[0].image.image_bytes
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Nano Banana** uses `generate_content()`:
|
|
289
|
+
```python
|
|
290
|
+
response = client.models.generate_content(
|
|
291
|
+
model='gemini-2.5-flash-image', # or gemini-3-pro-image-preview
|
|
292
|
+
contents='...',
|
|
293
|
+
config=types.GenerateContentConfig(
|
|
294
|
+
response_modalities=['IMAGE'], # Uppercase required
|
|
295
|
+
image_config=types.ImageConfig(
|
|
296
|
+
aspect_ratio='16:9', # snake_case
|
|
297
|
+
image_size='2K' # 1K, 2K, 4K - uppercase K
|
|
298
|
+
)
|
|
299
|
+
)
|
|
300
|
+
)
|
|
301
|
+
# Access: response.candidates[0].content.parts[0].inline_data.data
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Critical Notes**:
|
|
305
|
+
1. `response_modalities` values MUST be uppercase: `'IMAGE'`, `'TEXT'`
|
|
306
|
+
2. `image_size` value MUST have uppercase K: `'1K'`, `'2K'`, `'4K'`
|
|
307
|
+
3. Imagen 4 Fast model doesn't support `imageSize` parameter
|
|
308
|
+
|
|
309
|
+
## Aspect Ratios
|
|
310
|
+
|
|
311
|
+
| Ratio | Resolution (1K) | Use Case | Token Cost |
|
|
312
|
+
|-------|----------------|----------|------------|
|
|
313
|
+
| 1:1 | 1024×1024 | Social media, avatars, icons | 1290 |
|
|
314
|
+
| 2:3 | 682×1024 | Vertical portraits | 1290 |
|
|
315
|
+
| 3:2 | 1024×682 | Horizontal portraits | 1290 |
|
|
316
|
+
| 3:4 | 768×1024 | Vertical posters | 1290 |
|
|
317
|
+
| 4:3 | 1024×768 | Traditional media | 1290 |
|
|
318
|
+
| 4:5 | 819×1024 | Instagram portrait | 1290 |
|
|
319
|
+
| 5:4 | 1024×819 | Horizontal photos | 1290 |
|
|
320
|
+
| 9:16 | 576×1024 | Mobile/stories/reels | 1290 |
|
|
321
|
+
| 16:9 | 1024×576 | Landscapes, banners, YouTube | 1290 |
|
|
322
|
+
| 21:9 | 1024×438 | Ultrawide/cinematic | 1290 |
|
|
323
|
+
|
|
324
|
+
All ratios cost the same: 1,290 tokens per image (Gemini models).
|
|
325
|
+
|
|
326
|
+
## Response Modalities
|
|
327
|
+
|
|
328
|
+
### Image Only
|
|
329
|
+
|
|
330
|
+
```python
|
|
331
|
+
config = types.GenerateContentConfig(
|
|
332
|
+
response_modalities=['image'],
|
|
333
|
+
aspect_ratio='1:1'
|
|
334
|
+
)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Text Only (No Image)
|
|
338
|
+
|
|
339
|
+
```python
|
|
340
|
+
config = types.GenerateContentConfig(
|
|
341
|
+
response_modalities=['text']
|
|
342
|
+
)
|
|
343
|
+
# Returns text description instead of generating image
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Both Image and Text
|
|
347
|
+
|
|
348
|
+
```python
|
|
349
|
+
config = types.GenerateContentConfig(
|
|
350
|
+
response_modalities=['image', 'text'],
|
|
351
|
+
aspect_ratio='16:9'
|
|
352
|
+
)
|
|
353
|
+
# Returns both generated image and description
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## Image Editing
|
|
357
|
+
|
|
358
|
+
### Modify Existing Image
|
|
359
|
+
|
|
360
|
+
```python
|
|
361
|
+
import PIL.Image
|
|
362
|
+
|
|
363
|
+
# Load original
|
|
364
|
+
img = PIL.Image.open('original.png')
|
|
365
|
+
|
|
366
|
+
# Edit with instructions
|
|
367
|
+
response = client.models.generate_content(
|
|
368
|
+
model='gemini-2.5-flash-image',
|
|
369
|
+
contents=[
|
|
370
|
+
'Add a red balloon floating in the sky',
|
|
371
|
+
img
|
|
372
|
+
],
|
|
373
|
+
config=types.GenerateContentConfig(
|
|
374
|
+
response_modalities=['image'],
|
|
375
|
+
aspect_ratio='16:9'
|
|
376
|
+
)
|
|
377
|
+
)
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### Style Transfer
|
|
381
|
+
|
|
382
|
+
```python
|
|
383
|
+
img = PIL.Image.open('photo.jpg')
|
|
384
|
+
|
|
385
|
+
response = client.models.generate_content(
|
|
386
|
+
model='gemini-2.5-flash-image',
|
|
387
|
+
contents=[
|
|
388
|
+
'Transform this into an oil painting style',
|
|
389
|
+
img
|
|
390
|
+
]
|
|
391
|
+
)
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Object Addition/Removal
|
|
395
|
+
|
|
396
|
+
```python
|
|
397
|
+
# Add object
|
|
398
|
+
response = client.models.generate_content(
|
|
399
|
+
model='gemini-2.5-flash-image',
|
|
400
|
+
contents=[
|
|
401
|
+
'Add a vintage car parked on the street',
|
|
402
|
+
img
|
|
403
|
+
]
|
|
404
|
+
)
|
|
405
|
+
|
|
406
|
+
# Remove object
|
|
407
|
+
response = client.models.generate_content(
|
|
408
|
+
model='gemini-2.5-flash-image',
|
|
409
|
+
contents=[
|
|
410
|
+
'Remove the person on the left side',
|
|
411
|
+
img
|
|
412
|
+
]
|
|
413
|
+
)
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
## Multi-Image Composition
|
|
417
|
+
|
|
418
|
+
### Combine Multiple Images
|
|
419
|
+
|
|
420
|
+
```python
|
|
421
|
+
img1 = PIL.Image.open('background.png')
|
|
422
|
+
img2 = PIL.Image.open('foreground.png')
|
|
423
|
+
img3 = PIL.Image.open('overlay.png')
|
|
424
|
+
|
|
425
|
+
response = client.models.generate_content(
|
|
426
|
+
model='gemini-2.5-flash-image',
|
|
427
|
+
contents=[
|
|
428
|
+
'Combine these images into a cohesive scene',
|
|
429
|
+
img1,
|
|
430
|
+
img2,
|
|
431
|
+
img3
|
|
432
|
+
],
|
|
433
|
+
config=types.GenerateContentConfig(
|
|
434
|
+
response_modalities=['image'],
|
|
435
|
+
aspect_ratio='16:9'
|
|
436
|
+
)
|
|
437
|
+
)
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**Note**: Recommended maximum 3 input images for best results.
|
|
441
|
+
|
|
442
|
+
## Prompt Engineering
|
|
443
|
+
|
|
444
|
+
### Core Principle: Narrative > Keywords
|
|
445
|
+
|
|
446
|
+
> **Nano Banana prompting**: Write like you're briefing a photographer, not providing SEO keywords. Narrative paragraphs outperform keyword lists.
|
|
447
|
+
|
|
448
|
+
❌ **Bad**: "cat, 4k, masterpiece, trending, professional, ultra detailed, cinematic"
|
|
449
|
+
✅ **Good**: "A fluffy orange tabby cat with green eyes lounging on a sun-drenched windowsill. Soft morning light creates a warm glow. Shot with a 50mm lens at f/1.8 for shallow depth of field. Natural lighting, documentary photography style."
|
|
450
|
+
|
|
451
|
+
### Effective Prompt Structure
|
|
452
|
+
|
|
453
|
+
**Three key elements**:
|
|
454
|
+
1. **Subject**: What to generate (be specific)
|
|
455
|
+
2. **Context**: Environmental setting (lighting, location, time)
|
|
456
|
+
3. **Style**: Artistic treatment (photography, illustration, etc.)
|
|
457
|
+
|
|
458
|
+
### Quality Modifiers
|
|
459
|
+
|
|
460
|
+
**Technical terms**:
|
|
461
|
+
- "4K", "8K", "high resolution"
|
|
462
|
+
- "HDR", "high dynamic range"
|
|
463
|
+
- "professional photography"
|
|
464
|
+
- "studio lighting"
|
|
465
|
+
- "ultra detailed"
|
|
466
|
+
|
|
467
|
+
**Camera settings**:
|
|
468
|
+
- "35mm lens", "50mm lens"
|
|
469
|
+
- "shallow depth of field"
|
|
470
|
+
- "wide angle shot"
|
|
471
|
+
- "macro photography"
|
|
472
|
+
- "golden hour lighting"
|
|
473
|
+
|
|
474
|
+
### Style Keywords
|
|
475
|
+
|
|
476
|
+
**Art styles**:
|
|
477
|
+
- "oil painting", "watercolor", "sketch"
|
|
478
|
+
- "digital art", "concept art"
|
|
479
|
+
- "photorealistic", "hyperrealistic"
|
|
480
|
+
- "minimalist", "abstract"
|
|
481
|
+
- "cyberpunk", "steampunk", "fantasy"
|
|
482
|
+
|
|
483
|
+
**Mood and atmosphere**:
|
|
484
|
+
- "dramatic lighting", "soft lighting"
|
|
485
|
+
- "moody", "bright and cheerful"
|
|
486
|
+
- "mysterious", "whimsical"
|
|
487
|
+
- "dark and gritty", "pastel colors"
|
|
488
|
+
|
|
489
|
+
### Subject Description
|
|
490
|
+
|
|
491
|
+
**Be specific**:
|
|
492
|
+
- ❌ "A cat"
|
|
493
|
+
- ✅ "A fluffy orange tabby cat with green eyes"
|
|
494
|
+
|
|
495
|
+
**Add context**:
|
|
496
|
+
- ❌ "A building"
|
|
497
|
+
- ✅ "A modern glass skyscraper reflecting sunset clouds"
|
|
498
|
+
|
|
499
|
+
**Include details**:
|
|
500
|
+
- ❌ "A person"
|
|
501
|
+
- ✅ "A young woman in a red dress holding an umbrella"
|
|
502
|
+
|
|
503
|
+
### Composition and Framing
|
|
504
|
+
|
|
505
|
+
**Camera angles**:
|
|
506
|
+
- "bird's eye view", "aerial shot"
|
|
507
|
+
- "low angle", "high angle"
|
|
508
|
+
- "close-up", "wide shot"
|
|
509
|
+
- "centered composition"
|
|
510
|
+
- "rule of thirds"
|
|
511
|
+
|
|
512
|
+
**Perspective**:
|
|
513
|
+
- "first person view"
|
|
514
|
+
- "third person perspective"
|
|
515
|
+
- "isometric view"
|
|
516
|
+
- "forced perspective"
|
|
517
|
+
|
|
518
|
+
### Text in Images
|
|
519
|
+
|
|
520
|
+
**Limitations**:
|
|
521
|
+
- Maximum 25 characters total for optimal results
|
|
522
|
+
- Up to 3 distinct text phrases
|
|
523
|
+
- For 4K text rendering, use `gemini-3-pro-image-preview`
|
|
524
|
+
|
|
525
|
+
**Text prompt template**:
|
|
526
|
+
```
|
|
527
|
+
Image with text "[EXACT TEXT]" in [font style].
|
|
528
|
+
Font: [style description].
|
|
529
|
+
Color: [hex code like #FF5733].
|
|
530
|
+
Position: [top/center/bottom].
|
|
531
|
+
Background: [description].
|
|
532
|
+
Context: [poster/sign/label].
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
**Example**:
|
|
536
|
+
```python
|
|
537
|
+
response = client.models.generate_content(
|
|
538
|
+
model='gemini-3-pro-image-preview', # Use Pro for better text
|
|
539
|
+
contents='''
|
|
540
|
+
Create a vintage travel poster with text "EXPLORE TOKYO" at the top.
|
|
541
|
+
Font: Bold retro sans-serif, slightly condensed.
|
|
542
|
+
Color: #F5E6D3 (cream white).
|
|
543
|
+
Position: Top third of image.
|
|
544
|
+
Background: Stylized Tokyo skyline with Mt. Fuji, sunset colors.
|
|
545
|
+
Style: 1950s travel poster aesthetic, muted warm colors.
|
|
546
|
+
'''
|
|
547
|
+
)
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Font keywords**:
|
|
551
|
+
- "bold sans-serif", "handwritten script", "vintage letterpress"
|
|
552
|
+
- "modern minimalist", "art deco", "neon sign"
|
|
553
|
+
|
|
554
|
+
### Nano Banana Prompt Techniques
|
|
555
|
+
|
|
556
|
+
| Technique | Example | Purpose |
|
|
557
|
+
|-----------|---------|---------|
|
|
558
|
+
| ALL CAPS emphasis | `The logo MUST be centered` | Force attention to critical requirements |
|
|
559
|
+
| Hex colors | `#9F2B68` instead of "dark magenta" | Exact color control |
|
|
560
|
+
| Negative constraints | `NEVER include text/watermarks. DO NOT add labels.` | Explicit exclusions |
|
|
561
|
+
| Realism trigger | `Natural lighting, DOF. Captured with Canon EOS 90D DSLR.` | Photography authenticity |
|
|
562
|
+
| Structured edits | `Make ALL edits: - [1] - [2] - [3]` | Multi-step changes |
|
|
563
|
+
| Complex logic | `Kittens MUST have heterochromatic eyes matching fur colors` | Precise conditions |
|
|
564
|
+
|
|
565
|
+
**Prompt Templates**:
|
|
566
|
+
|
|
567
|
+
**Photorealistic**:
|
|
568
|
+
```
|
|
569
|
+
A [subject] in [location], [lens] lens. [Lighting] creates [mood]. [Details].
|
|
570
|
+
[Camera angle]. Professional photography, natural lighting.
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
**Illustration**:
|
|
574
|
+
```
|
|
575
|
+
[Art style] illustration of [subject]. [Color palette]. [Line style].
|
|
576
|
+
[Background]. [Mood].
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**Product**:
|
|
580
|
+
```
|
|
581
|
+
[Product] on [surface]. Materials: [finish]. Lighting: [setup].
|
|
582
|
+
Camera: [angle]. Background: [type]. Style: [commercial/lifestyle].
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
## Advanced Techniques
|
|
586
|
+
|
|
587
|
+
### Iterative Refinement
|
|
588
|
+
|
|
589
|
+
```python
|
|
590
|
+
# Initial generation
|
|
591
|
+
response1 = client.models.generate_content(
|
|
592
|
+
model='gemini-2.5-flash-image',
|
|
593
|
+
contents='A futuristic city skyline'
|
|
594
|
+
)
|
|
595
|
+
|
|
596
|
+
# Save first version
|
|
597
|
+
with open('v1.png', 'wb') as f:
|
|
598
|
+
f.write(response1.candidates[0].content.parts[0].inline_data.data)
|
|
599
|
+
|
|
600
|
+
# Refine
|
|
601
|
+
img = PIL.Image.open('v1.png')
|
|
602
|
+
response2 = client.models.generate_content(
|
|
603
|
+
model='gemini-2.5-flash-image',
|
|
604
|
+
contents=[
|
|
605
|
+
'Add flying vehicles and neon signs',
|
|
606
|
+
img
|
|
607
|
+
]
|
|
608
|
+
)
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
### Negative Prompts (Indirect)
|
|
612
|
+
|
|
613
|
+
```python
|
|
614
|
+
# Instead of "no blur", be specific about what you want
|
|
615
|
+
response = client.models.generate_content(
|
|
616
|
+
model='gemini-2.5-flash-image',
|
|
617
|
+
contents='A crystal clear, sharp photograph of a diamond ring with perfect focus and high detail'
|
|
618
|
+
)
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
### Consistent Style Across Images
|
|
622
|
+
|
|
623
|
+
```python
|
|
624
|
+
base_prompt = "Digital art, vibrant colors, cel-shaded style, clean lines"
|
|
625
|
+
|
|
626
|
+
prompts = [
|
|
627
|
+
f"{base_prompt}, a warrior character",
|
|
628
|
+
f"{base_prompt}, a mage character",
|
|
629
|
+
f"{base_prompt}, a rogue character"
|
|
630
|
+
]
|
|
631
|
+
|
|
632
|
+
for i, prompt in enumerate(prompts):
|
|
633
|
+
response = client.models.generate_content(
|
|
634
|
+
model='gemini-2.5-flash-image',
|
|
635
|
+
contents=prompt
|
|
636
|
+
)
|
|
637
|
+
# Save each character
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
## Safety Settings
|
|
641
|
+
|
|
642
|
+
### Configure Safety Filters
|
|
643
|
+
|
|
644
|
+
```python
|
|
645
|
+
config = types.GenerateContentConfig(
|
|
646
|
+
response_modalities=['image'],
|
|
647
|
+
safety_settings=[
|
|
648
|
+
types.SafetySetting(
|
|
649
|
+
category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
|
|
650
|
+
threshold=types.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE
|
|
651
|
+
),
|
|
652
|
+
types.SafetySetting(
|
|
653
|
+
category=types.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
|
|
654
|
+
threshold=types.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE
|
|
655
|
+
)
|
|
656
|
+
]
|
|
657
|
+
)
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
### Available Categories
|
|
661
|
+
|
|
662
|
+
- `HARM_CATEGORY_HATE_SPEECH`
|
|
663
|
+
- `HARM_CATEGORY_DANGEROUS_CONTENT`
|
|
664
|
+
- `HARM_CATEGORY_HARASSMENT`
|
|
665
|
+
- `HARM_CATEGORY_SEXUALLY_EXPLICIT`
|
|
666
|
+
|
|
667
|
+
### Thresholds
|
|
668
|
+
|
|
669
|
+
- `BLOCK_NONE`: No blocking
|
|
670
|
+
- `BLOCK_LOW_AND_ABOVE`: Block low probability and above
|
|
671
|
+
- `BLOCK_MEDIUM_AND_ABOVE`: Block medium and above (default)
|
|
672
|
+
- `BLOCK_ONLY_HIGH`: Block only high probability
|
|
673
|
+
|
|
674
|
+
## Common Use Cases
|
|
675
|
+
|
|
676
|
+
### 1. Marketing Assets
|
|
677
|
+
|
|
678
|
+
```python
|
|
679
|
+
response = client.models.generate_content(
|
|
680
|
+
model='gemini-2.5-flash-image',
|
|
681
|
+
contents='''Professional product photography:
|
|
682
|
+
- Sleek smartphone on minimalist white surface
|
|
683
|
+
- Dramatic side lighting creating subtle shadows
|
|
684
|
+
- Shallow depth of field, crisp focus
|
|
685
|
+
- Clean, modern aesthetic
|
|
686
|
+
- 4K quality
|
|
687
|
+
''',
|
|
688
|
+
config=types.GenerateContentConfig(
|
|
689
|
+
response_modalities=['image'],
|
|
690
|
+
aspect_ratio='4:3'
|
|
691
|
+
)
|
|
692
|
+
)
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
### 2. Concept Art
|
|
696
|
+
|
|
697
|
+
```python
|
|
698
|
+
response = client.models.generate_content(
|
|
699
|
+
model='gemini-2.5-flash-image',
|
|
700
|
+
contents='''Fantasy concept art:
|
|
701
|
+
- Ancient floating islands connected by chains
|
|
702
|
+
- Waterfalls cascading into clouds below
|
|
703
|
+
- Magical crystals glowing on the islands
|
|
704
|
+
- Epic scale, dramatic lighting
|
|
705
|
+
- Detailed digital painting style
|
|
706
|
+
''',
|
|
707
|
+
config=types.GenerateContentConfig(
|
|
708
|
+
response_modalities=['image'],
|
|
709
|
+
aspect_ratio='16:9'
|
|
710
|
+
)
|
|
711
|
+
)
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
### 3. Social Media Graphics
|
|
715
|
+
|
|
716
|
+
```python
|
|
717
|
+
response = client.models.generate_content(
|
|
718
|
+
model='gemini-2.5-flash-image',
|
|
719
|
+
contents='''Instagram post design:
|
|
720
|
+
- Pastel gradient background (pink to blue)
|
|
721
|
+
- Motivational quote layout
|
|
722
|
+
- Modern minimalist style
|
|
723
|
+
- Clean typography
|
|
724
|
+
- Mobile-friendly composition
|
|
725
|
+
''',
|
|
726
|
+
config=types.GenerateContentConfig(
|
|
727
|
+
response_modalities=['image'],
|
|
728
|
+
aspect_ratio='1:1'
|
|
729
|
+
)
|
|
730
|
+
)
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
### 4. Illustration
|
|
734
|
+
|
|
735
|
+
```python
|
|
736
|
+
response = client.models.generate_content(
|
|
737
|
+
model='gemini-2.5-flash-image',
|
|
738
|
+
contents='''Children's book illustration:
|
|
739
|
+
- Friendly cartoon dragon reading a book
|
|
740
|
+
- Bright, cheerful colors
|
|
741
|
+
- Soft, rounded shapes
|
|
742
|
+
- Whimsical forest background
|
|
743
|
+
- Warm, inviting atmosphere
|
|
744
|
+
''',
|
|
745
|
+
config=types.GenerateContentConfig(
|
|
746
|
+
response_modalities=['image'],
|
|
747
|
+
aspect_ratio='4:3'
|
|
748
|
+
)
|
|
749
|
+
)
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
### 5. UI/UX Mockups
|
|
753
|
+
|
|
754
|
+
```python
|
|
755
|
+
response = client.models.generate_content(
|
|
756
|
+
model='gemini-2.5-flash-image',
|
|
757
|
+
contents='''Modern mobile app interface:
|
|
758
|
+
- Clean dashboard design
|
|
759
|
+
- Card-based layout
|
|
760
|
+
- Soft shadows and gradients
|
|
761
|
+
- Contemporary color scheme (blue and white)
|
|
762
|
+
- Professional fintech aesthetic
|
|
763
|
+
''',
|
|
764
|
+
config=types.GenerateContentConfig(
|
|
765
|
+
response_modalities=['image'],
|
|
766
|
+
aspect_ratio='9:16'
|
|
767
|
+
)
|
|
768
|
+
)
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
## Best Practices
|
|
772
|
+
|
|
773
|
+
### Prompt Quality
|
|
774
|
+
|
|
775
|
+
1. **Be specific**: More detail = better results
|
|
776
|
+
2. **Order matters**: Most important elements first
|
|
777
|
+
3. **Use examples**: Reference known styles or artists
|
|
778
|
+
4. **Avoid contradictions**: Don't ask for opposing styles
|
|
779
|
+
5. **Test and iterate**: Refine prompts based on results
|
|
780
|
+
|
|
781
|
+
### File Management
|
|
782
|
+
|
|
783
|
+
```python
|
|
784
|
+
# Save with descriptive names
|
|
785
|
+
timestamp = int(time.time())
|
|
786
|
+
filename = f'generated_{timestamp}_{aspect_ratio}.png'
|
|
787
|
+
|
|
788
|
+
with open(filename, 'wb') as f:
|
|
789
|
+
f.write(image_data)
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
### Cost Optimization
|
|
793
|
+
|
|
794
|
+
**Token costs**:
|
|
795
|
+
- 1 image: 1,290 tokens = $0.00129 (Flash Image at $1/1M)
|
|
796
|
+
- 10 images: 12,900 tokens = $0.0129
|
|
797
|
+
- 100 images: 129,000 tokens = $0.129
|
|
798
|
+
|
|
799
|
+
**Strategies**:
|
|
800
|
+
- Generate fewer iterations
|
|
801
|
+
- Use text modality first to validate concept
|
|
802
|
+
- Batch similar requests
|
|
803
|
+
- Cache prompts for consistent style
|
|
804
|
+
|
|
805
|
+
## Error Handling
|
|
806
|
+
|
|
807
|
+
### Safety Filter Blocking
|
|
808
|
+
|
|
809
|
+
```python
|
|
810
|
+
try:
|
|
811
|
+
response = client.models.generate_content(
|
|
812
|
+
model='gemini-2.5-flash-image',
|
|
813
|
+
contents=prompt
|
|
814
|
+
)
|
|
815
|
+
except Exception as e:
|
|
816
|
+
# Check block reason
|
|
817
|
+
if hasattr(e, 'prompt_feedback'):
|
|
818
|
+
print(f"Blocked: {e.prompt_feedback.block_reason}")
|
|
819
|
+
# Modify prompt and retry
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
### Token Limit Exceeded
|
|
823
|
+
|
|
824
|
+
```python
|
|
825
|
+
# Keep prompts concise
|
|
826
|
+
if len(prompt) > 1000:
|
|
827
|
+
# Truncate or simplify
|
|
828
|
+
prompt = prompt[:1000]
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
## Limitations
|
|
832
|
+
|
|
833
|
+
### Imagen 4 Constraints
|
|
834
|
+
- **Language**: English prompts only
|
|
835
|
+
- **Prompt length**: Maximum 480 tokens
|
|
836
|
+
- **Output**: 1-4 images per request
|
|
837
|
+
- **Watermark**: All images include SynthID watermark
|
|
838
|
+
- **Fast model**: No `imageSize` parameter support (fixed resolution)
|
|
839
|
+
- **Text rendering**: Limited to ~25 characters for optimal results
|
|
840
|
+
- **Regional restrictions**: Child images restricted in EEA, CH, UK
|
|
841
|
+
- **Cannot replicate**: Specific people or copyrighted characters
|
|
842
|
+
|
|
843
|
+
### Nano Banana (Gemini) Constraints
|
|
844
|
+
- **Language**: English prompts primary support
|
|
845
|
+
- **Context**: 32K token window
|
|
846
|
+
- **Multi-image**: Standard models ~3-5 refs; Pro up to 14 refs
|
|
847
|
+
- **Text rendering**: Standard limited; Pro supports 4K text
|
|
848
|
+
- **Watermark**: All images include SynthID watermark
|
|
849
|
+
- **Case sensitivity**: `response_modalities` must be uppercase (`'IMAGE'`, `'TEXT'`)
|
|
850
|
+
- **Size format**: `image_size` must have uppercase K (`'1K'`, `'2K'`, `'4K'`)
|
|
851
|
+
|
|
852
|
+
### General Limitations
|
|
853
|
+
- Maximum 14 input images for composition (Pro only)
|
|
854
|
+
- No video or animation generation (use Veo for video)
|
|
855
|
+
- No real-time generation
|
|
856
|
+
|
|
857
|
+
## Troubleshooting
|
|
858
|
+
|
|
859
|
+
### aspect_ratio Parameter Error
|
|
860
|
+
|
|
861
|
+
**Error**: `Extra inputs are not permitted [type=extra_forbidden, input_value='1:1', input_type=str]`
|
|
862
|
+
|
|
863
|
+
**Cause**: The `aspect_ratio` parameter must be nested inside an `image_config` object, not passed directly to `GenerateContentConfig`.
|
|
864
|
+
|
|
865
|
+
**Incorrect Usage**:
|
|
866
|
+
```python
|
|
867
|
+
# ❌ This will fail
|
|
868
|
+
config = types.GenerateContentConfig(
|
|
869
|
+
response_modalities=['image'],
|
|
870
|
+
aspect_ratio='16:9' # Wrong - not a direct parameter
|
|
871
|
+
)
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
**Correct Usage**:
|
|
875
|
+
```python
|
|
876
|
+
# ✅ Correct implementation
|
|
877
|
+
config = types.GenerateContentConfig(
|
|
878
|
+
response_modalities=['Image'], # Note: Capital 'I'
|
|
879
|
+
image_config=types.ImageConfig(
|
|
880
|
+
aspect_ratio='16:9'
|
|
881
|
+
)
|
|
882
|
+
)
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
### Response Modality Case Sensitivity
|
|
886
|
+
|
|
887
|
+
The `response_modalities` parameter expects uppercase values:
|
|
888
|
+
- ✅ Correct: `['IMAGE']`, `['TEXT']`, `['IMAGE', 'TEXT']`
|
|
889
|
+
- ❌ Wrong: `['image']`, `['text']`, `['Image']`
|
|
890
|
+
|
|
891
|
+
### Image Size Parameter Not Supported
|
|
892
|
+
|
|
893
|
+
**Error**: `400 INVALID_ARGUMENT`
|
|
894
|
+
|
|
895
|
+
**Cause**: The `image_size` parameter in `ImageConfig` is not supported by all Nano Banana models.
|
|
896
|
+
|
|
897
|
+
**Solution**: Don't pass `image_size` unless explicitly needed. The API uses sensible defaults.
|
|
898
|
+
|
|
899
|
+
```python
|
|
900
|
+
# ✅ Works - no image_size
|
|
901
|
+
config=types.GenerateContentConfig(
|
|
902
|
+
response_modalities=['IMAGE'],
|
|
903
|
+
image_config=types.ImageConfig(
|
|
904
|
+
aspect_ratio='16:9' # Only aspect_ratio
|
|
905
|
+
)
|
|
906
|
+
)
|
|
907
|
+
|
|
908
|
+
# ⚠️ May fail - with image_size (model-dependent)
|
|
909
|
+
config=types.GenerateContentConfig(
|
|
910
|
+
response_modalities=['IMAGE'],
|
|
911
|
+
image_config=types.ImageConfig(
|
|
912
|
+
aspect_ratio='16:9',
|
|
913
|
+
image_size='2K' # Not supported by all models
|
|
914
|
+
)
|
|
915
|
+
)
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
### Multi-Image Reference Issues
|
|
919
|
+
|
|
920
|
+
**Problem**: Poor composition with multiple reference images
|
|
921
|
+
|
|
922
|
+
**Solutions**:
|
|
923
|
+
1. Limit to 3-5 reference images for standard models
|
|
924
|
+
2. Use Pro model for up to 14 references
|
|
925
|
+
3. Collage multiple style refs into single image
|
|
926
|
+
4. Provide clear textual descriptions of how to blend styles
|
|
927
|
+
|
|
928
|
+
---
|
|
929
|
+
|
|
930
|
+
## Related References
|
|
931
|
+
|
|
932
|
+
**Current**: Image Generation
|
|
933
|
+
|
|
934
|
+
**Related Capabilities**:
|
|
935
|
+
- [Image Understanding](./vision-understanding.md) - Analyzing and editing reference images
|
|
936
|
+
- [Video Generation](./video-generation.md) - Creating animated video content
|
|
937
|
+
- [Audio Processing](./audio-processing.md) - Text-to-speech for multimedia
|
|
938
|
+
|
|
939
|
+
**Back to**: [AI Multimodal Skill](../SKILL.md)
|