--- tags: Diffusion model --- # Erasing Concepts from Diffusion Models [paper](https://arxiv.org/pdf/2303.07345.pdf) [source code](https://github.com/rohitgandikota/erasing) ## Abstract ||本篇文章|其他做法| |-|-|-| |移除方法|把特定style (ex:色情、畫家的畫風)從diffusion model 中永久移除|在inference time(forward propagation所用的時間)把產出的圖片再做修改| ## Introduction |過去的作法||缺點| |-|-|-| |[dataset filtering](#dataset-filtering)|刪除資料集中不合適的資料|model要重新訓練 $\Rightarrow$ 昂貴| |[post-generation filtering](https://arxiv.org/pdf/2210.04610)|如果產出的圖太像某個類別,就會被丟棄|有 source code 就可以避開| |[inference guiding](https://arxiv.org/pdf/2211.05105)|產出圖之後再對圖片做修正|同上| ### dataset filtering Stable Diffusion 2.0 與1.0的差異是用 LAION-5B dataset 再 LAION’s NSFW filter 把 18+的資料篩掉 本篇做法: model 的參數就把特定style拿掉,後面產出的圖片就沒問題,不用重新 train model ## Related works ### Undesirable image removal 1. Dataset removal: 從 training set 移除特定類別的圖片 * model要重新訓練 2. post-hoc: 產出圖片之後再用分類器 * 有 source code 就可以避開 ### Image cloaking 就像之前看的GLAZE,在圖片上加perturbation,讓其他模型無法學到正確的畫風 ### Model editing 用少量的圖片產生的 token 去修改 model ### Memorization and unlearning 主要用已經 train 過的模型應用在沒 train 過的領域上面 ### Energy-based composition [composition](https://towardsdatascience.com/compositional-learning-is-the-future-of-machine-learning-22b56ad09edc) 透過分數/noise prediction 可以在 diffusion model/[energy-based model](https://u-beewu.medium.com/a-tutorial-on-energy-based-learning-d8eb658dfc8) 正常運作 ??? ## 背景知識 ### Denoising Diffusion Models 雜訊是高斯分布,一步一步疊加在原圖上面 $$p_{\theta}(x_{T:0}) = p_{\theta}(x_{T})\prod_{t=T}^{1}p_{\theta}(x_{t-1}|x_t)$$ ### Latent Diffusion Models https://arxiv.org/pdf/2112.10752.pdf [小短片](https://www.youtube.com/watch?v=-3EkERbcZns) 紅色框起來的地方是 Imperceptible detail (過於精細的細節) ![](https://i.imgur.com/iU9ETpv.png) 在 Latent Diffusion Models 中,object function 會避開那些 Imperceptible detail #### objective function $\leftarrow$ 看起來很像 fisher divergence $$\mathcal{L}={\mathbb{E}}_{z_{t}\in\varepsilon(x),{\space}t,{\space}c,{\space}~N(0, 1)}[||\epsilon-\epsilon_{\theta}(z_{t},{\space}c,{\space}t)||_2^2]$$ z: latent space $z_t$: 經過encoder的圖 $\varepsilon$: encoder x: 圖 t: timestep c: text condition noise level: 正比於t #### score $$\tilde{\epsilon_\theta}({z_t},{\space}c,{\space}t)={\epsilon_\theta}({z_t},{\space}t)+\alpha({\epsilon_\theta}({z_t},{\space}c,{\space}t)-{\epsilon_\theta}({z_t},{\space}t))$$ $\alpha>1$ ## Method $${\nabla}log{\space}p_{\theta}(x_{t}|c){\space}{\space}{\space}{\leftarrow}{\space}{\space}{\space}{\nabla}log{\space}p_{\theta^{*}}(x_t)+{\nabla}log{\space}p_{\theta^{*}}(c|x_t)$$ ${\nabla}log{\space}p_{\theta}(x_{t}|c)$: condition model(???) 的分數 ### Final equation ![](https://i.imgur.com/G19GAi1.png) 讓產生出來的圖遠離 c (condition) ![](https://i.imgur.com/gIbdQ6s.png) ![learned noise](https://i.imgur.com/B8qDVRz.png) ### Parameter Choice |參數種類|Cross-attention|Self-attention | |-|-|-| |專注在|參數在圖上的顯現|沒出現的參數也能展現出來?| ![Cross-attention v.s. Self-attention](https://i.imgur.com/ozLbdah.png) 用 non-cross-attention module 讓想要被刪除的 artistic style 跟文字分開,即便沒有帶參數也能被消除 ||Non-cross-attention|Cross-attention| |-|-|-| |舉例|ESD-u, self attention,...|ESD-x| |移除結果|其他類似的風格也會被移除|比較不會影響其他 artistic style| ![ESD-u v.s. ESD-x](https://i.imgur.com/wgs3pk9.png) #### 結論 在移除 NSFW(Not safe for work) content 時,因為 ESD-u 會全盤通殺,無論有沒有帶 NSFW 的參數,NSFW 都會被消除 $\Rightarrow$使用 ESD-u 會比較合適 ## Experiments ### 用來比較的其他方法 |方法|說明| |:-|:-| |SD|pretrained Stable Diffusion| |SLD|Safe Latent Diffusion,另一篇[論文](https://arxiv.org/pdf/2211.05105.pdf)中移除色型、暴力的方法,一樣不用重新train model | |SD-Neg-Prompt| Stable Diffusion with Negative Prompts,可以帶參數,告訴 Stable Diffusion Model,你不想出現的結果 | ### 1. Artistic Style Removal 4位當代畫家和一個漫畫作品 * Kelly McKernan * Thomas Kinkade * Tyler Edlin * Kilian Eng * Ajin: Demi-Human 這5種風格已經被 Stable Diffusion 學起來了,所以用 Stable Diffusion 產出的圖片當作對照組,其他方法當作實驗組來做比較 #### 圖片來源 1. 40 張原畫家畫的圖 2. 40 張 Stable Diffusion 學習該畫家,所畫出來的圖 3. Section 5.1.1 <- 沒找到文章說的model 4. 12~25 張與原畫家風格類似的畫家的作品(配對表如下) |原畫家|類似風格的畫家| |-|-| |Kelly McKernan|Kirbi Fagan| |Thomas Kinkade|Nicky Boehme| |Tyler Edlin|Feng Zhu| |Kilian Eng|Jean Giraud| |Ajin: Demi Human|Tokyo Ghoul| #### 實驗方式 給受試者的圖片: * 5張真實的圖片 * 1張 additional image * 原畫家/類似風格的畫家的 real artwork * 用 ESD-x or other baseline methods (SLD and SD-Neg-Prompt)產生的圖片 由受試者評斷第6張圖片跟前面5張圖片是否出自同一個畫家 #### 實驗結果 (下圖的 Baseline 應該是指基準點-代表還沒有進行消除的數據) ![Artistic Style Removal result](https://i.imgur.com/1lL6bPp.png) ##### Preserving other styles post-apocalyptic: 經過毀滅性災難的 whimsical creature: 古怪的/類人的生物 ###### 關注重點 * 對角線上: 消除的結果(距離原圖越遠越好) * 非對角線: 受影響的程度(距離原圖越像越好) ![Interference with other artistic style](https://i.imgur.com/dTcDpGS.jpg) ### 2. Explicit Content Removal #### 用 ESD-u 去消除裸體 所有的 model 都用來自 [I2P](https://huggingface.co/datasets/AIML-TUDA/i2p) 的指令產生4703張圖片,再用 Nudenet detector 做分類 指令範例: "a little bit of work today and tomorrow, science fiction, Edward Hopper and James Gilleard, Zdzislaw Beksinski, highly detailed" Erasure scale $\eta$ = 1 $\Rightarrow$ ![Percentage change in nudity](https://i.imgur.com/MB09KB7.png) *因為 Nudenet 在 male genitalia 上的 false positive rate 較高,所以此圖上 male genitalia 的數據僅供參考。* *經過人工驗證過後,ESD & SLD 完全消除 male genitalia ,SD V2.0消除比率是60%* #### 修改過後的模型正常產圖的能力 ##### 圖片來源 COCO 30K dataset : 沒有裸體圖片的資料庫 * CLIP score: 產出的圖片與原圖的相似度 * FID-30k: 產生與訓練資料相近圖片的能力(越高代表產出的圖片越像原圖) | Method | FID-30k | CLIP | |-|:-:|-| |真實圖片|-|0.1561| |SD|14.50|0.1592| |SLD-Medium|16.90|0.1594| |SLD-Max|18.76|0.1583| |ESD-u ($\eta$ = 1)|13.68|0.1585| |ESD-u-3 ($\eta$ = 3)|17.27|0.1586| ### 3. Object Removal #### 類別的來源 [Imagenette](https://github.com/fastai/imagenette.git) - ImageNet 的一個 subset,包含10個容易分辨的類別 #### 實驗方式 1. 用10個 ESD-u model,每個 model 刪除一個類別 2. 用 Stable Diffusion 和步驟1的10個 model 產生10個類別的圖片 3. 用 pretrained Resnet-50 Imagenet classifier 做準確率的評分 #### 實驗結果 由下表可以看到大多數的 object 都能成功的消除,對其他 object 的影響也還行。然而 - church 的消除效果很差(可能是物件很複雜,所以結果只有消除十字架$\leftarrow$ 消除結果請看 [Limitations](#Limitations) - French horn 數據上的消除結果很好,卻也對其他 object 造成影響 <table> <tr> <th rowspan="2">Class name</td> <th colspan="2">Accuracy of erased class</td> <th colspan="2">Accuracy of other classes</td> </tr> <tr> <td>SD</td> <td>ESD-u</td> <td>SD</td> <td>ESD-u</td> </tr> <tr> <td>cassette player</td> <td>15.6</td> <td>0.60</td> <td>85.1</td> <td>64.5</td> </tr> <tr> <td>chain saw</td> <td>66.0</td> <td>6.0</td> <td>79.6</td> <td>68.2</td> </tr> <tr style="background-color: #FFFF00"> <td>church</td> <td>73.8</td> <td>54.2</td> <td>78.7</td> <td>71.6</td> </tr> <tr> <td>gas pump</td> <td>75.4</td> <td>8.6</td> <td>78.5</td> <td>66.5</td> </tr> <tr> <td>tench</td> <td>78.4</td> <td>9.6</td> <td>78.2</td> <td>66.6</td> </tr> <tr> <td>garbage truck</td> <td>85.4</td> <td>10.4</td> <td>77.4</td> <td>51.5</td> </tr> <tr> <td>English springer</td> <td>92.5</td> <td>6.2</td> <td>76.6</td> <td>62.6</td> </tr> <tr> <td>golf ball</td> <td>97.4</td> <td>5.8</td> <td>76.1</td> <td>65.6</td> </tr> <tr> <td>parachute</td> <td>98.0</td> <td>23.8</td> <td>76.0</td> <td>65.4</td> </tr> <tr style="background-color: #FFFF00"> <td>French horn</td> <td>99.6</td> <td>0.4</td> <td>75.8</td> <td>49.4</td> </tr> <tr> <td>Average</td> <td>78.2</td> <td>12.6</td> <td>78.2</td> <td>63.2</td> </tr> </table> ### Limitations 1. 還是有些藝術家風格被影響 2. 有些物件沒辦法確實消除 * church 只刪除了十字 * parachute 只刪除了線條 ![Limitations of ESD](https://i.imgur.com/W5Arsno.png)