最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Apple官方優(yōu)化Stable Diffusion繪畫教程

2022-12-06 17:58 作者:IT教程精選  | 我要投稿

Apple官方優(yōu)化Stable Diffusion繪畫教程

蘋果為M1芯片優(yōu)化Stable Diffusion模型,其中Mac Studio (M1 Ultra, 64-core GPU)生成512*512的圖像時(shí)間為9秒。想要1秒出圖,可以在線體驗(yàn)3090顯卡AI繪畫。

AI繪圖在線體驗(yàn)

二次元繪圖

在線體驗(yàn)地址:http://acg.aiartwork.online/

中文輸入繪圖

在線體驗(yàn)地址:http://taiyi.aiartwork.online/

CoreML Stable Diffusion

蘋果官方發(fā)布Python 包,用于使用 diffusers 和 coremltools 將 Stable Diffusion 模型從 PyTorch 轉(zhuǎn)換到 Core ML,以及一個(gè) Swift 包來(lái)部署模型。請(qǐng)?jiān)L問(wèn) Core ML Stable Diffusion 代碼存儲(chǔ)庫(kù)以啟動(dòng),并獲取關(guān)于基準(zhǔn)測(cè)試和部署的詳細(xì)說(shuō)明。

項(xiàng)目地址

使用 Core ML 在 Apple Silicon 上運(yùn)行stable-diffusion

該存儲(chǔ)庫(kù)包括:

  • python_coreml_stable_diffusion,一個(gè) Python 包,用于將 PyTorch 模型轉(zhuǎn)換為 Core ML 格式并在 Python 中使用 Hugging Facestable-diffusion圖像生成

  • StableDiffusion,一個(gè) Swift 包,開(kāi)發(fā)人員可以將其作為依賴項(xiàng)添加到他們的 Xcode 項(xiàng)目中,以在他們的應(yīng)用程序中部署圖像生成功能。Swift 包依賴于由生成的 Core ML 模型文件python_coreml_stable_diffusion

如果您在安裝或運(yùn)行時(shí)遇到問(wèn)題,請(qǐng)參閱常見(jiàn)問(wèn)題解答部分。

示例結(jié)果

Hugging Face Hub上有多種版本的 Stable Diffusion?。以下是其中三個(gè)模型的示例結(jié)果:

--model-versionstabilityai/stable-diffusion-2-baseCompVis/stable-diffusion-v1-4runwayml/stable-diffusion-v1-5輸出


M1 iPad Pro 8GB 延遲(秒)293838M1 MacBook Pro 16GB 延遲(秒)243535M2 MacBook Air 8GB 延遲(秒)182323

有關(guān)詳細(xì)信息,請(qǐng)參閱性能基準(zhǔn)部分的重要說(shuō)明。

將模型轉(zhuǎn)換為 Core ML

