Stable Diffusion8

news2024/11/23 12:16:01

也写到第八了 ~~ 这次还是和mac相关哦~~ 

先吹吹,苹果亲自下场优化,在iPhone、iPad、Mac等设备上以惊人的速度运行Stable Diffusion就是这么简单。

输入一句话就能生成图像的 Stable Diffusion 已经火爆数月。它是一个开源模型,而且在消费级 GPU 上就能运行,是一项普通人就能接触到的「黑科技」。

在该模型走红之初,就有人尝试将其移植到苹果设备上运行,比如 M1 Mac、iPhone 14 Pro,并把教程传授给大家。

但令人没想到的是,前几天,苹果竟亲自下场了,手把手教大家如何直接将 Stable Diffusion 模型转换为自家 iPhone、iPad 和 Mac 可以运行的版本。

以下是生成结果示例:

在苹果设备上运行 Stable Diffusion 和 Core ML + diffusers 生成的图像。

苹果在 macOS 13.1 和 iOS 16.2 中发布了针对 Stable Diffusion 的 Core ML 优化,并通过一个代码库对部署过程进行了详细讲解。

在三款苹果设备(M1 iPad Pro 8GB、M1 MacBook Pro 16GB、M2 MacBook Air 8GB)上的测试结果表明,苹果推出的相关优化基本可以保证最新版 Stable Diffusion(SD 2.0)在半分钟内生成一张分辨率为 512x512 的图。

对于苹果的这一举动,不少人感叹,一个开源社区构建的模型已经优秀到可以让大公司主动采用,确实非常了不起。

另外,大家也开始猜测,未来,苹果会不会直接把 Stable Diffusion 放到自己的设备里?

为什么要让 Stable Diffusion 可以在苹果设备上运行?

自 2022 年 8 月首次公开发布以来,Stable Diffusion 已经被艺术家、开发人员和爱好者等充满活力的社区广泛采用,能够以最少的文本 prompt 创建前所未有的视觉内容。相应地,社区在几周内就围绕这个核心技术构建了一个包含扩展和工具的庞大生态系统。Stable Diffusion 已经变得个性化,而且可以拓展到英语以外的其他语言,这要归功于像 Hugging Face diffusers 这样的开源项目。

除了通过文本 prompt 生成图像,开发人员还发现了 Stable Diffusion 其他创造性的用途,如图像编辑、修复、补全、超分辨率、风格迁移。随着 Stable Diffusion 应用的增多,要想打造出任何地方的创意人员都能使用的应用程序,就需要确保开发者能够有效地利用这项技术,这一点至关重要。

在所有应用程序中,模型在何处运行是 Stable Diffusion 的一大关键问题。有很多原因可以解释为什么在设备上部署 Stable Diffusion 比基于服务器的方法更可取。首先,终端用户的隐私可以受到保护,因为用户提供的作为模型输入的任何数据都保留在用户自己的设备上。

其次,在初次下载之后,用户不需要连接互联网就可以使用该模型。最后,在本地部署此模型能让开发人员减少或消除服务器方面的成本。

用 Stable Diffusion 产出可观的结果需要经过长时间的迭代,因此在设备上部署模型的核心挑战之一在于生成结果的速率。这需要执行一个复杂的流程,包括 4 个不同的神经网络,总计约 12.75 亿个参数。要了解更多关于如何优化这种大小和复杂性的模型,以在 Apple Neural Engine 上运行,可以参阅以前的文章:Deploying Transformers on the Apple Neural Engine。

文章地址:https://machinelearning.apple.com/research/neural-engine-transformers

上文中概述的优化原则可以推广到 Stable Diffusion,尽管它比文中研究的模型大 18 倍。为 Stable Diffusion 优化 Core ML 和简化模型转换,可以让开发者更容易在他们的应用程序中以保护隐私和经济可行的方式利用该技术,并使其在 Apple Silicon 上展现出的性能达到最佳状态。

这次发布的版本包括一个 Python 包,用于使用 diffusers 和 coremltools 将 Stable Diffusion 模型从 PyTorch 转换到 Core ML,以及一个 Swift 包来部署模型。请访问 Core ML Stable Diffusion 代码存储库以启动,并获取关于基准测试和部署的详细说明。

项目地址:https://github.com/apple/ml-stable-diffusion

项目介绍

整个代码库包括:

  • python_coreml_stable_diffusion,一个 Python 包,用于将 PyTorch 模型转换为 Core ML 格式,并使用 Python 版的 Hugging Face diffusers 执行图像生成;

  • StableDiffusion,一个 Swift 包,开发者可以把它作为依赖包添加到他们的 Xcode 项目中,在他们的应用程序中部署图像生成功能。Swift 包依赖于 python_coreml_stable_diffusion 生成的 Core ML 模型文件。

