import{s as il,o as nl,n as pl}from"../chunks/scheduler.e3739aa0.js";import{S as al,i as fl,g as p,s as i,r,E as rl,h as a,f as l,c as n,j as sl,u as o,x as f,k as we,y as ol,a as s,v as m,d as c,t as u,w as M}from"../chunks/index.13f5b837.js";import{T as ml}from"../chunks/Tip.51dedfeb.js";import{C as d}from"../chunks/CodeBlock.de02009a.js";import{H as be,E as cl}from"../chunks/EditOnGithub.72bac8d8.js";function ul(Ue){let y,v="우리는 <code>.safetensors</code> 형식을 추천합니다. 왜냐하면 기존의 pickled 파일은 취약하고 머신에서 코드를 실행할 때 악용될 수 있는 것에 비해 훨씬 더 안전합니다. (safetensors 불러오기 가이드에서 자세히 알아보세요.)";return{c(){y=p("p"),y.innerHTML=v},l(T){y=a(T,"P",{"data-svelte-h":!0}),f(y)!=="svelte-enezc3"&&(y.innerHTML=v)},m(T,Je){s(T,y,Je)},p:pl,d(T){T&&l(y)}}}function Ml(Ue){let y,v,T,Je,C,$e,Z,$t='Stable Diffusion 모델들은 학습 및 저장된 프레임워크와 다운로드 위치에 따라 다양한 형식으로 제공됩니다. 이러한 형식을 🤗 Diffusers에서 사용할 수 있도록 변환하면 추론을 위한 <a href="schedulers">다양한 스케줄러 사용</a>, 사용자 지정 파이프라인 구축, 추론 속도 최적화를 위한 다양한 기법과 방법 등 라이브러리에서 지원하는 모든 기능을 사용할 수 있습니다.',ve,w,Ce,g,vt="이 가이드에서는 다른 Stable Diffusion 형식을 🤗 Diffusers와 호환되도록 변환하는 방법을 설명합니다.",Ze,j,ge,k,Ct="체크포인트 또는 <code>.ckpt</code> 형식은 일반적으로 모델을 저장하는 데 사용됩니다. <code>.ckpt</code> 파일은 전체 모델을 포함하며 일반적으로 크기가 몇 GB입니다. <code>.ckpt</code> 파일을 [~StableDiffusionPipeline.from_ckpt] 메서드를 사용하여 직접 불러와서 사용할 수도 있지만, 일반적으로 두 가지 형식을 모두 사용할 수 있도록 <code>.ckpt</code> 파일을 🤗 Diffusers로 변환하는 것이 더 좋습니다.",je,G,Zt="<code>.ckpt</code> 파일을 변환하는 두 가지 옵션이 있습니다. Space를 사용하여 체크포인트를 변환하거나 스크립트를 사용하여 <code>.ckpt</code> 파일을 변환합니다.",ke,_,Ge,H,gt="<code>.ckpt</code> 파일을 변환하는 가장 쉽고 편리한 방법은 SD에서 Diffusers로 스페이스를 사용하는 것입니다. Space의 지침에 따라 .ckpt 파일을 변환 할 수 있습니다.",_e,x,jt=`이 접근 방식은 기본 모델에서는 잘 작동하지만 더 많은 사용자 정의 모델에서는 어려움을 겪을 수 있습니다. 빈 pull request나 오류를 반환하면 Space가 실패한 것입니다.
이 경우 스크립트를 사용하여 <code>.ckpt</code> 파일을 변환해 볼 수 있습니다.`,He,W,xe,I,kt="🤗 Diffusers는 <code>.ckpt</code>  파일 변환을 위한 변환 스크립트를 제공합니다. 이 접근 방식은 위의 Space보다 더 안정적입니다.",We,B,Gt="시작하기 전에 스크립트를 실행할 🤗 Diffusers의 로컬 클론(clone)이 있는지 확인하고 Hugging Face 계정에 로그인하여 pull request를 열고 변환된 모델을 허브에 푸시할 수 있도록 하세요.",Ie,V,Be,L,_t="스크립트를 사용하려면:",Ve,R,Ht="<li>변환하려는 <code>.ckpt</code>  파일이 포함된 리포지토리를 Git으로 클론(clone)합니다.</li>",Le,X,xt="이 예제에서는 TemporalNet .ckpt 파일을 변환해 보겠습니다:",Re,Y,Xe,J,Wt="<li>체크포인트를 변환할 리포지토리에서 pull request를 엽니다:</li>",Ye,S,Se,b,It="<li>변환 스크립트에서 구성할 입력 인수는 여러 가지가 있지만 가장 중요한 인수는 다음과 같습니다:</li>",Ne,N,Bt="<li><code>checkpoint_path</code>: 변환할 <code>.ckpt</code> 파일의 경로를 입력합니다.</li> <li><code>original_config_file</code>: 원래 아키텍처의 구성을 정의하는 YAML 파일입니다. 이 파일을 찾을 수 없는 경우 <code>.ckpt</code> 파일을 찾은 GitHub 리포지토리에서 YAML 파일을 검색해 보세요.</li> <li><code>dump_path</code>: 변환된 모델의 경로</li>",ze,z,Vt="예를 들어, TemporalNet 모델은 Stable Diffusion v1.5 및 ControlNet 모델이기 때문에 ControlNet 리포지토리에서 cldm_v15.yaml 파일을 가져올 수 있습니다.",Qe,h,Lt="<li>이제 스크립트를 실행하여 .ckpt 파일을 변환할 수 있습니다:</li>",Ee,Q,De,U,Rt='<li>변환이 완료되면 변환된 모델을 업로드하고 결과물을 pull request <a href="https://huggingface.co/CiaraRowles/TemporalNet/discussions/13" rel="nofollow">pull request</a>를 테스트하세요!</li>',Pe,E,Fe,D,Ae,P,Xt="🧪 이 기능은 실험적인 기능입니다. 현재로서는 Stable Diffusion v1 체크포인트만 변환 KerasCV Space에서 지원됩니다.",qe,F,Yt='<a href="https://keras.io/keras_cv/" rel="nofollow">KerasCV</a>는 <a href="https://github.com/keras-team/keras-cv/blob/master/keras_cv/models/stable_diffusion" rel="nofollow">Stable Diffusion</a>  v1 및 v2에 대한 학습을 지원합니다. 그러나 추론 및 배포를 위한 Stable Diffusion 모델 실험을 제한적으로 지원하는 반면, 🤗 Diffusers는 다양한 <a href="https://huggingface.co/docs/diffusers/using-diffusers/schedulers" rel="nofollow">noise schedulers</a>, <a href="https://huggingface.co/docs/diffusers/optimization/xformers" rel="nofollow">flash attention</a>, and <a href="https://huggingface.co/docs/diffusers/optimization/fp16" rel="nofollow">other optimization techniques</a> 등 이러한 목적을 위한 보다 완벽한 기능을 갖추고 있습니다.',Ke,A,St='<a href="https://huggingface.co/spaces/sayakpaul/convert-kerascv-sd-diffusers" rel="nofollow">Convert KerasCV</a> Space 변환은 <code>.pb</code> 또는 <code>.h5</code>을 PyTorch로 변환한 다음, 추론할 수 있도록 <code>StableDiffusionPipeline</code> 으로 감싸서 준비합니다. 변환된 체크포인트는 Hugging Face Hub의 리포지토리에 저장됩니다.',Oe,q,Nt="예제로, textual-inversion으로 학습된 <code>[sayakpaul/textual-inversion-kerasio](https://huggingface.co/sayakpaul/textual-inversion-kerasio/tree/main)</code> 체크포인트를 변환해 보겠습니다. 이것은 특수 토큰  <code>&lt;my-funny-cat&gt;</code>을 사용하여 고양이로 이미지를 개인화합니다.",et,K,zt="KerasCV Space 변환에서는 다음을 입력할 수 있습니다:",tt,O,Qt="<li>Hugging Face 토큰.</li> <li>UNet 과 텍스트 인코더(text encoder) 가중치를 다운로드하는 경로입니다. 모델을 어떻게 학습할지 방식에 따라, UNet과 텍스트 인코더의 경로를 모두 제공할 필요는 없습니다. 예를 들어, textual-inversion에는 텍스트 인코더의 임베딩만 필요하고 텍스트-이미지(text-to-image) 모델 변환에는 UNet 가중치만 필요합니다.</li> <li>Placeholder 토큰은 textual-inversion 모델에만 적용됩니다.</li> <li><code>output_repo_prefix</code>는 변환된 모델이 저장되는 리포지토리의 이름입니다.</li>",lt,ee,Et="<strong>Submit</strong> (제출) 버튼을 클릭하면 KerasCV 체크포인트가 자동으로 변환됩니다! 체크포인트가 성공적으로 변환되면, 변환된 체크포인트가 포함된 새 리포지토리로 연결되는 링크가 표시됩니다. 새 리포지토리로 연결되는 링크를 따라가면 변환된 모델을 사용해 볼 수 있는 추론 위젯이 포함된 모델 카드가 생성된 KerasCV Space 변환을 확인할 수 있습니다.",st,te,Dt="코드를 사용하여 추론을 실행하려면 모델 카드의 오른쪽 상단 모서리에 있는 <strong>Use in Diffusers</strong>  버튼을 클릭하여 예시 코드를 복사하여 붙여넣습니다:",it,le,nt,se,Pt="그러면 다음과 같은 이미지를 생성할 수 있습니다:",pt,ie,at,ne,ft,pe,Ft='<a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" rel="nofollow">Automatic1111</a> (A1111)은 Stable Diffusion을 위해 널리 사용되는 웹 UI로, <a href="https://civitai.com/" rel="nofollow">Civitai</a> 와 같은 모델 공유 플랫폼을 지원합니다. 특히 LoRA 기법으로 학습된 모델은 학습 속도가 빠르고 완전히 파인튜닝된 모델보다 파일 크기가 훨씬 작기 때문에 인기가 높습니다.',rt,ae,At="🤗 Diffusers는 <code>load_lora_weights()</code>:를 사용하여 A1111 LoRA 체크포인트 불러오기를 지원합니다:",ot,fe,mt,re,qt='Civitai에서 LoRA 체크포인트를 다운로드하세요; 이 예제에서는  <a href="https://civitai.com/models/14605?modelVersionId=19998" rel="nofollow">Howls Moving Castle,Interior/Scenery LoRA (Ghibli Stlye)</a> 체크포인트를 사용했지만, 어떤 LoRA 체크포인트든 자유롭게 사용해 보세요!',ct,oe,ut,me,Kt="메서드를 사용하여 파이프라인에 LoRA 체크포인트를 불러옵니다:",Mt,ce,yt,ue,Ot="이제 파이프라인을 사용하여 이미지를 생성할 수 있습니다:",dt,Me,Tt,ye,el="마지막으로, 디스플레이에 이미지를 표시하는 헬퍼 함수를 만듭니다:",wt,de,Jt,$,tl='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/a1111-lora-sf.png"/>',bt,Te,ht,he,Ut;return C=new be({props:{title:"다양한 Stable Diffusion 포맷 불러오기",local:"다양한-stable-diffusion-포맷-불러오기",headingTag:"h1"}}),w=new ml({props:{$$slots:{default:[ul]},$$scope:{ctx:Ue}}}),j=new be({props:{title:"PyTorch .ckpt",local:"pytorch-ckpt",headingTag:"h2"}}),_=new be({props:{title:"Space로 변환하기",local:"space로-변환하기",headingTag:"h3"}}),W=new be({props:{title:"스크립트로 변환하기",local:"스크립트로-변환하기",headingTag:"h3"}}),V=new d({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),Y=new d({props:{code:"Z2l0JTIwbGZzJTIwaW5zdGFsbCUwQWdpdCUyMGNsb25lJTIwaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRkNpYXJhUm93bGVzJTJGVGVtcG9yYWxOZXQ=",highlighted:`git lfs install
git <span class="hljs-built_in">clone</span> https://huggingface.co/CiaraRowles/TemporalNet`,wrap:!1}}),S=new d({props:{code:"Y2QlMjBUZW1wb3JhbE5ldCUyMCUyNiUyNiUyMGdpdCUyMGZldGNoJTIwb3JpZ2luJTIwcmVmcyUyRnByJTJGMTMlM0FwciUyRjEzJTBBZ2l0JTIwY2hlY2tvdXQlMjBwciUyRjEz",highlighted:`<span class="hljs-built_in">cd</span> TemporalNet &amp;&amp; git fetch origin refs/pr/13:<span class="hljs-built_in">pr</span>/13
git checkout <span class="hljs-built_in">pr</span>/13`,wrap:!1}}),Q=new d({props:{code:"cHl0aG9uJTIwLi4lMkZkaWZmdXNlcnMlMkZzY3JpcHRzJTJGY29udmVydF9vcmlnaW5hbF9zdGFibGVfZGlmZnVzaW9uX3RvX2RpZmZ1c2Vycy5weSUyMC0tY2hlY2twb2ludF9wYXRoJTIwdGVtcG9yYWxuZXR2My5ja3B0JTIwLS1vcmlnaW5hbF9jb25maWdfZmlsZSUyMGNsZG1fdjE1LnlhbWwlMjAtLWR1bXBfcGF0aCUyMC4lMkYlMjAtLWNvbnRyb2xuZXQ=",highlighted:"python ../diffusers/scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path temporalnetv3.ckpt --original_config_file cldm_v15.yaml --dump_path ./ --controlnet",wrap:!1}}),E=new d({props:{code:"Z2l0JTIwcHVzaCUyMG9yaWdpbiUyMHByJTJGMTMlM0FyZWZzJTJGcHIlMkYxMw==",highlighted:'git push origin <span class="hljs-built_in">pr</span>/13:refs/pr/13',wrap:!1}}),D=new be({props:{title:"Keras .pb or .h5",local:"keras-pb-or-h5",headingTag:"h2"}}),le=new d({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc2F5YWtwYXVsJTJGdGV4dHVhbC1pbnZlcnNpb24tY2F0LWtlcmFzY3Zfc2RfZGlmZnVzZXJzX3BpcGVsaW5lJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;sayakpaul/textual-inversion-cat-kerascv_sd_diffusers_pipeline&quot;</span>)`,wrap:!1}}),ie=new d({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc2F5YWtwYXVsJTJGdGV4dHVhbC1pbnZlcnNpb24tY2F0LWtlcmFzY3Zfc2RfZGlmZnVzZXJzX3BpcGVsaW5lJTIyKSUwQXBpcGVsaW5lLnRvKCUyMmN1ZGElMjIpJTBBJTBBcGxhY2Vob2xkZXJfdG9rZW4lMjAlM0QlMjAlMjIlM0NteS1mdW5ueS1jYXQtdG9rZW4lM0UlMjIlMEFwcm9tcHQlMjAlM0QlMjBmJTIydHdvJTIwJTdCcGxhY2Vob2xkZXJfdG9rZW4lN0QlMjBnZXR0aW5nJTIwbWFycmllZCUyQyUyMHBob3RvcmVhbGlzdGljJTJDJTIwaGlnaCUyMHF1YWxpdHklMjIlMEFpbWFnZSUyMCUzRCUyMHBpcGVsaW5lKHByb21wdCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q1MCkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;sayakpaul/textual-inversion-cat-kerascv_sd_diffusers_pipeline&quot;</span>)
pipeline.to(<span class="hljs-string">&quot;cuda&quot;</span>)

placeholder_token = <span class="hljs-string">&quot;&lt;my-funny-cat-token&gt;&quot;</span>
prompt = <span class="hljs-string">f&quot;two <span class="hljs-subst">{placeholder_token}</span> getting married, photorealistic, high quality&quot;</span>
image = pipeline(prompt, num_inference_steps=<span class="hljs-number">50</span>).images[<span class="hljs-number">0</span>]`,wrap:!1}}),ne=new be({props:{title:"A1111 LoRA files",local:"a1111-lora-files",headingTag:"h2"}}),fe=new d({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTJDJTIwVW5pUENNdWx0aXN0ZXBTY2hlZHVsZXIlMEFpbXBvcnQlMjB0b3JjaCUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmFuZGl0ZSUyRmFueXRoaW5nLXY0LjAlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMjBzYWZldHlfY2hlY2tlciUzRE5vbmUlMEEpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUuc2NoZWR1bGVyJTIwJTNEJTIwVW5pUENNdWx0aXN0ZXBTY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZWxpbmUuc2NoZWR1bGVyLmNvbmZpZyk=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline, UniPCMultistepScheduler
<span class="hljs-keyword">import</span> torch

pipeline = DiffusionPipeline.from_pretrained(
    <span class="hljs-string">&quot;andite/anything-v4.0&quot;</span>, torch_dtype=torch.float16, safety_checker=<span class="hljs-literal">None</span>
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.scheduler = UniPCMultistepScheduler.from_config(pipeline.scheduler.config)`,wrap:!1}}),oe=new d({props:{code:"IXdnZXQlMjBodHRwcyUzQSUyRiUyRmNpdml0YWkuY29tJTJGYXBpJTJGZG93bmxvYWQlMkZtb2RlbHMlMkYxOTk5OCUyMC1PJTIwaG93bHNfbW92aW5nX2Nhc3RsZS5zYWZldGVuc29ycw==",highlighted:"!wget https://civitai.com/api/download/models/19998 -O howls_moving_castle.safetensors",wrap:!1}}),ce=new d({props:{code:"cGlwZWxpbmUubG9hZF9sb3JhX3dlaWdodHMoJTIyLiUyMiUyQyUyMHdlaWdodF9uYW1lJTNEJTIyaG93bHNfbW92aW5nX2Nhc3RsZS5zYWZldGVuc29ycyUyMik=",highlighted:'pipeline.load_lora_weights(<span class="hljs-string">&quot;.&quot;</span>, weight_name=<span class="hljs-string">&quot;howls_moving_castle.safetensors&quot;</span>)',wrap:!1}}),Me=new d({props:{code:"cHJvbXB0JTIwJTNEJTIwJTIybWFzdGVycGllY2UlMkMlMjBpbGx1c3RyYXRpb24lMkMlMjB1bHRyYS1kZXRhaWxlZCUyQyUyMGNpdHlzY2FwZSUyQyUyMHNhbiUyMGZyYW5jaXNjbyUyQyUyMGdvbGRlbiUyMGdhdGUlMjBicmlkZ2UlMkMlMjBjYWxpZm9ybmlhJTJDJTIwYmF5JTIwYXJlYSUyQyUyMGluJTIwdGhlJTIwc25vdyUyQyUyMGJlYXV0aWZ1bCUyMGRldGFpbGVkJTIwc3RhcnJ5JTIwc2t5JTIyJTBBbmVnYXRpdmVfcHJvbXB0JTIwJTNEJTIwJTIybG93cmVzJTJDJTIwY3JvcHBlZCUyQyUyMHdvcnN0JTIwcXVhbGl0eSUyQyUyMGxvdyUyMHF1YWxpdHklMkMlMjBub3JtYWwlMjBxdWFsaXR5JTJDJTIwYXJ0aWZhY3RzJTJDJTIwc2lnbmF0dXJlJTJDJTIwd2F0ZXJtYXJrJTJDJTIwdXNlcm5hbWUlMkMlMjBibHVycnklMkMlMjBtb3JlJTIwdGhhbiUyMG9uZSUyMGJyaWRnZSUyQyUyMGJhZCUyMGFyY2hpdGVjdHVyZSUyMiUwQSUwQWltYWdlcyUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG5lZ2F0aXZlX3Byb21wdCUzRG5lZ2F0aXZlX3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDI1JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ltYWdlc19wZXJfcHJvbXB0JTNENCUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRHRvcmNoLm1hbnVhbF9zZWVkKDApJTJDJTBBKS5pbWFnZXM=",highlighted:`prompt = <span class="hljs-string">&quot;masterpiece, illustration, ultra-detailed, cityscape, san francisco, golden gate bridge, california, bay area, in the snow, beautiful detailed starry sky&quot;</span>
negative_prompt = <span class="hljs-string">&quot;lowres, cropped, worst quality, low quality, normal quality, artifacts, signature, watermark, username, blurry, more than one bridge, bad architecture&quot;</span>

images = pipeline(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=<span class="hljs-number">512</span>,
    height=<span class="hljs-number">512</span>,
    num_inference_steps=<span class="hljs-number">25</span>,
    num_images_per_prompt=<span class="hljs-number">4</span>,
    generator=torch.manual_seed(<span class="hljs-number">0</span>),
).images`,wrap:!1}}),de=new d({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBJTBBJTBBZGVmJTIwaW1hZ2VfZ3JpZChpbWdzJTJDJTIwcm93cyUzRDIlMkMlMjBjb2xzJTNEMiklM0ElMEElMjAlMjAlMjAlMjB3JTJDJTIwaCUyMCUzRCUyMGltZ3MlNUIwJTVELnNpemUlMEElMjAlMjAlMjAlMjBncmlkJTIwJTNEJTIwSW1hZ2UubmV3KCUyMlJHQiUyMiUyQyUyMHNpemUlM0QoY29scyUyMColMjB3JTJDJTIwcm93cyUyMColMjBoKSklMEElMEElMjAlMjAlMjAlMjBmb3IlMjBpJTJDJTIwaW1nJTIwaW4lMjBlbnVtZXJhdGUoaW1ncyklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBncmlkLnBhc3RlKGltZyUyQyUyMGJveCUzRChpJTIwJTI1JTIwY29scyUyMColMjB3JTJDJTIwaSUyMCUyRiUyRiUyMGNvbHMlMjAqJTIwaCkpJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZ3JpZCUwQSUwQSUwQWltYWdlX2dyaWQoaW1hZ2VzKQ==",highlighted:`<span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image


<span class="hljs-keyword">def</span> <span class="hljs-title function_">image_grid</span>(<span class="hljs-params">imgs, rows=<span class="hljs-number">2</span>, cols=<span class="hljs-number">2</span></span>):
    w, h = imgs[<span class="hljs-number">0</span>].size
    grid = Image.new(<span class="hljs-string">&quot;RGB&quot;</span>, size=(cols * w, rows * h))

    <span class="hljs-keyword">for</span> i, img <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(imgs):
        grid.paste(img, box=(i % cols * w, i // cols * h))
    <span class="hljs-keyword">return</span> grid


image_grid(images)`,wrap:!1}}),Te=new cl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/using-diffusers/other-formats.md"}}),{c(){y=p("meta"),v=i(),T=p("p"),Je=i(),r(C.$$.fragment),$e=i(),Z=p("p"),Z.innerHTML=$t,ve=i(),r(w.$$.fragment),Ce=i(),g=p("p"),g.textContent=vt,Ze=i(),r(j.$$.fragment),ge=i(),k=p("p"),k.innerHTML=Ct,je=i(),G=p("p"),G.innerHTML=Zt,ke=i(),r(_.$$.fragment),Ge=i(),H=p("p"),H.innerHTML=gt,_e=i(),x=p("p"),x.innerHTML=jt,He=i(),r(W.$$.fragment),xe=i(),I=p("p"),I.innerHTML=kt,We=i(),B=p("p"),B.textContent=Gt,Ie=i(),r(V.$$.fragment),Be=i(),L=p("p"),L.textContent=_t,Ve=i(),R=p("ol"),R.innerHTML=Ht,Le=i(),X=p("p"),X.textContent=xt,Re=i(),r(Y.$$.fragment),Xe=i(),J=p("ol"),J.innerHTML=Wt,Ye=i(),r(S.$$.fragment),Se=i(),b=p("ol"),b.innerHTML=It,Ne=i(),N=p("ul"),N.innerHTML=Bt,ze=i(),z=p("p"),z.textContent=Vt,Qe=i(),h=p("ol"),h.innerHTML=Lt,Ee=i(),r(Q.$$.fragment),De=i(),U=p("ol"),U.innerHTML=Rt,Pe=i(),r(E.$$.fragment),Fe=i(),r(D.$$.fragment),Ae=i(),P=p("p"),P.textContent=Xt,qe=i(),F=p("p"),F.innerHTML=Yt,Ke=i(),A=p("p"),A.innerHTML=St,Oe=i(),q=p("p"),q.innerHTML=Nt,et=i(),K=p("p"),K.textContent=zt,tt=i(),O=p("ul"),O.innerHTML=Qt,lt=i(),ee=p("p"),ee.innerHTML=Et,st=i(),te=p("p"),te.innerHTML=Dt,it=i(),r(le.$$.fragment),nt=i(),se=p("p"),se.textContent=Pt,pt=i(),r(ie.$$.fragment),at=i(),r(ne.$$.fragment),ft=i(),pe=p("p"),pe.innerHTML=Ft,rt=i(),ae=p("p"),ae.innerHTML=At,ot=i(),r(fe.$$.fragment),mt=i(),re=p("p"),re.innerHTML=qt,ct=i(),r(oe.$$.fragment),ut=i(),me=p("p"),me.textContent=Kt,Mt=i(),r(ce.$$.fragment),yt=i(),ue=p("p"),ue.textContent=Ot,dt=i(),r(Me.$$.fragment),Tt=i(),ye=p("p"),ye.textContent=el,wt=i(),r(de.$$.fragment),Jt=i(),$=p("div"),$.innerHTML=tl,bt=i(),r(Te.$$.fragment),ht=i(),he=p("p"),this.h()},l(e){const t=rl("svelte-u9bgzb",document.head);y=a(t,"META",{name:!0,content:!0}),t.forEach(l),v=n(e),T=a(e,"P",{}),sl(T).forEach(l),Je=n(e),o(C.$$.fragment,e),$e=n(e),Z=a(e,"P",{"data-svelte-h":!0}),f(Z)!=="svelte-ny0ia9"&&(Z.innerHTML=$t),ve=n(e),o(w.$$.fragment,e),Ce=n(e),g=a(e,"P",{"data-svelte-h":!0}),f(g)!=="svelte-dag7j3"&&(g.textContent=vt),Ze=n(e),o(j.$$.fragment,e),ge=n(e),k=a(e,"P",{"data-svelte-h":!0}),f(k)!=="svelte-g2l8hd"&&(k.innerHTML=Ct),je=n(e),G=a(e,"P",{"data-svelte-h":!0}),f(G)!=="svelte-1mth1jm"&&(G.innerHTML=Zt),ke=n(e),o(_.$$.fragment,e),Ge=n(e),H=a(e,"P",{"data-svelte-h":!0}),f(H)!=="svelte-11lmd3v"&&(H.innerHTML=gt),_e=n(e),x=a(e,"P",{"data-svelte-h":!0}),f(x)!=="svelte-ioknmf"&&(x.innerHTML=jt),He=n(e),o(W.$$.fragment,e),xe=n(e),I=a(e,"P",{"data-svelte-h":!0}),f(I)!=="svelte-1a9pmvw"&&(I.innerHTML=kt),We=n(e),B=a(e,"P",{"data-svelte-h":!0}),f(B)!=="svelte-1jje2pq"&&(B.textContent=Gt),Ie=n(e),o(V.$$.fragment,e),Be=n(e),L=a(e,"P",{"data-svelte-h":!0}),f(L)!=="svelte-1xvfh9k"&&(L.textContent=_t),Ve=n(e),R=a(e,"OL",{"data-svelte-h":!0}),f(R)!=="svelte-q4ge8f"&&(R.innerHTML=Ht),Le=n(e),X=a(e,"P",{"data-svelte-h":!0}),f(X)!=="svelte-1w43dgc"&&(X.textContent=xt),Re=n(e),o(Y.$$.fragment,e),Xe=n(e),J=a(e,"OL",{start:!0,"data-svelte-h":!0}),f(J)!=="svelte-7pbqwx"&&(J.innerHTML=Wt),Ye=n(e),o(S.$$.fragment,e),Se=n(e),b=a(e,"OL",{start:!0,"data-svelte-h":!0}),f(b)!=="svelte-58i5b3"&&(b.innerHTML=It),Ne=n(e),N=a(e,"UL",{"data-svelte-h":!0}),f(N)!=="svelte-hhbc53"&&(N.innerHTML=Bt),ze=n(e),z=a(e,"P",{"data-svelte-h":!0}),f(z)!=="svelte-2ev4pr"&&(z.textContent=Vt),Qe=n(e),h=a(e,"OL",{start:!0,"data-svelte-h":!0}),f(h)!=="svelte-13q386f"&&(h.innerHTML=Lt),Ee=n(e),o(Q.$$.fragment,e),De=n(e),U=a(e,"OL",{start:!0,"data-svelte-h":!0}),f(U)!=="svelte-5zcugn"&&(U.innerHTML=Rt),Pe=n(e),o(E.$$.fragment,e),Fe=n(e),o(D.$$.fragment,e),Ae=n(e),P=a(e,"P",{"data-svelte-h":!0}),f(P)!=="svelte-1hydgvh"&&(P.textContent=Xt),qe=n(e),F=a(e,"P",{"data-svelte-h":!0}),f(F)!=="svelte-evyd48"&&(F.innerHTML=Yt),Ke=n(e),A=a(e,"P",{"data-svelte-h":!0}),f(A)!=="svelte-xfy8ya"&&(A.innerHTML=St),Oe=n(e),q=a(e,"P",{"data-svelte-h":!0}),f(q)!=="svelte-7adj6i"&&(q.innerHTML=Nt),et=n(e),K=a(e,"P",{"data-svelte-h":!0}),f(K)!=="svelte-17vsvb0"&&(K.textContent=zt),tt=n(e),O=a(e,"UL",{"data-svelte-h":!0}),f(O)!=="svelte-19krroh"&&(O.innerHTML=Qt),lt=n(e),ee=a(e,"P",{"data-svelte-h":!0}),f(ee)!=="svelte-mbrz2o"&&(ee.innerHTML=Et),st=n(e),te=a(e,"P",{"data-svelte-h":!0}),f(te)!=="svelte-1kvpgk3"&&(te.innerHTML=Dt),it=n(e),o(le.$$.fragment,e),nt=n(e),se=a(e,"P",{"data-svelte-h":!0}),f(se)!=="svelte-1yszs66"&&(se.textContent=Pt),pt=n(e),o(ie.$$.fragment,e),at=n(e),o(ne.$$.fragment,e),ft=n(e),pe=a(e,"P",{"data-svelte-h":!0}),f(pe)!=="svelte-4t1ww0"&&(pe.innerHTML=Ft),rt=n(e),ae=a(e,"P",{"data-svelte-h":!0}),f(ae)!=="svelte-gc0c8a"&&(ae.innerHTML=At),ot=n(e),o(fe.$$.fragment,e),mt=n(e),re=a(e,"P",{"data-svelte-h":!0}),f(re)!=="svelte-1i6hffg"&&(re.innerHTML=qt),ct=n(e),o(oe.$$.fragment,e),ut=n(e),me=a(e,"P",{"data-svelte-h":!0}),f(me)!=="svelte-8zpnm4"&&(me.textContent=Kt),Mt=n(e),o(ce.$$.fragment,e),yt=n(e),ue=a(e,"P",{"data-svelte-h":!0}),f(ue)!=="svelte-1dk7ho0"&&(ue.textContent=Ot),dt=n(e),o(Me.$$.fragment,e),Tt=n(e),ye=a(e,"P",{"data-svelte-h":!0}),f(ye)!=="svelte-5yws26"&&(ye.textContent=el),wt=n(e),o(de.$$.fragment,e),Jt=n(e),$=a(e,"DIV",{class:!0,"data-svelte-h":!0}),f($)!=="svelte-1y5hkhz"&&($.innerHTML=tl),bt=n(e),o(Te.$$.fragment,e),ht=n(e),he=a(e,"P",{}),sl(he).forEach(l),this.h()},h(){we(y,"name","hf:doc:metadata"),we(y,"content",yl),we(J,"start","2"),we(b,"start","3"),we(h,"start","4"),we(U,"start","5"),we($,"class","flex justify-center")},m(e,t){ol(document.head,y),s(e,v,t),s(e,T,t),s(e,Je,t),m(C,e,t),s(e,$e,t),s(e,Z,t),s(e,ve,t),m(w,e,t),s(e,Ce,t),s(e,g,t),s(e,Ze,t),m(j,e,t),s(e,ge,t),s(e,k,t),s(e,je,t),s(e,G,t),s(e,ke,t),m(_,e,t),s(e,Ge,t),s(e,H,t),s(e,_e,t),s(e,x,t),s(e,He,t),m(W,e,t),s(e,xe,t),s(e,I,t),s(e,We,t),s(e,B,t),s(e,Ie,t),m(V,e,t),s(e,Be,t),s(e,L,t),s(e,Ve,t),s(e,R,t),s(e,Le,t),s(e,X,t),s(e,Re,t),m(Y,e,t),s(e,Xe,t),s(e,J,t),s(e,Ye,t),m(S,e,t),s(e,Se,t),s(e,b,t),s(e,Ne,t),s(e,N,t),s(e,ze,t),s(e,z,t),s(e,Qe,t),s(e,h,t),s(e,Ee,t),m(Q,e,t),s(e,De,t),s(e,U,t),s(e,Pe,t),m(E,e,t),s(e,Fe,t),m(D,e,t),s(e,Ae,t),s(e,P,t),s(e,qe,t),s(e,F,t),s(e,Ke,t),s(e,A,t),s(e,Oe,t),s(e,q,t),s(e,et,t),s(e,K,t),s(e,tt,t),s(e,O,t),s(e,lt,t),s(e,ee,t),s(e,st,t),s(e,te,t),s(e,it,t),m(le,e,t),s(e,nt,t),s(e,se,t),s(e,pt,t),m(ie,e,t),s(e,at,t),m(ne,e,t),s(e,ft,t),s(e,pe,t),s(e,rt,t),s(e,ae,t),s(e,ot,t),m(fe,e,t),s(e,mt,t),s(e,re,t),s(e,ct,t),m(oe,e,t),s(e,ut,t),s(e,me,t),s(e,Mt,t),m(ce,e,t),s(e,yt,t),s(e,ue,t),s(e,dt,t),m(Me,e,t),s(e,Tt,t),s(e,ye,t),s(e,wt,t),m(de,e,t),s(e,Jt,t),s(e,$,t),s(e,bt,t),m(Te,e,t),s(e,ht,t),s(e,he,t),Ut=!0},p(e,[t]){const ll={};t&2&&(ll.$$scope={dirty:t,ctx:e}),w.$set(ll)},i(e){Ut||(c(C.$$.fragment,e),c(w.$$.fragment,e),c(j.$$.fragment,e),c(_.$$.fragment,e),c(W.$$.fragment,e),c(V.$$.fragment,e),c(Y.$$.fragment,e),c(S.$$.fragment,e),c(Q.$$.fragment,e),c(E.$$.fragment,e),c(D.$$.fragment,e),c(le.$$.fragment,e),c(ie.$$.fragment,e),c(ne.$$.fragment,e),c(fe.$$.fragment,e),c(oe.$$.fragment,e),c(ce.$$.fragment,e),c(Me.$$.fragment,e),c(de.$$.fragment,e),c(Te.$$.fragment,e),Ut=!0)},o(e){u(C.$$.fragment,e),u(w.$$.fragment,e),u(j.$$.fragment,e),u(_.$$.fragment,e),u(W.$$.fragment,e),u(V.$$.fragment,e),u(Y.$$.fragment,e),u(S.$$.fragment,e),u(Q.$$.fragment,e),u(E.$$.fragment,e),u(D.$$.fragment,e),u(le.$$.fragment,e),u(ie.$$.fragment,e),u(ne.$$.fragment,e),u(fe.$$.fragment,e),u(oe.$$.fragment,e),u(ce.$$.fragment,e),u(Me.$$.fragment,e),u(de.$$.fragment,e),u(Te.$$.fragment,e),Ut=!1},d(e){e&&(l(v),l(T),l(Je),l($e),l(Z),l(ve),l(Ce),l(g),l(Ze),l(ge),l(k),l(je),l(G),l(ke),l(Ge),l(H),l(_e),l(x),l(He),l(xe),l(I),l(We),l(B),l(Ie),l(Be),l(L),l(Ve),l(R),l(Le),l(X),l(Re),l(Xe),l(J),l(Ye),l(Se),l(b),l(Ne),l(N),l(ze),l(z),l(Qe),l(h),l(Ee),l(De),l(U),l(Pe),l(Fe),l(Ae),l(P),l(qe),l(F),l(Ke),l(A),l(Oe),l(q),l(et),l(K),l(tt),l(O),l(lt),l(ee),l(st),l(te),l(it),l(nt),l(se),l(pt),l(at),l(ft),l(pe),l(rt),l(ae),l(ot),l(mt),l(re),l(ct),l(ut),l(me),l(Mt),l(yt),l(ue),l(dt),l(Tt),l(ye),l(wt),l(Jt),l($),l(bt),l(ht),l(he)),l(y),M(C,e),M(w,e),M(j,e),M(_,e),M(W,e),M(V,e),M(Y,e),M(S,e),M(Q,e),M(E,e),M(D,e),M(le,e),M(ie,e),M(ne,e),M(fe,e),M(oe,e),M(ce,e),M(Me,e),M(de,e),M(Te,e)}}}const yl='{"title":"다양한 Stable Diffusion 포맷 불러오기","local":"다양한-stable-diffusion-포맷-불러오기","sections":[{"title":"PyTorch .ckpt","local":"pytorch-ckpt","sections":[{"title":"Space로 변환하기","local":"space로-변환하기","sections":[],"depth":3},{"title":"스크립트로 변환하기","local":"스크립트로-변환하기","sections":[],"depth":3}],"depth":2},{"title":"Keras .pb or .h5","local":"keras-pb-or-h5","sections":[],"depth":2},{"title":"A1111 LoRA files","local":"a1111-lora-files","sections":[],"depth":2}],"depth":1}';function dl(Ue){return nl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ul extends al{constructor(y){super(),fl(this,y,dl,Ml,il,{})}}export{Ul as component};
