Buckets:
| import"../chunks/DsnmJJEf.js";import{i as Z,h as w,C as R,H as e,a,E as G,s as W}from"../chunks/CFM6C53a.js";import{p as k,o as x,s as l,f as I,a as T,b as _,c as f,n as B}from"../chunks/CNc7KuUZ.js";import{D as X}from"../chunks/BK2xlcGK.js";const v='{"title":"Stable Diffusion XL Turbo","local":"stable-diffusion-xl-turbo","sections":[{"title":"모델 체크포인트 불러오기","local":"모델-체크포인트-불러오기","sections":[],"depth":2},{"title":"Text-to-image","local":"text-to-image","sections":[],"depth":2},{"title":"Image-to-image","local":"image-to-image","sections":[],"depth":2},{"title":"SDXL Turbo 속도 훨씬 더 빠르게 하기","local":"sdxl-turbo-속도-훨씬-더-빠르게-하기","sections":[],"depth":2}],"depth":1}';var Y=f('<meta name="hf:doc:metadata"/>'),E=f(`<p></p> <!> <!> <!> <p>SDXL Turbo는 adversarial time-distilled(적대적 시간 전이) <a href="https://huggingface.co/papers/2307.01952" rel="nofollow">Stable Diffusion XL</a>(SDXL) 모델로, 단 한 번의 스텝만으로 추론을 실행할 수 있습니다.</p> <p>이 가이드에서는 text-to-image와 image-to-image를 위한 SDXL-Turbo를 사용하는 방법을 설명합니다.</p> <p>시작하기 전에 다음 라이브러리가 설치되어 있는지 확인하세요:</p> <!> <!> <p>모델 가중치는 Hub의 별도 하위 폴더 또는 로컬에 저장할 수 있으며, 이 경우 <code>from_pretrained()</code> 메서드를 사용해야 합니다:</p> <!> <p>또한 <code>from_single_file()</code> 메서드를 사용하여 허브 또는 로컬에서 단일 파일 형식(<code>.ckpt</code> 또는 <code>.safetensors</code>)으로 저장된 모델 체크포인트를 불러올 수도 있습니다:</p> <!> <!> <p>Text-to-image의 경우 텍스트 프롬프트를 전달합니다. 기본적으로 SDXL Turbo는 512x512 이미지를 생성하며, 이 해상도에서 최상의 결과를 제공합니다. <code>height</code> 및 <code>width</code> 매개 변수를 768x768 또는 1024x1024로 설정할 수 있지만 이 경우 품질 저하를 예상할 수 있습니다.</p> <p>모델이 <code>guidance_scale</code> 없이 학습되었으므로 이를 0.0으로 설정해 비활성화해야 합니다. 단일 추론 스텝만으로도 고품질 이미지를 생성할 수 있습니다. | |
| 스텝 수를 2, 3 또는 4로 늘리면 이미지 품질이 향상됩니다.</p> <!> <div class="flex justify-center"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/sdxl-turbo-text2img.png" alt="generated image of a racoon in a robe"/></div> <!> <p>Image-to-image 생성의 경우 <code>num_inference_steps * strength</code>가 1보다 크거나 같은지 확인하세요. | |
| Image-to-image 파이프라인은 아래 예제에서 <code>0.5 * 2.0 = 1</code> 스텝과 같이 <code>int(num_inference_steps * strength)</code> 스텝으로 실행됩니다.</p> <!> <div class="flex justify-center"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/sdxl-turbo-img2img.png" alt="Image-to-image generation sample using SDXL Turbo"/></div> <!> <ul><li>PyTorch 버전 2 이상을 사용하는 경우 UNet을 컴파일합니다. 첫 번째 추론 실행은 매우 느리지만 이후 실행은 훨씬 빨라집니다.</li></ul> <!> <ul><li>기본 VAE를 사용하는 경우, 각 생성 전후에 비용이 많이 드는 <code>dtype</code> 변환을 피하기 위해 <code>float32</code>로 유지하세요. 이 작업은 첫 생성 이전에 한 번만 수행하면 됩니다:</li></ul> <!> <p>또는, 커뮤니티 회원인 <a href="https://huggingface.co/madebyollin" rel="nofollow"><code>@madebyollin</code></a>이 만든 <a href="https://huggingface.co/madebyollin/sdxl-vae-fp16-fix" rel="nofollow">16비트 VAE</a>를 사용할 수도 있으며, 이는 <code>float32</code>로 업캐스트할 필요가 없습니다.</p> <!> <p></p>`,1);function D(j,Q){k(Q,!1),x(()=>{new URLSearchParams(window.location.search).get("fw")}),Z();var s=E();w("8cc8ve",u=>{var y=Y();W(y,"content",v),T(u,y)});var t=l(I(s),2);R(t,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var o=l(t,2);X(o,{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/sdxl_turbo.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/sdxl_turbo.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/sdxl_turbo.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/sdxl_turbo.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/sdxl_turbo.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/sdxl_turbo.ipynb"}]});var i=l(o,2);e(i,{title:"Stable Diffusion XL Turbo",local:"stable-diffusion-xl-turbo",headingTag:"h1"});var n=l(i,8);a(n,{code:"JTIzJTIwQ29sYWIlRUMlOTclOTAlRUMlODQlOUMlMjAlRUQlOTUlODQlRUMlOUElOTQlRUQlOTUlOUMlMjAlRUIlOUQlQkMlRUMlOUQlQjQlRUIlQjglOEMlRUIlOUYlQUMlRUIlQTYlQUMlRUIlQTUlQkMlMjAlRUMlODQlQTQlRUMlQjklOTglRUQlOTUlOTglRUElQjglQjAlMjAlRUMlOUMlODQlRUQlOTUlQjQlMjAlRUMlQTMlQkMlRUMlODQlOUQlRUMlOUQlODQlMjAlRUMlQTAlOUMlRUMlOTklQjglRUQlOTUlOTglRUMlODQlQjglRUMlOUElOTQlMEElMjMhcGlwJTIwaW5zdGFsbCUyMC1xJTIwZGlmZnVzZXJzJTIwdHJhbnNmb3JtZXJzJTIwYWNjZWxlcmF0ZQ==",highlighted:`<span class="hljs-comment"># Colab에서 필요한 라이브러리를 설치하기 위해 주석을 제외하세요</span> | |
| <span class="hljs-comment">#!pip install -q diffusers transformers accelerate</span>`,lang:"py",wrap:!1});var p=l(n,2);e(p,{title:"모델 체크포인트 불러오기",local:"모델-체크포인트-불러오기",headingTag:"h2"});var c=l(p,4);a(c,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEF1dG9QaXBlbGluZUZvclRleHQySW1hZ2UlMkMlMjBBdXRvUGlwZWxpbmVGb3JJbWFnZTJJbWFnZSUwQWltcG9ydCUyMHRvcmNoJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBBdXRvUGlwZWxpbmVGb3JUZXh0MkltYWdlLmZyb21fcHJldHJhaW5lZCglMjJzdGFiaWxpdHlhaSUyRnNkeGwtdHVyYm8lMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMjB2YXJpYW50JTNEJTIyZnAxNiUyMiklMEFwaXBlbGluZSUyMCUzRCUyMHBpcGVsaW5lLnRvKCUyMmN1ZGElMjIp",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image, AutoPipelineForImage2Image | |
| <span class="hljs-keyword">import</span> torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained(<span class="hljs-string">"stabilityai/sdxl-turbo"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipeline = pipeline.to(<span class="hljs-string">"cuda"</span>)`,lang:"py",wrap:!1});var d=l(c,4);a(d,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFN0YWJsZURpZmZ1c2lvblhMUGlwZWxpbmUlMEFpbXBvcnQlMjB0b3JjaCUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZS5mcm9tX3NpbmdsZV9maWxlKCUwQSUyMCUyMCUyMCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZzdGFiaWxpdHlhaSUyRnNkeGwtdHVyYm8lMkZibG9iJTJGbWFpbiUyRnNkX3hsX3R1cmJvXzEuMF9mcDE2LnNhZmV0ZW5zb3JzJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KSUwQXBpcGVsaW5lJTIwJTNEJTIwcGlwZWxpbmUudG8oJTIyY3VkYSUyMik=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionXLPipeline | |
| <span class="hljs-keyword">import</span> torch | |
| pipeline = StableDiffusionXLPipeline.from_single_file( | |
| <span class="hljs-string">"https://huggingface.co/stabilityai/sdxl-turbo/blob/main/sd_xl_turbo_1.0_fp16.safetensors"</span>, torch_dtype=torch.float16) | |
| pipeline = pipeline.to(<span class="hljs-string">"cuda"</span>)`,lang:"py",wrap:!1});var r=l(d,2);e(r,{title:"Text-to-image",local:"text-to-image",headingTag:"h2"});var m=l(r,6);a(m,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEF1dG9QaXBlbGluZUZvclRleHQySW1hZ2UlMEFpbXBvcnQlMjB0b3JjaCUwQSUwQXBpcGVsaW5lX3RleHQyaW1hZ2UlMjAlM0QlMjBBdXRvUGlwZWxpbmVGb3JUZXh0MkltYWdlLmZyb21fcHJldHJhaW5lZCglMjJzdGFiaWxpdHlhaSUyRnNkeGwtdHVyYm8lMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMjB2YXJpYW50JTNEJTIyZnAxNiUyMiklMEFwaXBlbGluZV90ZXh0MmltYWdlJTIwJTNEJTIwcGlwZWxpbmVfdGV4dDJpbWFnZS50byglMjJjdWRhJTIyKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBjaW5lbWF0aWMlMjBzaG90JTIwb2YlMjBhJTIwYmFieSUyMHJhY29vbiUyMHdlYXJpbmclMjBhbiUyMGludHJpY2F0ZSUyMGl0YWxpYW4lMjBwcmllc3QlMjByb2JlLiUyMiUwQSUwQWltYWdlJTIwJTNEJTIwcGlwZWxpbmVfdGV4dDJpbWFnZShwcm9tcHQlM0Rwcm9tcHQlMkMlMjBndWlkYW5jZV9zY2FsZSUzRDAuMCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0QxKS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2U=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image | |
| <span class="hljs-keyword">import</span> torch | |
| pipeline_text2image = AutoPipelineForText2Image.from_pretrained(<span class="hljs-string">"stabilityai/sdxl-turbo"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipeline_text2image = pipeline_text2image.to(<span class="hljs-string">"cuda"</span>) | |
| prompt = <span class="hljs-string">"A cinematic shot of a baby racoon wearing an intricate italian priest robe."</span> | |
| image = pipeline_text2image(prompt=prompt, guidance_scale=<span class="hljs-number">0.0</span>, num_inference_steps=<span class="hljs-number">1</span>).images[<span class="hljs-number">0</span>] | |
| image`,lang:"py",wrap:!1});var M=l(m,4);e(M,{title:"Image-to-image",local:"image-to-image",headingTag:"h2"});var g=l(M,4);a(g,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEF1dG9QaXBlbGluZUZvckltYWdlMkltYWdlJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGxvYWRfaW1hZ2UlMkMlMjBtYWtlX2ltYWdlX2dyaWQlMEElMEElMjMlMjAlRUMlQjIlQjQlRUQlODElQUMlRUQlOEYlQUMlRUMlOUQlQjglRUQlOEElQjglRUIlQTUlQkMlMjAlRUIlQjYlODglRUIlOUYlQUMlRUMlOTglQUMlMjAlRUIlOTUlOEMlMjAlRUMlQjYlOTQlRUElQjAlODAlMjAlRUIlQTklOTQlRUIlQUElQTglRUIlQTYlQUMlMjAlRUMlODYlOEMlRUIlQUElQTglRUIlQTUlQkMlMjAlRUQlOTQlQkMlRUQlOTUlOTglRUIlQTAlQTQlRUIlQTklQjQlMjBmcm9tX3BpcGUlRUIlQTUlQkMlMjAlRUMlODIlQUMlRUMlOUElQTklRUQlOTUlOTglRUMlODQlQjglRUMlOUElOTQuJTBBcGlwZWxpbmUlMjAlM0QlMjBBdXRvUGlwZWxpbmVGb3JJbWFnZTJJbWFnZS5mcm9tX3BpcGUocGlwZWxpbmVfdGV4dDJpbWFnZSkudG8oJTIyY3VkYSUyMiklMEElMEFpbml0X2ltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZSglMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZodWdnaW5nZmFjZSUyRmRvY3VtZW50YXRpb24taW1hZ2VzJTJGcmVzb2x2ZSUyRm1haW4lMkZkaWZmdXNlcnMlMkZjYXQucG5nJTIyKSUwQWluaXRfaW1hZ2UlMjAlM0QlMjBpbml0X2ltYWdlLnJlc2l6ZSgoNTEyJTJDJTIwNTEyKSklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJjYXQlMjB3aXphcmQlMkMlMjBnYW5kYWxmJTJDJTIwbG9yZCUyMG9mJTIwdGhlJTIwcmluZ3MlMkMlMjBkZXRhaWxlZCUyQyUyMGZhbnRhc3klMkMlMjBjdXRlJTJDJTIwYWRvcmFibGUlMkMlMjBQaXhhciUyQyUyMERpc25leSUyQyUyMDhrJTIyJTBBJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlMkMlMjBpbWFnZSUzRGluaXRfaW1hZ2UlMkMlMjBzdHJlbmd0aCUzRDAuNSUyQyUyMGd1aWRhbmNlX3NjYWxlJTNEMC4wJTJDJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDIpLmltYWdlcyU1QjAlNUQlMEFtYWtlX2ltYWdlX2dyaWQoJTVCaW5pdF9pbWFnZSUyQyUyMGltYWdlJTVEJTJDJTIwcm93cyUzRDElMkMlMjBjb2xzJTNEMik=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForImage2Image | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, make_image_grid | |
| <span class="hljs-comment"># 체크포인트를 불러올 때 추가 메모리 소모를 피하려면 from_pipe를 사용하세요.</span> | |
| pipeline = AutoPipelineForImage2Image.from_pipe(pipeline_text2image).to(<span class="hljs-string">"cuda"</span>) | |
| init_image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png"</span>) | |
| init_image = init_image.resize((<span class="hljs-number">512</span>, <span class="hljs-number">512</span>)) | |
| prompt = <span class="hljs-string">"cat wizard, gandalf, lord of the rings, detailed, fantasy, cute, adorable, Pixar, Disney, 8k"</span> | |
| image = pipeline(prompt, image=init_image, strength=<span class="hljs-number">0.5</span>, guidance_scale=<span class="hljs-number">0.0</span>, num_inference_steps=<span class="hljs-number">2</span>).images[<span class="hljs-number">0</span>] | |
| make_image_grid([init_image, image], rows=<span class="hljs-number">1</span>, cols=<span class="hljs-number">2</span>)`,lang:"py",wrap:!1});var h=l(g,4);e(h,{title:"SDXL Turbo 속도 훨씬 더 빠르게 하기",local:"sdxl-turbo-속도-훨씬-더-빠르게-하기",headingTag:"h2"});var U=l(h,4);a(U,{code:"cGlwZS51bmV0JTIwJTNEJTIwdG9yY2guY29tcGlsZShwaXBlLnVuZXQlMkMlMjBtb2RlJTNEJTIycmVkdWNlLW92ZXJoZWFkJTIyJTJDJTIwZnVsbGdyYXBoJTNEVHJ1ZSk=",highlighted:'pipe.unet = torch.<span class="hljs-built_in">compile</span>(pipe.unet, mode=<span class="hljs-string">"reduce-overhead"</span>, fullgraph=<span class="hljs-literal">True</span>)',lang:"py",wrap:!1});var b=l(U,4);a(b,{code:"cGlwZS51cGNhc3RfdmFlKCk=",highlighted:"pipe.upcast_vae()",lang:"py",wrap:!1});var J=l(b,4);G(J,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/using-diffusers/sdxl_turbo.md"}),B(2),T(j,s),_()}export{D as component}; | |
Xet Storage Details
- Size:
- 13.4 kB
- Xet hash:
- 08fdc8b1d1b3e69b1b0997aaec720e58c82c89edbda7ad795e964719dbfa1774
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.