Buckets:
| import{s as ys,o as fs,n as os}from"../chunks/scheduler.94020406.js";import{S as Js,i as hs,g as p,s as n,r as c,E as Zs,h as i,f as s,c as a,j as ds,u as r,x as M,k as V,y as js,a as t,v as m,d as u,t as d,w as y}from"../chunks/index.a08c8d92.js";import{T as Ts}from"../chunks/Tip.3b0aeee8.js";import{C as o}from"../chunks/CodeBlock.f1fae7de.js";import{H as Ge,E as bs}from"../chunks/getInferenceSnippets.58cd4b84.js";function ws(Ce){let f,W="다음 Flax 스케줄러는 <em>아직</em> Flax Stable Diffusion 파이프라인과 호환되지 않습니다.",j,h,T="<li><code>FlaxLMSDiscreteScheduler</code></li> <li><code>FlaxDDPMScheduler</code></li>";return{c(){f=p("p"),f.innerHTML=W,j=n(),h=p("ul"),h.innerHTML=T},l(J){f=i(J,"P",{"data-svelte-h":!0}),M(f)!=="svelte-8mopnl"&&(f.innerHTML=W),j=a(J),h=i(J,"UL",{"data-svelte-h":!0}),M(h)!=="svelte-pfgls0"&&(h.innerHTML=T)},m(J,Z){t(J,f,Z),t(J,j,Z),t(J,h,Z)},p:os,d(J){J&&(s(f),s(j),s(h))}}}function Us(Ce){let f,W,j,h,T,J,Z,xl='diffusion 파이프라인은 diffusion 모델, 스케줄러 등의 컴포넌트들로 구성됩니다. 그리고 파이프라인 안의 일부 컴포넌트를 다른 컴포넌트로 교체하는 식의 커스터마이징 역시 가능합니다. 이와 같은 컴포넌트 커스터마이징의 가장 대표적인 예시가 바로 <a href="../api/schedulers/overview.md">스케줄러</a>를 교체하는 것입니다.',Ve,B,Il="스케쥴러는 다음과 같이 diffusion 시스템의 전반적인 디노이징 프로세스를 정의합니다.",We,v,Xl="<li>디노이징 스텝을 얼마나 가져가야 할까?</li> <li>확률적으로(stochastic) 혹은 확정적으로(deterministic)?</li> <li>디노이징 된 샘플을 찾아내기 위해 어떤 알고리즘을 사용해야 할까?</li>",Be,x,kl="이러한 프로세스는 다소 난해하고, 디노이징 속도와 디노이징 퀄리티 사이의 트레이드 오프를 정의해야 하는 문제가 될 수 있습니다. 주어진 파이프라인에 어떤 스케줄러가 가장 적합한지를 정량적으로 판단하는 것은 매우 어려운 일입니다. 이로 인해 일단 해당 스케줄러를 직접 사용하여, 생성되는 이미지를 직접 눈으로 보며, 정성적으로 성능을 판단해보는 것이 추천되곤 합니다.",ve,I,xe,X,_l='먼저 스테이블 diffusion 파이프라인을 불러오도록 해보겠습니다. 물론 스테이블 diffusion을 사용하기 위해서는, 허깅페이스 허브에 등록된 사용자여야 하며, 관련 <a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" rel="nofollow">라이센스</a>에 동의해야 한다는 점을 잊지 말아주세요.',Ie,k,Nl="<em>역자 주: 다만, 현재 신규로 생성한 허깅페이스 계정에 대해서는 라이센스 동의를 요구하지 않는 것으로 보입니다!</em>",Xe,_,ke,N,Sl="다음으로, GPU로 이동합니다.",_e,S,Ne,R,Se,E,Rl="스케줄러는 언제나 파이프라인의 컴포넌트로서 존재하며, 일반적으로 파이프라인 인스턴스 내에 <code>scheduler</code>라는 이름의 속성(property)으로 정의되어 있습니다.",Re,H,Ee,Y,El="<strong>Output</strong>:",He,z,Ye,F,Hl="출력 결과를 통해, 우리는 해당 스케줄러가 <code>PNDMScheduler</code>의 인스턴스라는 것을 알 수 있습니다. 이제 <code>PNDMScheduler</code>와 다른 스케줄러들의 성능을 비교해보도록 하겠습니다. 먼저 테스트에 사용할 프롬프트를 다음과 같이 정의해보도록 하겠습니다.",ze,Q,Fe,A,Yl="다음으로 유사한 이미지 생성을 보장하기 위해서, 다음과 같이 랜덤시드를 고정해주도록 하겠습니다.",Qe,L,Ae,b,zl='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_pndm.png" width="400"/> <br/>',Le,D,De,P,Fl="다음으로 파이프라인의 스케줄러를 다른 스케줄러로 교체하는 방법에 대해 알아보겠습니다. 모든 스케줄러는 <code>SchedulerMixin.compatibles</code>라는 속성(property)을 갖고 있습니다. 해당 속성은 <strong>호환 가능한</strong> 스케줄러들에 대한 정보를 담고 있습니다.",Pe,q,qe,K,Ql="<strong>Output</strong>:",Ke,O,Oe,ee,Al="호환되는 스케줄러들을 살펴보면 아래와 같습니다.",el,le,Ll="<li><code>LMSDiscreteScheduler</code>,</li> <li><code>DDIMScheduler</code>,</li> <li><code>DPMSolverMultistepScheduler</code>,</li> <li><code>EulerDiscreteScheduler</code>,</li> <li><code>PNDMScheduler</code>,</li> <li><code>DDPMScheduler</code>,</li> <li><code>EulerAncestralDiscreteScheduler</code>.</li>",ll,se,Dl="앞서 정의했던 프롬프트를 사용해서 각각의 스케줄러들을 비교해보도록 하겠습니다.",sl,te,Pl="먼저 파이프라인 안의 스케줄러를 바꾸기 위해 <code>ConfigMixin.config</code> 속성과 <code>ConfigMixin.from_config()</code> 메서드를 활용해보려고 합니다.",tl,ne,nl,ae,ql="<strong>Output</strong>:",al,pe,pl,ie,Kl="기존 스케줄러의 config를 호환 가능한 다른 스케줄러에 이식하는 것 역시 가능합니다.",il,Me,Ol="다음 예시는 기존 스케줄러(<code>pipeline.scheduler</code>)를 다른 종류의 스케줄러(<code>DDIMScheduler</code>)로 바꾸는 코드입니다. 기존 스케줄러가 갖고 있던 config를 <code>.from_config</code> 메서드의 인자로 전달하는 것을 확인할 수 있습니다.",Ml,ce,cl,re,es="이제 파이프라인을 실행해서 두 스케줄러 사이의 생성된 이미지의 퀄리티를 비교해봅시다.",rl,me,ml,w,ls='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_ddim.png" width="400"/> <br/>',ul,ue,dl,de,ss="지금까지는 <code>PNDMScheduler</code>와 <code>DDIMScheduler</code> 스케줄러를 실행해보았습니다. 아직 비교해볼 스케줄러들이 더 많이 남아있으니 계속 비교해보도록 하겠습니다.",yl,ye,ts="<code>LMSDiscreteScheduler</code>을 일반적으로 더 좋은 결과를 보여줍니다.",fl,fe,ol,U,ns='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_lms.png" width="400"/> <br/>',Jl,oe,as="<code>EulerDiscreteScheduler</code>와 <code>EulerAncestralDiscreteScheduler</code> 고작 30번의 inference step만으로도 높은 퀄리티의 이미지를 생성하는 것을 알 수 있습니다.",hl,Je,Zl,g,ps='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_euler_discrete.png" width="400"/> <br/>',jl,he,Tl,G,is='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_euler_ancestral.png" width="400"/> <br/>',bl,Ze,Ms="지금 이 문서를 작성하는 현시점 기준에선, <code>DPMSolverMultistepScheduler</code>가 시간 대비 가장 좋은 품질의 이미지를 생성하는 것 같습니다. 20번 정도의 스텝만으로도 실행될 수 있습니다.",wl,je,Ul,$,cs='<br/> <img src="https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/diffusers_docs/astronaut_dpm.png" width="400"/> <br/>',gl,Te,rs="보시다시피 생성된 이미지들은 매우 비슷하고, 비슷한 퀄리티를 보이는 것 같습니다. 실제로 어떤 스케줄러를 선택할 것인가는 종종 특정 이용 사례에 기반해서 결정되곤 합니다. 결국 여러 종류의 스케줄러를 직접 실행시켜보고 눈으로 직접 비교해서 판단하는 게 좋은 선택일 것 같습니다.",Gl,be,$l,we,ms='JAX/Flax 사용자인 경우 기본 파이프라인 스케줄러를 변경할 수도 있습니다. 다음은 Flax Stable Diffusion 파이프라인과 초고속 <a href="../api/schedulers/multistep_dpm_solver">DDPM-Solver++ 스케줄러를</a> 사용하여 추론을 실행하는 방법에 대한 예시입니다 .',Cl,Ue,Vl,C,Wl,ge,Bl,$e,vl;return T=new Ge({props:{title:"스케줄러",local:"스케줄러",headingTag:"h1"}}),I=new Ge({props:{title:"파이프라인 불러오기",local:"파이프라인-불러오기",headingTag:"h2"}}),_=new o({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGxvZ2luJTBBZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBaW1wb3J0JTIwdG9yY2glMEElMEElMjMlMjBmaXJzdCUyMHdlJTIwbmVlZCUyMHRvJTIwbG9naW4lMjB3aXRoJTIwb3VyJTIwYWNjZXNzJTIwdG9rZW4lMEFsb2dpbigpJTBBJTBBJTIzJTIwTm93JTIwd2UlMjBjYW4lMjBkb3dubG9hZCUyMHRoZSUyMHBpcGVsaW5lJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> login | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| <span class="hljs-keyword">import</span> torch | |
| <span class="hljs-comment"># first we need to login with our access token</span> | |
| login() | |
| <span class="hljs-comment"># Now we can download the pipeline</span> | |
| pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>, torch_dtype=torch.float16)`,wrap:!1}}),S=new o({props:{code:"cGlwZWxpbmUudG8oJTIyY3VkYSUyMik=",highlighted:'pipeline.to(<span class="hljs-string">"cuda"</span>)',wrap:!1}}),R=new Ge({props:{title:"스케줄러 액세스",local:"스케줄러-액세스",headingTag:"h2"}}),H=new o({props:{code:"cGlwZWxpbmUuc2NoZWR1bGVy",highlighted:"pipeline.scheduler",wrap:!1}}),z=new o({props:{code:"UE5ETVNjaGVkdWxlciUyMCU3QiUwQSUyMCUyMCUyMl9jbGFzc19uYW1lJTIyJTNBJTIwJTIyUE5ETVNjaGVkdWxlciUyMiUyQyUwQSUyMCUyMCUyMl9kaWZmdXNlcnNfdmVyc2lvbiUyMiUzQSUyMCUyMjAuOC4wLmRldjAlMjIlMkMlMEElMjAlMjAlMjJiZXRhX2VuZCUyMiUzQSUyMDAuMDEyJTJDJTBBJTIwJTIwJTIyYmV0YV9zY2hlZHVsZSUyMiUzQSUyMCUyMnNjYWxlZF9saW5lYXIlMjIlMkMlMEElMjAlMjAlMjJiZXRhX3N0YXJ0JTIyJTNBJTIwMC4wMDA4NSUyQyUwQSUyMCUyMCUyMmNsaXBfc2FtcGxlJTIyJTNBJTIwZmFsc2UlMkMlMEElMjAlMjAlMjJudW1fdHJhaW5fdGltZXN0ZXBzJTIyJTNBJTIwMTAwMCUyQyUwQSUyMCUyMCUyMnNldF9hbHBoYV90b19vbmUlMjIlM0ElMjBmYWxzZSUyQyUwQSUyMCUyMCUyMnNraXBfcHJrX3N0ZXBzJTIyJTNBJTIwdHJ1ZSUyQyUwQSUyMCUyMCUyMnN0ZXBzX29mZnNldCUyMiUzQSUyMDElMkMlMEElMjAlMjAlMjJ0cmFpbmVkX2JldGFzJTIyJTNBJTIwbnVsbCUwQSU3RA==",highlighted:`PNDMScheduler { | |
| <span class="hljs-string">"_class_name"</span>: <span class="hljs-string">"PNDMScheduler"</span>, | |
| <span class="hljs-string">"_diffusers_version"</span>: <span class="hljs-string">"0.8.0.dev0"</span>, | |
| <span class="hljs-string">"beta_end"</span>: <span class="hljs-number">0.012</span>, | |
| <span class="hljs-string">"beta_schedule"</span>: <span class="hljs-string">"scaled_linear"</span>, | |
| <span class="hljs-string">"beta_start"</span>: <span class="hljs-number">0.00085</span>, | |
| <span class="hljs-string">"clip_sample"</span>: <span class="hljs-literal">false</span>, | |
| <span class="hljs-string">"num_train_timesteps"</span>: <span class="hljs-number">1000</span>, | |
| <span class="hljs-string">"set_alpha_to_one"</span>: <span class="hljs-literal">false</span>, | |
| <span class="hljs-string">"skip_prk_steps"</span>: <span class="hljs-literal">true</span>, | |
| <span class="hljs-string">"steps_offset"</span>: <span class="hljs-number">1</span>, | |
| <span class="hljs-string">"trained_betas"</span>: <span class="hljs-literal">null</span> | |
| }`,wrap:!1}}),Q=new o({props:{code:"cHJvbXB0JTIwJTNEJTIwJTIyQSUyMHBob3RvZ3JhcGglMjBvZiUyMGFuJTIwYXN0cm9uYXV0JTIwcmlkaW5nJTIwYSUyMGhvcnNlJTIwb24lMjBNYXJzJTJDJTIwaGlnaCUyMHJlc29sdXRpb24lMkMlMjBoaWdoJTIwZGVmaW5pdGlvbi4lMjI=",highlighted:'prompt = <span class="hljs-string">"A photograph of an astronaut riding a horse on Mars, high resolution, high definition."</span>',wrap:!1}}),L=new o({props:{code:"Z2VuZXJhdG9yJTIwJTNEJTIwdG9yY2guR2VuZXJhdG9yKGRldmljZSUzRCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKDgpJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IpLmltYWdlcyU1QjAlNUQlMEFpbWFnZQ==",highlighted:`generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),D=new Ge({props:{title:"스케줄러 교체하기",local:"스케줄러-교체하기",headingTag:"h2"}}),q=new o({props:{code:"cGlwZWxpbmUuc2NoZWR1bGVyLmNvbXBhdGlibGVz",highlighted:"pipeline.scheduler.compatibles",wrap:!1}}),O=new o({props:{code:"JTVCZGlmZnVzZXJzLnNjaGVkdWxlcnMuc2NoZWR1bGluZ19sbXNfZGlzY3JldGUuTE1TRGlzY3JldGVTY2hlZHVsZXIlMkMlMEElMjBkaWZmdXNlcnMuc2NoZWR1bGVycy5zY2hlZHVsaW5nX2RkaW0uRERJTVNjaGVkdWxlciUyQyUwQSUyMGRpZmZ1c2Vycy5zY2hlZHVsZXJzLnNjaGVkdWxpbmdfZHBtc29sdmVyX211bHRpc3RlcC5EUE1Tb2x2ZXJNdWx0aXN0ZXBTY2hlZHVsZXIlMkMlMEElMjBkaWZmdXNlcnMuc2NoZWR1bGVycy5zY2hlZHVsaW5nX2V1bGVyX2Rpc2NyZXRlLkV1bGVyRGlzY3JldGVTY2hlZHVsZXIlMkMlMEElMjBkaWZmdXNlcnMuc2NoZWR1bGVycy5zY2hlZHVsaW5nX3BuZG0uUE5ETVNjaGVkdWxlciUyQyUwQSUyMGRpZmZ1c2Vycy5zY2hlZHVsZXJzLnNjaGVkdWxpbmdfZGRwbS5ERFBNU2NoZWR1bGVyJTJDJTBBJTIwZGlmZnVzZXJzLnNjaGVkdWxlcnMuc2NoZWR1bGluZ19ldWxlcl9hbmNlc3RyYWxfZGlzY3JldGUuRXVsZXJBbmNlc3RyYWxEaXNjcmV0ZVNjaGVkdWxlciU1RA==",highlighted:`[<span class="hljs-keyword">diffusers.schedulers.scheduling_lms_discrete.LMSDiscreteScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_ddim.DDIMScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_pndm.PNDMScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_ddpm.DDPMScheduler, | |
| </span> <span class="hljs-keyword">diffusers.schedulers.scheduling_euler_ancestral_discrete.EulerAncestralDiscreteScheduler]</span>`,wrap:!1}}),ne=new o({props:{code:"cGlwZWxpbmUuc2NoZWR1bGVyLmNvbmZpZw==",highlighted:"pipeline.scheduler.config",wrap:!1}}),pe=new o({props:{code:"RnJvemVuRGljdCglNUIoJ251bV90cmFpbl90aW1lc3RlcHMnJTJDJTIwMTAwMCklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAoJ2JldGFfc3RhcnQnJTJDJTIwMC4wMDA4NSklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAoJ2JldGFfZW5kJyUyQyUyMDAuMDEyKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCgnYmV0YV9zY2hlZHVsZSclMkMlMjAnc2NhbGVkX2xpbmVhcicpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKCd0cmFpbmVkX2JldGFzJyUyQyUyME5vbmUpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKCdza2lwX3Bya19zdGVwcyclMkMlMjBUcnVlKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCgnc2V0X2FscGhhX3RvX29uZSclMkMlMjBGYWxzZSklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAoJ3N0ZXBzX29mZnNldCclMkMlMjAxKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCgnX2NsYXNzX25hbWUnJTJDJTIwJ1BORE1TY2hlZHVsZXInKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCgnX2RpZmZ1c2Vyc192ZXJzaW9uJyUyQyUyMCcwLjguMC5kZXYwJyklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAoJ2NsaXBfc2FtcGxlJyUyQyUyMEZhbHNlKSU1RCk=",highlighted:`FrozenDict([('num_train_timesteps', <span class="hljs-number">1000</span>), | |
| ('beta_start', <span class="hljs-number">0.00085</span>), | |
| ('beta_end', <span class="hljs-number">0.012</span>), | |
| ('beta_schedule', 'scaled_linear'), | |
| ('trained_betas', None), | |
| ('skip_prk_steps', True), | |
| ('set_alpha_to_one', False), | |
| ('steps_offset', <span class="hljs-number">1</span>), | |
| ('_class_name', 'PNDMScheduler'), | |
| ('_diffusers_version', '<span class="hljs-number">0.8</span>.<span class="hljs-number">0</span>.dev0'), | |
| ('clip_sample', False)])`,wrap:!1}}),ce=new o({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERESU1TY2hlZHVsZXIlMEElMEFwaXBlbGluZS5zY2hlZHVsZXIlMjAlM0QlMjBERElNU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGVsaW5lLnNjaGVkdWxlci5jb25maWcp",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DDIMScheduler | |
| pipeline.scheduler = DDIMScheduler.from_config(pipeline.scheduler.config)`,wrap:!1}}),me=new o({props:{code:"Z2VuZXJhdG9yJTIwJTNEJTIwdG9yY2guR2VuZXJhdG9yKGRldmljZSUzRCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKDgpJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IpLmltYWdlcyU1QjAlNUQlMEFpbWFnZQ==",highlighted:`generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),ue=new Ge({props:{title:"스케줄러들 비교해보기",local:"스케줄러들-비교해보기",headingTag:"h2"}}),fe=new o({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMExNU0Rpc2NyZXRlU2NoZWR1bGVyJTBBJTBBcGlwZWxpbmUuc2NoZWR1bGVyJTIwJTNEJTIwTE1TRGlzY3JldGVTY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZWxpbmUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5HZW5lcmF0b3IoZGV2aWNlJTNEJTIyY3VkYSUyMikubWFudWFsX3NlZWQoOCklMEFpbWFnZSUyMCUzRCUyMHBpcGVsaW5lKHByb21wdCUyQyUyMGdlbmVyYXRvciUzRGdlbmVyYXRvcikuaW1hZ2VzJTVCMCU1RCUwQWltYWdl",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LMSDiscreteScheduler | |
| pipeline.scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),Je=new o({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEV1bGVyRGlzY3JldGVTY2hlZHVsZXIlMEElMEFwaXBlbGluZS5zY2hlZHVsZXIlMjAlM0QlMjBFdWxlckRpc2NyZXRlU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGVsaW5lLnNjaGVkdWxlci5jb25maWcpJTBBJTBBZ2VuZXJhdG9yJTIwJTNEJTIwdG9yY2guR2VuZXJhdG9yKGRldmljZSUzRCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKDgpJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEMzApLmltYWdlcyU1QjAlNUQlMEFpbWFnZQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> EulerDiscreteScheduler | |
| pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator, num_inference_steps=<span class="hljs-number">30</span>).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),he=new o({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEV1bGVyQW5jZXN0cmFsRGlzY3JldGVTY2hlZHVsZXIlMEElMEFwaXBlbGluZS5zY2hlZHVsZXIlMjAlM0QlMjBFdWxlckFuY2VzdHJhbERpc2NyZXRlU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGVsaW5lLnNjaGVkdWxlci5jb25maWcpJTBBJTBBZ2VuZXJhdG9yJTIwJTNEJTIwdG9yY2guR2VuZXJhdG9yKGRldmljZSUzRCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKDgpJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEMzApLmltYWdlcyU1QjAlNUQlMEFpbWFnZQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> EulerAncestralDiscreteScheduler | |
| pipeline.scheduler = EulerAncestralDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator, num_inference_steps=<span class="hljs-number">30</span>).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),je=new o({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERQTVNvbHZlck11bHRpc3RlcFNjaGVkdWxlciUwQSUwQXBpcGVsaW5lLnNjaGVkdWxlciUyMCUzRCUyMERQTVNvbHZlck11bHRpc3RlcFNjaGVkdWxlci5mcm9tX2NvbmZpZyhwaXBlbGluZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLkdlbmVyYXRvcihkZXZpY2UlM0QlMjJjdWRhJTIyKS5tYW51YWxfc2VlZCg4KSUwQWltYWdlJTIwJTNEJTIwcGlwZWxpbmUocHJvbXB0JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDIwKS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2U=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DPMSolverMultistepScheduler | |
| pipeline.scheduler = DPMSolverMultistepScheduler.from_config(pipeline.scheduler.config) | |
| generator = torch.Generator(device=<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">8</span>) | |
| image = pipeline(prompt, generator=generator, num_inference_steps=<span class="hljs-number">20</span>).images[<span class="hljs-number">0</span>] | |
| image`,wrap:!1}}),be=new Ge({props:{title:"Flax에서 스케줄러 교체하기",local:"flax에서-스케줄러-교체하기",headingTag:"h2"}}),Ue=new o({props:{code:"aW1wb3J0JTIwamF4JTBBaW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBZnJvbSUyMGZsYXguamF4X3V0aWxzJTIwaW1wb3J0JTIwcmVwbGljYXRlJTBBZnJvbSUyMGZsYXgudHJhaW5pbmcuY29tbW9uX3V0aWxzJTIwaW1wb3J0JTIwc2hhcmQlMEElMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRmxheFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lJTJDJTIwRmxheERQTVNvbHZlck11bHRpc3RlcFNjaGVkdWxlciUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTBBc2NoZWR1bGVyJTJDJTIwc2NoZWR1bGVyX3N0YXRlJTIwJTNEJTIwRmxheERQTVNvbHZlck11bHRpc3RlcFNjaGVkdWxlci5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwbW9kZWxfaWQlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJzY2hlZHVsZXIlMjIlMEEpJTBBcGlwZWxpbmUlMkMlMjBwYXJhbXMlMjAlM0QlMjBGbGF4U3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMG1vZGVsX2lkJTJDJTBBJTIwJTIwJTIwJTIwc2NoZWR1bGVyJTNEc2NoZWR1bGVyJTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmJmMTYlMjIlMkMlMEElMjAlMjAlMjAlMjBkdHlwZSUzRGpheC5udW1weS5iZmxvYXQxNiUyQyUwQSklMEFwYXJhbXMlNUIlMjJzY2hlZHVsZXIlMjIlNUQlMjAlM0QlMjBzY2hlZHVsZXJfc3RhdGUlMEElMEElMjMlMjBHZW5lcmF0ZSUyMDElMjBpbWFnZSUyMHBlciUyMHBhcmFsbGVsJTIwZGV2aWNlJTIwKDglMjBvbiUyMFRQVXYyLTglMjBvciUyMFRQVXYzLTgpJTBBcHJvbXB0JTIwJTNEJTIwJTIyYSUyMHBob3RvJTIwb2YlMjBhbiUyMGFzdHJvbmF1dCUyMHJpZGluZyUyMGElMjBob3JzZSUyMG9uJTIwbWFycyUyMiUwQW51bV9zYW1wbGVzJTIwJTNEJTIwamF4LmRldmljZV9jb3VudCgpJTBBcHJvbXB0X2lkcyUyMCUzRCUyMHBpcGVsaW5lLnByZXBhcmVfaW5wdXRzKCU1QnByb21wdCU1RCUyMColMjBudW1fc2FtcGxlcyklMEElMEFwcm5nX3NlZWQlMjAlM0QlMjBqYXgucmFuZG9tLlBSTkdLZXkoMCklMEFudW1faW5mZXJlbmNlX3N0ZXBzJTIwJTNEJTIwMjUlMEElMEElMjMlMjBzaGFyZCUyMGlucHV0cyUyMGFuZCUyMHJuZyUwQXBhcmFtcyUyMCUzRCUyMHJlcGxpY2F0ZShwYXJhbXMpJTBBcHJuZ19zZWVkJTIwJTNEJTIwamF4LnJhbmRvbS5zcGxpdChwcm5nX3NlZWQlMkMlMjBqYXguZGV2aWNlX2NvdW50KCkpJTBBcHJvbXB0X2lkcyUyMCUzRCUyMHNoYXJkKHByb21wdF9pZHMpJTBBJTBBaW1hZ2VzJTIwJTNEJTIwcGlwZWxpbmUocHJvbXB0X2lkcyUyQyUyMHBhcmFtcyUyQyUyMHBybmdfc2VlZCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlMkMlMjBqaXQlM0RUcnVlKS5pbWFnZXMlMEFpbWFnZXMlMjAlM0QlMjBwaXBlbGluZS5udW1weV90b19waWwobnAuYXNhcnJheShpbWFnZXMucmVzaGFwZSgobnVtX3NhbXBsZXMlMkMpJTIwJTJCJTIwaW1hZ2VzLnNoYXBlJTVCLTMlM0ElNUQpKSk=",highlighted:`<span class="hljs-keyword">import</span> jax | |
| <span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| <span class="hljs-keyword">from</span> flax.jax_utils <span class="hljs-keyword">import</span> replicate | |
| <span class="hljs-keyword">from</span> flax.training.common_utils <span class="hljs-keyword">import</span> shard | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> FlaxStableDiffusionPipeline, FlaxDPMSolverMultistepScheduler | |
| model_id = <span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span> | |
| scheduler, scheduler_state = FlaxDPMSolverMultistepScheduler.from_pretrained( | |
| model_id, | |
| subfolder=<span class="hljs-string">"scheduler"</span> | |
| ) | |
| pipeline, params = FlaxStableDiffusionPipeline.from_pretrained( | |
| model_id, | |
| scheduler=scheduler, | |
| variant=<span class="hljs-string">"bf16"</span>, | |
| dtype=jax.numpy.bfloat16, | |
| ) | |
| params[<span class="hljs-string">"scheduler"</span>] = scheduler_state | |
| <span class="hljs-comment"># Generate 1 image per parallel device (8 on TPUv2-8 or TPUv3-8)</span> | |
| prompt = <span class="hljs-string">"a photo of an astronaut riding a horse on mars"</span> | |
| num_samples = jax.device_count() | |
| prompt_ids = pipeline.prepare_inputs([prompt] * num_samples) | |
| prng_seed = jax.random.PRNGKey(<span class="hljs-number">0</span>) | |
| num_inference_steps = <span class="hljs-number">25</span> | |
| <span class="hljs-comment"># shard inputs and rng</span> | |
| params = replicate(params) | |
| prng_seed = jax.random.split(prng_seed, jax.device_count()) | |
| prompt_ids = shard(prompt_ids) | |
| images = pipeline(prompt_ids, params, prng_seed, num_inference_steps, jit=<span class="hljs-literal">True</span>).images | |
| images = pipeline.numpy_to_pil(np.asarray(images.reshape((num_samples,) + images.shape[-<span class="hljs-number">3</span>:])))`,wrap:!1}}),C=new Ts({props:{warning:!0,$$slots:{default:[ws]},$$scope:{ctx:Ce}}}),ge=new bs({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/using-diffusers/schedulers.md"}}),{c(){f=p("meta"),W=n(),j=p("p"),h=n(),c(T.$$.fragment),J=n(),Z=p("p"),Z.innerHTML=xl,Ve=n(),B=p("p"),B.textContent=Il,We=n(),v=p("ul"),v.innerHTML=Xl,Be=n(),x=p("p"),x.textContent=kl,ve=n(),c(I.$$.fragment),xe=n(),X=p("p"),X.innerHTML=_l,Ie=n(),k=p("p"),k.innerHTML=Nl,Xe=n(),c(_.$$.fragment),ke=n(),N=p("p"),N.textContent=Sl,_e=n(),c(S.$$.fragment),Ne=n(),c(R.$$.fragment),Se=n(),E=p("p"),E.innerHTML=Rl,Re=n(),c(H.$$.fragment),Ee=n(),Y=p("p"),Y.innerHTML=El,He=n(),c(z.$$.fragment),Ye=n(),F=p("p"),F.innerHTML=Hl,ze=n(),c(Q.$$.fragment),Fe=n(),A=p("p"),A.textContent=Yl,Qe=n(),c(L.$$.fragment),Ae=n(),b=p("p"),b.innerHTML=zl,Le=n(),c(D.$$.fragment),De=n(),P=p("p"),P.innerHTML=Fl,Pe=n(),c(q.$$.fragment),qe=n(),K=p("p"),K.innerHTML=Ql,Ke=n(),c(O.$$.fragment),Oe=n(),ee=p("p"),ee.textContent=Al,el=n(),le=p("ul"),le.innerHTML=Ll,ll=n(),se=p("p"),se.textContent=Dl,sl=n(),te=p("p"),te.innerHTML=Pl,tl=n(),c(ne.$$.fragment),nl=n(),ae=p("p"),ae.innerHTML=ql,al=n(),c(pe.$$.fragment),pl=n(),ie=p("p"),ie.textContent=Kl,il=n(),Me=p("p"),Me.innerHTML=Ol,Ml=n(),c(ce.$$.fragment),cl=n(),re=p("p"),re.textContent=es,rl=n(),c(me.$$.fragment),ml=n(),w=p("p"),w.innerHTML=ls,ul=n(),c(ue.$$.fragment),dl=n(),de=p("p"),de.innerHTML=ss,yl=n(),ye=p("p"),ye.innerHTML=ts,fl=n(),c(fe.$$.fragment),ol=n(),U=p("p"),U.innerHTML=ns,Jl=n(),oe=p("p"),oe.innerHTML=as,hl=n(),c(Je.$$.fragment),Zl=n(),g=p("p"),g.innerHTML=ps,jl=n(),c(he.$$.fragment),Tl=n(),G=p("p"),G.innerHTML=is,bl=n(),Ze=p("p"),Ze.innerHTML=Ms,wl=n(),c(je.$$.fragment),Ul=n(),$=p("p"),$.innerHTML=cs,gl=n(),Te=p("p"),Te.textContent=rs,Gl=n(),c(be.$$.fragment),$l=n(),we=p("p"),we.innerHTML=ms,Cl=n(),c(Ue.$$.fragment),Vl=n(),c(C.$$.fragment),Wl=n(),c(ge.$$.fragment),Bl=n(),$e=p("p"),this.h()},l(e){const l=Zs("svelte-u9bgzb",document.head);f=i(l,"META",{name:!0,content:!0}),l.forEach(s),W=a(e),j=i(e,"P",{}),ds(j).forEach(s),h=a(e),r(T.$$.fragment,e),J=a(e),Z=i(e,"P",{"data-svelte-h":!0}),M(Z)!=="svelte-1gn5j5o"&&(Z.innerHTML=xl),Ve=a(e),B=i(e,"P",{"data-svelte-h":!0}),M(B)!=="svelte-8r3ka0"&&(B.textContent=Il),We=a(e),v=i(e,"UL",{"data-svelte-h":!0}),M(v)!=="svelte-2kjv0b"&&(v.innerHTML=Xl),Be=a(e),x=i(e,"P",{"data-svelte-h":!0}),M(x)!=="svelte-1w95z1i"&&(x.textContent=kl),ve=a(e),r(I.$$.fragment,e),xe=a(e),X=i(e,"P",{"data-svelte-h":!0}),M(X)!=="svelte-9gtqs6"&&(X.innerHTML=_l),Ie=a(e),k=i(e,"P",{"data-svelte-h":!0}),M(k)!=="svelte-ol2kg2"&&(k.innerHTML=Nl),Xe=a(e),r(_.$$.fragment,e),ke=a(e),N=i(e,"P",{"data-svelte-h":!0}),M(N)!=="svelte-wm86y6"&&(N.textContent=Sl),_e=a(e),r(S.$$.fragment,e),Ne=a(e),r(R.$$.fragment,e),Se=a(e),E=i(e,"P",{"data-svelte-h":!0}),M(E)!=="svelte-d9qn7z"&&(E.innerHTML=Rl),Re=a(e),r(H.$$.fragment,e),Ee=a(e),Y=i(e,"P",{"data-svelte-h":!0}),M(Y)!=="svelte-jl1fz0"&&(Y.innerHTML=El),He=a(e),r(z.$$.fragment,e),Ye=a(e),F=i(e,"P",{"data-svelte-h":!0}),M(F)!=="svelte-1xlw2ku"&&(F.innerHTML=Hl),ze=a(e),r(Q.$$.fragment,e),Fe=a(e),A=i(e,"P",{"data-svelte-h":!0}),M(A)!=="svelte-agxldj"&&(A.textContent=Yl),Qe=a(e),r(L.$$.fragment,e),Ae=a(e),b=i(e,"P",{align:!0,"data-svelte-h":!0}),M(b)!=="svelte-4ve60e"&&(b.innerHTML=zl),Le=a(e),r(D.$$.fragment,e),De=a(e),P=i(e,"P",{"data-svelte-h":!0}),M(P)!=="svelte-1dyz9h"&&(P.innerHTML=Fl),Pe=a(e),r(q.$$.fragment,e),qe=a(e),K=i(e,"P",{"data-svelte-h":!0}),M(K)!=="svelte-jl1fz0"&&(K.innerHTML=Ql),Ke=a(e),r(O.$$.fragment,e),Oe=a(e),ee=i(e,"P",{"data-svelte-h":!0}),M(ee)!=="svelte-1tggiy0"&&(ee.textContent=Al),el=a(e),le=i(e,"UL",{"data-svelte-h":!0}),M(le)!=="svelte-11f2ngy"&&(le.innerHTML=Ll),ll=a(e),se=i(e,"P",{"data-svelte-h":!0}),M(se)!=="svelte-1xdydaq"&&(se.textContent=Dl),sl=a(e),te=i(e,"P",{"data-svelte-h":!0}),M(te)!=="svelte-wa1ma"&&(te.innerHTML=Pl),tl=a(e),r(ne.$$.fragment,e),nl=a(e),ae=i(e,"P",{"data-svelte-h":!0}),M(ae)!=="svelte-jl1fz0"&&(ae.innerHTML=ql),al=a(e),r(pe.$$.fragment,e),pl=a(e),ie=i(e,"P",{"data-svelte-h":!0}),M(ie)!=="svelte-coc34u"&&(ie.textContent=Kl),il=a(e),Me=i(e,"P",{"data-svelte-h":!0}),M(Me)!=="svelte-3vls5z"&&(Me.innerHTML=Ol),Ml=a(e),r(ce.$$.fragment,e),cl=a(e),re=i(e,"P",{"data-svelte-h":!0}),M(re)!=="svelte-1yiz3f0"&&(re.textContent=es),rl=a(e),r(me.$$.fragment,e),ml=a(e),w=i(e,"P",{align:!0,"data-svelte-h":!0}),M(w)!=="svelte-cbz2yl"&&(w.innerHTML=ls),ul=a(e),r(ue.$$.fragment,e),dl=a(e),de=i(e,"P",{"data-svelte-h":!0}),M(de)!=="svelte-bm02vj"&&(de.innerHTML=ss),yl=a(e),ye=i(e,"P",{"data-svelte-h":!0}),M(ye)!=="svelte-1j73k7u"&&(ye.innerHTML=ts),fl=a(e),r(fe.$$.fragment,e),ol=a(e),U=i(e,"P",{align:!0,"data-svelte-h":!0}),M(U)!=="svelte-1grq2s7"&&(U.innerHTML=ns),Jl=a(e),oe=i(e,"P",{"data-svelte-h":!0}),M(oe)!=="svelte-1b110pw"&&(oe.innerHTML=as),hl=a(e),r(Je.$$.fragment,e),Zl=a(e),g=i(e,"P",{align:!0,"data-svelte-h":!0}),M(g)!=="svelte-49gzme"&&(g.innerHTML=ps),jl=a(e),r(he.$$.fragment,e),Tl=a(e),G=i(e,"P",{align:!0,"data-svelte-h":!0}),M(G)!=="svelte-14z2yp4"&&(G.innerHTML=is),bl=a(e),Ze=i(e,"P",{"data-svelte-h":!0}),M(Ze)!=="svelte-1aoa7o4"&&(Ze.innerHTML=Ms),wl=a(e),r(je.$$.fragment,e),Ul=a(e),$=i(e,"P",{align:!0,"data-svelte-h":!0}),M($)!=="svelte-y1ydb2"&&($.innerHTML=cs),gl=a(e),Te=i(e,"P",{"data-svelte-h":!0}),M(Te)!=="svelte-ii5xbe"&&(Te.textContent=rs),Gl=a(e),r(be.$$.fragment,e),$l=a(e),we=i(e,"P",{"data-svelte-h":!0}),M(we)!=="svelte-1jzni78"&&(we.innerHTML=ms),Cl=a(e),r(Ue.$$.fragment,e),Vl=a(e),r(C.$$.fragment,e),Wl=a(e),r(ge.$$.fragment,e),Bl=a(e),$e=i(e,"P",{}),ds($e).forEach(s),this.h()},h(){V(f,"name","hf:doc:metadata"),V(f,"content",gs),V(b,"align","center"),V(w,"align","center"),V(U,"align","center"),V(g,"align","center"),V(G,"align","center"),V($,"align","center")},m(e,l){js(document.head,f),t(e,W,l),t(e,j,l),t(e,h,l),m(T,e,l),t(e,J,l),t(e,Z,l),t(e,Ve,l),t(e,B,l),t(e,We,l),t(e,v,l),t(e,Be,l),t(e,x,l),t(e,ve,l),m(I,e,l),t(e,xe,l),t(e,X,l),t(e,Ie,l),t(e,k,l),t(e,Xe,l),m(_,e,l),t(e,ke,l),t(e,N,l),t(e,_e,l),m(S,e,l),t(e,Ne,l),m(R,e,l),t(e,Se,l),t(e,E,l),t(e,Re,l),m(H,e,l),t(e,Ee,l),t(e,Y,l),t(e,He,l),m(z,e,l),t(e,Ye,l),t(e,F,l),t(e,ze,l),m(Q,e,l),t(e,Fe,l),t(e,A,l),t(e,Qe,l),m(L,e,l),t(e,Ae,l),t(e,b,l),t(e,Le,l),m(D,e,l),t(e,De,l),t(e,P,l),t(e,Pe,l),m(q,e,l),t(e,qe,l),t(e,K,l),t(e,Ke,l),m(O,e,l),t(e,Oe,l),t(e,ee,l),t(e,el,l),t(e,le,l),t(e,ll,l),t(e,se,l),t(e,sl,l),t(e,te,l),t(e,tl,l),m(ne,e,l),t(e,nl,l),t(e,ae,l),t(e,al,l),m(pe,e,l),t(e,pl,l),t(e,ie,l),t(e,il,l),t(e,Me,l),t(e,Ml,l),m(ce,e,l),t(e,cl,l),t(e,re,l),t(e,rl,l),m(me,e,l),t(e,ml,l),t(e,w,l),t(e,ul,l),m(ue,e,l),t(e,dl,l),t(e,de,l),t(e,yl,l),t(e,ye,l),t(e,fl,l),m(fe,e,l),t(e,ol,l),t(e,U,l),t(e,Jl,l),t(e,oe,l),t(e,hl,l),m(Je,e,l),t(e,Zl,l),t(e,g,l),t(e,jl,l),m(he,e,l),t(e,Tl,l),t(e,G,l),t(e,bl,l),t(e,Ze,l),t(e,wl,l),m(je,e,l),t(e,Ul,l),t(e,$,l),t(e,gl,l),t(e,Te,l),t(e,Gl,l),m(be,e,l),t(e,$l,l),t(e,we,l),t(e,Cl,l),m(Ue,e,l),t(e,Vl,l),m(C,e,l),t(e,Wl,l),m(ge,e,l),t(e,Bl,l),t(e,$e,l),vl=!0},p(e,[l]){const us={};l&2&&(us.$$scope={dirty:l,ctx:e}),C.$set(us)},i(e){vl||(u(T.$$.fragment,e),u(I.$$.fragment,e),u(_.$$.fragment,e),u(S.$$.fragment,e),u(R.$$.fragment,e),u(H.$$.fragment,e),u(z.$$.fragment,e),u(Q.$$.fragment,e),u(L.$$.fragment,e),u(D.$$.fragment,e),u(q.$$.fragment,e),u(O.$$.fragment,e),u(ne.$$.fragment,e),u(pe.$$.fragment,e),u(ce.$$.fragment,e),u(me.$$.fragment,e),u(ue.$$.fragment,e),u(fe.$$.fragment,e),u(Je.$$.fragment,e),u(he.$$.fragment,e),u(je.$$.fragment,e),u(be.$$.fragment,e),u(Ue.$$.fragment,e),u(C.$$.fragment,e),u(ge.$$.fragment,e),vl=!0)},o(e){d(T.$$.fragment,e),d(I.$$.fragment,e),d(_.$$.fragment,e),d(S.$$.fragment,e),d(R.$$.fragment,e),d(H.$$.fragment,e),d(z.$$.fragment,e),d(Q.$$.fragment,e),d(L.$$.fragment,e),d(D.$$.fragment,e),d(q.$$.fragment,e),d(O.$$.fragment,e),d(ne.$$.fragment,e),d(pe.$$.fragment,e),d(ce.$$.fragment,e),d(me.$$.fragment,e),d(ue.$$.fragment,e),d(fe.$$.fragment,e),d(Je.$$.fragment,e),d(he.$$.fragment,e),d(je.$$.fragment,e),d(be.$$.fragment,e),d(Ue.$$.fragment,e),d(C.$$.fragment,e),d(ge.$$.fragment,e),vl=!1},d(e){e&&(s(W),s(j),s(h),s(J),s(Z),s(Ve),s(B),s(We),s(v),s(Be),s(x),s(ve),s(xe),s(X),s(Ie),s(k),s(Xe),s(ke),s(N),s(_e),s(Ne),s(Se),s(E),s(Re),s(Ee),s(Y),s(He),s(Ye),s(F),s(ze),s(Fe),s(A),s(Qe),s(Ae),s(b),s(Le),s(De),s(P),s(Pe),s(qe),s(K),s(Ke),s(Oe),s(ee),s(el),s(le),s(ll),s(se),s(sl),s(te),s(tl),s(nl),s(ae),s(al),s(pl),s(ie),s(il),s(Me),s(Ml),s(cl),s(re),s(rl),s(ml),s(w),s(ul),s(dl),s(de),s(yl),s(ye),s(fl),s(ol),s(U),s(Jl),s(oe),s(hl),s(Zl),s(g),s(jl),s(Tl),s(G),s(bl),s(Ze),s(wl),s(Ul),s($),s(gl),s(Te),s(Gl),s($l),s(we),s(Cl),s(Vl),s(Wl),s(Bl),s($e)),s(f),y(T,e),y(I,e),y(_,e),y(S,e),y(R,e),y(H,e),y(z,e),y(Q,e),y(L,e),y(D,e),y(q,e),y(O,e),y(ne,e),y(pe,e),y(ce,e),y(me,e),y(ue,e),y(fe,e),y(Je,e),y(he,e),y(je,e),y(be,e),y(Ue,e),y(C,e),y(ge,e)}}}const gs='{"title":"스케줄러","local":"스케줄러","sections":[{"title":"파이프라인 불러오기","local":"파이프라인-불러오기","sections":[],"depth":2},{"title":"스케줄러 액세스","local":"스케줄러-액세스","sections":[],"depth":2},{"title":"스케줄러 교체하기","local":"스케줄러-교체하기","sections":[],"depth":2},{"title":"스케줄러들 비교해보기","local":"스케줄러들-비교해보기","sections":[],"depth":2},{"title":"Flax에서 스케줄러 교체하기","local":"flax에서-스케줄러-교체하기","sections":[],"depth":2}],"depth":1}';function Gs(Ce){return fs(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class vs extends Js{constructor(f){super(),hs(this,f,Gs,Us,ys,{})}}export{vs as component}; | |
Xet Storage Details
- Size:
- 34.7 kB
- Xet hash:
- adb0abbe6e68c15dc40604404bdb6f7639031c54b0bbe31cf31cf382c7bf3e8c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.