Communitygithub.com

junxxxxiao/gpt-image-2-apikey-skill

Skill de Codex para generación y edición de imágenes GPT Image 2 con una clave API aislada

¿Qué es gpt-image-2-apikey-skill?

Este skill proporciona una manera segura y aislada de generar o editar imágenes utilizando el modelo `gpt-image-2` (o proveedores compatibles con OpenAI) desde Codex, sin exponer ni reutilizar la clave API principal de Codex. Lee una clave API dedicada desde un archivo de configuración privado (`~/.config/gpt-image-2-apikey/config.json`), evitando cualquier interacción con `OPENAI_API_KEY` o credenciales de sesión de Codex. Soporta generación de imágenes desde texto, edición de imágenes existentes (incluso con múltiples imágenes de referencia), edición con máscara para cambios localizados, y guardado de resultados en rutas locales explícitas. Es ideal para flujos de trabajo donde la generación de imágenes debe facturarse, autenticarse y aislarse de las credenciales principales de Codex, como cuando se usa una cuenta de facturación separada o un proxy compatible con OpenAI. El script `generate_image.py` es autónomo (sin dependencias externas), maneja respuestas en `b64_json` o URL, e incluye un modo `--dry-run` para verificar la configuración sin realizar llamadas reales a la API.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add junxxxxiao/gpt-image-2-apikey-skill

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

GPT Image 2 API Key

Descripción general

Genera o edita imágenes con un proveedor gpt-image-2 configurado por separado ejecutando scripts/generate_image.py. Utiliza este skill cuando la generación de imágenes deba facturarse, autenticarse y aislarse de una clave API de imágenes dedicada en lugar de las credenciales actuales de OpenAI/Codex de Codex.

El skill deliberadamente no lee OPENAI_API_KEY, archivos de autenticación de Codex, ni credenciales de sesión de ChatGPT/Codex. Solo lee el archivo de configuración privado seleccionado por --config, o el archivo de configuración predeterminado documentado a continuación.

Qué soluciona

Este skill aborda un problema común del flujo de trabajo de Codex: la sesión actual de Codex puede estar autenticada con una clave API, mientras que la generación de imágenes debe usar otra clave, otra cuenta, otra cuota o un proxy compatible con OpenAI.

Utiliza este skill para:

  • Mantener las credenciales de generación de imágenes separadas de las credenciales de Codex.
  • Llamar a un endpoint de imágenes gpt-image-2 o compatible desde Codex sin exponer la clave en indicaciones, comandos o archivos del repositorio.
  • Generar imágenes a través de /v1/images/generations.
  • Editar imágenes existentes a través de /v1/images/edits con carga multipart.
  • Usar una o más imágenes de referencia para ediciones, cambios de estilo, tratamientos de logotipos, maquetas de productos y transformaciones de imagen a imagen.
  • Opcionalmente, proporcionar una imagen de máscara para ediciones limitadas a una región.
  • Guardar los resultados generados en rutas locales explícitas que Codex puede mostrar, inspeccionar o pasar a pasos posteriores.

Casos de uso

Utiliza este skill para solicitudes como:

  • "Genera un logotipo con el texto exacto JunXxxxi."
  • "Usa esta imagen de referencia y haz que la marca denominativa sea cursiva."
  • "Cambia el texto de este logotipo a un degradado metálico de plata a negro."
  • "Crea una imagen de producto usando gpt-image-2, pero usa mi clave API de imágenes separada."
  • "Edita esta imagen conservando la composición original."
  • "Usa un proveedor de imágenes compatible con OpenAI con una URL base personalizada."

Prefiere el procesamiento de imágenes local determinista en lugar de este skill cuando el cambio solicitado sea una transformación de píxeles simple que deba preservar la geometría exacta, como recortar, redimensionar, conversión alfa o un remapeo de color completamente determinista. Prefiere este skill cuando el usuario desee interpretación visual basada en modelos, cambios de estilo o generación.

Contenido

gpt-image-2-apikey/
├── SKILL.md
├── agents/
│   └── openai.yaml
└── scripts/
    └── generate_image.py
  • SKILL.md: Flujo de trabajo orientado a Codex y documentación de uso legible por humanos.
  • agents/openai.yaml: metadatos opcionales para la interfaz de usuario de Codex.
  • scripts/generate_image.py: script de Python 3 sin dependencias que llama a los endpoints de generación o edición.

El script admite respuestas de imagen tanto en b64_json como en formato URL. Las respuestas URL se descargan inmediatamente y se escriben en la ruta de salida solicitada.

Configuración privada

Ruta de configuración predeterminada:

~/.config/gpt-image-2-apikey/config.json

La configuración debe contener la clave del proveedor de imágenes, no la clave API actual de Codex:

