www色视频 I 九九九九九九九九九 I 日本欧美一本 I 一本一道无码中文字幕精品热 I 欧美zzoo I 在线观看视频色 I 亚洲人精品 I 国产有码在线 I 自拍偷拍欧美精品 I 日本午夜一区二区三区 I 久久久久高清 I av中文字幕在线播放 I 三级特黄 I 亚洲第一色网站 I 国产夫妻自拍av I 精品国产专区 I 亚洲自拍日韩 I 国产午夜伦鲁鲁 I 97福利网 I 欧洲天堂在线观看 I brazzers高潮抽搐 I av资源先锋 I 国产精品久久久久免费a∨ I 无码人妻丰满熟妇区免费 I 欧美精品久久一区二区 I 91美女靠逼 I 99久久精品国产精品久久 I 91福利资源站 I 成人激情电影一区二区 I 久久久久久成人毛片免费看 I 亚洲精品日本一区二区三区 I 国产a∨国片精品青草视频 I 色综合a怡红院怡红院 I 久草视频国产在线 I 国产欧美日韩小视频 I 男人的天堂国产在线视频 I 大胸美女污污污www网站 I 欧美黑人xxxx又粗又长 I 国产一区二区中文字幕免费看

使用 NVIDIA A40 實(shí)現(xiàn)Stable Diffusion:詳細(xì)步驟指南
發(fā)布時(shí)間: 2024-08-07 15:08

Stable Diffusion 是一種人工智能模型,可將簡單的文本提示轉(zhuǎn)換為令人驚嘆的高分辨率圖像,為藝術(shù)家、設(shè)計(jì)師和愛好者開辟了創(chuàng)意可能性。然而,就像所有我們討論過的生成式人工智能模型,Stable Diffusion需要大量的計(jì)算資源。


捷智算平臺(tái)可訪問 NVIDIA A40 GPU,旨在加速 AI 工作負(fù)載。通過將Stable Diffusion與 A40 的高性能功能相結(jié)合,您可以生成復(fù)雜的藝術(shù)品、嘗試各種風(fēng)格,并在比僅使用 CPU 更短的時(shí)間內(nèi)將您的藝術(shù)構(gòu)想變?yōu)楝F(xiàn)實(shí)。


無論您是經(jīng)驗(yàn)豐富的 AI 藝術(shù)家還是好奇的初學(xué)者,本指南都將引導(dǎo)您在捷智算平臺(tái)上使用 NVIDIA A40 實(shí)現(xiàn)Stable Diffusion。我們將介紹從獲取模型到啟動(dòng)第一個(gè)圖像生成項(xiàng)目的所有內(nèi)容。


選擇您的型號(hào)

第一步是選擇模型。在本指南中,我們將使用Stable AI 的Stable Diffusion模型。該模型及其文檔位于 hugging face 上。


來源:Stability AI


從 hugging face 獲取模型時(shí),您首先必須創(chuàng)建一個(gè)帳戶。完成后,您必須生成一個(gè)訪問令牌,您將使用該令牌將模型拉入您的 VM。為此,請(qǐng)單擊您的個(gè)人資料圖片并導(dǎo)航到“設(shè)置”。




單擊“訪問令牌”,然后單擊“創(chuàng)建新令牌”。



選擇此令牌的所有必要權(quán)限、您希望它訪問的存儲(chǔ)庫、您希望它訪問的組織等等。完成后,單擊“創(chuàng)建令牌”。復(fù)制令牌并將其保存在安全的地方。


接下來,在捷智算平臺(tái)上創(chuàng)建項(xiàng)目并創(chuàng)建虛擬機(jī)。我們將使用 NVIDIA A40 以及 2 個(gè) vCPU、8GB 內(nèi)存和 150GB 啟動(dòng)盤。



通過 SSH 進(jìn)入您的虛擬機(jī),然后運(yùn)行更新和升級(jí)命令。

sudo apt update && sudo apt upgrade -y



