吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Stable Diffusion:一種新型的深度學習AIGC模型

GPU視覺識別 ? 來源:GPU視覺識別 ? 作者:GPU視覺識別 ? 2023-04-07 10:27 ? 次閱讀

潛在擴散模型 | AIGC|Diffusion Model

圖片感知壓縮 | GAN |Stable Diffusion

隨著生成型AI技術的能力提升,越來越多的注意力放在了通過AI模型提升研發效率上。業內比較火的AI模型有很多,比如畫圖神器Midjourney、用途多樣的Stable Diffusion,以及OpenAI此前剛剛迭代的DALL-E 2。

對于研發團隊而言,盡管Midjourney功能強大且不需要本地安裝,但它對于硬件性能的要求較高,甚至同一個指令每次得到的結果都不盡相同。相對而言,Stable Diffusion因具備功能多、開源、運行速度快,且能耗低內存占用小成為更理想的選擇。

AIGC和ChatGPT4技術的爆燃和狂飆,讓文字生成、音頻生成、圖像生成、視頻生成、策略生成、GAMEAI、虛擬人等生成領域得到了極大的提升。不僅可以提高創作質量,還能降低成本,增加效率。同時,對GPU和算力的需求也越來越高,因此GPU服務器廠商開始涌向該賽道,為這一領域提供更好的支持。

本文將重點從Stable Diffusion如何安裝、Stable Diffusion工作原理及Diffusion model與GAN相比的優劣勢為大家展開詳細介紹。

poYBAGQvf2mANN5RAAKygy4tSfw736.png

Stable Diffusion如何安裝

Stable Diffusion是一個非常有用的工具,可以幫助用戶快速、準確地生成想要的場景及圖片。它的安裝也非常簡單,只需要按照上述步驟進行即可。如果您需要快速生成圖片及場景,Stable Diffusion是一個值得嘗試的工具。

一、環境準備

1、硬件方面

1)顯存

4G起步,4G顯存支持生成512*512大小圖片,超過這個大小將卡爆失敗。這里小編建議使用RTX 3090。

2)硬盤

10G起步,模型基本都在5G以上,有個30G硬盤不為過吧?現在硬盤容量應該不是個問題。

pYYBAGQvf2qASAfyAAJ6OXX-d7s415.png

2、軟件方面

1)Git

https://git-scm.com/download/win

下載最新版即可,對版本沒有要求。

2)Python

https://www.python.org/downloads/

3)Nvidia CUDA

https://developer.download.nvidia.cn/compute/cuda/11.7.1/local_installers/cuda_11.7.1_516.94_windows.exe

版本11.7.1,搭配Nvidia驅動516.94,可使用最新版。

4)stable-diffusion-webui

https://github.com/AUTOMATIC1111/stable-diffusion-webui

核心部件當然用最新版本~~但注意上面三個的版本的兼容性。

5)中文語言包

https://github.com/VinsonLaro/stable-diffusion-webui-chinese

下載chinese-all-0306.json 和 chinese-english-0306.json文件

6)擴展(可選)

https://github.com/Mikubill/sd-webui-controlnet

下載整個sd-webui-controlnet壓縮包

https://huggingface.co/Hetaneko/Controlnet-models/tree/main/controlnet_safetensors

https://huggingface.co/lllyasviel/ControlNet/tree/main/models

https://huggingface.co/TencentARC/T2I-Adapter/tree/main

試用時先下載第一個鏈接中的control_openpose.safetensors 或 第二個鏈接中的control_sd15_openpose.pth文件

7)模型

https://huggingface.co/models

https://civitai.com

可以網上去找推薦的一些模型,一般后綴名為ckpt、pt、pth、safetensors ,有時也會附帶VAE(.vae.pt)或配置文件(.yaml)。

poYBAGQvf2qAeKpXAAJRKB35jio288.png

二、安裝流程

1)安裝Git

就正常安裝,無問題。

2)安裝Python

建議安裝在非program files、非C盤目錄,以防出現目錄權限問題。

注意安裝時勾選Add Python to PATH,這樣可以在安裝時自動加入windows環境變量PATH所需的Python路徑。

3)安裝Nvidia CUDA

