Modelos de visión con Ollama
Qué cubre este artículo
- Qué modelos de visión ofrece Ollama.
- Cómo analizar imágenes a través de la API o CLI.
- Consejos para hacer prompts efectivos.
- Casos de uso típicos.
- Limitaciones y trampa comunes.
Introducción: Modelos de visión con Ollama
Ollama no solo soporta modelos de texto, sino también los llamados modelos de visión, que pueden procesar imágenes. Con ellos puedes describir imágenes, responder preguntas sobre su contenido, extraer texto o reconocer objetos. Todo se ejecuta localmente, sin necesidad de enviar imágenes a servicios en la nube. Esto es especialmente amigable con la privacidad de datos.
Este artículo te muestra qué modelos de visión ofrece Ollama, cómo instalarlos y cómo analizar imágenes.
Conceptos clave
- Modelo de visión: Modelo de lenguaje que además procesa imágenes.
- Multimodal: Combinación de texto e imagen como entrada.
- CLIP: Técnica que mapea imágenes y texto en un espacio común.
- LLaVA: Modelo de visión de código abierto muy conocido.
- OCR: Reconocimiento óptico de caracteres, es decir, leer texto de imágenes.
- Token de imagen: Representación interna de una imagen para el modelo.
Modelos de visión disponibles
Ollama ofrece varios modelos multimodales. Algunos ejemplos conocidos son:
- llava: Modelo de visión popular, disponible en varias variantes.
- llava-phi3: Variante más rápida.
- moondream: Modelo muy compacto y rápido para análisis simples de imágenes.
- bakllava: Otra variante con buen rendimiento.
Para descargar:
ollama pull llava
ollama pull moondream
Analizar imágenes desde la CLI
Ollama permite pasar imágenes directamente como argumento:
ollama run llava "Describe esta imagen." ./imagen.png
O de forma interactiva:
ollama run llava
Luego especifica la ruta de la imagen en el prompt.
Imágenes a través de la API REST
curl http://localhost:11434/api/chat -d '{
"model": "llava",
"messages": [
{
"role": "user",
"content": "Describe el contenido de esta imagen.",
"images": ["IMAGEN_CODIFICADA_EN_BASE64"]
}
],
"stream": false
}'
La imagen debe codificarse en Base64.
Ejemplo con Python
import requests
import base64
with open("imagen.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
url = "http://localhost:11434/api/chat"
payload = {
"model": "llava",
"messages": [
{
"role": "user",
"content": "Describe la imagen en tres oraciones.",
"images": [image_b64]
}
],
"stream": False
}
resp = requests.post(url, json=payload)
print(resp.json()["message"]["content"])
Consejos para prompting con imágenes
- Sé específico: “¿Qué objetos están en primer plano?”
- Extrae texto: “Lee el texto que aparece en la imagen.”
- Resume: “Resume el contenido de la imagen.”
- Compara: Si tienes varias imágenes, describe las diferencias.
Casos de uso
- OCR: Extrae texto de capturas de pantalla, documentos o formularios.
- Descripción de imágenes: Para accesibilidad o catalogación.
- Reconocimiento de objetos: Resume el contenido de imágenes.
- Código desde capturas: Reconoce y describe elementos de UI.
- Análisis de datos: Interpreta gráficos y diagramas.
Rendimiento y recursos
Los modelos de visión requieren significativamente más memoria que los modelos de texto puro. El procesamiento de imágenes genera tokens adicionales y consume GPU o CPU. Iniciar un modelo de visión puede tomar más tiempo que un modelo de texto.
Recomendaciones
- Usa modelos de visión pequeños como
moondreampara tareas rápidas. - No envíes imágenes muy grandes para ahorrar tokens.
- Haz preguntas concretas, no esperes descripciones vagas.
- Prefiere GPU, pues la inferencia en CPU con visión es más lenta.
- Verifica los resultados, ya que los modelos de visión no siempre son precisos.
Trampa comunes
- Modelo incorrecto: No todos los modelos en Ollama soportan imágenes.
- Imagen demasiado grande: El modelo tiene límites de contexto o tamaño de imagen.
- Error en Base64: Imagen no codificada correctamente.
- Respuestas lentas: La visión requiere más VRAM y poder de cálculo.
- Estructura de API incorrecta: Usa el campo
imagesdentro del objetomessages.
Enlaces útiles e información
- BotServ.de Comandos Ollama
- BotServ.de API REST Ollama
- BotServ.de Rendimiento Ollama
- BotServ.de IA multimodal
Preguntas frecuentes: Modelos de visión con Ollama
¿Cuál es el modelo de visión recomendado?
llava para buena calidad, moondream para análisis rápidos.
¿Puede Ollama procesar múltiples imágenes simultáneamente?
Sí, pasando varias cadenas Base64 en el campo images.
¿Necesito una GPU? Se recomienda, pero no es obligatorio. La inferencia en CPU es más lenta.
¿Qué formatos de imagen se soportan? Generalmente PNG, JPEG y GIF, dependiendo del modelo.
¿Cumplen los modelos de visión con la privacidad de datos? Sí, porque todo se procesa localmente.
Fuentes y referencias
- Ollama Vision Docs: https://github.com/ollama/ollama/blob/main/docs/
- LLaVA: https://llava-vl.github.io/
- Moondream: https://moondream.ai/
Resumen: Modelos de visión con Ollama
Ollama permite analizar imágenes localmente con modelos de visión como llava o moondream. A través de la CLI o API REST puedes describir imágenes, extraer texto o reconocer objetos. Son importantes la codificación correcta en Base64, suficiente VRAM y prompts específicos. Los modelos de visión consumen más recursos que los modelos de texto puro, pero ofrecen muchas aplicaciones que van desde OCR hasta descripción de imágenes. Si quieres procesar datos de imágenes localmente, te beneficiarás especialmente de la privacidad y la independencia de servicios en la nube.


