Buckets:

rtrm's picture
download
raw
10.5 kB
import{s as jt,o as bt,n as gt}from"../chunks/scheduler.6e0d5ff7.js";import{S as _t,i as xt,g as s,s as o,r as F,E as Et,h as i,f as l,c as p,j as I,u as D,x as c,k as U,y as u,a as n,v as k,d as B,t as G,w as P}from"../chunks/index.d7c1b260.js";import{T as Rt}from"../chunks/Tip.c000e27b.js";import{I as vt}from"../chunks/IconCopyLink.25a5ed79.js";import{C as $t}from"../chunks/CodeBlock.a07b664f.js";function St(H){let a,T="<strong>PyTorch 1.13을 사용 중일 때</strong> 추가 일회성 전달을 사용하여 파이프라인을 “프라이밍”하는 것을 추천합니다. 이것은 발견한 이상한 문제에 대한 임시 해결 방법입니다. 첫 번째 추론 전달은 후속 전달와 약간 다른 결과를 생성합니다. 이 전달은 한 번만 수행하면 되며 추론 단계를 한 번만 사용하고 결과를 폐기해도 됩니다.";return{c(){a=s("p"),a.innerHTML=T},l(r){a=i(r,"P",{"data-svelte-h":!0}),c(a)!=="svelte-1uj24v1"&&(a.innerHTML=T)},m(r,m){n(r,a,m)},p:gt,d(r){r&&l(a)}}}function It(H){let a,T,r,m,O,Q,ot,R,rt="Apple Silicon (M1/M2)에서 Stable Diffusion을 사용하는 방법",N,w,Ut="Diffusers는 Stable Diffusion 추론을 위해 PyTorch <code>mps</code>를 사용해 Apple 실리콘과 호환됩니다. 다음은 Stable Diffusion이 있는 M1 또는 M2 컴퓨터를 사용하기 위해 따라야 하는 단계입니다.",Z,f,ct="요구 사항",L,d,mt='<li>Apple silicon (M1/M2) 하드웨어의 Mac 컴퓨터.</li> <li>macOS 12.6 또는 이후 (13.0 또는 이후 추천).</li> <li>Python arm64 버전</li> <li>PyTorch 2.0(추천) 또는 1.13(<code>mps</code>를 지원하는 최소 버전). Y<a href="https://pytorch.org/get-started/locally/%EC%9D%98" rel="nofollow">https://pytorch.org/get-started/locally/의</a> 지침에 따라 <code>pip</code> 또는 <code>conda</code>로 설치할 수 있습니다.</li>',W,h,Mt="추론 파이프라인",z,V,ut="아래 코도는 익숙한 <code>to()</code> 인터페이스를 사용하여 <code>mps</code> 백엔드로 Stable Diffusion 파이프라인을 M1 또는 M2 장치로 이동하는 방법을 보여줍니다.",X,C,K,v,ft="이전 팁에서 설명한 것들을 포함한 여러 문제를 해결하므로 PyTorch 2 이상을 사용하는 것이 좋습니다.",q,$,Y,y,ht="성능 추천",tt,j,Ct="M1/M2 성능은 메모리 압력에 매우 민감합니다. 시스템은 필요한 경우 자동으로 스왑되지만 스왑할 때 성능이 크게 저하됩니다.",et,b,yt="특히 컴퓨터의 시스템 RAM이 64GB 미만이거나 512 × 512픽셀보다 큰 비표준 해상도에서 이미지를 생성하는 경우, 추론 중에 메모리 압력을 줄이고 스와핑을 방지하기 위해 <em>어텐션 슬라이싱</em>을 사용하는 것이 좋습니다. 어텐션 슬라이싱은 비용이 많이 드는 어텐션 작업을 한 번에 모두 수행하는 대신 여러 단계로 수행합니다. 일반적으로 범용 메모리가 없는 컴퓨터에서 ~20%의 성능 영향을 미치지만 64GB 이상이 아닌 경우 대부분의 Apple Silicon 컴퓨터에서 <em>더 나은 성능</em>이 관찰되었습니다.",lt,g,nt,M,J,A,_,pt,S,Jt="Known Issues",st,x,Tt='<li>여러 프롬프트를 배치로 생성하는 것은 <a href="https://github.com/huggingface/diffusers/issues/363" rel="nofollow">충돌이 발생하거나 안정적으로 작동하지 않습니다</a>. 우리는 이것이 <a href="https://github.com/pytorch/pytorch/issues/84039" rel="nofollow">PyTorch의 <code>mps</code> 백엔드</a>와 관련이 있다고 생각합니다. 이 문제는 해결되고 있지만 지금은 배치 대신 반복 방법을 사용하는 것이 좋습니다.</li>',it;return Q=new vt({}),C=new Rt({props:{warning:!0,$$slots:{default:[St]},$$scope:{ctx:H}}}),$=new $t({props:{code:"JTIzJTIwJTYwaHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4lNjAlRUMlOTclOTAlMjAlRUIlQTElOUMlRUElQjclQjglRUMlOUQlQjglRUIlOTAlOTglRUMlOTYlQjQlMjAlRUMlOUUlODglRUMlOUQlOEMlRUMlOUQlODQlMjAlRUQlOTklOTUlRUMlOUQlQjglMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMnJ1bndheW1sJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyKSUwQXBpcGUlMjAlM0QlMjBwaXBlLnRvKCUyMm1wcyUyMiklMEElMEElMjMlMjAlRUMlQkIlQjQlRUQlOTMlQTglRUQlODQlQjAlRUElQjAlODAlMjA2NEdCJTIwJUVDJTlEJUI0JUVEJTk1JTk4JUVDJTlEJTk4JTIwUkFNJTIwJUVCJTlFJUE4JUVDJTlEJUJDJTIwJUVCJTk1JThDJTIwJUVDJUI2JTk0JUVDJUIyJTlDJTBBcGlwZS5lbmFibGVfYXR0ZW50aW9uX3NsaWNpbmcoKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMmElMjBwaG90byUyMG9mJTIwYW4lMjBhc3Ryb25hdXQlMjByaWRpbmclMjBhJTIwaG9yc2UlMjBvbiUyMG1hcnMlMjIlMEElMEElMjMlMjAlRUMlQjIlOTglRUMlOUQlOEMlMjAlMjIlRUMlOUIlOEMlRUIlQjAlOEQlRUMlOTclODUlMjIlMjAlRUMlQTAlODQlRUIlOEIlQUMlMjAoJUVDJTlDJTg0JTIwJUVDJTg0JUE0JUVCJUFBJTg1JUVDJTlEJTg0JTIwJUVCJUIzJUI0JUVDJTg0JUI4JUVDJTlBJTk0KSUwQV8lMjAlM0QlMjBwaXBlKHByb21wdCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0QxKSUwQSUwQSUyMyUyMCVFQSVCMiVCMCVFQSVCMyVCQyVFQiU4QSU5NCUyMCVFQyU5QiU4QyVFQiVCMCU4RCVFQyU5NyU4NSUyMCVFQyVBMCU4NCVFQiU4QiVBQyUyMCVFRCU5QiU4NCVFQyU5RCU5OCUyMENQVSUyMCVFQyU5RSVBNSVFQyVCOSU5OCVFQyU5RCU5OCUyMCVFQSVCMiVCMCVFQSVCMyVCQyVFQyU5OSU4MCUyMCVFQyU5RCVCQyVFQyVCOSU5OCVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNC4lMEFpbWFnZSUyMCUzRCUyMHBpcGUocHJvbXB0KS5pbWFnZXMlNUIwJTVE",highlighted:`<span class="hljs-comment"># \`huggingface-cli login\`에 로그인되어 있음을 확인</span>
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;runwayml/stable-diffusion-v1-5&quot;</span>)
pipe = pipe.to(<span class="hljs-string">&quot;mps&quot;</span>)
<span class="hljs-comment"># 컴퓨터가 64GB 이하의 RAM 램일 때 추천</span>
pipe.enable_attention_slicing()
prompt = <span class="hljs-string">&quot;a photo of an astronaut riding a horse on mars&quot;</span>
<span class="hljs-comment"># 처음 &quot;워밍업&quot; 전달 (위 설명을 보세요)</span>
_ = pipe(prompt, num_inference_steps=<span class="hljs-number">1</span>)
<span class="hljs-comment"># 결과는 워밍업 전달 후의 CPU 장치의 결과와 일치합니다.</span>
image = pipe(prompt).images[<span class="hljs-number">0</span>]`}}),g=new $t({props:{code:"cGlwZWxpbmUuZW5hYmxlX2F0dGVudGlvbl9zbGljaW5nKCk=",highlighted:"pipeline.enable_attention_slicing()"}}),_=new vt({}),{c(){a=s("meta"),T=o(),r=s("h1"),m=s("a"),O=s("span"),F(Q.$$.fragment),ot=o(),R=s("span"),R.textContent=rt,N=o(),w=s("p"),w.innerHTML=Ut,Z=o(),f=s("h2"),f.textContent=ct,L=o(),d=s("ul"),d.innerHTML=mt,W=o(),h=s("h2"),h.textContent=Mt,z=o(),V=s("p"),V.innerHTML=ut,X=o(),F(C.$$.fragment),K=o(),v=s("p"),v.textContent=ft,q=o(),F($.$$.fragment),Y=o(),y=s("h2"),y.textContent=ht,tt=o(),j=s("p"),j.textContent=Ct,et=o(),b=s("p"),b.innerHTML=yt,lt=o(),F(g.$$.fragment),nt=o(),M=s("h2"),J=s("a"),A=s("span"),F(_.$$.fragment),pt=o(),S=s("span"),S.textContent=Jt,st=o(),x=s("ul"),x.innerHTML=Tt,this.h()},l(t){const e=Et("svelte-1phssyn",document.head);a=i(e,"META",{name:!0,content:!0}),e.forEach(l),T=p(t),r=i(t,"H1",{class:!0});var E=I(r);m=i(E,"A",{id:!0,class:!0,href:!0});var Qt=I(m);O=i(Qt,"SPAN",{});var wt=I(O);D(Q.$$.fragment,wt),wt.forEach(l),Qt.forEach(l),ot=p(E),R=i(E,"SPAN",{"data-svelte-h":!0}),c(R)!=="svelte-160u75e"&&(R.textContent=rt),E.forEach(l),N=p(t),w=i(t,"P",{"data-svelte-h":!0}),c(w)!=="svelte-1cmhw56"&&(w.innerHTML=Ut),Z=p(t),f=i(t,"H2",{id:!0,"data-svelte-h":!0}),c(f)!=="svelte-vh5ppn"&&(f.textContent=ct),L=p(t),d=i(t,"UL",{"data-svelte-h":!0}),c(d)!=="svelte-xmgm9h"&&(d.innerHTML=mt),W=p(t),h=i(t,"H2",{id:!0,"data-svelte-h":!0}),c(h)!=="svelte-ozsxg2"&&(h.textContent=Mt),z=p(t),V=i(t,"P",{"data-svelte-h":!0}),c(V)!=="svelte-26dp8q"&&(V.innerHTML=ut),X=p(t),D(C.$$.fragment,t),K=p(t),v=i(t,"P",{"data-svelte-h":!0}),c(v)!=="svelte-d7ffo5"&&(v.textContent=ft),q=p(t),D($.$$.fragment,t),Y=p(t),y=i(t,"H2",{id:!0,"data-svelte-h":!0}),c(y)!=="svelte-12uog1g"&&(y.textContent=ht),tt=p(t),j=i(t,"P",{"data-svelte-h":!0}),c(j)!=="svelte-1rzz618"&&(j.textContent=Ct),et=p(t),b=i(t,"P",{"data-svelte-h":!0}),c(b)!=="svelte-1bz9ahf"&&(b.innerHTML=yt),lt=p(t),D(g.$$.fragment,t),nt=p(t),M=i(t,"H2",{class:!0});var at=I(M);J=i(at,"A",{id:!0,class:!0,href:!0});var dt=I(J);A=i(dt,"SPAN",{});var Vt=I(A);D(_.$$.fragment,Vt),Vt.forEach(l),dt.forEach(l),pt=p(at),S=i(at,"SPAN",{"data-svelte-h":!0}),c(S)!=="svelte-hx5m8e"&&(S.textContent=Jt),at.forEach(l),st=p(t),x=i(t,"UL",{"data-svelte-h":!0}),c(x)!=="svelte-1uyieu0"&&(x.innerHTML=Tt),this.h()},h(){U(a,"name","hf:doc:metadata"),U(a,"content",JSON.stringify(Ot)),U(m,"id","apple-silicon-m1m2-stable-diffusion"),U(m,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(m,"href","#apple-silicon-m1m2-stable-diffusion"),U(r,"class","relative group"),U(f,"id",""),U(h,"id",""),U(y,"id",""),U(J,"id","known-issues"),U(J,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(J,"href","#known-issues"),U(M,"class","relative group")},m(t,e){u(document.head,a),n(t,T,e),n(t,r,e),u(r,m),u(m,O),k(Q,O,null),u(r,ot),u(r,R),n(t,N,e),n(t,w,e),n(t,Z,e),n(t,f,e),n(t,L,e),n(t,d,e),n(t,W,e),n(t,h,e),n(t,z,e),n(t,V,e),n(t,X,e),k(C,t,e),n(t,K,e),n(t,v,e),n(t,q,e),k($,t,e),n(t,Y,e),n(t,y,e),n(t,tt,e),n(t,j,e),n(t,et,e),n(t,b,e),n(t,lt,e),k(g,t,e),n(t,nt,e),n(t,M,e),u(M,J),u(J,A),k(_,A,null),u(M,pt),u(M,S),n(t,st,e),n(t,x,e),it=!0},p(t,[e]){const E={};e&2&&(E.$$scope={dirty:e,ctx:t}),C.$set(E)},i(t){it||(B(Q.$$.fragment,t),B(C.$$.fragment,t),B($.$$.fragment,t),B(g.$$.fragment,t),B(_.$$.fragment,t),it=!0)},o(t){G(Q.$$.fragment,t),G(C.$$.fragment,t),G($.$$.fragment,t),G(g.$$.fragment,t),G(_.$$.fragment,t),it=!1},d(t){t&&(l(T),l(r),l(N),l(w),l(Z),l(f),l(L),l(d),l(W),l(h),l(z),l(V),l(X),l(K),l(v),l(q),l(Y),l(y),l(tt),l(j),l(et),l(b),l(lt),l(nt),l(M),l(st),l(x)),l(a),P(Q),P(C,t),P($,t),P(g,t),P(_)}}}const Ot={local:"apple-silicon-m1m2-stable-diffusion",sections:[{local:"",title:"요구 사항"},{local:"",title:"추론 파이프라인"},{local:"",title:"성능 추천"},{local:"known-issues",title:"Known Issues"}],title:"Apple Silicon (M1/M2)에서 Stable Diffusion을 사용하는 방법"};function At(H){return bt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Pt extends _t{constructor(a){super(),xt(this,a,At,It,jt,{})}}export{Pt as component};

Xet Storage Details

Size:
10.5 kB
·
Xet hash:
9b171ccc72cde09a1ca008d0ceb9bf6d32a6e754bd2712e4bc5a5b6a66674546

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