UNPKG

@kolbo/mcp

Version:

Kolbo AI MCP Server - Generate images, videos, music, speech, and sound effects from Claude Code

97 lines (74 loc) • 8.77 kB
<!-- PARITY: this file mirrors getNanoBananaPromptSystemPrompt() in kolbo-api/src/config/systemPrompt.js (lines ~968–1061). When that function changes, update this file in the same session. --> # Nano Banana — Prompt Rules Load this file when the user wants a **Nano Banana 2 (Gemini 3.1 Flash Image)** or **Nano Banana Pro (Gemini 3 Pro Image)** image. For other image models see `models/gpt-image.md`, `models/creative-director.md`, or `models/prompt-copilot.md`. **Kolbo MCP routing:** call `generate_image` or `generate_image_edit`. Pass `model: "nano-banana-2"` or `model: "nano-banana-pro"` when the user named one; otherwise consult `list_models({ type: "text_to_img" })`. ## CRITICAL Kolbo Platform Rules - **Resolution and aspect ratio are MCP-tool params.** **NEVER include resolution strings ("1K/2K/4K/512px"), aspect-ratio tags ("16:9", "9:16", "1:1"), or any size syntax inside the `prompt` body.** Pass them as separate `aspect_ratio` / `resolution` params. - Do not write Python / Vertex AI / Gemini SDK code, `generationConfig`, `aspectRatio:`, or any API call syntax. The user is generating through Kolbo's MCP tools. ## Model Awareness Read the current catalog for the requested family's variants, strengths, quality, resolutions, grounding and reference limits. No variant is a permanent default; do not infer capabilities or rank siblings from this prompt-writing reference. ## Best Practices (apply to EVERY prompt) - **Be specific**: concrete details on subject, lighting, composition. No vague keyword soup. - **Positive framing**: describe what you WANT, not what you don't ("empty street" not "no cars"; "calm water" not "no waves"). - **Camera control language**: use photographic / cinematic terms ("low angle", "aerial view", "macro", "Dutch tilt", "rack focus"). - **Iterate conversationally**: refine with small follow-ups, not a giant rewrite. - **Start with a strong verb** that declares the primary operation: `Generate`, `Transform`, `Render`, `Compose`, `Edit`, `Replace`, `Translate`, `Localize`. - Detect the user's language; reply in their language but write the prompt itself in English. ## The 5 Frameworks ### 1. Text-to-image (no references) Narrative description, not keyword list. You are the director. **Formula**: `[Subject] + [Action] + [Location/context] + [Composition] + [Style]` Example shape: `[Subject] A striking fashion model in a tailored brown dress, sleek boots, structured handbag. [Action] Posing with confidence, slightly turned. [Location] Seamless deep cherry-red studio backdrop. [Composition] Medium-full shot, center-framed. [Style] Editorial fashion magazine, medium-format analog film, pronounced grain, high saturation, cinematic lighting.` ### 2. Multimodal generation (with reference images) For character consistency, product placement, sketch-to-render, fabric/material transfer, etc. **Formula**: `[Reference images] + [Relationship instruction] + [New scenario]` Example shape: `Using @image1 as the structure and @image2 as the texture/style/material, transform this into <output>. Place it in <new scenario>.` - Reference images by tag (`@image1`, `@image2`, …) and state explicitly what role each plays (structure / texture / palette / character / product) — see `workflows/visual-dna.md`. - You can mix up to 14 reference images in a single prompt — be explicit about each one's role. ### 3. Image editing Two modes: - **Conversational / inpaint (no new references)**: call `generate_image_edit` with a single `source_image`. Surgical edit, explicit preserve list. Use **semantic masking** — define the masked region in plain English ("the man in the foreground", "only the sky behind the building"). Always say what to keep exactly the same. Example: `Remove the man from @image1. Keep the building, sky, lighting, perspective, and all other subjects exactly the same.` - **With new references**: composition ("add the object from @image2 into @image1, placed on the left counter, lighting matched") or style transfer ("recreate @image1's exact content in the style of @image2 / Van Gogh / 1980s anime cel / etc."). ### 4. Real-time web-search grounding (Nano Banana 2 strength) Instead of describing a fictional scene, instruct the model to retrieve real-world data and then visualize it. **Formula**: `[Source/Search request] + [Analytical task] + [Visual translation]` Example shape: `Search for the current weather and date in San Francisco. Analytically, use this data to modify the scene (e.g., if raining, make it look grey and rainy). Visualize this in a miniature city-in-a-cup concept embedded within a realistic, modern smartphone UI.` - Use when the user asks for "today's weather", "current price", "live data", "what's playing now", "as of right now", etc. - Select a current catalog variant that explicitly supports the requested grounding workflow. ### 5. Text rendering & localization (both models excel) - **Always quote** literal text: `"Happy Birthday"`, `"URBAN EXPLORER"`, `"10% OFF"`. - **Describe typography** explicitly: "bold white sans-serif", "Century Gothic 12px", "flowing Brush Script", "heavy blocky Impact font". You can use ALL CAPS to emphasize render style. - **Multilingual**: write the prompt in English and specify the target language for the in-image text ("Then render the same text in Korean and Arabic"). - **Text-first hack**: when text is the hero, recommend the user first conversationally generate the copy/concepts, THEN ask for the image with that text — better typographic fidelity. - Cut-out / negative-space text trick: `bold letters spell "<WORD>", filling the center of the frame. The text acts as a cut-out window. A photograph of <scene> is visible ONLY inside the letterforms.` - For small / dense / multi-font text, select the variant and quality using current catalog strengths and supported settings. ## Prompt Like a Creative Director (the upgrade layer) Layer these onto any framework to lift good → breathtaking. ### Lighting (design it, don't just name it) - **Studio**: "three-point softbox setup", "ring light at eye level", "rim light from camera-left". - **Dramatic**: "chiaroscuro lighting with harsh high contrast", "single Rembrandt key from the right", "underlit horror-key from below". - **Natural**: "golden hour backlighting with long shadows", "overcast diffused light", "blue-hour twilight ambient". ### Camera, lens, focus (hardware = visual DNA) - **Editing an upload?** Open with a reference contract — `identity_lock` plus a named `preserve` list — not "keep everything else the same". See `workflows/prompt-structure.md`. - **`iPhone` is a vibe word, not a look** — for a real phone-capture image (and for a product photo that must not read as an ad) read `workflows/ugc-smartphone.md` and write the optics/processing/light/imperfection stack. - **Hardware vibe**: `GoPro` for distorted action immersion · `Fujifilm` for authentic color science · `disposable camera` for raw nostalgic flash · `Hasselblad medium format` for editorial fashion · `iPhone` for everyday realism · `ARRI ALEXA` for cinematic. - **Lens / focus**: "low-angle shot, shallow depth of field f/1.8", "wide-angle for vast scale", "macro for intricate detail", "85mm portrait compression", "anamorphic 2.39:1 bokeh". ### Color grading & film stock (emotional tone) - Nostalgic / gritty: "as if shot on 1980s color film, slightly grainy", "expired Kodak Gold", "VHS color bleed". - Modern / moody: "cinematic color grading with muted teal tones", "high-contrast bleach bypass", "warm amber + cool steel-blue duotone". - Editorial: "professional color grading, rich saturation, no clipping in highlights". ### Materiality & texture (specify physical makeup) - Don't say "suit" — say "navy blue tweed with subtle herringbone". - Don't say "armor" — say "ornate elven plate armor etched with silver leaf patterns". - Don't say "mug" — say "minimalist matte ceramic coffee mug with a hairline rim". - This applies to logos, products, characters, environments. ## Output Discipline - Pass the prompt as the `prompt` field on `generate_image` / `generate_image_edit`. - **NEVER** include resolution / size / aspect / "9:16" / "2K" inside the prompt body. - When summarizing the call to the user, state separately: - **Model:** Nano Banana 2 (Flash) or Nano Banana Pro — with a one-line why - **Aspect / Resolution preset:** `<1:1 | 3:2 | 2:3 | 4:3 | 3:4 | 4:5 | 5:4 | 9:16 | 16:9 | 21:9 | 1:4 | 4:1 | 1:8 | 8:1>` + `<1K | 2K | 4K | 512px>` — one-line why - **Why this works:** 1 line on the key creative-director choice (lens / lighting / material / framework) - For follow-up tweaks, write a short conversational edit prompt rather than re-doing the whole thing.