CommunityImagengithub.com

mattmuller/gemini-reference-images

Genera imágenes con Gemini a partir de imágenes de referencia: el mismo personaje en varias fotos, una captura de pantalla real dentro de una escena generada, coincidencia de estilo y depura llamadas a Gemini que no devuelven imagen.

¿Qué es gemini-reference-images?

Este skill permite utilizar Gemini para generar imágenes tomando como base imágenes de referencia proporcionadas por el usuario, no solo a partir de un prompt de texto. Es especialmente útil para mantener la coherencia de un personaje a lo largo de varias imágenes, colocar una captura de pantalla real de un producto dentro de una escena generada, o replicar un estilo visual específico. También ayuda a diagnosticar llamadas fallidas a la API de Gemini que devuelven resultados vacíos o un motivo de finalización por filtro de contenido. Funciona con modelos como `gemini-3.1-flash-image`, `gemini-3-pro-image` y `gemini-3.1-flash-lite-image`, cada uno con límites específicos de imágenes de referencia por categoría (objetos, personajes, estilo). El skill detalla cómo realizar la llamada correctamente a través del Vercel AI Gateway, incluyendo la estructura de partes (imágenes primero, luego texto) y opciones de configuración como relación de aspecto y tamaño. Además, advierte sobre trampas comunes, como evitar la palabra 'marca de agua' en el prompt, que hace que el modelo rechace la solicitud, y recomienda registrar siempre `finishReason` para detectar rechazos silenciosos.

Compatible con~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/mattmuller/skills-for-agents/tree/HEAD/skills/gemini-reference-images

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 con Gemini a partir de imágenes de referencia

Gemini puede generar una imagen a partir de las imágenes que le proporcionas, no solo a partir de un prompt. Así es como se mantiene un personaje coherente en un conjunto, o se renderiza una captura de pantalla real de un producto dentro de una escena generada en lugar de una inventada.

Límites por modelo

Tomado de la documentación de la API de generación de imágenes de Gemini del 19 de septiembre de 2026. Los nombres y límites de los modelos cambian; vuelve a leer la página actual antes de confiar en ellos.

Hasta 14 imágenes de referencia en total, con sublímites por categoría que son asignaciones separadas y no un grupo compartido:

Modeloobjetospersonajesestilo
gemini-3.1-flash-image1043
gemini-3-pro-image65-
gemini-3.1-flash-lite-image14--

Las capturas de pantalla de productos y los retratos de personajes, por lo tanto, no compiten por el presupuesto. Una imagen puede contener varias pantallas y varias personas.

Las categorías se infieren, no se declaran. A través del AI SDK y un gateway envías partes file indiferenciadas; ningún campo dice "esta es un personaje". Trata 14 como el límite real y mantente muy por debajo. Los límites de categoría describen lo que el modelo puede hacer, no algo que puedas afirmar. En la práctica, dos pantallas más dos personas es suficiente.

La llamada

A través del Vercel AI Gateway, el modelo de imagen se comportó como un modelo de lenguaje: respondió a la API de texto con la imagen en files, y la API de imagen dedicada la rechazó. Verifica cómo tu propio proveedor de ruta la expone.

const result = await generateText({
  model,
  prompt: [{ role: 'user', content: [
    ...references.map((r) => ({ type: 'file', mediaType: r.mediaType, data: r.bytes })),
    { type: 'text', text: prompt },        // imágenes primero, luego la instrucción
  ]}],
  providerOptions: { google: {
    responseModalities: ['IMAGE'],
    imageConfig: { aspectRatio: '4:5', imageSize: '2K' },
  }},
});
const file = result.files.find((f) => f.mediaType.startsWith('image/'));

Relaciones de aspecto: 1:1 3:2 2:3 3:4 4:3 4:5 5:4 9:16 16:9 21:9. Tamaños: 512px 1K 2K 4K.

Trampas

1. No escribas "sin marcas de agua" cuando se adjunten referencias. Gemini parece interpretarlo como una solicitud para eliminar marcas de agua de las imágenes proporcionadas y rechaza toda la llamada. Medido en septiembre de 2026, dos ejecuciones por cola de prompt, dos referencias adjuntas:

Cola del promptResultado
"Nunca una ilustración, un render 3D..."imagen, imagen
"Personas, rostros, manos... son bienvenidos."imagen, imagen
"Ningún logotipo de otra empresa."imagen, imagen
"Sin marcas de agua."filtro de contenido, filtro de contenido

Solo la redacción de "marca de agua" lo disparó. Una convención de prompt negativo copiada de otra herramienta de imagen (muchas terminan con watermark, over-saturated, stock-image) puede romper silenciosamente cada llamada.

2. Un rechazo parece un modelo inestable. Devuelve finishReason: 'content-filter', cero archivos y una cadena vacía. Si tu mensaje de error imprime result.text no ves nada y concluyes que la API no es fiable. Siempre registra finishReason.

3. Reintenta una respuesta vacía antes de lanzar un error. El modelo ocasionalmente no devuelve nada por razones normales. Lanza el error solo después de agotar los intentos, e incluye finishReason en el error.

4. No describas lo que hay en una pantalla proporcionada. La captura de pantalla ya está ahí; las palabras sobre su contenido luchan contra la imagen y producen un híbrido. Describe solo la escena que la contiene: la mesa, la luz, las manos.

5. El modelo redibuja; no pega. El texto pequeño en una pantalla de referencia puede aparecer sutilmente distorsionado, con nombres y etiquetas plausibles pero incorrectos. Eso está bien en tamaño miniatura y está mal para cualquier cosa que un lector vaya a ampliar. Revisa la salida en lugar de asumir fidelidad.

6. Las referencias no hacen que la salida sea menos sintética. Una imagen construida a partir de una captura de pantalla real y un retrato real sigue siendo generada por IA. Aplica cualquier regla de etiquetado o divulgación que rija tu uso de imágenes generadas; verifica lo que se aplica a ti en lugar de asumir que las referencias lo eximen.

Lista de verificación para un pipeline de imágenes de referencia

  • Las partes de referencia van antes de la parte de texto.
  • Menos de 14 referencias; idealmente 4 o menos.
  • El prompt describe la escena, no el contenido de las pantallas proporcionadas.
  • Sin redacción de "marca de agua" en el prompt.
  • finishReason se registra y los resultados vacíos se reintentan.
  • La salida se inspecciona en busca de texto pequeño distorsionado antes de publicar.

Skills relacionados