Skip to content
Back to skills

gemini-image

DSecurity

Generate images using the Google Gemini Image Generation API. Use when an agent needs to create, illustrate, or visualize anything — icons, hero images, diagrams, concept art, product shots, illustrations. Activates on "generate image", "create an image", "illustrate this", "make a picture of", "draw", or any request to produce a visual asset.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 9, 2026
toolsgoshellbashapi

Works with

  • terminal
  • cli
  • api

Security analysis

D50/100
  • criticalModifies startup scripts or system services for persistence
  • criticalModifies startup scripts or system services for persistence

Pro scans all 5 files and shows the line behind each finding

Scanned June 9, 2026

npx -y skills add spf13/gemini-image --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of gemini-image?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for gemini-image
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/spf13-gemini-image/badge)](https://www.skillsdirectory.com/skills/spf13-gemini-image)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gemini-image
description: >
  Generate images using the Google Gemini Image Generation API. Use when an agent
  needs to create, illustrate, or visualize anything — icons, hero images, diagrams,
  concept art, product shots, illustrations. Activates on "generate image",
  "create an image", "illustrate this", "make a picture of", "draw", or any
  request to produce a visual asset.
compatibility:
  tools: [run_in_terminal]
  env: [GEMINI_API_KEY]
---

# Gemini Image Generation

Generates images via the Google Gemini API and saves them to disk as PNG files.

## Prerequisites

- `GEMINI_API_KEY` environment variable set — see below if not set
- Go 1.22+ installed (`go version` to verify)

## Setting up GEMINI_API_KEY

Before generating images, check whether the key is set:

```bash
# Check if set
echo $env:GEMINI_API_KEY   # PowerShell
echo $GEMINI_API_KEY        # bash/zsh
```

If it's empty or missing, prompt the user:

> "To generate images, you need a Google AI Studio API key. It's free — visit
> https://aistudio.google.com/apikey, sign in, click **Create API key**, and copy it.
> Then set it in your terminal:"
>
> **PowerShell (current session):**
> ```powershell
> $env:GEMINI_API_KEY = "your-key-here"
> ```
>
> **PowerShell (permanent, user profile):**
> ```powershell
> [System.Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "your-key-here", "User")
> ```
>
> **bash/zsh (add to ~/.bashrc or ~/.zshrc for persistence):**
> ```bash
> export GEMINI_API_KEY="your-key-here"
> ```

Once the user confirms the key is set, proceed with image generation.

## Available scripts

- **`scripts/`** — Image generation CLI (Go, self-contained with inline dependencies)

## Usage

Run from the **`scripts/`** directory (where `go.mod` lives):

```bash
cd scripts
go run . [flags] <prompt words...>
```

### Flags

| Flag | Default | Description |
|---|---|---|
| `-o`, `--output FILE` | auto (`image-NNN.png`) | Output file path |
| `-m`, `--model MODEL` | `gemini-3.1-flash-image-preview` | Gemini model |
| `--aspect RATIO` | `1:1` | Aspect ratio |

### Models

| Model | Best for |
|---|---|
| `gemini-3.1-flash-image-preview` | Best all-round quality/speed **(default)** |
| `gemini-2.5-flash-image` | Fast, high-volume, lower cost |
| `gemini-3-pro-image-preview` | Professional assets, complex prompts, up to 4K |

### Aspect ratios

`1:1`  `16:9`  `9:16`  `3:2`  `2:3`  `4:3`  `3:4`  `4:5`  `5:4`  `21:9`

## Output

- Prints the **saved file path** to **stdout** on success — capture it for use in other steps
- Progress and diagnostics go to **stderr**
- Exit codes: `0` success · `1` invalid args · `2` API error · `3` write error

## Examples

```bash
cd scripts

# Blog hero image
go run . --aspect 16:9 --output hero.png \
  "photorealistic misty mountain range at golden hour, wide angle shot"

# Icon or sticker
go run . --aspect 1:1 --output icon.png \
  "minimalist Go gopher mascot, flat design, white background, no text"

# Portrait illustration
go run . --aspect 2:3 --output portrait.png \
  "watercolor portrait of a software engineer, warm tones, abstract background"

# Product shot
go run . -m gemini-3-pro-image-preview --aspect 3:2 --output product.png \
  "studio-lit product photograph of a ceramic coffee mug on a marble surface, three-point softbox lighting"

# Capture the output path for use in a pipeline
$imgPath = go run . "abstract dark blue tech background, geometric"
```

## Agent workflow

1. **Compose a detailed prompt** — include subject, style, lighting, mood, and any text to render
2. **Choose aspect ratio** — match the intended use (`16:9` for headers, `1:1` for icons, `9:16` for mobile)
3. **`cd` into the skill's `scripts/` directory**, then run `go run .` capturing stdout as the file path
4. **Use the returned path** in subsequent steps (embed in HTML, commit to repo, attach to PR, etc.)

## Prompting tips

- Describe the scene narratively, not as a keyword list — the model understands context
- For photorealistic results, use camera terms: `wide-angle shot`, `macro`, `golden hour`, `soft bokeh`
- For text in images, describe the font style: `bold sans-serif`, `elegant serif`; use `gemini-3-pro-image-preview` for reliable text rendering
- For icons/stickers, specify `white background, no text` and a clear style like `flat design` or `3D clay`
- Iterate: run once, then refine the prompt and run again

Files in this skill

  • SKILL.md4.3 KB
  • scripts/go.mod917 B
  • scripts/go.sum11.8 KB
  • scripts/main.go5.5 KB
  • scripts/main_test.go1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.