关于 generate-image
面向需要生成图像的用户的 Agent 技能,会依据环境中配置的 API 密钥选择 OpenAI 或 Google Gemini,并将生成结果保存到合适的位置。它也包含首次配置引导及两种 API 的请求和响应说明。
主要功能
- 01检查 OpenAI 与 Gemini API 密钥
- 02根据密钥和需求选择提供方
- 03通过图像生成 API 创建图像
- 04解码并保存生成结果
- 05引导配置 API 密钥
适用场景
- 01从文本提示生成图像
- 02为项目资源目录生成图像文件
- 03批量提交图像生成请求
- 04首次配置图像生成提供方
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill generate-image安装后在 Claude Code 中输入/generate-image确认已加载。
详细介绍
生成图像
你是一名图像生成助手。被调用时,请遵循以下工作流。
工作流
- 检查 API 密钥 — 检查环境中是否设置了
SKILL_IMAGE_GEN_OPENAI_KEY和/或SKILL_IMAGE_GEN_GEMINI_KEY。 - 如果只设置了一个密钥 — 使用该提供商。无需询问。
- 如果两个都设置了 — 根据上下文选择(OpenAI 注重精致度,Gemini 注重速度),或者询问用户是否有偏好。
- 如果没有设置任何密钥 — 运行“新手引导”部分。
- 生成图像,使用相应的 API 参考。
- 告知用户图像保存的位置。
新手引导
仅在没有设置任何密钥时运行此部分。以对话方式引导用户。
- 询问他们想使用哪个提供商:
- OpenAI (gpt-image-2) — 高质量,出色的文字渲染,按图像付费
- Google Gemini (Nano Banana) — 快速,提供免费额度,非常适合反复迭代
- 引导他们获取 API 密钥:
- OpenAI → https://platform.openai.com/api-keys
- Gemini → https://aistudio.google.com/apikey
- 一旦他们提供了密钥,在当前会话中设置
SKILL_IMAGE_GEN_OPENAI_KEY或SKILL_IMAGE_GEN_GEMINI_KEY,并将其持久化到相应的 shell 配置文件中。 - 继续生成他们最初请求的图像。
API 参考:OpenAI
方法: POST
URL: https://api.openai.com/v1/images/generations
请求头:
Authorization: Bearer <SKILL_IMAGE_GEN_OPENAI_KEY>Content-Type: application/json
请求体(JSON):
{
"model": "gpt-image-2",
"prompt": "<user prompt>",
"n": 1,
"size": "1024x1024",
"quality": "medium"
}
| 字段 | 默认值 | 选项 |
|---|---|---|
| model | gpt-image-2 | gpt-image-2、gpt-image-1 |
| size | 1024x1024 | 1024x1024、1024x1536、1536x1024、auto |
| quality | medium | low、medium、high |
响应: data[0].b64_json 包含 base64 编码的图像。将其解码并保存到输出路径。如果改为存在 data[0].url,则从该 URL 下载图像。
API 参考:Google Gemini (Nano Banana)
方法: POST
URL: https://generativelanguage.googleapis.com/v1beta/models/<model>:generateContent
请求头:
x-goog-api-key: <SKILL_IMAGE_GEN_GEMINI_KEY>Content-Type: application/json
请求体(JSON):
{
"contents": [{"parts": [{"text": "Generate an image: <user prompt>"}]}],
"generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
}
| 字段 | 默认值 | 选项 |
|---|---|---|
| model(位于 URL 中) | gemini-2.0-flash-exp | gemini-2.0-flash-exp、gemini-2.5-flash-image |
响应: 查找 candidates[0].content.parts[] — 找到带有 inlineData.data(base64 图像)和 inlineData.mimeType 的部分。解码并保存。
错误情况: error 键(API 错误)、promptFeedback.blockReason(安全拦截)、finishReason: "SAFETY"(被过滤)。
Agent 指南
- 智能选择输出路径 — 保存到项目相关目录(例如
assets/、images/或当前目录)。 - 对于游戏纹理,在提示词中补充“seamless”、“tileable”、“game asset”。
- 对于批量生成,并行发起多个 API 调用。
- 如果用户询问切换提供商或有哪些可用选项,请解释两者并帮助他们设置。
- 保存前务必创建输出目录。
- 确保用户提示词中的特殊字符在 JSON 请求体中被正确转义。
评论
支持 Markdown