然后安裝 pip,我們將在安裝其他 Python 庫和框架時(shí)使用它,命令如下:

apt install python3-pip



接下來,我們將在機(jī)器上安裝虛擬環(huán)境。即使您在虛擬機(jī)中工作,出于以下原因,最好這樣做:


  • 隔離:虛擬環(huán)境隔離了項(xiàng)目的 Python 依賴項(xiàng),從而避免了可能需要同一庫的不同版本的不同項(xiàng)目之間發(fā)生沖突。在沒有虛擬環(huán)境的情況下為一個(gè)項(xiàng)目安裝庫可能會(huì)破壞依賴于不同版本的另一個(gè)項(xiàng)目。

  • 可重復(fù)性:虛擬環(huán)境確保您的項(xiàng)目具有正確運(yùn)行所需的精確依賴關(guān)系,從而更容易與他人共享您的項(xiàng)目或?qū)⑵洳渴鸬缴a(chǎn)中,因?yàn)槟梢源_信環(huán)境將是相同的。

  • 整潔:虛擬環(huán)境使整個(gè)系統(tǒng)的 Python 安裝保持整潔。您不會(huì)因項(xiàng)目特定的依賴項(xiàng)而弄亂虛擬機(jī)的全局庫,從而更輕松地在虛擬機(jī)上管理 Python。


即使您在提供一定隔離的云虛擬機(jī)中工作,虛擬環(huán)境也能對(duì)特定于您的項(xiàng)目的依賴項(xiàng)提供更細(xì)粒度的控制。


我們將使用venv在本指南中,但您可以使用不同的工具來管理您的虛擬環(huán)境,例如conda。由于我們使用的是 Ubuntu 系統(tǒng),因此我們必須使用以下命令安裝 python3-venv 包。

apt install python3.10-venv



現(xiàn)在,我們將為項(xiàng)目創(chuàng)建一個(gè)文件夾并導(dǎo)航到其中。

mkdir stable_diffusion && cd stable_diffusion


我們將使用之前安裝的 venv 在此文件夾中創(chuàng)建虛擬環(huán)境。

python3 -m venv venv



您應(yīng)該在此目錄中有一個(gè) venv 文件夾,如上圖所示。接下來,使用此命令激活虛擬環(huán)境。

source venv/bin/activate



激活虛擬環(huán)境后,我們可以安裝所需的庫和依賴項(xiàng)。

pip install torch torchvision torchaudio diffusers huggingface_hub matplotlib accelerate transformers sentencepiece protobuf


這需要一點(diǎn)時(shí)間才能運(yùn)行。完成后,您就可以在捷智算平臺(tái)上使用穩(wěn)定擴(kuò)散了。



接下來,我們將創(chuàng)建一個(gè)腳本來在虛擬機(jī)上測(cè)試該模型。


首先,我們將創(chuàng)建一個(gè)文件夾來保存我們想要用這個(gè)模型生成的圖像。

mkdir generated_images


然后,我們開始編寫代碼。

導(dǎo)入您需要的所有模塊。


import os

import torch

from diffusers import DiffusionPipeline

from huggingface_hub import HfFolder, login

from PIL import Image


接下來,我們必須驗(yàn)證我們的 Hugging Face ID 來提取模型。


# Set your Hugging Face token

token = "your_hugging_face_token"

os.environ["HF_AUTH_TOKEN"] = token

HfFolder.save_token(token)


# Login with your token

login(token=token)


該令牌將是您之前創(chuàng)建的 Hugging Face 令牌。


警告:將 Hugging Face 令牌(或任何密鑰)留在代碼庫中存在安全風(fēng)險(xiǎn)。訪問您代碼的人可能會(huì)竊取令牌并用它來生成圖片,甚至訪問您的 Hugging Face 帳戶。


始終使用環(huán)境變量安全地存儲(chǔ)令牌、密碼和其他機(jī)密,以防止這種情況發(fā)生。這樣可以將它們與代碼分開,并使它們更難被意外泄露。


