1. Punto de partida
En la primera parte dejamos una carpeta `ia` con imágenes optimizadas para que los modelos de visión puedan trabajar de forma mas ligera y estable. Ahora usamos esas imágenes para obtener información visual y generar textos útiles.La idea no es que la IA invente una historia a partir de una foto. La idea es que observe la imagen, describa lo que realmente se ve y, a partir de ahi, genere textos publicables con un estilo controlado.
- Python automatiza el proceso.
- Ollama ejecuta modelos de IA en local.
- El archivo estilo_jabenito.txt controla el tono editorial.
2. Qué hace esta segunda fase
- Detecta imágenes pendientes.
- Extrae metadatos básicos del archivo.
- Intenta leer datos EXIF y coordenadas GPS si existen.
- Envia la imagen a un modelo de visión en Ollama.
- Obtiene una descripcion visual estructurada.
- Extrae elementos principales y palabras clave.
- Clasifica la imagen por tipo de escena, categoría y tono.
- Pasa ese análisis a un modelo de texto.
- Genera titulo, textos para Facebook e Instagram y hashtags.
- Guarda los resultados en SQLite.
- Exporta todo a Excel.
- Mueve las imágenes ya analizadas a una carpeta de procesadas.
3. Instalar Python
Para ejecutar el sistema necesitamos Python instalado en Windows. Conviene descargarlo desde la web oficial y marcar la opción para añadir Python al PATH durante la instalación.|
Web oficial: https://www.python.org/downloads/windows/ Comprobar instalacion: python --version python -m pip --version |
4. Crear carpeta de trabajo y entorno virtual
|
mkdir D:/JABENITO/IA cd D:/JABENITO/IA py -m venv .venv ./.venv/Scripts/Activate.ps1 |
Si PowerShell bloquea la activacion del entorno virtual, se puede permitir temporalmente en esa sesion:
|
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass ./.venv/Scripts/Activate.ps1 |
5. Instalar requisitos de Python
El script necesita tres librerias principales:| pip install requests pillow openpyxl |
| Libreria | Funcion |
| requests | Comunicacion HTTP con Ollama. |
| pillow | Apertura de imágenes y lectura de metadatos EXIF/GPS. |
| openpyxl | Creacion del Excel final con los resultados. |
También se puede crear un archivo `requirements.txt`:
|
requests pillow openpyxl Instalacion: pip install -r requirements.txt |
6. Instalar Ollama
Ollama permite ejecutar modelos de inteligencia artificial en local. Esto evita tener que subir cientos o miles de imágenes a servicios externos.|
Web oficial: https://ollama.com/download/windows Instalacion desde PowerShell: irm https://ollama.com/install.ps1 | iex Comprobacion: ollama --version ollama list |
El script se comunica con Ollama usando el endpoint local:
| http://localhost:11434/api/generate |
7. Descargar modelos de IA
El sistema separa dos tareas: un modelo de visión analiza la imagen y un modelo escritor redacta los textos finales. Los modelos se descargan con `ollama pull`.|
ollama pull gemma3:4b ollama pull qwen2.5vl:7b ollama pull qwen3:8b ollama pull gemma4 ollama list |
El nombre exacto del modelo debe coincidir con el disponible en la instalación local. Si un modelo no existe con ese nombre, se revisa la biblioteca de modelos de Ollama y se adapta el comando.
8. El archivo de estilo
Una parte importante del sistema es `estilo_jabenito.txt`. No basta con pedir a la IA que escriba. Hay que decirle como debe escribir y que no debe hacer.El estilo define un tono en español de España, profesional, cercano, visual y humano. También evita frases vacías de marketing, exageraciones, emojis, llamadas forzadas y datos inventados.
Con este archivo, los textos dejan de sonar como publicaciónes genericas y se acercan mas a una redacción útil para web y redes sociales.
|
Ejemplo de reglas del estilo: - no inventar ubicaciones, fechas o situaciones - evitar topicos turisticos - priorizar observacion y claridad - generar Facebook, Instagram y hashtags concretos - si algo no esta claro, escribir con prudencia |
9. Análisis visual generado
La primera llamada a la IA se hace con la imagen. El modelo de visión devuelve un JSON estructurado con campos útiles para clasificar y redactar.|
scene_type summary key_elements visible_text mood category confidence notes |
Esto convierte una imagen en datos aprovechables. Por ejemplo, una fotografia de senderismo puede transformarse en elementos como personas, sendero, rocas, montanas, cielo despejado, categoría senderismo y tono natural.
10. Textos generados para publicaciónes
Después del análisis visual, el script pasa esa información al modelo escritor. El resultado incluye varias opciónes por imagen.|
title facebook_direct facebook_emotional instagram_direct instagram_emotional hashtags tone recommended_variant editorial_notes |
Esto permite elegir entre una versión directa, una versión mas emocional, textos mas cortos para Instagram, texto mas contextual para Facebook y hashtags concretos relacionados con lo que se ve.
11. Comando de ejecución recomendado
|
cd D:/JABENITO/IA python ./procesar_fotos_ollama_v4_12_1_mover_analizadas.py ` --input "D:/JABENITO/Fotos/ia" ` --output-dir "D:/JABENITO/IA/salida" ` --vision-model "gemma4" ` --writer-model "qwen3:8b" ` --batch-size 5 ` --recursive ` --folder-context ` --style-file "D:/JABENITO/IA/estilo_jabenito.txt" ` --move-processed ` --processed-dir "D:/JABENITO/Fotos/analizadas" ` --force |
| Parametro | Uso |
| --input | Carpeta con las imágenes que se van a analizar. |
| --output-dir | Carpeta donde se guardan SQLite, Excel y salidas. |
| --visión-model | Modelo múltimodal que analiza la imagen. |
| --writer-model | Modelo que redacta los textos. |
| --style-file | Archivo TXT con el estilo editorial. |
| --folder-context | Usa el nombre de la carpeta como contexto adicional. |
| --move-processed | Mueve las imágenes correctas a la carpeta de analizadas. |
| --force | Reprocesa aúnque ya existan resultados anteriores. |
12. Salidas generadas
Al terminar, el sistema genera una base de datos SQLite y un Excel.|
publicaciones.db publicaciones.xlsx |
El Excel permite revisar, filtrar, comparar y seleccionar textos. Algunas columnas útiles son:
|
file_name scene_type summary key_elements mood category confidence title facebook_direct facebook_emotional instagram_direct instagram_emotional hashtags recommended_variant editorial_notes status error processed_at |
13. Combinaciones de modelos probadas
| Versión | Modelo de visión | Modelo escritor | Resultado práctico |
| v1 | gemma3:4b | qwen3:8b | Opción ligera y bastante estable. La visión es mas simple. |
| v2 | qwen2.5vl:7b | qwen3:8b | Interesante, pero menos fiable en estas pruebas. |
| v3 | qwen2.5vl:7b | qwen2.5vl:7b | Menos recomendable para este flujo. |
| v4 | gemma4 | qwen3:8b | Mejor equilibrio general. |
| v5 | gemma4 | gemma4 | Buena opción editorial alternativa, mas narrativa. |
La mejor combinacion en nuestras pruebas ha sido v4: `gemma4` para visión y `qwen3:8b` para escritura.
`gemma4` ha dado mejor resultado leyendo imágenes, detectando detalles y evitando errores visuales. `qwen3:8b` ha funcionado mejor como redactor, con textos mas controlados, directos y fáciles de usar en redes o publicaciónes.
La combinacion `gemma4 + gemma4` puede servir como modo mas emocional o editorial, pero no la usaria como salida principal para producción masiva porque puede volverse mas narrativa y repetitiva.
14. Por qué es útil
Este sistema transforma una carpeta de imágenes en una base de contenidos. No sustituye el criterio humano, pero elimina una parte enorme del trabajo repetitivo.- Webs con muchas galerias.
- Publicaciónes de redes sociales.
- Fichas de patrimonio.
- Imágenes de rutas y naturaleza.
- Gastronomia y turismo rural.
- Museos y exposiciones.
- Documentacion de proyectos.
- Organizacion interna de archivos visuales.
15. Flujo completo hasta este punto
|
1. Copiamos originales a una carpeta. 2. Ejecutamos el script de ImageMagick. 3. Se generan JPG y WebP para web. 4. Se crea una version ligera para IA. 5. Ejecutamos el script de Python con Ollama. 6. La IA analiza cada imagen. 7. Se generan textos y hashtags. 8. Se exporta todo a Excel. 9. Revisamos y usamos los textos en web, redes o publicaciones. |
16. Siguiente paso
El siguiente paso natural es usar el Excel generado como base editorial. A partir de ahi se pueden revisar textos, elegir la mejor variante, preparar calendarios de publicación, generar HTML para galerias, alimentar una base de datos o automatizar publicaciónes.La IA no hace magia. Pero cuando se integra en un proceso bien diseñado, permite trabajar con una cantidad de material que seria muy difícil gestionar manualmente.
17. Enlaces y notas para publicar
- Python para Windows: https://www.python.org/downloads/windows/
- Ollama para Windows: https://ollama.com/download/windows
- Instalación de modelos: ollama pull nombre-del-modelo
- Requisitos Python: requests, pillow, openpyxl
18. Checklist final de instalación
- ImageMagick instalado y `magick -version` responde correctamente.
- Python instalado y disponible desde PowerShell.
- Entorno virtual creado y activado en la carpeta de trabajo.
- Librerías `requests`, `pillow` y `openpyxl` instaladas.
- Ollama instalado y funcionando en local.
- Modelos descargados y visibles con `ollama list`.
- `estilo_jabenito.txt` colocado en la ruta indicada.
- Carpeta `ia` preparada con imágenes ya redimensionadas.
- Carpeta de salida creada para guardar SQLite y Excel.
- Primera prueba realizada con pocas imágenes antes de lanzar un lote grande.
|
Prueba mínima recomendada: python ./procesar_fotos_ollama_v4_12_1_mover_analizadas.py ` --input "D:/JABENITO/Fotos/ia" ` --output-dir "D:/JABENITO/IA/salida" ` --vision-model "gemma4" ` --writer-model "qwen3:8b" ` --batch-size 2 ` --style-file "D:/JABENITO/IA/estilo_jabenito.txt" |