Felice primo anniversario 🤗 Diffusers!

Happy 1st anniversary 🤗 Diffusers!

🤗 Diffusers è felice di festeggiare il suo primo anniversario! È stato un anno emozionante e siamo orgogliosi e grati per quanto siamo arrivati grazie alla nostra community e ai contributori open-source. L’anno scorso, modelli di testo-immagine come DALL-E 2, Imagen e Stable Diffusion hanno catturato l’attenzione del mondo con la loro capacità di generare immagini fotorealistiche straordinarie a partire da testo, suscitando un’enorme ondata di interesse e sviluppo nell’IA generativa. Ma l’accesso a questi modelli potenti era limitato.

Presso Hugging Face, la nostra missione è democratizzare il buon machine learning collaborando e aiutandoci reciprocamente a costruire insieme un futuro di IA aperto ed etico. La nostra missione ci ha spinto a creare la libreria 🤗 Diffusers in modo che tutti possano sperimentare, fare ricerca o semplicemente giocare con modelli di testo-immagine. Ecco perché abbiamo progettato la libreria come un set di strumenti modulari, in modo che tu possa personalizzare i componenti di un modello di diffusione o semplicemente iniziare a usarlo così com’è.

Con il primo compleanno di 🤗 Diffusers, ecco una panoramica di alcune delle caratteristiche più significative che abbiamo aggiunto alla libreria con l’aiuto della nostra community. Siamo orgogliosi e immensamente grati di far parte di una community impegnata che promuove un’utilizzo accessibile, spinge i modelli di diffusione oltre la generazione di solo testo-immagine ed è un’ispirazione in ogni ambito.

Indice

  • Obiettivo: fotorealismo
  • Pipeline video
  • Modelli di testo-3D
  • Pipeline di editing immagini
  • Modelli di diffusione più veloci
  • Etica e sicurezza
  • Supporto per LoRA
  • Ottimizzazioni Torch 2.0
  • Novità della community
  • Creare prodotti con 🤗 Diffusers
  • Guardando al futuro

Obiettivo: fotorealismo

I modelli di IA generativa sono noti per creare immagini fotorealistiche, ma se guardi da vicino, potresti notare alcune cose che non sembrano corrette, come la generazione di dita extra su una mano. Quest’anno, i modelli DeepFloyd IF e Stability AI SDXL hanno fatto parlare di sé migliorando la qualità delle immagini generate rendendole ancora più fotorealistiche.

DeepFloyd IF – Un modello di diffusione modulare che include diversi processi per la generazione di un’immagine (ad esempio, un’immagine viene ingrandita 3 volte per produrre un’immagine ad alta risoluzione). A differenza di Stable Diffusion, il modello IF lavora direttamente sul livello dei pixel e utilizza un grande modello di linguaggio per codificare il testo.

Stable Diffusion XL (SDXL) – L’ultimo modello di diffusione stabile di Stability AI, con un numero significativamente maggiore di parametri rispetto al suo predecessore Stable Diffusion 2. Genera immagini iperrealistiche, sfruttando un modello di base per una stretta aderenza alla richiesta e un modello di affinazione specializzato nei dettagli fini e nel contenuto ad alta frequenza.

Visita oggi la documentazione di DeepFloyd IF e la documentazione di SDXL per imparare come iniziare a generare le tue immagini!

Pipeline video

Le pipeline di testo-immagine sono interessanti, ma quelle di testo-video sono ancora più interessanti! Attualmente supportiamo due pipeline di testo-video, VideoFusion e Text2Video-Zero.

Se conosci già le pipeline di testo-immagine, utilizzare una pipeline di testo-video è molto simile:

import torch
from diffusers import DiffusionPipeline
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()

prompt = "Darth Vader che surfa su una onda"
video_frames = pipe(prompt, num_frames=24).frames
video_path = export_to_video(video_frames)

Prevediamo che la generazione di testo-video subirà una rivoluzione durante il secondo anno di 🤗 Diffusers e siamo entusiasti di vedere cosa la community costruirà su queste basi per spingere i limiti della generazione di video a partire dal linguaggio!

Modelli di testo-3D

Oltre al testo-video, abbiamo ora anche la generazione di testo-3D grazie al modello Shap-E di OpenAI. Shap-E viene addestrato codificando un ampio dataset di coppie testo-3D e un modello di diffusione è condizionato agli output dell’encoder. Puoi progettare asset 3D per videogiochi, design d’interni e architettura.

Provalo oggi con ShapEPipeline e ShapEImg2ImgPipeline.

Pipeline di editing immagini

