Buckets:
| import"../chunks/DsnmJJEf.js";import{i as U,h as f,C as w,H as j,a,E as _,s as J}from"../chunks/CxueWNWA.js";import{p as v,o as k,s,f as W,a as u,b as T,c as b,n as C}from"../chunks/CrV5djYC.js";import{D as B}from"../chunks/CSLWm2JH.js";const Z='{"title":"Textual inversion","local":"textual-inversion","sections":[],"depth":1}';var G=b('<meta name="hf:doc:metadata"/>'),Q=b('<p></p> <!> <!> <!> <p><code>StableDiffusionPipeline</code>์ textual-inversion์ ์ง์ํ๋๋ฐ, ์ด๋ ๋ช ๊ฐ์ ์ํ ์ด๋ฏธ์ง๋ง์ผ๋ก stable diffusion๊ณผ ๊ฐ์ ๋ชจ๋ธ์ด ์๋ก์ด ์ปจ์ ์ ํ์ตํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์ ์ ์ดํ๊ณ ํน์ ์ปจ์ ์ ๋ง๊ฒ ๋ชจ๋ธ์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ์์ ๋ง๋ค์ด์ง ์ปจ์ ๋ค์ ์ปฌ๋ ์ ์ <a href="https://huggingface.co/spaces/sd-concepts-library/stable-diffusion-conceptualizer" rel="nofollow">Stable Diffusion Conceptualizer</a>๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ฌ์ฉํด๋ณผ ์ ์์ต๋๋ค.</p> <p>์ด ๊ฐ์ด๋์์๋ Stable Diffusion Conceptualizer์์ ์ฌ์ ํ์ตํ ์ปจ์ ์ ์ฌ์ฉํ์ฌ textual-inversion์ผ๋ก ์ถ๋ก ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฝ๋๋ค. textual-inversion์ผ๋ก ๋ชจ๋ธ์ ์๋ก์ด ์ปจ์ ์ ํ์ต์ํค๋ ๋ฐ ๊ด์ฌ์ด ์์ผ์๋ค๋ฉด, <a href="./training/text_inversion">Textual Inversion</a> ํ๋ จ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.</p> <p>Hugging Face ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ์ธ์:</p> <!> <p>ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ค๊ณ ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ์๊ฐํํ๊ธฐ ์ํ ๋์ฐ๋ฏธ ํจ์ <code>image_grid</code>๋ฅผ ๋ง๋ญ๋๋ค:</p> <!> <p>Stable Diffusion๊ณผ <a href="https://huggingface.co/spaces/sd-concepts-library/stable-diffusion-conceptualizer" rel="nofollow">Stable Diffusion Conceptualizer</a>์์ ์ฌ์ ํ์ต๋ ์ปจ์ ์ ์ ํํฉ๋๋ค:</p> <!> <p>์ด์ ํ์ดํ๋ผ์ธ์ ๋ก๋ํ๊ณ ์ฌ์ ํ์ต๋ ์ปจ์ ์ ํ์ดํ๋ผ์ธ์ ์ ๋ฌํ ์ ์์ต๋๋ค:</p> <!> <p>ํน๋ณํ placeholder token โ<code><cat-toy></code>โ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ํ์ต๋ ์ปจ์ ์ผ๋ก ํ๋กฌํํธ๋ฅผ ๋ง๋ค๊ณ , ์์ฑํ ์ํ์ ์์ ์ด๋ฏธ์ง ํ์ ์๋ฅผ ์ ํํฉ๋๋ค:</p> <!> <p>๊ทธ๋ฐ ๋ค์ ํ์ดํ๋ผ์ธ์ ์คํํ๊ณ , ์์ฑ๋ ์ด๋ฏธ์ง๋ค์ ์ ์ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒ์์ ๋ง๋ค์๋ ๋์ฐ๋ฏธ ํจ์ <code>image_grid</code>๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ ๊ฒฐ๊ณผ๋ค์ ์๊ฐํํฉ๋๋ค. ์ด ๋ <code>num_inference_steps</code>์ <code>guidance_scale</code>๊ณผ ๊ฐ์ ๋งค๊ฐ ๋ณ์๋ค์ ์กฐ์ ํ์ฌ, ์ด๊ฒ๋ค์ด ์ด๋ฏธ์ง ํ์ง์ ์ด๋ ํ ์ํฅ์ ๋ฏธ์น๋์ง๋ฅผ ์์ ๋กญ๊ฒ ํ์ธํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.</p> <!> <div class="flex justify-center"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/textual_inversion_inference.png"/></div> <!> <p></p>',1);function I(g,m){v(m,!1),k(()=>{new URLSearchParams(window.location.search).get("fw")}),U();var l=Q();f("1mqg1pd",y=>{var M=G();J(M,"content",Z),u(y,M)});var e=s(W(l),2);w(e,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var n=s(e,2);B(n,{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/textual_inversion_inference.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/textual_inversion_inference.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/textual_inversion_inference.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/textual_inversion_inference.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/textual_inversion_inference.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/textual_inversion_inference.ipynb"}]});var o=s(n,2);j(o,{title:"Textual inversion",local:"textual-inversion",headingTag:"h1"});var i=s(o,8);a(i,{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login | |
| notebook_login()`,lang:"py",wrap:!1});var t=s(i,4);a(t,{code:"aW1wb3J0JTIwb3MlMEFpbXBvcnQlMjB0b3JjaCUwQSUwQWltcG9ydCUyMFBJTCUwQWZyb20lMjBQSUwlMjBpbXBvcnQlMjBJbWFnZSUwQSUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBTdGFibGVEaWZmdXNpb25QaXBlbGluZSUwQWZyb20lMjB0cmFuc2Zvcm1lcnMlMjBpbXBvcnQlMjBDTElQSW1hZ2VQcm9jZXNzb3IlMkMlMjBDTElQVGV4dE1vZGVsJTJDJTIwQ0xJUFRva2VuaXplciUwQSUwQSUwQWRlZiUyMGltYWdlX2dyaWQoaW1ncyUyQyUyMHJvd3MlMkMlMjBjb2xzKSUzQSUwQSUyMCUyMCUyMCUyMGFzc2VydCUyMGxlbihpbWdzKSUyMCUzRCUzRCUyMHJvd3MlMjAqJTIwY29scyUwQSUwQSUyMCUyMCUyMCUyMHclMkMlMjBoJTIwJTNEJTIwaW1ncyU1QjAlNUQuc2l6ZSUwQSUyMCUyMCUyMCUyMGdyaWQlMjAlM0QlMjBJbWFnZS5uZXcoJTIyUkdCJTIyJTJDJTIwc2l6ZSUzRChjb2xzJTIwKiUyMHclMkMlMjByb3dzJTIwKiUyMGgpKSUwQSUyMCUyMCUyMCUyMGdyaWRfdyUyQyUyMGdyaWRfaCUyMCUzRCUyMGdyaWQuc2l6ZSUwQSUwQSUyMCUyMCUyMCUyMGZvciUyMGklMkMlMjBpbWclMjBpbiUyMGVudW1lcmF0ZShpbWdzKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGdyaWQucGFzdGUoaW1nJTJDJTIwYm94JTNEKGklMjAlMjUlMjBjb2xzJTIwKiUyMHclMkMlMjBpJTIwJTJGJTJGJTIwY29scyUyMColMjBoKSklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBncmlk",highlighted:`<span class="hljs-keyword">import</span> os | |
| <span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">import</span> PIL | |
| <span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionPipeline | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CLIPImageProcessor, CLIPTextModel, CLIPTokenizer | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">image_grid</span>(<span class="hljs-params">imgs, rows, cols</span>): | |
| <span class="hljs-keyword">assert</span> <span class="hljs-built_in">len</span>(imgs) == rows * cols | |
| w, h = imgs[<span class="hljs-number">0</span>].size | |
| grid = Image.new(<span class="hljs-string">"RGB"</span>, size=(cols * w, rows * h)) | |
| grid_w, grid_h = grid.size | |
| <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`,lang:"py",wrap:!1});var r=s(t,4);a(r,{code:"cHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglMjAlM0QlMjAlMjJzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTUlMjIlMEFyZXBvX2lkX2VtYmVkcyUyMCUzRCUyMCUyMnNkLWNvbmNlcHRzLWxpYnJhcnklMkZjYXQtdG95JTIy",highlighted:`pretrained_model_name_or_path = <span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span> | |
| repo_id_embeds = <span class="hljs-string">"sd-concepts-library/cat-toy"</span>`,lang:"py",wrap:!1});var p=s(r,4);a(p,{code:"cGlwZWxpbmUlMjAlM0QlMjBTdGFibGVEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQocHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglMkMlMjBkdHlwZSUzRHRvcmNoLmZsb2F0MTYpLnRvKCUyMmN1ZGElMjIpJTBBJTBBcGlwZWxpbmUubG9hZF90ZXh0dWFsX2ludmVyc2lvbihyZXBvX2lkX2VtYmVkcyk=",highlighted:`pipeline = StableDiffusionPipeline.from_pretrained(pretrained_model_name_or_path, dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.load_textual_inversion(repo_id_embeds)`,lang:"py",wrap:!1});var c=s(p,4);a(c,{code:"cHJvbXB0JTIwJTNEJTIwJTIyYSUyMGdyYWZpdHRpJTIwaW4lMjBhJTIwZmF2ZWxhJTIwd2FsbCUyMHdpdGglMjBhJTIwJTNDY2F0LXRveSUzRSUyMG9uJTIwaXQlMjIlMEElMEFudW1fc2FtcGxlcyUyMCUzRCUyMDIlMEFudW1fcm93cyUyMCUzRCUyMDI=",highlighted:`prompt = <span class="hljs-string">"a grafitti in a favela wall with a <cat-toy> on it"</span> | |
| num_samples = <span class="hljs-number">2</span> | |
| num_rows = <span class="hljs-number">2</span>`,lang:"py",wrap:!1});var d=s(c,4);a(d,{code:"YWxsX2ltYWdlcyUyMCUzRCUyMCU1QiU1RCUwQWZvciUyMF8lMjBpbiUyMHJhbmdlKG51bV9yb3dzKSUzQSUwQSUyMCUyMCUyMCUyMGltYWdlcyUyMCUzRCUyMHBpcGUocHJvbXB0JTJDJTIwbnVtX2ltYWdlc19wZXJfcHJvbXB0JTNEbnVtX3NhbXBsZXMlMkMlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMjBndWlkYW5jZV9zY2FsZSUzRDcuNSkuaW1hZ2VzJTBBJTIwJTIwJTIwJTIwYWxsX2ltYWdlcy5leHRlbmQoaW1hZ2VzKSUwQSUwQWdyaWQlMjAlM0QlMjBpbWFnZV9ncmlkKGFsbF9pbWFnZXMlMkMlMjBudW1fc2FtcGxlcyUyQyUyMG51bV9yb3dzKSUwQWdyaWQ=",highlighted:`all_images = [] | |
| <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_rows): | |
| images = pipe(prompt, num_images_per_prompt=num_samples, num_inference_steps=<span class="hljs-number">50</span>, guidance_scale=<span class="hljs-number">7.5</span>).images | |
| all_images.extend(images) | |
| grid = image_grid(all_images, num_samples, num_rows) | |
| grid`,lang:"py",wrap:!1});var h=s(d,4);_(h,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/using-diffusers/textual_inversion_inference.md"}),C(2),u(g,l),T()}export{I as component}; | |
Xet Storage Details
- Size:
- 9.28 kB
- Xet hash:
- 69cac3f2cba234c8182a776cbaea9216728fd328b2c79e225056ce7ab64b2914
ยท
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.