正常安裝,無問題。

4)安裝stable-diffusion-webui

國內需要用到代理和鏡像,請按照下面的步驟操作:

a) 編輯根目錄下launch.py文件

將https://github.com替換為https://ghproxy.com/https://github.com,即使用Ghproxy代理,加速國內Git。

b) 執行根目錄下webui.bat文件

根目錄下將生成tmp和venv目錄。

c) 編輯venv目錄下pyvenv.cfg文件

將include-system-site-packages = false改為include-system-site-packages = true。

d) 配置python庫管理器pip

方便起見,在venvScripts下打開cmd后執行如下命令:

pYYBAGQvf2uAXpMCAAEozLzwfu4571.png

xformer會安裝到venvLibsite-packages中,安裝失敗可以用pip install -U xformers命試試。

e) 安裝語言包

將文件chinese-all-0306.json 和 chinese-english-0306.json放到目錄localizations目錄中。運行webui后進行配置,操作方法見下。

f) 安裝擴展(可選)

將sd-webui-controlnet解壓縮到extensions目錄中。將control_sd15_openpose.pth文件復制到/extensions/sd-webui-controlnet/models目錄中。不同的擴展可能還需要安裝對應的系統,比如controlnet要正常使用則還需要安裝ffmpeg等。

g) 安裝模型

下載的各種模型放在modelsStable-diffusion目錄中即可。

h) 再次執行根目錄下webui.bat文件

用瀏覽器打開webui.bat所提供的網址即可運行。

poYBAGQvf2uAH8XSAAFcmzzZiKs351.png

其中提供了網址:http://127.0.0.1:7860。

打開該網址后在Settings -> User interface -> Localization (requires restart)設置語言,在菜單中選擇chinese-all-0220(前提是已經在目錄中放入了對應語言包,見上),點擊Apply Settings確定,并且點擊Reload UI重啟界面后即可。

pYYBAGQvf2yADwZfAAFOVg0-juI116.png

Stable Diffusion背后的原理

Latent Diffusion Models(潛在擴散模型)的整體框架如下圖所示。首先需要訓練一個自編碼模型,這樣就可以利用編碼器對圖片進行壓縮,然后在潛在表示空間上進行擴散操作,最后再用解碼器恢復到原始像素空間。這種方法被稱為感知壓縮(Perceptual Compression)。個人認為這種將高維特征壓縮到低維,然后在低維空間上進行操作的方法具有普適性,可以很容易地推廣到文本、音頻、視頻等領域。

poYBAGQvf22AVDLaAAOxI5iUflk235.png

在潛在表示空間上進行diffusion操作的主要過程和標準的擴散模型沒有太大的區別,所使用的擴散模型的具體實現為time-conditional UNet。但是,論文為擴散操作引入了條件機制(Conditioning Mechanisms),通過cross-attention的方式來實現多模態訓練,使得條件圖片生成任務也可以實現。

下面我們針對感知壓縮、擴散模型、條件機制的具體細節進行展開。

一、圖片感知壓縮(Perceptual Image Compression)

感知壓縮本質上是一個tradeoff。之前的許多擴散模型沒有使用這種技術也可以進行,但是原有的非感知壓縮的擴散模型存在一個很大的問題,即在像素空間上訓練模型時,如果希望生成高分辨率的圖像,則訓練空間也是高維的。感知壓縮通過使用自編碼模型,忽略高頻信息,只保留重要的基礎特征,從而大幅降低訓練和采樣階段的計算復雜度,使文圖生成等任務能夠在消費級GPU上在10秒內生成圖片,降低了落地門檻。

感知壓縮利用預訓練的自編碼模型,學習到一個在感知上等同于圖像空間的潛在表示空間。這種方法的優勢在于,只需要訓練一個通用的自編碼模型,就可以用于不同的擴散模型的訓練,在不同的任務上使用。

因此,基于感知壓縮的擴散模型的訓練本質上是一個兩階段訓練的過程,第一階段需要訓練一個自編碼器,第二階段才需要訓練擴散模型本身。在第一階段訓練自編碼器時,為了避免潛在表示空間出現高度的異化,作者使用了兩種正則化方法,一種是KL-reg,另一種是VQ-reg,因此在官方發布的一階段預訓練模型中,會看到KL和VQ兩種實現。在Stable Diffusion中主要采用AutoencoderKL這種實現。

