【AI繪畫】Stable-Diffusion入門級(jí)實(shí)踐調(diào)研

前言
從2022年8月Stable diffusion開源以來,其論文和投入實(shí)踐的技術(shù)井噴式爆發(fā),AI圖片生成的能力也在肉眼可見的變強(qiáng),大量高質(zhì)量的落地實(shí)踐已經(jīng)出現(xiàn)。
目前社區(qū)最常用的解決方案 stable-diffusion-webui ,在社區(qū)努力下已支持眾多擴(kuò)展型的模型和插件,近期最熱門的應(yīng)用場景是ControlNet和Lora實(shí)現(xiàn)的高可控圖像生成。這里先進(jìn)行一個(gè)總的介紹。
一、綜述
首先,我們可以明確一下目前的AI畫圖在理論上可以做什么:
1.使用已有的大模型出發(fā),從二次元到真人再到場景,只要是能畫出來的都能畫。

2.足夠的素材進(jìn)行訓(xùn)練以后,就可以學(xué)習(xí)到一個(gè)人物的特征或者畫師的畫風(fēng)。

3.那么,目前的AI畫圖無法做到什么:
oneshot,即輸入單個(gè)樣本訓(xùn)練后,即產(chǎn)出符合對(duì)應(yīng)特征的圖片。

大模型,標(biāo)準(zhǔn)的 latent-diffusion 模型。擁有完整的 TextEncoder、U-Net、VAE。我們最為熟知的NovelAI、stable-diffusion-2都屬于大模型。
用于微調(diào)大模型的小型模型。Textual inversion (Embedding模型)、Hypernetwork模型、LoRA模型。
二、模型 / 結(jié)構(gòu) 介紹
關(guān)于Stable Diffusion是如何工作的,這部分內(nèi)容較為理論,感興趣的話可以移步What are Diffusion Models?。
作為普通使用者的我們,只需要知道,在Stable Diffusion中,不同的模型會(huì)帶來不同的畫風(fēng)、認(rèn)識(shí)不同的概念(人物/物體/動(dòng)作),這是模型眾多的原因。常說的 NovelAI 就是特指 NovelAI 制作的一款 日系二次元特化 的模型。
Problem0 模型是什么
常見的模型可以分為兩大類:
Problem1 ControlNet是什么
ControlNet 直譯就是控制網(wǎng),通過額外的輸入來控制預(yù)訓(xùn)練的大模型。解決了文生圖大模型的關(guān)鍵問題:單純的關(guān)鍵詞的控制方式無法滿足對(duì)細(xì)節(jié)控制的需要。 ControlNet 把每一種不同類別的輸入分別訓(xùn)練了模型,目前公開的有以下模型: 邊緣檢測(cè)、深度信息估算、線條檢測(cè)、法線貼圖、動(dòng)作檢測(cè)、涂鴉、語義分割。
ControlNet大大加強(qiáng)了stable-diffusion生成圖片的可控性和穩(wěn)定性,使其生成圖能更好的滿足美術(shù)的要求,進(jìn)而在產(chǎn)業(yè)中落地。
一些模型的概要:
Canny邊緣檢測(cè):通過從原始圖片中邊緣檢測(cè), 提取線稿, 來生成同樣構(gòu)圖的畫面
MiDaS/LeReS深度信息估算:通過提取原始圖片中的深度信息,可以生成具有同樣深度結(jié)構(gòu)的圖。
HED邊緣檢測(cè)(保留細(xì)節(jié)):類似canny,但是邊緣處理更細(xì)致. 相對(duì)于使用普通的 img2img ,細(xì)節(jié)上更加還原。
M-LSD線條檢測(cè)(M-LSD line detection):線段識(shí)別,對(duì)直線識(shí)別較好,適用于建筑場景。
法線貼圖(Normal map):用于3d模型中法線貼圖生成,可以得到normal圖一致的模型
OpenPose姿態(tài)檢測(cè):人物動(dòng)作pose檢測(cè), 用于人物動(dòng)作生成. 對(duì)人物設(shè)計(jì)和動(dòng)畫十分有利

PiDiNet邊家檢測(cè)(像素差分網(wǎng)絡(luò),可嘗試配合HED模型)
涂鴉/偽涂鴉(scribble):AI自由度更大
語義分割(Semantic segmentation):對(duì)圖像進(jìn)行語義分割識(shí)別, ai能更好的理解每個(gè)部分是什么,適用于精準(zhǔn)控制空間構(gòu)圖

