
CROWSON, paso 5: de simular y buscar, a generar de verdad
Las cuatro entradas anteriores fueron construyendo, a propósito, una distinción cada vez más fina. Los pasos 1 a 3 simulan: Llama elige colores de una lista cerrada de ocho, el código dibuja formas fijas, y no hay ni una sola imagen real de por medio. El paso 4 no simula nada: busca, de verdad, entre fotografías con licencia Creative Commons que ya existían antes de que el alumno escribiera su frase. Este quinto paso añade la pieza que faltaba, y que llevábamos desde el principio dejando fuera a propósito: una imagen que no existía en ningún sitio, generada de verdad por un modelo de difusión real.
Por qué esto tampoco es una mejora de lo anterior
Conviene repetir aquí el mismo cuidado que ya tuvimos con el paso 4. Simular, buscar y generar son tres cosas distintas, con tecnologías distintas detrás, y CROWSON las deja ahora una junto a otra en la misma pantalla en vez de sustituir una por otra. Simular (pasos 1-3) es programación con reglas fijas y un vocabulario cerrado: nada de eso existe fuera de la demo. Buscar (paso 4) es indexación y recuperación: la foto ya existía, la hizo una persona real, y solo la encontramos. Generar (este paso 5) es, por primera vez en todo el proyecto, difusión de verdad: Pollinations.ai, un servicio gratuito que usa un modelo de difusión real, “esculpe” una imagen nueva desde ruido puro, guiado por el texto — exactamente el mismo tipo de proceso que explicamos, en abstracto, desde la primera entrada.
Cómo funciona
Aquí tomamos una decisión distinta a la del paso 4, y a propósito. En el paso 4, Llama reducía la frase a 2-5 palabras clave sueltas en inglés, porque lo único que hacía falta era alimentar un buscador. Aquí no: Llama traduce la frase completa, tal cual, lo mejor que puede — sin resumir, sin quedarse solo con palabras clave — porque esa traducción es exactamente el prompt que después recibe el modelo de difusión, y merece el mismo trato de transparencia que la respuesta cruda del paso 2: se muestra en pantalla, sin editar, antes de generar nada.
El backend (app.py) solo hace esa traducción, con un prompt de sistema nuevo y distinto del paso 4. La imagen no pasa por nuestro servidor en ningún momento: el propio navegador la pide directamente a image.pollinations.ai con una etiqueta <img>, igual que hacía el archivo de prueba suelto con el que empezamos a comprobar que esto era viable.
Un ejemplo real
un atardecer mirando la puesta del sol en el horizonte del mar

Los límites que no escondemos
Dos avisos, no uno. El primero, técnico: Pollinations ofrece un endpoint gratuito sin necesidad de clave, pero es el “clásico”, no el que documentan hoy en su web oficial — funciona ahora mismo, sin garantía de que siga así para siempre. Vale para probar y para usar en clase; para algo permanente habría que migrar al sistema con clave gratuita que Pollinations sí mantiene documentado.
El segundo aviso es más importante, y es nuevo respecto al paso 4: Openverse busca entre fotografías que ya pasaron, en algún momento, por delante de una persona (quien la subió, quien la etiquetó); Pollinations no tiene ese filtro — es un modelo generativo real, y puede producir cualquier cosa a partir de cualquier frase, sin que nadie la haya visto antes. Por eso este quinto paso se usa con el mismo criterio que el cuarto, reforzado: solo con el profesor delante, revisando siempre el resultado antes de proyectarlo, nunca en generación libre del alumnado.
Lo que sigue sin cambiar
Los pasos 1 a 3 siguen sin tocar una sola imagen real: siguen siendo colores de una lista cerrada, dibujados por reglas. El paso 4 sigue sin generar nada: sigue siendo una búsqueda real de contenido real, con su atribución completa. Lo único que añade este quinto paso es la pieza que, desde la primera entrada, dijimos que dejábamos fuera a propósito — y ahora que está aquí, aparece marcada con toda la claridad que nos hemos exigido en las cuatro entradas anteriores: esto sí es difusión real, y es la primera vez que CROWSON toca esa tecnología, no una simulación más elaborada de ella.



