Source profileQuality 94/100

MoizIbnYousaf/marketing-cli/skills/image-gen/SKILL.md

image-gen

Generate images using the brand's visual identity and Gemini API. Reads brand/creative-kit.md for visual style, crafts narrative prompts, and produces images via Nano Banana Pro (gemini-3-pro-image-preview). Supports on-brand and freestyle modes. Use when the user needs a blog header, social graphic, product shot, hero image, banner, thumbnail, or any generated image. Also use proactively when building content that would benefit from visuals. Triggers on "generate image", "create image", "make m

Source repository stars
27
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Describe what you need. Get an image that looks like your brand made it.

Best for

  • Use when the user needs a blog header, social graphic, product shot, hero image, banner, thumbnail, or any generated image.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/image-gen"
Safe inspection promptEditorial

Inspect the Agent Skill "image-gen" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/image-gen/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Phase 1: Discovery

    Use AskUserQuestion. Ask one at a time. Skip questions the user already answered in their request.

    Blog header / article illustrationSocial media post (which platform?)Product shot / marketing asset
  2. 02

    Phase 2: Prompt Crafting (Nano Banana Prompt Engineering)

    You are an expert Nano Banana prompt engineer. Your job is to turn the user's brief into a single, high-quality prompt for Nano Banana 2 (or Pro), a "thinking" image model used for professional asset production.

    Purpose and format — what this is for, aspect ratio, resolutionScene — what's happening, where, environmentSubject — detailed description with textures, materials, poses
  3. 03

    Phase 3: Generate

    Default to gemini-3.1-flash-image-preview (Nano Banana 2). Launched Feb 26, 2026. Pro quality at Flash speed/pricing. 4K support, up to 14 reference images for style consistency. Use gemini-3-pro-image-preview (Nano Banana Pro) only when text-heavy infographics or premium qualit…

    Save image to project directory (e.g., images/, assets/, or wherever the project keeps visuals)Append to brand/assets.md:Default to gemini-3.1-flash-image-preview (Nano Banana 2). Launched Feb 26, 2026. Pro quality at Flash speed/pricing. 4K support, up to 14 reference images for style consistency. Use gemini-3-pro-image-preview (Nano Ban…
  4. 04

    Phase 4: Iterate

    After generating, show the image and offer:

    Adjust the lighting or moodChange the composition or framingTry a completely different approach
  5. 05

    On Activation

    1. Check GEMINIAPIKEY environment variable. - If missing: "Image generation requires a Gemini API key. Set GEMINIAPIKEY in your environment. Get one at ai.google.dev." - Do not proceed without it.

    Check GEMINIAPIKEY environment variable.If missing: "Image generation requires a Gemini API key. Set GEMINIAPIKEY in your environment. Get one at ai.google.dev."Do not proceed without it.

Permission review

Static risk signals and limitations

Writes files

medium · line 164

The documentation asks the agent to create, modify, or delete local files.

Save image to project directory (e.g., `images/`, `assets/`, or wherever the project keeps visuals)

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score94/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars27SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
MoizIbnYousaf/marketing-cli
Skill path
skills/image-gen/SKILL.md
Commit
f12fbcbe4929584697b309b9096c9427b0cfce8e
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

/image-gen — On-Brand Image Generation

Describe what you need. Get an image that looks like your brand made it.

This skill reads your visual brand identity from brand/creative-kit.md, crafts a narrative prompt that bakes in your style constraints, and generates the image via Gemini API. No brand style defined yet? It still works — just at a lower enhancement level. Run /visual-style first for the best results.


On Activation

  1. Check GEMINI_API_KEY environment variable.

    • If missing: "Image generation requires a Gemini API key. Set GEMINI_API_KEY in your environment. Get one at ai.google.dev."
    • Do not proceed without it.
  2. Read brand files in priority order:

    • brand/creative-kit.md — look for ## Visual Brand Style section
    • brand/voice-profile.md — personality informs image tone
    • brand/positioning.md — angles inform visual metaphors
    • brand/landscape.md — Claims Blacklist (don't generate imagery that visually implies blacklisted claims)
  3. Determine enhancement level:

LevelContext availableImage quality
L0No brand filesGood generic images — uses discovery questions + prompt craft
L1voice-profile.mdPersonality-aligned — playful brand gets warm/bright images
L2+ creative-kit.md colors/typographyColor-constrained — palette woven into prompts
L3+ Visual Brand Style sectionFully on-brand — style anchors, lighting, mood, composition all applied

Phase 1: Discovery

Use AskUserQuestion. Ask one at a time. Skip questions the user already answered in their request.

Question 1: Purpose "What's this image for?"

  • Blog header / article illustration
  • Social media post (which platform?)
  • Product shot / marketing asset
  • Hero image / landing page
  • Presentation / slide deck
  • Something else (describe it)

This determines aspect ratio:

Use caseDefault ratioResolution
Blog header16:92K
Social square1:12K
Social story9:162K
Hero / banner21:92K
Product shot4:34K
Thumbnail16:91K

Question 2: Feeling "What should someone feel when they see this?" (Free text — this drives the prompt's emotional anchor)

Question 3: Style override (only if L3 brand style exists) "Use your on-brand style, or something different?"

  • On-brand (default) — applies Visual Brand Style from creative-kit.md
  • Different — describe the style you want instead

If user picks "different," their description overrides the brand style for this image only.

Skip discovery when: The user's request is specific enough. "Generate a 16:9 blog header showing a glowing terminal on a dark background, warm rim lighting" — don't ask what they want, they just told you.


Phase 2: Prompt Crafting (Nano Banana Prompt Engineering)

You are an expert Nano Banana prompt engineer. Your job is to turn the user's brief into a single, high-quality prompt for Nano Banana 2 (or Pro), a "thinking" image model used for professional asset production.

Core principle: brief a senior art director, don't list keywords. Write natural language in full sentences. Never use "tag soup" like "dog, park, 4k, realistic."

The 10 Rules

1. General style. Be specific and descriptive about subject, setting, composition, camera/viewpoint, lighting, mood, materials, and textures. Full sentences, not comma lists.

2. Context and purpose. Always encode the purpose and audience (YouTube thumbnail, app icon, hero banner, tweet graphic, 4K wallpaper). Let purpose guide style, polish level, and framing.

3. Text and infographics. If text must appear, put it clearly in quotes in the prompt. Ask for legible, clean typography and specify style (bold sans-serif, monospace, handwritten). For data, ask the model to compress into infographics, diagrams, or whiteboards.

4. Character and brand consistency. When reference images exist, explicitly refer to them: "Keep the person's facial features exactly the same as Image 1." Allow changes in pose, expression, angle while preserving identity.

5. Grounding and realism. For real data, locations, or products, tell the model to rely on up-to-date factual knowledge. Encourage coherent details consistent with physics.

6. Editing and restoration. For edits to existing images, give semantic instructions: "remove," "replace," "add," "restore," "change the season." Maintain original structure, only change what's intended.

7. Dimensional and structural control. For floor plans, schematics, wireframes, grids, tell the model to follow that layout closely. For 2D↔3D, describe how the new representation should look while preserving key relationships.

8. Resolution, detail, and format. Specify resolution ("high detail suitable for 4K wallpaper," "clean 16:9 thumbnail"). Call out micro details and textures when needed (brushed steel, cracked paint, mossy stone).

9. Narrative and sequences. For multiple images, describe the story arc, emotional beats, what stays consistent across images. Specify count, format, and identity/style consistency.

10. Output rules. Do not ask follow-up questions about the prompt. Resolve small ambiguities with sensible professional defaults. Output a single flowing narrative prompt.

Prompt Structure

Build the narrative in this order, woven into flowing prose:

  1. Purpose and format — what this is for, aspect ratio, resolution
  2. Scene — what's happening, where, environment
  3. Subject — detailed description with textures, materials, poses
  4. Composition — framing, focal point, depth of field, negative space
  5. Lighting — source, quality, color temperature, interaction with materials
  6. Mood — emotional tone, atmosphere
  7. Text — any text in quotes with typography specification
  8. Technical — camera/lens for photorealistic, style reference for illustrated

Brand Constraints (L3)

When Visual Brand Style exists, weave constraints INTO the narrative — don't add as a separate block:

  • Primary Aesthetic → sets overall style direction
  • Lighting → overrides generic lighting with brand-specific lighting
  • Backgrounds → constrains background treatment
  • Composition → constrains layout/framing
  • Mood → anchors emotional tone
  • Avoid → explicit exclusions baked into prompt
  • Reference Prompts → use as structural templates, adapting subject matter

See references/prompt-patterns.md for proven patterns. See references/visual-metaphors.md for concept-to-metaphor mapping.


Phase 3: Generate

Gemini API Call

import os
from google import genai
from google.genai import types

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])

response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents=["<narrative prompt>"],
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
        image_config=types.ImageConfig(
            aspect_ratio="<ratio>",
            image_size="<resolution>",
        ),
    ),
)

