import{s as ha,o as Ia,n as ra}from"../chunks/scheduler.94020406.js";import{S as Qa,i as ga,g as n,s as M,r as J,E as ua,h as U,f as a,c as t,j as Ca,u as j,x as p,k as oa,y as Va,a as e,v as y,d as T,t as c,w as i}from"../chunks/index.a08c8d92.js";import{T as ba}from"../chunks/Tip.3b0aeee8.js";import{C as m}from"../chunks/CodeBlock.f1fae7de.js";import{D as da}from"../chunks/DocNotebookDropdown.a1753374.js";import{H as bl,E as Aa}from"../chunks/getInferenceSnippets.25ca5d9f.js";function fa(fl){let w,h='๐ก ์ด ํ์ต ํํ ๋ฆฌ์ผ์ Training with ๐งจ Diffusers ๋
ธํธ๋ถ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. Diffusion ๋ชจ๋ธ์ ์๋ ๋ฐฉ์ ๋ฐ ์์ธํ ๋ด์ฉ์ ๋
ธํธ๋ถ์ ํ์ธํ์ธ์!';return{c(){w=n("p"),w.innerHTML=h},l(C){w=U(C,"P",{"data-svelte-h":!0}),p(w)!=="svelte-129ibgh"&&(w.innerHTML=h)},m(C,dl){e(C,w,dl)},p:ra,d(C){C&&a(w)}}}function Ra(fl){let w,h,C,dl,I,Rl,r,Bl,Q,Ns='Unconditional ์ด๋ฏธ์ง ์์ฑ์ ํ์ต์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ์
๊ณผ ์ ์ฌํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ diffusion ๋ชจ๋ธ์์ ์ธ๊ธฐ ์๋ ์ดํ๋ฆฌ์ผ์ด์
์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก, ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ ํน์ ๋ฐ์ดํฐ์
์ ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ์ ํ์ธํ๋ํ๋ ๊ฒ์ผ๋ก ์ป์ ์ ์์ต๋๋ค. ์ด ํ๋ธ์์ ์ด๋ฌํ ๋ง์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ฐพ์ ์ ์์ง๋ง, ๋ง์ฝ ๋ง์์ ๋๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด, ์ธ์ ๋ ์ง ์ค์ค๋ก ํ์ตํ ์ ์์ต๋๋ค!',Zl,g,_s='์ด ํํ ๋ฆฌ์ผ์ ๋๋ง์ ๐ฆ ๋๋น ๐ฆ๋ฅผ ์์ฑํ๊ธฐ ์ํด Smithsonian Butterflies ๋ฐ์ดํฐ์
์ ํ์ ์งํฉ์์ UNet2DModel
๋ชจ๋ธ์ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅด์ณ์ค ๊ฒ์
๋๋ค.',kl,o,Gl,u,Ws='์์ ์ ์, ๐ค Datasets์ ๋ถ๋ฌ์ค๊ณ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ์
์ด ์ค์น๋์ด ์๋์ง ๋ค์ GPU์์ ํ์ต์ ๊ฐ์ํํ๊ธฐ ์ํด ๐ค Accelerate ๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ธ์. ๊ทธ ํ ํ์ต ๋ฉํธ๋ฆญ์ ์๊ฐํํ๊ธฐ ์ํด TensorBoard๋ฅผ ๋ํ ์ค์นํ์ธ์. (๋ํ ํ์ต ์ถ์ ์ ์ํด Weights & Biases๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.)',El,V,Fl,b,Os='์ปค๋ฎค๋ํฐ์ ๋ชจ๋ธ์ ๊ณต์ ํ ๊ฒ์ ๊ถ์ฅํ๋ฉฐ, ์ด๋ฅผ ์ํด์ Hugging Face ๊ณ์ ์ ๋ก๊ทธ์ธ์ ํด์ผ ํฉ๋๋ค. (๊ณ์ ์ด ์๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ง๋ค ์ ์์ต๋๋ค.) ๋
ธํธ๋ถ์์ ๋ก๊ทธ์ธํ ์ ์์ผ๋ฉฐ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ํ ํฐ์ ์
๋ ฅํ ์ ์์ต๋๋ค.',Xl,d,Nl,A,Ss="๋๋ ํฐ๋ฏธ๋๋ก ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค:",_l,f,Wl,R,Ds='๋ชจ๋ธ ์ฒดํฌํฌ์ธํธ๊ฐ ์๋นํ ํฌ๊ธฐ ๋๋ฌธ์ Git-LFS์์ ๋์ฉ๋ ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.',Ol,B,Sl,Z,Dl,k,Ys="ํธ์๋ฅผ ์ํด ํ์ต ํ๋ผ๋ฏธํฐ๋ค์ ํฌํจํ TrainingConfig
ํด๋์ค๋ฅผ ์์ฑํฉ๋๋ค (์์ ๋กญ๊ฒ ์กฐ์ ๊ฐ๋ฅ):",Yl,G,zl,E,$l,F,zs='๐ค Datasets ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Smithsonian Butterflies ๋ฐ์ดํฐ์
์ ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.',vl,X,xl,N,$s='๐กHugGan Community Event ์์ ์ถ๊ฐ์ ๋ฐ์ดํฐ์
์ ์ฐพ๊ฑฐ๋ ๋ก์ปฌ์ ImageFolder
๋ฅผ ๋ง๋ฆ์ผ๋ก์จ ๋๋ง์ ๋ฐ์ดํฐ์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. HugGan Community Event ์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ์
์ ๊ฒฝ์ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ id๋ก config.dataset_name
์ ์ค์ ํ๊ณ , ๋๋ง์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ imagefolder
๋ฅผ ์ค์ ํฉ๋๋ค.',Hl,_,vs='๐ค Datasets์ Image
๊ธฐ๋ฅ์ ์ฌ์ฉํด ์๋์ผ๋ก ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋์ฝ๋ฉํ๊ณ PIL.Image
๋ก ๋ถ๋ฌ์ต๋๋ค. ์ด๋ฅผ ์๊ฐํ ํด๋ณด๋ฉด:',Ll,W,ql,O,xs='
',Kl,S,Hs="์ด๋ฏธ์ง๋ ๋ชจ๋ ๋ค๋ฅธ ์ฌ์ด์ฆ์ด๊ธฐ ๋๋ฌธ์, ์ฐ์ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค:",Pl,D,Ls="
Resize
๋ config.image_size
์ ์ ์๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝํฉ๋๋ค. RandomHorizontalFlip
์ ๋๋ค์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฌ๋งํ์ฌ ๋ฐ์ดํฐ์
์ ๋ณด๊ฐํฉ๋๋ค. Normalize
๋ ๋ชจ๋ธ์ด ์์ํ๋ [-1, 1] ๋ฒ์๋ก ํฝ์
๊ฐ์ ์ฌ์กฐ์ ํ๋๋ฐ ์ค์ํฉ๋๋ค.",ls,Y,ss,z,qs="ํ์ต ๋์ค์ preprocess
ํจ์๋ฅผ ์ ์ฉํ๋ ค๋ฉด ๐ค Datasets์ set_transform
๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋ฉ๋๋ค.",as,$,es,v,Ks='์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ฅผ ๋ค์ ์๊ฐํํด๋ณด์ธ์. ์ด์ DataLoader์ ๋ฐ์ดํฐ์
์ ํฌํจํด ํ์ตํ ์ค๋น๊ฐ ๋์์ต๋๋ค!',Ms,x,ts,H,ns,L,Ps="๐งจ Diffusers์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ๋ค์ ๋ชจ๋ธ ํด๋์ค์์ ์ํ๋ ํ๋ผ๋ฏธํฐ๋ก ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, UNet2DModel
๋ฅผ ์์ฑํ๋ ค๋ฉด:",Us,q,ps,K,la="์ํ์ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ชจ๋ธ ์ถ๋ ฅ ํฌ๊ธฐ๊ฐ ๋ง๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ๊ธฐ ์ํ ์ข์ ์์ด๋์ด๊ฐ ์์ต๋๋ค:",Js,P,js,ll,sa="ํ๋ฅญํด์! ๋ค์, ์ด๋ฏธ์ง์ ์ฝ๊ฐ์ ๋
ธ์ด์ฆ๋ฅผ ๋ํ๊ธฐ ์ํด ์ค์ผ์ค๋ฌ๊ฐ ํ์ํฉ๋๋ค.",ys,sl,Ts,al,aa="์ค์ผ์ค๋ฌ๋ ๋ชจ๋ธ์ ํ์ต ๋๋ ์ถ๋ก ์ ์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค. ์ถ๋ก ์์, ์ค์ผ์ค๋ฌ๋ ๋
ธ์ด์ฆ๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค. ํ์ต์ ์ค์ผ์ค๋ฌ๋ diffusion ๊ณผ์ ์์์ ํน์ ํฌ์ธํธ๋ก๋ถํฐ ๋ชจ๋ธ์ ์ถ๋ ฅ ๋๋ ์ํ์ ๊ฐ์ ธ์ ๋
ธ์ด์ฆ ์ค์ผ์ค ๊ณผ ์
๋ฐ์ดํธ ๊ท์น์ ๋ฐ๋ผ ์ด๋ฏธ์ง์ ๋
ธ์ด์ฆ๋ฅผ ์ ์ฉํฉ๋๋ค.",cs,el,ea="DDPMScheduler
๋ฅผ ๋ณด๋ฉด ์ด์ ์ผ๋ก๋ถํฐ sample_image
์ ๋๋คํ ๋
ธ์ด์ฆ๋ฅผ ๋ํ๋ add_noise
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค:",is,Ml,ms,tl,Ma='
',ws,nl,ta="๋ชจ๋ธ์ ํ์ต ๋ชฉ์ ์ ์ด๋ฏธ์ง์ ๋ํด์ง ๋
ธ์ด์ฆ๋ฅผ ์์ธกํ๋ ๊ฒ์
๋๋ค. ์ด ๋จ๊ณ์์ ์์ค์ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ ์ ์์ต๋๋ค:",Cs,Ul,os,pl,hs,Jl,na="์ง๊ธ๊น์ง, ๋ชจ๋ธ ํ์ต์ ์์ํ๊ธฐ ์ํด ๋ง์ ๋ถ๋ถ์ ๊ฐ์ถ์์ผ๋ฉฐ ์ด์ ๋จ์ ๊ฒ์ ๋ชจ๋ ๊ฒ์ ์กฐํฉํ๋ ๊ฒ์
๋๋ค.",Is,jl,Ua="์ฐ์ ์ตํฐ๋ง์ด์ (optimizer)์ ํ์ต๋ฅ ์ค์ผ์ค๋ฌ(learning rate scheduler)๊ฐ ํ์ํ ๊ฒ์
๋๋ค:",rs,yl,Qs,Tl,pa="๊ทธ ํ, ๋ชจ๋ธ์ ํ๊ฐํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ํ๊ฐ๋ฅผ ์ํด, DDPMPipeline
์ ์ฌ์ฉํด ๋ฐฐ์น์ ์ด๋ฏธ์ง ์ํ๋ค์ ์์ฑํ๊ณ ๊ทธ๋ฆฌ๋ ํํ๋ก ์ ์ฅํ ์ ์์ต๋๋ค:",gs,cl,us,il,Ja="TensorBoard์ ๋ก๊น
, ๊ทธ๋๋์ธํธ ๋์ ๋ฐ ํผํฉ ์ ๋ฐ๋ ํ์ต์ ์ฝ๊ฒ ์ํํ๊ธฐ ์ํด ๐ค Accelerate๋ฅผ ํ์ต ๋ฃจํ์ ํจ๊ป ์์ ๋งํ ๋ชจ๋ ๊ตฌ์ฑ ์ ๋ณด๋ค์ ๋ฌถ์ด ์งํํ ์ ์์ต๋๋ค. ํ๋ธ์ ๋ชจ๋ธ์ ์
๋ก๋ ํ๊ธฐ ์ํด ๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ ๋ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ํจ์๋ฅผ ์์ฑํ๊ณ ํ๋ธ์ ์
๋ก๋ํ ์ ์์ต๋๋ค.",Vs,ml,ja="๐ก์๋์ ํ์ต ๋ฃจํ๋ ์ด๋ ต๊ณ ๊ธธ์ด ๋ณด์ผ ์ ์์ง๋ง, ๋์ค์ ํ ์ค์ ์ฝ๋๋ก ํ์ต์ ํ๋ค๋ฉด ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ ๊ฒ์
๋๋ค! ๋ง์ฝ ๊ธฐ๋ค๋ฆฌ์ง ๋ชปํ๊ณ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ์ถ๋ค๋ฉด, ์๋ ์ฝ๋๋ฅผ ์์ ๋กญ๊ฒ ๋ถ์ฌ๋ฃ๊ณ ์๋์ํค๋ฉด ๋ฉ๋๋ค. ๐ค",bs,wl,ds,Cl,ya="ํด, ์ฝ๋๊ฐ ๊ฝค ๋ง์๋ค์! ํ์ง๋ง ๐ค Accelerate์ notebook_launcher
ํจ์์ ํ์ต์ ์์ํ ์ค๋น๊ฐ ๋์์ต๋๋ค. ํจ์์ ํ์ต ๋ฃจํ, ๋ชจ๋ ํ์ต ์ธ์, ํ์ต์ ์ฌ์ฉํ ํ๋ก์ธ์ค ์(์ฌ์ฉ ๊ฐ๋ฅํ GPU์ ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์)๋ฅผ ์ ๋ฌํฉ๋๋ค:",As,ol,fs,hl,Ta="ํ๋ฒ ํ์ต์ด ์๋ฃ๋๋ฉด, diffusion ๋ชจ๋ธ๋ก ์์ฑ๋ ์ต์ข
๐ฆ์ด๋ฏธ์ง๐ฆ๋ฅผ ํ์ธํด๋ณด๊ธธ ๋ฐ๋๋๋ค!",Rs,Il,Bs,rl,ca='
',Zs,Ql,ks,gl,ia='Unconditional ์ด๋ฏธ์ง ์์ฑ์ ํ์ต๋ ์ ์๋ ์์
์ค ํ๋์ ์์์
๋๋ค. ๋ค๋ฅธ ์์
๊ณผ ํ์ต ๋ฐฉ๋ฒ์ ๐งจ Diffusers ํ์ต ์์ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ค์์ ํ์ตํ ์ ์๋ ๋ช ๊ฐ์ง ์์์
๋๋ค:',Gs,ul,ma='Textual Inversion, ํน์ ์๊ฐ์ ๊ฐ๋
์ ํ์ต์์ผ ์์ฑ๋ ์ด๋ฏธ์ง์ ํตํฉ์ํค๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. DreamBooth, ์ฃผ์ ์ ๋ํ ๋ช ๊ฐ์ง ์
๋ ฅ ์ด๋ฏธ์ง๋ค์ด ์ฃผ์ด์ง๋ฉด ์ฃผ์ ์ ๋ํ ๊ฐ์ธํ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ธฐ์ ์
๋๋ค. Guide ๋ฐ์ดํฐ์
์ Stable Diffusion ๋ชจ๋ธ์ ํ์ธํ๋ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. Guide LoRA๋ฅผ ์ฌ์ฉํด ๋งค์ฐ ํฐ ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ํ์ธํ๋ํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ ๊ธฐ์ ์
๋๋ค.',Es,Vl,Fs,Al,Xs;return I=new da({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/basic_training.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/basic_training.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/basic_training.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/basic_training.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/basic_training.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/basic_training.ipynb"}]}}),r=new bl({props:{title:"Diffusion ๋ชจ๋ธ์ ํ์ตํ๊ธฐ",local:"diffusion-๋ชจ๋ธ์-ํ์ตํ๊ธฐ",headingTag:"h1"}}),o=new ba({props:{$$slots:{default:[fa]},$$scope:{ctx:fl}}}),V=new m({props:{code:"IXBpcCUyMGluc3RhbGwlMjBkaWZmdXNlcnMlNUJ0cmFpbmluZyU1RA==",highlighted:"!pip install diffusers[training]",wrap:!1}}),d=new m({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`>>> from huggingface_hub import notebook_login
>>> notebook_login()`,wrap:!1}}),f=new m({props:{code:"aGYlMjBhdXRoJTIwbG9naW4=",highlighted:"hf auth login",wrap:!1}}),B=new m({props:{code:"IXN1ZG8lMjBhcHQlMjAtcXElMjBpbnN0YWxsJTIwZ2l0LWxmcyUwQSFnaXQlMjBjb25maWclMjAtLWdsb2JhbCUyMGNyZWRlbnRpYWwuaGVscGVyJTIwc3RvcmU=",highlighted:`!sudo apt -qq install git-lfs
!git config --global credential.helper store`,wrap:!1}}),Z=new bl({props:{title:"ํ์ต ๊ตฌ์ฑ",local:"ํ์ต-๊ตฌ์ฑ",headingTag:"h2"}}),G=new m({props:{code:"ZnJvbSUyMGRhdGFjbGFzc2VzJTIwaW1wb3J0JTIwZGF0YWNsYXNzJTBBJTBBJTBBJTQwZGF0YWNsYXNzJTBBY2xhc3MlMjBUcmFpbmluZ0NvbmZpZyUzQSUwQSUyMCUyMCUyMCUyMGltYWdlX3NpemUlMjAlM0QlMjAxMjglMjAlMjAlMjMlMjAlRUMlODMlOUQlRUMlODQlQjElRUIlOTAlOTglRUIlOEElOTQlMjAlRUMlOUQlQjQlRUIlQUYlQjglRUMlQTclODAlMjAlRUQlOTUlQjQlRUMlODMlODElRUIlOEYlODQlMEElMjAlMjAlMjAlMjB0cmFpbl9iYXRjaF9zaXplJTIwJTNEJTIwMTYlMEElMjAlMjAlMjAlMjBldmFsX2JhdGNoX3NpemUlMjAlM0QlMjAxNiUyMCUyMCUyMyUyMCVFRCU4RiU4OSVFQSVCMCU4MCUyMCVFQiU4RiU5OSVFQyU5NSU4OCVFQyU5NyU5MCUyMCVFQyU4MyU5OCVFRCU5NCU4QyVFQiVBNyU4MSVFRCU5NSVBMCUyMCVFQyU5RCVCNCVFQiVBRiVCOCVFQyVBNyU4MCUyMCVFQyU4OCU5OCUwQSUyMCUyMCUyMCUyMG51bV9lcG9jaHMlMjAlM0QlMjA1MCUwQSUyMCUyMCUyMCUyMGdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUyMCUzRCUyMDElMEElMjAlMjAlMjAlMjBsZWFybmluZ19yYXRlJTIwJTNEJTIwMWUtNCUwQSUyMCUyMCUyMCUyMGxyX3dhcm11cF9zdGVwcyUyMCUzRCUyMDUwMCUwQSUyMCUyMCUyMCUyMHNhdmVfaW1hZ2VfZXBvY2hzJTIwJTNEJTIwMTAlMEElMjAlMjAlMjAlMjBzYXZlX21vZGVsX2Vwb2NocyUyMCUzRCUyMDMwJTBBJTIwJTIwJTIwJTIwbWl4ZWRfcHJlY2lzaW9uJTIwJTNEJTIwJTIyZnAxNiUyMiUyMCUyMCUyMyUyMCU2MG5vJTYwJUVCJThBJTk0JTIwZmxvYXQzMiUyQyUyMCVFQyU5RSU5MCVFQiU4RiU5OSUyMCVFRCU5OCVCQyVFRCU5NSVBOSUyMCVFQyVBMCU5NSVFQiVCMCU4MCVFQiU4RiU4NCVFQiVBNSVCQyUyMCVFQyU5QyU4NCVFRCU5NSU5QyUyMCU2MGZwMTYlNjAlMEElMjAlMjAlMjAlMjBvdXRwdXRfZGlyJTIwJTNEJTIwJTIyZGRwbS1idXR0ZXJmbGllcy0xMjglMjIlMjAlMjAlMjMlMjAlRUIlQTElOUMlRUMlQkIlQUMlMjAlRUIlQjAlOEYlMjBIRiUyMEh1YiVFQyU5NyU5MCUyMCVFQyVBMCU4MCVFQyU5RSVBNSVFQiU5MCU5OCVFQiU4QSU5NCUyMCVFQiVBQSVBOCVFQiU4RCVCOCVFQiVBQSU4NSUwQSUwQSUyMCUyMCUyMCUyMHB1c2hfdG9faHViJTIwJTNEJTIwVHJ1ZSUyMCUyMCUyMyUyMCVFQyVBMCU4MCVFQyU5RSVBNSVFQiU5MCU5QyUyMCVFQiVBQSVBOCVFQiU4RCVCOCVFQyU5RCU4NCUyMEhGJTIwSHViJUVDJTk3JTkwJTIwJUVDJTk3JTg1JUVCJUExJTlDJUVCJTkzJTlDJUVEJTk1JUEwJUVDJUE3JTgwJTIwJUVDJTk3JUFDJUVCJUI2JTgwJTBBJTIwJTIwJTIwJTIwaHViX3ByaXZhdGVfcmVwbyUyMCUzRCUyME5vbmUlMEElMjAlMjAlMjAlMjBvdmVyd3JpdGVfb3V0cHV0X2RpciUyMCUzRCUyMFRydWUlMjAlMjAlMjMlMjAlRUIlODUlQjglRUQlOEElQjglRUIlQjYlODElRUMlOUQlODQlMjAlRUIlOEIlQTQlRUMlOEIlOUMlMjAlRUMlOEIlQTQlRUQlOTYlODklRUQlOTUlQTAlMjAlRUIlOTUlOEMlMjAlRUMlOUQlQjQlRUMlQTAlODQlMjAlRUIlQUElQTglRUIlOEQlQjglRUMlOTclOTAlMjAlRUIlOEQlQUUlRUMlOTYlQjQlRUMlOTQlOEMlRUMlOUElQjglRUMlQTclODAlMEElMjAlMjAlMjAlMjBzZWVkJTIwJTNEJTIwMCUwQSUwQSUwQWNvbmZpZyUyMCUzRCUyMFRyYWluaW5nQ29uZmlnKCk=",highlighted:`>>> from dataclasses import dataclass
>>> @dataclass
... class TrainingConfig:
... image_size = 128
... train_batch_size = 16
... eval_batch_size = 16
... num_epochs = 50
... gradient_accumulation_steps = 1
... learning_rate = 1e-4
... lr_warmup_steps = 500
... save_image_epochs = 10
... save_model_epochs = 30
... mixed_precision = "fp16"
... output_dir = "ddpm-butterflies-128"
... push_to_hub = True
... hub_private_repo = None
... overwrite_output_dir = True
... seed = 0
>>> config = TrainingConfig()`,wrap:!1}}),E=new bl({props:{title:"๋ฐ์ดํฐ์
๋ถ๋ฌ์ค๊ธฐ",local:"๋ฐ์ดํฐ์
-๋ถ๋ฌ์ค๊ธฐ",headingTag:"h2"}}),X=new m({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBY29uZmlnLmRhdGFzZXRfbmFtZSUyMCUzRCUyMCUyMmh1Z2dhbiUyRnNtaXRoc29uaWFuX2J1dHRlcmZsaWVzX3N1YnNldCUyMiUwQWRhdGFzZXQlMjAlM0QlMjBsb2FkX2RhdGFzZXQoY29uZmlnLmRhdGFzZXRfbmFtZSUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIp",highlighted:`>>> from datasets import load_dataset
>>> config.dataset_name = "huggan/smithsonian_butterflies_subset"
>>> dataset = load_dataset(config.dataset_name, split="train")`,wrap:!1}}),W=new m({props:{code:"aW1wb3J0JTIwbWF0cGxvdGxpYi5weXBsb3QlMjBhcyUyMHBsdCUwQSUwQWZpZyUyQyUyMGF4cyUyMCUzRCUyMHBsdC5zdWJwbG90cygxJTJDJTIwNCUyQyUyMGZpZ3NpemUlM0QoMTYlMkMlMjA0KSklMEFmb3IlMjBpJTJDJTIwaW1hZ2UlMjBpbiUyMGVudW1lcmF0ZShkYXRhc2V0JTVCJTNBNCU1RCU1QiUyMmltYWdlJTIyJTVEKSUzQSUwQSUyMCUyMCUyMCUyMGF4cyU1QmklNUQuaW1zaG93KGltYWdlKSUwQSUyMCUyMCUyMCUyMGF4cyU1QmklNUQuc2V0X2F4aXNfb2ZmKCklMEFmaWcuc2hvdygp",highlighted:`>>> import matplotlib.pyplot as plt
>>> fig, axs = plt.subplots(1, 4, figsize=(16, 4))
>>> for i, image in enumerate(dataset[:4]["image"]):
... axs[i].imshow(image)
... axs[i].set_axis_off()
>>> fig.show()`,wrap:!1}}),Y=new m({props:{code:"ZnJvbSUyMHRvcmNodmlzaW9uJTIwaW1wb3J0JTIwdHJhbnNmb3JtcyUwQSUwQXByZXByb2Nlc3MlMjAlM0QlMjB0cmFuc2Zvcm1zLkNvbXBvc2UoJTBBJTIwJTIwJTIwJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHJhbnNmb3Jtcy5SZXNpemUoKGNvbmZpZy5pbWFnZV9zaXplJTJDJTIwY29uZmlnLmltYWdlX3NpemUpKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyYW5zZm9ybXMuUmFuZG9tSG9yaXpvbnRhbEZsaXAoKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyYW5zZm9ybXMuVG9UZW5zb3IoKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyYW5zZm9ybXMuTm9ybWFsaXplKCU1QjAuNSU1RCUyQyUyMCU1QjAuNSU1RCklMkMlMEElMjAlMjAlMjAlMjAlNUQlMEEp",highlighted:`>>> from torchvision import transforms
>>> preprocess = transforms.Compose(
... [
... transforms.Resize((config.image_size, config.image_size)),
... transforms.RandomHorizontalFlip(),
... transforms.ToTensor(),
... transforms.Normalize([0.5], [0.5]),
... ]
... )`,wrap:!1}}),$=new m({props:{code:"ZGVmJTIwdHJhbnNmb3JtKGV4YW1wbGVzKSUzQSUwQSUyMCUyMCUyMCUyMGltYWdlcyUyMCUzRCUyMCU1QnByZXByb2Nlc3MoaW1hZ2UuY29udmVydCglMjJSR0IlMjIpKSUyMGZvciUyMGltYWdlJTIwaW4lMjBleGFtcGxlcyU1QiUyMmltYWdlJTIyJTVEJTVEJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTIyaW1hZ2VzJTIyJTNBJTIwaW1hZ2VzJTdEJTBBJTBBJTBBZGF0YXNldC5zZXRfdHJhbnNmb3JtKHRyYW5zZm9ybSk=",highlighted:`>>> def transform(examples):
... images = [preprocess(image.convert("RGB")) for image in examples["image"]]
... return {"images": images}
>>> dataset.set_transform(transform)`,wrap:!1}}),x=new m({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEF0cmFpbl9kYXRhbG9hZGVyJTIwJTNEJTIwdG9yY2gudXRpbHMuZGF0YS5EYXRhTG9hZGVyKGRhdGFzZXQlMkMlMjBiYXRjaF9zaXplJTNEY29uZmlnLnRyYWluX2JhdGNoX3NpemUlMkMlMjBzaHVmZmxlJTNEVHJ1ZSk=",highlighted:`>>> import torch
>>> train_dataloader = torch.utils.data.DataLoader(dataset, batch_size=config.train_batch_size, shuffle=True)`,wrap:!1}}),H=new bl({props:{title:"UNet2DModel ์์ฑํ๊ธฐ",local:"unet2dmodel-์์ฑํ๊ธฐ",headingTag:"h2"}}),q=new m({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFVOZXQyRE1vZGVsJTBBJTBBbW9kZWwlMjAlM0QlMjBVTmV0MkRNb2RlbCglMEElMjAlMjAlMjAlMjBzYW1wbGVfc2l6ZSUzRGNvbmZpZy5pbWFnZV9zaXplJTJDJTIwJTIwJTIzJTIwJUVEJTgzJTgwJUVBJUIyJTlGJTIwJUVDJTlEJUI0JUVCJUFGJUI4JUVDJUE3JTgwJTIwJUVEJTk1JUI0JUVDJTgzJTgxJUVCJThGJTg0JTBBJTIwJTIwJTIwJTIwaW5fY2hhbm5lbHMlM0QzJTJDJTIwJTIwJTIzJTIwJUVDJTlFJTg1JUVCJUEwJUE1JTIwJUVDJUIxJTg0JUVCJTg0JTkwJTIwJUVDJTg4JTk4JTJDJTIwUkdCJTIwJUVDJTlEJUI0JUVCJUFGJUI4JUVDJUE3JTgwJUVDJTk3JTkwJUVDJTg0JTlDJTIwMyUwQSUyMCUyMCUyMCUyMG91dF9jaGFubmVscyUzRDMlMkMlMjAlMjAlMjMlMjAlRUMlQjYlOUMlRUIlQTAlQTUlMjAlRUMlQjElODQlRUIlODQlOTAlMjAlRUMlODglOTglMEElMjAlMjAlMjAlMjBsYXllcnNfcGVyX2Jsb2NrJTNEMiUyQyUyMCUyMCUyMyUyMFVOZXQlMjAlRUIlQjglOTQlRUIlOUYlQUQlRUIlOEIlQjklMjAlRUIlQUElODclMjAlRUElQjAlOUMlRUMlOUQlOTglMjBSZXNOZXQlMjAlRUIlQTAlODglRUMlOUQlQjQlRUMlOTYlQjQlRUElQjAlODAlMjAlRUMlODIlQUMlRUMlOUElQTklRUIlOTAlOTglRUIlOEElOTQlRUMlQTclODAlMEElMjAlMjAlMjAlMjBibG9ja19vdXRfY2hhbm5lbHMlM0QoMTI4JTJDJTIwMTI4JTJDJTIwMjU2JTJDJTIwMjU2JTJDJTIwNTEyJTJDJTIwNTEyKSUyQyUyMCUyMCUyMyUyMCVFQSVCMCU4MSUyMFVOZXQlMjAlRUIlQjglOTQlRUIlOUYlQUQlRUMlOUQlODQlMjAlRUMlOUMlODQlRUQlOTUlOUMlMjAlRUMlQjYlOUMlRUIlQTAlQTUlMjAlRUMlQjElODQlRUIlODQlOTAlMjAlRUMlODglOTglMEElMjAlMjAlMjAlMjBkb3duX2Jsb2NrX3R5cGVzJTNEKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkRvd25CbG9jazJEJTIyJTJDJTIwJTIwJTIzJTIwJUVDJTlEJUJDJUVCJUIwJTk4JUVDJUEwJTgxJUVDJTlEJUI4JTIwUmVzTmV0JTIwJUVCJThCJUE0JUVDJTlBJUI0JUVDJTgzJTk4JUVEJTk0JThDJUVCJUE3JTgxJTIwJUVCJUI4JTk0JUVCJTlGJUFEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyRG93bkJsb2NrMkQlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJEb3duQmxvY2syRCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkRvd25CbG9jazJEJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyQXR0bkRvd25CbG9jazJEJTIyJTJDJTIwJTIwJTIzJTIwc3BhdGlhbCUyMHNlbGYtYXR0ZW50aW9uJUVDJTlEJUI0JTIwJUVEJThGJUFDJUVEJTk1JUE4JUVCJTkwJTlDJTIwJUVDJTlEJUJDJUVCJUIwJTk4JUVDJUEwJTgxJUVDJTlEJUI4JTIwUmVzTmV0JTIwJUVCJThCJUE0JUVDJTlBJUI0JUVDJTgzJTk4JUVEJTk0JThDJUVCJUE3JTgxJTIwJUVCJUI4JTk0JUVCJTlGJUFEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyRG93bkJsb2NrMkQlMjIlMkMlMEElMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwdXBfYmxvY2tfdHlwZXMlM0QoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyVXBCbG9jazJEJTIyJTJDJTIwJTIwJTIzJTIwJUVDJTlEJUJDJUVCJUIwJTk4JUVDJUEwJTgxJUVDJTlEJUI4JTIwUmVzTmV0JTIwJUVDJTk3JTg1JUVDJTgzJTk4JUVEJTk0JThDJUVCJUE3JTgxJTIwJUVCJUI4JTk0JUVCJTlGJUFEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyQXR0blVwQmxvY2syRCUyMiUyQyUyMCUyMCUyMyUyMHNwYXRpYWwlMjBzZWxmLWF0dGVudGlvbiVFQyU5RCVCNCUyMCVFRCU4RiVBQyVFRCU5NSVBOCVFQiU5MCU5QyUyMCVFQyU5RCVCQyVFQiVCMCU5OCVFQyVBMCU4MSVFQyU5RCVCOCUyMFJlc05ldCUyMCVFQyU5NyU4NSVFQyU4MyU5OCVFRCU5NCU4QyVFQiVBNyU4MSUyMCVFQiVCOCU5NCVFQiU5RiVBRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMlVwQmxvY2syRCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMlVwQmxvY2syRCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMlVwQmxvY2syRCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMlVwQmxvY2syRCUyMiUyQyUwQSUyMCUyMCUyMCUyMCklMkMlMEEp",highlighted:`>>> from diffusers import UNet2DModel
>>> model = UNet2DModel(
... sample_size=config.image_size,
... in_channels=3,
... out_channels=3,
... layers_per_block=2,
... block_out_channels=(128, 128, 256, 256, 512, 512),
... down_block_types=(
... "DownBlock2D",
... "DownBlock2D",
... "DownBlock2D",
... "DownBlock2D",
... "AttnDownBlock2D",
... "DownBlock2D",
... ),
... up_block_types=(
... "UpBlock2D",
... "AttnUpBlock2D",
... "UpBlock2D",
... "UpBlock2D",
... "UpBlock2D",
... "UpBlock2D",
... ),
... )`,wrap:!1}}),P=new m({props:{code:"c2FtcGxlX2ltYWdlJTIwJTNEJTIwZGF0YXNldCU1QjAlNUQlNUIlMjJpbWFnZXMlMjIlNUQudW5zcXVlZXplKDApJTBBcHJpbnQoJTIySW5wdXQlMjBzaGFwZSUzQSUyMiUyQyUyMHNhbXBsZV9pbWFnZS5zaGFwZSklMEElMEFwcmludCglMjJPdXRwdXQlMjBzaGFwZSUzQSUyMiUyQyUyMG1vZGVsKHNhbXBsZV9pbWFnZSUyQyUyMHRpbWVzdGVwJTNEMCkuc2FtcGxlLnNoYXBlKQ==",highlighted:`>>> sample_image = dataset[0]["images"].unsqueeze(0)
>>> print("Input shape:", sample_image.shape)
Input shape: torch.Size([1, 3, 128, 128])
>>> print("Output shape:", model(sample_image, timestep=0).sample.shape)
Output shape: torch.Size([1, 3, 128, 128])`,wrap:!1}}),sl=new bl({props:{title:"์ค์ผ์ค๋ฌ ์์ฑํ๊ธฐ",local:"์ค์ผ์ค๋ฌ-์์ฑํ๊ธฐ",headingTag:"h2"}}),Ml=new m({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwUElMJTIwaW1wb3J0JTIwSW1hZ2UlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRERQTVNjaGVkdWxlciUwQSUwQW5vaXNlX3NjaGVkdWxlciUyMCUzRCUyMEREUE1TY2hlZHVsZXIobnVtX3RyYWluX3RpbWVzdGVwcyUzRDEwMDApJTBBbm9pc2UlMjAlM0QlMjB0b3JjaC5yYW5kbihzYW1wbGVfaW1hZ2Uuc2hhcGUpJTBBdGltZXN0ZXBzJTIwJTNEJTIwdG9yY2guTG9uZ1RlbnNvciglNUI1MCU1RCklMEFub2lzeV9pbWFnZSUyMCUzRCUyMG5vaXNlX3NjaGVkdWxlci5hZGRfbm9pc2Uoc2FtcGxlX2ltYWdlJTJDJTIwbm9pc2UlMkMlMjB0aW1lc3RlcHMpJTBBJTBBSW1hZ2UuZnJvbWFycmF5KCgobm9pc3lfaW1hZ2UucGVybXV0ZSgwJTJDJTIwMiUyQyUyMDMlMkMlMjAxKSUyMCUyQiUyMDEuMCklMjAqJTIwMTI3LjUpLnR5cGUodG9yY2gudWludDgpLm51bXB5KCklNUIwJTVEKQ==",highlighted:`>>> import torch
>>> from PIL import Image
>>> from diffusers import DDPMScheduler
>>> noise_scheduler = DDPMScheduler(num_train_timesteps=1000)
>>> noise = torch.randn(sample_image.shape)
>>> timesteps = torch.LongTensor([50])
>>> noisy_image = noise_scheduler.add_noise(sample_image, noise, timesteps)
>>> Image.fromarray(((noisy_image.permute(0, 2, 3, 1) + 1.0) * 127.5).type(torch.uint8).numpy()[0])`,wrap:!1}}),Ul=new m({props:{code:"aW1wb3J0JTIwdG9yY2gubm4uZnVuY3Rpb25hbCUyMGFzJTIwRiUwQSUwQW5vaXNlX3ByZWQlMjAlM0QlMjBtb2RlbChub2lzeV9pbWFnZSUyQyUyMHRpbWVzdGVwcykuc2FtcGxlJTBBbG9zcyUyMCUzRCUyMEYubXNlX2xvc3Mobm9pc2VfcHJlZCUyQyUyMG5vaXNlKQ==",highlighted:`>>> import torch.nn.functional as F
>>> noise_pred = model(noisy_image, timesteps).sample
>>> loss = F.mse_loss(noise_pred, noise)`,wrap:!1}}),pl=new bl({props:{title:"๋ชจ๋ธ ํ์ตํ๊ธฐ",local:"๋ชจ๋ธ-ํ์ตํ๊ธฐ",headingTag:"h2"}}),yl=new m({props:{code:"ZnJvbSUyMGRpZmZ1c2Vycy5vcHRpbWl6YXRpb24lMjBpbXBvcnQlMjBnZXRfY29zaW5lX3NjaGVkdWxlX3dpdGhfd2FybXVwJTBBJTBBb3B0aW1pemVyJTIwJTNEJTIwdG9yY2gub3B0aW0uQWRhbVcobW9kZWwucGFyYW1ldGVycygpJTJDJTIwbHIlM0Rjb25maWcubGVhcm5pbmdfcmF0ZSklMEFscl9zY2hlZHVsZXIlMjAlM0QlMjBnZXRfY29zaW5lX3NjaGVkdWxlX3dpdGhfd2FybXVwKCUwQSUyMCUyMCUyMCUyMG9wdGltaXplciUzRG9wdGltaXplciUyQyUwQSUyMCUyMCUyMCUyMG51bV93YXJtdXBfc3RlcHMlM0Rjb25maWcubHJfd2FybXVwX3N0ZXBzJTJDJTBBJTIwJTIwJTIwJTIwbnVtX3RyYWluaW5nX3N0ZXBzJTNEKGxlbih0cmFpbl9kYXRhbG9hZGVyKSUyMColMjBjb25maWcubnVtX2Vwb2NocyklMkMlMEEp",highlighted:`>>> from diffusers.optimization import get_cosine_schedule_with_warmup
>>> optimizer = torch.optim.AdamW(model.parameters(), lr=config.learning_rate)
>>> lr_scheduler = get_cosine_schedule_with_warmup(
... optimizer=optimizer,
... num_warmup_steps=config.lr_warmup_steps,
... num_training_steps=(len(train_dataloader) * config.num_epochs),
... )`,wrap:!1}}),cl=new m({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEREUE1QaXBlbGluZSUwQWltcG9ydCUyMG1hdGglMEFpbXBvcnQlMjBvcyUwQSUwQSUwQWRlZiUyMG1ha2VfZ3JpZChpbWFnZXMlMkMlMjByb3dzJTJDJTIwY29scyklM0ElMEElMjAlMjAlMjAlMjB3JTJDJTIwaCUyMCUzRCUyMGltYWdlcyU1QjAlNUQuc2l6ZSUwQSUyMCUyMCUyMCUyMGdyaWQlMjAlM0QlMjBJbWFnZS5uZXcoJTIyUkdCJTIyJTJDJTIwc2l6ZSUzRChjb2xzJTIwKiUyMHclMkMlMjByb3dzJTIwKiUyMGgpKSUwQSUyMCUyMCUyMCUyMGZvciUyMGklMkMlMjBpbWFnZSUyMGluJTIwZW51bWVyYXRlKGltYWdlcyklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBncmlkLnBhc3RlKGltYWdlJTJDJTIwYm94JTNEKGklMjAlMjUlMjBjb2xzJTIwKiUyMHclMkMlMjBpJTIwJTJGJTJGJTIwY29scyUyMColMjBoKSklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBncmlkJTBBJTBBJTBBZGVmJTIwZXZhbHVhdGUoY29uZmlnJTJDJTIwZXBvY2glMkMlMjBwaXBlbGluZSklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjAlRUIlOUUlOUMlRUIlOEQlQTQlRUQlOTUlOUMlMjAlRUIlODUlQjglRUMlOUQlQjQlRUMlQTYlODglRUIlQTElOUMlMjAlRUIlQjYlODAlRUQlODQlQjAlMjAlRUMlOUQlQjQlRUIlQUYlQjglRUMlQTclODAlRUIlQTUlQkMlMjAlRUMlQjYlOTQlRUMlQjYlOUMlRUQlOTUlQTklRUIlOEIlODglRUIlOEIlQTQuKCVFQyU5RCVCNCVFQiU4QSU5NCUyMCVFQyU5NyVBRCVFQyVBMCU4NCVFRCU4QyU4QyUyMGRpZmZ1c2lvbiUyMCVFQSVCMyVCQyVFQyVBMCU5NSVFQyU5RSU4NSVFQiU4QiU4OCVFQiU4QiVBNC4pJTBBJTIwJTIwJTIwJTIwJTIzJTIwJUVBJUI4JUIwJUVCJUIzJUI4JTIwJUVEJThDJThDJUVDJTlEJUI0JUVEJTk0JTg0JUVCJTlEJUJDJUVDJTlEJUI4JTIwJUVDJUI2JTlDJUVCJUEwJUE1JTIwJUVEJTk4JTk1JUVEJTgzJTlDJUVCJThBJTk0JTIwJTYwTGlzdCU1QlBJTC5JbWFnZSU1RCU2MCUyMCVFQyU5RSU4NSVFQiU4QiU4OCVFQiU4QiVBNC4lMEElMjAlMjAlMjAlMjBpbWFnZXMlMjAlM0QlMjBwaXBlbGluZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBiYXRjaF9zaXplJTNEY29uZmlnLmV2YWxfYmF0Y2hfc2l6ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRHRvcmNoLm1hbnVhbF9zZWVkKGNvbmZpZy5zZWVkKSUyQyUwQSUyMCUyMCUyMCUyMCkuaW1hZ2VzJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwJUVDJTlEJUI0JUVCJUFGJUI4JUVDJUE3JTgwJUVCJTkzJUE0JUVDJTlEJTg0JTIwJUVBJUI3JUI4JUVCJUE2JUFDJUVCJTkzJTlDJUVCJUExJTlDJTIwJUVCJUE3JThDJUVCJTkzJUE0JUVDJTk2JUI0JUVDJUE0JThEJUVCJThCJTg4JUVCJThCJUE0LiUwQSUyMCUyMCUyMCUyMGltYWdlX2dyaWQlMjAlM0QlMjBtYWtlX2dyaWQoaW1hZ2VzJTJDJTIwcm93cyUzRDQlMkMlMjBjb2xzJTNENCklMEElMEElMjAlMjAlMjAlMjAlMjMlMjAlRUMlOUQlQjQlRUIlQUYlQjglRUMlQTclODAlRUIlOTMlQTQlRUMlOUQlODQlMjAlRUMlQTAlODAlRUMlOUUlQTUlRUQlOTUlQTklRUIlOEIlODglRUIlOEIlQTQuJTBBJTIwJTIwJTIwJTIwdGVzdF9kaXIlMjAlM0QlMjBvcy5wYXRoLmpvaW4oY29uZmlnLm91dHB1dF9kaXIlMkMlMjAlMjJzYW1wbGVzJTIyKSUwQSUyMCUyMCUyMCUyMG9zLm1ha2VkaXJzKHRlc3RfZGlyJTJDJTIwZXhpc3Rfb2slM0RUcnVlKSUwQSUyMCUyMCUyMCUyMGltYWdlX2dyaWQuc2F2ZShmJTIyJTdCdGVzdF9kaXIlN0QlMkYlN0JlcG9jaCUzQTA0ZCU3RC5wbmclMjIp",highlighted:`>>> from diffusers import DDPMPipeline
>>> import math
>>> import os
>>> def make_grid(images, rows, cols):
... w, h = images[0].size
... grid = Image.new("RGB", size=(cols * w, rows * h))
... for i, image in enumerate(images):
... grid.paste(image, box=(i % cols * w, i // cols * h))
... return grid
>>> def evaluate(config, epoch, pipeline):
...
...
... images = pipeline(
... batch_size=config.eval_batch_size,
... generator=torch.manual_seed(config.seed),
... ).images
...
... image_grid = make_grid(images, rows=4, cols=4)
...
... test_dir = os.path.join(config.output_dir, "samples")
... os.makedirs(test_dir, exist_ok=True)
... image_grid.save(f"{test_dir}/{epoch:04d}.png")`,wrap:!1}}),wl=new m({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjBodWdnaW5nZmFjZV9odWIlMjBpbXBvcnQlMjBjcmVhdGVfcmVwbyUyQyUyMHVwbG9hZF9mb2xkZXIlMEFmcm9tJTIwdHFkbS5hdXRvJTIwaW1wb3J0JTIwdHFkbSUwQWZyb20lMjBwYXRobGliJTIwaW1wb3J0JTIwUGF0aCUwQWltcG9ydCUyMG9zJTBBJTBBJTBBZGVmJTIwdHJhaW5fbG9vcChjb25maWclMkMlMjBtb2RlbCUyQyUyMG5vaXNlX3NjaGVkdWxlciUyQyUyMG9wdGltaXplciUyQyUyMHRyYWluX2RhdGFsb2FkZXIlMkMlMjBscl9zY2hlZHVsZXIpJTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwSW5pdGlhbGl6ZSUyMGFjY2VsZXJhdG9yJTIwYW5kJTIwdGVuc29yYm9hcmQlMjBsb2dnaW5nJTBBJTIwJTIwJTIwJTIwYWNjZWxlcmF0b3IlMjAlM0QlMjBBY2NlbGVyYXRvciglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtaXhlZF9wcmVjaXNpb24lM0Rjb25maWcubWl4ZWRfcHJlY2lzaW9uJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JhZGllbnRfYWNjdW11bGF0aW9uX3N0ZXBzJTNEY29uZmlnLmdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxvZ193aXRoJTNEJTIydGVuc29yYm9hcmQlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9qZWN0X2RpciUzRG9zLnBhdGguam9pbihjb25maWcub3V0cHV0X2RpciUyQyUyMCUyMmxvZ3MlMjIpJTJDJTBBJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMGlmJTIwYWNjZWxlcmF0b3IuaXNfbWFpbl9wcm9jZXNzJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBjb25maWcub3V0cHV0X2RpciUyMGlzJTIwbm90JTIwTm9uZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9zLm1ha2VkaXJzKGNvbmZpZy5vdXRwdXRfZGlyJTJDJTIwZXhpc3Rfb2slM0RUcnVlKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwY29uZmlnLnB1c2hfdG9faHViJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVwb19pZCUyMCUzRCUyMGNyZWF0ZV9yZXBvKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9faWQlM0Rjb25maWcuaHViX21vZGVsX2lkJTIwb3IlMjBQYXRoKGNvbmZpZy5vdXRwdXRfZGlyKS5uYW1lJTJDJTIwZXhpc3Rfb2slM0RUcnVlJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKS5yZXBvX2lkJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYWNjZWxlcmF0b3IuaW5pdF90cmFja2VycyglMjJ0cmFpbl9leGFtcGxlJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMCVFQiVBQSVBOCVFQiU5MyVBMCUyMCVFQSVCMiU4MyVFQyU5RCVCNCUyMCVFQyVBNCU4MCVFQiVCOSU4NCVFQiU5MCU5OCVFQyU5NyU4OCVFQyU4QSVCNSVFQiU4QiU4OCVFQiU4QiVBNC4lMEElMjAlMjAlMjAlMjAlMjMlMjAlRUElQjglQjAlRUMlOTYlQjUlRUQlOTUlQjQlRUMlOTUlQkMlMjAlRUQlOTUlQTAlMjAlRUQlOEElQjklRUMlQTAlOTUlRUQlOTUlOUMlMjAlRUMlODglOUMlRUMlODQlOUMlRUIlOEElOTQlMjAlRUMlOTclODYlRUMlOUMlQkMlRUIlQTklQjAlMjAlRUMlQTQlODAlRUIlQjklODQlRUQlOTUlOUMlMjAlRUIlQjAlQTklRUIlQjIlOTUlRUMlOTclOTAlMjAlRUMlQTAlOUMlRUElQjMlQjUlRUQlOTUlOUMlMjAlRUElQjIlODMlRUElQjMlQkMlMjAlRUIlOEYlOTklRUMlOUQlQkMlRUQlOTUlOUMlMjAlRUMlODglOUMlRUMlODQlOUMlRUIlQTElOUMlMjAlRUElQjAlOUQlRUMlQjIlQjQlRUMlOUQlOTglMjAlRUMlOTUlOTUlRUMlQjYlOTUlRUMlOUQlODQlMjAlRUQlOTIlODAlRUIlQTklQjQlMjAlRUIlOTAlQTklRUIlOEIlODglRUIlOEIlQTQuJTBBJTIwJTIwJTIwJTIwbW9kZWwlMkMlMjBvcHRpbWl6ZXIlMkMlMjB0cmFpbl9kYXRhbG9hZGVyJTJDJTIwbHJfc2NoZWR1bGVyJTIwJTNEJTIwYWNjZWxlcmF0b3IucHJlcGFyZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtb2RlbCUyQyUyMG9wdGltaXplciUyQyUyMHRyYWluX2RhdGFsb2FkZXIlMkMlMjBscl9zY2hlZHVsZXIlMEElMjAlMjAlMjAlMjApJTBBJTBBJTIwJTIwJTIwJTIwZ2xvYmFsX3N0ZXAlMjAlM0QlMjAwJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwJUVDJTlEJUI0JUVDJUEwJTlDJTIwJUVCJUFBJUE4JUVCJThEJUI4JUVDJTlEJTg0JTIwJUVEJTk1JTk5JUVDJThBJUI1JUVEJTk1JUE5JUVCJThCJTg4JUVCJThCJUE0LiUwQSUyMCUyMCUyMCUyMGZvciUyMGVwb2NoJTIwaW4lMjByYW5nZShjb25maWcubnVtX2Vwb2NocyklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIlMjAlM0QlMjB0cWRtKHRvdGFsJTNEbGVuKHRyYWluX2RhdGFsb2FkZXIpJTJDJTIwZGlzYWJsZSUzRG5vdCUyMGFjY2VsZXJhdG9yLmlzX2xvY2FsX21haW5fcHJvY2VzcyklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIuc2V0X2Rlc2NyaXB0aW9uKGYlMjJFcG9jaCUyMCU3QmVwb2NoJTdEJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZvciUyMHN0ZXAlMkMlMjBiYXRjaCUyMGluJTIwZW51bWVyYXRlKHRyYWluX2RhdGFsb2FkZXIpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2xlYW5faW1hZ2VzJTIwJTNEJTIwYmF0Y2glNUIlMjJpbWFnZXMlMjIlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAlRUMlOUQlQjQlRUIlQUYlQjglRUMlQTclODAlRUMlOTclOTAlMjAlRUIlOEQlOTQlRUQlOTUlQTAlMjAlRUIlODUlQjglRUMlOUQlQjQlRUMlQTYlODglRUIlQTUlQkMlMjAlRUMlODMlOTglRUQlOTQlOEMlRUIlQTclODElRUQlOTUlQTklRUIlOEIlODglRUIlOEIlQTQuJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm9pc2UlMjAlM0QlMjB0b3JjaC5yYW5kbihjbGVhbl9pbWFnZXMuc2hhcGUlMkMlMjBkZXZpY2UlM0RjbGVhbl9pbWFnZXMuZGV2aWNlKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJzJTIwJTNEJTIwY2xlYW5faW1hZ2VzLnNoYXBlJTVCMCU1RCUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVFQSVCMCU4MSUyMCVFQyU5RCVCNCVFQiVBRiVCOCVFQyVBNyU4MCVFQiVBNSVCQyUyMCVFQyU5QyU4NCVFRCU5NSU5QyUyMCVFQiU5RSU5QyVFQiU4RCVBNCVFRCU5NSU5QyUyMCVFRCU4MyU4MCVFQyU5RSU4NCVFQyU4QSVBNCVFRCU4NSU5RCh0aW1lc3RlcCklRUMlOUQlODQlMjAlRUMlODMlOTglRUQlOTQlOEMlRUIlQTclODElRUQlOTUlQTklRUIlOEIlODglRUIlOEIlQTQuJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGltZXN0ZXBzJTIwJTNEJTIwdG9yY2gucmFuZGludCglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAwJTJDJTIwbm9pc2Vfc2NoZWR1bGVyLmNvbmZpZy5udW1fdHJhaW5fdGltZXN0ZXBzJTJDJTIwKGJzJTJDKSUyQyUyMGRldmljZSUzRGNsZWFuX2ltYWdlcy5kZXZpY2UlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkdHlwZSUzRHRvcmNoLmludDY0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVFQSVCMCU4MSUyMCVFRCU4MyU4MCVFQyU5RSU4NCVFQyU4QSVBNCVFRCU4NSU5RCVFQyU5RCU5OCUyMCVFQiU4NSVCOCVFQyU5RCVCNCVFQyVBNiU4OCUyMCVFRCU4MSVBQyVFQSVCOCVCMCVFQyU5NyU5MCUyMCVFQiU5NCVCMCVFQiU5RCVCQyUyMCVFQSVCOSVBOCVFQiU4MSU5NyVFRCU5NSU5QyUyMCVFQyU5RCVCNCVFQiVBRiVCOCVFQyVBNyU4MCVFQyU5NyU5MCUyMCVFQiU4NSVCOCVFQyU5RCVCNCVFQyVBNiU4OCVFQiVBNSVCQyUyMCVFQyVCNiU5NCVFQSVCMCU4MCVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNC4lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAoJUVDJTlEJUI0JUVCJThBJTk0JTIwZm93YXJkJTIwZGlmZnVzaW9uJTIwJUVBJUIzJUJDJUVDJUEwJTk1JUVDJTlFJTg1JUVCJThCJTg4JUVCJThCJUE0LiklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBub2lzeV9pbWFnZXMlMjAlM0QlMjBub2lzZV9zY2hlZHVsZXIuYWRkX25vaXNlKGNsZWFuX2ltYWdlcyUyQyUyMG5vaXNlJTJDJTIwdGltZXN0ZXBzKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdpdGglMjBhY2NlbGVyYXRvci5hY2N1bXVsYXRlKG1vZGVsKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVFQiU4NSVCOCVFQyU5RCVCNCVFQyVBNiU4OCVFQiVBNSVCQyUyMCVFQiVCMCU5OCVFQiVCMyVCNSVFQyVBMCU4MSVFQyU5QyVCQyVFQiVBMSU5QyUyMCVFQyU5OCU4OCVFQyVCOCVBMSVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNC4lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBub2lzZV9wcmVkJTIwJTNEJTIwbW9kZWwobm9pc3lfaW1hZ2VzJTJDJTIwdGltZXN0ZXBzJTJDJTIwcmV0dXJuX2RpY3QlM0RGYWxzZSklNUIwJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9zcyUyMCUzRCUyMEYubXNlX2xvc3Mobm9pc2VfcHJlZCUyQyUyMG5vaXNlKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY2VsZXJhdG9yLmJhY2t3YXJkKGxvc3MpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYWNjZWxlcmF0b3IuY2xpcF9ncmFkX25vcm1fKG1vZGVsLnBhcmFtZXRlcnMoKSUyQyUyMDEuMCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuc3RlcCgpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbHJfc2NoZWR1bGVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9wdGltaXplci56ZXJvX2dyYWQoKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByb2dyZXNzX2Jhci51cGRhdGUoMSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb2dzJTIwJTNEJTIwJTdCJTIybG9zcyUyMiUzQSUyMGxvc3MuZGV0YWNoKCkuaXRlbSgpJTJDJTIwJTIybHIlMjIlM0ElMjBscl9zY2hlZHVsZXIuZ2V0X2xhc3RfbHIoKSU1QjAlNUQlMkMlMjAlMjJzdGVwJTIyJTNBJTIwZ2xvYmFsX3N0ZXAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIuc2V0X3Bvc3RmaXgoKipsb2dzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY2VsZXJhdG9yLmxvZyhsb2dzJTJDJTIwc3RlcCUzRGdsb2JhbF9zdGVwKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGdsb2JhbF9zdGVwJTIwJTJCJTNEJTIwMSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVFQSVCMCU4MSUyMCVFQyU5NyU5MCVFRCU4RiVBQyVFRCU4MSVBQyVFQSVCMCU4MCUyMCVFQiU4MSU5RCVFQiU4MiU5QyUyMCVFRCU5QiU4NCUyMGV2YWx1YXRlKCklRUMlOTklODAlMjAlRUIlQUElODclMjAlRUElQjAlODAlRUMlQTclODAlMjAlRUIlOEQlQjAlRUIlQUElQTglMjAlRUMlOUQlQjQlRUIlQUYlQjglRUMlQTclODAlRUIlQTUlQkMlMjAlRUMlODQlQTAlRUQlODMlOUQlRUMlQTAlODElRUMlOUMlQkMlRUIlQTElOUMlMjAlRUMlODMlOTglRUQlOTQlOEMlRUIlQTclODElRUQlOTUlOTglRUElQjMlQTAlMjAlRUIlQUElQTglRUIlOEQlQjglRUMlOUQlODQlMjAlRUMlQTAlODAlRUMlOUUlQTUlRUQlOTUlQTklRUIlOEIlODglRUIlOEIlQTQuJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBhY2NlbGVyYXRvci5pc19tYWluX3Byb2Nlc3MlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwaXBlbGluZSUyMCUzRCUyMEREUE1QaXBlbGluZSh1bmV0JTNEYWNjZWxlcmF0b3IudW53cmFwX21vZGVsKG1vZGVsKSUyQyUyMHNjaGVkdWxlciUzRG5vaXNlX3NjaGVkdWxlciklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMChlcG9jaCUyMCUyQiUyMDEpJTIwJTI1JTIwY29uZmlnLnNhdmVfaW1hZ2VfZXBvY2hzJTIwJTNEJTNEJTIwMCUyMG9yJTIwZXBvY2glMjAlM0QlM0QlMjBjb25maWcubnVtX2Vwb2NocyUyMC0lMjAxJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZXZhbHVhdGUoY29uZmlnJTJDJTIwZXBvY2glMkMlMjBwaXBlbGluZSklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMChlcG9jaCUyMCUyQiUyMDEpJTIwJTI1JTIwY29uZmlnLnNhdmVfbW9kZWxfZXBvY2hzJTIwJTNEJTNEJTIwMCUyMG9yJTIwZXBvY2glMjAlM0QlM0QlMjBjb25maWcubnVtX2Vwb2NocyUyMC0lMjAxJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBjb25maWcucHVzaF90b19odWIlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB1cGxvYWRfZm9sZGVyKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9faWQlM0RyZXBvX2lkJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZm9sZGVyX3BhdGglM0Rjb25maWcub3V0cHV0X2RpciUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNvbW1pdF9tZXNzYWdlJTNEZiUyMkVwb2NoJTIwJTdCZXBvY2glN0QlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZ25vcmVfcGF0dGVybnMlM0QlNUIlMjJzdGVwXyolMjIlMkMlMjAlMjJlcG9jaF8qJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGVsc2UlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwaXBlbGluZS5zYXZlX3ByZXRyYWluZWQoY29uZmlnLm91dHB1dF9kaXIp",highlighted:`>>> from accelerate import Accelerator
>>> from huggingface_hub import create_repo, upload_folder
>>> from tqdm.auto import tqdm
>>> from pathlib import Path
>>> import os
>>> def train_loop(config, model, noise_scheduler, optimizer, train_dataloader, lr_scheduler):
...
... accelerator = Accelerator(
... mixed_precision=config.mixed_precision,
... gradient_accumulation_steps=config.gradient_accumulation_steps,
... log_with="tensorboard",
... project_dir=os.path.join(config.output_dir, "logs"),
... )
... if accelerator.is_main_process:
... if config.output_dir is not None:
... os.makedirs(config.output_dir, exist_ok=True)
... if config.push_to_hub:
... repo_id = create_repo(
... repo_id=config.hub_model_id or Path(config.output_dir).name, exist_ok=True
... ).repo_id
... accelerator.init_trackers("train_example")
...
...
... model, optimizer, train_dataloader, lr_scheduler = accelerator.prepare(
... model, optimizer, train_dataloader, lr_scheduler
... )
... global_step = 0
...
... for epoch in range(config.num_epochs):
... progress_bar = tqdm(total=len(train_dataloader), disable=not accelerator.is_local_main_process)
... progress_bar.set_description(f"Epoch {epoch}")
... for step, batch in enumerate(train_dataloader):
... clean_images = batch["images"]
...
... noise = torch.randn(clean_images.shape, device=clean_images.device)
... bs = clean_images.shape[0]
...
... timesteps = torch.randint(
... 0, noise_scheduler.config.num_train_timesteps, (bs,), device=clean_images.device,
... dtype=torch.int64
... )
...
...
... noisy_images = noise_scheduler.add_noise(clean_images, noise, timesteps)
... with accelerator.accumulate(model):
...
... noise_pred = model(noisy_images, timesteps, return_dict=False)[0]
... loss = F.mse_loss(noise_pred, noise)
... accelerator.backward(loss)
... accelerator.clip_grad_norm_(model.parameters(), 1.0)
... optimizer.step()
... lr_scheduler.step()
... optimizer.zero_grad()
... progress_bar.update(1)
... logs = {"loss": loss.detach().item(), "lr": lr_scheduler.get_last_lr()[0], "step": global_step}
... progress_bar.set_postfix(**logs)
... accelerator.log(logs, step=global_step)
... global_step += 1
...
... if accelerator.is_main_process:
... pipeline = DDPMPipeline(unet=accelerator.unwrap_model(model), scheduler=noise_scheduler)
... if (epoch + 1) % config.save_image_epochs == 0 or epoch == config.num_epochs - 1:
... evaluate(config, epoch, pipeline)
... if (epoch + 1) % config.save_model_epochs == 0 or epoch == config.num_epochs - 1:
... if config.push_to_hub:
... upload_folder(
... repo_id=repo_id,
... folder_path=config.output_dir,
... commit_message=f"Epoch {epoch}",
... ignore_patterns=["step_*", "epoch_*"],
... )
... else:
... pipeline.save_pretrained(config.output_dir)`,wrap:!1}}),ol=new m({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBub3RlYm9va19sYXVuY2hlciUwQSUwQWFyZ3MlMjAlM0QlMjAoY29uZmlnJTJDJTIwbW9kZWwlMkMlMjBub2lzZV9zY2hlZHVsZXIlMkMlMjBvcHRpbWl6ZXIlMkMlMjB0cmFpbl9kYXRhbG9hZGVyJTJDJTIwbHJfc2NoZWR1bGVyKSUwQSUwQW5vdGVib29rX2xhdW5jaGVyKHRyYWluX2xvb3AlMkMlMjBhcmdzJTJDJTIwbnVtX3Byb2Nlc3NlcyUzRDEp",highlighted:`>>> from accelerate import notebook_launcher
>>> args = (config, model, noise_scheduler, optimizer, train_dataloader, lr_scheduler)
>>> notebook_launcher(train_loop, args, num_processes=1)`,wrap:!1}}),Il=new m({props:{code:"aW1wb3J0JTIwZ2xvYiUwQSUwQXNhbXBsZV9pbWFnZXMlMjAlM0QlMjBzb3J0ZWQoZ2xvYi5nbG9iKGYlMjIlN0Jjb25maWcub3V0cHV0X2RpciU3RCUyRnNhbXBsZXMlMkYqLnBuZyUyMikpJTBBSW1hZ2Uub3BlbihzYW1wbGVfaW1hZ2VzJTVCLTElNUQp",highlighted:`>>> import glob
>>> sample_images = sorted(glob.glob(f"{config.output_dir}/samples/*.png"))
>>> Image.open(sample_images[-1])`,wrap:!1}}),Ql=new bl({props:{title:"๋ค์ ๋จ๊ณ",local:"๋ค์-๋จ๊ณ",headingTag:"h2"}}),Vl=new Aa({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/tutorials/basic_training.md"}}),{c(){w=n("meta"),h=M(),C=n("p"),dl=M(),J(I.$$.fragment),Rl=M(),J(r.$$.fragment),Bl=M(),Q=n("p"),Q.innerHTML=Ns,Zl=M(),g=n("p"),g.innerHTML=_s,kl=M(),J(o.$$.fragment),Gl=M(),u=n("p"),u.innerHTML=Ws,El=M(),J(V.$$.fragment),Fl=M(),b=n("p"),b.innerHTML=Os,Xl=M(),J(d.$$.fragment),Nl=M(),A=n("p"),A.textContent=Ss,_l=M(),J(f.$$.fragment),Wl=M(),R=n("p"),R.innerHTML=Ds,Ol=M(),J(B.$$.fragment),Sl=M(),J(Z.$$.fragment),Dl=M(),k=n("p"),k.innerHTML=Ys,Yl=M(),J(G.$$.fragment),zl=M(),J(E.$$.fragment),$l=M(),F=n("p"),F.innerHTML=zs,vl=M(),J(X.$$.fragment),xl=M(),N=n("p"),N.innerHTML=$s,Hl=M(),_=n("p"),_.innerHTML=vs,Ll=M(),J(W.$$.fragment),ql=M(),O=n("p"),O.innerHTML=xs,Kl=M(),S=n("p"),S.textContent=Hs,Pl=M(),D=n("ul"),D.innerHTML=Ls,ls=M(),J(Y.$$.fragment),ss=M(),z=n("p"),z.innerHTML=qs,as=M(),J($.$$.fragment),es=M(),v=n("p"),v.innerHTML=Ks,Ms=M(),J(x.$$.fragment),ts=M(),J(H.$$.fragment),ns=M(),L=n("p"),L.innerHTML=Ps,Us=M(),J(q.$$.fragment),ps=M(),K=n("p"),K.textContent=la,Js=M(),J(P.$$.fragment),js=M(),ll=n("p"),ll.textContent=sa,ys=M(),J(sl.$$.fragment),Ts=M(),al=n("p"),al.innerHTML=aa,cs=M(),el=n("p"),el.innerHTML=ea,is=M(),J(Ml.$$.fragment),ms=M(),tl=n("p"),tl.innerHTML=Ma,ws=M(),nl=n("p"),nl.textContent=ta,Cs=M(),J(Ul.$$.fragment),os=M(),J(pl.$$.fragment),hs=M(),Jl=n("p"),Jl.textContent=na,Is=M(),jl=n("p"),jl.textContent=Ua,rs=M(),J(yl.$$.fragment),Qs=M(),Tl=n("p"),Tl.innerHTML=pa,gs=M(),J(cl.$$.fragment),us=M(),il=n("p"),il.textContent=Ja,Vs=M(),ml=n("p"),ml.textContent=ja,bs=M(),J(wl.$$.fragment),ds=M(),Cl=n("p"),Cl.innerHTML=ya,As=M(),J(ol.$$.fragment),fs=M(),hl=n("p"),hl.textContent=Ta,Rs=M(),J(Il.$$.fragment),Bs=M(),rl=n("p"),rl.innerHTML=ca,Zs=M(),J(Ql.$$.fragment),ks=M(),gl=n("p"),gl.innerHTML=ia,Gs=M(),ul=n("ul"),ul.innerHTML=ma,Es=M(),J(Vl.$$.fragment),Fs=M(),Al=n("p"),this.h()},l(l){const s=ua("svelte-u9bgzb",document.head);w=U(s,"META",{name:!0,content:!0}),s.forEach(a),h=t(l),C=U(l,"P",{}),Ca(C).forEach(a),dl=t(l),j(I.$$.fragment,l),Rl=t(l),j(r.$$.fragment,l),Bl=t(l),Q=U(l,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-1aqgth7"&&(Q.innerHTML=Ns),Zl=t(l),g=U(l,"P",{"data-svelte-h":!0}),p(g)!=="svelte-32ojwt"&&(g.innerHTML=_s),kl=t(l),j(o.$$.fragment,l),Gl=t(l),u=U(l,"P",{"data-svelte-h":!0}),p(u)!=="svelte-1o0c2y8"&&(u.innerHTML=Ws),El=t(l),j(V.$$.fragment,l),Fl=t(l),b=U(l,"P",{"data-svelte-h":!0}),p(b)!=="svelte-1owzlqj"&&(b.innerHTML=Os),Xl=t(l),j(d.$$.fragment,l),Nl=t(l),A=U(l,"P",{"data-svelte-h":!0}),p(A)!=="svelte-10ayust"&&(A.textContent=Ss),_l=t(l),j(f.$$.fragment,l),Wl=t(l),R=U(l,"P",{"data-svelte-h":!0}),p(R)!=="svelte-1w5k095"&&(R.innerHTML=Ds),Ol=t(l),j(B.$$.fragment,l),Sl=t(l),j(Z.$$.fragment,l),Dl=t(l),k=U(l,"P",{"data-svelte-h":!0}),p(k)!=="svelte-1rpvlkg"&&(k.innerHTML=Ys),Yl=t(l),j(G.$$.fragment,l),zl=t(l),j(E.$$.fragment,l),$l=t(l),F=U(l,"P",{"data-svelte-h":!0}),p(F)!=="svelte-1our457"&&(F.innerHTML=zs),vl=t(l),j(X.$$.fragment,l),xl=t(l),N=U(l,"P",{"data-svelte-h":!0}),p(N)!=="svelte-1hi7huh"&&(N.innerHTML=$s),Hl=t(l),_=U(l,"P",{"data-svelte-h":!0}),p(_)!=="svelte-g2btn3"&&(_.innerHTML=vs),Ll=t(l),j(W.$$.fragment,l),ql=t(l),O=U(l,"P",{"data-svelte-h":!0}),p(O)!=="svelte-12z3lda"&&(O.innerHTML=xs),Kl=t(l),S=U(l,"P",{"data-svelte-h":!0}),p(S)!=="svelte-2vcep9"&&(S.textContent=Hs),Pl=t(l),D=U(l,"UL",{"data-svelte-h":!0}),p(D)!=="svelte-lrd3tn"&&(D.innerHTML=Ls),ls=t(l),j(Y.$$.fragment,l),ss=t(l),z=U(l,"P",{"data-svelte-h":!0}),p(z)!=="svelte-mhh25q"&&(z.innerHTML=qs),as=t(l),j($.$$.fragment,l),es=t(l),v=U(l,"P",{"data-svelte-h":!0}),p(v)!=="svelte-jbxdac"&&(v.innerHTML=Ks),Ms=t(l),j(x.$$.fragment,l),ts=t(l),j(H.$$.fragment,l),ns=t(l),L=U(l,"P",{"data-svelte-h":!0}),p(L)!=="svelte-ywj4cf"&&(L.innerHTML=Ps),Us=t(l),j(q.$$.fragment,l),ps=t(l),K=U(l,"P",{"data-svelte-h":!0}),p(K)!=="svelte-1x8klru"&&(K.textContent=la),Js=t(l),j(P.$$.fragment,l),js=t(l),ll=U(l,"P",{"data-svelte-h":!0}),p(ll)!=="svelte-hu0j5c"&&(ll.textContent=sa),ys=t(l),j(sl.$$.fragment,l),Ts=t(l),al=U(l,"P",{"data-svelte-h":!0}),p(al)!=="svelte-1ickp2n"&&(al.innerHTML=aa),cs=t(l),el=U(l,"P",{"data-svelte-h":!0}),p(el)!=="svelte-boidtv"&&(el.innerHTML=ea),is=t(l),j(Ml.$$.fragment,l),ms=t(l),tl=U(l,"P",{"data-svelte-h":!0}),p(tl)!=="svelte-3yki19"&&(tl.innerHTML=Ma),ws=t(l),nl=U(l,"P",{"data-svelte-h":!0}),p(nl)!=="svelte-1oo0f0r"&&(nl.textContent=ta),Cs=t(l),j(Ul.$$.fragment,l),os=t(l),j(pl.$$.fragment,l),hs=t(l),Jl=U(l,"P",{"data-svelte-h":!0}),p(Jl)!=="svelte-1syjdvo"&&(Jl.textContent=na),Is=t(l),jl=U(l,"P",{"data-svelte-h":!0}),p(jl)!=="svelte-1x5az67"&&(jl.textContent=Ua),rs=t(l),j(yl.$$.fragment,l),Qs=t(l),Tl=U(l,"P",{"data-svelte-h":!0}),p(Tl)!=="svelte-baczkn"&&(Tl.innerHTML=pa),gs=t(l),j(cl.$$.fragment,l),us=t(l),il=U(l,"P",{"data-svelte-h":!0}),p(il)!=="svelte-14zfk37"&&(il.textContent=Ja),Vs=t(l),ml=U(l,"P",{"data-svelte-h":!0}),p(ml)!=="svelte-u719rq"&&(ml.textContent=ja),bs=t(l),j(wl.$$.fragment,l),ds=t(l),Cl=U(l,"P",{"data-svelte-h":!0}),p(Cl)!=="svelte-zyu14c"&&(Cl.innerHTML=ya),As=t(l),j(ol.$$.fragment,l),fs=t(l),hl=U(l,"P",{"data-svelte-h":!0}),p(hl)!=="svelte-1dbylv7"&&(hl.textContent=Ta),Rs=t(l),j(Il.$$.fragment,l),Bs=t(l),rl=U(l,"P",{"data-svelte-h":!0}),p(rl)!=="svelte-1bzvmcv"&&(rl.innerHTML=ca),Zs=t(l),j(Ql.$$.fragment,l),ks=t(l),gl=U(l,"P",{"data-svelte-h":!0}),p(gl)!=="svelte-1mf9wqw"&&(gl.innerHTML=ia),Gs=t(l),ul=U(l,"UL",{"data-svelte-h":!0}),p(ul)!=="svelte-y5d1yz"&&(ul.innerHTML=ma),Es=t(l),j(Vl.$$.fragment,l),Fs=t(l),Al=U(l,"P",{}),Ca(Al).forEach(a),this.h()},h(){oa(w,"name","hf:doc:metadata"),oa(w,"content",Ba)},m(l,s){Va(document.head,w),e(l,h,s),e(l,C,s),e(l,dl,s),y(I,l,s),e(l,Rl,s),y(r,l,s),e(l,Bl,s),e(l,Q,s),e(l,Zl,s),e(l,g,s),e(l,kl,s),y(o,l,s),e(l,Gl,s),e(l,u,s),e(l,El,s),y(V,l,s),e(l,Fl,s),e(l,b,s),e(l,Xl,s),y(d,l,s),e(l,Nl,s),e(l,A,s),e(l,_l,s),y(f,l,s),e(l,Wl,s),e(l,R,s),e(l,Ol,s),y(B,l,s),e(l,Sl,s),y(Z,l,s),e(l,Dl,s),e(l,k,s),e(l,Yl,s),y(G,l,s),e(l,zl,s),y(E,l,s),e(l,$l,s),e(l,F,s),e(l,vl,s),y(X,l,s),e(l,xl,s),e(l,N,s),e(l,Hl,s),e(l,_,s),e(l,Ll,s),y(W,l,s),e(l,ql,s),e(l,O,s),e(l,Kl,s),e(l,S,s),e(l,Pl,s),e(l,D,s),e(l,ls,s),y(Y,l,s),e(l,ss,s),e(l,z,s),e(l,as,s),y($,l,s),e(l,es,s),e(l,v,s),e(l,Ms,s),y(x,l,s),e(l,ts,s),y(H,l,s),e(l,ns,s),e(l,L,s),e(l,Us,s),y(q,l,s),e(l,ps,s),e(l,K,s),e(l,Js,s),y(P,l,s),e(l,js,s),e(l,ll,s),e(l,ys,s),y(sl,l,s),e(l,Ts,s),e(l,al,s),e(l,cs,s),e(l,el,s),e(l,is,s),y(Ml,l,s),e(l,ms,s),e(l,tl,s),e(l,ws,s),e(l,nl,s),e(l,Cs,s),y(Ul,l,s),e(l,os,s),y(pl,l,s),e(l,hs,s),e(l,Jl,s),e(l,Is,s),e(l,jl,s),e(l,rs,s),y(yl,l,s),e(l,Qs,s),e(l,Tl,s),e(l,gs,s),y(cl,l,s),e(l,us,s),e(l,il,s),e(l,Vs,s),e(l,ml,s),e(l,bs,s),y(wl,l,s),e(l,ds,s),e(l,Cl,s),e(l,As,s),y(ol,l,s),e(l,fs,s),e(l,hl,s),e(l,Rs,s),y(Il,l,s),e(l,Bs,s),e(l,rl,s),e(l,Zs,s),y(Ql,l,s),e(l,ks,s),e(l,gl,s),e(l,Gs,s),e(l,ul,s),e(l,Es,s),y(Vl,l,s),e(l,Fs,s),e(l,Al,s),Xs=!0},p(l,[s]){const wa={};s&2&&(wa.$$scope={dirty:s,ctx:l}),o.$set(wa)},i(l){Xs||(T(I.$$.fragment,l),T(r.$$.fragment,l),T(o.$$.fragment,l),T(V.$$.fragment,l),T(d.$$.fragment,l),T(f.$$.fragment,l),T(B.$$.fragment,l),T(Z.$$.fragment,l),T(G.$$.fragment,l),T(E.$$.fragment,l),T(X.$$.fragment,l),T(W.$$.fragment,l),T(Y.$$.fragment,l),T($.$$.fragment,l),T(x.$$.fragment,l),T(H.$$.fragment,l),T(q.$$.fragment,l),T(P.$$.fragment,l),T(sl.$$.fragment,l),T(Ml.$$.fragment,l),T(Ul.$$.fragment,l),T(pl.$$.fragment,l),T(yl.$$.fragment,l),T(cl.$$.fragment,l),T(wl.$$.fragment,l),T(ol.$$.fragment,l),T(Il.$$.fragment,l),T(Ql.$$.fragment,l),T(Vl.$$.fragment,l),Xs=!0)},o(l){c(I.$$.fragment,l),c(r.$$.fragment,l),c(o.$$.fragment,l),c(V.$$.fragment,l),c(d.$$.fragment,l),c(f.$$.fragment,l),c(B.$$.fragment,l),c(Z.$$.fragment,l),c(G.$$.fragment,l),c(E.$$.fragment,l),c(X.$$.fragment,l),c(W.$$.fragment,l),c(Y.$$.fragment,l),c($.$$.fragment,l),c(x.$$.fragment,l),c(H.$$.fragment,l),c(q.$$.fragment,l),c(P.$$.fragment,l),c(sl.$$.fragment,l),c(Ml.$$.fragment,l),c(Ul.$$.fragment,l),c(pl.$$.fragment,l),c(yl.$$.fragment,l),c(cl.$$.fragment,l),c(wl.$$.fragment,l),c(ol.$$.fragment,l),c(Il.$$.fragment,l),c(Ql.$$.fragment,l),c(Vl.$$.fragment,l),Xs=!1},d(l){l&&(a(h),a(C),a(dl),a(Rl),a(Bl),a(Q),a(Zl),a(g),a(kl),a(Gl),a(u),a(El),a(Fl),a(b),a(Xl),a(Nl),a(A),a(_l),a(Wl),a(R),a(Ol),a(Sl),a(Dl),a(k),a(Yl),a(zl),a($l),a(F),a(vl),a(xl),a(N),a(Hl),a(_),a(Ll),a(ql),a(O),a(Kl),a(S),a(Pl),a(D),a(ls),a(ss),a(z),a(as),a(es),a(v),a(Ms),a(ts),a(ns),a(L),a(Us),a(ps),a(K),a(Js),a(js),a(ll),a(ys),a(Ts),a(al),a(cs),a(el),a(is),a(ms),a(tl),a(ws),a(nl),a(Cs),a(os),a(hs),a(Jl),a(Is),a(jl),a(rs),a(Qs),a(Tl),a(gs),a(us),a(il),a(Vs),a(ml),a(bs),a(ds),a(Cl),a(As),a(fs),a(hl),a(Rs),a(Bs),a(rl),a(Zs),a(ks),a(gl),a(Gs),a(ul),a(Es),a(Fs),a(Al)),a(w),i(I,l),i(r,l),i(o,l),i(V,l),i(d,l),i(f,l),i(B,l),i(Z,l),i(G,l),i(E,l),i(X,l),i(W,l),i(Y,l),i($,l),i(x,l),i(H,l),i(q,l),i(P,l),i(sl,l),i(Ml,l),i(Ul,l),i(pl,l),i(yl,l),i(cl,l),i(wl,l),i(ol,l),i(Il,l),i(Ql,l),i(Vl,l)}}}const Ba='{"title":"Diffusion ๋ชจ๋ธ์ ํ์ตํ๊ธฐ","local":"diffusion-๋ชจ๋ธ์-ํ์ตํ๊ธฐ","sections":[{"title":"ํ์ต ๊ตฌ์ฑ","local":"ํ์ต-๊ตฌ์ฑ","sections":[],"depth":2},{"title":"๋ฐ์ดํฐ์
๋ถ๋ฌ์ค๊ธฐ","local":"๋ฐ์ดํฐ์
-๋ถ๋ฌ์ค๊ธฐ","sections":[],"depth":2},{"title":"UNet2DModel ์์ฑํ๊ธฐ","local":"unet2dmodel-์์ฑํ๊ธฐ","sections":[],"depth":2},{"title":"์ค์ผ์ค๋ฌ ์์ฑํ๊ธฐ","local":"์ค์ผ์ค๋ฌ-์์ฑํ๊ธฐ","sections":[],"depth":2},{"title":"๋ชจ๋ธ ํ์ตํ๊ธฐ","local":"๋ชจ๋ธ-ํ์ตํ๊ธฐ","sections":[],"depth":2},{"title":"๋ค์ ๋จ๊ณ","local":"๋ค์-๋จ๊ณ","sections":[],"depth":2}],"depth":1}';function Za(fl){return Ia(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class _a extends Qa{constructor(w){super(),ga(this,w,Za,Ra,ha,{})}}export{_a as component};