Generación de prompts de texto a imagen impulsada por LLM con Milvus
La historia de fondo
Desde que encontré los primeros sistemas de IA de código abierto para generar imágenes, me enamoré de su potencial para crear imágenes visualmente atractivas a partir de texto. También he visto que las personas que usan esta tecnología obtienen una ventaja significativa: tienen más tiempo para ser creativas y generar mejores prompts que yo.
No podía quitarme esa sensación de encima. Así que empecé a buscar en páginas web imágenes interesantes y los prompts que las crearon. Luego, usé esos prompts para hacer mis propias imágenes. Me ayudó a conseguir mejores prompts, pero me tomó mucho tiempo. E incluso así, seguía teniendo dificultades porque no podía idear nuevos prompts de forma rápida e independiente.
No lo resolví todo completamente por mi cuenta porque todavía necesitaba ayuda. Pero ¿adivina qué? Encontré una manera de acelerar mi proceso. Descargué millones de prompts y los puse en una base de datos vectorial Milvus. Luego, creé una forma de obtener resultados similares basados en prompts simples introducidos en una UI.
Estos prompts dieron como resultado imágenes increíbles. Un usuario que probó los prompts incluso descubrió que producían mejores resultados que los que obtenía antes con sus prompts habituales. Luego combinó sus prompts negativos con el sistema que creé para generar las imágenes que quería. Incluso sin los prompts negativos, descubrió que podía usar el sistema para crear imágenes de alta calidad.
Ambas imágenes tienen la misma semilla y usan el mismo prompt negativo.
A la izquierda está el prompt de Prompt Quill
Sigue siendo la misma semilla pero sin prompt negativo
Ambas imágenes se alejan en calidad, pero la imagen de la izquierda mantiene la composición de la imagen, así como la pose, mientras que la imagen de la derecha se aleja no solo en calidad, sino también en pose y fondo.
Así que podemos ver cómo el prompt más detallado de prompt quill ayudó a mantener la imagen cerca de cómo debía verse
Cómo Milvus impulsa mi generación de prompts de texto a imagen
Creé scripts para obtener y limpiar prompts de múltiples fuentes. Luego, cargo los prompts limpios en una base de datos vectorial. Inicialmente, probé pgvector, pero descubrí que era demasiado lento. Después de una exploración cuidadosa, elegí Milvus por razones de rendimiento; era cinco veces más rápido que pgvector con casi el mismo código.
Una vez que los datos están disponibles en Milvus Vector Store, puede empezar la diversión. Empecé simplemente pidiéndole al LLM que generara algunos prompts agradables. No funcionó de inmediato. El contexto y la entrada no coincidían. Así que estuve experimentando hasta que descubrí que necesitaba darle al LLM algunas instrucciones diciéndole que era un ingeniero de prompts y añadí algunos ejemplos de historial de conversación. Esto fue suficiente para que empezara a producir imágenes maravillosas.
Además, puedo ejecutar todo esto en mi máquina local, en parte porque Milvus puede ejecutar la búsqueda vectorial muy rápidamente. La mayor parte de la latencia proviene de ejecutar el modelo de embeddings y el LLM. La búsqueda vectorial es tan rápida que la GPU no tiene una pausa real entre la creación del vector de embeddings y el inicio de la producción del resultado final.
Y todavía no hemos terminado. Hay mucho más por hacer, y ahora que esto está disponible, la gente está añadiendo prompts y nuevas imágenes a diario.
Aquí hay un diagrama de todo el proceso hasta ahora:
Conclusión
Al crear Prompt Quill, me encontré con un montón de prompts excelentes en mucho menos tiempo que antes. También me di cuenta de que los prompts que crea mi sistema son más robustos que los que la gente hace a mano para modelos especiales. Esos modelos necesitan un manejo cuidadoso y prompts negativos especiales para crear buenas imágenes. Los prompts negativos también tienden a mejorar el resultado de este sistema, pero la cantidad de cambio en las imágenes sin prompts negativos no es tan grande como con algunos de esos prompts hechos a mano.
Hoja de ruta
El siguiente paso es añadir la misma función para prompts negativos. Los prompts negativos influyen positivamente en cómo se pueden usar los prompts para generar imágenes. En el futuro, añadiré un segundo paso para proporcionar también prompts negativos. Usaremos el mismo proceso que se usa actualmente para producir los prompts, comparándolo con los prompts generados en el sistema.
He publicado una interfaz de usuario sencilla para generar los prompts, suponiendo que el almacén vectorial esté disponible. Subiré los datos del almacén vectorial muy pronto y añadiré los enlaces a mi GitHub. Me gustaría ejecutar esto en línea para que las personas que no tienen recursos de GPU también puedan obtener buenos prompts; si crees que podrías ayudar patrocinando una solución de alojamiento a largo plazo, ponte en contacto conmigo.
Algunos ejemplos para los que el sistema produjo los prompts:
Sigue leyendo

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.