接下來,我們使用Diffusion Pipeline加載模型。


# Load the model using DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-3-medium-diffusers", torch_dtype=torch.float16)


pipe = pipe.to("cuda")


這幾行代碼執(zhí)行與加載和配置用于圖像生成的擴(kuò)散模型相關(guān)的兩個(gè)關(guān)鍵操作:


  • 加載模型:

DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-3-medium-diffusers"):此行使用來自擴(kuò)散器庫的 DiffusionPipeline 類的 from_pretrained 方法。它從 Hugging Face Hub 下載預(yù)先訓(xùn)練的擴(kuò)散模型。此處加載的具體模型是“stabilityai/stable-diffusion-3-medium-diffusers”,它是 Stable Diffusion 3 模型的中型版本。


  • 將模型移至 GPU:

pipe.to("cuda"):此行將加載的模型管道(管道)移動(dòng)到啟用 CUDA 的設(shè)備,如果可用,則為圖形處理單元 (GPU),在我們的例子中,它是。如上所述,擴(kuò)散模型的計(jì)算成本很高,與在 CPU 上運(yùn)行相比,GPU 可以顯著加速圖像生成過程。


接下來,我們使用加載的擴(kuò)散模型(管道)根據(jù)提供的文本提示和其他參數(shù)生成圖像。


# Generate an image

result = pipe(

"A smiling cat holding a sign that says hello world",

negative_prompt="",

num_inference_steps=28,

guidance_scale=7.0,

)


讓我們分解一下每個(gè)元素:


  • result = pipe(...):此行調(diào)用 pipe 對(duì)象,該對(duì)象代表已加載的擴(kuò)散管道。它要求模型根據(jù)括號(hào)內(nèi)提供的參數(shù)生成圖像。

  • “一只貓舉著一塊寫著“你好世界”的牌子”:這個(gè)文本提示描述了所需的圖像。模型將使用此信息來指導(dǎo)圖像生成過程。

  • negative_prompt="":這是一個(gè)可選參數(shù),用于指定負(fù)面提示。負(fù)面提示允許您告訴模型您不希望在圖像中出現(xiàn)什么。在這里,我們使用一個(gè)空字符串,表示沒有特定的負(fù)面提示。

  • num_inference_steps=28:此參數(shù)控制圖像生成過程中使用的推理步驟數(shù)。每個(gè)步驟都會(huì)根據(jù)模型對(duì)提示的理解來細(xì)化圖像。值越高,圖像質(zhì)量就越高,但生成圖像的時(shí)間也越長。

  • guide_scale=7.0:此參數(shù)控制文本提示對(duì)生成圖像的影響。較高的值會(huì)增加模型對(duì)提示的遵守程度,而較低的值則允許更多的創(chuàng)作自由。


執(zhí)行此代碼后,result 變量將包含有關(guān)生成的圖像的信息,包括實(shí)際圖像數(shù)據(jù)本身。接下來,我們檢索生成的圖像并將其保存到特定位置。


# Get the generated image

image = result.images[0]

# Save the image

image_path = "generated_images/generated_image.png"

image.save(image_path)


具體如下:


1、檢索圖像:

result.images 0:如前所述,result 變量保存有關(guān)生成圖像的信息。在這里,我們?cè)L問 result 中的 images 屬性。此屬性可能包含生成的圖像列表(可能用于變體或多次生成運(yùn)行)。我們使用0來訪問列表中的第一個(gè)圖像(假設(shè)只有一個(gè)生成的圖像)。


2、保存圖像

  • image_path = "generated_images/generated_image.png":此行定義圖像的保存路徑。它將圖像保存為文件名“generated_image.png”。

  • image.save(image_path):此行使用圖像對(duì)象的 save 方法(我們從 result.images 0中檢索到)。該方法將 image_path 作為參數(shù),指定保存圖像的目標(biāo)位置。


