Sampling method (Stable Diffusion): differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 2: | Riga 2: | ||
Attualmente, ci sono ben 38 opzioni di Sampling methods disponibili in AUTOMATIC1111 (a Giugno 2023 erano solo [https://stable-diffusion-art.com/samplers/ 19]!). | Attualmente, ci sono ben 38 opzioni di Sampling methods disponibili in AUTOMATIC1111 (a Giugno 2023 erano solo [https://stable-diffusion-art.com/samplers/ 19]!). | ||
Il campionamento è una componente fondamentale nel processo interno di un modello come [[Stable Diffusion]] e alterarne il metodo può influenzare diversi aspetti della generazione, come la nitidezza, la responsività, la velocità di generazione e la stabilità del processo | Il campionamento è una componente fondamentale nel processo interno di un modello come [[Stable Diffusion]] e alterarne il metodo può influenzare diversi aspetti della generazione, come la nitidezza, la responsività, la velocità di generazione e la stabilità del processo. | ||
Di base questi metodi guidano l'algoritmo su come rimuovere il rumore casuale da cui parte la generazione e come applicare i dettagli in modo che l'immagine finale corrisponda all'intenzione espressa nella prompt. | |||
Per svolgere un'overview concisa ma efficace, possiamo classificare i vari approcci nel seguente modo: | Per svolgere un'overview concisa ma efficace, possiamo classificare i vari approcci nel seguente modo: | ||
Riga 53: | Riga 55: | ||
== Sperimentazione == | == Sperimentazione == | ||
Quando è stato svolta la ricerca di Stable Diffusion Art non erano ancora stati implementati i metodi di campionamento di tipo Turbo, perciò nel mostrarne le performance ne approfittiamo per dimostrare come la velocità dei processi sacrifichi tendenzialmente la qualità del risultato e se gli sforzi più recenti siano stati in grado di colmare il gap. | |||
{| class="wikitable" | |||
|+ | |||
![[File:Eurler a .png|miniatura|Euler a: 8.8 secondi]] | |||
![[File:Eulero a Turbo.png|miniatura|Euler a Turbo: 8.8 secondi]] | |||
|} | |||
{| class="wikitable" | |||
|+ | |||
![[File:DPM ++ 2M.png|miniatura|DPM ++ 2M: 8.9 secondi]] | |||
![[File:DPM ++ 2M Turbo.png|miniatura|DPM ++ 2M Turbo: 8.7 secondi]] | |||
|} | |||
Facendo prove dirette, le versioni Turbo degli algoritmi sembrano in effetti a parità di tempo fornire dei risultati più corretti e dettagliati. Il prossimo paragone che potrebbe essere interessante sarebbe tra gli approcci Turbo e quelli Adattivi/Esponenziali. |
Versione delle 17:09, 15 mar 2024

Attualmente, ci sono ben 38 opzioni di Sampling methods disponibili in AUTOMATIC1111 (a Giugno 2023 erano solo 19!).
Il campionamento è una componente fondamentale nel processo interno di un modello come Stable Diffusion e alterarne il metodo può influenzare diversi aspetti della generazione, come la nitidezza, la responsività, la velocità di generazione e la stabilità del processo.
Di base questi metodi guidano l'algoritmo su come rimuovere il rumore casuale da cui parte la generazione e come applicare i dettagli in modo che l'immagine finale corrisponda all'intenzione espressa nella prompt.
Per svolgere un'overview concisa ma efficace, possiamo classificare i vari approcci nel seguente modo:
- Metodi di Base (DPM e DDPM):
- DPM2
- DDPM
- DDPM Karras
- Metodi Avanzati DPM++ (variazioni con ulteriori miglioramenti):
- DPM++ 2M
- DPM++ SDE
- DPM++ 2.5 a
- DPM++ 2M Karras
- Metodi che utilizzano SDE:
- DPM++ SDE Karras
- DPM++ 2M SDE Karras
- DPM++ 2M SDE Exponential
- DPM++ 2M SDE Heun
- DPM++ 2M SDE Heun Karras
- DPM++ 2M SDE Heun Exponential
- Variazioni Exponential e Turbo (per accelerare il processo):
- DPM++ 2M SDE Exponential
- DPM++ 2M SDE Heun Exponential
- DPM++ 2M Turbo
- DPM++ 2M SDE Turbo
- Metodi SGM (Smooth Gradient Methods o varianti):
- Euler SGMUniform
- Euler A SGMUniform
- DPM++ 2M SGMUniform
- DPM++ 2M SDE SGMUniform
- Metodi Euler e Heun (basati su schemi numerici per la soluzione di equazioni differenziali):
- Euler
- Heun
- Euler A Turbo
- Metodi LMS (probabilmente riferito a Least Mean Squares per l'ottimizzazione):
- LMS
- LMS Karras
- Metodi per il Restart e l'Adattabilità:
- Restart
- DPM adaptive
- Variazioni PLMS e UniPC (possibili ottimizzazioni o modalità di generazione specifiche):
- PLMS
- UniPC
In certi nomi possiamo notare una "a" (Euler a, DPM++ 2S a, ecc.). Essa sta per "ancestrale" e identifica gli algoritmi di tipo stocastico (Monte Carlo).
Nell'approcciare Stable Diffusion è bene saper individuare in base alle proprie esigenze quali sono i metodi di campionamento più adatti. Le due caratteristiche principali che contraddistinguono la performance di ciascun algoritmo sono la velocità e la qualità. Puoi trovare un confronto dei vari modelli che prende in considerazione anche la stabilità qui: [1].
Stable Diffusion Art ha inoltre effettuato delle misurazioni nell'estate del 2023 per eseguire un'analisi comparativa dei vari approcci[2]:


Sperimentazione
Quando è stato svolta la ricerca di Stable Diffusion Art non erano ancora stati implementati i metodi di campionamento di tipo Turbo, perciò nel mostrarne le performance ne approfittiamo per dimostrare come la velocità dei processi sacrifichi tendenzialmente la qualità del risultato e se gli sforzi più recenti siano stati in grado di colmare il gap.
![]() |
![]() |
---|
![]() |
![]() |
---|
Facendo prove dirette, le versioni Turbo degli algoritmi sembrano in effetti a parità di tempo fornire dei risultati più corretti e dettagliati. Il prossimo paragone che potrebbe essere interessante sarebbe tra gli approcci Turbo e quelli Adattivi/Esponenziali.