{
  "api_key": "poner-clave-del-proveedor-de-imágenes-aquí",
  "base_url": "https://api.openai.com/v1",
  "model": "gpt-image-2"
}

Establece permisos privados después de crear el archivo:

chmod 600 ~/.config/gpt-image-2-apikey/config.json

Usa --config /ruta/al/config.json solo cuando el usuario solicite explícitamente otro archivo de configuración privado.

Campos de configuración

  • api_key: obligatorio. La clave del proveedor de imágenes. No uses la clave API actual de Codex a menos que se pretenda explícitamente.
  • base_url: opcional. El valor predeterminado es https://api.openai.com/v1. Para proveedores compatibles con OpenAI, mantenlo en la raíz de la API, por ejemplo, https://example.com/v1.
  • model: opcional. El valor predeterminado es gpt-image-2.
  • extra_body: objeto opcional. Los valores se fusionan en el cuerpo de la solicitud para campos específicos del proveedor.

Ejemplos válidos de base_url:

{
  "base_url": "https://api.openai.com/v1"
}
{
  "base_url": "https://www.packyapi.com/v1"
}

No incluyas /images/generations o /images/edits en base_url a menos que estés fijando intencionadamente un endpoint exacto. El script normalmente añade el endpoint correcto automáticamente.

Uso

Ejecuta desde el directorio del skill:

python3 scripts/generate_image.py \
  --prompt "Una foto de producto limpia de un teclado mecánico negro mate sobre un escritorio de nogal" \
  --out /ruta/absoluta/hacia/salida.png \
  --size 1024x1024 \
  --quality high

Si se omite --edit-image, el script llama a:

POST <base_url>/images/generations

Edita una o más imágenes de referencia añadiendo --edit-image:

python3 scripts/generate_image.py \
  --prompt "Convierte este logotipo en texto cursiva con degradado de plata a negro conservando la ortografía exacta" \
  --edit-image /ruta/absoluta/hacia/entrada.png \
  --out /ruta/absoluta/hacia/editada.png \
  --size 1024x1024 \
  --quality high

Si --edit-image está presente, el script llama a:

POST <base_url>/images/edits

Para ediciones enmascaradas, añade --mask /ruta/absoluta/hacia/mascara.png:

python3 scripts/generate_image.py \
  --prompt "Solo cambia el fondo a un gris de estudio limpio, conservando el sujeto" \
  --edit-image /ruta/absoluta/hacia/fuente.png \
  --mask /ruta/absoluta/hacia/mascara.png \
  --out /ruta/absoluta/hacia/editada.png \
  --quality high

Repite --edit-image para ediciones con múltiples imágenes:

python3 scripts/generate_image.py \
  --prompt "Combina el producto de la imagen 1 con el ambiente de fondo de la imagen 2" \
  --edit-image /ruta/absoluta/hacia/producto.png \
  --edit-image /ruta/absoluta/hacia/referencia-fondo.png \
  --out /ruta/absoluta/hacia/combinada.png

Proporciona siempre una ruta --out absoluta cuando el usuario necesite el archivo en una ubicación específica. Si se omite, el script escribe un PNG con marca de tiempo en el directorio de trabajo actual.

Referencia de comandos

--prompt       Descripción obligatoria de la imagen o instrucción de edición.
--out          Ruta de la imagen de salida. Las salidas adicionales usan -2, -3, etc. antes de la extensión.
--config       Ruta de configuración privada. Por defecto ~/.config/gpt-image-2-apikey/config.json.
--model        Sobrescribe el modelo de la configuración.
--size         Tamaño de imagen admitido por el proveedor. Por defecto: 1024x1024.
--quality      low, medium, high o auto. Por defecto: auto.
--n            Número de imágenes. Por defecto: 1.
--format       png, jpeg o webp. Por defecto: png.
--edit-image   Ruta de la imagen de entrada para /v1/images/edits. Repetible.
--mask         Ruta opcional de la máscara PNG para ediciones.
--timeout      Tiempo de espera HTTP en segundos. Por defecto: 600.
--dry-run      Imprime el endpoint, el cuerpo y la lista de archivos censurados sin llamar a la API.

Usa --dry-run antes de una llamada real para verificar la configuración, el enrutamiento del endpoint o si una edición utilizará el archivo de entrada previsto:

python3 scripts/generate_image.py \
  --prompt "solo simulación" \
  --edit-image /ruta/absoluta/hacia/entrada.png \
  --out /ruta/absoluta/hacia/salida.png \
  --dry-run

La salida de simulación censura la autorización como Bearer ***redacted***.

Orientación para indicaciones

Para generación:

  • Indica explícitamente el tipo de activo, sujeto, estilo, diseño y texto requerido.
  • Pon el texto visible exacto entre comillas.
  • Incluye "sin texto adicional, sin marca de agua" cuando trabajes en logotipos, carteles o gráficos de interfaz de usuario.
  • Usa quality high para logotipos finales, imágenes con mucho texto, fotos de producto y entregables pulidos.
  • Usa quality low para exploración económica y borradores rápidos.

