Skip to content
Automation
Skill

/inno-figure-gen

Generate/edit images with OpenAI gpt-image-2 by default, falling back to Gemini (gemini-3.1-flash-image-preview) when OPENAI_API_KEY is unset. Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image for editing, --provider to force a provider, --model to override

From plugin
dr-claw
1.2k122 skills

Claude Code

$ npx -y skills add OpenLAIR/dr-claw --skill inno-figure-gen --agent claude-code

SKILL.md

inno-figure-gen.SKILL.md
name: inno-figure-gen
description: >
  Generate/edit images with OpenAI gpt-image-2 by default, falling back to
  Gemini (gemini-3.1-flash-image-preview) when OPENAI_API_KEY is unset.
  Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image for
  editing, --provider to force a provider, --model to override the model.

Image Generation & Editing (GPT Image default, Gemini fallback)

Generate new images or edit existing ones. The script picks a provider based on which API keys are available:

1. **OpenAI** `gpt-image-2` — used when `OPENAI_API_KEY` is set (default). 2. **Gemini** `gemini-3.1-flash-image-preview` — used when only `GEMINI_API_KEY` is set.

When both keys are set, OpenAI is picked by default; force Gemini with `--provider gemini`. If an auto-selected OpenAI call fails at runtime (quota, moderation, network), the script transparently falls back to Gemini when a Gemini key is available.

Usage

The script is at `scripts/generate_image.py` **relative to this skill's directory** (the directory containing this `SKILL.md`). Resolve the full path from the skill's location before running. Do not hardcode `~/.codex/...`, because the skill may be installed in a different location.

Keep the distinction clear:

  • The **script path** tells you where to find `generate_image.py`.
  • The **output path** is controlled by the current working directory plus `--filename`.
  • Run from the user's working directory so relative filenames save output there, not in the skill directory.

**Generate new image:**

uv run <this-skill-directory>/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 1K|2K|4K] [--provider auto|openai|gemini] [--model MODEL] [--openai-api-key KEY | --gemini-api-key KEY]

**Edit existing image:**

uv run <this-skill-directory>/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 1K|2K|4K] [--provider auto|openai|gemini] [--model MODEL] [--openai-api-key KEY | --gemini-api-key KEY]

**Important:** Always run from the user's current working directory so images are saved where the user is working, not in the skill directory.

Default Workflow (draft → iterate → final)

Goal: fast iteration without burning time on 4K until the prompt is correct.

  • Draft (1K): quick feedback loop
  • `uv run <this-skill-directory>/scripts/generate_image.py --prompt "<draft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K`
  • Iterate: adjust prompt in small diffs; keep filename new per run
  • If editing: keep the same `--input-image` for every iteration until you’re happy.
  • Final (4K): only when prompt is locked
  • `uv run <this-skill-directory>/scripts/generate_image.py --prompt "<final prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --resolution 4K`

Resolution Options

The script accepts three resolution tiers (uppercase K required):

  • **1K** (default) - ~1024px
  • **2K** - ~2048px
  • **4K** - ~4096px (Gemini) / **3840×2160 landscape** under OpenAI

Map user requests to API parameters:

  • No mention of resolution → `1K`
  • "low resolution", "1080", "1080p", "1K" → `1K`
  • "2K", "2048", "normal", "medium resolution" → `2K`
  • "high resolution", "high-res", "hi-res", "4K", "ultra" → `4K`

**OpenAI 4K note:** `gpt-image-2` supports non-square 4K outputs within its size limits. `--resolution 4K` with OpenAI maps to `3840×2160`.

Provider & Model Selection

Two providers are available:

| Provider | Default model | When chosen | | -------- | ------------------------------------ | ------------------------------------------------------------ | | OpenAI | `gpt-image-2` | `--provider auto` (default) when `OPENAI_API_KEY` is set, or `--provider openai` | | Gemini | `gemini-3.1-flash-image-preview` | `--provider auto` when only `GEMINI_API_KEY` is set, or `--provider gemini`, or as runtime fallback from a failed auto-OpenAI call |

Override either default with `--model`. Note: the model name is provider-specific; passing a Gemini model name while the script falls back to Gemini automatically will not preserve a user-specified OpenAI model (each provider uses its own default during fallback).

Common model options:

  • **OpenAI:** `gpt-image-2` (default)
  • **Gemini:** `gemini-3.1-flash-image-preview` (default, fast), `gemini-3-pro-image-preview` (higher quality, slower)

API Keys

The script resolves provider-specific keys first, while preserving the original Gemini-only `--api-key` behavior:

1. Explicit, provider-specific flags: `--openai-api-key KEY`, `--gemini-api-key KEY` 2. Generic `--api-key KEY` — kept for backward compatibility with the original Gemini-only script. Under `auto`, it is treated as a Gemini key unless an OpenAI key is provided by `--openai-api-key` or `OPENAI_API_KEY`. Under explicit `--provider openai`, it is treated as an OpenAI key; under explicit `--provider gemini`, it is treated as a Gemini key. 3. Environment variables: `OPENAI_API_KEY`, `GEMINI_API_KEY`

When `--provider auto` is selected and OpenAI fails at runtime, fallback to Gemini requires `--gemini-api-key`, `--api-key`, or the `GEMINI_API_KEY` env var.

If no key is resolvable for the chosen provider, the script exits with a clear error message listing both ways to fix it.

Preflight + Common Failures (fast fixes)

  • Preflight:
  • `command -v uv` (must exist)
  • At least one of: `test -n "$OPENAI_API_KEY" -o -n "$GEMINI_API_KEY"` (or pass `--openai-api-key`, `--gemini-api-key`, or backward-compatible `--api-key`)
  • If editing: `test -f "path/to/input.png"`
  • Common failures:
  • `Error: No API key found...` → set `OPENAI_API_KEY` or `GEMINI_API_KEY`, or pass an explicit `--*-api-key` flag
  • `Error loading input image:` → wrong path / unreadable file; verify `--input-image` points to a real image
  • `[war
Read more
@openlair
Ships withdr-claw

A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power.

1.2k122 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.2k
Star history of OpenLAIR/dr-claw on GitHub, a chart by star-history.com

Other skills on dr-claw.

dr-claw

dr-claw

Dr. Claw skill for OpenClaw project discovery, idea intake, waiting-session triage, structured session control, event-driven…

@openlair@openlairInstall Skill
academic-researcher

academic-researcher

Academic research assistant for literature reviews, paper analysis, and scholarly writing. Use when: reviewing academic papers,…

@openlair@openlairInstall Skill
aris-ablation-planner

aris-ablation-planner

Use when main results pass result-to-claim (claim_supported=yes or partial) and ablation studies are needed for paper submission.…

@openlair@openlairInstall Skill
aris-arxiv

aris-arxiv

Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv",…

@openlair@openlairInstall Skill
aris-auto-review-loop

aris-auto-review-loop

Autonomous multi-round research review loop. Repeatedly reviews via Codex MCP, implements fixes, and re-reviews until positive…

@openlair@openlairInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about inno-figure-gen.

Which coding agents can use inno-figure-gen?
inno-figure-gen installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.