Stable Diffusion WebUI: differenze tra le versioni
(Creata pagina con " === Rimuovere il background === [https://stable-diffusion-art.com/remove-background/ tutorial originale]") |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
Per effettuare l'analisi delle performance di Stable Diffusion, utilizzaremo la seguente applicazione, realizzata grazie alla libreria [[Gradio]]. | |||
== Overview Parametri Globali == | |||
[[File:Overview global.png|800px]] | |||
Questi sono i parametri globali di Stable Diffusion che esercitano un impatto generale sulle generazioni indipendentemente dal tool utilizzato. Abbiamo, da sinistra verso destra: | |||
*'''Stable Diffusion checkpoint''' | |||
** ''Cos'è'': La selezione del checkpoint stabilisce quale versione del modello di Stable Diffusion viene impiegata per il processo di refining. Di default viene proposto realisticVisionV51_v51VAE.safetensors [15012c538f], specializzato sulla generazione di immagini realistiche, ma è possibile utilizzare una miriade di variazioni diverse del modello. Ne puoi trovare molti su Civit AI [https://civitai.com/] | |||
** ''A cosa corrisponde dell'Architettura'': Consente di selezionare lo stato specifico dei pesi applicati al modello pre-addestrato di Stable Diffusion, risultato di un [[fine-tuning]] finalizzato all'ottenimento di uno stile in particolare. | |||
** ''Come impatta l'Output'': Cambiare il checkpoint cambierà lo stile e, potenzialmente, la qualità delle immagini generate. | |||
*'''SD VAE''' | |||
** ''Cos'è'': la [[VAE]] serve in questo caso a migliorare la qualità dell'immagine generata, per esempio attraverso l'apprendimento di una [[rappresentazione latente]] più efficiente dei dati. In sostanza, agisce su come i dati vengono compressi e ricostruiti durante il processo di generazione. | |||
** ''A cosa corrisponde dell'Architettura'': | |||
Nella funzione di caricamento del modello, VAE SD è un argomento che se attivo inizializza il [[ciclo for]] qui sotto: | |||
def load_model_from_config(config, ckpt, verbose=False, vae_sd=None): | |||
print(f"Loading model from {ckpt}") | |||
pl_sd = torch.load(ckpt, map_location="cpu") | |||
msg = None | |||
if "global_step" in pl_sd: | |||
msg = f"This is global step {pl_sd['global_step']}. " | |||
if "model_ema.num_updates" in pl_sd["state_dict"]: | |||
msg += f"And we got {pl_sd['state_dict']['model_ema.num_updates']} EMA updates." | |||
global_step = pl_sd.get("global_step", "?") | |||
sd = pl_sd["state_dict"] | |||
if vae_sd is not None: | |||
for k in sd.keys(): | |||
if "first_stage" in k: | |||
sd[k] = vae_sd[k[len("first_stage_model."):]] | |||
** ''Come impatta l'Output'': L'impatto dell'attivazione del VAE ("automatic") rispetto alla sua disattivazione ("none") varia a seconda del modello utilizzato, ma in generale si traduce in una migliore nitidezza, coerenza e qualità visiva generale. | |||
*'''[[Clip Skip]]([https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5674])''' | |||
** ''Cos'è'': Determina a quanti strati prima dell'ultimo viene interrotta l'elaborazione. | |||
** ''A cosa corrisponde dell'Architettura'': Va a troncare semplicemente il processo generativo. | |||
** ''Come impatta l'Output'': Più è alto il clip skip più la generazione sembra fermarsi a stadi molto primordiali di elaborazione, risultando in una generazione che pur essendo di qualità normale a livello di risoluzione, risulta completamente scollegata dal prompt. Alzare il clip skip può essere utile quando vogliamo generare un'immagine molto generica, la cui realizzazione non necessita che vengano scomodate molte sottocategorie. Ad esempio, se voglio un'immagine semplice di una mucca, senza necessità di particolari dettagli, probabilmente si potrà ottenere un risultato soddisfacente anche senza sfruttare tutti gli strati della rete. | |||
{| class="wikitable" | |||
|+ | |||
|[[File:Acowcs1.png|miniatura|100x100px|Clip Skip 1]] | |||
|[[File:Acowcs3.png|miniatura|100x100px|Clip Skip 3]] | |||
|[[File:Acowcs5.png|miniatura|100x100px|Clip Skip 5]] | |||
| | |||
|- | |||
|[[File:Acowcs7.png|miniatura|100x100px|Clip Skip 7]] | |||
|[[File:Acowcs9.png|miniatura|100x100px|Clip Skip 9]] | |||
|[[File:Acowcs11.png|miniatura|100x100px|Clip Skip 11]] | |||
|[[File:Acowcs12.png|miniatura|100x100px|Clip Skip 12]] | |||
|} | |||
* Infine, in basso, troviamo la '''Barra di selezione del [[Tool]] | |||
== Tool == | |||
* [[txt2img]] | |||
* img2img | |||
[[Category:Tool]] | |||
Versione delle 09:13, 12 mar 2024
Per effettuare l'analisi delle performance di Stable Diffusion, utilizzaremo la seguente applicazione, realizzata grazie alla libreria Gradio.
Overview Parametri Globali
Questi sono i parametri globali di Stable Diffusion che esercitano un impatto generale sulle generazioni indipendentemente dal tool utilizzato. Abbiamo, da sinistra verso destra:
- Stable Diffusion checkpoint
- Cos'è: La selezione del checkpoint stabilisce quale versione del modello di Stable Diffusion viene impiegata per il processo di refining. Di default viene proposto realisticVisionV51_v51VAE.safetensors [15012c538f], specializzato sulla generazione di immagini realistiche, ma è possibile utilizzare una miriade di variazioni diverse del modello. Ne puoi trovare molti su Civit AI [1]
- A cosa corrisponde dell'Architettura: Consente di selezionare lo stato specifico dei pesi applicati al modello pre-addestrato di Stable Diffusion, risultato di un fine-tuning finalizzato all'ottenimento di uno stile in particolare.
- Come impatta l'Output: Cambiare il checkpoint cambierà lo stile e, potenzialmente, la qualità delle immagini generate.
- SD VAE
- Cos'è: la VAE serve in questo caso a migliorare la qualità dell'immagine generata, per esempio attraverso l'apprendimento di una rappresentazione latente più efficiente dei dati. In sostanza, agisce su come i dati vengono compressi e ricostruiti durante il processo di generazione.
- A cosa corrisponde dell'Architettura:
Nella funzione di caricamento del modello, VAE SD è un argomento che se attivo inizializza il ciclo for qui sotto:
def load_model_from_config(config, ckpt, verbose=False, vae_sd=None): print(f"Loading model from {ckpt}") pl_sd = torch.load(ckpt, map_location="cpu") msg = None if "global_step" in pl_sd: msg = f"This is global step {pl_sd['global_step']}. " if "model_ema.num_updates" in pl_sd["state_dict"]: msg += f"And we got {pl_sd['state_dict']['model_ema.num_updates']} EMA updates." global_step = pl_sd.get("global_step", "?") sd = pl_sd["state_dict"] if vae_sd is not None: for k in sd.keys(): if "first_stage" in k: sd[k] = vae_sd[k[len("first_stage_model."):]]
- Come impatta l'Output: L'impatto dell'attivazione del VAE ("automatic") rispetto alla sua disattivazione ("none") varia a seconda del modello utilizzato, ma in generale si traduce in una migliore nitidezza, coerenza e qualità visiva generale.
- Clip Skip([2])
- Cos'è: Determina a quanti strati prima dell'ultimo viene interrotta l'elaborazione.
- A cosa corrisponde dell'Architettura: Va a troncare semplicemente il processo generativo.
- Come impatta l'Output: Più è alto il clip skip più la generazione sembra fermarsi a stadi molto primordiali di elaborazione, risultando in una generazione che pur essendo di qualità normale a livello di risoluzione, risulta completamente scollegata dal prompt. Alzare il clip skip può essere utile quando vogliamo generare un'immagine molto generica, la cui realizzazione non necessita che vengano scomodate molte sottocategorie. Ad esempio, se voglio un'immagine semplice di una mucca, senza necessità di particolari dettagli, probabilmente si potrà ottenere un risultato soddisfacente anche senza sfruttare tutti gli strati della rete.
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
- Infine, in basso, troviamo la Barra di selezione del Tool
Tool
- txt2img
- img2img