Buckets:
| import{s as nl,n as pl,o as al}from"../chunks/scheduler.e4ff9b64.js";import{S as ol,i as fl,e as p,s as i,c as f,h as ml,a,d as l,b as n,f as il,g as m,j as o,k as $t,l as Ml,m as s,n as M,t as u,o as r,p as d}from"../chunks/index.09f1bca0.js";import{C as ul,H as c,E as rl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.ef7e5b9e.js";import{C as y}from"../chunks/CodeBlock.0adc48e9.js";function dl(vt){let h,Ce,ye,we,U,Te,C,$e,w,Jt='<a href="https://developer.apple.com/documentation/coreml" rel="nofollow">Core ML</a> 是 Apple 框架支持的模型格式和机器学习库。如果您有兴趣在 macOS 或 iOS/iPadOS 应用中运行 Stable Diffusion 模型,本指南将展示如何将现有的 PyTorch 检查点转换为 Core ML 格式,并使用 Python 或 Swift 进行推理。',ve,T,gt="Core ML 模型可以利用 Apple 设备中所有可用的计算引擎:CPU、GPU 和 Apple Neural Engine(或 ANE,一种在 Apple Silicon Mac 和现代 iPhone/iPad 中可用的张量优化加速器)。根据模型及其运行的设备,Core ML 还可以混合和匹配计算引擎,例如,模型的某些部分可能在 CPU 上运行,而其他部分在 GPU 上运行。",Je,b,jt='<p>您还可以使用 PyTorch 内置的 <code>mps</code> 加速器在 Apple Silicon Mac 上运行 <code>diffusers</code> Python 代码库。这种方法在 <a href="mps">mps 指南</a> 中有详细解释,但它与原生应用不兼容。</p>',ge,$,je,v,Lt="Stable Diffusion 权重(或检查点)以 PyTorch 格式存储,因此在使用它们之前,需要将它们转换为 Core ML 格式。",Le,J,Gt='幸运的是,Apple 工程师基于 <code>diffusers</code> 开发了 <a href="https://github.com/apple/ml-stable-diffusion#-converting-models-to-core-ml" rel="nofollow">一个转换工具</a>,用于将 PyTorch 检查点转换为 Core ML。',Ge,g,_t="但在转换模型之前,花点时间探索 Hugging Face Hub——很可能您感兴趣的模型已经以 Core ML 格式提供:",_e,j,kt='<li><a href="https://huggingface.co/apple" rel="nofollow">Apple</a> 组织包括 Stable Diffusion 版本 1.4、1.5、2.0 基础和 2.1 基础</li> <li><a href="https://huggingface.co/coreml-community" rel="nofollow">coreml community</a> 包括自定义微调模型</li> <li>使用此 <a href="https://huggingface.co/models?pipeline_tag=text-to-image&library=coreml&p=2&sort=likes" rel="nofollow">过滤器</a> 返回所有可用的 Core ML 检查点</li>',ke,L,xt='如果您找不到感兴趣的模型,我们建议您遵循 Apple 的 <a href="https://github.com/apple/ml-stable-diffusion#-converting-models-to-core-ml" rel="nofollow">Converting Models to Core ML</a> 说明。',xe,G,Ze,_,Zt="Stable Diffusion 模型可以转换为不同的 Core ML 变体,用于不同目的:",Be,k,Bt=`<li>注意力类型 | |
| 使用了n个块。注意力操作用于“关注”图像表示中不同区域之间的关系,并理解图像和文本表示如何相关。注意力的计算和内存消耗很大,因此存在不同的实现方式,以适应不同设备的硬件特性。对于Core ML Stable Diffusion模型,有两种注意力变体:</li>`,We,x,Wt='<li><code>split_einsum</code>(<a href="https://machinelearning.apple.com/research/neural-engine-transformers" rel="nofollow">由Apple引入</a>)针对ANE设备进行了优化,这些设备在现代iPhone、iPad和M系列计算机中可用。</li> <li>“原始”注意力(在<code>diffusers</code>中使用的基础实现)仅与CPU/GPU兼容,不与ANE兼容。在CPU + GPU上使用<code>original</code>注意力运行模型可能比ANE<em>更快</em>。请参阅<a href="https://huggingface.co/blog/fast-mac-diffusers#performance-benchmarks" rel="nofollow">此性能基准</a>以及社区提供的<a href="https://github.com/huggingface/swift-coreml-diffusers/issues/31" rel="nofollow">一些额外测量</a>以获取更多细节。</li>',Xe,Z,Xt="<li>支持的推理框架。</li>",Ne,B,Nt='<li><code>packages</code>适用于Python推理。这可用于在尝试将转换后的Core ML模型集成到原生应用程序之前进行测试,或者如果您想探索Core ML性能但不需要支持原生应用程序。例如,具有Web UI的应用程序完全可以使用Python Core ML后端。</li> <li><code>compiled</code>模型是Swift代码所必需的。Hub中的<code>compiled</code>模型将大型UNet模型权重分成多个文件,以兼容iOS和iPadOS设备。这对应于<a href="https://github.com/apple/ml-stable-diffusion#-converting-models-to-core-ml" rel="nofollow"><code>--chunk-unet</code>转换选项</a>。如果您想支持原生应用程序,则需要选择<code>compiled</code>变体。</li>',Pe,W,Pt='官方的Core ML Stable Diffusion<a href="https://huggingface.co/apple/coreml-stable-diffusion-v1-4/tree/main" rel="nofollow">模型</a>包括这些变体,但社区的可能有所不同:',Se,X,He,N,St="您可以下载并使用所需的变体,如下所示。",Re,P,Ye,S,Ht="安装以下库以在Python中运行Core ML推理:",Ie,H,Fe,R,Ae,Y,Rt="要在Python中运行推理,请使用存储在<code>packages</code>文件夹中的版本之一,因为<code>compiled</code>版本仅与Swift兼容。您可以选择使用<code>original</code>或<code>split_einsum</code>注意力。",Ve,I,Yt="这是您如何从Hub下载<code>original</code>注意力变体到一个名为<code>models</code>的目录:",qe,F,Qe,A,ze,V,It="下载模型快照后,您可以使用 Apple 的 Python 脚本来测试它。",Ee,q,De,Q,Ft="使用 <code>-i</code> 标志将下载的检查点路径传递给脚本。<code>--compute-unit</code> 表示您希望允许用于推理的硬件。它必须是以下选项之一:<code>ALL</code>、<code>CPU_AND_GPU</code>、<code>CPU_ONLY</code>、<code>CPU_AND_NE</code>。您也可以提供可选的输出路径和用于可重现性的种子。",Oe,z,At="推理脚本假设您使用的是 Stable Diffusion 模型的原始版本,<code>CompVis/stable-diffusion-v1-4</code>。如果您使用另一个模型,您<em>必须</em>在推理命令行中使用 <code>--model-version</code> 选项指定其 Hub ID。这适用于已支持的模型以及您自己训练或微调的自定义模型。",Ke,E,Vt='例如,如果您想使用 <a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" rel="nofollow"><code>stable-diffusion-v1-5/stable-diffusion-v1-5</code></a>:',et,D,tt,O,lt,K,qt="在 Swift 中运行推理比在 Python 中稍快,因为模型已经以 <code>mlmodelc</code> 格式编译。这在应用启动时加载模型时很明显,但如果在之后运行多次生成,则不应明显。",st,ee,it,te,Qt="要在您的 Mac 上运行 Swift 推理,您需要一个 <code>compiled</code> 检查点版本。我们建议您使用类似于先前示例的 Python 代码在本地下载它们,但使用 <code>compiled</code> 变体之一:",nt,le,pt,se,at,ie,zt="要运行推理,请克隆 Apple 的仓库:",ot,ne,ft,pe,Et='然后使用 Apple 的命令行工具,<a href="https://www.swift.org/package-manager/#" rel="nofollow">Swift Package Manager</a>:',mt,ae,Mt,oe,Dt="您必须在 <code>--resource-path</code> 中指定上一步下载的检查点之一,请确保它包含扩展名为 <code>.mlmodelc</code> 的已编译 Core ML 包。<code>--compute-units</code> 必须是以下值之一:<code>all</code>、<code>cpuOnly</code>、<code>cpuAndGPU</code>、<code>cpuAndNeuralEngine</code>。",ut,fe,Ot='有关更多详细信息,请参考 <a href="https://github.com/apple/ml-stable-diffusion" rel="nofollow">Apple 仓库中的说明</a>。',rt,me,dt,Me,Kt="Core ML 模型和推理代码不支持 🧨 Diffusers 的许多功能、选项和灵活性。以下是一些需要注意的限制:",ct,ue,el="<li>Core ML 模型仅适用于推理。它们不能用于训练或微调。</li> <li>只有两个调度器已移植到 Swift:Stable Diffusion 使用的默认调度器和我们从 <code>diffusers</code> 实现移植到 Swift 的 <code>DPMSolverMultistepScheduler</code>。我们推荐您使用 <code>DPMSolverMultistepScheduler</code>,因为它在约一半的步骤中产生相同的质量。</li> <li>负面提示、无分类器引导尺度和图像到图像任务在推理代码中可用。高级功能如深度引导、ControlNet 和潜在上采样器尚不可用。</li>",ht,re,tl='Apple 的 <a href="https://github.com/apple/ml-stable-diffusion" rel="nofollow">转换和推理仓库</a> 和我们自己的 <a href="https://github.com/huggingface/swift-coreml-diffusers" rel="nofollow">swift-coreml-diffusers</a> 仓库旨在作为技术演示,以帮助其他开发者在此基础上构建。',bt,de,ll="如果您对任何缺失功能有强烈需求,请随时提交功能请求或更好的是,贡献一个 PR 🙂。",yt,ce,Ut,he,sl='一个简单的方法来在您自己的 Apple 硬件上运行 Stable Diffusion 是使用 <a href="https://github.com/huggingface/swift-coreml-diffusers" rel="nofollow">我们的开源 Swift 仓库</a>,它基于 <code>diffusers</code> 和 Apple 的转换和推理仓库。您可以研究代码,使用 <a href="https://developer.apple.com/xcode/" rel="nofollow">Xcode</a> 编译它,并根据您的需求进行适配。为了方便,<a href="https://apps.apple.com/app/diffusers/id1666309574" rel="nofollow">App Store 中还有一个独立 Mac 应用</a>,因此您无需处理代码或 IDE 即可使用它。如果您是开发者,并已确定 Core ML 是构建您的 Stable Diffusion 应用的最佳解决方案,那么您可以使用本指南的其余部分来开始您的项目。我们迫不及待想看看您会构建什么 🙂。',Ct,be,wt,Ue,Tt;return U=new ul({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),C=new c({props:{title:"如何使用 Core ML 运行 Stable Diffusion",local:"如何使用-core-ml-运行-stable-diffusion",headingTag:"h1"}}),$=new c({props:{title:"Stable Diffusion Core ML 检查点",local:"stable-diffusion-core-ml-检查点",headingTag:"h2"}}),G=new c({props:{title:"选择要使用的 Core ML 变体",local:"选择要使用的-core-ml-变体",headingTag:"h2"}}),X=new y({props:{code:"Y29yZW1sLXN0YWJsZS1kaWZmdXNpb24tdjEtNCUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMFJFQURNRS5tZCUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMG9yaWdpbmFsJTBBJUUyJTk0JTgyJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwY29tcGlsZWQlMEElRTIlOTQlODIlMjAlMjAlMjAlRTIlOTQlOTQlRTIlOTQlODAlRTIlOTQlODAlMjBwYWNrYWdlcyUwQSVFMiU5NCU5NCVFMiU5NCU4MCVFMiU5NCU4MCUyMHNwbGl0X2VpbnN1bSUwQSUyMCUyMCUyMCUyMCVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMGNvbXBpbGVkJTBBJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwcGFja2FnZXM=",highlighted:`coreml-stable-<span class="hljs-keyword">diffusion-v1-4 | |
| </span>├── README.md | |
| ├── <span class="hljs-keyword">original | |
| </span>│ ├── compiled | |
| │ └── packages | |
| └── split_einsum | |
| ├── compiled | |
| └── packages`,wrap:!1}}),P=new c({props:{title:"Python中的Core ML推理",local:"python中的core-ml推理",headingTag:"h2"}}),H=new y({props:{code:"cGlwJTIwaW5zdGFsbCUyMGh1Z2dpbmdmYWNlX2h1YiUwQXBpcCUyMGluc3RhbGwlMjBnaXQlMkJodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZhcHBsZSUyRm1sLXN0YWJsZS1kaWZmdXNpb24=",highlighted:`pip install huggingface_hub | |
| pip install git+https://github.com/apple/ml-stable-diffusion`,wrap:!1}}),R=new c({props:{title:"下载模型检查点",local:"下载模型检查点",headingTag:"h3"}}),F=new y({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMHNuYXBzaG90X2Rvd25sb2FkJTBBZnJvbSUyMHBhdGhsaWIlMjBpbXBvcnQlMjBQYXRoJTBBJTBBcmVwb19pZCUyMCUzRCUyMCUyMmFwcGxlJTJGY29yZW1sLXN0YWJsZS1kaWZmdXNpb24tdjEtNCUyMiUwQXZhcmlhbnQlMjAlM0QlMjAlMjJvcmlnaW5hbCUyRnBhY2thZ2VzJTIyJTBBJTBBbW8lMEFkZWxfcGF0aCUyMCUzRCUyMFBhdGgoJTIyLiUyRm1vZGVscyUyMiklMjAlMkYlMjAocmVwb19pZC5zcGxpdCglMjIlMkYlMjIpJTVCLTElNUQlMjAlMkIlMjAlMjJfJTIyJTIwJTJCJTIwdmFyaWFudC5yZXBsYWNlKCUyMiUyRiUyMiUyQyUyMCUyMl8lMjIpKSUwQXNuYXBzaG90X2Rvd25sb2FkKHJlcG9faWQlMkMlMjBhbGxvd19wYXR0ZXJucyUzRGYlMjIlN0J2YXJpYW50JTdEJTJGKiUyMiUyQyUyMGxvY2FsX2RpciUzRG1vZGVsX3BhdGglMkMlMjBsb2NhbF9kaXJfdXNlX3N5bWxpbmtzJTNERmFsc2UpJTBBcHJpbnQoZiUyMk1vZGVsJTIwZG93bmxvYWRlZCUyMGF0JTIwJTdCbW9kZWxfcGF0aCU3RCUyMik=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> snapshot_download | |
| <span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path | |
| repo_id = <span class="hljs-string">"apple/coreml-stable-diffusion-v1-4"</span> | |
| variant = <span class="hljs-string">"original/packages"</span> | |
| mo | |
| del_path = Path(<span class="hljs-string">"./models"</span>) / (repo_id.split(<span class="hljs-string">"/"</span>)[-<span class="hljs-number">1</span>] + <span class="hljs-string">"_"</span> + variant.replace(<span class="hljs-string">"/"</span>, <span class="hljs-string">"_"</span>)) | |
| snapshot_download(repo_id, allow_patterns=<span class="hljs-string">f"<span class="hljs-subst">{variant}</span>/*"</span>, local_dir=model_path, local_dir_use_symlinks=<span class="hljs-literal">False</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Model downloaded at <span class="hljs-subst">{model_path}</span>"</span>)`,wrap:!1}}),A=new c({props:{title:"推理",local:"python-inference",headingTag:"h3"}}),q=new y({props:{code:"cHl0aG9uJTIwLW0lMjBweXRob25fY29yZW1sX3N0YWJsZV9kaWZmdXNpb24ucGlwZWxpbmUlMjAtLXByb21wdCUyMCUyMmElMjBwaG90byUyMG9mJTIwYW4lMjBhc3Ryb25hdXQlMjByaWRpbmclMjBhJTIwaG9yc2UlMjBvbiUyMG1hcnMlMjIlMjAtaSUyMC4lMkZtb2RlbHMlMkZjb3JlbWwtc3RhYmxlLWRpZmZ1c2lvbi12MS00X29yaWdpbmFsX3BhY2thZ2VzJTJGb3JpZ2luYWwlMkZwYWNrYWdlcyUyMC1vJTIwJTNDJTJGcGF0aCUyRnRvJTJGb3V0cHV0JTJGaW1hZ2UlM0UlMjAtLWNvbXB1dGUtdW5pdCUyMENQVV9BTkRfR1BVJTIwLS1zZWVkJTIwOTM=",highlighted:"python -m python_coreml_stable_diffusion.pipeline --prompt "a photo of an astronaut riding a horse on mars" -i ./models/coreml-stable-diffusion-v1-4_original_packages/original/packages -o </path/to/output/image> --compute-unit CPU_AND_GPU --seed 93",wrap:!1}}),D=new y({props:{code:"cHl0aG9uJTIwLW0lMjBweXRob25fY29yZW1sX3N0YWJsZV9kaWZmdXNpb24ucGlwZWxpbmUlMjAtLXByb21wdCUyMCUyMmElMjBwaG90byUyMG9mJTIwYW4lMjBhc3Ryb25hdXQlMjByaWRpbmclMjBhJTIwaG9yc2UlMjBvbiUyMG1hcnMlMjIlMjAtLWNvbXB1dGUtdW5pdCUyMEFMTCUyMC1vJTIwb3V0cHV0JTIwLS1zZWVkJTIwOTMlMjAtaSUyMG1vZGVscyUyRmNvcmVtbC1zdGFibGUtZGlmZnVzaW9uLXYxLTVfb3JpZ2luYWxfcGFja2FnZXMlMjAtLW1vZGVsLXZlcnNpb24lMjBzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTU=",highlighted:"python -m python_coreml_stable_diffusion.pipeline --prompt "a photo of an astronaut riding a horse on mars" --compute-unit ALL -o output --seed 93 -i models/coreml-stable-diffusion-v1-5_original_packages --model-version stable-diffusion-v1-5/stable-diffusion-v1-5",wrap:!1}}),O=new c({props:{title:"Core ML 在 Swift 中的推理",local:"core-ml-在-swift-中的推理",headingTag:"h2"}}),ee=new c({props:{title:"下载",local:"下载",headingTag:"h3"}}),le=new y({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMHNuYXBzaG90X2Rvd25sb2FkJTBBZnJvbSUyMHBhdGhsaWIlMjBpbXBvcnQlMjBQYXRoJTBBJTBBcmVwb19pZCUyMCUzRCUyMCUyMmFwcGxlJTJGY29yZW1sLXN0YWJsZS1kaWZmdXNpb24tdjEtNCUyMiUwQXZhcmlhbnQlMjAlM0QlMjAlMjJvcmlnaW5hbCUyRmNvbXBpbGVkJTIyJTBBJTBBbW9kZWxfcGF0aCUyMCUzRCUyMFBhdGgoJTIyLiUyRm1vZGVscyUyMiklMjAlMkYlMjAocmVwb19pZC5zcGxpdCglMjIlMkYlMjIpJTVCLTElNUQlMjAlMkIlMjAlMjJfJTIyJTIwJTJCJTIwdmFyaWFudC5yZXBsYWNlKCUyMiUyRiUyMiUyQyUyMCUyMl8lMjIpKSUwQXNuYXBzaG90X2Rvd25sb2FkKHJlcG9faWQlMkMlMjBhbGxvd19wYXR0ZXJucyUzRGYlMjIlN0J2YXJpYW50JTdEJTJGKiUyMiUyQyUyMGxvY2FsX2RpciUzRG1vZGVsX3BhdGglMkMlMjBsb2NhbF9kaXJfdXNlX3N5bWxpbmtzJTNERmFsc2UpJTBBcHJpbnQoZiUyMk1vZGVsJTIwZG93bmxvYWRlZCUyMGF0JTIwJTdCbW9kZWxfcGF0aCU3RCUyMik=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> snapshot_download | |
| <span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path | |
| repo_id = <span class="hljs-string">"apple/coreml-stable-diffusion-v1-4"</span> | |
| variant = <span class="hljs-string">"original/compiled"</span> | |
| model_path = Path(<span class="hljs-string">"./models"</span>) / (repo_id.split(<span class="hljs-string">"/"</span>)[-<span class="hljs-number">1</span>] + <span class="hljs-string">"_"</span> + variant.replace(<span class="hljs-string">"/"</span>, <span class="hljs-string">"_"</span>)) | |
| snapshot_download(repo_id, allow_patterns=<span class="hljs-string">f"<span class="hljs-subst">{variant}</span>/*"</span>, local_dir=model_path, local_dir_use_symlinks=<span class="hljs-literal">False</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Model downloaded at <span class="hljs-subst">{model_path}</span>"</span>)`,wrap:!1}}),se=new c({props:{title:"推理",local:"swift-inference",headingTag:"h3"}}),ne=new y({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZhcHBsZSUyRm1sLXN0YWJsZS1kaWZmdXNpb24lMEFjZCUyMG1sLXN0YWJsZS1kaWZmdXNpb24=",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/apple/ml-stable-diffusion | |
| <span class="hljs-built_in">cd</span> ml-stable-diffusion`,wrap:!1}}),ae=new y({props:{code:"c3dpZnQlMjBydW4lMjBTdGFibGVEaWZmdXNpb25TYW1wbGUlMjAtLXJlc291cmNlLXBhdGglMjBtb2RlbHMlMkZjb3JlbWwtc3RhYmxlLWRpZmZ1c2lvbi12MS00X29yaWdpbmFsX2NvbXBpbGVkJTIwLS1jb21wdXRlLXVuaXRzJTIwYWxsJTIwJTIyYSUyMHBob3RvJTIwb2YlMjBhbiUyMGFzdHJvbmF1dCUyMHJpZGluZyUyMGElMjBob3JzZSUyMG9uJTIwbWFycyUyMg==",highlighted:'swift run StableDiffusionSample --resource-path models/coreml-stable-diffusion-v1-4_original_compiled --compute-units all <span class="hljs-string">"a photo of an astronaut riding a horse on mars"</span>',wrap:!1}}),me=new c({props:{title:"支持的 Diffusers 功能",local:"支持的-diffusers-功能",headingTag:"h2"}}),ce=new c({props:{title:"原生 Diffusers Swift 应用",local:"原生-diffusers-swift-应用",headingTag:"h2"}}),be=new rl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/optimization/coreml.md"}}),{c(){h=p("meta"),Ce=i(),ye=p("p"),we=i(),f(U.$$.fragment),Te=i(),f(C.$$.fragment),$e=i(),w=p("p"),w.innerHTML=Jt,ve=i(),T=p("p"),T.textContent=gt,Je=i(),b=p("blockquote"),b.innerHTML=jt,ge=i(),f($.$$.fragment),je=i(),v=p("p"),v.textContent=Lt,Le=i(),J=p("p"),J.innerHTML=Gt,Ge=i(),g=p("p"),g.textContent=_t,_e=i(),j=p("ul"),j.innerHTML=kt,ke=i(),L=p("p"),L.innerHTML=xt,xe=i(),f(G.$$.fragment),Ze=i(),_=p("p"),_.textContent=Zt,Be=i(),k=p("ul"),k.innerHTML=Bt,We=i(),x=p("ul"),x.innerHTML=Wt,Xe=i(),Z=p("ul"),Z.innerHTML=Xt,Ne=i(),B=p("ul"),B.innerHTML=Nt,Pe=i(),W=p("p"),W.innerHTML=Pt,Se=i(),f(X.$$.fragment),He=i(),N=p("p"),N.textContent=St,Re=i(),f(P.$$.fragment),Ye=i(),S=p("p"),S.textContent=Ht,Ie=i(),f(H.$$.fragment),Fe=i(),f(R.$$.fragment),Ae=i(),Y=p("p"),Y.innerHTML=Rt,Ve=i(),I=p("p"),I.innerHTML=Yt,qe=i(),f(F.$$.fragment),Qe=i(),f(A.$$.fragment),ze=i(),V=p("p"),V.textContent=It,Ee=i(),f(q.$$.fragment),De=i(),Q=p("p"),Q.innerHTML=Ft,Oe=i(),z=p("p"),z.innerHTML=At,Ke=i(),E=p("p"),E.innerHTML=Vt,et=i(),f(D.$$.fragment),tt=i(),f(O.$$.fragment),lt=i(),K=p("p"),K.innerHTML=qt,st=i(),f(ee.$$.fragment),it=i(),te=p("p"),te.innerHTML=Qt,nt=i(),f(le.$$.fragment),pt=i(),f(se.$$.fragment),at=i(),ie=p("p"),ie.textContent=zt,ot=i(),f(ne.$$.fragment),ft=i(),pe=p("p"),pe.innerHTML=Et,mt=i(),f(ae.$$.fragment),Mt=i(),oe=p("p"),oe.innerHTML=Dt,ut=i(),fe=p("p"),fe.innerHTML=Ot,rt=i(),f(me.$$.fragment),dt=i(),Me=p("p"),Me.textContent=Kt,ct=i(),ue=p("ul"),ue.innerHTML=el,ht=i(),re=p("p"),re.innerHTML=tl,bt=i(),de=p("p"),de.textContent=ll,yt=i(),f(ce.$$.fragment),Ut=i(),he=p("p"),he.innerHTML=sl,Ct=i(),f(be.$$.fragment),wt=i(),Ue=p("p"),this.h()},l(e){const t=ml("svelte-u9bgzb",document.head);h=a(t,"META",{name:!0,content:!0}),t.forEach(l),Ce=n(e),ye=a(e,"P",{}),il(ye).forEach(l),we=n(e),m(U.$$.fragment,e),Te=n(e),m(C.$$.fragment,e),$e=n(e),w=a(e,"P",{"data-svelte-h":!0}),o(w)!=="svelte-1wf5vj4"&&(w.innerHTML=Jt),ve=n(e),T=a(e,"P",{"data-svelte-h":!0}),o(T)!=="svelte-gf9zk3"&&(T.textContent=gt),Je=n(e),b=a(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),o(b)!=="svelte-1dk2d10"&&(b.innerHTML=jt),ge=n(e),m($.$$.fragment,e),je=n(e),v=a(e,"P",{"data-svelte-h":!0}),o(v)!=="svelte-ka1aol"&&(v.textContent=Lt),Le=n(e),J=a(e,"P",{"data-svelte-h":!0}),o(J)!=="svelte-145gnn0"&&(J.innerHTML=Gt),Ge=n(e),g=a(e,"P",{"data-svelte-h":!0}),o(g)!=="svelte-tea2ud"&&(g.textContent=_t),_e=n(e),j=a(e,"UL",{"data-svelte-h":!0}),o(j)!=="svelte-1kn6t00"&&(j.innerHTML=kt),ke=n(e),L=a(e,"P",{"data-svelte-h":!0}),o(L)!=="svelte-12wixek"&&(L.innerHTML=xt),xe=n(e),m(G.$$.fragment,e),Ze=n(e),_=a(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-spmbrr"&&(_.textContent=Zt),Be=n(e),k=a(e,"UL",{"data-svelte-h":!0}),o(k)!=="svelte-19sk85z"&&(k.innerHTML=Bt),We=n(e),x=a(e,"UL",{"data-svelte-h":!0}),o(x)!=="svelte-5kn932"&&(x.innerHTML=Wt),Xe=n(e),Z=a(e,"UL",{"data-svelte-h":!0}),o(Z)!=="svelte-1s3sbhj"&&(Z.innerHTML=Xt),Ne=n(e),B=a(e,"UL",{"data-svelte-h":!0}),o(B)!=="svelte-w0ov0y"&&(B.innerHTML=Nt),Pe=n(e),W=a(e,"P",{"data-svelte-h":!0}),o(W)!=="svelte-1jptvtn"&&(W.innerHTML=Pt),Se=n(e),m(X.$$.fragment,e),He=n(e),N=a(e,"P",{"data-svelte-h":!0}),o(N)!=="svelte-1atgoy3"&&(N.textContent=St),Re=n(e),m(P.$$.fragment,e),Ye=n(e),S=a(e,"P",{"data-svelte-h":!0}),o(S)!=="svelte-1ql7k8p"&&(S.textContent=Ht),Ie=n(e),m(H.$$.fragment,e),Fe=n(e),m(R.$$.fragment,e),Ae=n(e),Y=a(e,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-xoyj6l"&&(Y.innerHTML=Rt),Ve=n(e),I=a(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-1rtcxpe"&&(I.innerHTML=Yt),qe=n(e),m(F.$$.fragment,e),Qe=n(e),m(A.$$.fragment,e),ze=n(e),V=a(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-q77kkx"&&(V.textContent=It),Ee=n(e),m(q.$$.fragment,e),De=n(e),Q=a(e,"P",{"data-svelte-h":!0}),o(Q)!=="svelte-1xt2ga4"&&(Q.innerHTML=Ft),Oe=n(e),z=a(e,"P",{"data-svelte-h":!0}),o(z)!=="svelte-1c35bv2"&&(z.innerHTML=At),Ke=n(e),E=a(e,"P",{"data-svelte-h":!0}),o(E)!=="svelte-o3r1nh"&&(E.innerHTML=Vt),et=n(e),m(D.$$.fragment,e),tt=n(e),m(O.$$.fragment,e),lt=n(e),K=a(e,"P",{"data-svelte-h":!0}),o(K)!=="svelte-1giaiqz"&&(K.innerHTML=qt),st=n(e),m(ee.$$.fragment,e),it=n(e),te=a(e,"P",{"data-svelte-h":!0}),o(te)!=="svelte-10xj3oz"&&(te.innerHTML=Qt),nt=n(e),m(le.$$.fragment,e),pt=n(e),m(se.$$.fragment,e),at=n(e),ie=a(e,"P",{"data-svelte-h":!0}),o(ie)!=="svelte-hhu151"&&(ie.textContent=zt),ot=n(e),m(ne.$$.fragment,e),ft=n(e),pe=a(e,"P",{"data-svelte-h":!0}),o(pe)!=="svelte-1jxncar"&&(pe.innerHTML=Et),mt=n(e),m(ae.$$.fragment,e),Mt=n(e),oe=a(e,"P",{"data-svelte-h":!0}),o(oe)!=="svelte-gbwvtm"&&(oe.innerHTML=Dt),ut=n(e),fe=a(e,"P",{"data-svelte-h":!0}),o(fe)!=="svelte-1bh9zl6"&&(fe.innerHTML=Ot),rt=n(e),m(me.$$.fragment,e),dt=n(e),Me=a(e,"P",{"data-svelte-h":!0}),o(Me)!=="svelte-bkm37e"&&(Me.textContent=Kt),ct=n(e),ue=a(e,"UL",{"data-svelte-h":!0}),o(ue)!=="svelte-1fspwg1"&&(ue.innerHTML=el),ht=n(e),re=a(e,"P",{"data-svelte-h":!0}),o(re)!=="svelte-1e4jw66"&&(re.innerHTML=tl),bt=n(e),de=a(e,"P",{"data-svelte-h":!0}),o(de)!=="svelte-aadz0w"&&(de.textContent=ll),yt=n(e),m(ce.$$.fragment,e),Ut=n(e),he=a(e,"P",{"data-svelte-h":!0}),o(he)!=="svelte-jjnlqd"&&(he.innerHTML=sl),Ct=n(e),m(be.$$.fragment,e),wt=n(e),Ue=a(e,"P",{}),il(Ue).forEach(l),this.h()},h(){$t(h,"name","hf:doc:metadata"),$t(h,"content",cl),$t(b,"class","tip")},m(e,t){Ml(document.head,h),s(e,Ce,t),s(e,ye,t),s(e,we,t),M(U,e,t),s(e,Te,t),M(C,e,t),s(e,$e,t),s(e,w,t),s(e,ve,t),s(e,T,t),s(e,Je,t),s(e,b,t),s(e,ge,t),M($,e,t),s(e,je,t),s(e,v,t),s(e,Le,t),s(e,J,t),s(e,Ge,t),s(e,g,t),s(e,_e,t),s(e,j,t),s(e,ke,t),s(e,L,t),s(e,xe,t),M(G,e,t),s(e,Ze,t),s(e,_,t),s(e,Be,t),s(e,k,t),s(e,We,t),s(e,x,t),s(e,Xe,t),s(e,Z,t),s(e,Ne,t),s(e,B,t),s(e,Pe,t),s(e,W,t),s(e,Se,t),M(X,e,t),s(e,He,t),s(e,N,t),s(e,Re,t),M(P,e,t),s(e,Ye,t),s(e,S,t),s(e,Ie,t),M(H,e,t),s(e,Fe,t),M(R,e,t),s(e,Ae,t),s(e,Y,t),s(e,Ve,t),s(e,I,t),s(e,qe,t),M(F,e,t),s(e,Qe,t),M(A,e,t),s(e,ze,t),s(e,V,t),s(e,Ee,t),M(q,e,t),s(e,De,t),s(e,Q,t),s(e,Oe,t),s(e,z,t),s(e,Ke,t),s(e,E,t),s(e,et,t),M(D,e,t),s(e,tt,t),M(O,e,t),s(e,lt,t),s(e,K,t),s(e,st,t),M(ee,e,t),s(e,it,t),s(e,te,t),s(e,nt,t),M(le,e,t),s(e,pt,t),M(se,e,t),s(e,at,t),s(e,ie,t),s(e,ot,t),M(ne,e,t),s(e,ft,t),s(e,pe,t),s(e,mt,t),M(ae,e,t),s(e,Mt,t),s(e,oe,t),s(e,ut,t),s(e,fe,t),s(e,rt,t),M(me,e,t),s(e,dt,t),s(e,Me,t),s(e,ct,t),s(e,ue,t),s(e,ht,t),s(e,re,t),s(e,bt,t),s(e,de,t),s(e,yt,t),M(ce,e,t),s(e,Ut,t),s(e,he,t),s(e,Ct,t),M(be,e,t),s(e,wt,t),s(e,Ue,t),Tt=!0},p:pl,i(e){Tt||(u(U.$$.fragment,e),u(C.$$.fragment,e),u($.$$.fragment,e),u(G.$$.fragment,e),u(X.$$.fragment,e),u(P.$$.fragment,e),u(H.$$.fragment,e),u(R.$$.fragment,e),u(F.$$.fragment,e),u(A.$$.fragment,e),u(q.$$.fragment,e),u(D.$$.fragment,e),u(O.$$.fragment,e),u(ee.$$.fragment,e),u(le.$$.fragment,e),u(se.$$.fragment,e),u(ne.$$.fragment,e),u(ae.$$.fragment,e),u(me.$$.fragment,e),u(ce.$$.fragment,e),u(be.$$.fragment,e),Tt=!0)},o(e){r(U.$$.fragment,e),r(C.$$.fragment,e),r($.$$.fragment,e),r(G.$$.fragment,e),r(X.$$.fragment,e),r(P.$$.fragment,e),r(H.$$.fragment,e),r(R.$$.fragment,e),r(F.$$.fragment,e),r(A.$$.fragment,e),r(q.$$.fragment,e),r(D.$$.fragment,e),r(O.$$.fragment,e),r(ee.$$.fragment,e),r(le.$$.fragment,e),r(se.$$.fragment,e),r(ne.$$.fragment,e),r(ae.$$.fragment,e),r(me.$$.fragment,e),r(ce.$$.fragment,e),r(be.$$.fragment,e),Tt=!1},d(e){e&&(l(Ce),l(ye),l(we),l(Te),l($e),l(w),l(ve),l(T),l(Je),l(b),l(ge),l(je),l(v),l(Le),l(J),l(Ge),l(g),l(_e),l(j),l(ke),l(L),l(xe),l(Ze),l(_),l(Be),l(k),l(We),l(x),l(Xe),l(Z),l(Ne),l(B),l(Pe),l(W),l(Se),l(He),l(N),l(Re),l(Ye),l(S),l(Ie),l(Fe),l(Ae),l(Y),l(Ve),l(I),l(qe),l(Qe),l(ze),l(V),l(Ee),l(De),l(Q),l(Oe),l(z),l(Ke),l(E),l(et),l(tt),l(lt),l(K),l(st),l(it),l(te),l(nt),l(pt),l(at),l(ie),l(ot),l(ft),l(pe),l(mt),l(Mt),l(oe),l(ut),l(fe),l(rt),l(dt),l(Me),l(ct),l(ue),l(ht),l(re),l(bt),l(de),l(yt),l(Ut),l(he),l(Ct),l(wt),l(Ue)),l(h),d(U,e),d(C,e),d($,e),d(G,e),d(X,e),d(P,e),d(H,e),d(R,e),d(F,e),d(A,e),d(q,e),d(D,e),d(O,e),d(ee,e),d(le,e),d(se,e),d(ne,e),d(ae,e),d(me,e),d(ce,e),d(be,e)}}}const cl='{"title":"如何使用 Core ML 运行 Stable Diffusion","local":"如何使用-core-ml-运行-stable-diffusion","sections":[{"title":"Stable Diffusion Core ML 检查点","local":"stable-diffusion-core-ml-检查点","sections":[],"depth":2},{"title":"选择要使用的 Core ML 变体","local":"选择要使用的-core-ml-变体","sections":[],"depth":2},{"title":"Python中的Core ML推理","local":"python中的core-ml推理","sections":[{"title":"下载模型检查点","local":"下载模型检查点","sections":[],"depth":3},{"title":"推理","local":"python-inference","sections":[],"depth":3}],"depth":2},{"title":"Core ML 在 Swift 中的推理","local":"core-ml-在-swift-中的推理","sections":[{"title":"下载","local":"下载","sections":[],"depth":3},{"title":"推理","local":"swift-inference","sections":[],"depth":3}],"depth":2},{"title":"支持的 Diffusers 功能","local":"支持的-diffusers-功能","sections":[],"depth":2},{"title":"原生 Diffusers Swift 应用","local":"原生-diffusers-swift-应用","sections":[],"depth":2}],"depth":1}';function hl(vt){return al(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class wl extends ol{constructor(h){super(),fl(this,h,hl,dl,nl,{})}}export{wl as component}; | |
Xet Storage Details
- Size:
- 27.4 kB
- Xet hash:
- 9027b6215c94c48ccd27259d51c4b8fd266965b43cfaac1f3baef90db97bbcf8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.