★Stable Diffusion;stable;diffusion;SD;stablediffussion;sadtalker;PC集群;PC Farm;PC農(nóng)場(chǎng);GPU集群;GAN;VAE;latent;AI繪圖;AI文生圖;文生圖;圖生圖;虛擬數(shù)字人;數(shù)字人;PNDM;DDIM;U-Net;prompt;CLIP;diffusers;pipeline;NVIDIA RTX GeForce 3070;NVIDIA RTX GeForce 3080;NVIDIA RTX GeForce 4070;NVIDIA RTX GeForce 4060;i9-13900;i7-13700;i5 13400;i3 12100;i7 12700 ;i9 12900
在當(dāng)今的數(shù)字時(shí)代,人工智能正在逐步改變?nèi)藗兊纳詈凸ぷ鞣绞?。其中,Stable Diffusion作為一種深度學(xué)習(xí)技術(shù),受到廣泛關(guān)注。它能夠通過(guò)對(duì)圖像或視頻進(jìn)行處理,生成逼真的數(shù)字人視頻,為許多領(lǐng)域帶來(lái)創(chuàng)新。本文將介紹Stable Diffusion的核心基礎(chǔ)知識(shí)、如何使用它制作AI數(shù)字人視頻、本地部署的要求以及藍(lán)海大腦PC集群解決方案的應(yīng)用。
Stable Diffusion是一種擴(kuò)散模型(diffusion model)的變體,叫做“潛在擴(kuò)散模型”(latent diffusion model; LDM)。擴(kuò)散模型是在2015年推出的,其目的是消除對(duì)訓(xùn)練圖像的連續(xù)應(yīng)用高斯噪聲,可以將其視為一系列去噪自編碼器。Stable Diffusion由3個(gè)部分組成:變分自編碼器(VAE)、U-Net和一個(gè)文本編碼器。添加和去除高斯噪聲的過(guò)程被應(yīng)用于這個(gè)潛在表示,然后將最終的去噪輸出解碼到像素空間中。在前向擴(kuò)散過(guò)程中,高斯噪聲被迭代地應(yīng)用于壓縮的潛在表征。每個(gè)去噪步驟都由一個(gè)包含殘差神經(jīng)網(wǎng)絡(luò)(ResNet)中間的U-Net架構(gòu)完成,通過(guò)從前向擴(kuò)散往反方向去噪而獲得潛在表征。最后,VAE解碼器通過(guò)將表征轉(zhuǎn)換回像素空間來(lái)生成輸出圖像。
SadTalker模型是一個(gè)使用圖片與音頻文件自動(dòng)合成人物說(shuō)話動(dòng)畫(huà)的開(kāi)源模型。給模型一張圖片以及一段音頻文件,模型會(huì)根據(jù)音頻文件把傳遞的圖片進(jìn)行人臉的相應(yīng)動(dòng)作,比如張嘴,眨眼,移動(dòng)頭部等動(dòng)作。它從音頻中生成 3DMM 的 3D 運(yùn)動(dòng)系數(shù)(頭部姿勢(shì)、表情),并隱式調(diào)制一種新穎的 3D 感知面部渲染,用于生成說(shuō)話的頭部運(yùn)動(dòng)視頻。
在進(jìn)行Stable Diffusion本地部署時(shí),需要滿足一定的硬件和軟件要求。首先,需要具備高性能的GPU集群,以支持大規(guī)模的模型訓(xùn)練和推理。同時(shí),需要安裝相應(yīng)的軟件環(huán)境,包括深度學(xué)習(xí)框架、Python編程語(yǔ)言和模型庫(kù)等。此外,還需要具備相應(yīng)的網(wǎng)絡(luò)帶寬和穩(wěn)定性,以保證模型的下載和更新。
針對(duì)本地部署的硬件和軟件要求,藍(lán)海大腦高效、可靠和經(jīng)濟(jì)的PC集群解決方案采用高性能GPU節(jié)點(diǎn)和高速網(wǎng)絡(luò)互聯(lián),能夠滿足大規(guī)模模型訓(xùn)練和推理的需求。同時(shí),該方案提供多種深度學(xué)習(xí)框架和模型庫(kù),方便用戶進(jìn)行模型的訓(xùn)練和推理。此外,藍(lán)海大腦PC集群解決方案還提供全面的安全防護(hù)措施,包括數(shù)據(jù)加密、訪問(wèn)控制和安全審計(jì)等,以確保用戶數(shù)據(jù)的安全性和隱私性。
Stable Diffusion完整核心基礎(chǔ)知識(shí)
2022年AI圖像生成領(lǐng)域迎來(lái)重大突破!Stable Diffusion橫空出世,一舉擊敗傳統(tǒng)深度學(xué)習(xí),成為開(kāi)啟人工智能新紀(jì)元的強(qiáng)力引擎。它的出現(xiàn)既為工業(yè)界帶來(lái)革命性創(chuàng)新,也讓投資者看到巨大商機(jī),AI再次變得"性感"起來(lái)。下面將以通俗易懂的語(yǔ)言,向大家全方位講解Stable Diffusion的原理、應(yīng)用和訓(xùn)練技巧。
一、Stable Diffusion核心基礎(chǔ)內(nèi)容
1、Stable Diffusion模型原理
生成式模型可謂是AI界的“制假大師”,能生成看似真實(shí)的新數(shù)據(jù)。其中,GAN和Stable Diffusion可以說(shuō)是翹楚級(jí)的作品。這兩類模型通過(guò)不同的技巧,可以捕捉訓(xùn)練數(shù)據(jù)的特征分布,然后生成類似風(fēng)格的新樣本。比如在計(jì)算機(jī)視覺(jué)領(lǐng)域,可以輸出樣子逼真的新圖片;在自然語(yǔ)言處理領(lǐng)域,可以寫(xiě)出語(yǔ)義連貫的新文字。
GAN通過(guò)對(duì)抗訓(xùn)練實(shí)現(xiàn),讓生成器和判別器互相競(jìng)爭(zhēng),不斷逼近真實(shí)數(shù)據(jù)分布。而Stable Diffusion無(wú)需對(duì)抗,直接利用文本提示指導(dǎo)模型生成所需的輸出??梢哉f(shuō),GAN和Stable Diffusion如同變色龍,可根據(jù)需求變換不同的創(chuàng)作形態(tài)。為人類開(kāi)拓一個(gè)廣闊的想象空間,任何靈感都可以通過(guò)生成式模型試驗(yàn)實(shí)現(xiàn),將抽象概念轉(zhuǎn)換為具體作品。生成式模型助力人類創(chuàng)造力的釋放和拓展,正在引領(lǐng)一個(gè)前所未有的創(chuàng)作新時(shí)代。
生成式模型的主流架構(gòu)
下面主要就GAN詳細(xì)描述。由于篇幅原因,VAE和Flow-based models這里就不過(guò)多介紹。GAN的訓(xùn)練過(guò)程可比喻為一場(chǎng)精妙的舞臺(tái)表演。表演由兩大角色聯(lián)手完成——生成器與判別器。生成器扮演制作“假貨”的角色,生成盡可能逼真的假數(shù)據(jù)來(lái)欺騙判別器。判別器則扮演辨別真?zhèn)蔚慕巧?,判斷生成器輸出的?shù)據(jù)是真是假。
兩者之間展開(kāi)一場(chǎng)激烈的智慧競(jìng)賽。生成器不斷提升自己的造假技術(shù),使生成的假數(shù)據(jù)更加真實(shí)。判別器也在競(jìng)相增強(qiáng)自身的判斷能力,來(lái)識(shí)別假數(shù)據(jù)的破綻。雙方都在以極快的速度成長(zhǎng)。要取得最佳的生成效果,生成器和判別器必須同步訓(xùn)練。這也增加了GAN的訓(xùn)練難度。在訓(xùn)練初期,生成器制造的假數(shù)據(jù)非常容易被判別器識(shí)破。但隨著訓(xùn)練輪數(shù)的增多,生成器的造假水平越來(lái)越高,判別器也必須不斷自我革新來(lái)跟上生成器的進(jìn)步。
這里可以把生成器比喻為高明的畫(huà)家,不斷精進(jìn)繪畫(huà)技巧來(lái)制作逼真的藝術(shù)品。判別器則像鑒賞家,需要提高自己的審美和識(shí)別能力,才能判斷畫(huà)作的真?zhèn)?。兩者互相促進(jìn),最終畫(huà)家可以畫(huà)出真假難辨的作品。GAN訓(xùn)練過(guò)程中充滿智慧的對(duì)抗與不斷深化的博弈。表面上雙方合作煥然一新,實(shí)際都在暗地努力進(jìn)步。最終,生成器取得決定性優(yōu)勢(shì),其生成效果達(dá)到欺騙判別器的視真程度。
SD文生圖過(guò)程
Stable Diffusion (SD)模型在圖像生成任務(wù)上有著廣泛的應(yīng)用。其中最典型和基礎(chǔ)的兩大應(yīng)用分別是文生圖和圖生圖。
文生圖(Text-to-Image)是將文本描述轉(zhuǎn)換為圖像的過(guò)程??梢暂斎胍欢挝淖值絊table Diffusion模型中,描述想要生成的圖像內(nèi)容。模型會(huì)解析文本語(yǔ)義,經(jīng)過(guò)迭代逐步生成出符合文本描述的圖片。例如,輸入“天堂,巨大的,海灘”等文字,模型會(huì)聯(lián)想到天堂與海灘的概念,并圖像化出一個(gè)美麗寬廣的沙灘場(chǎng)景。文本描述越細(xì)致,生成的圖像也會(huì)越符合預(yù)期。
SD圖生圖過(guò)程
圖生圖(Image-to-Image)在文生圖的基礎(chǔ)上,額外輸入一張圖像,根據(jù)文本描述對(duì)圖片進(jìn)行修飾和豐富。例如,先輸入“天堂,巨大的,海灘”,生成一張美麗沙灘的圖片。然后繼續(xù)輸入“海盜船”,同時(shí)輸入先前生成的沙灘圖。模型將解析文本語(yǔ)義,在原圖片中添加一個(gè)海盜船,輸出一張融合文本描述的新圖像??梢钥闯觯瑘D生圖保留原圖片的主體內(nèi)容,同時(shí)根據(jù)文本提示進(jìn)行圖像的二次創(chuàng)作。
感受SD模型強(qiáng)大的生成能力,大家可能會(huì)想到生成式領(lǐng)域上一個(gè)霸主模型GAN,與GAN模型不同的是,SD模型是屬于擴(kuò)散模型,是基于latent的擴(kuò)散模型。那么擴(kuò)散模型是什么呢?擴(kuò)散模型是一種圖像生成方法,通過(guò)逐步添加細(xì)節(jié)來(lái)生成圖像。將圖像的生成過(guò)程分為多個(gè)步驟,每個(gè)步驟都會(huì)對(duì)圖像進(jìn)行一定程度的修改和完善,這樣經(jīng)過(guò)20-50次“擴(kuò)散”循環(huán)后,最終輸出的圖像就會(huì)變得更加精致。
下面是一個(gè)通過(guò) SD 模型的推理過(guò)程, 將隨機(jī)高斯噪聲矩陣逐步去燥并生成一張小別墅圖片的直觀示例。
SD模型的Inference過(guò)程
那么latent又是什么呢?基于 latent 的擴(kuò)散模型在低維隱空間中進(jìn)行“擴(kuò)散”過(guò)程,而不是在實(shí)際像素空間中,大大降低了內(nèi)存占用和計(jì)算復(fù)雜性。與常規(guī)擴(kuò)散模型不同,latent 擴(kuò)散模型的主要特點(diǎn)是在訓(xùn)練和推理過(guò)程中都集中在 latent 空間中。
2、Stable Diffusion模型的核心組件
SD模型主要由自動(dòng)編碼器(VAE),U-Net以及文本編碼器三個(gè)核心組件構(gòu)成。
SD模型文生圖流程
1)自動(dòng)編碼器(VAE)
在圖像生成任務(wù)中,VAE的編碼器可以將輸入圖片轉(zhuǎn)換為低維的特征表示,作為后續(xù)模型的輸入。這些低維特征保留原圖像的主要語(yǔ)義信息。而VAE的解碼器則可以將編碼器輸出的低維特征再次恢復(fù)為完整的圖像。解碼器實(shí)現(xiàn)了從壓縮特征到圖像空間的映射。不同的VAE結(jié)構(gòu)設(shè)計(jì),會(huì)使其在圖像中的注意力區(qū)域不同,從而影響生成圖片的細(xì)節(jié)與整體顏色風(fēng)格。
VAE的主要工作
VAE能夠高效壓縮圖像到低維潛空間后仍實(shí)現(xiàn)良好重建,其關(guān)鍵在于自然圖像具有高度規(guī)律性。例如,人臉圖像中眼睛、鼻子、嘴巴遵循特定空間結(jié)構(gòu);貓身體有固定數(shù)量四肢以及特定生物學(xué)形態(tài)。這種先驗(yàn)知識(shí)使得VAE可以只保留圖像最關(guān)鍵信息。即使在壓縮特征損失的情況下,只要生成圖像大小合適,重建后的語(yǔ)義內(nèi)容和結(jié)構(gòu)依然能夠保持可識(shí)別性。
2)U-Net
在擴(kuò)散模型生成流程中,需要逐步將隨機(jī)噪聲轉(zhuǎn)化為圖像隱特征。實(shí)現(xiàn)方式是:
- 模型預(yù)測(cè)當(dāng)前噪聲的殘差,即需要調(diào)整的量。
- 利用調(diào)度算法(如PNDM、DDIM等)結(jié)合預(yù)測(cè)殘差,重新構(gòu)建并優(yōu)化噪聲。
- 經(jīng)過(guò)多輪擴(kuò)散優(yōu)化,最終得到可生成目標(biāo)圖像的隱特征。
實(shí)現(xiàn)擴(kuò)散模型的網(wǎng)絡(luò)結(jié)構(gòu)通常采用U-Net架構(gòu)。U-Net由多層ResNet模塊串聯(lián)構(gòu)成,并在模塊之間添加交叉注意力機(jī)制。交叉注意力可用于接收額外的文本指令,指導(dǎo)圖像生成方向。
常規(guī)U-Net結(jié)構(gòu)
ResNet模塊與CrossAttention模塊的結(jié)合
3)文本編碼器
在擴(kuò)散模型中,需要輸入文本prompt,以指導(dǎo)圖像生成方向。實(shí)現(xiàn)方式是:
- 使用文本編碼器(通常是CLIP等預(yù)訓(xùn)練模型),對(duì)prompt進(jìn)行編碼,得到表示其語(yǔ)義信息的詞向量。
- 將文本詞向量通過(guò)交叉注意力機(jī)制,輸入到擴(kuò)散模型的U-Net中。
- 文本詞向量作為條件信息,引導(dǎo)U-Net的圖像生成過(guò)程,以輸出符合文本意圖的圖片。
默認(rèn)的文本編碼器是CLIP模型,可以輸出跟圖像語(yǔ)義相關(guān)的稠密詞向量。
3、Stable Diffusion推理流程
要運(yùn)行Stable Diffusion(SD),可以直接使用diffusers庫(kù)中的完整pipeline流程。
需要安裝相關(guān)依賴,使用以下命令進(jìn)行安裝:
pip install diffusers transformers scipy ftfy accelerate
導(dǎo)入diffusers庫(kù):
from diffusers import StableDiffusionPipeline
初始化SD模型并加載預(yù)訓(xùn)練權(quán)重:
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5"
如果想使用GPU加速,可以使用以下命令將模型加載到GPU上:
pipe.to("cuda")
如果GPU內(nèi)存少于10GB,可以加載float16精度的SD模型:
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", revision="fp16", torch_dtype=torch.float16)
使用pipeline來(lái)運(yùn)行SD模型。例如,給定一個(gè)prompt和一張圖片,可以使用以下代碼生成一張新的圖片:
prompt = "a photograph of an astronaut riding a horse"image = pipe(prompt).images[0]
由于沒(méi)有固定seed,每次運(yùn)行代碼都會(huì)得到一個(gè)不同的圖片。預(yù)訓(xùn)練文件夾中的模型主要由以下幾個(gè)部分組成:text_encoder和tokenizer,scheduler,unet,vae。其中text_encoder,scheduler,unet,vae分別代表SD模型的核心結(jié)構(gòu)。此外,還有一個(gè)名為T(mén)okenizer的文件夾表示標(biāo)記器。標(biāo)記器將Prompt中的每個(gè)詞轉(zhuǎn)換為一個(gè)稱為標(biāo)記(token)的數(shù)字,符號(hào)化(Tokenization)是計(jì)算機(jī)理解單詞的方式。然后通過(guò)text_encoder將每個(gè)標(biāo)記轉(zhuǎn)換為一個(gè)768維的向量稱為嵌入(embedding),用于U-Net的condition。
Tokenizer的作用
有時(shí)候在運(yùn)行完pipeline后,可能會(huì)遇到生成的圖片全黑情況。這是因?yàn)樯傻膱D片可能觸發(fā)了NSFW(不適宜內(nèi)容)機(jī)制,導(dǎo)致生成一些違規(guī)的圖片。為解決這個(gè)問(wèn)題,建議使用自定義的seed來(lái)重新生成圖片。
可以使用以下代碼來(lái)設(shè)置seed,并控制生成圖片的輸出:
#import torch
# 設(shè)置seedtorch.manual_seed(1024)
# 創(chuàng)建生成器generator = torch.Generator("cuda").manual_seed(1024)
# 使用設(shè)置的seed和生成器來(lái)生成圖片image = pipe(prompt, guidance_scale=7.5, generator=generator).images[0]
將pipeline的完整結(jié)構(gòu)梳理好之后,再對(duì)一些核心參數(shù)進(jìn)行講解:
1)num_inference_steps表示對(duì)圖片進(jìn)行噪聲優(yōu)化的迭代次數(shù)。一般來(lái)說(shuō),該值可以選擇在20到50之間,數(shù)值越大生成的圖片質(zhì)量越高,但同時(shí)也需要更多的計(jì)算時(shí)間。
2)guidance_scale代表文本提示對(duì)圖像生成過(guò)程的影響程度。具體來(lái)說(shuō),它控制著有條件生成所使用噪聲的比例。通常該值在7到8.5之間取值較好,如果取值過(guò)大,生成的圖片質(zhì)量可能會(huì)很高,但多樣性會(huì)下降。
其中代表CFG,當(dāng)越大時(shí),condition起的作用越大,即生成的圖像更和輸入文本一致,當(dāng)被設(shè)置為時(shí),圖像生成是無(wú)條件的,文本提示會(huì)被忽略。
3)輸出尺寸
除了將預(yù)訓(xùn)練的SD模型整體加載,還可以選擇加載其不同的組件。通過(guò)以下方式實(shí)現(xiàn):
從transformers庫(kù)中加載CLIPTextModel和CLIPTokenizer:
from transformers import CLIPTextModel, CLIPTokenizer
從diffusers庫(kù)中加載AutoencoderKL、UNet2DConditionModel和PNDMScheduler:
from diffusers import AutoencoderKL, UNet2DConditionModel, PNDMScheduler
還需要加載LMSDiscreteScheduler:
from diffusers import LMSDiscreteScheduler
可以單獨(dú)加載VAE模型:
vae = AutoencoderKL.from_pretrained("runwayml/stable-diffusion-v1-5", subfolder="vae")
加載CLIP模型和tokenizer:
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-vit-large-patch14")
單獨(dú)加載U-Net模型:
unet = UNet2DConditionModel.from_pretrained("runwayml/stable-diffusion-v1-5", subfolder="unet")
單獨(dú)加載調(diào)度算法:
scheduler = LMSDiscreteScheduler(beta_start=0.00085, beta_end=0.012, beta_schedule="scaled_linear", num_train=steps)
二、Stable Diffusion經(jīng)典應(yīng)用場(chǎng)景
1、文本生成圖片
輸入:prompt
輸入:圖像
Load Checkpoint模塊負(fù)責(zé)初始化SD模型的主要結(jié)構(gòu)(包括VAE和U-Net)。CLIP Text Encode代表文本編碼器,接收prompt和negative prompt作為輸入,以控制圖像的生成。Empty Latent Image表示初始化的高斯噪聲。KSampler負(fù)責(zé)調(diào)度算法以及與SD相關(guān)的生成參數(shù)。最后,VAE Decode利用VAE的解碼器將低維度的隱空間特征轉(zhuǎn)換為代表圖像的像素空間。
2、圖片生成圖片
輸入:圖像+ prompt
輸出:圖像
Load Checkpoint模塊負(fù)責(zé)對(duì)SD模型的主要結(jié)構(gòu)(包括VAE和U-Net)進(jìn)行初始化。CLIP Text Encode代表文本編碼器,接收prompt和negative prompt作為輸入,以控制圖像的生成。Load Image表示輸入的圖像。KSampler負(fù)責(zé)調(diào)度算法以及與SD相關(guān)的生成參數(shù)。
在圖片生成圖片的預(yù)處理階段,首先使用VAE編碼器將輸入圖像轉(zhuǎn)換為低維度的隱空間特征。然后添加噪聲到隱空間特征中,去噪強(qiáng)度決定加入噪聲的數(shù)量。如果去噪強(qiáng)度為0,則不添加任何噪聲;如果去噪強(qiáng)度為1,則會(huì)添加最大數(shù)量的噪聲,使得潛像成為一個(gè)完全隨機(jī)的張量。在這種情況下,圖片轉(zhuǎn)圖像的過(guò)程就完全相當(dāng)于文本轉(zhuǎn)圖像,因?yàn)槌跏紳撓裢耆请S機(jī)的噪聲。
去噪強(qiáng)度(Denoising strength)控制噪音的加入量
3、圖片inpainting
輸入:圖像+ mask + prompt
輸出:圖像
Load Checkpoint模塊負(fù)責(zé)初始化SD模型的主要結(jié)構(gòu)(包括VAE和U-Net)。CLIP Text Encode代表文本編碼器,接收prompt和negative prompt作為輸入,以控制圖像的生成。Load Image表示輸入的圖像和mask。KSampler負(fù)責(zé)調(diào)度算法以及與SD相關(guān)的生成參數(shù)。
VAE Encode使用VAE的編碼器將輸入的圖像和mask轉(zhuǎn)換成為低維度的隱空間特征。然后,VAE Decode利用VAE的解碼器將低維度的隱空間特征轉(zhuǎn)換為代表圖像的像素空間。
下面是如何進(jìn)行圖像inpainting的直觀過(guò)程:
4、使用controlnet輔助生成圖片
輸入:素描圖+ prompt
輸出:圖像
Load Checkpoint模塊負(fù)責(zé)對(duì)SD模型的主要結(jié)構(gòu)(包括VAE和U-Net)進(jìn)行初始化。CLIP Text Encode代表文本編碼器,接收prompt和negative prompt作為輸入,以控制圖像的生成。Load Image表示輸入的ControlNet需要的預(yù)處理圖。Empty Latent Image表示初始化的高斯噪聲。Load ControlNet Model負(fù)責(zé)對(duì)ControlNet進(jìn)行初始化。KSampler負(fù)責(zé)調(diào)度算法以及與SD相關(guān)的生成參數(shù)。最后,VAE Decode利用VAE的解碼器將低維度的隱空間特征轉(zhuǎn)換為代表圖像的像素空間。
使用ControlNet輔助生成圖片
5、超分辨率重建
輸入:prompt/(圖像+ prompt)
輸入:圖像
Load Checkpoint模塊負(fù)責(zé)對(duì)SD模型的主要結(jié)構(gòu)(包括VAE和U-Net)進(jìn)行初始化。CLIP Text Encode代表文本編碼器,接收prompt和negative prompt作為輸入,以控制圖像的生成。Empty Latent Image表示初始化的高斯噪聲。Load Upscale Model負(fù)責(zé)對(duì)超分辨率重建模型進(jìn)行初始化。KSampler負(fù)責(zé)調(diào)度算法以及與SD相關(guān)的生成參數(shù)。VAE Decode利用VAE的解碼器將低維度的隱空間特征轉(zhuǎn)換為代表圖像的像素空間。最后,Upscale Image將生成的圖像進(jìn)行超分辨率重建,提高其分辨率。
三、Stable Diffusion訓(xùn)練過(guò)程
Stable Diffusion的訓(xùn)練過(guò)程可以被視為在最高維度上添加噪聲和去除噪聲的過(guò)程,并在對(duì)噪聲的“對(duì)抗與攻防”中學(xué)習(xí)生成圖像的能力。具體地說(shuō),在訓(xùn)練過(guò)程中首先對(duì)干凈的樣本添加噪聲進(jìn)行處理,采用多次逐步增加噪聲的方式,直到干凈的樣本變成純?cè)肼暋?/p>
SD訓(xùn)練時(shí)的加噪過(guò)程
接下來(lái),讓SD模型學(xué)習(xí)去噪過(guò)程,并最終抽象出一個(gè)高維函數(shù),這個(gè)函數(shù)能夠在純?cè)肼曋小皟?yōu)化”噪聲,從而得到一個(gè)干凈的樣本。具體來(lái)說(shuō),將去噪過(guò)程具象化為使用U-Net來(lái)預(yù)測(cè)噪聲,并結(jié)合調(diào)度算法逐步去噪的過(guò)程。
SD訓(xùn)練時(shí)的去噪過(guò)程
在添加噪聲的時(shí)候,Stable Diffusion采用的是逐步增加的策略,每一步只增加一小部分噪聲,實(shí)現(xiàn)“小步快跑”的穩(wěn)定加噪過(guò)程。這類似于移動(dòng)互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)中的迭代與快速推出原則。
另一方面,每次增加的噪聲量級(jí)也可以不同,例如可以設(shè)定5個(gè)不同量級(jí)的噪聲,每次隨機(jī)選擇一種量級(jí)增加到樣本圖片中。這進(jìn)一步增加了噪聲的多樣性。在去噪過(guò)程中,同樣采用逐步減少噪聲的策略,每一步預(yù)測(cè)并去除一部分噪聲,實(shí)現(xiàn)穩(wěn)定的去噪。
多量級(jí)噪聲
為了使網(wǎng)絡(luò)能夠知道當(dāng)前處于k步的哪個(gè)階段,需要使用位置編碼。通過(guò)將步數(shù)作為輸入傳遞給網(wǎng)絡(luò),位置編碼能夠讓網(wǎng)絡(luò)知道當(dāng)前所處的階段。這種操作與Transformer中的操作類似。
使用Positional embeddings對(duì)訓(xùn)練迭代的步數(shù)進(jìn)行編碼
四、Stable Diffusion性能優(yōu)化
1、使用TF32精度
導(dǎo)入PyTorch并啟用TF32支持,實(shí)現(xiàn)性能和精度的平衡。TF32精度具有以下作用和優(yōu)勢(shì):
1)加速訓(xùn)練速度:使用TF32精度可以在保持相對(duì)較高的模型精度的同時(shí),加快模型訓(xùn)練的速度。
2)減少內(nèi)存需求:TF32精度相對(duì)于傳統(tǒng)的浮點(diǎn)數(shù)計(jì)算(如FP32)需要更少的內(nèi)存存儲(chǔ)。這對(duì)于訓(xùn)練大規(guī)模的深度學(xué)習(xí)模型尤為重要,可以減少內(nèi)存的占用。
3)可接受的模型精度損失:使用TF32精度會(huì)導(dǎo)致一定程度的模型精度損失,因?yàn)榈途扔?jì)算可能無(wú)法精確表示一些小的數(shù)值變化。然而,對(duì)于大多數(shù)深度學(xué)習(xí)應(yīng)用,TF32精度仍然可以提供足夠的模型精度。
2、使用FP16半精度
導(dǎo)入PyTorch庫(kù),并從diffusers庫(kù)中導(dǎo)入DiffusionPipeline。使用"runwayml/stable-diffusion-v1-5"預(yù)訓(xùn)練模型創(chuàng)建一個(gè)DiffusionPipeline對(duì)象pipe,同時(shí)設(shè)置torch_dtype為torch.float16,以使用FP16半精度進(jìn)行訓(xùn)練。
使用FP16半精度訓(xùn)練的優(yōu)勢(shì)在于可以減少一半的內(nèi)存占用,進(jìn)一步將批次大小翻倍,同時(shí)將訓(xùn)練時(shí)間減半。一些GPU,如V100和2080Ti等,針對(duì)16位計(jì)算進(jìn)行優(yōu)化,可以實(shí)現(xiàn)3-8倍的自動(dòng)加速。
3、對(duì)注意力模塊進(jìn)行切片
當(dāng)所使用的模型中的注意力模塊包含多個(gè)注意力頭時(shí),可以采用切片注意力操作,以便每個(gè)注意力頭依次計(jì)算注意力矩陣。這種做法可以顯著降低內(nèi)存占用,但隨之而來(lái)的是推理時(shí)間大約增加10%。
首先,導(dǎo)入PyTorch庫(kù),并從diffusers庫(kù)中導(dǎo)入DiffusionPipeline。然后,使用"runwayml/stable-diffusion-v1-5"預(yù)訓(xùn)練模型創(chuàng)建一個(gè)DiffusionPipeline對(duì)象pipe,同時(shí)設(shè)置torch_dtype為torch.float16,以使用FP16半精度進(jìn)行訓(xùn)練。接下來(lái),將pipe轉(zhuǎn)移到CUDA設(shè)備上,以便在GPU上運(yùn)行。
為啟用切片注意力操作,需要調(diào)用pipe對(duì)象的enable_attention_slicing()方法。通過(guò)采用切片注意力操作,可以減少內(nèi)存占用,但需要付出一些推理時(shí)間的代價(jià),大約增加10%。
4、對(duì)VAE進(jìn)行切片
與注意力模塊切片類似,也可以對(duì)VAE進(jìn)行切片,讓VAE每次只處理Batch(32)中的一張圖片,從而大幅減少內(nèi)存占用。
首先,導(dǎo)入PyTorch庫(kù),并從diffusers庫(kù)中導(dǎo)入StableDiffusionPipeline。然后,使用"runwayml/stable-diffusion-v1-5"預(yù)訓(xùn)練模型創(chuàng)建一個(gè)StableDiffusionPipeline對(duì)象pipe,同時(shí)設(shè)置torch_dtype為torch.float16,以使用FP16半精度進(jìn)行訓(xùn)練。接下來(lái),將pipe轉(zhuǎn)移到CUDA設(shè)備上,以便在GPU上運(yùn)行。為啟用VAE切片操作,調(diào)用pipe對(duì)象的enable_vae_slicing()方法。然后,使用prompt作為輸入,將一批32張圖片通過(guò)pipe進(jìn)行生成,并將生成的圖片存儲(chǔ)在images變量中。
5、大圖像切塊
當(dāng)需要生成4K或更高分辨率的圖像,但內(nèi)存資源有限時(shí),可以采用圖像切塊的技術(shù)。通過(guò)對(duì)圖像進(jìn)行切塊,讓VAE的編碼器和解碼器逐一處理每個(gè)切塊后的圖像,最后將拼接在一起生成最終的大圖像。
首先,導(dǎo)入PyTorch庫(kù),并從diffusers庫(kù)中導(dǎo)入StableDiffusionPipeline。然后,使用"runwayml/stable-diffusion-v1-5"預(yù)訓(xùn)練模型創(chuàng)建一個(gè)StableDiffusionPipeline對(duì)象pipe,同時(shí)設(shè)置torch_dtype為torch.float16,以使用FP16半精度進(jìn)行訓(xùn)練。接下來(lái),將pipe轉(zhuǎn)移到CUDA設(shè)備上,以便在GPU上運(yùn)行。為啟用圖像切塊操作,調(diào)用pipe對(duì)象的enable_vae_tiling()方法。然后,使用prompt作為輸入,并指定圖像的寬度為3840像素,高度為2224像素,以及生成步驟的數(shù)量為20。通過(guò)調(diào)用pipe對(duì)象的生成方法,可以得到生成的圖像。最后,從生成的圖像中獲取第一張圖像并將其存儲(chǔ)在image變量中。
6、CPU <-> GPU切換
可將整個(gè)SD模型或SD模型的部分模塊的權(quán)重加載到CPU中,并在推理時(shí)再將所需的權(quán)重加載到GPU。以下是如何使用PyTorch和Stable Diffusion Pipeline實(shí)現(xiàn)的代碼:
import torch
from diffusers import StableDiffusionPipeline
# 將整個(gè)SD模型加載到CPU
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16)
# 開(kāi)啟子模塊的CPU offload功能,即可以在CPU上執(zhí)行某些子模塊的計(jì)算
pipe.enable_sequential_cpu_offload()
# 開(kāi)啟整個(gè)SD模型的CPU offload功能,即可以在CPU上執(zhí)行整個(gè)SD模型的計(jì)算
pipe.enable_model_cpu_offload()
這段代碼將整個(gè)SD模型或SD模型的部分模塊的權(quán)重加載到CPU中,并在推理時(shí)再將所需的權(quán)重加載到GPU,以實(shí)現(xiàn)更好的性能和靈活性。
7、變換Memory Format
在計(jì)算機(jī)視覺(jué)領(lǐng)域,有兩種常見(jiàn)的內(nèi)存格式,分別是channels first(NCHW)和channels last(NHWC)。將channels first轉(zhuǎn)換為channels last可能會(huì)提高推理速度,但需要依賴于特定的AI框架和硬件。
在channels last內(nèi)存格式中,張量的維度順序?yàn)椋╞atch_size,height,width,channels)。其中,batch_size表示批處理大小,height和width表示圖像或特征圖的高度和寬度,channels表示通道數(shù)。
相比之下,channels first是另一種內(nèi)存布局,其中通道維度被放置在張量的第二個(gè)維度上。在channels first內(nèi)存格式中,張量的維度順序?yàn)椋╞atch_size,channels,height,width)。
選擇channels last或channels first內(nèi)存格式通常取決于硬件和軟件平臺(tái)以及所使用的深度學(xué)習(xí)框架。不同的平臺(tái)和框架可能對(duì)內(nèi)存格式有不同的偏好和支持程度。
在一些情況下,channels last內(nèi)存格式具有以下優(yōu)勢(shì):
1)內(nèi)存訪問(wèn)效率:在一些硬件架構(gòu)中,如CPU和GPU,channels last內(nèi)存格式能夠更好地利用內(nèi)存的連續(xù)性,從而提高數(shù)據(jù)訪問(wèn)的效率。
2)硬件加速器支持:一些硬件加速器(如NVIDIA的Tensor Cores)對(duì)于channels last內(nèi)存格式具有特定的優(yōu)化支持,可以提高計(jì)算性能。
3)跨平臺(tái)兼容性:某些深度學(xué)習(xí)框架和工具更傾向于支持channels last內(nèi)存格式,使得在不同的平臺(tái)和框架之間遷移模型更加容易。
需要注意的是,選擇內(nèi)存格式需要根據(jù)具體的硬件、軟件和深度學(xué)習(xí)框架來(lái)進(jìn)行評(píng)估。某些特定的操作、模型結(jié)構(gòu)或框架要求可能會(huì)對(duì)內(nèi)存格式有特定的要求或限制。因此,建議在特定環(huán)境和需求下進(jìn)行測(cè)試和選擇,以獲得最佳的性能和兼容性。
8、使用xFormers
使用xFormers插件能夠優(yōu)化注意力模塊的計(jì)算,提升約20%的運(yùn)算速度。
導(dǎo)入PyTorch庫(kù)
創(chuàng)建一個(gè)名為"pipe"的StableDiffusionPipeline對(duì)象,使用預(yù)訓(xùn)練模型"runwayml/stable-diffusion-v1-5",數(shù)據(jù)類型為torch.float16,并將模型遷移到"cuda"設(shè)備上。
通過(guò)調(diào)用.enable_xformers_memory_efficient_attention()方法,使用xFormers插件來(lái)優(yōu)化注意力模塊的計(jì)算,從而 提升約20%的運(yùn)算速度。
如何使用StableDiffusion制作AI數(shù)字人視頻
下面介紹如何安裝SadTalker插件。
首先,需要確保已經(jīng)成功安裝Stable Diffusion WebUI。然后,從Github上獲取SadTalker的開(kāi)源代碼,其地址為:
https://github.com/OpenTalker/SadTalker.git。
一、SadTalker安裝方法
1、安裝方法一
適合訪問(wèn)Github或外網(wǎng)較流暢的用戶,因?yàn)樾枰詣?dòng)下載大量文件。在SD WebUI的擴(kuò)展插件頁(yè)面中進(jìn)行安裝,如下圖所示:
這個(gè)插件需要下載許多文件,有些文件體積較大,需耐心等待。如果不確定是否出現(xiàn)了問(wèn)題,可以查看控制臺(tái)輸出的內(nèi)容,查找是否有錯(cuò)誤。安裝完成后,不要忘記重啟Stable Diffusion,需要完全重啟,而不僅僅是重啟WebUI。
2、安裝方法二
對(duì)于訪問(wèn)外網(wǎng)不太方便的用戶,可以提前下載所需文件,例如使用迅雷等下載工具。只要將下載的文件上傳到指定的目錄即可。
1)主程序
需要放到以下位置:stable-diffusion-webui/extensions/SadTalker
https://github.com/OpenTalker/SadTalker/archive/refs/heads/main.zip
2)視頻模型
可以從以下鏈接下載:stable-diffusion-webui/extensions/SadTalker/checkpoints
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00109-model.pth.tar
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00229-model.pth.tar
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_256.safetensors
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_512.safetensors
3)修臉模型
需要放到以下位置:stable-diffusion-webui/extensions/SadTalker/gfpgan/weights 和 stable-diffusion-webui/models/GFPGAN
您可以從以下鏈接下載:
https://github.com/xinntao/facexlib/releases/download/v0.1.0/alignment_WFLW_4HG.pth
https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth
https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth
為了方便使用這種方式部署,我們已經(jīng)將相關(guān)文件打包好,大家無(wú)需單獨(dú)下載。只需聯(lián)系我們,即可獲得下載地址。
4)安裝
首先,將文件下載到本地或云環(huán)境中。以AutoDL為例,將文件保存到/root目錄中。
然后解壓文件到 stable diffusion webui的擴(kuò)展目錄,并拷貝幾個(gè)文件到SD模型目錄:
tar -xvf /root/SadTalker.tar -C /root/stable-diffusion-webui/extensions cp -r /root/stable-diffusion-webui/extensions/SadTalker/gfpgan/weights/* /root/stable-diffusion-webui/models/GFPGAN/
看到下邊的結(jié)果,就基本上差不多了。
SD models 目錄下有這幾個(gè)文件:
部署完畢,不要忘了重啟。
二、使用方法
在SD WebUI的Tab菜單中找到SadTalker,按照下邊的順序進(jìn)行設(shè)置。
1、上傳人物照片。
2、上傳語(yǔ)音文件。
3、選擇視頻人物的姿勢(shì)。實(shí)際上,這指的是在人物說(shuō)話時(shí)頭部的動(dòng)作??梢酝ㄟ^(guò)嘗試不同的數(shù)字來(lái)選擇合適的動(dòng)作。
4、分辨率。512的視頻分辨率比256的大。
5、圖片處理方法:corp是從圖片截取頭部做視頻,resize適合大頭照或者證件照,full就是全身照做視頻。
6、Still Model:這個(gè)選項(xiàng)可以讓頭部動(dòng)作不要過(guò)大,以避免頭部與身體偏離的情況。然而,這樣可能會(huì)導(dǎo)致頭部動(dòng)作不太明顯。
7、GFPGAN:這個(gè)選項(xiàng)可以修整臉部,有助于改善說(shuō)話時(shí)嘴部和眼部可能出現(xiàn)的變形現(xiàn)象,從而使臉部看起來(lái)更加自然。
最后,點(diǎn)擊“生成”。根據(jù)硬件的運(yùn)行速度以及設(shè)置,生成過(guò)程可能需要幾分鐘的時(shí)間。請(qǐng)耐心等待。
三、常見(jiàn)問(wèn)題
1、啟動(dòng)的時(shí)候報(bào)錯(cuò):SadTalker will not support download...
這個(gè)提示意味模型無(wú)法成功下載。可以執(zhí)行以下命令來(lái)觸發(fā)下載(請(qǐng)注意將cd后的路徑替換為SadTalker安裝路徑):
cd stable-diffusion-webui/extensions/SadTalker
chmod 755 scripts/download_models.sh
scripts/download_models.sh
2、合成視頻時(shí)報(bào)錯(cuò):No module named 'xxx'
可以使用pip install命令來(lái)安裝xxx。但請(qǐng)注意,如果使用Python虛擬環(huán)境,需要先激活。例如,這里需要先執(zhí)行source xxx命令。然后,可以運(yùn)行以下命令來(lái)安裝
librosa:
source /root/stable-diffusion-webui/venv/bin/activate
pip install librosa
這些命令將激活虛擬環(huán)境并安裝librosa庫(kù)。
3、合成視頻時(shí)報(bào)錯(cuò):在合成視頻時(shí),可能會(huì)遇到一個(gè)錯(cuò)誤:No such file or directory: '/tmp/gradio/xxx'。這意味著系統(tǒng)無(wú)法找到該文件或目錄。為了解決這個(gè)問(wèn)題,可以創(chuàng)建一個(gè)目錄。使用以下命令可以輕松地創(chuàng)建該目錄:mkdir -p /tmp/gradio
4、如果遇到提示找不到ffmpeg的情況,嘗試先下載并安裝ffmpeg。通過(guò)以下鏈接下載安裝程序:http://ffmpeg.org/download.html
Stable Diffusion本地部署要求
隨著Stable Diffusion在AI藝術(shù)生成領(lǐng)域的不斷發(fā)展和普及,越來(lái)越多的用戶希望能夠在自己的本地機(jī)器上部署SD模型,以獲得更好的性能表現(xiàn)和使用體驗(yàn)。然而,部署一個(gè)大規(guī)模的生成模型如SD需要強(qiáng)大的計(jì)算資源和硬件配置。那么,究竟需要怎樣的計(jì)算機(jī)配置才能流暢地運(yùn)行SD模型呢?
一、GPU
GPU最好使用NVIDIA的RTX系列,如RTX 3070,RTX 4070和RTX4060。老一代的RTX 2000系列也可考慮,但性能較新卡略低,且顯存略小。不推薦使用專業(yè)級(jí)顯卡如NVIDIA A6000,其擁有大量視頻內(nèi)存,非常適合預(yù)算充足的情況。不要使用筆記本等移動(dòng)GPU,因?yàn)槠滹@存和功耗都有限,難以進(jìn)行高效的模型訓(xùn)練。如果條件允許,可以使用多張GPU進(jìn)行多卡訓(xùn)練,以提高訓(xùn)練速度。
二、CPU
除了GPU之外,具有高核心數(shù)的CPU也是必不可少的。Stable Diffusion的訓(xùn)練和推理過(guò)程需要進(jìn)行大量的矩陣計(jì)算,對(duì)CPU的并行計(jì)算能力有很高的要求。一般來(lái)說(shuō),至少需要8核心或更多的CPU,如i9-13900;i7-13700;i5 13400;i3 12100;i7 12700 ;i9 12900 等。
三、RAM內(nèi)存
大量的RAM內(nèi)存同樣不可或缺。本地部署SD時(shí),系統(tǒng)內(nèi)存最好在32GB以上。這可以顯著加速數(shù)據(jù)交換與傳輸速度。與GPU類似,更多的GPU卡也會(huì)需要更多的系統(tǒng)內(nèi)存配合。
四、存儲(chǔ)方面
系統(tǒng)盤(pán)無(wú)特殊要求,需要1TB甚至更大的磁盤(pán)空間來(lái)存儲(chǔ)大規(guī)模的模型文件、數(shù)據(jù)集和生成結(jié)果。使用RAID 0可以獲得更高的讀取速度。
五、網(wǎng)絡(luò)方面
網(wǎng)絡(luò)對(duì)于Stable Diffusion的部署和使用都非常關(guān)鍵,需要準(zhǔn)備以下幾方面:
1、帶寬需求
初始部署需要下載模型文件,通常數(shù)十GB甚至上百GB,需要具備穩(wěn)定的大帶寬來(lái)支持。訓(xùn)練過(guò)程中也需要大量的數(shù)據(jù)流量,務(wù)必確認(rèn)網(wǎng)絡(luò)帶寬足夠,例如千兆寬帶。如果使用云訓(xùn)練平臺(tái),還需要考慮上傳訓(xùn)練結(jié)果的流量。
2、網(wǎng)絡(luò)速度
部署時(shí)的下載速度直接影響部署進(jìn)度,需要盡可能高的網(wǎng)絡(luò)速度。訓(xùn)練時(shí)網(wǎng)絡(luò)速度影響同步效率。內(nèi)網(wǎng)訓(xùn)練可以做到更低延遲。公網(wǎng)環(huán)境下,光纖寬帶的低延遲有利于分布式訓(xùn)練。
3、網(wǎng)絡(luò)穩(wěn)定性
訓(xùn)練過(guò)程需要持續(xù)不間斷的連接,斷網(wǎng)會(huì)造成失敗。部署和使用期間應(yīng)盡量避免網(wǎng)絡(luò)抖動(dòng)現(xiàn)象的發(fā)生。
4、代理和緩存
可以使用本地代理做緩存,加速模型和數(shù)據(jù)的下載。代理同時(shí)還可以提供一定的數(shù)據(jù)安全性和隱私保護(hù)。
5、數(shù)據(jù)安全
如果涉及敏感數(shù)據(jù),要注意加密傳輸和訪問(wèn)控制。遵守相關(guān)的數(shù)據(jù)隱私規(guī)范,謹(jǐn)慎上傳或共享數(shù)據(jù)。
六、軟件方面
操作系統(tǒng)需要Windows 10/11或者較新版本的Linux發(fā)行版,如Ubuntu 20.04+。Python版本需要在3.7以上,主要的深度學(xué)習(xí)框架如PyTorch、TensorFlow也需要相應(yīng)安裝,并確認(rèn)版本與硬件兼容??赡苓€需要安裝許多Python庫(kù)來(lái)支持不同的數(shù)據(jù)加載和圖像處理功能。使用Docker等虛擬化技術(shù)可以簡(jiǎn)化軟件環(huán)境配置。
藍(lán)海大腦集成SD的PC集群解決方案
AIGC和ChatGPT4技術(shù)的爆燃和狂飆,讓文字生成、音頻生成、圖像生成、視頻生成、策略生成、GAMEAI、虛擬人等生成領(lǐng)域得到了極大的提升。不僅可以提高創(chuàng)作質(zhì)量,還能降低成本,增加效率。同時(shí),對(duì)GPU和算力的需求也越來(lái)越高,因此GPU服務(wù)器廠商開(kāi)始涌向該賽道,為這一領(lǐng)域提供更好的支持。在許多領(lǐng)域,如科學(xué)計(jì)算、金融分析、天氣預(yù)報(bào)、深度學(xué)習(xí)、高性能計(jì)算、大模型構(gòu)建等領(lǐng)域,需要大量的計(jì)算資源來(lái)支持。為了滿足這些需求,藍(lán)海大腦PC集群解決方案應(yīng)運(yùn)而生。
PC集群是一種由多臺(tái)計(jì)算機(jī)組成的系統(tǒng),這些計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接在一起,共同完成計(jì)算任務(wù)。PC集群解決方案是指在PC集群上運(yùn)行的軟件和硬件系統(tǒng),用于管理和優(yōu)化計(jì)算資源,提高計(jì)算效率和可靠性。
藍(lán)海大腦PC集群解決方案提供高密度部署的服務(wù)器和PC節(jié)點(diǎn),采用4U機(jī)架式設(shè)計(jì),每個(gè)機(jī)架可插拔4個(gè)PC節(jié)點(diǎn)。融合了PC的高主頻和高性價(jià)比以及服務(wù)器的穩(wěn)定性的設(shè)計(jì),實(shí)現(xiàn)了遠(yuǎn)程集中化部署和管理運(yùn)維。同時(shí),采用模塊化可插拔設(shè)計(jì),使維護(hù)和升級(jí)變得更加容易。
同時(shí),集成Stable Diffusion AI模型,可以輕松地安裝和使用,無(wú)需進(jìn)行任何額外的配置或設(shè)置。與傳統(tǒng)的人工創(chuàng)作方式相比,Stable Diffusion Al模型可以更快地生成高品質(zhì)的創(chuàng)作內(nèi)容。通過(guò)集成這個(gè)模型,可以使創(chuàng)作者利用人工智能技術(shù)來(lái)優(yōu)化創(chuàng)作流程。另外,藍(lán)海大腦PC集群解決方案還具有開(kāi)箱即用的特點(diǎn),不僅易于安裝和使用,而且能夠快速適應(yīng)各種創(chuàng)作工作流程。這意味著用戶可以在短時(shí)間內(nèi)開(kāi)始創(chuàng)作,并且在整個(gè)創(chuàng)作過(guò)程中得到更好的體驗(yàn)。
一、主要技術(shù)指標(biāo)
1、支持遠(yuǎn)程開(kāi)關(guān)機(jī)和硬重啟PC節(jié)點(diǎn)
2、集成的供電和管理背板,每個(gè)節(jié)點(diǎn)750W峰值供電功率
3、機(jī)箱管理單元支持節(jié)點(diǎn)遠(yuǎn)程上下電
4、每個(gè)PC節(jié)點(diǎn)支持熱插拔,單個(gè)節(jié)點(diǎn)故障不影響其他節(jié)點(diǎn)工作
5、獨(dú)立的管理網(wǎng)口和串口
6、每個(gè)節(jié)點(diǎn)配置2個(gè)可插拔8038高功率服務(wù)器風(fēng)扇,提供智能溫控
二、客戶收益
Stable Diffusion技術(shù)對(duì)游戲產(chǎn)業(yè)帶來(lái)了極大的影響和改變。它提升了游戲圖像的質(zhì)量和真實(shí)感、增強(qiáng)了游戲體驗(yàn)和沉浸感、優(yōu)化了游戲制作流程、擴(kuò)展了游戲應(yīng)用領(lǐng)域,并推動(dòng)了游戲產(chǎn)業(yè)的發(fā)展和創(chuàng)新。這些都表明,Stable Diffusion技術(shù)在游戲產(chǎn)業(yè)中的應(yīng)用前景十分廣闊,有助于進(jìn)一步推動(dòng)游戲行業(yè)的發(fā)展,提高用戶體驗(yàn)和娛樂(lè)價(jià)值。
1、提升游戲圖像質(zhì)量和真實(shí)感
Stable Diffusion可以在保證渲染速度的前提下,提高游戲圖像的細(xì)節(jié)和真實(shí)感。傳統(tǒng)的光線追蹤方法需要檢查和模擬每條光線,這樣會(huì)消耗大量計(jì)算資源,并放緩渲染速度。而Stable Diffusion則利用深度學(xué)習(xí)技術(shù)對(duì)光線的擴(kuò)散過(guò)程進(jìn)行建模,使得處理數(shù)百萬(wàn)條光線所需的計(jì)算時(shí)間更短,同時(shí)還能夠生成更為精準(zhǔn)的光線路徑。這意味著,Stable Diffusion可以讓計(jì)算機(jī)產(chǎn)生更加逼真的景觀、人物、物品等元素,在視覺(jué)效果上得到質(zhì)的飛躍。
2、增強(qiáng)游戲體驗(yàn)和沉浸感
游戲是一個(gè)交互式體驗(yàn),它的目標(biāo)是盡可能地讓玩家沉浸到虛構(gòu)的世界中。Stable Diffusion可以使游戲環(huán)境變得更加真實(shí),并增添一些更具有交互性和觀賞性的場(chǎng)景。例如,利用Stable Diffusion技術(shù),游戲可以在水面上添加波紋、落葉,或者使搖曳的草叢更逼真。這些改善能夠讓玩家更好地感受游戲中所處的環(huán)境,增強(qiáng)沉浸感。
3、優(yōu)化游戲制作流程
Stable Diffusion的應(yīng)用可以提高游戲開(kāi)發(fā)的效率和質(zhì)量,減少手動(dòng)制作和修改的工作量。渲染過(guò)程的快速執(zhí)行還可以加速開(kāi)發(fā)周期,甚至使一些在過(guò)去被看做是計(jì)算機(jī)圖形學(xué)難題的事情變得可能。例如,在模擬復(fù)雜的自然現(xiàn)象或在大范圍內(nèi)生成游戲元素時(shí),使用Stable Diffusion可有效降低游戲開(kāi)發(fā)的成本和時(shí)間,讓開(kāi)發(fā)者有更多的精力關(guān)注其他方面的設(shè)計(jì)和創(chuàng)意。
4、擴(kuò)展游戲的應(yīng)用領(lǐng)域
Stable Diffusion的應(yīng)用使得游戲在更多的領(lǐng)域得到應(yīng)用。例如,在心理治療、教育、文化傳播等領(lǐng)域中,人工智能游戲可以根據(jù)用戶的情緒和行為變化來(lái)調(diào)整游戲內(nèi)容和策略,為用戶提供更符合需求和娛樂(lè)性的游戲體驗(yàn)。此外,利用Stable Diffusion技術(shù),游戲可以生成不同類型的場(chǎng)景,包括虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)等體驗(yàn),開(kāi)發(fā)出更豐富更多變的游戲內(nèi)容。
5、推動(dòng)游戲產(chǎn)業(yè)的發(fā)展和創(chuàng)新
Stable Diffusion作為先進(jìn)的計(jì)算機(jī)圖形學(xué)技術(shù)之一,進(jìn)一步推動(dòng)了游戲產(chǎn)業(yè)的發(fā)展和創(chuàng)新。利用人工智能技術(shù)渲染的游戲?qū)?huì)產(chǎn)生更高品質(zhì)、更廣泛的游戲類別,從而吸引更多領(lǐng)域的玩家參與,并且會(huì)推動(dòng)相關(guān)行業(yè)的發(fā)展,如文化傳媒行業(yè)、數(shù)字娛樂(lè)業(yè)等。同時(shí),穩(wěn)定性更好、性能更高的Stable Diffusion技術(shù)還具有在未來(lái)制造更復(fù)雜的虛擬世界的潛力,例如更多樣化、更逼真、更具交互性的虛擬現(xiàn)實(shí)環(huán)境和游戲。
三、PC集群解決方案的優(yōu)勢(shì)
1、高性能
PC集群解決方案可將多臺(tái)計(jì)算機(jī)的計(jì)算能力整合起來(lái),形成一個(gè)高性能的計(jì)算系統(tǒng)??芍С衷诙虝r(shí)間內(nèi)完成大量的計(jì)算任務(wù),提高計(jì)算效率。
2、可擴(kuò)展性
可以根據(jù)需要進(jìn)行擴(kuò)展,增加計(jì)算節(jié)點(diǎn),提高計(jì)算能力。這種擴(kuò)展可以是硬件的,也可以是軟件的,非常靈活。
3、可靠性
PC集群可以通過(guò)冗余設(shè)計(jì)和備份策略來(lái)提高系統(tǒng)的可靠性。當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),其他節(jié)點(diǎn)可以接管其任務(wù),保證計(jì)算任務(wù)的順利進(jìn)行。
4、低成本
相比于傳統(tǒng)的超級(jí)計(jì)算機(jī),PC集群的成本更低。這是因?yàn)镻C集群采用的是普通的PC硬件,而不是專門(mén)的高性能計(jì)算硬件。
四、PC集群解決方案的應(yīng)用領(lǐng)域有哪些?
PC集群是指將多臺(tái)個(gè)人電腦連接在一起,通過(guò)網(wǎng)絡(luò)協(xié)同工作,實(shí)現(xiàn)高性能計(jì)算的一種方式。它的應(yīng)用領(lǐng)域非常廣泛,以下是一些常見(jiàn)的應(yīng)用領(lǐng)域:
1、科學(xué)計(jì)算
PC集群可以用于各種科學(xué)計(jì)算,如天文學(xué)、生物學(xué)、物理學(xué)、化學(xué)等領(lǐng)域的計(jì)算模擬和數(shù)據(jù)分析。
2、工程計(jì)算
PC集群可以用于工程領(lǐng)域的計(jì)算,如飛機(jī)設(shè)計(jì)、汽車設(shè)計(jì)、建筑結(jié)構(gòu)分析等。
3、金融計(jì)算
PC集群可以用于金融領(lǐng)域的計(jì)算,如股票交易、風(fēng)險(xiǎn)評(píng)估、投資組合優(yōu)化等。
4、大數(shù)據(jù)處理
PC集群可以用于大數(shù)據(jù)處理,如數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、人工智能等領(lǐng)域的數(shù)據(jù)處理和分析。
5、圖像處理
PC集群可以用于圖像處理,如視頻編碼、圖像識(shí)別、虛擬現(xiàn)實(shí)等領(lǐng)域的圖像處理和渲染。
五、常用配置推薦
1、處理器,CPU:
i9-13900 24C/32T/2.00GHz/32MB/65W/Up to DDR5 5600 MT/s / Up to DDR4 3200 MT/s
i7-13700 16C/24T/2.10GHz/30MB/65W/Up to DDR5 5600 MT/s / Up to DDR4 3200 MT/s
i5 13400 10C/16T/1.80GHz/20MB/65W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
i3 13100 4C/8T/3.40GHz/12MB/60W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
G6900 2C/2T/3.40GHz/4MB/46W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
G7400 2C/4T/3.70GHz/6MB/46W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
i3 12100 4C/8T/3.30GHz/12MB/60W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
i5 12400 6C/12T/2.50GHz/18MB/65W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
i7 12700 12C/20T/2.10GHz/25MB/65W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
i9 12900 16C/24T/2.40GHz/30MB/65W/Up to DDR5 4800 MT/s /Up to DDR4 3200 MT/s
2、顯卡GPU:
NVIDIA RTX GeForce 3070 8GB
NVIDIA RTX GeForce 3080 10GB
NVIDIA RTX GeForce 4070 12GB
NVIDIA RTX GeForce 4060Ti 8GB or 16GB
3、內(nèi)存:
32GB×2
4、系統(tǒng)盤(pán):
M.2 500GB
5、數(shù)據(jù)盤(pán):
500GB 7200K
審核編輯 黃宇
-
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268886 -
人工智能
+關(guān)注
關(guān)注
1791文章
47183瀏覽量
238247 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5500瀏覽量
121111
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論