CommunityImagegithub.com

dotslashsimran/image-gen

Generate images with the user's own API keys (Google Gemini "Nano Banana" or OpenAI gpt-image). Use when asked to generate, create or make an image, illustration, icon, cut-out, sticker, thumbnail, texture, mockup or visual asset, to edit an image, or to make several images that stay consistent (same character or object). Also used by the vox-explainer skill for collage cut-outs.

What is image-gen?

image-gen is a Codex agent skill that generate images with the user's own API keys (Google Gemini "Nano Banana" or OpenAI gpt-image). Use when asked to generate, create or make an image, illustration, icon, cut-out, sticker, thumbnail, texture, mockup or visual asset, to edit an image, or to make several images that stay consistent (same character or object). Also used by the vox-explainer skill for collage cut-outs.

Works with~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/dotslashsimran/simcraft/tree/HEAD/skills/image-gen

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Image gen

python3 ~/simcraft/skills/image-gen/scripts/gen_image.py "<prompt>" --out <dir> --name <name> [options]

Standard library only, so any python3 works.

Keys

The script reads GEMINI_API_KEY and OPENAI_API_KEY from the environment, or from ~/.config/simcraft/keys.env (one NAME=value per line, chmod 600).

  • Run --check to see which keys are set. It never prints a key.
  • If no key is set, tell the user to open the file themselves (open -e ~/.config/simcraft/keys.env) and paste it in. Never ask them to paste a key into chat, and never read keys out of other projects' files.
  • Keys go only in request headers. They never go in a URL, a log, or a sidecar file.
  • Get a Gemini key at aistudio.google.com/apikey (it has a free tier). Get an OpenAI key at platform.openai.com/api-keys.

Options

OptionWhat it does
--n 4Makes 4 variations in parallel, plus <name>_sheet.png to pick from. Use this for anything that matters.
--aspect 16:9Sets the shape: 16:9, 9:16, 1:1, 4:3 or 3:4. Match it to where the image goes.
--ref a.png b.pngReference images. Use them to edit an image, match a style, or keep the same character or object across images.
--cutoutGives a transparent PNG for collages. Gemini generates on chroma green and the script keys it out with clean edges. OpenAI makes real transparency.
--provider gemini|openaiPicks the provider. Default: Gemini if its key is set.
--model MPicks the model. By default Gemini picks the newest image model the key can use (--models lists them), and OpenAI uses gpt-image-2.
--quality low|medium|highOpenAI only. Default high.
--brand devinAdds a brand kit's image style and palette to the prompt. For any brand work, run the brand-kit skill first.

Every image gets a <name>.json sidecar with the exact prompt, model and settings, so it can be remade or tweaked later.

Which provider

  • Gemini: fast and cheap. Best for iterating, for edits, and for keeping things consistent with --ref.
  • OpenAI gpt-image: best for images with text in them, and for true transparent cut-outs.

Prompting

  • Describe the subject, the medium, the light and the framing, in that order. Say what to leave out.
  • No text in images unless the user asks for it. Models still misspell words. Add type afterwards in code.
  • For a series, generate one anchor image first. Then pass that same anchor as --ref to every other image. Never chain image 2 into image 3, because small errors pile up.
  • Show the user the contact sheet before using images anywhere. Regenerate one variation instead of all of them.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

dotslashsimran/clean-audio

Clean up voice audio in a video: rumble, electrical hum, background noise and hiss, muddy or harsh tone, sharp S sounds, uneven volume, and loudness for YouTube/Instagram/TikTok. Measures the audio first, picks the strongest cleanup that doesn't make the words less clear, and keeps lip sync exact. Use when the user says "clean up the audio", "fix the sound", "remove background noise", "remove hum", "my audio is too quiet/loud", "make it sound better", or after a rough cut.

dotslashsimran/perspective-illusion

Make a looping illustrated 3D video that plays with perception, the way Japanese illusion artists do (e.g. @garments__): a scene squashed flat by a telephoto lens morphs into deep perspective, things that looked side by side turn out to be at different depths, and objects quietly swap position while the view is flat. Also for recreating a reference illusion video, or a new scene (street, supermarket, station, room) in that style. Use when asked for a perspective/optical-illusion video, a "dolly zoom" or "flat to 3D" effect, or to recreate one of these clips.

dotslashsimran/rough-cut

Trim the fat from raw talking footage. Turns raw video into a tight first cut by removing dead air, ums and uhs, stutters, false starts and bad takes (keeping the last good take), then checks the result by listening to it again. Use when the user says "rough cut", "first cut", "trim the fat", "cut the pauses", "remove the ums", "cut my retakes", "make it snappy", or hands over raw footage to edit.

Related Skills