La modifica delle immagini è uno dei casi d’uso più pratici nel campo della moda, del design dei materiali e della fotografia. Con i modelli di diffusione, le possibilità di modifica delle immagini continuano a espandersi.

Abbiamo molte pipeline in 🤗 Diffusers per supportare la modifica delle immagini. Ci sono pipeline di modifica delle immagini che ti consentono di descrivere la modifica desiderata come un prompt, rimuovendo concetti da un’immagine, e persino una pipeline che unifica più metodi di generazione per creare immagini di alta qualità come panorami. Con 🤗 Diffusers, puoi sperimentare il futuro della modifica delle foto ora!

Modelli di diffusione più veloci

I modelli di diffusione sono noti per essere intensivi in termini di tempo a causa dei loro passaggi iterativi. Con i modelli di coerenza di OpenAI, il processo di generazione delle immagini è significativamente più veloce. Generare una singola immagine di risoluzione 256×256 richiede solo 3/4 di secondo su una CPU moderna! Puoi provarlo in 🤗 Diffusers con il ConsistencyModelPipeline.

Oltre ai modelli di diffusione più veloci, offriamo anche molte tecniche di ottimizzazione per un’elaborazione più veloce come scaled_dot_product_attention() (SDPA) e torch.compile() di PyTorch 2.0, attenzione segmentata, divisione feed-forward, piastrellatura VAE, spostamento su CPU e modello, e altro ancora. Queste ottimizzazioni consentono di risparmiare memoria, il che si traduce in una generazione più veloce, e ti consentono di eseguire l’elaborazione su GPU per consumatori. Quando distribuisci un modello con 🤗 Diffusers, tutte queste ottimizzazioni sono supportate immediatamente!

Inoltre, supportiamo anche hardware e formati specifici come ONNX, il dispositivo PyTorch mps per i computer Apple Silicon, Core ML e altri.

Per saperne di più su come ottimizziamo l’elaborazione con 🤗 Diffusers, consulta la documentazione!

Etica e sicurezza

I modelli generativi sono interessanti, ma hanno anche la capacità di produrre contenuti dannosi e NSFW. Per aiutare gli utenti a interagire in modo responsabile ed etico con questi modelli, abbiamo aggiunto un componente safety_checker che segnala il contenuto inappropriato generato durante l’elaborazione. I creatori dei modelli possono scegliere di incorporare questo componente nei loro modelli se lo desiderano.

Inoltre, i modelli generativi possono essere utilizzati anche per produrre disinformazione. All’inizio di quest’anno, il Papa di Balenciaga è diventato virale per quanto fosse realistica l’immagine nonostante fosse falsa. Ciò sottolinea l’importanza e la necessità di un meccanismo per distinguere tra contenuti generati e contenuti umani. Ecco perché abbiamo aggiunto un watermark invisibile per le immagini generate dal modello SDXL, che aiuta gli utenti a essere meglio informati.

Lo sviluppo di queste funzionalità è guidato dal nostro codice etico, che puoi trovare nella nostra documentazione.

Supporto per LoRA

L’ottimizzazione dei modelli di diffusione è costosa e al di fuori della portata della maggior parte delle GPU per consumatori. Abbiamo aggiunto la tecnica di adattamento Low-Rank (LoRA) per colmare questa lacuna. Con LoRA, che è un metodo per l’adattamento efficiente dei parametri, puoi adattare i grandi modelli di diffusione più velocemente e consumare meno memoria. I pesi del modello risultante sono anche molto leggeri rispetto al modello originale, quindi puoi condividere facilmente i tuoi modelli personalizzati. Se vuoi saperne di più, la nostra documentazione mostra come eseguire l’adattamento dei parametri e l’elaborazione su Stable Diffusion con LoRA.

Oltre a LoRA, supportiamo altre tecniche di addestramento per la generazione personalizzata, tra cui DreamBooth, inversione testuale, diffusione personalizzata e altro ancora!

Ottimizzazioni di Torch 2.0

PyTorch 2.0 ha introdotto il supporto per torch.compile() e scaled_dot_product_attention(), una implementazione più efficiente del meccanismo di attenzione. 🤗 Diffusers fornisce un supporto di prima classe per queste funzionalità che si traduce in una significativa accelerazione nella latenza dell’elaborazione, che a volte può essere più del doppio più veloce!

Oltre ai contenuti visivi (immagini, video, asset 3D, ecc.), abbiamo anche aggiunto il supporto per l’audio! Consulta la documentazione per saperne di più.

Evidenze della comunità