for part in response.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = part.as_image()
        image.save("output.png")

Default to gemini-3.1-flash-image-preview (Nano Banana 2). Launched Feb 26, 2026. Pro quality at Flash speed/pricing. 4K support, up to 14 reference images for style consistency. Use gemini-3-pro-image-preview (Nano Banana Pro) only when text-heavy infographics or premium quality justify the higher cost.

Save and Log

  1. Save image to project directory (e.g., images/, assets/, or wherever the project keeps visuals)
  2. Append to brand/assets.md:
    | <date> | image | <file-path> | image-gen | <1-line description of what was generated> |
    

Phase 4: Iterate

After generating, show the image and offer:

"Image generated. Want me to:"

  1. Adjust the lighting or mood
  2. Change the composition or framing
  3. Try a completely different approach
  4. Generate more variations
  5. Ship it

For adjustments, use Gemini's multi-turn chat API for iterative refinement — pass the previous image + adjustment prompt.

chat = client.chats.create(model="gemini-3-pro-image-preview")
response = chat.send_message("Make the lighting warmer and add more negative space on the left for text")

Image Editing

When the user provides an existing image to modify:

from PIL import Image

img = Image.open("input.png")
response = client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents=["<edit instruction>", img],
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
    ),
)

Supports: style transfer, background replacement, object removal, color grading, text overlay.