二、潛在擴散模型(Latent Diffusion Models)

首先簡要介紹一下普通的擴散模型(DM),擴散模型可以解釋為一個時序去噪自編碼器(equally weighted sequence of denoising autoencoders)

pYYBAGQvf26AEckrAAAI6RARqN8001.png

,其目標是根據輸入

pYYBAGQvf26AEXp8AAABtQWZCfI901.png

去預測一個對應去噪后的變體,或者說預測噪音,其中

poYBAGQvf2-AIBrCAAACwCInpvc903.png

是輸入

pYYBAGQvf2-AZZ0AAAAB_ckNkUM772.png

的噪音版本。相應的目標函數可以寫成如下形式:

poYBAGQvf3CAJ3m-AAAcRXbSB8M233.png

。其中

pYYBAGQvf3CAAK8pAAABnfa_Tg0176.png

poYBAGQvf3CAFKxXAAAGqN4ft6k460.png

中均勻采樣獲得。

而在潛在擴散模型中,引入了預訓練的感知壓縮模型,它包括一個編碼器

poYBAGQvf3GAe893AAACMhiUYBk993.png

和一個解碼器

pYYBAGQvf3GAdMlzAAACqWl9Yno365.png

。這樣就可以利用在訓練時就可以利用編碼器得到

poYBAGQvf3KAQ-PVAAACS_ObOO8811.png

,從而讓模型在潛在表示空間中學習,相應的目標函數可以寫成如下形式:

pYYBAGQvf3KAd6E3AAAgmkntseU278.png

三、條件機制

除了無條件圖片生成外,我們也可以進行條件圖片生成,這主要是通過拓展得到一個條件時序去噪自編碼器(conditional denoising autoencoder)

poYBAGQvf3OAbYe9AAAJqWBQ19w014.png

來實現的,這樣一來我們就可通過

pYYBAGQvf3OAc0ryAAACVHlS5cU813.png

來控制圖片合成的過程。具體來說,論文通過在UNet主干網絡上增加cross-attention機制來實現

poYBAGQvf3SAQb5oAAAKG_yPUVE095.png

。為了能夠從多個不同的模態預處理

pYYBAGQvf3SAWAShAAACKkvUyaA175.png

,論文引入了一個領域專用編碼器(domain specific encoder)

poYBAGQvf3SAIfRCAAACeecR5E0206.png

,它用來將

pYYBAGQvf3WAblvsAAACIRRYCT0537.png

映射為一個中間表示

poYBAGQvf3WAbMidAAAN0yS_4gw498.png

,這樣我們就可以很方便的引入各種形態的條件(文本、類別、layout等等)。最終模型就可以通過一個cross-attention層映射將控制信息融入到UNet的中間層,cross-attention層的實現如下:

pYYBAGQvf3aASuFjAABYEOjF1ug790.png

其中

poYBAGQvf3aAKTYKAAAOPjGAYiM812.png

是UNet的一個中間表征。相應的目標函數可以寫成如下形式:

pYYBAGQvf3eAfNUVAAAmP23x98E635.png

四、效率與效果的權衡

分析不同下采樣因子f∈{1,2,4,8,16,32}(簡稱LDM-f,其中LDM-1對應基于像素的DMs)的效果。為了獲得可比較的測試結果,固定在一個NVIDIA A100上進行了實驗,并使用相同數量的步驟和參數訓練模型。實驗結果表明,LDM-{1,2}這樣的小下采樣因子訓練緩慢,因為它將大部分感知壓縮留給擴散模型。而f值過大,則導致在相對較少的訓練步驟后保真度停滯不前,原因在于第一階段壓縮過多,導致信息丟失,從而限制了可達到的質量。LDM-{4-16}在效率和感知結果之間取得了較好的平衡。與基于像素的LDM-1相比,LDM-{4-8}實現了更低的FID得分,同時顯著提高了樣本吞吐量。對于像ImageNet這樣的復雜數據集,需要降低壓縮率以避免降低質量。總之,LDM-4和-8提供了較高質量的合成結果。