Una delle esperienze più gratificanti dell’anno scorso è stata vedere come la comunità sta incorporando 🤗 Diffusers nei propri progetti. Dall’adattamento di Low-rank adaptation (LoRA) per un addestramento più rapido dei modelli di conversione testo-immagine alla creazione di uno strumento di inpainting all’avanguardia, ecco alcuni dei nostri progetti preferiti:

Abbiamo anche collaborato con Google Cloud (che ha generosamente fornito il calcolo) per fornire orientamento tecnico e tutoraggio per aiutare la comunità a addestrare modelli di diffusione con TPU (consulta qui un riepilogo dell’evento). Ci sono stati molti modelli interessanti come questa demo che combina ControlNet con Segment Anything.

Infine, siamo stati felici di ricevere contributi al nostro codice da oltre 300 collaboratori, che ci hanno permesso di collaborare insieme nel modo più aperto possibile. Ecco solo alcuni dei contributi dalla nostra community:

  • Modifica del modello da @bahjat-kawar, una pipeline per modificare le assunzioni implicite di un modello
  • LDM3D di @estelleafl, un modello di diffusione per immagini 3D
  • DPMSolver di @LuChengTHU, miglioramenti per migliorare significativamente la velocità di inferenza
  • Diffusione personalizzata di @nupurkmr9, una tecnica per generare immagini personalizzate con poche immagini di un soggetto

Oltre a questi, un sentito ringraziamento ai seguenti collaboratori che ci hanno aiutato a lanciare alcune delle funzionalità più potenti di Diffusers (in nessun ordine particolare):

  • @takuma104
  • @nipunjindal
  • @isamu-isozaki
  • @piEsposito
  • @Birch-san
  • @LuChengTHU
  • @duongna21
  • @clarencechen
  • @dg845
  • @Abhinay1997
  • @camenduru
  • @ayushtues

Costruire prodotti con 🤗 Diffusers

Nell’ultimo anno, abbiamo anche visto molte aziende scegliere di costruire i loro prodotti su 🤗 Diffusers. Ecco un paio di prodotti che hanno attirato la nostra attenzione:

  • PlaiDay: “PlaiDay è un’esperienza di Intelligenza Artificiale generativa in cui le persone collaborano, creano e si connettono. La nostra piattaforma sblocca la creatività illimitata della mente umana e fornisce un telaio sociale sicuro e divertente per l’espressione.”
  • Previs One: “Previs One è una pipeline di diffusione per il storyboarding cinematografico e la previsualizzazione – comprende le regole compositive del cinema e della televisione proprio come le pronuncerebbe un regista.”
  • Zust.AI: “Sfruttiamo l’Intelligenza Artificiale generativa per creare foto di prodotti di qualità da studio per marchi e agenzie di marketing.”
  • Dashtoon: “Dashtoon sta costruendo una piattaforma per creare e consumare contenuti visivi. Abbiamo più pipeline che caricano più LORAs, più reti di controllo e persino più modelli alimentati da diffusori. Diffusers ha ridotto notevolmente la distanza tra un ingegnere di prodotto e un ingegnere di ML, consentendo a dashtoon di consegnare valore all’utente più velocemente e meglio.”
  • Virtual Staging AI: “Riempire stanze vuote con bellissimi mobili utilizzando modelli generativi.”
  • Hexo.AI: “Hexo AI aiuta i marchi a ottenere un ROI più elevato sugli investimenti in marketing attraverso il Marketing Personalizzato su larga scala. Hexo sta costruendo un motore di generazione di campagne proprietario che acquisisce i dati dei clienti e genera creatività personalizzate conformi al marchio.”

Se state costruendo prodotti su 🤗 Diffusers, saremmo felici di parlare per capire come possiamo migliorare la libreria insieme! Non esitate a contattare [email protected] o [email protected].

Guardando avanti

Mentre celebriamo il nostro primo anniversario, siamo grati alla nostra community e ai collaboratori open-source che ci hanno aiutato a arrivare così lontano in così poco tempo. Siamo felici di condividere che presenteremo una demo di 🤗 Diffusers a ICCV 2023 quest’autunno – se parteciperete, veniteci a trovare! Continueremo a sviluppare e migliorare la nostra libreria, rendendola più facile da usare per tutti. Siamo anche entusiasti di vedere cosa la community creerà in seguito con i nostri strumenti e risorse. Grazie per essere stati parte del nostro percorso finora e non vediamo l’ora di continuare a democratizzare il buon machine learning insieme! 🥳

❤️ Il team di Diffusers


Riconoscimenti: Grazie a Omar Sanseviero, Patrick von Platen, Giada Pistilli per le loro recensioni e a Chunte Lee per la progettazione della miniatura.