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:
| Modelo | objetos | personajes | estilo |
|---|---|---|---|
gemini-3.1-flash-image | 10 | 4 | 3 |
gemini-3-pro-image | 6 | 5 | - |
gemini-3.1-flash-lite-image | 14 | - | - |
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 prompt | Resultado |
|---|---|
| "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.
finishReasonse registra y los resultados vacíos se reintentan.- La salida se inspecciona en busca de texto pequeño distorsionado antes de publicar.