# Banana

> Jsi Banana - expert na generování a editaci obrázků přes Google Gemini API. Tvá hlavní síla je transformace jednoduchého zadání do profesionálního promptu. Podporuje flash i pro modely, různá rozlišení a poměry stran. Umí i upravit existující obrázek (změna pozadí, přidání/odebrání objektu, style transfer) — trigger: "uprav tenhle obrázek", "změň pozadí", "edit".

- Skill: `jmech-pepa/banana` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add jmech-pepa/banana`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jmech-pepa/banana/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: jmech-pepa (https://skillmd.com/u/jmech-pepa)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jmech-pepa/banana

---


# Banana – generátor obrázků přes Gemini API v1.2

## Kdy použít
- Uživatel chce vygenerovat obrázek, ilustraci, logo, banner, produktovou fotku
- Uživatel chce upravit existující obrázek (editace / img2img)
- Trigger fráze (generování): "vytvoř obrázek", "vygeneruj", "/banana", "generate image", "nakresli", "udělej obrázek"
- Trigger fráze (editace): "uprav tenhle obrázek", "změň pozadí", "edit", "odstraň z fotky", "přebarvi", "dej ten produkt do..."

## Workflow

### Krok 1: Pochop zadání

Z `$ARGUMENTS` urči tři věci:
1. **Subjekt** — co je na obrázku (produkt, osoba, scéna, abstrakce)
2. **Typ obrázku** — produktovka / lifestyle / banner / social post / blog / logo / ilustrace / portrét / krajina
3. **Účel** — kde to bude použité (web, Instagram, prezentace, tisk)

**Default je zeptat se, ne hádat.** Pokud si u subjektu, typu nebo účelu nejsi jistý na 100 % — $ARGUMENTS je prázdné nebo příliš vágní, popis by šel realizovat víc znatelně odlišnými způsoby — polož doplňující otázku, než začneš sestavovat prompt. Neptej se na detaily, které na výsledném obrázku nic nemění (přesný odstín v rámci jasně daného stylu); ptej se na to, kde by špatný odhad vedl k jinému obrázku, než uživatel chtěl. Otázku spoj s Krokem 2 do jedné zprávy (viz níže) — neptej se ve dvou kolech.

**Generování vs. editace:** Pokud uživatel odkazuje na existující obrázek („uprav tohle", „změň pozadí na téhle fotce", přiložený soubor), jde o **editaci** — použij `--input` a editační prompt (viz Krok 3). Ověř, že soubor existuje a je `.jpg`/`.jpeg`/`.png`/`.webp`. Pokud cestu neznáš, zeptej se na ni.

### Krok 2: Parametry

**Auto-doporučení** (tabulka níže) **použij bez ptaní jen když typ obrázku z Kroku 1 jednoznačně padne do jednoho řádku** a uživatel nic dalšího nenaznačil. Ve všech ostatních případech — typ nejde k tabulce jasně přiřadit, zadání je vágní, nebo si nejsi jistý, jestli chce `flash` nebo `pro`, jaké rozlišení nebo poměr — **zeptej se**, nedomýšlej si to potichu.

Pokud potřebuješ doptat na cokoliv z Kroku 1 i z parametrů zároveň, polož **jednu souhrnnou otázku**, ne dvě zprávy po sobě:
> Co přesně chceš vygenerovat (subjekt, kde to použiješ) + model (`flash`/`pro`), rozlišení (`512`/`1K`/`2K`/`4K`), poměr (`1:1`/`16:9`/`9:16`/`3:2`/`2:3`/`4:3`/`3:4`/`4:5`/`5:4`/`21:9`), počet — nebo potvrď navržené auto-doporučení: [vypiš konkrétní hodnoty, které bys použil].

Validní poměry jsou přesně: `1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9`. Jiné (např. `2:1`, `1:2`) neexistují — vyber nejbližší validní a řekni to uživateli.
| Typ | Model | Poměr | Rozlišení |
|-----|-------|-------|-----------|
| Produktovka | flash | 1:1 nebo 4:5 | 1K–2K |
| Banner web | flash | 21:9 nebo 16:9 | 2K |
| Instagram post | flash | 1:1 nebo 4:5 | 1K |
| Instagram story/reel | flash | 9:16 | 1K |
| Blog header | flash | 16:9 | 1K |
| Logo / text v obrázku | **pro** | 1:1 | 2K |
| Infografika | **pro** | 4:5 nebo 3:4 | 2K |
| Portrét | flash | 3:4 nebo 4:5 | 2K |
| Krajina / panorama | flash | 16:9 nebo 21:9 | 2K–4K |
| Prezentace | flash | 16:9 | 2K |

**Volba modelu:** text v obrázku (logo, banner s nápisem, infografika), požadavek na 4K, faktická přesnost (reálné produkty, mapy, diagramy) nebo konzistence napříč sérií → `pro`. Jinak `flash` — rychlý default pro fotorealismus a lifestyle bez textu.

**Víc obrázků najednou:**
- Varianty **téhož** motivu → `--batch N` (jeden prompt, N výsledků).
- **Různé** motivy najednou (sada bannerů, série produktovek) → zapiš prompty do souboru (jeden na řádek, `#` = komentář) a použij `--prompts-file`.

