Apple官方优化Stable Diffusion绘画教程
Apple官方优化Stable Diffusion绘画教程
苹果为M1芯片优化Stable Diffusion模型,其中Mac Studio (M1 Ultra, 64-core GPU)生成512*512的图像时间为9秒。想要1秒出图,可以在线体验3090显卡AI绘画。
AI绘图在线体验
二次元绘图
在线体验地址:Stable Diffusion
中文输入绘图
在线体验地址:Stable Diffusion
CoreML Stable Diffusion
苹果官方发布Python 包,用于使用 diffusers 和 coremltools 将 Stable Diffusion 模型从 PyTorch 转换到 Core ML,以及一个 Swift 包来部署模型。请访问 Core ML Stable Diffusion 代码存储库以启动,并获取关于基准测试和部署的详细说明。
项目地址
使用 Core ML 在 Apple Silicon 上运行stable-diffusion
该存储库包括:
python_coreml_stable_diffusion
,一个 Python 包,用于将 PyTorch 模型转换为 Core ML 格式并在 Python 中使用 Hugging Facestable-diffusion图像生成StableDiffusion
,一个 Swift 包,开发人员可以将其作为依赖项添加到他们的 Xcode 项目中,以在他们的应用程序中部署图像生成功能。Swift 包依赖于由生成的 Core ML 模型文件python_coreml_stable_diffusion
如果您在安装或运行时遇到问题,请参阅常见问题解答部分。
将模型转换为 Core ML
第一步:创建Python环境并安装依赖:
conda create -n coreml_stable_diffusion python=3.8 -y
conda activate coreml_stable_diffusion
cd /path/to/cloned/ml-stable-diffusion/repository
pip install -e .
第 2 步:登录或注册您的Hugging Face 帐户,生成用户访问令牌huggingface-cli login
并使用此令牌通过在终端窗口中运行来设置 Hugging Face API 访问。
第 3 步:导航至您想在Hugging Face Hub上使用的 Stable Diffusion 版本并接受其使用条款。默认模型版本为CompVis/stable-diffusion-v1-4。用户可以按照下一步中的描述更改模型版本。
第 4 步:从终端执行以下命令以生成 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 下载数 GB 的 PyTorch 检查点。
在 M1 MacBook Pro 上,这通常需要 15-20 分钟。成功执行后,构成 Stable Diffusion 的 4 个神经网络模型将从 PyTorch 转换为 Core ML ( .mlpackage
) 并保存到指定的<output-mlpackages-directory>
. 一些额外的值得注意的论点:
--model-version
: 模型版本默认为CompVis/stable-diffusion-v1-4。开发人员可以指定Hugging Face Hub上可用的其他版本,例如stabilityai/stable-diffusion-2-base & runwayml/stable-diffusion-v1-5。--bundle-resources-for-swift-cli
:编译所有 4 个模型并将它们与用于文本标记化的必要资源捆绑在一起,这些资源<output-mlpackages-directory>/Resources
应作为输入提供给 Swift 包。对于基于扩散器的 Python 管道,此标志不是必需的。--chunk-unet
:将 Unet 模型分成两个大致相等的块(每个块的权重小于 1GB)以进行移动友好部署。这是在 iOS 和 iPadOS 上部署 ANE所必需的。这不是 macOS 所必需的。Swift CLI 能够使用 Unet 模型的分块版本和常规版本,但优先考虑前者。请注意,chunked unet 与 Python 管道不兼容,因为 Python 管道仅适用于 macOS。分块仅适用于使用 Swift 的设备上部署。--attention-implementation
:默认为在 Apple Neural Engine 上部署 Transformers 中SPLIT_EINSUM
描述的实现。将切换到应该用于非 ANE 部署的替代方案。请参阅性能基准部分以获得进一步的指导。--attention-implementation ORIGINAL
--check-output-correctness
:将原始 PyTorch 模型的输出与最终 Core ML 模型的输出进行比较。此标志会显着增加 RAM 消耗,因此建议仅用于调试目的。
使用 Python 生成图像
使用基于stable_diffusion的示例 Python 管道运行文本到图像生成:
- 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
有关所有可用参数,请参阅帮助菜单:python -m python_coreml_stable_diffusion.pipeline -h
。一些值得注意的论点:
-i
:应该指向上面"将模型转换为 Core ML "部分的-o
第 4 步中的目录。--model-version
:如果您在将模型转换为 Core ML 时覆盖默认模型版本,则需要在此处指定相同的模型版本。--compute-unit
:请注意,此特定实现的最高性能计算单元可能因不同的硬件而异。CPU_AND_GPU
或者CPU_AND_NE
可能比ALL
. 请参阅性能基准部分以获得进一步的指导。--scheduler
: 如果你想尝试不同的调度器,你可以在这里指定。有关可用选项,请参阅帮助菜单。您还可以指定自定义推理步骤数--num-inference-steps
,默认为 50。
使用 Swift 生成图像
系统要求
构建 Swift 项目需要:
macOS 13 或更新版本
安装了命令行工具的 Xcode 14.1 或更高版本。请检查developer.apple.com以获取最新版本。
核心 ML 模型和标记化资源。请参阅上面
--bundle-resources-for-swift-cli
的将模型转换为 Core ML部分
如果将此模型部署到:
- 苹果手机
iOS 16.2 或更新版本
iPhone 12 或更新版本
- iPad
iPadOS 16.2 或更新版本
M1 或更新版本
- 苹果电脑
macOS 13.1 或更新版本
M1 或更新版本
CLI 用法示例
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>
输出将根据提示和随机种子命名:例如</path/to/output/image>/a_photo_of_an_astronaut_riding_a_horse_on_mars.93.final.png
请使用--help
flag 了解批处理生成等。
库使用示例
import StableDiffusion
...
let pipeline = try StableDiffusionPipeline(resourcesAt: resourceURL)
let image = try pipeline.generateImages(prompt: prompt, seed: seed).first
Swift包详情
这个 Swift 包包含两个产品:
StableDiffusion
LibStableDiffusionSample
命令行工具
这两种产品都需要提供 Core ML 模型和标记化资源。通过目录路径指定资源时,该目录必须包含以下内容:
TextEncoder.mlmodelc
(文本嵌入模型)Unet.mlmodelc
或UnetChunk1.mlmodelc
&UnetChunk2.mlmodelc
(去噪自动编码器模型)VAEDecoder.mlmodelc
(图像解码器模型)vocab.json
(分词器词汇文件)merges.text
(合并字节对编码文件)
可选地,它还可以包括安全检查器模型,某些版本的 Stable Diffusion 包括:
SafetyChecker.mlmodelc
请注意,首先检查 Unet 的分块版本。只有当它不存在时才会Unet.mlmodelc
加载完整的。iOS 和 iPadOS 需要分块,而 macOS 则不需要。
Apple官方优化Stable Diffusion绘画教程相关推荐
- 《ai绘画》最全stable diffusion安装教程 所有软件+所有指令
安装cuda,win键搜索nvidia Control Panel,打开软件 点击软件左下角系统信息 查看自己的cuda版本 打开网站,根据自己的版本选择cuda下载 网站 https://devel ...
- Stable Diffusion绘画入门
一,Stable Diffusion模型原理 目前开源的最火爆的AI绘画系统是 Stable Diffusion 模型(稳定扩散模型). 可以完成 text2img, img2img, depth2i ...
- Stable Diffusion 绘画初探 chilloutmix模型 人物画像首选
AI绘画发展以来出现了很多优质的平台,Stable Diffusion是普通大众最爱的之一,比起MJ来讲,它是现在愿意动手的人的首选,在这里要首先感谢GITHUB上的一众开源大佬. AI绘画首先吸引大 ...
- InsCode Stable Diffusion使用教程【InsCode Stable Diffusion美图活动一期】
记录一下如何使用 InsCode Stable Diffusion 进行 AI 绘图以及使用感受. 一.背景介绍 目前市面上比较权威,并能用于工作中的 AI 绘画软件其实就两款.一个叫 Midjour ...
- Stable Diffusion安装教程、model导入教程以及精品promt指令
文章目录 引言 原理 图片感知压缩 潜在扩散模型 安装 插件 插件与模型下载 常用promt关键字 交流讨论 引言 最近大火的AI作画吸引了很多人的目光,AI作画近期取得如此巨大进展的原因个人认为有很 ...
- Colab Stable Diffusion使用教程
使用网址链接: https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_di ...
- AMD显卡Ubuntu20.4系统下部署stable diffusion
今天来给大家做一个AMD显卡使用stable diffusion的小白(硬核)教程.最近这段时间AI特别火,很多小伙伴看到各种大佬用AI画的老婆非常精美(色情),弄的人心痒痒,自己也想画一个心仪的老婆 ...
- stable diffusion webui mov2mov
手把手教你用stable diffusion绘画ai插件mov2mov生成动画_哔哩哔哩_bilibili手把手教你用stable diffusion绘画ai插件mov2mov生成动画, 视频播放量 ...
- Stable Diffusion 图片生成AI模型 Windows Mac部署指南
Stable Diffusion是2022年发布的深度学习文本到图像生成模型.它主要用于根据文本的描述产生详细图像,它也可以应用于其他任务,如内补绘制.外补绘制,以及在提示词(英语)指导下产生图生图 ...
最新文章
- 如何低价坐飞机头等舱
- CF449B Jzzhu and Cities 迪杰斯特拉最短路算法
- 深度学习在AEC中的应用探索
- 在Ajax方式产生的浮动框中,点击选项包含某个关键字的选项
- oracle怎么查询和插入表,Oracle查询一个表的数据插入到另一个表
- C语言:存储类型,内存管理
- tensorflow 在加载大型的embedding模型参数时,会遇到cannot be larger than 2GB
- Windows下Node.js安装及环境配置
- Oracle数据库关闭的三种方法
- java关键字只static
- python ocr识别身份证_如何使用Tesseract训练基于Python的OCR以使用不同的国家身份证?...
- 微型计算机控制系统的硬件组成
- Hprose轻松实现远程过程调用(RPC)
- android epson wifi,epson投影仪无线投屏怎么连接手机、电脑
- 抖音的服务器究竟有多大
- 小米相机摄像头测试软件,摄像头拍照效果测试
- 导向滤波与opencv python实现
- 浅显易懂的经济学常识
- shiro身份认证(HelloWorld)
- vue---隐藏登录页面导航栏,登录成功跳转页面出现导航栏