将模型转换为 Core ML 版本

步骤 1:创建 Python 环境并安装依赖包:

步骤 2:登录或注册 Hugging Face 账户,生成用户访问令牌,并使用令牌通过在终端窗口运行 huggingface-cli login 来设置 Hugging Face API 访问。

步骤 3:找到想在 Hugging Face Hub 上使用的 Stable Diffusion 版本,接受使用条款。默认型号版本为 “CompVis/stable-diffusion-v1-4”。

步骤 4:从终端执行以下命令生成 Core ML 模型文件 (.mlpackage)

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

M1 MacBook Pro 一般需要 15-20 分钟。成功执行后,构成 Stable Diffusion 的 4 个神经网络模型将从 PyTorch 转换为 Core ML 版 (.mlpackage),并保存到指定的 < output-mlpackages-directory>.

用 Python 生成图像

使用基于 diffusers 的示例 Python 管道运行文本到图像生成。

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

使用 Swift 生成图像

构建 Swift 项目需要:

  • macOS 13 或更新版本

  • 安装了命令行工具的 Xcode 14.1 或更新版本。

  • Core ML 模型和 tokenization 资源。

如果将此模型部署到:

  • iPhone: iOS 16.2 及以上版本和 iPhone 12 及以上版本

  • iPad: iPadOS 16.2 或更新版本和 M1 或更新版本

  • Mac: macOS 13.1 或更新版本和 M1 或更新版本

Swift 包包含两个产品:StableDiffusion 库和 StableDiffusionSample 命令行工具。这两个产品都需要提供 Core ML 模型和 tokenization 资源。

性能基准测试

标准 CompVis/stable-diffusion-v1-4 基准。该基准测试由苹果公司在 2022 年 11 月使用 iOS 16.2、iPadOS 16.2 和 macOS 13.1 的公开测试版进行。

针对 macOS 设备,执行的程序是 python_coreml_stable_diffusion。对于 iOS 和 ipad 设备,有一个建立在 StableDiffusion Swift 包上的最小 Swift 测试应用程序。

图像生成过程遵循标准配置:

50 个推理步骤,512x512 输出图像分辨率,77 文本 token 序列长度,无分类器引导 (unet 批大小为 2)。

参考文章:https://machinelearning.apple.com/research/stable-diffusion-coreml-apple-silicon

whaosoft aiot http://143ai.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何配置settings.py文件

文章目录配置settings.py文件1) 修改语言与时区配置2) 设置时区不敏感3) 配置项目所需数据库4&#xff09;学会阅读报错信息配置settings.py文件 《settings.py配置文件&#xff08;详解&#xff09;》一文中&#xff0c;将 settings.py 配置文件的每一项给大家做了介绍。在开…

Matplotlib入门[03]——处理文本

Matplotlib入门[03]——处理文本 参考&#xff1a; https://ailearning.apachecn.org/Matplotlib官网Python 字符串前缀r、u、b、f含义 使用Jupyter进行练习 import matplotlib.pyplot as plt import numpy as np处理文本-基础 基础文本函数 在 matplotlib.pyplot 中&#xf…

服务访问质量(QoS)介绍与技术 二

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。个人爱好: 编程&#xff0c;打篮球&#xff0c;计算机知识个人名言&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石…

基于双参数蜜蜂算法解决车辆路径问题(Matlab代码实现)

目录 1 概述 1.1研究背景 2 运行结果 3 Matlab代码实现 4 参考文献 1 概述 群智能起源于自然环境中生物群体经过长期自然进化后具有的解决问题的能力,其中的许多问题在人类看来可以归属于高复杂度的优化问题。受到生态系统中一些具有社会群体特征的物种的行为启发,模仿自然…

python基础项目实战-简单版学生管理系统

我实现的学生管理系统主要涉及到的就是其中的增、删、改、查、显示、保存和退出这几个功能,分别将每一个功能单独用一个函数来实现的。 一、学生系统操作的主界面 二、学生系统主函数调用功能选项 三、学生系统学员的显示 四、学生系统学员的查找

window11安装docker小白教程

window11安装docker小白详细教程1、安装hyper-v2、安装wsl23、安装docker并初步运行1、安装hyper-v docker的运行依赖于linux内核&#xff0c;如果是windows的系统则需要安装一个运行linux的虚拟机。在window10及其以上的系统中可以安装hyper-v&#xff08;Hyper-V 是微软开发…

A股交易接口如何用c++实现查询股东代码的?

A股交易接口是投资者获取股票市场数据的一个工具&#xff0c;使用A股交易接口能够得到更多更准确的信息&#xff0c;让你在股市当中&#xff0c;操作起来更加便捷和有效&#xff0c;对股市市场行情动向判断更加的准确一些。 股票交易接口支持各类数据的查询&#xff0c;那么今…