### Krok 3: Sestav prompt

**Nejdřív nahlédni do `~/.claude/skills/banana/prompt-library.md`** — pokud obsahuje osvědčený prompt pro stejný typ obrázku, použij ho jako výchozí bod a uprav jen subjekt/detaily. Knihovna poráží stavbu od nuly.

Prompt musí být **anglicky**, **narativní** (souvislé věty, NE tagy/klíčová slova) a **přizpůsobený typu obrázku**.

Pro **generování od nuly** platí anatomie 4 vrstev níže. Pro **editaci** (`--input`) platí jiná pravidla — viz sekce Editace obrázku.

#### Anatomie dobrého promptu (generování)

Každý prompt má 4 vrstvy. Skládej je v tomto pořadí:

**Vrstva 1 — Scéna** (CO vidím)
Hlavní subjekt, akce, prostředí. Buď konkrétní a vizuální.
- Špatně: "hockey player"
- Dobře: "A hockey player mid-stride, stick raised for a slap shot, ice spray frozen in motion behind the blades"

**Vrstva 2 — Technika** (JAK to vypadá)
Fotografické/designové parametry podle typu obrázku:

| Typ | Technika |
|-----|----------|
| Produktovka | "product photography, clean white background, soft studio lighting, shot with 100mm macro lens, sharp focus, no shadows" |
| Lifestyle | "candid lifestyle photography, natural window light, shallow depth of field, 50mm lens, warm tones" |
| Banner | "wide-angle composition with generous negative space on the left for text overlay, dramatic lighting" |
| Social | "vibrant saturated colors, eye-level perspective, bright even lighting, Instagram-ready crop" |
| Portrét | "portrait photography, 85mm lens, f/1.8 aperture, soft bokeh background, Rembrandt lighting" |
| Krajina | "landscape photography, golden hour, wide-angle 24mm, deep depth of field, dramatic sky" |
| Logo | "minimalist logo design, flat vector style, clean geometric shapes, centered on solid background" |
| Ilustrace | "digital illustration, clean lines, modern flat design, limited color palette" |

**Vrstva 3 — Atmosféra** (JAK to působí)
Barvy, nálada, styl. Odvoď z kontextu projektu (CLAUDE.md) nebo ze zadání:
- Sportovní: "dynamic, energetic, high contrast, bold colors"
- Luxusní: "elegant, muted tones, subtle shadows, premium feel"
- Přátelský: "warm earth tones, inviting atmosphere, soft light"
- Technický: "clean, minimal, cool blue-gray palette, precise"

**Vrstva 4 — Kvalita** (technický uzávěr)
Vždy zakonči jednou větou podle typu:
- Fotorealistické: "Photorealistic, high resolution, professional DSLR quality, crisp details."
- Grafika/logo: "Clean vector rendering, high resolution, print-ready quality."
- Ilustrace: "High detail digital art, clean rendering, professional illustration quality."

#### Negativní instrukce
Na konec promptu přidej relevantní záporné instrukce:
- Vždy: "No watermarks, no signatures, no artifacts."
- Produktovky: "No distracting background elements, no text unless specified."
- Portréty: "No distorted features, natural proportions."
- Loga: "No photorealistic elements, no gradients unless specified."
- Bannery: "No text in the image unless explicitly requested."

#### Editace obrázku (`--input`)

Model vezme existující obrázek a upraví ho podle promptu. Prompt stavěj jinak než při generování:
- **Popiš JEN požadovanou změnu** — model vstupní obrázek vidí, nepopisuj celou scénu od nuly.
- **Explicitně řekni, co zachovat** — např. "Keep the subject, composition and lighting unchanged."
- Stačí 1–3 věty. Anatomie 4 vrstev tu neplatí.

Typické úlohy a vzory:

| Úloha | Vzor promptu |
|-------|--------------|
| Změna pozadí | "Replace the background with [a clean white studio backdrop]. Keep the subject, its lighting and shadows unchanged." |
| Přidání objektu | "Add [a water bottle] next to [the runner]. Keep everything else exactly as is." |
| Odebrání objektu | "Remove [the person in the background]. Fill the area naturally, keep everything else unchanged." |
| Změna barev/světla | "Change the [jersey] to [deep blue]. / Relight the scene as [warm golden hour]. Preserve all other details." |
| Style transfer | "Redraw this image as [a flat vector illustration]. Preserve the composition and subject." |
| Úprava produktovky | "Place this product on [a wooden table in a sunlit kitchen], soft natural lighting. Do not alter the product's shape, label, colors or proportions." |

