Kohaku is a cute dragon girl.

The road to the HDM

By kblueleaf on Aug 15, 2025
Image post

HDM之路:小,到大,到小

距離我上次發blog也已經過了將近一年,剛好最近又完成了一個大專案的階段性成果。也是時候來聊一下最近的事情,以及這個專案了。

Home Diffusion Model

  HDM:Home Diffusion Model。顧名思義,HDM是一個在家練出來的Diffusion Model。簡單來講,我用家裡的四張RTX5090從頭練了一個t2i model。而效果正如上方的gallery所表現的那樣,其實性能並不差。而這個模型只有340M的大小(Diffusion部分)。

  講到這裡相信各位讀者已經想問那個問題了:「HOW?」。如果各位讀者對於讀一個更技術的文檔或者直接讀源碼有興趣,可以直接移駕到我的GitHub/HuggingFace倉庫:

但相信各位讀者不是為了單純聽我解釋一遍怎麼做HDM,以及HDM能做什麼。而我也是這樣打算的,接下來就讓我們來聊一下這整段故事吧。

開端

  2015年,Diffusion Model第一次被提出……,好像有點遠了。2022下半年,Stable Diffusion v1.x以及相應的各種微調(waifudiffusion, novelai等)模型橫空出世,開啟了t2i的第一波熱潮。儘管我在此之前也對Generative Model很感興趣,也嘗試過自行訓練諸如GAN或VAE之類的生成式模型,但是都沒有什麼好結果。而在看到NovelAI與Stable Diffusion之後我拜讀了LDM與DDPM的論文,而讀完這兩篇論文之後我只有一個感想:「這看起來比GAN好練太多了吧」。而我的感覺被證明是對的,僅僅花了我數個小時我就成功實現了我的第一個,能生成能看結果的Generative Model。而它是一個訓練在torchvision內建的car資料集的uncond gen: 1755492297869

  所謂萬事起頭難,有了這樣一個簡單的成功經驗反而燃起了我的信心,認為我總有一天能訓練出我自己的文生圖模型。不過在真的嘗試之前我也是循序漸進的復現了不少東西,從CelebA到LSUN系列(church/bedroom等),再到imagenet-1k的class cond generation。儘管這幾個項目都相當成功,但是到了Text-to-Image的時候難度卻提升了不只一個等級。於是我一邊研究著現有文生圖模型的微調(這時我創造出了LyCORIS專案),一邊嘗試以更加侷限但接近文生圖的配置來訓練生圖模型。

這個截圖應該是我第一次訓練「文生圖」模型,或者說:「標籤生圖」模型: 1755492918868 這個模型的訓練是以Danbooru Tag為輸入來進行訓練的,我將每個tag打上編號,將tag序列當成編號序列送入Embedding層來當作生成模型的「條件」使用。生成出這些圖的模型花了36 RTX4090 hour來訓練。其實能有這樣的效果在當時已經算是相當不錯了。畢竟我當時使用的是UNet with Transformer (與SD的概念一致)來進行訓練。

© Copyright 2025 by Kohaku BlueLeaf.
All media on this site, including text, images, and videos, is licensed under CC BY-NC-ND 4.0