Diffusion model與GAN相比的優劣勢

一、優點

Diffusion Model相比于GAN,明顯的優點是避免了麻煩的對抗學習。此外,還有幾個不太明顯的好處:首先,Diffusion Model可以“完美”用latent去表示圖片,因為我們可以用一個ODE從latent變到圖片,同一個ODE反過來就可以從圖片變到latent。而GAN很難找到真實圖片對應什么latent,所以可能會不太好修改非GAN生成的圖片。其次,Diffusion Model可以用來做“基于色塊的編輯”(SDEdit),而GAN沒有這樣的性質,所以效果會差很多。再次,由于Diffusion Model和score之間的聯系,它可以用來做inverse problem solver的learned prior,例如我有一個清晰圖片的生成模型,看到一個模糊圖片,可以用生成模型作為先驗讓圖片更清晰。最后,Diffusion Model可以求model likelihood,而這個GAN就很難辦。Diffusion Model最近的流行一部分也可能是因為GAN卷不太動了。雖然嚴格意義上說,Diffusion Model最早出自Jascha Sohl-Dickstein在ICML 2015就發表的文章,和GAN的NeurIPS 2014也差不了多少;不過DCGAN/WGAN這種讓GAN沃克的工作在2015-17就出了,而Diffusion Model在大家眼中做沃克基本上在NeurIPS 2020,所以最近看上去更火也正常。

二、不足之處

Diffusion model相比于GAN也存在一些缺陷。首先,無法直接修改潛在空間的維度,這意味著無法像StyleGAN中使用AdaIN對圖像風格進行操作。其次,由于沒有判別器,如果監督條件是“我想要網絡輸出的東西看起來像某個物體,但我不確定具體是什么”,就會比較困難。而GAN可以輕松地實現這一點,例如生成長頸鹿的圖像。此外,由于需要迭代,生成速度比較慢,但在單純的圖像生成方面已經得到了解決。目前在條件圖像生成方面的研究還不夠充分,但可以嘗試將Diffusion model應用于這一領域。

poYBAGQvf3iAI7zHAABVmeksc3c377.jpg

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    87

    文章

    31520

    瀏覽量

    270335
  • ChatGPT
    +關注

    關注

    29

    文章

    1568

    瀏覽量

    8061
  • AIGC
    +關注

    關注

    1

    文章

    367

    瀏覽量

    1606
