Buckets:

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

Xet Storage Details

Size:
27.4 kB
·
Xet hash:
176ab12e293f071a988e0078477c9ed4a89f2f1f44f5ad1c992256b10e92db5b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.