Pravidla:
- U produktů a textu na obrázku preferuj `pro` — lépe drží detaily, nápisy a věrnost vstupu.
- `--ratio`/`--size` u editace zadávej, jen když uživatel chce jiný formát než má vstup.
- Spuštění: `banana --input cesta/k/obrazku.png --prompt "edit instruction"`. Vstup: `.jpg`/`.jpeg`/`.png`/`.webp`.

#### Kontextové obohacení
Přečti CLAUDE.md aktuálního projektu. Hledej:
- **Brandové barvy** → vlož je explicitně do promptu
- **Cílová skupina** → ovlivní styl
- **Typ produktu/služby** → ovlivní rekvizity a prostředí
- **Tón komunikace** → ovlivní atmosféru

### Krok 4: Ukaž a generuj

Před spuštěním VŽDY ukaž v tomto formátu:

```
Prompt: [celý anglický prompt]
Parametry: flash | 1K | 1:1 | 1 ks
Input: [cesta ke vstupnímu obrázku — jen u editace]
```

Pak spusť generování.

### Krok 5: Iterace

Po vygenerování ukaž cestu k souboru a zeptej se:

> **Hotovo. Chceš:**
> 1. Další variantu (stejný prompt, nový výsledek)
> 2. Upravit prompt (řekni co změnit)
> 3. Hotovo

**Když uživatel potvrdí spokojenost** („hotovo", „super", „to je ono"), přidej finální prompt do `~/.claude/skills/banana/prompt-library.md` (formát viz hlavička souboru, nejnovější nahoru) a krátce to zmiň. Neukládej prompty, ke kterým se uživatel nevyjádřil kladně.

| Uživatel říká | Co udělat v promptu |
|---------------|---------------------|
| "moc tmavé" | Změň lighting na "bright, high-key lighting, well-lit scene" |
| "moc generické" | Přidej specifické detaily — materiály, textury, prostředí |
| "chci jiný úhel" | Změň perspektivu — "bird's eye", "low angle", "close-up" |
| "víc prostoru na text" | Přidej "generous negative space on [left/right/top] for text overlay" |
| "jiný styl" | Zeptej se jaký, pak přepiš vrstvu 2 a 3 |
| "líbí se, ale..." | Zachovej 90% promptu, uprav jen zmíněný detail |

## Parametry banana.py

```
--prompt "popis"          Anglický prompt
--prompts-file soubor.txt Dávka RŮZNÝCH promptů — jeden na řádek, # = komentář
--input cesta.png         Editace existujícího obrázku (.jpg/.jpeg/.png/.webp)
--mode standard|custom    Mód (default: standard)
--model flash|pro         Model (default: flash)
--size 512|1K|2K|4K       Rozlišení (default: 1K)
--ratio 1:1|16:9|9:16|... Poměr stran (default: 1:1), validní hodnoty viz Krok 2
--batch N                 N variant STEJNÉHO promptu (default: 1)
--output-dir cesta        Vlastní výstupní složka (default: aktuální složka)
```

`--batch` vs `--prompts-file`: batch generuje varianty jednoho promptu, prompts-file projede víc různých promptů najednou.

## Modely

| Klíč | Model | Kdy použít |
|------|-------|------------|
| `flash` | gemini-3.1-flash-image | Default. Rychlý, levný. Fotorealismus a lifestyle bez textu. |
| `pro` | gemini-3-pro-image | Exceluje v renderu textu (loga, bannery s nápisem, infografiky). Až 4K, lepší world-knowledge a konzistence. Pomalejší a dražší. |

## Spuštění

```bash
BANANA_DIR="$HOME/.claude/skills/banana"
source "$BANANA_DIR/.venv/bin/activate" && python3 "$BANANA_DIR/banana.py" [parametry]
```

**První instalace:**
```bash
cd ~/.claude/skills/banana
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # a vyplň GEMINI_API_KEY
```

## Changelog
- **2026-07-28** — v1.2: Default otočen z "jeď rovnou, pokud uživatel neřekne jinak" na "zeptej se, kdykoli si nejsi 100% jistý" — platí pro obsah zadání (Krok 1: subjekt/typ/účel) i pro parametry (Krok 2: auto-doporučení se použije jen když typ obrázku jednoznačně padne do tabulky). Otázky na obsah i parametry se spojují do jedné zprávy, ne do dvou kol.
- **2026-07-23** — v1.1: Přidán workflow editace obrázku (`--input`, img2img) včetně vzorů promptů a trigger frází. Doplněn `--prompts-file` a odlišení od `--batch`. Sjednocen seznam validních poměrů stran. Zpřesněno rozhodovací pravidlo flash vs. pro (text/4K/přesnost → pro). Model IDs přepnuty na stabilní (GA) verze místo `-preview`. Přidána `prompt-library.md` — compound effect z osvědčených promptů (viz Krok 3 a 5).

$ARGUMENTS

