Buckets:

rtrm's picture
download
raw
35.8 kB
import{s as Xt,n as Ht,o as Ft}from"../chunks/scheduler.6e0d5ff7.js";import{S as Qt,i as Yt,g as n,s as a,r as m,E as Vt,h as i,f as t,c as p,j as Gt,u as M,x as r,k as Wt,y as zt,a as s,v as f,d as o,t as y,w}from"../chunks/index.d7c1b260.js";import{C as b}from"../chunks/CodeBlock.09a08494.js";import{D as Rt}from"../chunks/DocNotebookDropdown.b1b23d60.js";import{H as u}from"../chunks/Heading.30a009b0.js";function St(Ol){let J,We,Ze,Xe,j,He,c,Fe,T,et='๐Ÿค— Hugging Face [Diffusers] (<a href="https://github.com/huggingface/diffusers" rel="nofollow">https://github.com/huggingface/diffusers</a>) ๋Š” ๋ฒ„์ „ 0.5.1๋ถ€ํ„ฐ Flax๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฅผ ํ†ตํ•ด Colab, Kaggle, Google Cloud Platform์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Google TPU์—์„œ ์ดˆ๊ณ ์† ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.',Qe,d,lt='์ด ๋…ธํŠธ๋ถ์€ JAX / Flax๋ฅผ ์‚ฌ์šฉํ•ด ์ถ”๋ก ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Stable Diffusion์˜ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์›ํ•˜๊ฑฐ๋‚˜ GPU์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ด [๋…ธํŠธ๋ถ] ](<a href="https://huggingface.co/docs/diffusers/stable_diffusion)%EC%9D%84" rel="nofollow">https://huggingface.co/docs/diffusers/stable_diffusion)์„</a> ์ฐธ์กฐํ•˜์„ธ์š”.',Ye,$,tt="๋จผ์ €, TPU ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Colab์—์„œ ์ด ๋…ธํŠธ๋ถ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฉ”๋‰ด์—์„œ ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•œ ๋‹ค์Œ โ€œ๋Ÿฐํƒ€์ž„ ์œ ํ˜• ๋ณ€๊ฒฝโ€ ์˜ต์…˜์„ ์„ ํƒํ•œ ๋‹ค์Œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๊ธฐ ์„ค์ •์—์„œ TPU๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.",Ve,h,st="JAX๋Š” TPU ์ „์šฉ์€ ์•„๋‹ˆ์ง€๋งŒ ๊ฐ TPU ์„œ๋ฒ„์—๋Š” 8๊ฐœ์˜ TPU ๊ฐ€์†๊ธฐ๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํ•˜๋“œ์›จ์–ด์—์„œ ๋” ๋น›์„ ๋ฐœํ•œ๋‹ค๋Š” ์ ์€ ์•Œ์•„๋‘์„ธ์š”.",ze,U,Re,g,at="๋จผ์ € diffusers๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.",Se,B,Ae,C,Ne,I,Le,k,Pe,_,pt="๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  dependencies๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.",Ee,x,qe,v,De,Z,nt="TPU ์žฅ์น˜๋Š” ํšจ์œจ์ ์ธ half-float ์œ ํ˜•์ธ bfloat16์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์—๋Š” ์ด ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋Œ€์‹  float32๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ์ •๋ฐ€๋„(full precision)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.",Ke,G,Oe,W,it="Flax๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฏ€๋กœ ๋ชจ๋ธ์€ ๋ฌด์ƒํƒœ(stateless)ํ˜•์ด๋ฉฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ชจ๋ธ ์™ธ๋ถ€์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „ํ•™์Šต๋œ Flax ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ํŒŒ์ดํ”„๋ผ์ธ ์ž์ฒด์™€ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜(๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜)๊ฐ€ ๋ชจ๋‘ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ €ํฌ๋Š” bf16 ๋ฒ„์ „์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์œ ํ˜• ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.",el,X,ll,H,tl,F,mt="TPU์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 8๊ฐœ์˜ ๋””๋ฐ”์ด์Šค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋ณด์œ ํ•œ ๋””๋ฐ”์ด์Šค ์ˆ˜๋งŒํผ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” 8๊ฐœ์˜ ๋””๋ฐ”์ด์Šค์—์„œ ํ•œ ๋ฒˆ์— ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์นฉ์ด ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ๋™์ผํ•œ ์‹œ๊ฐ„์— 8๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",sl,Q,Mt="ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ณต์ œํ•˜๊ณ  ๋‚˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์˜ <code>prepare_inputs</code> ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ† ํฐํ™”๋œ ํ…์ŠคํŠธ ID๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ํ† ํฐํ™”๋œ ํ…์ŠคํŠธ์˜ ๊ธธ์ด๋Š” ๊ธฐ๋ณธ CLIP ํ…์ŠคํŠธ ๋ชจ๋ธ์˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ 77ํ† ํฐ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.",al,Y,pl,V,nl,z,il,R,ft="๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ž…๋ ฅ๊ฐ’์€ ์šฐ๋ฆฌ๊ฐ€ ๋ณด์œ ํ•œ 8๊ฐœ์˜ ๋ณ‘๋ ฌ ์žฅ์น˜์— ๋ณต์‚ฌ(Replication)๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋”•์…”๋„ˆ๋ฆฌ๋Š” <code>flax.jax_utils.replicate</code>(๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ€์ค‘์น˜์˜ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•˜์—ฌ 8๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ํ•จ์ˆ˜)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ <code>shard</code>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ฉ๋‹ˆ๋‹ค.",ml,S,Ml,A,fl,N,ol,L,ot="์ด shape์€ 8๊ฐœ์˜ ๋””๋ฐ”์ด์Šค ๊ฐ๊ฐ์ด shape <code>(1, 77)</code>์˜ jnp ๋ฐฐ์—ด์„ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฆ‰ 1์€ ๋””๋ฐ”์ด์Šค๋‹น batch(๋ฐฐ์น˜) ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•œ TPU์—์„œ๋Š” ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€(์นฉ๋‹น)๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ 1๋ณด๋‹ค ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",yl,P,yt="์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ค€๋น„๊ฐ€ ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์ด์ œ ์ƒ์„ฑ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋งŒ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚œ์ˆ˜๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์— ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š”, ๋‚œ์ˆ˜์— ๋Œ€ํ•ด ๋งค์šฐ ์ง„์ง€ํ•˜๊ณ  ๋…๋‹จ์ ์ธ Flax์˜ ํ‘œ์ค€ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ถ„์‚ฐ๋œ ๊ธฐ๊ธฐ์—์„œ ํ›ˆ๋ จํ•  ๋•Œ์—๋„ ์žฌํ˜„์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.",wl,E,wt="์•„๋ž˜ ํ—ฌํผ ํ•จ์ˆ˜๋Š” ์‹œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์‹œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•œ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋…ธํŠธ๋ถ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ์—” ๋‹ค๋ฅธ ์‹œ๋“œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜์„ธ์š”.",rl,q,bl,D,rt="rng๋ฅผ ์–ป์€ ๋‹ค์Œ 8๋ฒˆ โ€˜๋ถ„ํ• โ€™ํ•˜์—ฌ ๊ฐ ๋””๋ฐ”์ด์Šค๊ฐ€ ๋‹ค๋ฅธ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ๋””๋ฐ”์ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",Jl,K,ul,O,bt="JAX ์ฝ”๋“œ๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ํšจ์œจ์ ์ธ ํ‘œํ˜„์œผ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ›„์† ํ˜ธ์ถœ์—์„œ ๋ชจ๋“  ์ž…๋ ฅ์ด ๋™์ผํ•œ ๋ชจ์–‘์„ ๊ฐ–๋„๋ก ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด JAX๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์ ํ™”๋œ ์†๋„๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.",jl,ee,Jt="<code>jit = True</code>๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋ฉด Flax ํŒŒ์ดํ”„๋ผ์ธ์ด ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋ธ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 8๊ฐœ์˜ ๋””๋ฐ”์ด์Šค์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.",cl,le,ut="๋‹ค์Œ ์…€์„ ์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ์ดํ›„ ํ˜ธ์ถœ(์ž…๋ ฅ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋„)์€ ํ›จ์”ฌ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ TPU v2-8์—์„œ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ 1๋ถ„ ์ด์ƒ ๊ฑธ๋ฆฌ์ง€๋งŒ ์ดํ›„ ์ถ”๋ก  ์‹คํ–‰์—๋Š” ์•ฝ 7์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.",Tl,te,dl,se,$l,ae,jt="๋ฐ˜ํ™˜๋œ ๋ฐฐ์—ด์˜ shape์€ <code>(8, 1, 512, 512, 3)</code>์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ๋‘ ๋ฒˆ์งธ ์ฐจ์›์„ ์ œ๊ฑฐํ•˜๊ณ  512 ร— 512 ร— 3์˜ ์ด๋ฏธ์ง€ 8๊ฐœ๋ฅผ ์–ป์€ ๋‹ค์Œ PIL๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.",hl,pe,Ul,ne,gl,ie,ct="์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋ฆฌ๋“œ์— ํ‘œ์‹œํ•˜๋Š” ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",Bl,me,Cl,Me,Il,fe,Tt='<img src="https://huggingface.co/datasets/YiYiXu/test-doc-assets/resolve/main/stable_diffusion_jax_how_to_cell_38_output_0.jpeg" alt="img"/>',kl,oe,_l,ye,dt="๋ชจ๋“  ๋””๋ฐ”์ด์Šค์—์„œ ๋™์ผํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ณต์ œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ 2๊ฐœ๋ฅผ ๊ฐ๊ฐ 4๋ฒˆ์”ฉ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ํ•œ ๋ฒˆ์— 8๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ํ•ด๋ณด์„ธ์š”!",xl,we,$t="๋จผ์ € ์ž…๋ ฅ ์ค€๋น„ ์ฝ”๋“œ๋ฅผ ํŽธ๋ฆฌํ•œ ํ•จ์ˆ˜๋กœ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค:",vl,re,Zl,be,Gl,Je,ht='<img src="https://huggingface.co/datasets/YiYiXu/test-doc-assets/resolve/main/stable_diffusion_jax_how_to_cell_43_output_0.jpeg" alt="img"/>',Wl,ue,Xl,je,Ut="์•ž์„œ <code>diffusers</code> Flax ํŒŒ์ดํ”„๋ผ์ธ์ด ๋ชจ๋ธ์„ ์ž๋™์œผ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ณ  ์ž‘๋™ ๋ฐฉ์‹์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.",Hl,ce,gt='JAX ๋ณ‘๋ ฌํ™”๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ jax.pmap ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ํ”„๋กœ๊ทธ๋žจ, ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ(SPMD) ๋ณ‘๋ ฌํ™”๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋™์ผํ•œ ์ฝ”๋“œ์˜ ๋ณต์‚ฌ๋ณธ์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ์ •๊ตํ•œ ์ ‘๊ทผ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด <a href="https://jax.readthedocs.io/en/latest/index.html" rel="nofollow">JAX ๋ฌธ์„œ</a>์™€ <a href="https://jax.readthedocs.io/en/latest/jax-101/08-pjit.html?highlight=pjit" rel="nofollow"><code>pjit</code> ํŽ˜์ด์ง€</a>์—์„œ ์ด ์ฃผ์ œ๋ฅผ ์‚ดํŽด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค!',Fl,Te,Bt="<code>jax.pmap</code>์€ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:",Ql,de,Ct="<li><code>jax.jit()</code>๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ(๋˜๋Š” <code>jit</code>)ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ <code>pmap</code>์„ ํ˜ธ์ถœํ•  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ pmapped ํ•จ์ˆ˜๊ฐ€ ์ฒ˜์Œ ํ˜ธ์ถœ๋  ๋•Œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.</li> <li>์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.</li>",Yl,$e,It="์ž‘๋™ ๋ฐฉ์‹์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋น„๊ณต๊ฐœ ๋ฉ”์„œ๋“œ์ธ ํŒŒ์ดํ”„๋ผ์ธ์˜ <code>_generate</code> ๋ฉ”์„œ๋“œ๋ฅผ <code>pmap</code>ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ํ–ฅํ›„ <code>Diffusers</code> ๋ฆด๋ฆฌ์Šค์—์„œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”.",Vl,he,zl,Ue,kt="<code>pmap</code>์„ ์‚ฌ์šฉํ•œ ํ›„ ์ค€๋น„๋œ ํ•จ์ˆ˜ <code>p_generate</code>๋Š” ๊ฐœ๋…์ ์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:",Rl,ge,_t="<li>๊ฐ ์žฅ์น˜์—์„œ ๊ธฐ๋ณธ ํ•จ์ˆ˜ <code>pipeline._generate</code>์˜ ๋ณต์‚ฌ๋ณธ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.</li> <li>๊ฐ ์žฅ์น˜์— ์ž…๋ ฅ ์ธ์ˆ˜์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ƒค๋”ฉ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ <code>prompt_ids</code>์˜ shape์€ <code>(8, 1, 77, 768)</code>์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฐ์—ด์€ 8๊ฐœ๋กœ ๋ถ„ํ• ๋˜๊ณ  <code>_generate</code>์˜ ๊ฐ ๋ณต์‚ฌ๋ณธ์€ <code>(1, 77, 768)</code>์˜ shape์„ ๊ฐ€์ง„ ์ž…๋ ฅ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.</li>",Sl,Be,xt="๋ณ‘๋ ฌ๋กœ ํ˜ธ์ถœ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๊ณ  <code>_generate</code>๋ฅผ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. batch(๋ฐฐ์น˜) ํฌ๊ธฐ(์ด ์˜ˆ์ œ์—์„œ๋Š” <code>1</code>)์™€ ์ฝ”๋“œ์— ์ ํ•ฉํ•œ ์ฐจ์›๋งŒ ์‹ ๊ฒฝ ์“ฐ๋ฉด ๋˜๋ฉฐ, ๋ณ‘๋ ฌ๋กœ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.",Al,Ce,vt="ํŒŒ์ดํ”„๋ผ์ธ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋‹ค์Œ ์…€์„ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ ๊ทธ ์ดํ›„์—๋Š” ํ›จ์”ฌ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.",Nl,Ie,Ll,ke,Pl,_e,El,xe,ql,ve,Zt="JAX๋Š” ๋น„๋™๊ธฐ ๋””์ŠคํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ œ์–ด๊ถŒ์„ Python ๋ฃจํ”„์— ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๋ก  ์‹œ๊ฐ„์„ ์ •ํ™•ํ•˜๊ฒŒ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด <code>block_until_ready()</code>๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ๊ตฌ์ฒดํ™”๋˜์ง€ ์•Š์€ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ฐจ๋‹จ์ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์ฝ”๋“œ์—์„œ ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.",Dl,Ge,Kl;return j=new u({props:{title:"JAX / Flax์—์„œ์˜ ๐Ÿงจ Stable Diffusion!",local:"jax--flax์—์„œ์˜--stable-diffusion",headingTag:"h1"}}),c=new Rt({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/stable_diffusion_jax_how_to.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/stable_diffusion_jax_how_to.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/stable_diffusion_jax_how_to.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/stable_diffusion_jax_how_to.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/stable_diffusion_jax_how_to.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/stable_diffusion_jax_how_to.ipynb"}]}}),U=new u({props:{title:"Setup",local:"setup",headingTag:"h2"}}),B=new b({props:{code:"IXBpcCUyMGluc3RhbGwlMjBqYXglM0QlM0QwLjMuMjUlMjBqYXhsaWIlM0QlM0QwLjMuMjUlMjBmbGF4JTIwdHJhbnNmb3JtZXJzJTIwZnRmeSUwQSFwaXAlMjBpbnN0YWxsJTIwZGlmZnVzZXJz",highlighted:`!pip install jax==0.3.25 jaxlib==0.3.25 flax transformers ftfy
!pip install diffusers`,wrap:!1}}),C=new b({props:{code:"aW1wb3J0JTIwamF4LnRvb2xzLmNvbGFiX3RwdSUwQSUwQWpheC50b29scy5jb2xhYl90cHUuc2V0dXBfdHB1KCklMEFpbXBvcnQlMjBqYXg=",highlighted:`<span class="hljs-keyword">import</span> jax.tools.colab_tpu
jax.tools.colab_tpu.setup_tpu()
<span class="hljs-keyword">import</span> jax`,wrap:!1}}),I=new b({props:{code:"bnVtX2RldmljZXMlMjAlM0QlMjBqYXguZGV2aWNlX2NvdW50KCklMEFkZXZpY2VfdHlwZSUyMCUzRCUyMGpheC5kZXZpY2VzKCklNUIwJTVELmRldmljZV9raW5kJTBBJTBBcHJpbnQoZiUyMkZvdW5kJTIwJTdCbnVtX2RldmljZXMlN0QlMjBKQVglMjBkZXZpY2VzJTIwb2YlMjB0eXBlJTIwJTdCZGV2aWNlX3R5cGUlN0QuJTIyKSUwQWFzc2VydCUyMCglMEElMjAlMjAlMjAlMjAlMjJUUFUlMjIlMjBpbiUyMGRldmljZV90eXBlJTBBKSUyQyUyMCUyMkF2YWlsYWJsZSUyMGRldmljZSUyMGlzJTIwbm90JTIwYSUyMFRQVSUyQyUyMHBsZWFzZSUyMHNlbGVjdCUyMFRQVSUyMGZyb20lMjBFZGl0JTIwJTNFJTIwTm90ZWJvb2slMjBzZXR0aW5ncyUyMCUzRSUyMEhhcmR3YXJlJTIwYWNjZWxlcmF0b3IlMjI=",highlighted:`num_devices = jax.device_count()
device_type = jax.devices()[<span class="hljs-number">0</span>].device_kind
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Found <span class="hljs-subst">{num_devices}</span> JAX devices of type <span class="hljs-subst">{device_type}</span>.&quot;</span>)
<span class="hljs-keyword">assert</span> (
<span class="hljs-string">&quot;TPU&quot;</span> <span class="hljs-keyword">in</span> device_type
), <span class="hljs-string">&quot;Available device is not a TPU, please select TPU from Edit &gt; Notebook settings &gt; Hardware accelerator&quot;</span>`,wrap:!1}}),k=new b({props:{code:"Rm91bmQlMjA4JTIwSkFYJTIwZGV2aWNlcyUyMG9mJTIwdHlwZSUyMENsb3VkJTIwVFBVLg==",highlighted:'Found <span class="hljs-number">8</span> JAX devices of <span class="hljs-built_in">type</span> Cloud TPU.',wrap:!1}}),x=new b({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBaW1wb3J0JTIwamF4JTBBaW1wb3J0JTIwamF4Lm51bXB5JTIwYXMlMjBqbnAlMEElMEFmcm9tJTIwcGF0aGxpYiUyMGltcG9ydCUyMFBhdGglMEFmcm9tJTIwamF4JTIwaW1wb3J0JTIwcG1hcCUwQWZyb20lMjBmbGF4LmpheF91dGlscyUyMGltcG9ydCUyMHJlcGxpY2F0ZSUwQWZyb20lMjBmbGF4LnRyYWluaW5nLmNvbW1vbl91dGlscyUyMGltcG9ydCUyMHNoYXJkJTBBZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBJTBBZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEZsYXhTdGFibGVEaWZmdXNpb25QaXBlbGluZQ==",highlighted:`<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np
<span class="hljs-keyword">import</span> jax
<span class="hljs-keyword">import</span> jax.numpy <span class="hljs-keyword">as</span> jnp
<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">from</span> jax <span class="hljs-keyword">import</span> pmap
<span class="hljs-keyword">from</span> flax.jax_utils <span class="hljs-keyword">import</span> replicate
<span class="hljs-keyword">from</span> flax.training.common_utils <span class="hljs-keyword">import</span> shard
<span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image
<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> FlaxStableDiffusionPipeline`,wrap:!1}}),v=new u({props:{title:"๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",local:"๋ชจ๋ธ-๋ถˆ๋Ÿฌ์˜ค๊ธฐ",headingTag:"h2"}}),G=new b({props:{code:"ZHR5cGUlMjAlM0QlMjBqbnAuYmZsb2F0MTY=",highlighted:"dtype = jnp.bfloat16",wrap:!1}}),X=new b({props:{code:"cGlwZWxpbmUlMkMlMjBwYXJhbXMlMjAlM0QlMjBGbGF4U3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMkMlMEElMjAlMjAlMjAlMjByZXZpc2lvbiUzRCUyMmJmMTYlMjIlMkMlMEElMjAlMjAlMjAlMjBkdHlwZSUzRGR0eXBlJTJDJTBBKQ==",highlighted:`pipeline, params = FlaxStableDiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;CompVis/stable-diffusion-v1-4&quot;</span>,
revision=<span class="hljs-string">&quot;bf16&quot;</span>,
dtype=dtype,
)`,wrap:!1}}),H=new u({props:{title:"์ถ”๋ก ",local:"์ถ”๋ก ",headingTag:"h2"}}),Y=new b({props:{code:"cHJvbXB0JTIwJTNEJTIwJTIyQSUyMGNpbmVtYXRpYyUyMGZpbG0lMjBzdGlsbCUyMG9mJTIwTW9yZ2FuJTIwRnJlZW1hbiUyMHN0YXJyaW5nJTIwYXMlMjBKaW1pJTIwSGVuZHJpeCUyQyUyMHBvcnRyYWl0JTJDJTIwNDBtbSUyMGxlbnMlMkMlMjBzaGFsbG93JTIwZGVwdGglMjBvZiUyMGZpZWxkJTJDJTIwY2xvc2UlMjB1cCUyQyUyMHNwbGl0JTIwbGlnaHRpbmclMkMlMjBjaW5lbWF0aWMlMjIlMEFwcm9tcHQlMjAlM0QlMjAlNUJwcm9tcHQlNUQlMjAqJTIwamF4LmRldmljZV9jb3VudCgpJTBBcHJvbXB0X2lkcyUyMCUzRCUyMHBpcGVsaW5lLnByZXBhcmVfaW5wdXRzKHByb21wdCklMEFwcm9tcHRfaWRzLnNoYXBl",highlighted:`prompt = <span class="hljs-string">&quot;A cinematic film still of Morgan Freeman starring as Jimi Hendrix, portrait, 40mm lens, shallow depth of field, close up, split lighting, cinematic&quot;</span>
prompt = [prompt] * jax.device_count()
prompt_ids = pipeline.prepare_inputs(prompt)
prompt_ids.shape`,wrap:!1}}),V=new b({props:{code:"KDglMkMlMjA3Nyk=",highlighted:'(<span class="hljs-number">8</span>, <span class="hljs-number">77</span>)',wrap:!1}}),z=new u({props:{title:"๋ณต์‚ฌ(Replication) ๋ฐ ์ •๋ ฌํ™”",local:"๋ณต์‚ฌreplication-๋ฐ-์ •๋ ฌํ™”",headingTag:"h3"}}),S=new b({props:{code:"cF9wYXJhbXMlMjAlM0QlMjByZXBsaWNhdGUocGFyYW1zKQ==",highlighted:"p_params = replicate(params)",wrap:!1}}),A=new b({props:{code:"cHJvbXB0X2lkcyUyMCUzRCUyMHNoYXJkKHByb21wdF9pZHMpJTBBcHJvbXB0X2lkcy5zaGFwZQ==",highlighted:`prompt_ids = shard(prompt_ids)
prompt_ids.shape`,wrap:!1}}),N=new b({props:{code:"KDglMkMlMjAxJTJDJTIwNzcp",highlighted:'(<span class="hljs-number">8</span>, <span class="hljs-number">1</span>, <span class="hljs-number">77</span>)',wrap:!1}}),q=new b({props:{code:"ZGVmJTIwY3JlYXRlX2tleShzZWVkJTNEMCklM0ElMEElMjAlMjAlMjAlMjByZXR1cm4lMjBqYXgucmFuZG9tLlBSTkdLZXkoc2VlZCk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">create_key</span>(<span class="hljs-params">seed=<span class="hljs-number">0</span></span>):
<span class="hljs-keyword">return</span> jax.random.PRNGKey(seed)`,wrap:!1}}),K=new b({props:{code:"cm5nJTIwJTNEJTIwY3JlYXRlX2tleSgwKSUwQXJuZyUyMCUzRCUyMGpheC5yYW5kb20uc3BsaXQocm5nJTJDJTIwamF4LmRldmljZV9jb3VudCgpKQ==",highlighted:`rng = create_key(<span class="hljs-number">0</span>)
rng = jax.random.split(rng, jax.device_count())`,wrap:!1}}),te=new b({props:{code:"JTI1JTI1dGltZSUwQWltYWdlcyUyMCUzRCUyMHBpcGVsaW5lKHByb21wdF9pZHMlMkMlMjBwX3BhcmFtcyUyQyUyMHJuZyUyQyUyMGppdCUzRFRydWUpJTVCMCU1RA==",highlighted:`%%time
images = pipeline(prompt_ids, p_params, rng, <span class="hljs-attribute">jit</span>=<span class="hljs-literal">True</span>)[0]`,wrap:!1}}),se=new b({props:{code:"Q1BVJTIwdGltZXMlM0ElMjB1c2VyJTIwNTYuMiUyMHMlMkMlMjBzeXMlM0ElMjA0Mi41JTIwcyUyQyUyMHRvdGFsJTNBJTIwMW1pbiUyMDM4cyUwQVdhbGwlMjB0aW1lJTNBJTIwMW1pbiUyMDI5cw==",highlighted:`CPU times: user <span class="hljs-number">56.2</span> s, sys: <span class="hljs-number">42.5</span> s, total: 1<span class="hljs-built_in">min</span> 38s
Wall time: 1<span class="hljs-built_in">min</span> 29s`,wrap:!1}}),pe=new b({props:{code:"aW1hZ2VzJTIwJTNEJTIwaW1hZ2VzLnJlc2hhcGUoKGltYWdlcy5zaGFwZSU1QjAlNUQlMjAqJTIwaW1hZ2VzLnNoYXBlJTVCMSU1RCUyQyklMjAlMkIlMjBpbWFnZXMuc2hhcGUlNUItMyUzQSU1RCklMEFpbWFnZXMlMjAlM0QlMjBwaXBlbGluZS5udW1weV90b19waWwoaW1hZ2VzKQ==",highlighted:`images = images.reshape((images.shape[<span class="hljs-number">0</span>] * images.shape[<span class="hljs-number">1</span>],) + images.shape[-<span class="hljs-number">3</span>:])
images = pipeline.numpy_to_pil(images)`,wrap:!1}}),ne=new u({props:{title:"์‹œ๊ฐํ™”",local:"์‹œ๊ฐํ™”",headingTag:"h3"}}),me=new b({props:{code:"ZGVmJTIwaW1hZ2VfZ3JpZChpbWdzJTJDJTIwcm93cyUyQyUyMGNvbHMpJTNBJTBBJTIwJTIwJTIwJTIwdyUyQyUyMGglMjAlM0QlMjBpbWdzJTVCMCU1RC5zaXplJTBBJTIwJTIwJTIwJTIwZ3JpZCUyMCUzRCUyMEltYWdlLm5ldyglMjJSR0IlMjIlMkMlMjBzaXplJTNEKGNvbHMlMjAqJTIwdyUyQyUyMHJvd3MlMjAqJTIwaCkpJTBBJTIwJTIwJTIwJTIwZm9yJTIwaSUyQyUyMGltZyUyMGluJTIwZW51bWVyYXRlKGltZ3MpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JpZC5wYXN0ZShpbWclMkMlMjBib3glM0QoaSUyMCUyNSUyMGNvbHMlMjAqJTIwdyUyQyUyMGklMjAlMkYlMkYlMjBjb2xzJTIwKiUyMGgpKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMGdyaWQ=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">image_grid</span>(<span class="hljs-params">imgs, rows, cols</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`,wrap:!1}}),Me=new b({props:{code:"aW1hZ2VfZ3JpZChpbWFnZXMlMkMlMjAyJTJDJTIwNCk=",highlighted:'image_grid(images, <span class="hljs-number">2</span>, <span class="hljs-number">4</span>)',wrap:!1}}),oe=new u({props:{title:"๋‹ค๋ฅธ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ",local:"๋‹ค๋ฅธ-ํ”„๋กฌํ”„ํŠธ-์‚ฌ์šฉ",headingTag:"h2"}}),re=new b({props:{code:"cHJvbXB0cyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkxhYnJhZG9yJTIwaW4lMjB0aGUlMjBzdHlsZSUyMG9mJTIwSG9rdXNhaSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMlBhaW50aW5nJTIwb2YlMjBhJTIwc3F1aXJyZWwlMjBza2F0aW5nJTIwaW4lMjBOZXclMjBZb3JrJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIySEFMLTkwMDAlMjBpbiUyMHRoZSUyMHN0eWxlJTIwb2YlMjBWYW4lMjBHb2doJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyVGltZXMlMjBTcXVhcmUlMjB1bmRlciUyMHdhdGVyJTJDJTIwd2l0aCUyMGZpc2glMjBhbmQlMjBhJTIwZG9scGhpbiUyMHN3aW1taW5nJTIwYXJvdW5kJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyQW5jaWVudCUyMFJvbWFuJTIwZnJlc2NvJTIwc2hvd2luZyUyMGElMjBtYW4lMjB3b3JraW5nJTIwb24lMjBoaXMlMjBsYXB0b3AlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJDbG9zZS11cCUyMHBob3RvZ3JhcGglMjBvZiUyMHlvdW5nJTIwYmxhY2slMjB3b21hbiUyMGFnYWluc3QlMjB1cmJhbiUyMGJhY2tncm91bmQlMkMlMjBoaWdoJTIwcXVhbGl0eSUyQyUyMGJva2VoJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyQXJtY2hhaXIlMjBpbiUyMHRoZSUyMHNoYXBlJTIwb2YlMjBhbiUyMGF2b2NhZG8lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJDbG93biUyMGFzdHJvbmF1dCUyMGluJTIwc3BhY2UlMkMlMjB3aXRoJTIwRWFydGglMjBpbiUyMHRoZSUyMGJhY2tncm91bmQlMjIlMkMlMEElNUQ=",highlighted:`prompts = [
<span class="hljs-string">&quot;Labrador in the style of Hokusai&quot;</span>,
<span class="hljs-string">&quot;Painting of a squirrel skating in New York&quot;</span>,
<span class="hljs-string">&quot;HAL-9000 in the style of Van Gogh&quot;</span>,
<span class="hljs-string">&quot;Times Square under water, with fish and a dolphin swimming around&quot;</span>,
<span class="hljs-string">&quot;Ancient Roman fresco showing a man working on his laptop&quot;</span>,
<span class="hljs-string">&quot;Close-up photograph of young black woman against urban background, high quality, bokeh&quot;</span>,
<span class="hljs-string">&quot;Armchair in the shape of an avocado&quot;</span>,
<span class="hljs-string">&quot;Clown astronaut in space, with Earth in the background&quot;</span>,
]`,wrap:!1}}),be=new b({props:{code:"cHJvbXB0X2lkcyUyMCUzRCUyMHBpcGVsaW5lLnByZXBhcmVfaW5wdXRzKHByb21wdHMpJTBBcHJvbXB0X2lkcyUyMCUzRCUyMHNoYXJkKHByb21wdF9pZHMpJTBBJTBBaW1hZ2VzJTIwJTNEJTIwcGlwZWxpbmUocHJvbXB0X2lkcyUyQyUyMHBfcGFyYW1zJTJDJTIwcm5nJTJDJTIwaml0JTNEVHJ1ZSkuaW1hZ2VzJTBBaW1hZ2VzJTIwJTNEJTIwaW1hZ2VzLnJlc2hhcGUoKGltYWdlcy5zaGFwZSU1QjAlNUQlMjAqJTIwaW1hZ2VzLnNoYXBlJTVCMSU1RCUyQyklMjAlMkIlMjBpbWFnZXMuc2hhcGUlNUItMyUzQSU1RCklMEFpbWFnZXMlMjAlM0QlMjBwaXBlbGluZS5udW1weV90b19waWwoaW1hZ2VzKSUwQSUwQWltYWdlX2dyaWQoaW1hZ2VzJTJDJTIwMiUyQyUyMDQp",highlighted:`prompt_ids = pipeline.prepare_inputs(prompts)
prompt_ids = shard(prompt_ids)
images = pipeline(prompt_ids, p_params, rng, jit=<span class="hljs-literal">True</span>).images
images = images.reshape((images.shape[<span class="hljs-number">0</span>] * images.shape[<span class="hljs-number">1</span>],) + images.shape[-<span class="hljs-number">3</span>:])
images = pipeline.numpy_to_pil(images)
image_grid(images, <span class="hljs-number">2</span>, <span class="hljs-number">4</span>)`,wrap:!1}}),ue=new u({props:{title:"๋ณ‘๋ ฌํ™”(parallelization)๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€?",local:"๋ณ‘๋ ฌํ™”parallelization๋Š”-์–ด๋–ป๊ฒŒ-์ž‘๋™ํ•˜๋Š”๊ฐ€",headingTag:"h2"}}),he=new b({props:{code:"cF9nZW5lcmF0ZSUyMCUzRCUyMHBtYXAocGlwZWxpbmUuX2dlbmVyYXRlKQ==",highlighted:"p_generate = pmap(pipeline._generate)",wrap:!1}}),Ie=new b({props:{code:"JTI1JTI1dGltZSUwQWltYWdlcyUyMCUzRCUyMHBfZ2VuZXJhdGUocHJvbXB0X2lkcyUyQyUyMHBfcGFyYW1zJTJDJTIwcm5nKSUwQWltYWdlcyUyMCUzRCUyMGltYWdlcy5ibG9ja191bnRpbF9yZWFkeSgpJTBBaW1hZ2VzLnNoYXBl",highlighted:`%%time
images = p<span class="hljs-constructor">_generate(<span class="hljs-params">prompt_ids</span>, <span class="hljs-params">p_params</span>, <span class="hljs-params">rng</span>)</span>
images = images.block<span class="hljs-constructor">_until_ready()</span>
images.shape`,wrap:!1}}),ke=new b({props:{code:"Q1BVJTIwdGltZXMlM0ElMjB1c2VyJTIwMW1pbiUyMDE1cyUyQyUyMHN5cyUzQSUyMDE4LjIlMjBzJTJDJTIwdG90YWwlM0ElMjAxbWluJTIwMzRzJTBBV2FsbCUyMHRpbWUlM0ElMjAxbWluJTIwMTVz",highlighted:`CPU times: user 1<span class="hljs-built_in">min</span> 15s, sys: <span class="hljs-number">18.2</span> s, total: 1<span class="hljs-built_in">min</span> 34s
Wall time: 1<span class="hljs-built_in">min</span> 15s`,wrap:!1}}),_e=new b({props:{code:"aW1hZ2VzLnNoYXBl",highlighted:"images.shape",wrap:!1}}),xe=new b({props:{code:"KDglMkMlMjAxJTJDJTIwNTEyJTJDJTIwNTEyJTJDJTIwMyk=",highlighted:'(<span class="hljs-number">8</span>, <span class="hljs-number">1</span>, <span class="hljs-number">512</span>, <span class="hljs-number">512</span>, <span class="hljs-number">3</span>)',wrap:!1}}),{c(){J=n("meta"),We=a(),Ze=n("p"),Xe=a(),m(j.$$.fragment),He=a(),m(c.$$.fragment),Fe=a(),T=n("p"),T.innerHTML=et,Qe=a(),d=n("p"),d.innerHTML=lt,Ye=a(),$=n("p"),$.textContent=tt,Ve=a(),h=n("p"),h.textContent=st,ze=a(),m(U.$$.fragment),Re=a(),g=n("p"),g.textContent=at,Se=a(),m(B.$$.fragment),Ae=a(),m(C.$$.fragment),Ne=a(),m(I.$$.fragment),Le=a(),m(k.$$.fragment),Pe=a(),_=n("p"),_.textContent=pt,Ee=a(),m(x.$$.fragment),qe=a(),m(v.$$.fragment),De=a(),Z=n("p"),Z.textContent=nt,Ke=a(),m(G.$$.fragment),Oe=a(),W=n("p"),W.textContent=it,el=a(),m(X.$$.fragment),ll=a(),m(H.$$.fragment),tl=a(),F=n("p"),F.textContent=mt,sl=a(),Q=n("p"),Q.innerHTML=Mt,al=a(),m(Y.$$.fragment),pl=a(),m(V.$$.fragment),nl=a(),m(z.$$.fragment),il=a(),R=n("p"),R.innerHTML=ft,ml=a(),m(S.$$.fragment),Ml=a(),m(A.$$.fragment),fl=a(),m(N.$$.fragment),ol=a(),L=n("p"),L.innerHTML=ot,yl=a(),P=n("p"),P.textContent=yt,wl=a(),E=n("p"),E.textContent=wt,rl=a(),m(q.$$.fragment),bl=a(),D=n("p"),D.textContent=rt,Jl=a(),m(K.$$.fragment),ul=a(),O=n("p"),O.textContent=bt,jl=a(),ee=n("p"),ee.innerHTML=Jt,cl=a(),le=n("p"),le.textContent=ut,Tl=a(),m(te.$$.fragment),dl=a(),m(se.$$.fragment),$l=a(),ae=n("p"),ae.innerHTML=jt,hl=a(),m(pe.$$.fragment),Ul=a(),m(ne.$$.fragment),gl=a(),ie=n("p"),ie.textContent=ct,Bl=a(),m(me.$$.fragment),Cl=a(),m(Me.$$.fragment),Il=a(),fe=n("p"),fe.innerHTML=Tt,kl=a(),m(oe.$$.fragment),_l=a(),ye=n("p"),ye.textContent=dt,xl=a(),we=n("p"),we.textContent=$t,vl=a(),m(re.$$.fragment),Zl=a(),m(be.$$.fragment),Gl=a(),Je=n("p"),Je.innerHTML=ht,Wl=a(),m(ue.$$.fragment),Xl=a(),je=n("p"),je.innerHTML=Ut,Hl=a(),ce=n("p"),ce.innerHTML=gt,Fl=a(),Te=n("p"),Te.innerHTML=Bt,Ql=a(),de=n("ul"),de.innerHTML=Ct,Yl=a(),$e=n("p"),$e.innerHTML=It,Vl=a(),m(he.$$.fragment),zl=a(),Ue=n("p"),Ue.innerHTML=kt,Rl=a(),ge=n("ul"),ge.innerHTML=_t,Sl=a(),Be=n("p"),Be.innerHTML=xt,Al=a(),Ce=n("p"),Ce.textContent=vt,Nl=a(),m(Ie.$$.fragment),Ll=a(),m(ke.$$.fragment),Pl=a(),m(_e.$$.fragment),El=a(),m(xe.$$.fragment),ql=a(),ve=n("p"),ve.innerHTML=Zt,Dl=a(),Ge=n("p"),this.h()},l(e){const l=Vt("svelte-u9bgzb",document.head);J=i(l,"META",{name:!0,content:!0}),l.forEach(t),We=p(e),Ze=i(e,"P",{}),Gt(Ze).forEach(t),Xe=p(e),M(j.$$.fragment,e),He=p(e),M(c.$$.fragment,e),Fe=p(e),T=i(e,"P",{"data-svelte-h":!0}),r(T)!=="svelte-1gxtaje"&&(T.innerHTML=et),Qe=p(e),d=i(e,"P",{"data-svelte-h":!0}),r(d)!=="svelte-1bumom2"&&(d.innerHTML=lt),Ye=p(e),$=i(e,"P",{"data-svelte-h":!0}),r($)!=="svelte-17mi6da"&&($.textContent=tt),Ve=p(e),h=i(e,"P",{"data-svelte-h":!0}),r(h)!=="svelte-hjgegg"&&(h.textContent=st),ze=p(e),M(U.$$.fragment,e),Re=p(e),g=i(e,"P",{"data-svelte-h":!0}),r(g)!=="svelte-17ncbx5"&&(g.textContent=at),Se=p(e),M(B.$$.fragment,e),Ae=p(e),M(C.$$.fragment,e),Ne=p(e),M(I.$$.fragment,e),Le=p(e),M(k.$$.fragment,e),Pe=p(e),_=i(e,"P",{"data-svelte-h":!0}),r(_)!=="svelte-95k7v6"&&(_.textContent=pt),Ee=p(e),M(x.$$.fragment,e),qe=p(e),M(v.$$.fragment,e),De=p(e),Z=i(e,"P",{"data-svelte-h":!0}),r(Z)!=="svelte-71fx65"&&(Z.textContent=nt),Ke=p(e),M(G.$$.fragment,e),Oe=p(e),W=i(e,"P",{"data-svelte-h":!0}),r(W)!=="svelte-1uvv4fp"&&(W.textContent=it),el=p(e),M(X.$$.fragment,e),ll=p(e),M(H.$$.fragment,e),tl=p(e),F=i(e,"P",{"data-svelte-h":!0}),r(F)!=="svelte-7wabl0"&&(F.textContent=mt),sl=p(e),Q=i(e,"P",{"data-svelte-h":!0}),r(Q)!=="svelte-13u2ylm"&&(Q.innerHTML=Mt),al=p(e),M(Y.$$.fragment,e),pl=p(e),M(V.$$.fragment,e),nl=p(e),M(z.$$.fragment,e),il=p(e),R=i(e,"P",{"data-svelte-h":!0}),r(R)!=="svelte-qzdgm1"&&(R.innerHTML=ft),ml=p(e),M(S.$$.fragment,e),Ml=p(e),M(A.$$.fragment,e),fl=p(e),M(N.$$.fragment,e),ol=p(e),L=i(e,"P",{"data-svelte-h":!0}),r(L)!=="svelte-i4vbvw"&&(L.innerHTML=ot),yl=p(e),P=i(e,"P",{"data-svelte-h":!0}),r(P)!=="svelte-1ghn5le"&&(P.textContent=yt),wl=p(e),E=i(e,"P",{"data-svelte-h":!0}),r(E)!=="svelte-1lcan7m"&&(E.textContent=wt),rl=p(e),M(q.$$.fragment,e),bl=p(e),D=i(e,"P",{"data-svelte-h":!0}),r(D)!=="svelte-1ngdgb0"&&(D.textContent=rt),Jl=p(e),M(K.$$.fragment,e),ul=p(e),O=i(e,"P",{"data-svelte-h":!0}),r(O)!=="svelte-103e30a"&&(O.textContent=bt),jl=p(e),ee=i(e,"P",{"data-svelte-h":!0}),r(ee)!=="svelte-1sbamam"&&(ee.innerHTML=Jt),cl=p(e),le=i(e,"P",{"data-svelte-h":!0}),r(le)!=="svelte-15bwfw"&&(le.textContent=ut),Tl=p(e),M(te.$$.fragment,e),dl=p(e),M(se.$$.fragment,e),$l=p(e),ae=i(e,"P",{"data-svelte-h":!0}),r(ae)!=="svelte-1egnab9"&&(ae.innerHTML=jt),hl=p(e),M(pe.$$.fragment,e),Ul=p(e),M(ne.$$.fragment,e),gl=p(e),ie=i(e,"P",{"data-svelte-h":!0}),r(ie)!=="svelte-1e76x5r"&&(ie.textContent=ct),Bl=p(e),M(me.$$.fragment,e),Cl=p(e),M(Me.$$.fragment,e),Il=p(e),fe=i(e,"P",{"data-svelte-h":!0}),r(fe)!=="svelte-e1s2k"&&(fe.innerHTML=Tt),kl=p(e),M(oe.$$.fragment,e),_l=p(e),ye=i(e,"P",{"data-svelte-h":!0}),r(ye)!=="svelte-1buolzv"&&(ye.textContent=dt),xl=p(e),we=i(e,"P",{"data-svelte-h":!0}),r(we)!=="svelte-1fscvnd"&&(we.textContent=$t),vl=p(e),M(re.$$.fragment,e),Zl=p(e),M(be.$$.fragment,e),Gl=p(e),Je=i(e,"P",{"data-svelte-h":!0}),r(Je)!=="svelte-1nea4f2"&&(Je.innerHTML=ht),Wl=p(e),M(ue.$$.fragment,e),Xl=p(e),je=i(e,"P",{"data-svelte-h":!0}),r(je)!=="svelte-1780g9f"&&(je.innerHTML=Ut),Hl=p(e),ce=i(e,"P",{"data-svelte-h":!0}),r(ce)!=="svelte-d62kvx"&&(ce.innerHTML=gt),Fl=p(e),Te=i(e,"P",{"data-svelte-h":!0}),r(Te)!=="svelte-1ykkmgr"&&(Te.innerHTML=Bt),Ql=p(e),de=i(e,"UL",{"data-svelte-h":!0}),r(de)!=="svelte-2aqcsn"&&(de.innerHTML=Ct),Yl=p(e),$e=i(e,"P",{"data-svelte-h":!0}),r($e)!=="svelte-mu1la1"&&($e.innerHTML=It),Vl=p(e),M(he.$$.fragment,e),zl=p(e),Ue=i(e,"P",{"data-svelte-h":!0}),r(Ue)!=="svelte-52cpde"&&(Ue.innerHTML=kt),Rl=p(e),ge=i(e,"UL",{"data-svelte-h":!0}),r(ge)!=="svelte-11847k7"&&(ge.innerHTML=_t),Sl=p(e),Be=i(e,"P",{"data-svelte-h":!0}),r(Be)!=="svelte-1x822d1"&&(Be.innerHTML=xt),Al=p(e),Ce=i(e,"P",{"data-svelte-h":!0}),r(Ce)!=="svelte-1ukvcj9"&&(Ce.textContent=vt),Nl=p(e),M(Ie.$$.fragment,e),Ll=p(e),M(ke.$$.fragment,e),Pl=p(e),M(_e.$$.fragment,e),El=p(e),M(xe.$$.fragment,e),ql=p(e),ve=i(e,"P",{"data-svelte-h":!0}),r(ve)!=="svelte-1s6my01"&&(ve.innerHTML=Zt),Dl=p(e),Ge=i(e,"P",{}),Gt(Ge).forEach(t),this.h()},h(){Wt(J,"name","hf:doc:metadata"),Wt(J,"content",At)},m(e,l){zt(document.head,J),s(e,We,l),s(e,Ze,l),s(e,Xe,l),f(j,e,l),s(e,He,l),f(c,e,l),s(e,Fe,l),s(e,T,l),s(e,Qe,l),s(e,d,l),s(e,Ye,l),s(e,$,l),s(e,Ve,l),s(e,h,l),s(e,ze,l),f(U,e,l),s(e,Re,l),s(e,g,l),s(e,Se,l),f(B,e,l),s(e,Ae,l),f(C,e,l),s(e,Ne,l),f(I,e,l),s(e,Le,l),f(k,e,l),s(e,Pe,l),s(e,_,l),s(e,Ee,l),f(x,e,l),s(e,qe,l),f(v,e,l),s(e,De,l),s(e,Z,l),s(e,Ke,l),f(G,e,l),s(e,Oe,l),s(e,W,l),s(e,el,l),f(X,e,l),s(e,ll,l),f(H,e,l),s(e,tl,l),s(e,F,l),s(e,sl,l),s(e,Q,l),s(e,al,l),f(Y,e,l),s(e,pl,l),f(V,e,l),s(e,nl,l),f(z,e,l),s(e,il,l),s(e,R,l),s(e,ml,l),f(S,e,l),s(e,Ml,l),f(A,e,l),s(e,fl,l),f(N,e,l),s(e,ol,l),s(e,L,l),s(e,yl,l),s(e,P,l),s(e,wl,l),s(e,E,l),s(e,rl,l),f(q,e,l),s(e,bl,l),s(e,D,l),s(e,Jl,l),f(K,e,l),s(e,ul,l),s(e,O,l),s(e,jl,l),s(e,ee,l),s(e,cl,l),s(e,le,l),s(e,Tl,l),f(te,e,l),s(e,dl,l),f(se,e,l),s(e,$l,l),s(e,ae,l),s(e,hl,l),f(pe,e,l),s(e,Ul,l),f(ne,e,l),s(e,gl,l),s(e,ie,l),s(e,Bl,l),f(me,e,l),s(e,Cl,l),f(Me,e,l),s(e,Il,l),s(e,fe,l),s(e,kl,l),f(oe,e,l),s(e,_l,l),s(e,ye,l),s(e,xl,l),s(e,we,l),s(e,vl,l),f(re,e,l),s(e,Zl,l),f(be,e,l),s(e,Gl,l),s(e,Je,l),s(e,Wl,l),f(ue,e,l),s(e,Xl,l),s(e,je,l),s(e,Hl,l),s(e,ce,l),s(e,Fl,l),s(e,Te,l),s(e,Ql,l),s(e,de,l),s(e,Yl,l),s(e,$e,l),s(e,Vl,l),f(he,e,l),s(e,zl,l),s(e,Ue,l),s(e,Rl,l),s(e,ge,l),s(e,Sl,l),s(e,Be,l),s(e,Al,l),s(e,Ce,l),s(e,Nl,l),f(Ie,e,l),s(e,Ll,l),f(ke,e,l),s(e,Pl,l),f(_e,e,l),s(e,El,l),f(xe,e,l),s(e,ql,l),s(e,ve,l),s(e,Dl,l),s(e,Ge,l),Kl=!0},p:Ht,i(e){Kl||(o(j.$$.fragment,e),o(c.$$.fragment,e),o(U.$$.fragment,e),o(B.$$.fragment,e),o(C.$$.fragment,e),o(I.$$.fragment,e),o(k.$$.fragment,e),o(x.$$.fragment,e),o(v.$$.fragment,e),o(G.$$.fragment,e),o(X.$$.fragment,e),o(H.$$.fragment,e),o(Y.$$.fragment,e),o(V.$$.fragment,e),o(z.$$.fragment,e),o(S.$$.fragment,e),o(A.$$.fragment,e),o(N.$$.fragment,e),o(q.$$.fragment,e),o(K.$$.fragment,e),o(te.$$.fragment,e),o(se.$$.fragment,e),o(pe.$$.fragment,e),o(ne.$$.fragment,e),o(me.$$.fragment,e),o(Me.$$.fragment,e),o(oe.$$.fragment,e),o(re.$$.fragment,e),o(be.$$.fragment,e),o(ue.$$.fragment,e),o(he.$$.fragment,e),o(Ie.$$.fragment,e),o(ke.$$.fragment,e),o(_e.$$.fragment,e),o(xe.$$.fragment,e),Kl=!0)},o(e){y(j.$$.fragment,e),y(c.$$.fragment,e),y(U.$$.fragment,e),y(B.$$.fragment,e),y(C.$$.fragment,e),y(I.$$.fragment,e),y(k.$$.fragment,e),y(x.$$.fragment,e),y(v.$$.fragment,e),y(G.$$.fragment,e),y(X.$$.fragment,e),y(H.$$.fragment,e),y(Y.$$.fragment,e),y(V.$$.fragment,e),y(z.$$.fragment,e),y(S.$$.fragment,e),y(A.$$.fragment,e),y(N.$$.fragment,e),y(q.$$.fragment,e),y(K.$$.fragment,e),y(te.$$.fragment,e),y(se.$$.fragment,e),y(pe.$$.fragment,e),y(ne.$$.fragment,e),y(me.$$.fragment,e),y(Me.$$.fragment,e),y(oe.$$.fragment,e),y(re.$$.fragment,e),y(be.$$.fragment,e),y(ue.$$.fragment,e),y(he.$$.fragment,e),y(Ie.$$.fragment,e),y(ke.$$.fragment,e),y(_e.$$.fragment,e),y(xe.$$.fragment,e),Kl=!1},d(e){e&&(t(We),t(Ze),t(Xe),t(He),t(Fe),t(T),t(Qe),t(d),t(Ye),t($),t(Ve),t(h),t(ze),t(Re),t(g),t(Se),t(Ae),t(Ne),t(Le),t(Pe),t(_),t(Ee),t(qe),t(De),t(Z),t(Ke),t(Oe),t(W),t(el),t(ll),t(tl),t(F),t(sl),t(Q),t(al),t(pl),t(nl),t(il),t(R),t(ml),t(Ml),t(fl),t(ol),t(L),t(yl),t(P),t(wl),t(E),t(rl),t(bl),t(D),t(Jl),t(ul),t(O),t(jl),t(ee),t(cl),t(le),t(Tl),t(dl),t($l),t(ae),t(hl),t(Ul),t(gl),t(ie),t(Bl),t(Cl),t(Il),t(fe),t(kl),t(_l),t(ye),t(xl),t(we),t(vl),t(Zl),t(Gl),t(Je),t(Wl),t(Xl),t(je),t(Hl),t(ce),t(Fl),t(Te),t(Ql),t(de),t(Yl),t($e),t(Vl),t(zl),t(Ue),t(Rl),t(ge),t(Sl),t(Be),t(Al),t(Ce),t(Nl),t(Ll),t(Pl),t(El),t(ql),t(ve),t(Dl),t(Ge)),t(J),w(j,e),w(c,e),w(U,e),w(B,e),w(C,e),w(I,e),w(k,e),w(x,e),w(v,e),w(G,e),w(X,e),w(H,e),w(Y,e),w(V,e),w(z,e),w(S,e),w(A,e),w(N,e),w(q,e),w(K,e),w(te,e),w(se,e),w(pe,e),w(ne,e),w(me,e),w(Me,e),w(oe,e),w(re,e),w(be,e),w(ue,e),w(he,e),w(Ie,e),w(ke,e),w(_e,e),w(xe,e)}}}const At='{"title":"JAX / Flax์—์„œ์˜ ๐Ÿงจ Stable Diffusion!","local":"jax--flax์—์„œ์˜--stable-diffusion","sections":[{"title":"Setup","local":"setup","sections":[],"depth":2},{"title":"๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ","local":"๋ชจ๋ธ-๋ถˆ๋Ÿฌ์˜ค๊ธฐ","sections":[],"depth":2},{"title":"์ถ”๋ก ","local":"์ถ”๋ก ","sections":[{"title":"๋ณต์‚ฌ(Replication) ๋ฐ ์ •๋ ฌํ™”","local":"๋ณต์‚ฌreplication-๋ฐ-์ •๋ ฌํ™”","sections":[],"depth":3},{"title":"์‹œ๊ฐํ™”","local":"์‹œ๊ฐํ™”","sections":[],"depth":3}],"depth":2},{"title":"๋‹ค๋ฅธ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ","local":"๋‹ค๋ฅธ-ํ”„๋กฌํ”„ํŠธ-์‚ฌ์šฉ","sections":[],"depth":2},{"title":"๋ณ‘๋ ฌํ™”(parallelization)๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€?","local":"๋ณ‘๋ ฌํ™”parallelization๋Š”-์–ด๋–ป๊ฒŒ-์ž‘๋™ํ•˜๋Š”๊ฐ€","sections":[],"depth":2}],"depth":1}';function Nt(Ol){return Ft(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Kt extends Qt{constructor(J){super(),Yt(this,J,Nt,St,Xt,{})}}export{Kt as component};

Xet Storage Details

Size:
35.8 kB
ยท
Xet hash:
34a0020cae5cd0298ecd33738a565b06dd134ede6e0b138b8272e11eb9cd39f7

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