Swift 🧨Diffusers – Diffusori veloci e stabili per Mac

Diffusori Swift per Mac - veloci e stabili 🧨

Trasforma il tuo testo in immagini sorprendenti con facilità utilizzando Diffusers per Mac, un’app nativa alimentata da modelli di diffusione all’avanguardia. Sfrutta una serie di modelli di Text-to-Image all’avanguardia contribuiti dalla comunità al Hugging Face Hub e convertiti in Core ML per prestazioni velocissime. La nostra ultima versione, 1.1, è ora disponibile su Mac App Store con significativi miglioramenti delle prestazioni e modifiche all’interfaccia utente user-friendly. È una solida base per future aggiornamenti delle funzionalità. Inoltre, l’app è completamente open source con una licenza permissiva, quindi puoi anche svilupparci sopra! Dai un’occhiata al nostro repository GitHub su https://github.com/huggingface/swift-coreml-diffusers per ulteriori informazioni.

Che cos’è esattamente 🧨Diffusers per Mac?

L’app Diffusers (App Store, codice sorgente) è il controparte per Mac della nostra libreria 🧨diffusers. Questa libreria è scritta in Python con PyTorch e utilizza un design modulare per allenare ed eseguire modelli di diffusione. Supporta molti modelli e compiti diversi ed è altamente configurabile e ben ottimizzata. Funziona anche su Mac, utilizzando l’acceleratore mps di PyTorch, che è un’alternativa a cuda su Apple Silicon.

Perché vorresti quindi eseguire un’app nativa per Mac? Ci sono molte ragioni:

  • Utilizza modelli Core ML, invece dei modelli originali PyTorch. Questo è importante perché consentono ulteriori ottimizzazioni pertinenti alle specificità dell’hardware Apple e perché i modelli Core ML possono essere eseguiti su tutti i dispositivi di calcolo del sistema: la CPU, la GPU e il Neural Engine, contemporaneamente – il framework Core ML deciderà quali porzioni del tuo modello eseguire su ciascun dispositivo per renderlo il più veloce possibile. Il dispositivo mps di PyTorch non può utilizzare il Neural Engine.
  • È un’app Mac! Cerchiamo di seguire il linguaggio di design e le linee guida di Apple in modo che si senta a casa sul tuo Mac. Non c’è bisogno di utilizzare la riga di comando, creare ambienti virtuali o risolvere dipendenze.
  • È locale e privato. Non hai bisogno di crediti per servizi online e non dovrai affrontare lunghe code: genera tutte le immagini che desideri e usale per divertimento o lavoro. La privacy è garantita: le tue richieste e le immagini sono tue e non lasceranno mai il tuo computer (a meno che tu decida di condividerle).
  • È open source e utilizza Swift, Swift UI e le ultime lingue e tecnologie per lo sviluppo su Mac e iOS. Se sei tecnicamente incline, puoi utilizzare Xcode per estendere il codice come preferisci. Accogliamo anche i tuoi contributi!

Benchmarks delle prestazioni

TL;DR: A seconda del tuo computer, la generazione di testo in immagine può essere fino a due volte più veloce su Diffusers 1.1. ⚡️

Abbiamo effettuato molti test su diversi Mac per determinare le migliori combinazioni di dispositivi di calcolo che offrono prestazioni ottimali. Per alcuni computer è meglio utilizzare la GPU, mentre per altri funziona meglio l’Neural Engine o ANE.

Vieni a dare un’occhiata ai nostri benchmark. Tutte le combinazioni utilizzano anche la CPU oltre alla GPU o all’ANE.

Abbiamo scoperto che la quantità di memoria non sembra influire molto sulle prestazioni, ma il numero di core CPU e GPU sì. Ad esempio, su un laptop M1 Max, la generazione con GPU è molto più veloce rispetto all’ANE. Questo è probabilmente dovuto al fatto che ha 4 volte il numero di core GPU (e il doppio dei core di prestazioni CPU) rispetto al processore M1 standard, per lo stesso numero di core del Neural Engine. Al contrario, i processori M1 standard presenti nei Mac Mini sono due volte più veloci utilizzando l’ANE rispetto alla GPU. In modo interessante, abbiamo testato l’uso congiunto degli acceleratori GPU e ANE e abbiamo scoperto che non migliora le prestazioni rispetto ai migliori risultati ottenuti utilizzando solo uno di essi. Il punto di taglio sembra essere attorno alle caratteristiche hardware del chip M1 Pro (8 core di prestazioni, 14 o 16 core GPU), a cui al momento non abbiamo accesso.

🧨Diffusers versione 1.1 seleziona automaticamente l’acceleratore migliore in base al computer su cui viene eseguita l’app. Alcune configurazioni di dispositivi, come le varianti “Pro”, non sono offerte da nessun servizio cloud che conosciamo, quindi le nostre euristiche potrebbero essere migliorate per loro. Se desideri aiutarci a raccogliere dati per continuare a migliorare l’esperienza di utilizzo della nostra app, continua a leggere!

Chiamata della comunità per dati di benchmark

Siamo interessati a eseguire benchmark delle prestazioni più complete sui dispositivi Mac. Se desideri aiutare, abbiamo creato questa issue su GitHub dove puoi pubblicare i tuoi risultati. Li utilizzeremo per ottimizzare le prestazioni in una prossima versione dell’app. Siamo particolarmente interessati alle architetture M1 Pro, M2 Pro e M2 Max 🤗

Altre migliorie nella versione 1.1

Oltre all’ottimizzazione delle prestazioni e alla risoluzione di alcuni bug, ci siamo concentrati sull’aggiunta di nuove funzionalità cercando di mantenere l’interfaccia utente semplice e pulita. La maggior parte di esse sono ovvie (scala di guida, possibilità di disabilitare facoltativamente il controllo di sicurezza, possibilità di annullare le generazioni). Le nostre preferite sono gli indicatori di download del modello e una scorciatoia per riutilizzare il seed di una generazione precedente al fine di regolare i parametri di generazione.

La versione 1.1 include anche informazioni aggiuntive su cosa fanno le diverse impostazioni di generazione. Vogliamo che 🧨Diffusers per Mac renda la generazione di immagini accessibile a tutti gli utenti Mac, non solo ai tecnologi.

Prossimi passi

Crediamo che ci sia un grande potenziale inesplorato per la generazione di immagini nell’ecosistema Apple. Nei prossimi aggiornamenti vogliamo concentrarci su quanto segue:

  • Accesso facile a modelli aggiuntivi dall’Hub. Esegui qualsiasi modello Dreambooth o fine-tuned dall’app, in modo simile a quello di Mac.
  • Rilasciare una versione per iOS e iPadOS.

Stiamo considerando molte altre idee. Se desideri proporre la tua, sei il benvenuto nel nostro repository su GitHub.