CommunityImagengithub.com

zeighy/image-gen

Genera imágenes a partir de una descripción de texto, o edita/combina imágenes de referencia, a través del relay de OpenRouter auto-alojado. Úsalo cuando el usuario pida crear, dibujar, renderizar, ilustrar o editar una imagen.

¿Qué es image-gen?

Esta habilidad permite a un agente de IA (como Claude Code, Cursor o Codex) generar, editar y combinar imágenes mediante un relay de OpenRouter auto-alojado. El flujo principal ejecuta el script `relay.sh` con el comando `generate` y una descripción textual, aceptando opciones como relación de aspecto, número de imágenes, modelo específico y directorio de salida. También soporta edición de imágenes existentes usando el flag `--image` (subiendo archivos locales) o `--ref` (haciendo referencia a imágenes generadas anteriormente en la conversación). La generación puede demorar varios minutos, por lo que el relay la ejecuta en segundo plano; el script espera hasta 90 segundos y, si el trabajo aún está pendiente, devuelve un identificador para consultar el resultado más tarde con `relay.sh result <id>`. Es útil para creadores de contenido, diseñadores y desarrolladores que necesitan integración directa de generación de imágenes en flujos de trabajo automatizados sin depender de APIs externas de pago por uso. La habilidad maneja errores comunes como límites de tasa, contenido rechazado, imágenes no válidas y problemas de red, indicando siempre al usuario qué acción tomar sin intentar eludir las restricciones de contenido.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zeighy/orgir-relay/tree/HEAD/skill/image-gen

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

Preguntar en tu IA favorita

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

Documentación

Generación de imágenes mediante relay

Usa el script relay.sh en la carpeta de esta habilidad (la misma carpeta donde se encuentra este SKILL.md). Lee la URL y el token del relay desde relay.env al lado (o desde IMAGE_RELAY_URL / IMAGE_RELAY_TOKEN si están configurados), llama al relay y guarda las imágenes como archivos. Ejecútalo con bash, usando su ruta completa.

Nunca imprimas, hagas eco o muestres el token o relay.env, y nunca pongas el token en la línea de comandos.

Generar

bash /ruta/a/image-gen/relay.sh generate "Un zorro acuarela en un bosque nevado" --aspect 16:9

Opciones:

  • --aspect R: uno de 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
  • --n N: número de imágenes (1-4)
  • --model M: solo si el usuario pide un modelo específico; ejecuta relay.sh models para listar los permitidos
  • --out DIR: donde guardar (por defecto: /mnt/user-data/outputs cuando existe, si no, el directorio actual)

Las líneas de salida tienen el formato saved: /ruta/abc123.jpg (512345 bytes, relay file: abc123.jpg). Muestra o adjunta los archivos guardados al usuario. Conserva los nombres de relay file para ediciones posteriores.

Esperando resultados

La generación puede llevar minutos, por lo que el relay lo ejecuta como un trabajo en segundo plano. relay.sh generate envía el trabajo y verifica cada ~30 segundos (el intervalo que pide el relay) hasta 90 segundos. Si la imagen está lista, recibes las líneas saved: como de costumbre.

Si imprime pending: job <id> ..., el trabajo aún se está ejecutando en el relay y no se ha perdido. Espera el número de segundos indicado (ej. sleep 30), luego ejecuta:

bash /ruta/a/image-gen/relay.sh result <id>

Mientras esperas, el script puede decir que el trabajo está "siendo revisado" (el relay aún está revisando la solicitud) o "aceptado, generando". Repite hasta que imprima líneas saved: o un error. No vuelvas a enviar el prompt mientras un trabajo esté pendiente: eso generaría (y facturaría) una segunda imagen. --wait SEGUNDOS cambia cuánto espera una llamada (por defecto 90).

Editar o usar imágenes de referencia

Pasa los archivos de imagen del usuario con --image (repetible, hasta 4 en total; PNG, JPEG, WebP o GIF, máximo 10 MB cada uno):

bash /ruta/a/image-gen/relay.sh generate "Haz el cielo púrpura, mantén todo lo demás igual" --image /ruta/a/foto.jpg

Para refinar una imagen generada anteriormente en la conversación, pasa su nombre de archivo relay con --ref (más rápido que volver a subir; los archivos relay caducan después de 24 horas):

bash /ruta/a/image-gen/relay.sh generate "Agrega una pequeña luna en la esquina superior derecha" --ref abc123.jpg

--ref también acepta una URL de imagen https://.

Cómo redactar el prompt

Escribe un prompt específico que cubra el sujeto, estilo, composición, iluminación y colores. Para ediciones, indica qué cambiar y qué mantener.

Errores

El script imprime error: HTTP <código> <nombre_código>: <mensaje>:

  • rate_limited: espera los segundos indicados, luego reintenta una vez.
  • model_not_allowed, invalid_aspect_ratio, invalid_n: corrige la opción y reintenta.
  • invalid_input_images / 413: la imagen no es de un tipo soportado o es demasiado grande; conviértela o redúcela.
  • upstream_error (ej. "no respondió a tiempo"): el relay ya reintentó por su cuenta. Informa al usuario, luego reenvía una vez; si falla de nuevo, detente y repórtalo.
  • request_rejected: el relay no aceptó la solicitud (no da razón). Informa al usuario que fue rechazada; no adivines la causa, ni reescribas ni disfraces el prompt o las imágenes para evadirlo, ni reenvíes.
  • prompt_rejected: la política de contenido del relay bloqueó el prompt. Informa al usuario; no reformules el prompt para evadir el filtro.
  • image_rejected: una imagen de referencia fue bloqueada por la política de contenido. Informa al usuario; no reintentes con la misma imagen ni intentes disfrazarla.
  • no_image: no se produjo ninguna imagen; reformula el prompt.
  • job_not_found / job_lost: el ID del trabajo expiró o el servidor lo abortó; vuelve a enviar el prompt.
  • could not reach: el acceso de red al dominio del relay está bloqueado. Indica al usuario que permita el dominio en Configuración → Capacidades (egreso de red).
  • unauthorized: el token falta, es incorrecto o ha expirado. Informa al usuario; no intentes encontrar otro token.

Skills relacionados