收藏 人收藏

    評論

    相關推薦

    #新年新氣象,大家新年快樂!#AIGC入門及鴻蒙入門

    、配置SDK等。 3. 開發實踐**: 學習鴻蒙系統的架構和API,了解其組件化、分布式等特性。 通過官方文檔和社區資源,學習和掌握鴻蒙應用的開發流程和技巧。 總結來說,AIGC作為
    發表于 01-13 10:46

    AIGC入門及鴻蒙入門

    JDK、配置SDK等。 3. 開發實踐: 學習鴻蒙系統的架構和API,了解其組件化、分布式等特性。 通過官方文檔和社區資源,學習和掌握鴻蒙應用的開發流程和技巧。 總結來說,AIGC作為
    發表于 01-13 10:32

    如何開啟Stable Diffusion WebUI模型推理部署

    如何開啟Stable Diffusion WebUI模型推理部署
    的頭像 發表于 12-11 20:13 ?169次閱讀
    如何開啟<b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b> WebUI<b class='flag-5'>模型</b>推理部署

    AIGC系統中多個模型的切換調用方案探索

    作者:京東科技 賈玉龍 1 背景 1.1 現狀 AIGC系統中多個模型的切換調用通常指的是在同AIGC系統或應用中,可以根據不同的輸入條件或任務需求,動態地選擇并調用不同的機器
    的頭像 發表于 11-27 11:43 ?224次閱讀
    <b class='flag-5'>AIGC</b>系統中多個<b class='flag-5'>模型</b>的切換調用方案探索

    AIGC是什么及其應用 AIGC的定義和工作原理

    AIGC的定義 AIGC一種新興的技術領域,它結合了機器學習、自然語言處理(NLP)、計算機視覺和音頻處理等多個子領域。AIGC的目標是使
    的頭像 發表于 11-22 16:00 ?1265次閱讀

    FPGA加速深度學習模型的案例

    FPGA(現場可編程門陣列)加速深度學習模型是當前硬件加速領域的個熱門研究方向。以下是些FPGA加速
    的頭像 發表于 10-25 09:22 ?356次閱讀

    AI大模型深度學習的關系

    AI大模型深度學習之間存在著密不可分的關系,它們互為促進,相輔相成。以下是對兩者關系的介紹: 深度
    的頭像 發表于 10-23 15:25 ?1274次閱讀

    深度神經網絡模型量化的基本方法

    深度神經網絡模型量化是深度學習領域中的一種重要優化技術,旨在通過減少模型參數的精度(即從高精度浮
    的頭像 發表于 07-15 11:26 ?782次閱讀

    深度學習模型量化方法

    深度學習模型量化是一種重要的模型輕量化技術,旨在通過減少網絡參數的比特寬度來減小模型大小和加速推
    的頭像 發表于 07-15 11:01 ?558次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>量化方法

    深度學習中的模型權重

    深度學習充滿無限可能性的領域中,模型權重(Weights)作為其核心組成部分,扮演著至關重要的角色。它們不僅是模型
    的頭像 發表于 07-04 11:49 ?1994次閱讀

    深度學習模型訓練過程詳解

    深度學習模型訓練是個復雜且關鍵的過程,它涉及大量的數據、計算資源和精心設計的算法。訓練深度
    的頭像 發表于 07-01 16:13 ?1503次閱讀

    深度學習模型優化與調試方法

    深度學習模型在訓練過程中,往往會遇到各種問題和挑戰,如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學習
    的頭像 發表于 07-01 11:41 ?1002次閱讀

    一種利用光電容積描記(PPG)信號和深度學習模型對高血壓分類的新方法

    使用的方法將在以下部分中詳細闡述。 AlexNet是一種深度卷積神經網絡,由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton在2012年提出。整體結構由5個卷積
    發表于 05-11 20:01

    韓國科研團隊發布新型AI圖像生成模型KOALA,大幅優化硬件需求

    由此模型的核心在于其運用了“知識蒸餾”(knowledge distillation)技術,這使得開源圖像生成工具Stable Diffusion XL可大幅縮小其規模。原Stable
    的頭像 發表于 03-01 14:10 ?697次閱讀

    Stability AI試圖通過新的圖像生成人工智能模型保持領先地位

    Stability AI的最新圖像生成模型Stable Cascade承諾比其業界領先的前身Stable Diffusion更快、更強大,而Stab
    的頭像 發表于 02-19 16:03 ?995次閱讀
    Stability AI試圖通過新的圖像生成人工智能<b class='flag-5'>模型</b>保持領先地位
    新澳博娱乐城| bet365客服电话| 亿博国际| 百乐坊百家乐官网游戏| 百家乐官网桌布9人| 百家乐2号技术打法| 大发888网| 百家乐官网使用技法| 联合百家乐官网的玩法技巧和规则| 网上百家乐游戏下载| 皇冠开户网址| 百家乐官网赌博凯时娱乐| 玩百家乐新2娱乐城| 大发888被查| 摩纳哥百家乐的玩法技巧和规则| 捕鱼棋牌游戏| 狮威百家乐官网娱乐场| 百家乐牌具公司| 百家博彩网| 富二代百家乐官网的玩法技巧和规则 | 泰安市| 百家乐官网公式与赌法| 在线百家乐策| 百家乐官网太阳城怎么样| 博狗百家乐真实| 本溪棋牌娱乐网| 现场百家乐官网牌路分析| 国际娱百家乐的玩法技巧和规则| 平和县| 百家乐庄闲的分布| 青鹏棋牌官网| 澳门百家乐官网的玩法技巧和规则| 模拟百家乐下| 百家乐官网怎么赢对子| 百家乐闲和庄| 百家乐官网单跳打法| 金宝博百家乐娱乐城| 山阳县| 百家乐游戏程序出售| 垦利县| 百家乐真人游戏娱乐|