擴散模型:為什麼 AI 能從雜訊畫出圖
2-3 引導強度:為什麼「越聽話」不一定是好事
實務上用過 Stable Diffusion 的人應該都調過「CFG Scale」這個參數。這是 Classifier-Free Guidance 的強度係數,背後的公式是:
ε = ε_uncond + w · (ε_cond − ε_uncond)
其中 ε_cond 是有文字條件時預測的雜訊,ε_uncond 是沒有條件時的預測。兩者相減,得到「文字帶來的方向」;再乘上 w 倍加回去,等於把這個方向放大。w = 1 時就是普通的條件生成;w 大於 1 時,模型會更強烈地朝文字描述靠攏,代價是多樣性下降,畫面容易出現過度銳利、過度飽和的「AI 味」;w 太大時甚至會出現崩壞。這正是擴散模型在「聽話」與「自然」之間的取捨旋鈕。
三、為什麼從雜訊出發反而更穩?三個關鍵理由
回到最初的問題。很多人會直覺認為:從雜訊開始,等於從「什麼都沒有」開始,這樣怎麼可能穩定?事實恰好相反,以下三個理由解釋了為什麼這個設計如此成功。
3-1 理由一:真實資料其實躺在一個很薄的流形上
一張 512×512 的彩色圖片,在數學上是 786,432 維空間裡的一個點。但常識告訴我們,這個空間裡絕大多數的點都不是「照片」——隨便亂填像素值,得到的只會是一團彩色雜訊。真正像樣的圖像,其實集中在這個高維空間裡一個維度低得多的「流形」(manifold)上。
問題是,如果直接從隨機點開始,這個點幾乎必然離流形非常遠,模型很難知道該往哪個方向走。擴散模型的做法是:用雜訊把整個流形「抹開」,讓它變得厚重、有梯度、處處可達。在每個雜訊強度下,模型看到的都是一個被模糊化、被攤平的分布,從任何一點出發都有明確的方向可循。這就像在濃霧中爬山,路徑雖然看不清楚,但坡度始終存在,順著坡度走就能慢慢登頂。
3-2 理由二:雜訊提供了「多樣性」的來源
另一個常被忽略的重點是:雜訊不是缺陷,而是隨機性的載體。同一個文字提示詞,每次生成時使用的初始雜訊都不同,因此模型會走向不同但都合理的結果。換句話說,擴散模型的多樣性幾乎是「免費」的——只要你換一組種子,就能得到不同的圖。這與 GAN 需要靠潛在向量的分布來維持多樣性、又容易模式崩潰的處境,形成明顯對比。
同樣地,擴散模型在訓練時要覆蓋整個資料分布,損失函數會對所有樣本一視同仁。這種「全覆蓋」的特性讓它比較不容易忽略罕見樣本,生成結果的分布也更貼近訓練資料。這也是為什麼近年的圖像生成模型在「提示詞遵循度」與「多樣性」這兩項指標上,普遍優於早期的 GAN 系統。
3-3 理由三:由粗到細的生成順序,剛好符合人類作畫的直覺
如果你觀察擴散模型的生成過程(例如把中間步驟存成縮時影片),會發現一個很有趣的現象:低頻資訊先出現,高頻細節後出現。在早期步驟,模型決定的是構圖、色塊、主體的大致位置;到了後期,才開始補上紋理、毛髮、光影、反光。
這不是巧合。雜訊在頻域上是均勻分布的,而自然圖像的能量主要集中在低頻。當雜訊強度很高時,模型只能依賴那些在雜訊中仍能存活的低頻訊號;隨著雜訊被逐步去除,高頻細節才變得可辨識。這個「從大處著眼、再處理細節」的順序,恰好與人類畫師打草稿、上色、細修的流程一致,也讓生成結果在視覺上更有整體感,不容易出現局部合理但全局崩壞的狀況。
四、從 DDPM 到 Stable Diffusion:工程上發生了什麼
理解了原理,接下來要問的是:為什麼 2020 年的 DDPM 生成一張 256×256 的圖要幾十秒,而今天的模型可以在消費級顯卡上幾秒出圖?中間的差距,主要來自三個工程突破。
4-1 取樣加速:DDIM、蒸餾與一步生成
原始的 DDPM 需要走完一千步,每一步都要執行一次完整的神經網路前向傳播,這在實務上太慢。DDIM(2021)提出了一個關鍵觀察:逆向過程其實可以改寫成一個確定性的常微分方程,只要離散化夠好,二十到五十步就能得到接近的結果。後續的 DPM-Solver、Euler、Heun 等求解器,則進一步把步數壓到十步上下。
更激進的方向是「蒸餾」:讓一個新模型直接學習「從第 t 步跳到第 t/2 步」,用少量步數模擬多步的結果;一路遞迴下去,理論上可以做到一步生成。近年的「一致性模型」與「流匹配」方法也在這條路線上推進,把生成速度拉到即時水準。這也是為什麼今天的繪圖工具可以做到「邊打字邊出圖」的互動體驗。
4-2 潛空間與文字條件:為什麼 512×512 跑得動
另一個關鍵突破是 Latent Diffusion(2022,Stable Diffusion 的基礎)。研究者發現,直接在 512×512×3 的像素空間做擴散,計算量極大,但其中很多細節對最終視覺感受的貢獻其實不高。於是他們先用一個變分自編碼器(VAE)把圖像壓縮到 64×64×4 的潛空間(latent space),在這個小得多的空間裡做擴散,最後再解碼回像素。
這個設計把計算量降低了幾十倍,同時保留了生成品質,讓擴散模型得以在單張消費級顯卡上運行。與此同時,文字條件透過 cross-attention 注入到 U-Net 的中間層:文字編碼器(如 CLIP)把提示詞轉成一串向量,U-Net 的每個區塊都可以「查詢」這些向量,決定當前位置該長成什麼樣子。這種機制讓模型能夠理解「紅色的沙發放在木地板上,背後有一扇窗」這類空間關係,雖然理解力仍然有限,但已經足以支撐絕大多數創作需求。
4-3 從 U-Net 到 Transformer:架構的遷移
早期的擴散模型幾乎都使用 U-Net 作為去噪網路:它由下採樣、上採樣與跳躍連接組成,擅長處理多尺度資訊。但這個架構原本是為影像分割設計的,並非為生成而生。隨著 Transformer 在語言領域大獲成功,研究者開始嘗試用純 Transformer 取代 U-Net(即 DiT,Diffusion Transformer)。
結果顯示,Transformer 版本的擴散模型在參數規模擴大時,展現出更好的可擴展性——模型越大,生成品質越穩定提升,這正是後續大型圖像與影片生成模型的基礎。把圖像切成 patch、當成序列來處理,也讓擴散模型更容易扩展到影片、三維、音訊等不同模態,因為這些資料都可以被切成「時空中的小塊」。
五、擴散模型的邊界:它不能做什麼
擴散模型很強,但不是萬能。理解它的限制,比盲目吹捧更有價值。
第一,推理成本仍然偏高。 即便有各種加速技巧,擴散模型的計算量還是明顯高於單次前向的 GAN。生成高解析度影片時,這個差距會被時間維度放大,變成非常可觀的算力支出。
第二,評估困難。 生成模型的品質很難量化。常用的 FID 指標是比較生成分布與真實分布在特徵空間中的距離,但它與人類的視覺感受並不總是吻合。更麻煩的是,擴散模型的輸出高度依賴隨機種子與取樣步數,同一組提示詞跑十次,可能得到十種截然不同的品質。
第三,可控性與一致性的問題。 雖然 ControlNet、IP-Adapter、LoRA 等技術大幅提升了控制能力,但要精確指定「人物左手拿杯子、右手拿書、背景是傍晚的海邊」這種複雜構圖,仍然需要反覆嘗試。影片生成更是如此:角色在不同鏡頭之間的一致性、物理運動的合理性,都還是活躍的研究題目。
第四,資料與倫理的爭議。 擴散模型本質上是對訓練資料分布的統計近似,這意味著它的輸出會反映訓練資料中的偏誤。版權、肖像權、深偽(deepfake)等問題,也隨著生成品質提升而變得更加棘手。這些不是技術問題,但會決定這項技術能走多遠。
六、給想動手的你:幾個實務觀察
如果你讀完原理,想實際玩一下,以下幾點是從實務中累積出來的心得,可以少走一些冤枉路。
另外值得一提的是,理解「擴散是在預測雜訊」這件事,會改變你對某些現象的看法。例如為什麼低步數生成常常看起來「糊糊的」?因為模型還沒走到高頻細節被還原的階段。為什麼某些提示詞會讓模型產生詭異的肢體?因為在訓練資料中,這類構圖的樣本本來就少,模型對該區域的雜訊分布估計不準。這些問題不是玄學,而是資料與取樣過程的必然結果。
七、結語:雜訊其實是「還沒決定」的自由度
回到最初的問題:為什麼 AI 能從雜訊畫出圖?
答案可以濃縮成一句話:雜訊不是「沒有資訊」,而是「尚未收斂的可能性」。 在擴散模型的世界裡,一團亂數代表的是整個圖像空間中的一個隨機起點;模型學會的不是「圖長什麼樣」,而是「從任何一個起點出發,該往哪個方向走才能走到像樣的圖」。每一次去噪,都是一次小小的決定;幾十次累積下來,模糊的可能性就被雕塑成具體的畫面。
這套想法之所以迷人,在於它把「生成」這個看似神秘的過程,拆解成一連串平凡但可靠的小步驟。沒有對抗、沒有博弈,只有一個網路反覆地回答同一個問題:「這張圖裡混進了什麼雜訊?」而當它回答了足夠多次,圖就自己出現了。
下一次你看到 AI 在幾秒內畫出一張圖時,不妨想像那個過程:從一片純粹的雪花開始,一步一步,把不確定性慢慢擦掉,直到某個原本不存在的畫面,被「決定」了出來。這大概就是這個時代最接近魔法的事情之一了。
重點整理:擴散模型用「加噪—去噪」的框架,把困難的生成問題拆成許多簡單的雜訊預測問題;前向過程是固定的,逆向過程由神經網路學習;訓練目標簡化為均方誤差;生成品質靠的是多步迭代、由粗到細的頻率還原,以及文字條件的引導。它的代價是推理成本與可控性,但換來的是訓練穩定與生成多樣性。
```