实现主成分分析 (PCA) 和独立成分分析 (ICA) (Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

面试题: LEAD 和 LAG 求每个用户的页面停留时长

我们先来看看这两个函数的语法&#xff1a; LEAD(col,n,default) OVER() 说明&#xff1a; 用于统计窗口内向下第n行的值参数1&#xff1a; 为要取值的列名参数2&#xff1a; 为向下第n行&#xff0c;默认值为1&#xff0c;这个值是固定的&#xff0c;不能动态的变化参数3&am…

Redis事务、pub/sub、PipeLine-管道、benchmark性能测试详解

一. 事务 1. 概念补充 (1). 原子性 一个事务(transaction)中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会结束在中间某个环节。事务在执行过程中发生错误&#xff0c;会被恢复(Rollback)到事务开始前的状态&#xff0c;就像这个事务从来没…

SpringCloud Alibaba学习笔记,记重点!!

SpringCloud Alibaba入门简介 Spring Cloud Netflix 项目进入维护模式&#xff0c;Spring Cloud Netflix 将不再开发新的组件。Spring Cloud 版本迭代算是比较快的&#xff0c;因而出现了很多重大 ISSUE 都还来不及 Fix 就又推另一个 Release 了。进入维护模式意思就是目前一直…

深入了解- TCP拥塞状态机 tcp_fastretrans_alert

【推荐阅读】 浅析linux内核网络协议栈--linux bridge virtio-net 实现机制【一】&#xff08;图文并茂&#xff09; 深入理解SR-IOV和IO虚拟化 这里主要说的是TCP拥塞情况下的状态状态处理 /* Process an event, which can update packets-in-flight not trivially.* Main go…

投资者该如何看待股票接口?

大部分做量化的投资者都会使用股票接口或者量化平台来协助交易&#xff0c;我们应该怎样去看待这些工具呢&#xff1f; 首先&#xff0c;如果我们要做量化&#xff0c;肯定是需要一个靠谱的股票接口去协助自己的&#xff0c;不然只靠人工是无法达到程序化交易的目的的&#xff…

使用gitlab的cicd自动化部署vue项目shell流程踩坑之路

强烈建议&#xff1a;先在部署的服务器上手动跑一边流程 包括&#xff1a;&#xff08;服务器上要安装node、npm、git等依赖&#xff09; 1. git clone 仓库地址 2. npm install / yarn 安装依赖 3. cp -rf dist/ /var/www/html 如果以上步骤都没有出错&#xff0c;那再安…

自从面试了一个测试岗00后卷王,老油条感叹真干不过,但是...

周末和技术大佬们聚餐&#xff0c;聊到了测试行业的“金九银十”高峰就业问题&#xff0c;普遍认为转行和大学生入行的越来越多&#xff0c;内卷之势已然形成。 现在不论面试哪个级别的测试工程师&#xff0c;面试官都会问一句 “会编程吗&#xff1f;有没有自动化测试的经验&…

当线下门店遇上AI:华为云ModelBox携手佳华科技客流分析实践

摘要&#xff1a;在赋能传统门店客流经营数字化转型方面&#xff0c;华为云ModelBox与伙伴佳华科技合作推出的“华为云客流统计项目”&#xff0c;算是一次成功的探索。本文分享自华为云社区《当线下门店遇上AI—华为云ModelBox携手佳华科技客流分析实践》&#xff0c;作者&…

linux安装mysql8超详细到每步命令

1、到指定目录去下载安装包 cd /usr/local/src 2、下载mysql8 版本可以自己选择 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 3、解压mysql8, 通过xz命令解压出tar包(需要发时间解压可能会久&#xff0c;根据服务器性…

如何理解死锁?

目录 今日良言:等风来,不如追风去 一、死锁 1.概念 2.死锁的三个典型情况 3.死锁的必要条件 4.如何破除死锁 &#x1f433;今日良言:等风来,不如追风去 &#x1f415;一、死锁 &#x1f407;1.概念 多个线程在争夺资源时,陷入了僵持状态,都无法进行下去,都在等待对方释…

一种非线性权重的自适应鲸鱼优化算法IMWOA附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

uni-app简介、条件编译、App端Nvue开发、HTML5+、开发环境搭建、自定义组件、配置平台环境、uniCloud云开发平台

uni-app简介 &#xff1a; 概述&#xff1a;uni-app是一个前端跨平台框架&#xff1a;会uni-app就可以用一套代码&#xff08;类似vue语法&#xff09;打包出安卓、ios、及各种小程序&#xff08;微信、qq、支付宝等&#xff09;端跨平台发布。 生态&#xff1a;完整的生态&a…