Buckets:
| import{s as cl,n as ol,o as Ml}from"../chunks/scheduler.23542ac5.js";import{S as ul,i as rl,e as p,s as n,c,h as dl,a as i,d as t,b as a,f as U,g as o,j as m,k as Ns,l as h,m as l,n as M,t as u,o as r,p as d}from"../chunks/index.9b1f405b.js";import{C as hl,H as V,E as gl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.ab91659f.js";import{C as g}from"../chunks/CodeBlock.b30cb1b0.js";import{D as bl}from"../chunks/DocNotebookDropdown.68a629d2.js";function jl(yt){let f,qs,Ys,Ps,Z,Os,v,Ks,_,se,k,Tt="๐งจ Diffusers๋ ์ฌ์ฉ์ ์นํ์ ์ด๋ฉฐ ์ ์ฐํ ๋๊ตฌ ์์๋ก, ์ฌ์ฉ์ฌ๋ก์ ๋ง๊ฒ diffusion ์์คํ ์ ๊ตฌ์ถ ํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๋๊ตฌ ์์์ ํต์ฌ์ ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ์ ๋๋ค. <code>DiffusionPipeline</code>์ ํธ์๋ฅผ ์ํด ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ๋ฒ๋ค๋ก ์ ๊ณตํ์ง๋ง, ํ์ดํ๋ผ์ธ์ ๋ถ๋ฆฌํ๊ณ ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฌ์ฉํด ์๋ก์ด diffusion ์์คํ ์ ๋ง๋ค ์๋ ์์ต๋๋ค.",ee,I,wt="์ด ํํ ๋ฆฌ์ผ์์๋ ๊ธฐ๋ณธ ํ์ดํ๋ผ์ธ๋ถํฐ ์์ํด Stable Diffusion ํ์ดํ๋ผ์ธ๊น์ง ์งํํ๋ฉฐ ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํด ์ถ๋ก ์ ์ํ diffusion ์์คํ ์ ์กฐ๋ฆฝํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.",te,R,le,Q,Ct="ํ์ดํ๋ผ์ธ์ ์ถ๋ก ์ ์ํด ๋ชจ๋ธ์ ์คํํ๋ ๋น ๋ฅด๊ณ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก, ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐ ์ฝ๋๊ฐ 4์ค ์ด์ ํ์ํ์ง ์์ต๋๋ค:",ne,G,ae,T,$t='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/ddpm-cat.png" alt="Image of cat created from DDPMPipeline"/>',pe,x,Vt="์ ๋ง ์ฝ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ์ดํ๋ผ์ธ์ ์ด๋ป๊ฒ ์ด๋ ๊ฒ ํ ์ ์์์๊น์? ํ์ดํ๋ผ์ธ์ ์ธ๋ถํํ์ฌ ๋ด๋ถ์์ ์ด๋ค ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.",ie,W,Zt="์ ์์์์ ํ์ดํ๋ผ์ธ์๋ <code>UNet2DModel</code> ๋ชจ๋ธ๊ณผ <code>DDPMScheduler</code>๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํ์ดํ๋ผ์ธ์ ์ํ๋ ์ถ๋ ฅ ํฌ๊ธฐ์ ๋๋ค ๋ ธ์ด์ฆ๋ฅผ ๋ฐ์ ๋ชจ๋ธ์ ์ฌ๋ฌ๋ฒ ํต๊ณผ์์ผ ์ด๋ฏธ์ง์ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ฐ timestep์์ ๋ชจ๋ธ์ <em>noise residual</em>์ ์์ธกํ๊ณ ์ค์ผ์ค๋ฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ ธ์ด์ฆ๊ฐ ์ ์ ์ด๋ฏธ์ง๋ฅผ ์์ธกํฉ๋๋ค. ํ์ดํ๋ผ์ธ์ ์ง์ ๋ ์ถ๋ก ์คํ ์์ ๋๋ฌํ ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.",me,N,vt="๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ๋ณ๋๋ก ์ฌ์ฉํ์ฌ ํ์ดํ๋ผ์ธ์ ๋ค์ ์์ฑํ๊ธฐ ์ํด ์์ฒด์ ์ธ ๋ ธ์ด์ฆ ์ ๊ฑฐ ํ๋ก์ธ์ค๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.",ce,b,E,Es,_t="๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ๋ถ๋ฌ์ต๋๋ค:",ct,X,ot,B,Xs,kt="๋ ธ์ด์ฆ ์ ๊ฑฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ timestep ์๋ฅผ ์ค์ ํฉ๋๋ค:",Mt,F,ut,S,Bs,It="์ค์ผ์ค๋ฌ์ timestep์ ์ค์ ํ๋ฉด ๊ท ๋ฑํ ๊ฐ๊ฒฉ์ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง ํ ์๊ฐ ์์ฑ๋ฉ๋๋ค.(์ด ์์์์๋ 50๊ฐ) ๊ฐ ์์๋ ๋ชจ๋ธ์ด ์ด๋ฏธ์ง์ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋ ์๊ฐ ๊ฐ๊ฒฉ์ ํด๋นํฉ๋๋ค. ๋์ค์ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ๋ฅผ ๋ง๋ค ๋ ์ด ํ ์๋ฅผ ๋ฐ๋ณตํ์ฌ ์ด๋ฏธ์ง์ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํฉ๋๋ค:",rt,H,dt,L,Fs,Rt="์ํ๋ ์ถ๋ ฅ๊ณผ ๊ฐ์ ๋ชจ์์ ๊ฐ์ง ๋๋ค ๋ ธ์ด์ฆ๋ฅผ ์์ฑํฉ๋๋ค:",ht,D,gt,J,Ss,Qt="์ด์ timestep์ ๋ฐ๋ณตํ๋ ๋ฃจํ๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ timestep์์ ๋ชจ๋ธ์ <code>UNet2DModel.forward()</code>๋ฅผ ํตํด noisy residual์ ๋ฐํํฉ๋๋ค. ์ค์ผ์ค๋ฌ์ <code>step()</code> ๋ฉ์๋๋ noisy residual, timestep, ๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ์ ๋ฐ์ ์ด์ timestep์์ ์ด๋ฏธ์ง๋ฅผ ์์ธกํฉ๋๋ค. ์ด ์ถ๋ ฅ์ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ์ ๋ชจ๋ธ์ ๋ํ ๋ค์ ์ ๋ ฅ์ด ๋๋ฉฐ, <code>timesteps</code> ๋ฐฐ์ด์ ๋์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต๋ฉ๋๋ค.",bt,z,jt,Hs,Gt="์ด๊ฒ์ด ์ ์ฒด ๋ ธ์ด์ฆ ์ ๊ฑฐ ํ๋ก์ธ์ค์ด๋ฉฐ, ๋์ผํ ํจํด์ ์ฌ์ฉํด ๋ชจ๋ diffusion ์์คํ ์ ์์ฑํ ์ ์์ต๋๋ค.",Ut,Y,Ls,xt="๋ง์ง๋ง ๋จ๊ณ๋ ๋ ธ์ด์ฆ๊ฐ ์ ๊ฑฐ๋ ์ถ๋ ฅ์ ์ด๋ฏธ์ง๋ก ๋ณํํ๋ ๊ฒ์ ๋๋ค:",ft,A,oe,q,Wt="๋ค์ ์น์ ์์๋ ์ฌ๋ฌ๋ถ์ ๊ธฐ์ ์ ์ํํด๋ณด๊ณ ์ข ๋ ๋ณต์กํ Stable Diffusion ํ์ดํ๋ผ์ธ์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฐฉ๋ฒ์ ๊ฑฐ์ ๋์ผํฉ๋๋ค. ํ์ํ ๊ตฌ์ฑ์์๋ค์ ์ด๊ธฐํํ๊ณ timestep์๋ฅผ ์ค์ ํ์ฌ <code>timestep</code> ๋ฐฐ์ด์ ์์ฑํฉ๋๋ค. ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ์์ <code>timestep</code> ๋ฐฐ์ด์ด ์ฌ์ฉ๋๋ฉฐ, ์ด ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ๋ชจ๋ธ์ ๋ ธ์ด์ฆ๊ฐ ์ ์ ์ด๋ฏธ์ง๋ฅผ ์์ธกํฉ๋๋ค. ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ๋ <code>timestep</code>์ ๋ฐ๋ณตํ๊ณ ๊ฐ timestep์์ noise residual์ ์ถ๋ ฅํ๊ณ ์ค์ผ์ค๋ฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ timestep์์ ๋ ธ์ด์ฆ๊ฐ ๋ํ ์ด๋ฏธ์ง๋ฅผ ์์ธกํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ <code>timestep</code> ๋ฐฐ์ด์ ๋์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต๋ฉ๋๋ค.",Me,P,Nt="ํ๋ฒ ์ฌ์ฉํด ๋ด ์๋ค!",ue,O,re,K,Et="Stable Diffusion ์ text-to-image <em>latent diffusion</em> ๋ชจ๋ธ์ ๋๋ค. latent diffusion ๋ชจ๋ธ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ด์ ๋ ์ค์ ํฝ์ ๊ณต๊ฐ ๋์ ์ด๋ฏธ์ง์ ์ ์ฐจ์์ ํํ์ผ๋ก ์์ ํ๊ธฐ ๋๋ฌธ์ด๊ณ , ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ๋ ๋์ต๋๋ค. ์ธ์ฝ๋๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์์ ํํ์ผ๋ก ์์ถํ๊ณ , ๋์ฝ๋๋ ์์ถ๋ ํํ์ ๋ค์ ์ด๋ฏธ์ง๋ก ๋ณํํฉ๋๋ค. text-to-image ๋ชจ๋ธ์ ๊ฒฝ์ฐ ํ ์คํธ ์๋ฒ ๋ฉ์ ์์ฑํ๊ธฐ ์ํด tokenizer์ ์ธ์ฝ๋๊ฐ ํ์ํฉ๋๋ค. ์ด์ ์์ ์์ ์ด๋ฏธ UNet ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ๊ณ์ จ์ ๊ฒ์ ๋๋ค.",de,ss,Xt="๋ณด์๋ค์ํผ, ์ด๊ฒ์ UNet ๋ชจ๋ธ๋ง ํฌํจ๋ DDPM ํ์ดํ๋ผ์ธ๋ณด๋ค ๋ ๋ณต์กํฉ๋๋ค. Stable Diffusion ๋ชจ๋ธ์๋ ์ธ ๊ฐ์ ๊ฐ๋ณ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ด ์์ต๋๋ค.",he,w,Bt='<p>๐ก VAE, UNet ๋ฐ ํ ์คํธ ์ธ์ฝ๋ ๋ชจ๋ธ์ ์๋๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ <a href="https://huggingface.co/blog/stable_diffusion#how-does-stable-diffusion-work" rel="nofollow">How does Stable Diffusion work?</a> ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํ์ธ์.</p>',ge,es,Ft='์ด์ Stable Diffusion ํ์ดํ๋ผ์ธ์ ํ์ํ ๊ตฌ์ฑ์์๋ค์ด ๋ฌด์์ธ์ง ์์์ผ๋, <code>from_pretrained()</code> ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ชจ๋ ๊ตฌ์ฑ์์๋ฅผ ๋ถ๋ฌ์ต๋๋ค. ์ฌ์ ํ์ต๋ ์ฒดํฌํฌ์ธํธ <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>์์ ์ฐพ์ ์ ์์ผ๋ฉฐ, ๊ฐ ๊ตฌ์ฑ์์๋ค์ ๋ณ๋์ ํ์ ํด๋์ ์ ์ฅ๋์ด ์์ต๋๋ค:',be,ts,je,ls,St="๊ธฐ๋ณธ <code>PNDMScheduler</code> ๋์ , <code>UniPCMultistepScheduler</code>๋ก ๊ต์ฒดํ์ฌ ๋ค๋ฅธ ์ค์ผ์ค๋ฌ๋ฅผ ์ผ๋ง๋ ์ฝ๊ฒ ์ฐ๊ฒฐํ ์ ์๋์ง ํ์ธํฉ๋๋ค:",Ue,ns,fe,as,Ht="์ถ๋ก ์๋๋ฅผ ๋์ด๋ ค๋ฉด ์ค์ผ์ค๋ฌ์ ๋ฌ๋ฆฌ ํ์ต ๊ฐ๋ฅํ ๊ฐ์ค์น๊ฐ ์์ผ๋ฏ๋ก ๋ชจ๋ธ์ GPU๋ก ์ฎ๊ธฐ์ธ์:",Je,ps,ye,is,Te,ms,Lt="๋ค์ ๋จ๊ณ๋ ์๋ฒ ๋ฉ์ ์์ฑํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ํ ํฐํํ๋ ๊ฒ์ ๋๋ค. ์ด ํ ์คํธ๋ UNet ๋ชจ๋ธ์์ condition์ผ๋ก ์ฌ์ฉ๋๊ณ ์ ๋ ฅ ํ๋กฌํํธ์ ์ ์ฌํ ๋ฐฉํฅ์ผ๋ก diffusion ํ๋ก์ธ์ค๋ฅผ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.",we,C,Dt="<p>๐ก <code>guidance_scale</code> ๋งค๊ฐ๋ณ์๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ ํ๋กฌํํธ์ ์ผ๋ง๋ ๋ง์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ ์ง ๊ฒฐ์ ํฉ๋๋ค.</p>",Ce,cs,zt="๋ค๋ฅธ ํ๋กฌํํธ๋ฅผ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ์ํ๋ ํ๋กฌํํธ๋ฅผ ์์ ๋กญ๊ฒ ์ ํํ์ธ์!",$e,os,Ve,Ms,Yt="ํ ์คํธ๋ฅผ ํ ํฐํํ๊ณ ํ๋กฌํํธ์์ ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค:",Ze,us,ve,rs,At="๋ํ ํจ๋ฉ ํ ํฐ์ ์๋ฒ ๋ฉ์ธ <em>unconditional ํ ์คํธ ์๋ฒ ๋ฉ</em>์ ์์ฑํด์ผ ํฉ๋๋ค. ์ด ์๋ฒ ๋ฉ์ ์กฐ๊ฑด๋ถ <code>text_embeddings</code>๊ณผ ๋์ผํ shape(<code>batch_size</code> ๊ทธ๋ฆฌ๊ณ <code>seq_length</code>)์ ๊ฐ์ ธ์ผ ํฉ๋๋ค:",_e,ds,ke,hs,qt="๋๋ฒ์ forward pass๋ฅผ ํผํ๊ธฐ ์ํด conditional ์๋ฒ ๋ฉ๊ณผ unconditional ์๋ฒ ๋ฉ์ ๋ฐฐ์น(batch)๋ก ์ฐ๊ฒฐํ๊ฒ ์ต๋๋ค:",Ie,gs,Re,bs,Qe,js,Pt="๊ทธ๋ค์ diffusion ํ๋ก์ธ์ค์ ์์์ ์ผ๋ก ์ด๊ธฐ ๋๋ค ๋ ธ์ด์ฆ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๊ฒ์ด ์ด๋ฏธ์ง์ ์ ์ฌ์ ํํ์ด๋ฉฐ ์ ์ฐจ์ ์ผ๋ก ๋ ธ์ด์ฆ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด ์์ ์์ <code>latent</code> ์ด๋ฏธ์ง๋ ์ต์ข ์ด๋ฏธ์ง ํฌ๊ธฐ๋ณด๋ค ์์ง๋ง ๋์ค์ ๋ชจ๋ธ์ด ์ด๋ฅผ 512x512 ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ๋ณํํ๋ฏ๋ก ๊ด์ฐฎ์ต๋๋ค.",Ge,y,Ds,Ot="๐ก <code>vae</code> ๋ชจ๋ธ์๋ 3๊ฐ์ ๋ค์ด ์ํ๋ง ๋ ์ด์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋์ด์ ๋๋น๊ฐ 8๋ก ๋๋ฉ๋๋ค. ๋ค์์ ์คํํ์ฌ ํ์ธํ ์ ์์ต๋๋ค:",Jt,Us,xe,fs,We,Js,Ne,ys,Kt="๋จผ์ <code>UniPCMultistepScheduler</code>์ ๊ฐ์ ํฅ์๋ ์ค์ผ์ค๋ฌ์ ํ์ํ ๋ ธ์ด์ฆ ์ค์ผ์ผ ๊ฐ์ธ ์ด๊ธฐ ๋ ธ์ด์ฆ ๋ถํฌ <em>sigma</em> ๋ก ์ ๋ ฅ์ ์ค์ผ์ผ๋ง ํ๋ ๊ฒ๋ถํฐ ์์ํฉ๋๋ค:",Ee,Ts,Xe,ws,sl="๋ง์ง๋ง ๋จ๊ณ๋ <code>latent</code>์ ์์ํ ๋ ธ์ด์ฆ๋ฅผ ์ ์ง์ ์ผ๋ก ํ๋กฌํํธ์ ์ค๋ช ๋ ์ด๋ฏธ์ง๋ก ๋ณํํ๋ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ๋ ์ธ ๊ฐ์ง ์์ ์ ์ํํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์:",Be,Cs,el="<li>๋ ธ์ด์ฆ ์ ๊ฑฐ ์ค์ ์ฌ์ฉํ ์ค์ผ์ค๋ฌ์ timesteps๋ฅผ ์ค์ ํฉ๋๋ค.</li> <li>timestep์ ๋ฐ๋ผ ๋ฐ๋ณตํฉ๋๋ค.</li> <li>๊ฐ timestep์์ UNet ๋ชจ๋ธ์ ํธ์ถํ์ฌ noise residual์ ์์ธกํ๊ณ ์ค์ผ์ค๋ฌ์ ์ ๋ฌํ์ฌ ์ด์ ๋ ธ์ด์ฆ ์ํ์ ๊ณ์ฐํฉ๋๋ค.</li>",Fe,$s,Se,Vs,He,Zs,tl="๋ง์ง๋ง ๋จ๊ณ๋ <code>vae</code>๋ฅผ ์ด์ฉํ์ฌ ์ ์ฌ ํํ์ ์ด๋ฏธ์ง๋ก ๋์ฝ๋ฉํ๊ณ <code>sample</code>๊ณผ ํจ๊ป ๋์ฝ๋ฉ๋ ์ถ๋ ฅ์ ์ป๋ ๊ฒ์ ๋๋ค:",Le,vs,De,_s,ll="๋ง์ง๋ง์ผ๋ก ์ด๋ฏธ์ง๋ฅผ <code>PIL.Image</code>๋ก ๋ณํํ๋ฉด ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค!",ze,ks,Ye,$,nl='<img src="https://huggingface.co/blog/assets/98_stable_diffusion/stable_diffusion_k_lms.png"/>',Ae,Is,qe,Rs,al="๊ธฐ๋ณธ ํ์ดํ๋ผ์ธ๋ถํฐ ๋ณต์กํ ํ์ดํ๋ผ์ธ๊น์ง, ์์ ๋ง์ diffusion ์์คํ ์ ์์ฑํ๋ ๋ฐ ํ์ํ ๊ฒ์ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฃจํ๋ฟ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์์ต๋๋ค. ์ด ๋ฃจํ๋ ์ค์ผ์ค๋ฌ์ timesteps๋ฅผ ์ค์ ํ๊ณ , ์ด๋ฅผ ๋ฐ๋ณตํ๋ฉฐ, UNet ๋ชจ๋ธ์ ํธ์ถํ์ฌ noise residual์ ์์ธกํ๊ณ ์ค์ผ์ค๋ฌ์ ์ ๋ฌํ์ฌ ์ด์ ๋ ธ์ด์ฆ ์ํ์ ๊ณ์ฐํ๋ ๊ณผ์ ์ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์ํํด์ผ ํฉ๋๋ค.",Pe,Qs,pl="์ด๊ฒ์ด ๋ฐ๋ก ๐งจ Diffusers๊ฐ ์ค๊ณ๋ ๋ชฉ์ ์ ๋๋ค: ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํด ์์ ๋ง์ diffusion ์์คํ ์ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ํ๊ธฐ ์ํด์์ ๋๋ค.",Oe,Gs,il="๋ค์ ๋จ๊ณ๋ฅผ ์์ ๋กญ๊ฒ ์งํํ์ธ์:",Ke,xs,ml='<li>๐งจ Diffusers์ <a href="using-diffusers/#contribute_pipeline">ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ๋ฐ ๊ธฐ์ฌ</a>ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์. ์ฌ๋ฌ๋ถ์ด ์ด๋ค ์์ด๋์ด๋ฅผ ๋ด๋์์ง ๊ธฐ๋๋ฉ๋๋ค!</li> <li>๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ <a href="./api/pipelines/overview">๊ธฐ๋ณธ ํ์ดํ๋ผ์ธ</a>์ ์ดํด๋ณด๊ณ , ๋ชจ๋ธ๊ณผ ์ค์ผ์ค๋ฌ๋ฅผ ๋ณ๋๋ก ์ฌ์ฉํ์ฌ ํ์ดํ๋ผ์ธ์ ์ฒ์๋ถํฐ ํด์ฒดํ๊ณ ๋น๋ํ ์ ์๋์ง ํ์ธํด ๋ณด์ธ์.</li>',st,Ws,et,As,tt;return Z=new hl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),v=new bl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/write_own_pipeline.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/write_own_pipeline.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/write_own_pipeline.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/write_own_pipeline.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/write_own_pipeline.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/write_own_pipeline.ipynb"}]}}),_=new V({props:{title:"ํ์ดํ๋ผ์ธ, ๋ชจ๋ธ ๋ฐ ์ค์ผ์ค๋ฌ ์ดํดํ๊ธฐ",local:"ํ์ดํ๋ผ์ธ-๋ชจ๋ธ-๋ฐ-์ค์ผ์ค๋ฌ-์ดํดํ๊ธฐ",headingTag:"h1"}}),R=new V({props:{title:"๊ธฐ๋ณธ ํ์ดํ๋ผ์ธ ํด์ฒดํ๊ธฐ",local:"๊ธฐ๋ณธ-ํ์ดํ๋ผ์ธ-ํด์ฒดํ๊ธฐ",headingTag:"h2"}}),G=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEREUE1QaXBlbGluZSUwQSUwQWRkcG0lMjAlM0QlMjBERFBNUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMmdvb2dsZSUyRmRkcG0tY2F0LTI1NiUyMikudG8oJTIyY3VkYSUyMiklMEFpbWFnZSUyMCUzRCUyMGRkcG0obnVtX2luZmVyZW5jZV9zdGVwcyUzRDI1KS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2U=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DDPMPipeline | |
| <span class="hljs-meta">>>> </span>ddpm = DDPMPipeline.from_pretrained(<span class="hljs-string">"google/ddpm-cat-256"</span>).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>image = ddpm(num_inference_steps=<span class="hljs-number">25</span>).images[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>image`,wrap:!1}}),X=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEREUE1TY2hlZHVsZXIlMkMlMjBVTmV0MkRNb2RlbCUwQSUwQXNjaGVkdWxlciUyMCUzRCUyMEREUE1TY2hlZHVsZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmdvb2dsZSUyRmRkcG0tY2F0LTI1NiUyMiklMEFtb2RlbCUyMCUzRCUyMFVOZXQyRE1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJnb29nbGUlMkZkZHBtLWNhdC0yNTYlMjIpLnRvKCUyMmN1ZGElMjIp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DDPMScheduler, UNet2DModel | |
| <span class="hljs-meta">>>> </span>scheduler = DDPMScheduler.from_pretrained(<span class="hljs-string">"google/ddpm-cat-256"</span>) | |
| <span class="hljs-meta">>>> </span>model = UNet2DModel.from_pretrained(<span class="hljs-string">"google/ddpm-cat-256"</span>).to(<span class="hljs-string">"cuda"</span>)`,wrap:!1}}),F=new g({props:{code:"c2NoZWR1bGVyLnNldF90aW1lc3RlcHMoNTAp",highlighted:'<span class="hljs-meta">>>> </span>scheduler.set_timesteps(<span class="hljs-number">50</span>)',wrap:!1}}),H=new g({props:{code:"c2NoZWR1bGVyLnRpbWVzdGVwcw==",highlighted:`<span class="hljs-meta">>>> </span>scheduler.timesteps | |
| tensor([<span class="hljs-number">980</span>, <span class="hljs-number">960</span>, <span class="hljs-number">940</span>, <span class="hljs-number">920</span>, <span class="hljs-number">900</span>, <span class="hljs-number">880</span>, <span class="hljs-number">860</span>, <span class="hljs-number">840</span>, <span class="hljs-number">820</span>, <span class="hljs-number">800</span>, <span class="hljs-number">780</span>, <span class="hljs-number">760</span>, <span class="hljs-number">740</span>, <span class="hljs-number">720</span>, | |
| <span class="hljs-number">700</span>, <span class="hljs-number">680</span>, <span class="hljs-number">660</span>, <span class="hljs-number">640</span>, <span class="hljs-number">620</span>, <span class="hljs-number">600</span>, <span class="hljs-number">580</span>, <span class="hljs-number">560</span>, <span class="hljs-number">540</span>, <span class="hljs-number">520</span>, <span class="hljs-number">500</span>, <span class="hljs-number">480</span>, <span class="hljs-number">460</span>, <span class="hljs-number">440</span>, | |
| <span class="hljs-number">420</span>, <span class="hljs-number">400</span>, <span class="hljs-number">380</span>, <span class="hljs-number">360</span>, <span class="hljs-number">340</span>, <span class="hljs-number">320</span>, <span class="hljs-number">300</span>, <span class="hljs-number">280</span>, <span class="hljs-number">260</span>, <span class="hljs-number">240</span>, <span class="hljs-number">220</span>, <span class="hljs-number">200</span>, <span class="hljs-number">180</span>, <span class="hljs-number">160</span>, | |
| <span class="hljs-number">140</span>, <span class="hljs-number">120</span>, <span class="hljs-number">100</span>, <span class="hljs-number">80</span>, <span class="hljs-number">60</span>, <span class="hljs-number">40</span>, <span class="hljs-number">20</span>, <span class="hljs-number">0</span>])`,wrap:!1}}),D=new g({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFzYW1wbGVfc2l6ZSUyMCUzRCUyMG1vZGVsLmNvbmZpZy5zYW1wbGVfc2l6ZSUwQW5vaXNlJTIwJTNEJTIwdG9yY2gucmFuZG4oKDElMkMlMjAzJTJDJTIwc2FtcGxlX3NpemUlMkMlMjBzYW1wbGVfc2l6ZSklMkMlMjBkZXZpY2UlM0QlMjJjdWRhJTIyKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span>sample_size = model.config.sample_size | |
| <span class="hljs-meta">>>> </span>noise = torch.randn((<span class="hljs-number">1</span>, <span class="hljs-number">3</span>, sample_size, sample_size), device=<span class="hljs-string">"cuda"</span>)`,wrap:!1}}),z=new g({props:{code:"aW5wdXQlMjAlM0QlMjBub2lzZSUwQSUwQWZvciUyMHQlMjBpbiUyMHNjaGVkdWxlci50aW1lc3RlcHMlM0ElMEElMjAlMjAlMjAlMjB3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm9pc3lfcmVzaWR1YWwlMjAlM0QlMjBtb2RlbChpbnB1dCUyQyUyMHQpLnNhbXBsZSUwQSUyMCUyMCUyMCUyMHByZXZpb3VzX25vaXN5X3NhbXBsZSUyMCUzRCUyMHNjaGVkdWxlci5zdGVwKG5vaXN5X3Jlc2lkdWFsJTJDJTIwdCUyQyUyMGlucHV0KS5wcmV2X3NhbXBsZSUwQSUyMCUyMCUyMCUyMGlucHV0JTIwJTNEJTIwcHJldmlvdXNfbm9pc3lfc2FtcGxl",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-built_in">input</span> = noise | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">for</span> t <span class="hljs-keyword">in</span> scheduler.timesteps: | |
| <span class="hljs-meta">... </span> <span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> noisy_residual = model(<span class="hljs-built_in">input</span>, t).sample | |
| <span class="hljs-meta">... </span> previous_noisy_sample = scheduler.step(noisy_residual, t, <span class="hljs-built_in">input</span>).prev_sample | |
| <span class="hljs-meta">... </span> <span class="hljs-built_in">input</span> = previous_noisy_sample`,wrap:!1}}),A=new g({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBaW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBaW1hZ2UlMjAlM0QlMjAoaW5wdXQlMjAlMkYlMjAyJTIwJTJCJTIwMC41KS5jbGFtcCgwJTJDJTIwMSklMEFpbWFnZSUyMCUzRCUyMGltYWdlLmNwdSgpLnBlcm11dGUoMCUyQyUyMDIlMkMlMjAzJTJDJTIwMSkubnVtcHkoKSU1QjAlNUQlMEFpbWFnZSUyMCUzRCUyMEltYWdlLmZyb21hcnJheSgoaW1hZ2UlMjAqJTIwMjU1KS5yb3VuZCgpLmFzdHlwZSglMjJ1aW50OCUyMikpJTBBaW1hZ2U=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| <span class="hljs-meta">>>> </span>image = (<span class="hljs-built_in">input</span> / <span class="hljs-number">2</span> + <span class="hljs-number">0.5</span>).clamp(<span class="hljs-number">0</span>, <span class="hljs-number">1</span>) | |
| <span class="hljs-meta">>>> </span>image = image.cpu().permute(<span class="hljs-number">0</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">1</span>).numpy()[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>image = Image.fromarray((image * <span class="hljs-number">255</span>).<span class="hljs-built_in">round</span>().astype(<span class="hljs-string">"uint8"</span>)) | |
| <span class="hljs-meta">>>> </span>image`,wrap:!1}}),O=new V({props:{title:"Stable Diffusion ํ์ดํ๋ผ์ธ ํด์ฒดํ๊ธฐ",local:"stable-diffusion-ํ์ดํ๋ผ์ธ-ํด์ฒดํ๊ธฐ",headingTag:"h2"}}),ts=new g({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBaW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQ0xJUFRleHRNb2RlbCUyQyUyMENMSVBUb2tlbml6ZXIlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b2VuY29kZXJLTCUyQyUyMFVOZXQyRENvbmRpdGlvbk1vZGVsJTJDJTIwUE5ETVNjaGVkdWxlciUwQSUwQXZhZSUyMCUzRCUyMEF1dG9lbmNvZGVyS0wuZnJvbV9wcmV0cmFpbmVkKCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMkMlMjBzdWJmb2xkZXIlM0QlMjJ2YWUlMjIpJTBBdG9rZW5pemVyJTIwJTNEJTIwQ0xJUFRva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIyQ29tcFZpcyUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNCUyMiUyQyUyMHN1YmZvbGRlciUzRCUyMnRva2VuaXplciUyMiklMEF0ZXh0X2VuY29kZXIlMjAlM0QlMjBDTElQVGV4dE1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJDb21wVmlzJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS00JTIyJTJDJTIwc3ViZm9sZGVyJTNEJTIydGV4dF9lbmNvZGVyJTIyKSUwQXVuZXQlMjAlM0QlMjBVTmV0MkRDb25kaXRpb25Nb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIyQ29tcFZpcyUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNCUyMiUyQyUyMHN1YmZvbGRlciUzRCUyMnVuZXQlMjIp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CLIPTextModel, CLIPTokenizer | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoencoderKL, UNet2DConditionModel, PNDMScheduler | |
| <span class="hljs-meta">>>> </span>vae = AutoencoderKL.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, subfolder=<span class="hljs-string">"vae"</span>) | |
| <span class="hljs-meta">>>> </span>tokenizer = CLIPTokenizer.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, subfolder=<span class="hljs-string">"tokenizer"</span>) | |
| <span class="hljs-meta">>>> </span>text_encoder = CLIPTextModel.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, subfolder=<span class="hljs-string">"text_encoder"</span>) | |
| <span class="hljs-meta">>>> </span>unet = UNet2DConditionModel.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, subfolder=<span class="hljs-string">"unet"</span>)`,wrap:!1}}),ns=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFVuaVBDTXVsdGlzdGVwU2NoZWR1bGVyJTBBJTBBc2NoZWR1bGVyJTIwJTNEJTIwVW5pUENNdWx0aXN0ZXBTY2hlZHVsZXIuZnJvbV9wcmV0cmFpbmVkKCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMkMlMjBzdWJmb2xkZXIlM0QlMjJzY2hlZHVsZXIlMjIp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> UniPCMultistepScheduler | |
| <span class="hljs-meta">>>> </span>scheduler = UniPCMultistepScheduler.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, subfolder=<span class="hljs-string">"scheduler"</span>)`,wrap:!1}}),ps=new g({props:{code:"dG9yY2hfZGV2aWNlJTIwJTNEJTIwJTIyY3VkYSUyMiUwQXZhZS50byh0b3JjaF9kZXZpY2UpJTBBdGV4dF9lbmNvZGVyLnRvKHRvcmNoX2RldmljZSklMEF1bmV0LnRvKHRvcmNoX2RldmljZSk=",highlighted:`<span class="hljs-meta">>>> </span>torch_device = <span class="hljs-string">"cuda"</span> | |
| <span class="hljs-meta">>>> </span>vae.to(torch_device) | |
| <span class="hljs-meta">>>> </span>text_encoder.to(torch_device) | |
| <span class="hljs-meta">>>> </span>unet.to(torch_device)`,wrap:!1}}),is=new V({props:{title:"ํ ์คํธ ์๋ฒ ๋ฉ ์์ฑํ๊ธฐ",local:"ํ ์คํธ-์๋ฒ ๋ฉ-์์ฑํ๊ธฐ",headingTag:"h3"}}),os=new g({props:{code:"cHJvbXB0JTIwJTNEJTIwJTVCJTIyYSUyMHBob3RvZ3JhcGglMjBvZiUyMGFuJTIwYXN0cm9uYXV0JTIwcmlkaW5nJTIwYSUyMGhvcnNlJTIyJTVEJTBBaGVpZ2h0JTIwJTNEJTIwNTEyJTIwJTIwJTIzJTIwU3RhYmxlJTIwRGlmZnVzaW9uJUVDJTlEJTk4JTIwJUVBJUI4JUIwJUVCJUIzJUI4JTIwJUVCJTg2JTkyJUVDJTlEJUI0JTBBd2lkdGglMjAlM0QlMjA1MTIlMjAlMjAlMjMlMjBTdGFibGUlMjBEaWZmdXNpb24lRUMlOUQlOTglMjAlRUElQjglQjAlRUIlQjMlQjglMjAlRUIlODQlODglRUIlQjklODQlMEFudW1faW5mZXJlbmNlX3N0ZXBzJTIwJTNEJTIwMjUlMjAlMjAlMjMlMjAlRUIlODUlQjglRUMlOUQlQjQlRUMlQTYlODglMjAlRUMlQTAlOUMlRUElQjElQjAlMjAlRUMlOEElQTQlRUQlODUlOUQlMjAlRUMlODglOTglMEFndWlkYW5jZV9zY2FsZSUyMCUzRCUyMDcuNSUyMCUyMCUyMyUyMGNsYXNzaWZpZXItZnJlZSUyMGd1aWRhbmNlJUVCJUE1JUJDJTIwJUVDJTlDJTg0JUVEJTk1JTlDJTIwc2NhbGUlMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCgwKSUyMCUyMCUyMyUyMCVFQyVCNCU4OCVFQSVCOCVCMCUyMCVFQyU5RSVBMCVFQyU5RSVBQyUyMCVFQiU4NSVCOCVFQyU5RCVCNCVFQyVBNiU4OCVFQiVBNSVCQyUyMCVFQyU4MyU5RCVFQyU4NCVCMSVFRCU5NSU5OCVFQiU4QSU5NCUyMHNlZWQlMjBnZW5lcmF0b3IlMEFiYXRjaF9zaXplJTIwJTNEJTIwbGVuKHByb21wdCk=",highlighted:`<span class="hljs-meta">>>> </span>prompt = [<span class="hljs-string">"a photograph of an astronaut riding a horse"</span>] | |
| <span class="hljs-meta">>>> </span>height = <span class="hljs-number">512</span> <span class="hljs-comment"># Stable Diffusion์ ๊ธฐ๋ณธ ๋์ด</span> | |
| <span class="hljs-meta">>>> </span>width = <span class="hljs-number">512</span> <span class="hljs-comment"># Stable Diffusion์ ๊ธฐ๋ณธ ๋๋น</span> | |
| <span class="hljs-meta">>>> </span>num_inference_steps = <span class="hljs-number">25</span> <span class="hljs-comment"># ๋ ธ์ด์ฆ ์ ๊ฑฐ ์คํ ์</span> | |
| <span class="hljs-meta">>>> </span>guidance_scale = <span class="hljs-number">7.5</span> <span class="hljs-comment"># classifier-free guidance๋ฅผ ์ํ scale</span> | |
| <span class="hljs-meta">>>> </span>generator = torch.manual_seed(<span class="hljs-number">0</span>) <span class="hljs-comment"># ์ด๊ธฐ ์ ์ฌ ๋ ธ์ด์ฆ๋ฅผ ์์ฑํ๋ seed generator</span> | |
| <span class="hljs-meta">>>> </span>batch_size = <span class="hljs-built_in">len</span>(prompt)`,wrap:!1}}),us=new g({props:{code:"dGV4dF9pbnB1dCUyMCUzRCUyMHRva2VuaXplciglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMjBwYWRkaW5nJTNEJTIybWF4X2xlbmd0aCUyMiUyQyUyMG1heF9sZW5ndGglM0R0b2tlbml6ZXIubW9kZWxfbWF4X2xlbmd0aCUyQyUyMHRydW5jYXRpb24lM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiUwQSklMEElMEF3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwdGV4dF9lbWJlZGRpbmdzJTIwJTNEJTIwdGV4dF9lbmNvZGVyKHRleHRfaW5wdXQuaW5wdXRfaWRzLnRvKHRvcmNoX2RldmljZSkpJTVCMCU1RA==",highlighted:`<span class="hljs-meta">>>> </span>text_input = tokenizer( | |
| <span class="hljs-meta">... </span> prompt, padding=<span class="hljs-string">"max_length"</span>, max_length=tokenizer.model_max_length, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">"pt"</span> | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> text_embeddings = text_encoder(text_input.input_ids.to(torch_device))[<span class="hljs-number">0</span>]`,wrap:!1}}),ds=new g({props:{code:"bWF4X2xlbmd0aCUyMCUzRCUyMHRleHRfaW5wdXQuaW5wdXRfaWRzLnNoYXBlJTVCLTElNUQlMEF1bmNvbmRfaW5wdXQlMjAlM0QlMjB0b2tlbml6ZXIoJTVCJTIyJTIyJTVEJTIwKiUyMGJhdGNoX3NpemUlMkMlMjBwYWRkaW5nJTNEJTIybWF4X2xlbmd0aCUyMiUyQyUyMG1heF9sZW5ndGglM0RtYXhfbGVuZ3RoJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEF1bmNvbmRfZW1iZWRkaW5ncyUyMCUzRCUyMHRleHRfZW5jb2Rlcih1bmNvbmRfaW5wdXQuaW5wdXRfaWRzLnRvKHRvcmNoX2RldmljZSkpJTVCMCU1RA==",highlighted:`<span class="hljs-meta">>>> </span>max_length = text_input.input_ids.shape[-<span class="hljs-number">1</span>] | |
| <span class="hljs-meta">>>> </span>uncond_input = tokenizer([<span class="hljs-string">""</span>] * batch_size, padding=<span class="hljs-string">"max_length"</span>, max_length=max_length, return_tensors=<span class="hljs-string">"pt"</span>) | |
| <span class="hljs-meta">>>> </span>uncond_embeddings = text_encoder(uncond_input.input_ids.to(torch_device))[<span class="hljs-number">0</span>]`,wrap:!1}}),gs=new g({props:{code:"dGV4dF9lbWJlZGRpbmdzJTIwJTNEJTIwdG9yY2guY2F0KCU1QnVuY29uZF9lbWJlZGRpbmdzJTJDJTIwdGV4dF9lbWJlZGRpbmdzJTVEKQ==",highlighted:'<span class="hljs-meta">>>> </span>text_embeddings = torch.cat([uncond_embeddings, text_embeddings])',wrap:!1}}),bs=new V({props:{title:"๋๋ค ๋ ธ์ด์ฆ ์์ฑ",local:"๋๋ค-๋ ธ์ด์ฆ-์์ฑ",headingTag:"h3"}}),Us=new g({props:{code:"MiUyMCoqJTIwKGxlbih2YWUuY29uZmlnLmJsb2NrX291dF9jaGFubmVscyklMjAtJTIwMSklMjAlM0QlM0QlMjA4",highlighted:'<span class="hljs-number">2</span> ** (<span class="hljs-built_in">len</span>(vae.config.block_out_channels) - <span class="hljs-number">1</span>) == <span class="hljs-number">8</span>',wrap:!1}}),fs=new g({props:{code:"bGF0ZW50cyUyMCUzRCUyMHRvcmNoLnJhbmRuKCUwQSUyMCUyMCUyMCUyMChiYXRjaF9zaXplJTJDJTIwdW5ldC5jb25maWcuaW5fY2hhbm5lbHMlMkMlMjBoZWlnaHQlMjAlMkYlMkYlMjA4JTJDJTIwd2lkdGglMjAlMkYlMkYlMjA4KSUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUwQSUyMCUyMCUyMCUyMGRldmljZSUzRHRvcmNoX2RldmljZSUyQyUwQSk=",highlighted:`<span class="hljs-meta">>>> </span>latents = torch.randn( | |
| <span class="hljs-meta">... </span> (batch_size, unet.config.in_channels, height // <span class="hljs-number">8</span>, width // <span class="hljs-number">8</span>), | |
| <span class="hljs-meta">... </span> generator=generator, | |
| <span class="hljs-meta">... </span> device=torch_device, | |
| <span class="hljs-meta">... </span>)`,wrap:!1}}),Js=new V({props:{title:"์ด๋ฏธ์ง ๋ ธ์ด์ฆ ์ ๊ฑฐ",local:"์ด๋ฏธ์ง-๋ ธ์ด์ฆ-์ ๊ฑฐ",headingTag:"h3"}}),Ts=new g({props:{code:"bGF0ZW50cyUyMCUzRCUyMGxhdGVudHMlMjAqJTIwc2NoZWR1bGVyLmluaXRfbm9pc2Vfc2lnbWE=",highlighted:'<span class="hljs-meta">>>> </span>latents = latents * scheduler.init_noise_sigma',wrap:!1}}),$s=new g({props:{code:"ZnJvbSUyMHRxZG0uYXV0byUyMGltcG9ydCUyMHRxZG0lMEElMEFzY2hlZHVsZXIuc2V0X3RpbWVzdGVwcyhudW1faW5mZXJlbmNlX3N0ZXBzKSUwQSUwQWZvciUyMHQlMjBpbiUyMHRxZG0oc2NoZWR1bGVyLnRpbWVzdGVwcyklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBjbGFzc2lmaWVyLWZyZWUlMjBndWlkYW5jZSVFQiVBNSVCQyUyMCVFQyU4OCU5OCVFRCU5NiU4OSVFRCU5NSU5OCVFQiU4QSU5NCUyMCVFQSVCMiVCRCVFQyU5QSVCMCUyMCVFQiU5MSU5MCVFQiVCMiU4OCVFQyU5RCU5OCUyMGZvcndhcmQlMjBwYXNzJUVCJUE1JUJDJTIwJUVDJTg4JTk4JUVEJTk2JTg5JUVEJTk1JTk4JUVDJUE3JTgwJTIwJUVDJTk1JThBJUVCJThGJTg0JUVCJUExJTlEJTIwbGF0ZW50JUVCJUE1JUJDJTIwJUVEJTk5JTk1JUVDJTlFJUE1LiUwQSUyMCUyMCUyMCUyMGxhdGVudF9tb2RlbF9pbnB1dCUyMCUzRCUyMHRvcmNoLmNhdCglNUJsYXRlbnRzJTVEJTIwKiUyMDIpJTBBJTBBJTIwJTIwJTIwJTIwbGF0ZW50X21vZGVsX2lucHV0JTIwJTNEJTIwc2NoZWR1bGVyLnNjYWxlX21vZGVsX2lucHV0KGxhdGVudF9tb2RlbF9pbnB1dCUyQyUyMHRpbWVzdGVwJTNEdCklMEElMEElMjAlMjAlMjAlMjAlMjMlMjBub2lzZSUyMHJlc2lkdWFsJTIwJUVDJTk4JTg4JUVDJUI4JUExJTBBJTIwJTIwJTIwJTIwd2l0aCUyMHRvcmNoLm5vX2dyYWQoKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG5vaXNlX3ByZWQlMjAlM0QlMjB1bmV0KGxhdGVudF9tb2RlbF9pbnB1dCUyQyUyMHQlMkMlMjBlbmNvZGVyX2hpZGRlbl9zdGF0ZXMlM0R0ZXh0X2VtYmVkZGluZ3MpLnNhbXBsZSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMGd1aWRhbmNlJTIwJUVDJTg4JTk4JUVEJTk2JTg5JTBBJTIwJTIwJTIwJTIwbm9pc2VfcHJlZF91bmNvbmQlMkMlMjBub2lzZV9wcmVkX3RleHQlMjAlM0QlMjBub2lzZV9wcmVkLmNodW5rKDIpJTBBJTIwJTIwJTIwJTIwbm9pc2VfcHJlZCUyMCUzRCUyMG5vaXNlX3ByZWRfdW5jb25kJTIwJTJCJTIwZ3VpZGFuY2Vfc2NhbGUlMjAqJTIwKG5vaXNlX3ByZWRfdGV4dCUyMC0lMjBub2lzZV9wcmVkX3VuY29uZCklMEElMEElMjAlMjAlMjAlMjAlMjMlMjAlRUMlOUQlQjQlRUMlQTAlODQlMjAlRUIlODUlQjglRUMlOUQlQjQlRUMlQTYlODglMjAlRUMlODMlOTglRUQlOTQlOEMlRUMlOUQlODQlMjAlRUElQjMlODQlRUMlODIlQjAlMjB4X3QlMjAtJTNFJTIweF90LTElMEElMjAlMjAlMjAlMjBsYXRlbnRzJTIwJTNEJTIwc2NoZWR1bGVyLnN0ZXAobm9pc2VfcHJlZCUyQyUyMHQlMkMlMjBsYXRlbnRzKS5wcmV2X3NhbXBsZQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> tqdm.auto <span class="hljs-keyword">import</span> tqdm | |
| <span class="hljs-meta">>>> </span>scheduler.set_timesteps(num_inference_steps) | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">for</span> t <span class="hljs-keyword">in</span> tqdm(scheduler.timesteps): | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># classifier-free guidance๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ๋๋ฒ์ forward pass๋ฅผ ์ํํ์ง ์๋๋ก latent๋ฅผ ํ์ฅ.</span> | |
| <span class="hljs-meta">... </span> latent_model_input = torch.cat([latents] * <span class="hljs-number">2</span>) | |
| <span class="hljs-meta">... </span> latent_model_input = scheduler.scale_model_input(latent_model_input, timestep=t) | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># noise residual ์์ธก</span> | |
| <span class="hljs-meta">... </span> <span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> noise_pred = unet(latent_model_input, t, encoder_hidden_states=text_embeddings).sample | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># guidance ์ํ</span> | |
| <span class="hljs-meta">... </span> noise_pred_uncond, noise_pred_text = noise_pred.chunk(<span class="hljs-number">2</span>) | |
| <span class="hljs-meta">... </span> noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond) | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># ์ด์ ๋ ธ์ด์ฆ ์ํ์ ๊ณ์ฐ x_t -> x_t-1</span> | |
| <span class="hljs-meta">... </span> latents = scheduler.step(noise_pred, t, latents).prev_sample`,wrap:!1}}),Vs=new V({props:{title:"์ด๋ฏธ์ง ๋์ฝ๋ฉ",local:"์ด๋ฏธ์ง-๋์ฝ๋ฉ",headingTag:"h3"}}),vs=new g({props:{code:"JTIzJTIwbGF0ZW50JUVCJUE1JUJDJTIwJUVDJThBJUE0JUVDJUJDJTgwJUVDJTlEJUJDJUVCJUE3JTgxJUVEJTk1JTk4JUVBJUIzJUEwJTIwdmFlJUVCJUExJTlDJTIwJUVDJTlEJUI0JUVCJUFGJUI4JUVDJUE3JTgwJTIwJUVCJTk0JTk0JUVDJUJEJTk0JUVCJTk0JUE5JTBBbGF0ZW50cyUyMCUzRCUyMDElMjAlMkYlMjAwLjE4MjE1JTIwKiUyMGxhdGVudHMlMEF3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwaW1hZ2UlMjAlM0QlMjB2YWUuZGVjb2RlKGxhdGVudHMpLnNhbXBsZQ==",highlighted:`<span class="hljs-comment"># latent๋ฅผ ์ค์ผ์ผ๋งํ๊ณ vae๋ก ์ด๋ฏธ์ง ๋์ฝ๋ฉ</span> | |
| latents = <span class="hljs-number">1</span> / <span class="hljs-number">0.18215</span> * latents | |
| <span class="hljs-keyword">with</span> torch.no_grad(): | |
| image = vae.decode(latents).sample`,wrap:!1}}),ks=new g({props:{code:"aW1hZ2UlMjAlM0QlMjAoaW1hZ2UlMjAlMkYlMjAyJTIwJTJCJTIwMC41KS5jbGFtcCgwJTJDJTIwMSklMEFpbWFnZSUyMCUzRCUyMGltYWdlLmRldGFjaCgpLmNwdSgpLnBlcm11dGUoMCUyQyUyMDIlMkMlMjAzJTJDJTIwMSkubnVtcHkoKSUwQWltYWdlcyUyMCUzRCUyMChpbWFnZSUyMColMjAyNTUpLnJvdW5kKCkuYXN0eXBlKCUyMnVpbnQ4JTIyKSUwQXBpbF9pbWFnZXMlMjAlM0QlMjAlNUJJbWFnZS5mcm9tYXJyYXkoaW1hZ2UpJTIwZm9yJTIwaW1hZ2UlMjBpbiUyMGltYWdlcyU1RCUwQXBpbF9pbWFnZXMlNUIwJTVE",highlighted:`<span class="hljs-meta">>>> </span>image = (image / <span class="hljs-number">2</span> + <span class="hljs-number">0.5</span>).clamp(<span class="hljs-number">0</span>, <span class="hljs-number">1</span>) | |
| <span class="hljs-meta">>>> </span>image = image.detach().cpu().permute(<span class="hljs-number">0</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">1</span>).numpy() | |
| <span class="hljs-meta">>>> </span>images = (image * <span class="hljs-number">255</span>).<span class="hljs-built_in">round</span>().astype(<span class="hljs-string">"uint8"</span>) | |
| <span class="hljs-meta">>>> </span>pil_images = [Image.fromarray(image) <span class="hljs-keyword">for</span> image <span class="hljs-keyword">in</span> images] | |
| <span class="hljs-meta">>>> </span>pil_images[<span class="hljs-number">0</span>]`,wrap:!1}}),Is=new V({props:{title:"๋ค์ ๋จ๊ณ",local:"๋ค์-๋จ๊ณ",headingTag:"h2"}}),Ws=new gl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/using-diffusers/write_own_pipeline.md"}}),{c(){f=p("meta"),qs=n(),Ys=p("p"),Ps=n(),c(Z.$$.fragment),Os=n(),c(v.$$.fragment),Ks=n(),c(_.$$.fragment),se=n(),k=p("p"),k.innerHTML=Tt,ee=n(),I=p("p"),I.textContent=wt,te=n(),c(R.$$.fragment),le=n(),Q=p("p"),Q.textContent=Ct,ne=n(),c(G.$$.fragment),ae=n(),T=p("div"),T.innerHTML=$t,pe=n(),x=p("p"),x.textContent=Vt,ie=n(),W=p("p"),W.innerHTML=Zt,me=n(),N=p("p"),N.textContent=vt,ce=n(),b=p("ol"),E=p("li"),Es=p("p"),Es.textContent=_t,ct=n(),c(X.$$.fragment),ot=n(),B=p("li"),Xs=p("p"),Xs.textContent=kt,Mt=n(),c(F.$$.fragment),ut=n(),S=p("li"),Bs=p("p"),Bs.textContent=It,rt=n(),c(H.$$.fragment),dt=n(),L=p("li"),Fs=p("p"),Fs.textContent=Rt,ht=n(),c(D.$$.fragment),gt=n(),J=p("li"),Ss=p("p"),Ss.innerHTML=Qt,bt=n(),c(z.$$.fragment),jt=n(),Hs=p("p"),Hs.textContent=Gt,Ut=n(),Y=p("li"),Ls=p("p"),Ls.textContent=xt,ft=n(),c(A.$$.fragment),oe=n(),q=p("p"),q.innerHTML=Wt,Me=n(),P=p("p"),P.textContent=Nt,ue=n(),c(O.$$.fragment),re=n(),K=p("p"),K.innerHTML=Et,de=n(),ss=p("p"),ss.textContent=Xt,he=n(),w=p("blockquote"),w.innerHTML=Bt,ge=n(),es=p("p"),es.innerHTML=Ft,be=n(),c(ts.$$.fragment),je=n(),ls=p("p"),ls.innerHTML=St,Ue=n(),c(ns.$$.fragment),fe=n(),as=p("p"),as.textContent=Ht,Je=n(),c(ps.$$.fragment),ye=n(),c(is.$$.fragment),Te=n(),ms=p("p"),ms.textContent=Lt,we=n(),C=p("blockquote"),C.innerHTML=Dt,Ce=n(),cs=p("p"),cs.textContent=zt,$e=n(),c(os.$$.fragment),Ve=n(),Ms=p("p"),Ms.textContent=Yt,Ze=n(),c(us.$$.fragment),ve=n(),rs=p("p"),rs.innerHTML=At,_e=n(),c(ds.$$.fragment),ke=n(),hs=p("p"),hs.textContent=qt,Ie=n(),c(gs.$$.fragment),Re=n(),c(bs.$$.fragment),Qe=n(),js=p("p"),js.innerHTML=Pt,Ge=n(),y=p("blockquote"),Ds=p("p"),Ds.innerHTML=Ot,Jt=n(),c(Us.$$.fragment),xe=n(),c(fs.$$.fragment),We=n(),c(Js.$$.fragment),Ne=n(),ys=p("p"),ys.innerHTML=Kt,Ee=n(),c(Ts.$$.fragment),Xe=n(),ws=p("p"),ws.innerHTML=sl,Be=n(),Cs=p("ol"),Cs.innerHTML=el,Fe=n(),c($s.$$.fragment),Se=n(),c(Vs.$$.fragment),He=n(),Zs=p("p"),Zs.innerHTML=tl,Le=n(),c(vs.$$.fragment),De=n(),_s=p("p"),_s.innerHTML=ll,ze=n(),c(ks.$$.fragment),Ye=n(),$=p("div"),$.innerHTML=nl,Ae=n(),c(Is.$$.fragment),qe=n(),Rs=p("p"),Rs.textContent=al,Pe=n(),Qs=p("p"),Qs.textContent=pl,Oe=n(),Gs=p("p"),Gs.textContent=il,Ke=n(),xs=p("ul"),xs.innerHTML=ml,st=n(),c(Ws.$$.fragment),et=n(),As=p("p"),this.h()},l(s){const e=dl("svelte-u9bgzb",document.head);f=i(e,"META",{name:!0,content:!0}),e.forEach(t),qs=a(s),Ys=i(s,"P",{}),U(Ys).forEach(t),Ps=a(s),o(Z.$$.fragment,s),Os=a(s),o(v.$$.fragment,s),Ks=a(s),o(_.$$.fragment,s),se=a(s),k=i(s,"P",{"data-svelte-h":!0}),m(k)!=="svelte-1w08vjm"&&(k.innerHTML=Tt),ee=a(s),I=i(s,"P",{"data-svelte-h":!0}),m(I)!=="svelte-1rh2wvk"&&(I.textContent=wt),te=a(s),o(R.$$.fragment,s),le=a(s),Q=i(s,"P",{"data-svelte-h":!0}),m(Q)!=="svelte-1ejhv0l"&&(Q.textContent=Ct),ne=a(s),o(G.$$.fragment,s),ae=a(s),T=i(s,"DIV",{class:!0,"data-svelte-h":!0}),m(T)!=="svelte-ej6f4c"&&(T.innerHTML=$t),pe=a(s),x=i(s,"P",{"data-svelte-h":!0}),m(x)!=="svelte-1l346u9"&&(x.textContent=Vt),ie=a(s),W=i(s,"P",{"data-svelte-h":!0}),m(W)!=="svelte-abj3gw"&&(W.innerHTML=Zt),me=a(s),N=i(s,"P",{"data-svelte-h":!0}),m(N)!=="svelte-dgd067"&&(N.textContent=vt),ce=a(s),b=i(s,"OL",{});var j=U(b);E=i(j,"LI",{});var lt=U(E);Es=i(lt,"P",{"data-svelte-h":!0}),m(Es)!=="svelte-j1r62h"&&(Es.textContent=_t),ct=a(lt),o(X.$$.fragment,lt),lt.forEach(t),ot=a(j),B=i(j,"LI",{});var nt=U(B);Xs=i(nt,"P",{"data-svelte-h":!0}),m(Xs)!=="svelte-khbsw8"&&(Xs.textContent=kt),Mt=a(nt),o(F.$$.fragment,nt),nt.forEach(t),ut=a(j),S=i(j,"LI",{});var at=U(S);Bs=i(at,"P",{"data-svelte-h":!0}),m(Bs)!=="svelte-yj8dtl"&&(Bs.textContent=It),rt=a(at),o(H.$$.fragment,at),at.forEach(t),dt=a(j),L=i(j,"LI",{});var pt=U(L);Fs=i(pt,"P",{"data-svelte-h":!0}),m(Fs)!=="svelte-1mx5t16"&&(Fs.textContent=Rt),ht=a(pt),o(D.$$.fragment,pt),pt.forEach(t),gt=a(j),J=i(j,"LI",{});var zs=U(J);Ss=i(zs,"P",{"data-svelte-h":!0}),m(Ss)!=="svelte-1dcn1b9"&&(Ss.innerHTML=Qt),bt=a(zs),o(z.$$.fragment,zs),jt=a(zs),Hs=i(zs,"P",{"data-svelte-h":!0}),m(Hs)!=="svelte-x05lv9"&&(Hs.textContent=Gt),zs.forEach(t),Ut=a(j),Y=i(j,"LI",{});var it=U(Y);Ls=i(it,"P",{"data-svelte-h":!0}),m(Ls)!=="svelte-1plitwm"&&(Ls.textContent=xt),ft=a(it),o(A.$$.fragment,it),it.forEach(t),j.forEach(t),oe=a(s),q=i(s,"P",{"data-svelte-h":!0}),m(q)!=="svelte-1lzspna"&&(q.innerHTML=Wt),Me=a(s),P=i(s,"P",{"data-svelte-h":!0}),m(P)!=="svelte-5z3iwd"&&(P.textContent=Nt),ue=a(s),o(O.$$.fragment,s),re=a(s),K=i(s,"P",{"data-svelte-h":!0}),m(K)!=="svelte-cnatu9"&&(K.innerHTML=Et),de=a(s),ss=i(s,"P",{"data-svelte-h":!0}),m(ss)!=="svelte-1qnf9z2"&&(ss.textContent=Xt),he=a(s),w=i(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(w)!=="svelte-1x7lfaf"&&(w.innerHTML=Bt),ge=a(s),es=i(s,"P",{"data-svelte-h":!0}),m(es)!=="svelte-xdwsf8"&&(es.innerHTML=Ft),be=a(s),o(ts.$$.fragment,s),je=a(s),ls=i(s,"P",{"data-svelte-h":!0}),m(ls)!=="svelte-angdpe"&&(ls.innerHTML=St),Ue=a(s),o(ns.$$.fragment,s),fe=a(s),as=i(s,"P",{"data-svelte-h":!0}),m(as)!=="svelte-xe2wp7"&&(as.textContent=Ht),Je=a(s),o(ps.$$.fragment,s),ye=a(s),o(is.$$.fragment,s),Te=a(s),ms=i(s,"P",{"data-svelte-h":!0}),m(ms)!=="svelte-nswq27"&&(ms.textContent=Lt),we=a(s),C=i(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(C)!=="svelte-1jen626"&&(C.innerHTML=Dt),Ce=a(s),cs=i(s,"P",{"data-svelte-h":!0}),m(cs)!=="svelte-193i9if"&&(cs.textContent=zt),$e=a(s),o(os.$$.fragment,s),Ve=a(s),Ms=i(s,"P",{"data-svelte-h":!0}),m(Ms)!=="svelte-v5k7o5"&&(Ms.textContent=Yt),Ze=a(s),o(us.$$.fragment,s),ve=a(s),rs=i(s,"P",{"data-svelte-h":!0}),m(rs)!=="svelte-1nerc8v"&&(rs.innerHTML=At),_e=a(s),o(ds.$$.fragment,s),ke=a(s),hs=i(s,"P",{"data-svelte-h":!0}),m(hs)!=="svelte-iqpjwl"&&(hs.textContent=qt),Ie=a(s),o(gs.$$.fragment,s),Re=a(s),o(bs.$$.fragment,s),Qe=a(s),js=i(s,"P",{"data-svelte-h":!0}),m(js)!=="svelte-b5xa4e"&&(js.innerHTML=Pt),Ge=a(s),y=i(s,"BLOCKQUOTE",{class:!0});var mt=U(y);Ds=i(mt,"P",{"data-svelte-h":!0}),m(Ds)!=="svelte-132csr5"&&(Ds.innerHTML=Ot),Jt=a(mt),o(Us.$$.fragment,mt),mt.forEach(t),xe=a(s),o(fs.$$.fragment,s),We=a(s),o(Js.$$.fragment,s),Ne=a(s),ys=i(s,"P",{"data-svelte-h":!0}),m(ys)!=="svelte-1xr7g73"&&(ys.innerHTML=Kt),Ee=a(s),o(Ts.$$.fragment,s),Xe=a(s),ws=i(s,"P",{"data-svelte-h":!0}),m(ws)!=="svelte-4n9fvy"&&(ws.innerHTML=sl),Be=a(s),Cs=i(s,"OL",{"data-svelte-h":!0}),m(Cs)!=="svelte-iivnel"&&(Cs.innerHTML=el),Fe=a(s),o($s.$$.fragment,s),Se=a(s),o(Vs.$$.fragment,s),He=a(s),Zs=i(s,"P",{"data-svelte-h":!0}),m(Zs)!=="svelte-12g4hh4"&&(Zs.innerHTML=tl),Le=a(s),o(vs.$$.fragment,s),De=a(s),_s=i(s,"P",{"data-svelte-h":!0}),m(_s)!=="svelte-1bjoomr"&&(_s.innerHTML=ll),ze=a(s),o(ks.$$.fragment,s),Ye=a(s),$=i(s,"DIV",{class:!0,"data-svelte-h":!0}),m($)!=="svelte-1b0w6va"&&($.innerHTML=nl),Ae=a(s),o(Is.$$.fragment,s),qe=a(s),Rs=i(s,"P",{"data-svelte-h":!0}),m(Rs)!=="svelte-nwx4ql"&&(Rs.textContent=al),Pe=a(s),Qs=i(s,"P",{"data-svelte-h":!0}),m(Qs)!=="svelte-g0p09q"&&(Qs.textContent=pl),Oe=a(s),Gs=i(s,"P",{"data-svelte-h":!0}),m(Gs)!=="svelte-qg73l2"&&(Gs.textContent=il),Ke=a(s),xs=i(s,"UL",{"data-svelte-h":!0}),m(xs)!=="svelte-y3g0al"&&(xs.innerHTML=ml),st=a(s),o(Ws.$$.fragment,s),et=a(s),As=i(s,"P",{}),U(As).forEach(t),this.h()},h(){Ns(f,"name","hf:doc:metadata"),Ns(f,"content",Ul),Ns(T,"class","flex justify-center"),Ns(w,"class","tip"),Ns(C,"class","tip"),Ns(y,"class","tip"),Ns($,"class","flex justify-center")},m(s,e){h(document.head,f),l(s,qs,e),l(s,Ys,e),l(s,Ps,e),M(Z,s,e),l(s,Os,e),M(v,s,e),l(s,Ks,e),M(_,s,e),l(s,se,e),l(s,k,e),l(s,ee,e),l(s,I,e),l(s,te,e),M(R,s,e),l(s,le,e),l(s,Q,e),l(s,ne,e),M(G,s,e),l(s,ae,e),l(s,T,e),l(s,pe,e),l(s,x,e),l(s,ie,e),l(s,W,e),l(s,me,e),l(s,N,e),l(s,ce,e),l(s,b,e),h(b,E),h(E,Es),h(E,ct),M(X,E,null),h(b,ot),h(b,B),h(B,Xs),h(B,Mt),M(F,B,null),h(b,ut),h(b,S),h(S,Bs),h(S,rt),M(H,S,null),h(b,dt),h(b,L),h(L,Fs),h(L,ht),M(D,L,null),h(b,gt),h(b,J),h(J,Ss),h(J,bt),M(z,J,null),h(J,jt),h(J,Hs),h(b,Ut),h(b,Y),h(Y,Ls),h(Y,ft),M(A,Y,null),l(s,oe,e),l(s,q,e),l(s,Me,e),l(s,P,e),l(s,ue,e),M(O,s,e),l(s,re,e),l(s,K,e),l(s,de,e),l(s,ss,e),l(s,he,e),l(s,w,e),l(s,ge,e),l(s,es,e),l(s,be,e),M(ts,s,e),l(s,je,e),l(s,ls,e),l(s,Ue,e),M(ns,s,e),l(s,fe,e),l(s,as,e),l(s,Je,e),M(ps,s,e),l(s,ye,e),M(is,s,e),l(s,Te,e),l(s,ms,e),l(s,we,e),l(s,C,e),l(s,Ce,e),l(s,cs,e),l(s,$e,e),M(os,s,e),l(s,Ve,e),l(s,Ms,e),l(s,Ze,e),M(us,s,e),l(s,ve,e),l(s,rs,e),l(s,_e,e),M(ds,s,e),l(s,ke,e),l(s,hs,e),l(s,Ie,e),M(gs,s,e),l(s,Re,e),M(bs,s,e),l(s,Qe,e),l(s,js,e),l(s,Ge,e),l(s,y,e),h(y,Ds),h(y,Jt),M(Us,y,null),l(s,xe,e),M(fs,s,e),l(s,We,e),M(Js,s,e),l(s,Ne,e),l(s,ys,e),l(s,Ee,e),M(Ts,s,e),l(s,Xe,e),l(s,ws,e),l(s,Be,e),l(s,Cs,e),l(s,Fe,e),M($s,s,e),l(s,Se,e),M(Vs,s,e),l(s,He,e),l(s,Zs,e),l(s,Le,e),M(vs,s,e),l(s,De,e),l(s,_s,e),l(s,ze,e),M(ks,s,e),l(s,Ye,e),l(s,$,e),l(s,Ae,e),M(Is,s,e),l(s,qe,e),l(s,Rs,e),l(s,Pe,e),l(s,Qs,e),l(s,Oe,e),l(s,Gs,e),l(s,Ke,e),l(s,xs,e),l(s,st,e),M(Ws,s,e),l(s,et,e),l(s,As,e),tt=!0},p:ol,i(s){tt||(u(Z.$$.fragment,s),u(v.$$.fragment,s),u(_.$$.fragment,s),u(R.$$.fragment,s),u(G.$$.fragment,s),u(X.$$.fragment,s),u(F.$$.fragment,s),u(H.$$.fragment,s),u(D.$$.fragment,s),u(z.$$.fragment,s),u(A.$$.fragment,s),u(O.$$.fragment,s),u(ts.$$.fragment,s),u(ns.$$.fragment,s),u(ps.$$.fragment,s),u(is.$$.fragment,s),u(os.$$.fragment,s),u(us.$$.fragment,s),u(ds.$$.fragment,s),u(gs.$$.fragment,s),u(bs.$$.fragment,s),u(Us.$$.fragment,s),u(fs.$$.fragment,s),u(Js.$$.fragment,s),u(Ts.$$.fragment,s),u($s.$$.fragment,s),u(Vs.$$.fragment,s),u(vs.$$.fragment,s),u(ks.$$.fragment,s),u(Is.$$.fragment,s),u(Ws.$$.fragment,s),tt=!0)},o(s){r(Z.$$.fragment,s),r(v.$$.fragment,s),r(_.$$.fragment,s),r(R.$$.fragment,s),r(G.$$.fragment,s),r(X.$$.fragment,s),r(F.$$.fragment,s),r(H.$$.fragment,s),r(D.$$.fragment,s),r(z.$$.fragment,s),r(A.$$.fragment,s),r(O.$$.fragment,s),r(ts.$$.fragment,s),r(ns.$$.fragment,s),r(ps.$$.fragment,s),r(is.$$.fragment,s),r(os.$$.fragment,s),r(us.$$.fragment,s),r(ds.$$.fragment,s),r(gs.$$.fragment,s),r(bs.$$.fragment,s),r(Us.$$.fragment,s),r(fs.$$.fragment,s),r(Js.$$.fragment,s),r(Ts.$$.fragment,s),r($s.$$.fragment,s),r(Vs.$$.fragment,s),r(vs.$$.fragment,s),r(ks.$$.fragment,s),r(Is.$$.fragment,s),r(Ws.$$.fragment,s),tt=!1},d(s){s&&(t(qs),t(Ys),t(Ps),t(Os),t(Ks),t(se),t(k),t(ee),t(I),t(te),t(le),t(Q),t(ne),t(ae),t(T),t(pe),t(x),t(ie),t(W),t(me),t(N),t(ce),t(b),t(oe),t(q),t(Me),t(P),t(ue),t(re),t(K),t(de),t(ss),t(he),t(w),t(ge),t(es),t(be),t(je),t(ls),t(Ue),t(fe),t(as),t(Je),t(ye),t(Te),t(ms),t(we),t(C),t(Ce),t(cs),t($e),t(Ve),t(Ms),t(Ze),t(ve),t(rs),t(_e),t(ke),t(hs),t(Ie),t(Re),t(Qe),t(js),t(Ge),t(y),t(xe),t(We),t(Ne),t(ys),t(Ee),t(Xe),t(ws),t(Be),t(Cs),t(Fe),t(Se),t(He),t(Zs),t(Le),t(De),t(_s),t(ze),t(Ye),t($),t(Ae),t(qe),t(Rs),t(Pe),t(Qs),t(Oe),t(Gs),t(Ke),t(xs),t(st),t(et),t(As)),t(f),d(Z,s),d(v,s),d(_,s),d(R,s),d(G,s),d(X),d(F),d(H),d(D),d(z),d(A),d(O,s),d(ts,s),d(ns,s),d(ps,s),d(is,s),d(os,s),d(us,s),d(ds,s),d(gs,s),d(bs,s),d(Us),d(fs,s),d(Js,s),d(Ts,s),d($s,s),d(Vs,s),d(vs,s),d(ks,s),d(Is,s),d(Ws,s)}}}const Ul='{"title":"ํ์ดํ๋ผ์ธ, ๋ชจ๋ธ ๋ฐ ์ค์ผ์ค๋ฌ ์ดํดํ๊ธฐ","local":"ํ์ดํ๋ผ์ธ-๋ชจ๋ธ-๋ฐ-์ค์ผ์ค๋ฌ-์ดํดํ๊ธฐ","sections":[{"title":"๊ธฐ๋ณธ ํ์ดํ๋ผ์ธ ํด์ฒดํ๊ธฐ","local":"๊ธฐ๋ณธ-ํ์ดํ๋ผ์ธ-ํด์ฒดํ๊ธฐ","sections":[],"depth":2},{"title":"Stable Diffusion ํ์ดํ๋ผ์ธ ํด์ฒดํ๊ธฐ","local":"stable-diffusion-ํ์ดํ๋ผ์ธ-ํด์ฒดํ๊ธฐ","sections":[{"title":"ํ ์คํธ ์๋ฒ ๋ฉ ์์ฑํ๊ธฐ","local":"ํ ์คํธ-์๋ฒ ๋ฉ-์์ฑํ๊ธฐ","sections":[],"depth":3},{"title":"๋๋ค ๋ ธ์ด์ฆ ์์ฑ","local":"๋๋ค-๋ ธ์ด์ฆ-์์ฑ","sections":[],"depth":3},{"title":"์ด๋ฏธ์ง ๋ ธ์ด์ฆ ์ ๊ฑฐ","local":"์ด๋ฏธ์ง-๋ ธ์ด์ฆ-์ ๊ฑฐ","sections":[],"depth":3},{"title":"์ด๋ฏธ์ง ๋์ฝ๋ฉ","local":"์ด๋ฏธ์ง-๋์ฝ๋ฉ","sections":[],"depth":3}],"depth":2},{"title":"๋ค์ ๋จ๊ณ","local":"๋ค์-๋จ๊ณ","sections":[],"depth":2}],"depth":1}';function fl(yt){return Ml(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class $l extends ul{constructor(f){super(),rl(this,f,fl,jl,cl,{})}}export{$l as component}; | |
Xet Storage Details
- Size:
- 47.4 kB
- Xet hash:
- 23965cac8ed287cdb9f226607aa1e369351efbf5d813a584c4b14fa2e5ad4def
ยท
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.