Para ediciones:

  • Describe el cambio, no la imagen completa, a menos que la imagen completa deba reinterpretarse.
  • Nombra explícitamente lo que debe conservarse: ortografía del texto, diseño, composición, identidad facial, forma del producto, colores o fondo.
  • Para gráficos con mucho texto, repite la ortografía exacta y las mayúsculas en la indicación.
  • Usa máscaras para ediciones quirúrgicas cuando el proveedor lo admita.

Ejemplo de indicación de edición:

Edita la imagen del logotipo proporcionada. Conserva el texto exacto "JunXxxxi" y el mismo diseño de la marca denominativa. Haz que las letras sean cursivas/inclinadas hacia la derecha. Cambia el relleno de las letras a un degradado metálico de plata brillante en la parte superior/izquierda a negro profundo en la parte inferior/derecha. Mantén un fondo blanco limpio. No añadas palabras adicionales, iconos, marcas de agua, bordes o elementos decorativos.

Reglas de aislamiento

  • No pases ni copies la clave API actual de Codex a este skill.
  • No leas OPENAI_API_KEY; el script lo ignora intencionadamente.
  • No imprimas api_key ni el contenido de la configuración. El script solo informa de un resumen de configuración censurado en --dry-run.
  • Si falta la configuración, dile al usuario que cree el archivo de configuración privado. No lo crees con un secreto real en su nombre a menos que se te solicite explícitamente.
  • Si un proveedor utiliza un endpoint compatible con OpenAI, establece base_url en la configuración privada. El script añade /images/generations para generación y /images/edits para ediciones.

Notas de configuración

  • Mantén config.json fuera de Git. Nunca confirmes claves API reales.
  • Usa el modo de archivo 600 para la configuración privada.
  • Mantén base_url en la raíz de la API (.../v1) a menos que el proveedor documente lo contrario.
  • Si el proveedor requiere campos de solicitud personalizados, colócalos en extra_body.
  • Si el proveedor no admite gpt-image-2, establece model con el nombre del modelo compatible del proveedor.
  • Si el proveedor solo admite respuestas URL, el script descargará la URL devuelta.
  • Si el proveedor devuelve imágenes base64 en b64_json, el script las decodificará directamente.
  • Las llamadas de red pueden generar cargos en la cuenta del proveedor configurado.

Ejemplo con campos específicos del proveedor:

{
  "api_key": "poner-clave-del-proveedor-de-imágenes-aquí",
  "base_url": "https://example.com/v1",
  "model": "gpt-image-2",
  "extra_body": {
    "moderation": "auto"
  }
}

Manejo de fallos

  • Configuración faltante o api_key faltante: informa la ruta de configuración y los campos obligatorios.
  • Error HTTP: muestra el código de estado y el cuerpo del error del proveedor, pero nunca incluyas la clave.
  • Respuesta del proveedor no compatible: informa las claves de respuesta de nivel superior y no guarda ningún archivo.
  • Múltiples imágenes: la primera imagen usa --out; las imágenes adicionales obtienen -2, -3, etc. antes de la extensión.

Limitaciones

  • Este skill es un envoltorio de API, no un editor gráfico completo. Utiliza herramientas locales deterministas para recortes exactos, redimensionamientos, exportaciones vectoriales o cambios tipográficos garantizados con precisión de píxel.
  • La edición de imágenes basada en modelos puede alterar el texto exacto, el interletraje o la geometría. Para logotipos y marcas denominativas, inspecciona el resultado antes de entregarlo.
  • La compatibilidad de edición multipart puede variar entre proveedores compatibles con OpenAI. Si las ediciones fallan pero la generación funciona, verifica si el proveedor admite /v1/images/edits con cargas image multipart.
  • El script actualmente envía imágenes de edición con el nombre de campo multipart image[] para compatibilidad con múltiples imágenes. Si un proveedor requiere un nombre de campo diferente, ajusta scripts/generate_image.py para ese proveedor.
  • El comportamiento de fondo verdaderamente transparente depende de la compatibilidad del proveedor/modelo. Si se requieren PNG transparentes, verifica el canal alfa después de la generación.

Notas de publicación

Al publicar este skill en GitHub:

  • Incluye SKILL.md, agents/openai.yaml y scripts/generate_image.py.
  • No incluyas ~/.config/gpt-image-2-apikey/config.json.
  • No incluyas imágenes generadas a menos que sean ejemplos intencionados.
  • Añade entradas .gitignore para configuraciones locales, salidas e imágenes temporales si este skill reside en un repositorio más grande.

Skills relacionados