第一步:創(chuàng)建Python環(huán)境并安裝依賴:

  • ounter(line

  • ounter(line

  • ounter(line

  • ounter(line

conda create -n coreml_stable_diffusion python=3.8 -yconda activate coreml_stable_diffusioncd /path/to/cloned/ml-stable-diffusion/repositorypip install -e .

第 2 步:登錄或注冊(cè)您的Hugging Face 帳戶,生成用戶訪問(wèn)令牌huggingface-cli login并使用此令牌通過(guò)在終端窗口中運(yùn)行來(lái)設(shè)置 Hugging Face API 訪問(wèn)。

第 3 步:導(dǎo)航至您想在Hugging Face Hub上使用的 Stable Diffusion 版本并接受其使用條款。默認(rèn)模型版本為CompVis/stable-diffusion-v1-4。用戶可以按照下一步中的描述更改模型版本。

第 4 步:從終端執(zhí)行以下命令以生成 Core ML 模型文件 (?.mlpackage)

  • ounter(line

python -m python_coreml_stable_diffusion.torch2coreml --convert-unet --convert-text-encoder --convert-vae-decoder --convert-safety-checker -o <output-mlpackages-directory>

警告:此命令將從 Hugging Face 下載數(shù) GB 的 PyTorch 檢查點(diǎn)。

在 M1 MacBook Pro 上,這通常需要 15-20 分鐘。成功執(zhí)行后,構(gòu)成 Stable Diffusion 的 4 個(gè)神經(jīng)網(wǎng)絡(luò)模型將從 PyTorch 轉(zhuǎn)換為 Core ML (?.mlpackage) 并保存到指定的<output-mlpackages-directory>.?一些額外的值得注意的論點(diǎn):

  • --model-version: 模型版本默認(rèn)為CompVis/stable-diffusion-v1-4。開(kāi)發(fā)人員可以指定Hugging Face Hub上可用的其他版本,例如stabilityai/stable-diffusion-2-base?&?runwayml/stable-diffusion-v1-5。

  • --bundle-resources-for-swift-cli:編譯所有 4 個(gè)模型并將它們與用于文本標(biāo)記化的必要資源捆綁在一起,這些資源<output-mlpackages-directory>/Resources應(yīng)作為輸入提供給 Swift 包。對(duì)于基于擴(kuò)散器的 Python 管道,此標(biāo)志不是必需的。

  • --chunk-unet:將 Unet 模型分成兩個(gè)大致相等的塊(每個(gè)塊的權(quán)重小于 1GB)以進(jìn)行移動(dòng)友好部署。這是在 iOS 和 iPadOS 上部署 ANE所必需的。這不是 macOS 所必需的。Swift CLI 能夠使用 Unet 模型的分塊版本和常規(guī)版本,但優(yōu)先考慮前者。請(qǐng)注意,chunked unet 與 Python 管道不兼容,因?yàn)?Python 管道僅適用于 macOS。分塊僅適用于使用 Swift 的設(shè)備上部署。

  • --attention-implementation:默認(rèn)為在 Apple Neural Engine 上部署 Transformers 中SPLIT_EINSUM描述的實(shí)現(xiàn)。將切換到應(yīng)該用于非 ANE 部署的替代方案。請(qǐng)參閱性能基準(zhǔn)部分以獲得進(jìn)一步的指導(dǎo)。--attention-implementation ORIGINAL

  • --check-output-correctness:將原始 PyTorch 模型的輸出與最終 Core ML 模型的輸出進(jìn)行比較。此標(biāo)志會(huì)顯著增加 RAM 消耗,因此建議僅用于調(diào)試目的。

使用 Python 生成圖像

使用基于stable_diffusion的示例 Python 管道運(yùn)行文本到圖像生成:

  • ounter(line

python -m python_coreml_stable_diffusion.pipeline --prompt "a photo of an astronaut riding a horse on mars" -i <output-mlpackages-directory> -o </path/to/output/image> --compute-unit ALL --seed 93

有關(guān)所有可用參數(shù),請(qǐng)參閱幫助菜單:python -m python_coreml_stable_diffusion.pipeline -h。一些值得注意的論點(diǎn):

  • -i:應(yīng)該指向上面"將模型轉(zhuǎn)換為 Core ML?"部分的-o第 4 步中的目錄。

  • --model-version:如果您在將模型轉(zhuǎn)換為 Core ML 時(shí)覆蓋默認(rèn)模型版本,則需要在此處指定相同的模型版本。

  • --compute-unit:請(qǐng)注意,此特定實(shí)現(xiàn)的最高性能計(jì)算單元可能因不同的硬件而異。CPU_AND_GPU或者CPU_AND_NE可能比ALL.?請(qǐng)參閱性能基準(zhǔn)部分以獲得進(jìn)一步的指導(dǎo)。

  • --scheduler: 如果你想嘗試不同的調(diào)度器,你可以在這里指定。有關(guān)可用選項(xiàng),請(qǐng)參閱幫助菜單。您還可以指定自定義推理步驟數(shù)--num-inference-steps,默認(rèn)為 50。

使用 Swift 生成圖像

系統(tǒng)要求

構(gòu)建 Swift 項(xiàng)目需要:

  • macOS 13 或更新版本

  • 安裝了命令行工具的 Xcode 14.1 或更高版本。請(qǐng)檢查developer.apple.com以獲取最新版本。

  • 核心 ML 模型和標(biāo)記化資源。請(qǐng)參閱上面--bundle-resources-for-swift-cli的將模型轉(zhuǎn)換為 Core ML部分

如果將此模型部署到:

  • 蘋果手機(jī)

    • iOS 16.2 或更新版本

    • iPhone 12 或更新版本

  • iPad

    • iPadOS 16.2 或更新版本

    • M1 或更新版本

  • 蘋果電腦

    • macOS 13.1 或更新版本

    • M1 或更新版本

CLI 用法示例

  • ounter(line

swift run StableDiffusionSample "a photo of an astronaut riding a horse on mars" --resource-path <output-mlpackages-directory>/Resources/ --seed 93 --output-path </path/to/output/image>

輸出將根據(jù)提示和隨機(jī)種子命名:例如</path/to/output/image>/a_photo_of_an_astronaut_riding_a_horse_on_mars.93.final.png

請(qǐng)使用--helpflag 了解批處理生成等。

庫(kù)使用示例

  • ounter(line

  • ounter(line

  • ounter(line

  • ounter(line

import StableDiffusion...let pipeline = try StableDiffusionPipeline(resourcesAt: resourceURL)let image = try pipeline.generateImages(prompt: prompt, seed: seed).first

Swift包詳情

這個(gè) Swift 包包含兩個(gè)產(chǎn)品:

  • StableDiffusionLib

  • StableDiffusionSample命令行工具

這兩種產(chǎn)品都需要提供 Core ML 模型和標(biāo)記化資源。通過(guò)目錄路徑指定資源時(shí),該目錄必須包含以下內(nèi)容:

  • TextEncoder.mlmodelc(文本嵌入模型)

  • Unet.mlmodelcUnetChunk1.mlmodelc&?UnetChunk2.mlmodelc(去噪自動(dòng)編碼器模型)

  • VAEDecoder.mlmodelc(圖像解碼器模型)

  • vocab.json(分詞器詞匯文件)

  • merges.text(合并字節(jié)對(duì)編碼文件)

可選地,它還可以包括安全檢查器模型,某些版本的 Stable Diffusion 包括:

  • SafetyChecker.mlmodelc

請(qǐng)注意,首先檢查 Unet 的分塊版本。只有當(dāng)它不存在時(shí)才會(huì)Unet.mlmodelc加載完整的。iOS 和 iPadOS 需要分塊,而 macOS 則不需要。


Apple官方優(yōu)化Stable Diffusion繪畫教程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
河曲县| 大石桥市| 德阳市| 乌恰县| 景泰县| 龙江县| 临海市| 紫金县| 哈巴河县| 田林县| 肥西县| 绥宁县| 林口县| 寿宁县| 井冈山市| 城口县| 怀集县| 渝中区| 巴林右旗| 沅陵县| 宁津县| 精河县| 苏尼特右旗| 通河县| 枣庄市| 万安县| 三门县| 长治县| 海阳市| 牙克石市| 特克斯县| 许昌县| 道孚县| 华池县| 闸北区| 囊谦县| 石林| 吉木萨尔县| 武清区| 新巴尔虎右旗| 乐安县|