要運(yùn)行代碼,請(qǐng)使用 python3 命令。假設(shè)文件保存為 app.py,請(qǐng)使用以下命令。

python3 app.py


如果您第一次運(yùn)行代碼,它將從 Hugging Face 下載模型并生成圖像。



圖像將保存在您的 generated_images 文件夾中。要查看它,您只需使用安全復(fù)制 (SCP) 將圖像復(fù)制到本地計(jì)算機(jī)即可。為此,請(qǐng)導(dǎo)航到本地計(jì)算機(jī)上的命令行并運(yùn)行此命令。

scp root@external_ip:~/stable_diffusion/generated_images/generated_image.png the/destination/path



注意:將 External_IP 替換為虛擬機(jī)的實(shí)際 IP 地址。如果您已經(jīng)為虛擬機(jī)設(shè)置了命名主機(jī),就像我們一樣,你可以改用這個(gè)命令:

scp sdserver:~/stable_diffusion/generated_images/generated_image.png the/destination/path



圖像將被復(fù)制到您的計(jì)算機(jī)中。



當(dāng)在捷智算平臺(tái)上使用 A40 GPU 執(zhí)行穩(wěn)定擴(kuò)散任務(wù)時(shí),執(zhí)行速度與本地機(jī)器明顯不同。


import os

import torch

from diffusers import DiffusionPipeline

from huggingface_hub import HfFolder, login

from PIL import Image

import time # Import the time module


# Set your Hugging Face token

token = "your_hugging_face_model"

os.environ["HF_AUTH_TOKEN"] = token

HfFolder.save_token(token)


# Login with your token

login(token=token)


# Start time measurement

start_time = time.time()


# Load the model using DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-3-medium-diffusers", torch_dtype=torch.float16)


pipe = pipe.to("cuda")


# Generate an image

result = pipe(

"A cat holding a sign that says hello world",

negative_prompt="",

num_inference_steps=28,

guidance_scale=7.0,

)


# Get the generated image

image = result.images[0]

# Save the image

image_path = "generated_images/generated_image.png"

image.save(image_path)


# End time measurement

end_time = time.time()


# Calculate and display execution time

execution_time = end_time - start_time


print(f"Script execution time: {execution_time:.2f} seconds")


下載模型后首次運(yùn)行時(shí)該腳本在 CUDO Compute 上的平均執(zhí)行時(shí)間約為 67 秒。





在后續(xù)運(yùn)行中,當(dāng)模型已緩存時(shí),執(zhí)行時(shí)間平均下降到 41 秒左右。在一臺(tái)臺(tái)式計(jì)算機(jī)上運(yùn)行相同的腳本可能需要數(shù)小時(shí)。


總結(jié)


在本指南中,您已成功學(xué)習(xí)了如何使用捷智算平臺(tái)上的 NVIDIA A40 GPU 和Stable Diffusion模型根據(jù)文本提示生成圖像。您已學(xué)習(xí)了如何:


  • 使用 GPU 在捷智算平臺(tái)上設(shè)置虛擬機(jī)。

  • 創(chuàng)建和管理 Python 虛擬環(huán)境以使您的項(xiàng)目保持井然有序。

  • 安裝使用 Stable Diffusion 所需的庫和工具。

  • 通過 Hugging Face 進(jìn)行身份驗(yàn)證即可下載模型。

  • 編寫一個(gè) Python 腳本,根據(jù)文本提示生成圖像。

  • 將生成的圖像傳輸?shù)奖镜貦C(jī)器以供查看和共享。


您現(xiàn)在可以嘗試不同的提示和參數(shù),甚至可以在捷智算平臺(tái)的基礎(chǔ)設(shè)施上探索其他 AI 模型。無論您是藝術(shù)家、設(shè)計(jì)師還是 AI 愛好者,從文本生成圖像的能力都是一個(gè)強(qiáng)大的工具,可以增強(qiáng)您的工作流程并激發(fā)新的想法。