Problem2?LoRA能做什么
風(fēng)格融合/替換

三.熱門應(yīng)用場景 + 用例
1.高可控圖像生成

2. 圖生圖 / 視頻to視頻

3.三渲二

4.人物設(shè)計(jì)(輔助生成三視圖)



資源調(diào)度方面,多用戶使用的場景,存在資源擠占的問題。在產(chǎn)品形態(tài)上需要考慮限制模型的使用、生成圖片請(qǐng)求的并發(fā)量。
版權(quán)問題,目前有版權(quán)意識(shí)較強(qiáng)的真人、畫師、coser已經(jīng)對(duì)AI學(xué)習(xí)自己的作品產(chǎn)生了嚴(yán)重的抵觸。在一些敏感領(lǐng)域,尤其是真人圖像生成上,要注意侵犯肖像權(quán)的問題。
技術(shù)上仍然存在眾多未實(shí)現(xiàn)的功能。如上下文相關(guān)的movie2moive,甚至是text2moive,這部分需要解決現(xiàn)有的movie2moive存在的問題,即逐幀畫面之間上下文無關(guān)。兩種解決思路:大批量生成單幀圖片然后進(jìn)行挑選,或者改進(jìn)現(xiàn)有的模型。
來自有關(guān)部門的監(jiān)管政策。
四.可行性分析
(一些商業(yè)數(shù)據(jù)&思路在此就不表了)
1.幾個(gè)落地場景可能存在的問題
2.成本可行性
根據(jù)第三方的性能基準(zhǔn)測(cè)試(見下圖),RTX4090在512*512畫幅下,每秒內(nèi)sampling迭代次數(shù)最高為28.9。
社區(qū)常見的sampling step為20,可以理解為RTX4090的小畫幅圖片的出圖時(shí)間是小于1s的。
3.成本估算
a.硬件&對(duì)應(yīng)功耗:(略估一下,編錯(cuò)了輕噴)
假設(shè)單卡4090滿載運(yùn)行,則
電費(fèi): RTX 4090的功耗在游戲時(shí)大約為450-500瓦,在FurMark測(cè)試時(shí)大約為470-496瓦。
如果假設(shè)滿載運(yùn)行一年的 時(shí)間為8760小時(shí),那么RTX 4090一年的電量消耗為:500瓦 x 8760小時(shí) = 4380千瓦時(shí)
RTX 4090一年的電費(fèi)消耗為:4380千瓦時(shí) x 1.232元 = 5394.6元
顯卡損耗:(以ROG RTX4090 TUF 4090作為標(biāo)準(zhǔn),首發(fā)價(jià)15000)
假設(shè)顯卡一直滿載運(yùn)行,則估算顯卡壽命為2年 按照使用一年折算,RTX4090最小殘值為 首發(fā)價(jià)*(1-5%故障率)*(首發(fā)價(jià)*剩余壽命/設(shè)計(jì)壽命)= 7125
b.開源授權(quán):
stable-diffusion-webui使用AGPL-3.0 開源協(xié)議,在不進(jìn)行二次分發(fā)的情況下無需授權(quán)或開源。
五、個(gè)人實(shí)踐
個(gè)人實(shí)驗(yàn)機(jī)配置:
CPU:13th Gen Intel(R) Core(TM) i7-13700KF
GPU:NVIDIA GeForce RTX 3070
Memory:32G DDR5
軟件配置: Stable Diffusion Webui
xformers: 0.0.14.dev
生成參數(shù): AOM3大模型 + ControlNet + Lora,輸出畫幅512*512,耗時(shí)均值為4s。
六、魔導(dǎo)書指路
【AI繪畫】從零開始的AI繪畫入門教程——魔法導(dǎo)論
【AI繪畫】啟動(dòng)器正式發(fā)布!一鍵啟動(dòng)/修復(fù)/更新/模型下載管理全支持!
【AI繪畫】輔助插件幫你隨機(jī)生成人物(以及三視圖):Wildcards搭配LoRA以及ControlNet使用技巧
【AI繪畫】AI圖像生成技術(shù)時(shí)間軸(截至2023年2月28日)