Generazione di prompt da testo a immagine basata su LLM con Milvus
La storia di fondo
Da quando ho incontrato i primi sistemi di IA open-source per la generazione di immagini, mi sono innamorato del loro potenziale nel creare immagini visivamente accattivanti a partire dal testo. Ho anche visto che le persone che usano questa tecnologia ottengono un vantaggio significativo: hanno più tempo per essere creative e generare prompt migliori di quanto possa fare io.
Non riuscivo a scrollarmi di dosso questa sensazione. Così, ho iniziato a cercare tra le pagine web per trovare immagini interessanti e i prompt che le avevano create. Poi, ho usato quei prompt per creare le mie immagini. Mi ha aiutato a ottenere prompt migliori, ma ha richiesto molto tempo. E anche allora, continuavo ad avere difficoltà perché non riuscivo a inventare nuovi prompt rapidamente e in modo indipendente.
Non ho capito tutto completamente da solo perché avevo ancora bisogno di aiuto. Ma indovina un po’? Ho trovato un modo per accelerare il mio processo. Ho scaricato milioni di prompt e li ho inseriti in un database vettoriale Milvus. Poi, ho creato un modo per recuperare risultati simili basati su prompt semplici inseriti in una UI.
Questi prompt hanno prodotto immagini straordinarie. Un utente che ha testato i prompt ha persino scoperto che producevano risultati migliori rispetto a ciò che faceva prima con i suoi prompt abituali. Ha poi combinato i suoi prompt negativi con il sistema che ho creato per generare le immagini che desiderava. Anche senza i prompt negativi, ha scoperto che poteva usare il sistema per creare immagini di alta qualità.
Entrambe le immagini hanno lo stesso seed e usano lo stesso prompt negativo.
A sinistra c’è il Prompt Quill Prompt
Ancora stesso seed ma nessun prompt negativo
Entrambe le immagini perdono qualità, ma l’immagine a sinistra mantiene la composizione dell’immagine così come la posa, mentre l’immagine a destra cambia non solo in termini di qualità, ma anche di posa e sfondo.
Quindi possiamo vedere come il prompt più dettagliato di prompt quill abbia aiutato a mantenere l’immagine vicina a come doveva apparire
Come Milvus alimenta la mia generazione di prompt da testo a immagine
Ho creato script per recuperare e ripulire prompt da più fonti. Poi, carico i prompt ripuliti in un database vettoriale. Inizialmente, ho provato pgvector, ma ho scoperto che era troppo lento. Dopo un’attenta esplorazione, ho scelto Milvus per motivi di prestazioni: era cinque volte più veloce di pgvector con quasi lo stesso codice.
Una volta che i dati sono disponibili nel Milvus Vector Store, può iniziare il divertimento. Ho iniziato semplicemente chiedendo al LLM di generare alcuni bei prompt. Non ha funzionato subito. Il contesto e l’input non corrispondevano. Così, ho fatto delle prove finché non ho scoperto che dovevo dare al LLM alcune istruzioni dicendogli che era un prompt engineer e aggiungere un po’ di cronologia di conversazione di esempio. Questo è stato sufficiente per farlo iniziare a produrre immagini meravigliose.
Inoltre, posso eseguire tutto questo sulla mia macchina locale, in parte perché Milvus è in grado di eseguire la ricerca vettoriale così rapidamente. La maggior parte della latenza deriva dall’esecuzione del modello di embedding e del LLM. La ricerca vettoriale è così veloce che la GPU non ha alcuna vera pausa tra la creazione del vettore di embedding e l’inizio della produzione dell’output finale.
E non abbiamo ancora finito. C’è ancora molto da fare, e ora che questo è disponibile, le persone aggiungono prompt e nuove immagini ogni giorno.
Ecco un diagramma dell’intero processo finora:
Conclusione
Creando Prompt Quill, mi sono ritrovato con un sacco di ottimi prompt in molto meno tempo rispetto a prima. Ho anche capito che i prompt generati dal mio sistema sono più robusti di quelli creati a mano dalle persone per modelli speciali. Quei modelli richiedono una gestione attenta e speciali prompt negativi per produrre buone immagini. Anche i prompt negativi tendono a migliorare l'output di questo sistema, ma l'entità del cambiamento nelle immagini senza prompt negativi non è così grande come con alcuni di quei prompt creati a mano.
Roadmap
Il prossimo passo è aggiungere la stessa funzione per i prompt negativi. I prompt negativi hanno un'influenza positiva su come i prompt possono essere usati per generare immagini. In futuro, aggiungerò un secondo passaggio per fornire anche prompt negativi. Useremo lo stesso processo attualmente utilizzato per produrre i prompt, confrontandolo con i prompt generati nel sistema.
Ho pubblicato una semplice UI per generare i prompt, presupponendo che il vector store sia disponibile. Caricherò molto presto i dati del vector store e aggiungerò i link al mio GitHub. Vorrei renderlo disponibile online, così che anche le persone che non dispongono delle risorse GPU possano ottenere bei prompt; se pensi di poter aiutare sponsorizzando una soluzione di hosting a lungo termine, contattami.
Alcuni esempi per cui il sistema ha prodotto i prompt:
Continua a leggere

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.

VidTok: Rethinking Video Processing with Compact Tokenization
VidTok tokenizes videos to reduce redundancy while preserving spatial and temporal details for efficient processing.