粵公網(wǎng)安備 44030502006483號(hào)、 粵ICP備15047669號(hào)
  • 捷易科技聯(lián)系人
  • 主站蜘蛛池模板: 亚洲一区二区三区写真 | 99re在线视频观看 | 日本打白嫩光屁屁视频 | 免费黄色毛片 | 国产又色又爽又刺激在线观看 | 中文字幕在线网址 | 无码免费毛片手机在线无卡顿 | 蜜桃av在线免费观看 | 国产欧美亚洲精品第1页 | 国产精品丝袜综合区旗袍 | 国内精品久久久久久99蜜桃 | 免费日韩在线 | aa精品| 国产又黄又粗又猛又爽的视频 | 日日摸夜添夜夜夜添高潮 | 天堂av色综合久久天堂我不卡 | 又色又爽又黄的视频国内 | 亚洲 人av在线影院 亚洲精品无码久久久久秋霞 | 男生操男生的小说 | 亚洲国产成人无码电影 | 22222se男人的天堂 | 亚洲欧美成人aⅴ在线 | 亚洲五十路| 日韩精品 中文字幕 视频在线 | 91传媒理伦片在线观看 | 日韩精品内射视频免费观看 | 久久精品久久久久久噜噜 | 女子浴室啪啪hd三级 | 日韩欧美一区二区三区综学生 | 日本不卡一区二区三区在线 | 中文字幕乱码一区av久久 | 日本熟妇色一本在线视频 | 日本一区中文字幕 | 日韩国产亚洲高清在线久草 | 另类 综合 日韩 欧美 亚洲 | 乱码一卡二卡新区永久入口 | 黑人专干日本人xxxx | 女生啪啪网站 | 吃奶揉捏奶头高潮视频 | 亚洲午夜精品久久 | 2020国产在线拍揄自揄视频 | 黑人与中国少妇xxxx视频在线 | 亚洲大片免费 | 欧美精品一二三四区 | 精品国产精品国产自在久国产 | 农村老女人av| 欧美人性生活视频 | 羞羞影院成人午夜爽爽在线 | 正在播放久久 | 新天堂av | 欧美日韩中文国产 | 69伊人| 国产精品久久久91 | 国产精品99久久久久久久 | 中日韩文字幕无线网站2013 | 精品一卡2卡三卡4卡乱码精品视频 | 国产又色又爽又黄的视频在线观看 | 精品视频福利 | 日韩亚洲欧美一区二区三区 | 亚洲精品乱拍国产一区二区三区 | 亚洲少妇在线 | 91精品国产99久久久久久久 | 偷偷操99 | 午夜毛片在线 | 99久久久无码国产精品动漫 | 午夜大片男女免费观看爽爽爽尤物 | 强奷乱码中文字幕熟女导航 | 在线观看网站黄 | 午夜影视剧场 | 国产一级aa大片毛片 | 国产欧美日韩视频在线观看 | 日韩精品四区 | 国产+日韩+另类+视频一区 | 粉嫩小泬视频无码视频软件 | 制服丨自拍丨欧美丨动漫丨 | 免费人成视频19674不收费 | a级国产视频 | 国产又粗又猛又爽又黄视频 | 免费国产在线观看 | 中文字幕第一页九 | 婷婷伊人久久 | 欧美色图久久 | 亚洲乱码1卡2卡3乱码在线芒果 | 日韩在线看片免费人成视频播放 | 久久久久久久久久久国产 | 亚洲激情中文字幕 | 亚洲欧美丝袜精品久久 | 国产aaaaaaa| 亚洲欧美精品无码一区二区三区 | 国产亚洲精品久久久久久久久动漫 | 国产精品自在在线午夜免费 | 最近免费中文字幕大全高清10 | 影音av在线 | 中文av一区二区 | 国产精品自拍网站 | 最新的中文字幕 | 丰满少妇熟女高潮流白浆 | 日日操日日插 | 国产精品无套粉嫩白浆在线 |