gpt-image2
Lightweight GPT Image 2 image generation and editing workflow. Use when Codex needs to configure OpenAI-compatible image API channels, generate or edit images from the command line without Python, print equivalent curl calls, or help users quickly try curated GPT-Image-2 prompt templates.
How do I install this agent skill?
npx skills add https://github.com/liuhuapiaoyuan/gpt-image2-skill --skill gpt-image2Is this agent skill safe to install?
- Gen Agent Trust Hubwarn
This skill provides a command-line interface for image generation and editing using OpenAI-compatible APIs. It includes functionality to automatically upload local images to ImgBB, a third-party image hosting service, using a built-in encrypted API key. While documented, this behavior involves sending local user data to an external service and utilizes obfuscated credentials, which warrants a review for privacy and security compliance.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
GPT Image 2
Use the bundled Node.js CLI for lightweight image generation and editing. It has no npm dependencies and supports OpenAI-compatible image endpoints.
Quick Start
Run commands from this skill folder:
node scripts/gpt-image2.mjs --help
node scripts/imgbb-upload.mjs --help
Configure an API channel:
node scripts/gpt-image2.mjs config set openai --api-key "$OPENAI_API_KEY" --base-url "https://ai-api.qzsyzn.com/v1" --model "gpt-image-2" --edit-transport generations
node scripts/gpt-image2.mjs config use openai
Use --edit-transport multipart for the official OpenAI-style POST /images/edits multipart flow (default when omitted).
For unified JSON edit (generations), do not rely on huge base64 payloads. Prefer HTTPS URLs:
- Default: local reference files are uploaded to ImgBB automatically (built-in API key, stored encrypted in
scripts/imgbb-upload.mjs). No need to setIMGBB_API_KEYunless you want your own key—then useIMGBB_API_KEYor--imgbb-key(see ImgBB API). - Or upload first, then edit with URLs only:
node scripts/imgbb-upload.mjs ./test/image.png
node scripts/gpt-image2.mjs edit --edit-transport generations --image "https://i.ibb.co/..." --prompt "Your edit instruction" --output outputs/edited.png
Global install after npm link: imgbb-upload ./photo.png prints one URL per line.
Use --embed-local-base64 only when you intentionally want data URLs (e.g. offline debugging).
Try a prompt template:
node scripts/gpt-image2.mjs templates list
node scripts/gpt-image2.mjs try encyclopedia-card --var topic="coffee brewing" --output outputs/coffee.png
Query supported resolutions:
node scripts/gpt-image2.mjs sizes list
node scripts/gpt-image2.mjs sizes list --orientation portrait
Generate with a direct prompt:
node scripts/gpt-image2.mjs generate --prompt "A clean product hero image of a ceramic desk lamp" --size 1024x1024 --output outputs/lamp.png
Edit an existing image (generations transport uploads local files via ImgBB by default):
node scripts/gpt-image2.mjs edit --image input.png --prompt "Keep the object unchanged, replace the background with a warm studio setup" --output outputs/edited.png --edit-transport generations
Optional: export IMGBB_API_KEY="..." or --imgbb-key ... to use your own ImgBB key instead of the built-in default.
Print a curl command instead of calling the API:
node scripts/gpt-image2.mjs generate --template city-poster --var city="Chengdu" --curl
Workflow
- Use
templates list,templates search <query>, andtemplates show <id>before drafting prompts from scratch. - Prefer
try <template-id> --var key=valuefor quick experimentation. - Use
config set <channel>for provider-specific API keys, base URLs, and model names. The active channel is used by default. - Keep OpenAI-compatible API keys in config or environment variables, not in checked-in files. ImgBB uses a built-in default unless you override with
IMGBB_API_KEYor--imgbb-key. - Run
sizes listbefore choosing--size, especially when switching between square, portrait, and landscape output. - Use
--dry-runto inspect the final payload and--curlwhen the user wants shell-native invocation (with ImgBB enabled, dry-run still contacts ImgBB so URLs in the JSON match a live run). - If an API call fails once, report the HTTP status and response body. Do not blindly retry without changing prompt, size, channel, or timeout.
Configuration
Credential precedence:
- CLI flags:
--api-key,--base-url,--model,--edit-transport,--imgbb-key - Active channel in the config file
- Environment variables:
GPT_IMAGE_API_KEY,OPENAI_API_KEY,API_KEY;GPT_IMAGE_BASE_URL,OPENAI_BASE_URL,BASE_URL;GPT_IMAGE2_EDIT_TRANSPORT(multipartorgenerations);IMGBB_API_KEY(optional; overrides the built-in ImgBB key when uploading locals forgenerationsedit)
The config file defaults to ~/.gpt-image2/config.json. Override it with GPT_IMAGE2_CONFIG.
Useful commands:
node scripts/gpt-image2.mjs config list
node scripts/gpt-image2.mjs config show
node scripts/gpt-image2.mjs config use <channel>
node scripts/gpt-image2.mjs config set <channel> --api-key "..." --base-url "..." --model "..." [--edit-transport multipart|generations]
Prompt Templates
Templates live in references/prompts.json. Keep templates reusable:
- Use
{{variable}}placeholders for user-specific details. - Avoid names or likenesses of real private people unless the user explicitly provides appropriate rights and context.
- Prefer complete visual specifications: subject, scene, composition, lighting, style, details, output use.
- Keep new templates as compact patterns rather than copying long community prompts verbatim.
API Notes
The CLI calls:
POST /images/generationsfor text-to-image (JSON).- Edit mode (default):
POST /images/editswith multipart form data (--edit-transport multipart). - Unified gateways: same JSON
POST /images/generationswith animagearray of strings. Prefer HTTPS URLs: by default, local files are uploaded via ImgBB (built-in key); only URLs are sent in JSON. Use--embed-local-base64to force data URLs instead. OptionalIMGBB_API_KEY/--imgbb-keyoverrides the default ImgBB key. Usescripts/imgbb-upload.mjsfor a standalone upload step. Up to 5 reference images;--maskis not supported in this mode.
It saves b64_json image data when present and can also download a returned url for OpenAI-compatible gateways that use URLs.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/liuhuapiaoyuan/gpt-image2-skill/gpt-image2">View gpt-image2 on skillZs</a>