image-generation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited image-generation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Guide for selecting the right image generation tool through the Hyper MCP based on what the user is trying to make.
This skill assumes the Hyper MCP is connected to your agent so the tools below are available. For brand-consistent ad creative work, Firecrawl must also be configured under your Hyper integrations.
| Group | Tools |
|---|---|
OpenAI (gpt-image-2) | openai_image_generation, openai_image_edit |
| Nano Banana (Gemini) | nano_banana_image_generation, nano_banana_image_edit, nano_banana_multi_turn |
| Seedream (ByteDance via fal.ai) | seedream_image_generation |
| Brand extraction (companion) | firecrawl_extract_branding |
ad-creative-generation.video-generation.If the user provides a website URL and asks for ad creatives, brand-consistent visuals, or marketing assets, always extract branding before generating images.
firecrawl_extract_branding with the URL. The result returns brand colors, fonts, personality / tone, and saved image files (logo, favicon, og_image).firecrawl_scrape_url with formats=["screenshot"] to capture the landing page for visual context.file_id from the result as a reference_image_file_id.Critical: The result includes a file field — this is a JSON data file, NOT an image. Never pass it to image gen tools. Only logo.file_id and images.*.file_id are actual images you can use as references.
If the primary requirement is readable embedded text inside the image itself, such as headlines, labels, UI text, or poster copy:
nano_banana_image_generation(
model="pro",
requests=[{"id": "ad1", "prompt": "Create an ad with readable text '50% OFF'"}],
aspect_ratio="16:9",
image_size="2K"
)If the user provides images, branding assets, screenshots, or wants an initial branded composition, prefer openai_image_edit.
openai_image_edit(
requests=[{"prompt": "Compose into gift basket", "reference_images": ["file1", "file2"]}]
)Use Nano Banana only when the user explicitly wants Nano Banana or the image is text-heavy enough that text rendering is the main concern.
For initial creative exploration, first-pass ad concepts, or early branded directions, prefer OpenAI tools:
openai_image_generation(
requests=[{"prompt": "A polished SaaS ad concept with clean composition"}],
size="1024x1024"
)For reference-based branded ads, prefer:
openai_image_edit(
requests=[{"prompt": "Create a polished branded ad concept", "reference_images": ["file1", "file2"]}]
)Use nano_banana_image_generation(model="pro") when the user explicitly wants Nano Banana or when the output needs strong text rendering inside the image. Do not default to Nano Banana for the first creative pass when OpenAI tools can handle the concept.
Best for: Quick ideation, first-pass concepts, general creative requests without reference images.
gpt-image-2low, medium, highBest for: Initial branded compositions, website-based ad creatives, image-to-image generation with OpenAI quality.
Best for: Text-heavy production assets, explicit Nano Banana requests, and high-resolution refinements.
Models:
model="pro" (default): Gemini 3 Pro — best quality, supports Google Search groundingmodel="flash": Gemini 2.5 Flash — faster and cheaperKey Capabilities:
reference_imagesuse_google_search=TrueBest for: Product photography, marketing assets, text rendering in images, material / fabric preservation, scenes with accurate spatial depth.
Key Capabilities:
auto_2K, auto_4K, or preset sizes)square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, auto_2K, auto_4Kseedream_image_generation(
requests=[{"prompt": "Product shot of leather handbag on marble surface"}],
image_size="auto_2K"
)Best for: Modifying single existing images.
ONLY use when the user explicitly says "use multi turn image editing".
mode="sync": Chain mode — output from turn N becomes input for turn N+1mode="parallel": Independent mode — all turns processed independentlyAll tools use the requests parameter:
requests=[
{"id": "optional_id", "prompt": "Description", "reference_images": ["optional"]}
]| Pattern | Tool | Notes |
|---|---|---|
| Website-based ad creative | firecrawl_extract_branding → openai_image_edit | Extract branding first, then create the first branded concept |
| Ad with text | nano_banana_image_generation(model="pro") | Use when readable text inside the image is a core requirement |
| Quick concept | openai_image_generation | Simple, no constraints |
| Style transfer | Nano Banana + references | Image-to-image |
| Print-quality poster | Nano Banana + 4K | High resolution |
| Product photography | seedream_image_generation | Photorealistic, material detail |
| Edit existing image | nano_banana_image_edit | Single image modification |
| Batch generation | Multiple requests | Parallel generation |
firecrawl_extract_branding with the website URLfile_idfile_id as a reference imageopenai_image_edit when using brand references, or openai_image_generation for loose ideationnano_banana_image_generation(model="pro") only if the image itself needs strong readable text renderingfirecrawl_extract_branding before generating ad creatives~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.