generate-image
This skill generates and edits high-quality images using AI models like FLUX.2 Pro and Gemini 3.1 Flash, supporting photos, illustrations, artwork, and visual assets. Use it for general-purpose image creation and editing needs, but switch to the scientific-schematics skill for technical diagrams, flowcharts, circuits, and biological pathways.
git clone --depth 1 https://github.com/K-Dense-AI/scientific-agent-skills /tmp/generate-image && cp -r /tmp/generate-image/skills/generate-image ~/.claude/skills/generate-imageSKILL.md
# Generate Image Generate and edit images through OpenRouter's Image API, which reaches Gemini, Seedream, Recraft, GPT-Image, Riverflow, and roughly thirty other models behind one request shape. ## When to use **Use this skill for:** photos and photorealistic images, illustrations and artwork, concept art, presentation and poster visuals, logos and vector marks, image editing, and compositing from reference images. **Use `scientific-schematics` instead for:** flowcharts, circuit diagrams, biological pathways, system architecture diagrams, CONSORT diagrams, and other technical schematics. ## API key Generation requires an OpenRouter key. The script resolves it in this order: 1. `--api-key` 2. the `OPENROUTER_API_KEY` environment variable 3. `OPENROUTER_API_KEY=` in a `.env` file, searching the working directory upward, then the script's own directory If none is present the script exits with setup instructions. Keys: https://openrouter.ai/keys `--list-models`, `--model-info`, and `--dry-run` need no key. ## Quick start ```bash # Generate python scripts/generate_image.py "A beautiful sunset over mountains" # Edit an existing image python scripts/generate_image.py "Make the sky purple" -i photo.jpg -o edited.png ``` Paths are relative to this skill's directory. Output defaults to `generated_image.<ext>`, where the extension follows the media type the model returned. The per-request cost is printed after the run. **Then look at the image.** Read the file back and check it before using it anywhere: composition, aspect ratio, and any text are all things models get wrong silently. ## Choosing a model Default: `google/gemini-3.1-flash-image`. | Need | Model | | --- | --- | | General quality, prompt adherence | `google/gemini-3.1-flash-image` | | Highest Gemini tier | `google/gemini-3-pro-image` | | Cheap iteration | `google/gemini-3.1-flash-lite-image` (1K only), `openai/gpt-image-1-mini` | | Photoreal control, reproducible seeds | `bytedance-seed/seedream-4.5` | | Several images per request | `bytedance-seed/seedream-4.5`, `openai/gpt-image-2` (up to 10) | | Vector / SVG output | `recraft/recraft-v4.1-vector` | | Transparent background | `openai/gpt-image-1` with `--background transparent` | | Legible text inside the image | `recraft/recraft-v4.1`, `sourceful/riverflow-v2.5-pro` — see the caveat below | `references/models.md` carries the full catalogue with per-model parameters, allowed values, and prices. The live listing is authoritative and free: ```bash python scripts/generate_image.py --list-models # every model and its allowed values python scripts/generate_image.py --list-models gemini # filtered by substring python scripts/generate_image.py --model-info openai/gpt-image-1 # one model, plus pricing ``` ## Parameter support varies by model This is the main thing to get right. Models advertise different parameter sets **and different allowed values**, and sending something a model does not support is rejected, not ignored. The script checks the request against the live catalogue before spending anything, so a bad parameter fails locally in under a second with the legal values printed: ```console $ python scripts/generate_image.py "abstract pattern" -m openai/gpt-image-2 --background transparent Error: Request rejected before billing (1 problem): - background=transparent is not allowed; this model accepts: auto, opaque ``` Rough guide — but let the check be the authority, since the catalogue moves: - `--resolution` — Gemini, Seedream, Riverflow, Krea, Grok. The tiers differ: `512` only on Gemini 3.1 Flash, `4K` on Gemini 3 Pro / Seedream / Riverflow, and **`1K` only** on `gemini-3.1-flash-lite-image` and the Krea models. - `--output-format` — Riverflow 2.5 only (`png`, `jpeg`, `webp`; the `fast` variant takes `jpeg` alone). Gemini, OpenAI, Seedream, and Recraft all choose their own container. - `--quality`, `--background`, `--output-compression` — the OpenAI family, plus `--background` on Riverflow 2.5. **`--background transparent` is not available on `gpt-image-2` or `gpt-5.4-image-2`** — use `gpt-image-1`, `gpt-image-1-mini`, `gpt-5-image`, or `gpt-5-image-mini`. - `--seed` — Seedream and Krea. Not Gemini, not OpenAI. - `--aspect-ratio` — nearly all models, but the enum differs sharply: `gpt-image-1` accepts only `1:1`, `3:2`, `2:3`, `auto`, and `gpt-5-image*` does not accept it at all. - `--n` — capped per model: 1 for Gemini, Riverflow, MAI and Grok, 6 for Recraft, 10 for Seedream and OpenAI. The Krea models reject it outright. Pass `--dry-run` to validate and print the exact request body without generating or billing. `--no-preflight` skips the check when you want the API itself to arbitrate. ## Writing the prompt Prompt quality decides output quality more than model choice does. Name, in one sentence each: 1. **Subject** — what is in frame, and how much of it. "A single pipette tip above a 96-well plate." 2. **Medium and style** — photograph, watercolour, 3D render, flat vector, scientific illustration. 3. **Lighting and palette** — "soft diffuse lighting, cool blue and white palette." 4. **Composition** — "wide shot, subject left of centre, empty space on the right for a title." 5. **What to avoid** — "no text, no labels, no watermark." Asking for empty space where a caption or title will go is the single most useful compositional instruction for posters and slides. Iterate cheaply: draft on `gemini-3.1-flash-lite-image`, then regenerate the wording you settled on with the model you actually want. To refine rather than restart, feed the last output back as a reference (`-i out.png`) and describe only the change. ## Editing and reference images `-i/--input` is repeatable and accepts local paths, HTTP(S) URLs, or data URLs. Local files are base64-encoded and sent as `input_references`. ```bash # Single-image edit python scripts/generate_image.py "Add sunglasses to the person" -i portrait.png # Composite several refe
How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.
This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.
Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.
Observe the user's screen via screenpipe, detect repeated research workflows, match them against existing scientific-agent-skills, and draft new skills (or composition recipes that chain existing ones) for the patterns not yet covered. Use when the user asks to analyze their recent work and propose skills based on what they actually do. Requires the screenpipe daemon (https://github.com/screenpipe/screenpipe) running locally on port 3030 — the skill has no other data source and will refuse to run if screenpipe is unreachable. All detection runs locally; only redacted cluster summaries reach the LLM.
Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.
Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.