Claims Blacklist Awareness

If brand/landscape.md exists, check the Claims Blacklist before generating:

  • Don't generate imagery that visually implies "the only X" if that claim is blacklisted
  • Don't generate competitor comparisons that misrepresent the competitive landscape
  • When in doubt, describe the concept to the user and ask if it implies a blacklisted claim

Anti-Patterns

Anti-patternWhy it failsInstead
Listing comma-separated keywords"professional, modern, tech, blue, minimal" produces generic AI artWrite a narrative: "A single glowing terminal on a dark slate desk, soft amber rim lighting catching the screen edges"
Ignoring aspect ratioGenerating 1:1 for a blog header means the user has to crop, losing compositionAlways ask where the image goes FIRST — ratio determines everything
Overriding brand style silentlyUser defined a visual brand identity for consistency — ignoring it defeats the purposeDefault to brand style. Only override when user explicitly asks for something different
Generating without purpose"A nice image" produces nothing distinctiveEvery image needs a purpose (blog header, social, hero) and a feeling (trust, excitement, calm)
Saving as JPEG when PNG neededGemini returns JPEG by default — transparency and quality lossAlways convert to PNG with image.save("output.png", format="PNG")
Skipping the assets logFuture agents won't know what images exist, leading to duplicate generationAlways append to brand/assets.md after generating

Related Skills

  • /visual-style — builds the Visual Brand Style section this skill reads
  • /creative — produces multi-mode creative briefs (not pixels). Route here for ad concepts and video scripts
  • /paper-marketing — designs in Paper MCP. Route here for carousels, slideshows, and social graphics designed as HTML
  • /app-store-screenshots — specialized screenshot generator for App Store listings

Alternatives

Compare before choosing

Computed 1007

event4u-app/agent-config

design-intelligence

Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.

Computed 9438,313

wshobson/agents

brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —

Computed 9427

MoizIbnYousaf/marketing-cli

seo-audit

When the user wants to audit, review, or diagnose SEO issues, plan site architecture, or implement schema markup. Use when someone says 'SEO audit', 'technical SEO', 'site architecture', 'schema markup', 'internal linking', 'why isn't my site ranking', 'site health check', 'crawl issues', 'fix my SEO', 'my traffic dropped', 'rankings fell', or 'site not ranking'. Also trigger when someone wants to plan URL structure, design navigation, add structured data, or review any website for search perfor

Computed 9282,073

nexu-io/open-design

imagegen-frontend-web

Elite frontend image-direction skill for generating premium, conversion-aware website design references. CRITICAL OUTPUT RULE — generate ONE separate horizontal image FOR EVERY section. A landing page with 8 sections produces 8 images. Never compress multiple sections into one image. Enforces composition variety (not always left-text / right-image), background-image freedom, varied CTAs, varied hero scales (giant / mid / mini minimalist), narrative concept spine, second-read moments, and a singl