Buckets:
| import{s as Qs,o as Ss,n as Rs}from"../chunks/scheduler.182ea377.js";import{S as Vs,i as Ls,g as a,s as i,p as M,x as Es,A as Ys,h as n,f as l,c as o,q as u,j as h,m as p,y as Ns,k as r,v as c,a as s,r as d,d as y,t as f,u as J}from"../chunks/index.008d68e4.js";import{T as Gt}from"../chunks/Tip.4f096367.js";import{I as j}from"../chunks/IconCopyLink.96bbb92b.js";import{C as E}from"../chunks/CodeBlock.5ed6eb7b.js";import{D as Xs}from"../chunks/DocNotebookDropdown.bb388256.js";function Fs(N){let m,T="You may have noticed that we set <code>guidance_scale=1.0</code>, which disables classifer-free-guidance. This is because the LCM-LoRA is trained with guidance, so the batch size does not have to be doubled in this case. This leads to a faster inference time, with the drawback that negative prompts don’t have any effect on the denoising process.",w,g,U="You can also use guidance with LCM-LoRA, but due to the nature of training the model is very sensitve to the <code>guidance_scale</code> values, high values can lead to artifacts in the generated images. In our experiments, we found that the best values are in the range of [1.0, 2.0].";return{c(){m=a("p"),m.innerHTML=T,w=i(),g=a("p"),g.innerHTML=U},l(b){m=n(b,"P",{"data-svelte-h":!0}),p(m)!=="svelte-x2r697"&&(m.innerHTML=T),w=o(b),g=n(b,"P",{"data-svelte-h":!0}),p(g)!=="svelte-1sl97s7"&&(g.innerHTML=U)},m(b,Z){s(b,m,Z),s(b,w,Z),s(b,g,Z)},p:Rs,d(b){b&&(l(m),l(w),l(g))}}}function xs(N){let m,T="You can get different results based on your prompt and the image you provide. To get the best results, we recommend trying different values for <code>num_inference_steps</code>, <code>strength</code>, and <code>guidance_scale</code> parameters and choose the best one.";return{c(){m=a("p"),m.innerHTML=T},l(w){m=n(w,"P",{"data-svelte-h":!0}),p(m)!=="svelte-18pswq"&&(m.innerHTML=T)},m(w,g){s(w,m,g)},p:Rs,d(w){w&&l(m)}}}function As(N){let m;return{c(){m=Es("The inference parameters in this example might not work for all examples, so we recommend you to try different values for `num_inference_steps`, `guidance_scale`, `controlnet_conditioning_scale` and `cross_attention_kwargs` parameters and choose the best one.")},l(T){m=Ns(T,"The inference parameters in this example might not work for all examples, so we recommend you to try different values for `num_inference_steps`, `guidance_scale`, `controlnet_conditioning_scale` and `cross_attention_kwargs` parameters and choose the best one.")},m(T,w){s(T,m,w)},d(T){T&&l(m)}}}function Hs(N){let m,T,w,g,U,b,Z,q,wt,Ae,Ct="Performing inference with LCM-LoRA",hl,D,Bt="Latent Consistency Models (LCM) enable quality image generation in typically 2-4 steps making it possible to use diffusion models in almost real-time settings.",Ml,P,kt='From the <a href="https://latent-consistency-models.github.io/" rel="nofollow">official website</a>:',ul,K,_t="<p>LCMs can be distilled from any pre-trained Stable Diffusion (SD) in only 4,000 training steps (~32 A100 GPU Hours) for generating high quality 768 x 768 resolution images in 2~4 steps or even one step, significantly accelerating text-to-image generation. We employ LCM to distill the Dreamshaper-V7 version of SD in just 4,000 training iterations.</p>",dl,O,Rt='For a more technical overview of LCMs, refer to <a href="https://huggingface.co/papers/2310.04378" rel="nofollow">the paper</a>.',yl,ee,Et=`However, each model needs to be distilled separately for latent consistency distillation. The core idea with LCM-LoRA is to train just a few adapter layers, the adapter being LoRA in this case. | |
| This way, we don’t have to train the full model and keep the number of trainable parameters manageable. The resulting LoRAs can then be applied to any fine-tuned version of the model without distilling them separately. | |
| Additionally, the LoRAs can be applied to image-to-image, ControlNet/T2I-Adapter, inpainting, AnimateDiff etc. | |
| The LCM-LoRA can also be combined with other LoRAs to generate styled images in very few steps (4-8).`,fl,le,Nt='LCM-LoRAs are available for <a href="https://huggingface.co/runwayml/stable-diffusion-v1-5" rel="nofollow">stable-diffusion-v1-5</a>, <a href="https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0" rel="nofollow">stable-diffusion-xl-base-1.0</a>, and the <a href="https://huggingface.co/segmind/SSD-1B" rel="nofollow">SSD-1B</a> model. All the checkpoints can be found in this <a href="https://huggingface.co/collections/latent-consistency/latent-consistency-models-loras-654cdd24e111e16f0865fba6" rel="nofollow">collection</a>.',Jl,te,Qt='For more details about LCM-LoRA, refer to <a href="https://huggingface.co/papers/2311.05556" rel="nofollow">the technical report</a>.',wl,se,St="This guide shows how to perform inference with LCM-LoRAs for",bl,ae,Vt="<li>text-to-image</li> <li>image-to-image</li> <li>combined with styled LoRAs</li> <li>ControlNet/T2I-Adapter</li> <li>inpainting</li> <li>AnimateDiff</li>",Tl,ne,Lt=`Before going through this guide, we’ll take a look at the general workflow for performing inference with LCM-LoRAs. | |
| LCM-LoRAs are similar to other Stable Diffusion LoRAs so they can be used with any <a href="/docs/diffusers/v0.25.0/ko/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a> that supports LoRAs.`,gl,ie,Yt='<li>Load the task specific pipeline and model.</li> <li>Set the scheduler to <a href="/docs/diffusers/v0.25.0/ko/api/schedulers/lcm#diffusers.LCMScheduler">LCMScheduler</a>.</li> <li>Load the LCM-LoRA weights for the model.</li> <li>Reduce the <code>guidance_scale</code> between <code>[1.0, 2.0]</code> and set the <code>num_inference_steps</code> between [4, 8].</li> <li>Perform inference with the pipeline with the usual parameters.</li>',Ul,oe,Xt="Let’s look at how we can perform inference with LCM-LoRAs for different tasks.",jl,pe,Ft='First, make sure you have <a href="https://github.com/huggingface/peft" rel="nofollow">peft</a> installed, for better LoRA support.',Zl,re,Wl,W,Q,ll,ce,bt,He,xt="Text-to-image",vl,me,At='You’ll use the <a href="/docs/diffusers/v0.25.0/ko/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline">StableDiffusionXLPipeline</a> with the scheduler: <a href="/docs/diffusers/v0.25.0/ko/api/schedulers/lcm#diffusers.LCMScheduler">LCMScheduler</a> and then load the LCM-LoRA. Together with the LCM-LoRA and the scheduler, the pipeline enables a fast inference workflow overcoming the slow iterative nature of diffusion models.',Il,he,Gl,Me,Ht='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdxl_t2i.png"/>',Cl,ue,$t="Notice that we use only 4 steps for generation which is way less than what’s typically used for standard SDXL.",Bl,S,kl,v,V,tl,de,Tt,$e,zt="Inference with a fine-tuned model",_l,ye,qt='As mentioned above, the LCM-LoRA can be applied to any fine-tuned version of the model without having to distill them separately. Let’s look at how we can perform inference with a fine-tuned model. In this example, we’ll use the <a href="https://huggingface.co/Linaqruf/animagine-xl" rel="nofollow">animagine-xl</a> model, which is a fine-tuned version of the SDXL model for generating anime.',Rl,fe,El,Je,Dt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdxl_t2i_finetuned.png"/>',Nl,I,L,sl,we,gt,ze,Pt="Image-to-image",Ql,be,Kt='LCM-LoRA can be applied to image-to-image tasks too. Let’s look at how we can perform image-to-image generation with LCMs. For this example we’ll use the <a href="https://huggingface.co/Lykon/dreamshaper-7" rel="nofollow">dreamshaper-7</a> model and the LCM-LoRA for <code>stable-diffusion-v1-5 </code>.',Sl,Te,Vl,ge,Ot='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdv1-5_i2i.png"/>',Ll,Y,Yl,G,X,al,Ue,Ut,qe,es="Combine with styled LoRAs",Xl,je,ls=`LCM-LoRA can be combined with other LoRAs to generate styled-images in very few steps (4-8). In the following example, we’ll use the LCM-LoRA with the <a href="TheLastBen/Papercut_SDXL">papercut LoRA</a>. | |
| To learn more about how to combine LoRAs, refer to <a href="https://huggingface.co/docs/diffusers/tutorials/using_peft_for_inference#combine-multiple-adapters" rel="nofollow">this guide</a>.`,Fl,Ze,xl,We,ts='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdx_lora_mix.png"/>',Al,C,F,nl,ve,jt,De,ss="ControlNet/T2I-Adapter",Hl,Ie,as="Let’s look at how we can perform inference with ControlNet/T2I-Adapter and LCM-LoRA.",$l,B,x,il,Ge,Zt,Pe,ns="ControlNet",zl,Ce,ql,Be,is='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdv1-5_controlnet.png"/>',Dl,A,Pl,k,H,ol,ke,Wt,Ke,os="T2I-Adapter",Kl,_e,ps='This example shows how to use the LCM-LoRA with the <a href="TencentARC/t2i-adapter-canny-sdxl-1.0">Canny T2I-Adapter</a> and SDXL.',Ol,Re,et,Ee,rs='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdxl_t2iadapter.png"/>',lt,_,$,pl,Ne,vt,Oe,cs="Inpainting",tt,Qe,ms="LCM-LoRA can be used for inpainting as well.",st,Se,at,Ve,hs='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdv1-5_inpainting.png"/>',nt,R,z,rl,Le,It,el,Ms="AnimateDiff",it,Ye,us=`<code>AnimateDiff</code> allows you to animate images using Stable Diffusion models. To get good results, we need to generate multiple frames (16-24), and doing this with standard SD models can be very slow. | |
| LCM-LoRA can be used to speed up the process significantly, as you just need to do 4-8 steps for each frame. Let’s look at how we can perform animation with LCM-LoRA and AnimateDiff.`,ot,Xe,pt,Fe,ds='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lcm/lcm_sdv1-5_animatediff.gif"/>',rt;return w=new Xs({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/inference_with_lcm_lora.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/inference_with_lcm_lora.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/inference_with_lcm_lora.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/inference_with_lcm_lora.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/pytorch/inference_with_lcm_lora.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/ko/tensorflow/inference_with_lcm_lora.ipynb"}]}}),q=new j({}),re=new E({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1VJTIwcGVmdA==",highlighted:"pip install -U peft"}}),ce=new j({}),he=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMkMlMjBMQ01TY2hlZHVsZXIlMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnN0YWJpbGl0eWFpJTJGc3RhYmxlLWRpZmZ1c2lvbi14bC1iYXNlLTEuMCUyMiUyQyUwQSUyMCUyMCUyMCUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQSUwQSUyMyUyMHNldCUyMHNjaGVkdWxlciUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwTENNU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEElMjMlMjBsb2FkJTIwTENNLUxvUkElMEFwaXBlLmxvYWRfbG9yYV93ZWlnaHRzKCUyMmxhdGVudC1jb25zaXN0ZW5jeSUyRmxjbS1sb3JhLXNkeGwlMjIpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyU2VsZi1wb3J0cmFpdCUyMG9pbCUyMHBhaW50aW5nJTJDJTIwYSUyMGJlYXV0aWZ1bCUyMGN5Ym9yZyUyMHdpdGglMjBnb2xkZW4lMjBoYWlyJTJDJTIwOGslMjIlMEElMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCg0MiklMEFpbWFnZSUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQlMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMjBndWlkYW5jZV9zY2FsZSUzRDEuMCUwQSkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline, LCMScheduler | |
| pipe = DiffusionPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| torch_dtype=torch.float16 | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdxl"</span>) | |
| prompt = <span class="hljs-string">"Self-portrait oil painting, a beautiful cyborg with golden hair, 8k"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">42</span>) | |
| image = pipe( | |
| prompt=prompt, num_inference_steps=<span class="hljs-number">4</span>, generator=generator, guidance_scale=<span class="hljs-number">1.0</span> | |
| ).images[<span class="hljs-number">0</span>]`}}),S=new Gt({props:{$$slots:{default:[Fs]},$$scope:{ctx:N}}}),de=new j({}),fe=new E({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTJDJTIwTENNU2NoZWR1bGVyJTBBJTBBcGlwZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJMaW5hcXJ1ZiUyRmFuaW1hZ2luZS14bCUyMiUyQyUwQSUyMCUyMCUyMCUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQSUwQSUyMyUyMHNldCUyMHNjaGVkdWxlciUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwTENNU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEElMjMlMjBsb2FkJTIwTENNLUxvUkElMEFwaXBlLmxvYWRfbG9yYV93ZWlnaHRzKCUyMmxhdGVudC1jb25zaXN0ZW5jeSUyRmxjbS1sb3JhLXNkeGwlMjIpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyZmFjZSUyMGZvY3VzJTJDJTIwY3V0ZSUyQyUyMG1hc3RlcnBpZWNlJTJDJTIwYmVzdCUyMHF1YWxpdHklMkMlMjAxZ2lybCUyQyUyMGdyZWVuJTIwaGFpciUyQyUyMHN3ZWF0ZXIlMkMlMjBsb29raW5nJTIwYXQlMjB2aWV3ZXIlMkMlMjB1cHBlciUyMGJvZHklMkMlMjBiZWFuaWUlMkMlMjBvdXRkb29ycyUyQyUyMG5pZ2h0JTJDJTIwdHVydGxlbmVjayUyMiUwQSUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLm1hbnVhbF9zZWVkKDApJTBBaW1hZ2UlMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTIwZ3VpZGFuY2Vfc2NhbGUlM0QxLjAlMEEpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline, LCMScheduler | |
| pipe = DiffusionPipeline.from_pretrained( | |
| <span class="hljs-string">"Linaqruf/animagine-xl"</span>, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| torch_dtype=torch.float16 | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdxl"</span>) | |
| prompt = <span class="hljs-string">"face focus, cute, masterpiece, best quality, 1girl, green hair, sweater, looking at viewer, upper body, beanie, outdoors, night, turtleneck"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe( | |
| prompt=prompt, num_inference_steps=<span class="hljs-number">4</span>, generator=generator, guidance_scale=<span class="hljs-number">1.0</span> | |
| ).images[<span class="hljs-number">0</span>]`}}),we=new j({}),Te=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9ySW1hZ2UySW1hZ2UlMkMlMjBMQ01TY2hlZHVsZXIlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwbWFrZV9pbWFnZV9ncmlkJTJDJTIwbG9hZF9pbWFnZSUwQSUwQXBpcGUlMjAlM0QlMjBBdXRvUGlwZWxpbmVGb3JJbWFnZTJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyTHlrb24lMkZkcmVhbXNoYXBlci03JTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwc2V0JTIwc2NoZWR1bGVyJTBBcGlwZS5zY2hlZHVsZXIlMjAlM0QlMjBMQ01TY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQSUyMyUyMGxvYWQlMjBMQ00tTG9SQSUwQXBpcGUubG9hZF9sb3JhX3dlaWdodHMoJTIybGF0ZW50LWNvbnNpc3RlbmN5JTJGbGNtLWxvcmEtc2R2MS01JTIyKSUwQSUwQSUyMyUyMHByZXBhcmUlMjBpbWFnZSUwQXVybCUyMCUzRCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRmltZzJpbWctaW5pdC5wbmclMjIlMEFpbml0X2ltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZSh1cmwpJTBBcHJvbXB0JTIwJTNEJTIwJTIyQXN0cm9uYXV0cyUyMGluJTIwYSUyMGp1bmdsZSUyQyUyMGNvbGQlMjBjb2xvciUyMHBhbGV0dGUlMkMlMjBtdXRlZCUyMGNvbG9ycyUyQyUyMGRldGFpbGVkJTJDJTIwOGslMjIlMEElMEElMjMlMjBwYXNzJTIwcHJvbXB0JTIwYW5kJTIwaW1hZ2UlMjB0byUyMHBpcGVsaW5lJTBBZ2VuZXJhdG9yJTIwJTNEJTIwdG9yY2gubWFudWFsX3NlZWQoMCklMEFpbWFnZSUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0Rpbml0X2ltYWdlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDElMkMlMEElMjAlMjAlMjAlMjBzdHJlbmd0aCUzRDAuNiUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUwQSkuaW1hZ2VzJTVCMCU1RCUwQW1ha2VfaW1hZ2VfZ3JpZCglNUJpbml0X2ltYWdlJTJDJTIwaW1hZ2UlNUQlMkMlMjByb3dzJTNEMSUyQyUyMGNvbHMlM0QyKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForImage2Image, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> make_image_grid, load_image | |
| pipe = AutoPipelineForImage2Image.from_pretrained( | |
| <span class="hljs-string">"Lykon/dreamshaper-7"</span>, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdv1-5"</span>) | |
| <span class="hljs-comment"># prepare image</span> | |
| url = <span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/img2img-init.png"</span> | |
| init_image = load_image(url) | |
| prompt = <span class="hljs-string">"Astronauts in a jungle, cold color palette, muted colors, detailed, 8k"</span> | |
| <span class="hljs-comment"># pass prompt and image to pipeline</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe( | |
| prompt, | |
| image=init_image, | |
| num_inference_steps=<span class="hljs-number">4</span>, | |
| guidance_scale=<span class="hljs-number">1</span>, | |
| strength=<span class="hljs-number">0.6</span>, | |
| generator=generator | |
| ).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>)`}}),Y=new Gt({props:{$$slots:{default:[xs]},$$scope:{ctx:N}}}),Ue=new j({}),Ze=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMkMlMjBMQ01TY2hlZHVsZXIlMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnN0YWJpbGl0eWFpJTJGc3RhYmxlLWRpZmZ1c2lvbi14bC1iYXNlLTEuMCUyMiUyQyUwQSUyMCUyMCUyMCUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQSUwQSUyMyUyMHNldCUyMHNjaGVkdWxlciUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwTENNU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEElMjMlMjBsb2FkJTIwTG9SQXMlMEFwaXBlLmxvYWRfbG9yYV93ZWlnaHRzKCUyMmxhdGVudC1jb25zaXN0ZW5jeSUyRmxjbS1sb3JhLXNkeGwlMjIlMkMlMjBhZGFwdGVyX25hbWUlM0QlMjJsY20lMjIpJTBBcGlwZS5sb2FkX2xvcmFfd2VpZ2h0cyglMjJUaGVMYXN0QmVuJTJGUGFwZXJjdXRfU0RYTCUyMiUyQyUyMHdlaWdodF9uYW1lJTNEJTIycGFwZXJjdXQuc2FmZXRlbnNvcnMlMjIlMkMlMjBhZGFwdGVyX25hbWUlM0QlMjJwYXBlcmN1dCUyMiklMEElMEElMjMlMjBDb21iaW5lJTIwTG9SQXMlMEFwaXBlLnNldF9hZGFwdGVycyglNUIlMjJsY20lMjIlMkMlMjAlMjJwYXBlcmN1dCUyMiU1RCUyQyUyMGFkYXB0ZXJfd2VpZ2h0cyUzRCU1QjEuMCUyQyUyMDAuOCU1RCklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJwYXBlcmN1dCUyQyUyMGElMjBjdXRlJTIwZm94JTIyJTBBZ2VuZXJhdG9yJTIwJTNEJTIwdG9yY2gubWFudWFsX3NlZWQoMCklMEFpbWFnZSUyMCUzRCUyMHBpcGUocHJvbXB0JTJDJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQlMkMlMjBndWlkYW5jZV9zY2FsZSUzRDElMkMlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IpLmltYWdlcyU1QjAlNUQlMEFpbWFnZQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline, LCMScheduler | |
| pipe = DiffusionPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| torch_dtype=torch.float16 | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LoRAs</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdxl"</span>, adapter_name=<span class="hljs-string">"lcm"</span>) | |
| pipe.load_lora_weights(<span class="hljs-string">"TheLastBen/Papercut_SDXL"</span>, weight_name=<span class="hljs-string">"papercut.safetensors"</span>, adapter_name=<span class="hljs-string">"papercut"</span>) | |
| <span class="hljs-comment"># Combine LoRAs</span> | |
| pipe.set_adapters([<span class="hljs-string">"lcm"</span>, <span class="hljs-string">"papercut"</span>], adapter_weights=[<span class="hljs-number">1.0</span>, <span class="hljs-number">0.8</span>]) | |
| prompt = <span class="hljs-string">"papercut, a cute fox"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe(prompt, num_inference_steps=<span class="hljs-number">4</span>, guidance_scale=<span class="hljs-number">1</span>, generator=generator).images[<span class="hljs-number">0</span>] | |
| image`}}),ve=new j({}),Ge=new j({}),Ce=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjBjdjIlMEFpbXBvcnQlMjBudW1weSUyMGFzJTIwbnAlMEFmcm9tJTIwUElMJTIwaW1wb3J0JTIwSW1hZ2UlMEElMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uQ29udHJvbE5ldFBpcGVsaW5lJTJDJTIwQ29udHJvbE5ldE1vZGVsJTJDJTIwTENNU2NoZWR1bGVyJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGxvYWRfaW1hZ2UlMEElMEFpbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZoZi5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGaW5wdXRfaW1hZ2VfdmVybWVlci5wbmclMjIlMEEpLnJlc2l6ZSgoNTEyJTJDJTIwNTEyKSklMEElMEFpbWFnZSUyMCUzRCUyMG5wLmFycmF5KGltYWdlKSUwQSUwQWxvd190aHJlc2hvbGQlMjAlM0QlMjAxMDAlMEFoaWdoX3RocmVzaG9sZCUyMCUzRCUyMDIwMCUwQSUwQWltYWdlJTIwJTNEJTIwY3YyLkNhbm55KGltYWdlJTJDJTIwbG93X3RocmVzaG9sZCUyQyUyMGhpZ2hfdGhyZXNob2xkKSUwQWltYWdlJTIwJTNEJTIwaW1hZ2UlNUIlM0ElMkMlMjAlM0ElMkMlMjBOb25lJTVEJTBBaW1hZ2UlMjAlM0QlMjBucC5jb25jYXRlbmF0ZSglNUJpbWFnZSUyQyUyMGltYWdlJTJDJTIwaW1hZ2UlNUQlMkMlMjBheGlzJTNEMiklMEFjYW5ueV9pbWFnZSUyMCUzRCUyMEltYWdlLmZyb21hcnJheShpbWFnZSklMEElMEFjb250cm9sbmV0JTIwJTNEJTIwQ29udHJvbE5ldE1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJsbGx5YXN2aWVsJTJGc2QtY29udHJvbG5ldC1jYW5ueSUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiklMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uQ29udHJvbE5ldFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJydW53YXltbCUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyMiUyQyUwQSUyMCUyMCUyMCUyMGNvbnRyb2xuZXQlM0Rjb250cm9sbmV0JTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwc2FmZXR5X2NoZWNrZXIlM0ROb25lJTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwc2V0JTIwc2NoZWR1bGVyJTBBcGlwZS5zY2hlZHVsZXIlMjAlM0QlMjBMQ01TY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQSUyMyUyMGxvYWQlMjBMQ00tTG9SQSUwQXBpcGUubG9hZF9sb3JhX3dlaWdodHMoJTIybGF0ZW50LWNvbnNpc3RlbmN5JTJGbGNtLWxvcmEtc2R2MS01JTIyKSUwQSUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLm1hbnVhbF9zZWVkKDApJTBBaW1hZ2UlMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMCUyMnRoZSUyMG1vbmElMjBsaXNhJTIyJTJDJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0RjYW5ueV9pbWFnZSUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0JTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0QxLjUlMkMlMEElMjAlMjAlMjAlMjBjb250cm9sbmV0X2NvbmRpdGlvbmluZ19zY2FsZSUzRDAuOCUyQyUwQSUyMCUyMCUyMCUyMGNyb3NzX2F0dGVudGlvbl9rd2FyZ3MlM0QlN0IlMjJzY2FsZSUyMiUzQSUyMDElN0QlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMEEpLmltYWdlcyU1QjAlNUQlMEFtYWtlX2ltYWdlX2dyaWQoJTVCY2FubnlfaW1hZ2UlMkMlMjBpbWFnZSU1RCUyQyUyMHJvd3MlM0QxJTJDJTIwY29scyUzRDIp",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">import</span> cv2 | |
| <span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| <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> StableDiffusionControlNetPipeline, ControlNetModel, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image | |
| image = load_image( | |
| <span class="hljs-string">"https://hf.co/datasets/huggingface/documentation-images/resolve/main/diffusers/input_image_vermeer.png"</span> | |
| ).resize((<span class="hljs-number">512</span>, <span class="hljs-number">512</span>)) | |
| image = np.array(image) | |
| low_threshold = <span class="hljs-number">100</span> | |
| high_threshold = <span class="hljs-number">200</span> | |
| image = cv2.Canny(image, low_threshold, high_threshold) | |
| image = image[:, :, <span class="hljs-literal">None</span>] | |
| image = np.concatenate([image, image, image], axis=<span class="hljs-number">2</span>) | |
| canny_image = Image.fromarray(image) | |
| controlnet = ControlNetModel.from_pretrained(<span class="hljs-string">"lllyasviel/sd-controlnet-canny"</span>, torch_dtype=torch.float16) | |
| pipe = StableDiffusionControlNetPipeline.from_pretrained( | |
| <span class="hljs-string">"runwayml/stable-diffusion-v1-5"</span>, | |
| controlnet=controlnet, | |
| torch_dtype=torch.float16, | |
| safety_checker=<span class="hljs-literal">None</span>, | |
| variant=<span class="hljs-string">"fp16"</span> | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdv1-5"</span>) | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe( | |
| <span class="hljs-string">"the mona lisa"</span>, | |
| image=canny_image, | |
| num_inference_steps=<span class="hljs-number">4</span>, | |
| guidance_scale=<span class="hljs-number">1.5</span>, | |
| controlnet_conditioning_scale=<span class="hljs-number">0.8</span>, | |
| cross_attention_kwargs={<span class="hljs-string">"scale"</span>: <span class="hljs-number">1</span>}, | |
| generator=generator, | |
| ).images[<span class="hljs-number">0</span>] | |
| make_image_grid([canny_image, image], rows=<span class="hljs-number">1</span>, cols=<span class="hljs-number">2</span>)`}}),A=new Gt({props:{$$slots:{default:[As]},$$scope:{ctx:N}}}),ke=new j({}),Re=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjBjdjIlMEFpbXBvcnQlMjBudW1weSUyMGFzJTIwbnAlMEFmcm9tJTIwUElMJTIwaW1wb3J0JTIwSW1hZ2UlMEElMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uWExBZGFwdGVyUGlwZWxpbmUlMkMlMjBUMklBZGFwdGVyJTJDJTIwTENNU2NoZWR1bGVyJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGxvYWRfaW1hZ2UlMkMlMjBtYWtlX2ltYWdlX2dyaWQlMEElMEElMjMlMjBQcmVwYXJlJTIwaW1hZ2UlMEElMjMlMjBEZXRlY3QlMjB0aGUlMjBjYW5ueSUyMG1hcCUyMGluJTIwbG93JTIwcmVzb2x1dGlvbiUyMHRvJTIwYXZvaWQlMjBoaWdoLWZyZXF1ZW5jeSUyMGRldGFpbHMlMEFpbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRkFkYXB0ZXIlMkZ0MmlhZGFwdGVyJTJGcmVzb2x2ZSUyRm1haW4lMkZmaWdzX1NEWExWMS4wJTJGb3JnX2Nhbm55LmpwZyUyMiUwQSkucmVzaXplKCgzODQlMkMlMjAzODQpKSUwQSUwQWltYWdlJTIwJTNEJTIwbnAuYXJyYXkoaW1hZ2UpJTBBJTBBbG93X3RocmVzaG9sZCUyMCUzRCUyMDEwMCUwQWhpZ2hfdGhyZXNob2xkJTIwJTNEJTIwMjAwJTBBJTBBaW1hZ2UlMjAlM0QlMjBjdjIuQ2FubnkoaW1hZ2UlMkMlMjBsb3dfdGhyZXNob2xkJTJDJTIwaGlnaF90aHJlc2hvbGQpJTBBaW1hZ2UlMjAlM0QlMjBpbWFnZSU1QiUzQSUyQyUyMCUzQSUyQyUyME5vbmUlNUQlMEFpbWFnZSUyMCUzRCUyMG5wLmNvbmNhdGVuYXRlKCU1QmltYWdlJTJDJTIwaW1hZ2UlMkMlMjBpbWFnZSU1RCUyQyUyMGF4aXMlM0QyKSUwQWNhbm55X2ltYWdlJTIwJTNEJTIwSW1hZ2UuZnJvbWFycmF5KGltYWdlKS5yZXNpemUoKDEwMjQlMkMlMjAxMDI0KSklMEElMEElMjMlMjBsb2FkJTIwYWRhcHRlciUwQWFkYXB0ZXIlMjAlM0QlMjBUMklBZGFwdGVyLmZyb21fcHJldHJhaW5lZCglMjJUZW5jZW50QVJDJTJGdDJpLWFkYXB0ZXItY2Fubnktc2R4bC0xLjAlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMjB2YXJpZW50JTNEJTIyZnAxNiUyMikudG8oJTIyY3VkYSUyMiklMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uWExBZGFwdGVyUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnN0YWJpbGl0eWFpJTJGc3RhYmxlLWRpZmZ1c2lvbi14bC1iYXNlLTEuMCUyMiUyQyUyMCUwQSUyMCUyMCUyMCUyMGFkYXB0ZXIlM0RhZGFwdGVyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMjAlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwc2V0JTIwc2NoZWR1bGVyJTBBcGlwZS5zY2hlZHVsZXIlMjAlM0QlMjBMQ01TY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQSUyMyUyMGxvYWQlMjBMQ00tTG9SQSUwQXBpcGUubG9hZF9sb3JhX3dlaWdodHMoJTIybGF0ZW50LWNvbnNpc3RlbmN5JTJGbGNtLWxvcmEtc2R4bCUyMiklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJNeXN0aWNhbCUyMGZhaXJ5JTIwaW4lMjByZWFsJTJDJTIwbWFnaWMlMkMlMjA0ayUyMHBpY3R1cmUlMkMlMjBoaWdoJTIwcXVhbGl0eSUyMiUwQW5lZ2F0aXZlX3Byb21wdCUyMCUzRCUyMCUyMmV4dHJhJTIwZGlnaXQlMkMlMjBmZXdlciUyMGRpZ2l0cyUyQyUyMGNyb3BwZWQlMkMlMjB3b3JzdCUyMHF1YWxpdHklMkMlMjBsb3clMjBxdWFsaXR5JTJDJTIwZ2xpdGNoJTJDJTIwZGVmb3JtZWQlMkMlMjBtdXRhdGVkJTJDJTIwdWdseSUyQyUyMGRpc2ZpZ3VyZWQlMjIlMEElMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCgwKSUwQWltYWdlJTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBpbWFnZSUzRGNhbm55X2ltYWdlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDEuNSUyQyUyMCUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfY29uZGl0aW9uaW5nX3NjYWxlJTNEMC44JTJDJTIwJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9jb25kaXRpb25pbmdfZmFjdG9yJTNEMSUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUwQSkuaW1hZ2VzJTVCMCU1RCUwQW1ha2VfaW1hZ2VfZ3JpZCglNUJjYW5ueV9pbWFnZSUyQyUyMGltYWdlJTVEJTJDJTIwcm93cyUzRDElMkMlMjBjb2xzJTNEMik=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">import</span> cv2 | |
| <span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| <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> StableDiffusionXLAdapterPipeline, T2IAdapter, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, make_image_grid | |
| <span class="hljs-comment"># Prepare image</span> | |
| <span class="hljs-comment"># Detect the canny map in low resolution to avoid high-frequency details</span> | |
| image = load_image( | |
| <span class="hljs-string">"https://huggingface.co/Adapter/t2iadapter/resolve/main/figs_SDXLV1.0/org_canny.jpg"</span> | |
| ).resize((<span class="hljs-number">384</span>, <span class="hljs-number">384</span>)) | |
| image = np.array(image) | |
| low_threshold = <span class="hljs-number">100</span> | |
| high_threshold = <span class="hljs-number">200</span> | |
| image = cv2.Canny(image, low_threshold, high_threshold) | |
| image = image[:, :, <span class="hljs-literal">None</span>] | |
| image = np.concatenate([image, image, image], axis=<span class="hljs-number">2</span>) | |
| canny_image = Image.fromarray(image).resize((<span class="hljs-number">1024</span>, <span class="hljs-number">1024</span>)) | |
| <span class="hljs-comment"># load adapter</span> | |
| adapter = T2IAdapter.from_pretrained(<span class="hljs-string">"TencentARC/t2i-adapter-canny-sdxl-1.0"</span>, torch_dtype=torch.float16, varient=<span class="hljs-string">"fp16"</span>).to(<span class="hljs-string">"cuda"</span>) | |
| pipe = StableDiffusionXLAdapterPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| adapter=adapter, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdxl"</span>) | |
| prompt = <span class="hljs-string">"Mystical fairy in real, magic, 4k picture, high quality"</span> | |
| negative_prompt = <span class="hljs-string">"extra digit, fewer digits, cropped, worst quality, low quality, glitch, deformed, mutated, ugly, disfigured"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe( | |
| prompt=prompt, | |
| negative_prompt=negative_prompt, | |
| image=canny_image, | |
| num_inference_steps=<span class="hljs-number">4</span>, | |
| guidance_scale=<span class="hljs-number">1.5</span>, | |
| adapter_conditioning_scale=<span class="hljs-number">0.8</span>, | |
| adapter_conditioning_factor=<span class="hljs-number">1</span>, | |
| generator=generator, | |
| ).images[<span class="hljs-number">0</span>] | |
| make_image_grid([canny_image, image], rows=<span class="hljs-number">1</span>, cols=<span class="hljs-number">2</span>)`}}),Ne=new j({}),Se=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9ySW5wYWludGluZyUyQyUyMExDTVNjaGVkdWxlciUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBsb2FkX2ltYWdlJTJDJTIwbWFrZV9pbWFnZV9ncmlkJTBBJTBBcGlwZSUyMCUzRCUyMEF1dG9QaXBlbGluZUZvcklucGFpbnRpbmcuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnJ1bndheW1sJTJGc3RhYmxlLWRpZmZ1c2lvbi1pbnBhaW50aW5nJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwc2V0JTIwc2NoZWR1bGVyJTBBcGlwZS5zY2hlZHVsZXIlMjAlM0QlMjBMQ01TY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQSUyMyUyMGxvYWQlMjBMQ00tTG9SQSUwQXBpcGUubG9hZF9sb3JhX3dlaWdodHMoJTIybGF0ZW50LWNvbnNpc3RlbmN5JTJGbGNtLWxvcmEtc2R2MS01JTIyKSUwQSUwQSUyMyUyMGxvYWQlMjBiYXNlJTIwYW5kJTIwbWFzayUyMGltYWdlJTBBaW5pdF9pbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGaW5wYWludC5wbmclMjIpJTBBbWFza19pbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGaW5wYWludF9tYXNrLnBuZyUyMiklMEElMEElMjMlMjBnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5HZW5lcmF0b3IoJTIyY3VkYSUyMikubWFudWFsX3NlZWQoOTIpJTBBcHJvbXB0JTIwJTNEJTIwJTIyY29uY2VwdCUyMGFydCUyMGRpZ2l0YWwlMjBwYWludGluZyUyMG9mJTIwYW4lMjBlbHZlbiUyMGNhc3RsZSUyQyUyMGluc3BpcmVkJTIwYnklMjBsb3JkJTIwb2YlMjB0aGUlMjByaW5ncyUyQyUyMGhpZ2hseSUyMGRldGFpbGVkJTJDJTIwOGslMjIlMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCgwKSUwQWltYWdlJTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBpbWFnZSUzRGluaXRfaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBtYXNrX2ltYWdlJTNEbWFza19pbWFnZSUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0JTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0Q0JTJDJTIwJTBBKS5pbWFnZXMlNUIwJTVEJTBBbWFrZV9pbWFnZV9ncmlkKCU1QmluaXRfaW1hZ2UlMkMlMjBtYXNrX2ltYWdlJTJDJTIwaW1hZ2UlNUQlMkMlMjByb3dzJTNEMSUyQyUyMGNvbHMlM0QzKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForInpainting, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, make_image_grid | |
| pipe = AutoPipelineForInpainting.from_pretrained( | |
| <span class="hljs-string">"runwayml/stable-diffusion-inpainting"</span>, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdv1-5"</span>) | |
| <span class="hljs-comment"># load base and mask image</span> | |
| init_image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint.png"</span>) | |
| mask_image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint_mask.png"</span>) | |
| <span class="hljs-comment"># generator = torch.Generator("cuda").manual_seed(92)</span> | |
| prompt = <span class="hljs-string">"concept art digital painting of an elven castle, inspired by lord of the rings, highly detailed, 8k"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| image = pipe( | |
| prompt=prompt, | |
| image=init_image, | |
| mask_image=mask_image, | |
| generator=generator, | |
| num_inference_steps=<span class="hljs-number">4</span>, | |
| guidance_scale=<span class="hljs-number">4</span>, | |
| ).images[<span class="hljs-number">0</span>] | |
| make_image_grid([init_image, mask_image, image], rows=<span class="hljs-number">1</span>, cols=<span class="hljs-number">3</span>)`}}),Le=new j({}),Xe=new E({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aW9uQWRhcHRlciUyQyUyMEFuaW1hdGVEaWZmUGlwZWxpbmUlMkMlMjBERElNU2NoZWR1bGVyJTJDJTIwTENNU2NoZWR1bGVyJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19naWYlMEElMEFhZGFwdGVyJTIwJTNEJTIwTW90aW9uQWRhcHRlci5mcm9tX3ByZXRyYWluZWQoJTIyZGlmZnVzZXJzJTJGYW5pbWF0ZWRpZmYtbW90aW9uLWFkYXB0ZXItdjEtNSUyMiklMEFwaXBlJTIwJTNEJTIwQW5pbWF0ZURpZmZQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyZnJhbmtqb3NodWElMkZ0b29ueW91X2JldGE2JTIyJTJDJTBBJTIwJTIwJTIwJTIwbW90aW9uX2FkYXB0ZXIlM0RhZGFwdGVyJTJDJTBBKS50byglMjJjdWRhJTIyKSUwQSUwQSUyMyUyMHNldCUyMHNjaGVkdWxlciUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwTENNU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEElMjMlMjBsb2FkJTIwTENNLUxvUkElMEFwaXBlLmxvYWRfbG9yYV93ZWlnaHRzKCUyMmxhdGVudC1jb25zaXN0ZW5jeSUyRmxjbS1sb3JhLXNkdjEtNSUyMiUyQyUyMGFkYXB0ZXJfbmFtZSUzRCUyMmxjbSUyMiklMEFwaXBlLmxvYWRfbG9yYV93ZWlnaHRzKCUyMmd1b3l3dyUyRmFuaW1hdGVkaWZmLW1vdGlvbi1sb3JhLXpvb20taW4lMjIlMkMlMjB3ZWlnaHRfbmFtZSUzRCUyMmRpZmZ1c2lvbl9weXRvcmNoX21vZGVsLnNhZmV0ZW5zb3JzJTIyJTJDJTIwYWRhcHRlcl9uYW1lJTNEJTIybW90aW9uLWxvcmElMjIpJTBBJTBBcGlwZS5zZXRfYWRhcHRlcnMoJTVCJTIybGNtJTIyJTJDJTIwJTIybW90aW9uLWxvcmElMjIlNUQlMkMlMjBhZGFwdGVyX3dlaWdodHMlM0QlNUIwLjU1JTJDJTIwMS4yJTVEKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMmJlc3QlMjBxdWFsaXR5JTJDJTIwbWFzdGVycGllY2UlMkMlMjAxZ2lybCUyQyUyMGxvb2tpbmclMjBhdCUyMHZpZXdlciUyQyUyMGJsdXJyeSUyMGJhY2tncm91bmQlMkMlMjB1cHBlciUyMGJvZHklMkMlMjBjb250ZW1wb3JhcnklMkMlMjBkcmVzcyUyMiUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLm1hbnVhbF9zZWVkKDApJTBBZnJhbWVzJTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENSUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNEMS4yNSUyQyUwQSUyMCUyMCUyMCUyMGNyb3NzX2F0dGVudGlvbl9rd2FyZ3MlM0QlN0IlMjJzY2FsZSUyMiUzQSUyMDElN0QlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMjQlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMEEpLmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fZ2lmKGZyYW1lcyUyQyUyMCUyMmFuaW1hdGlvbi5naWYlMjIp",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> MotionAdapter, AnimateDiffPipeline, DDIMScheduler, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif | |
| adapter = MotionAdapter.from_pretrained(<span class="hljs-string">"diffusers/animatediff-motion-adapter-v1-5"</span>) | |
| pipe = AnimateDiffPipeline.from_pretrained( | |
| <span class="hljs-string">"frankjoshua/toonyou_beta6"</span>, | |
| motion_adapter=adapter, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-comment"># set scheduler</span> | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| <span class="hljs-comment"># load LCM-LoRA</span> | |
| pipe.load_lora_weights(<span class="hljs-string">"latent-consistency/lcm-lora-sdv1-5"</span>, adapter_name=<span class="hljs-string">"lcm"</span>) | |
| pipe.load_lora_weights(<span class="hljs-string">"guoyww/animatediff-motion-lora-zoom-in"</span>, weight_name=<span class="hljs-string">"diffusion_pytorch_model.safetensors"</span>, adapter_name=<span class="hljs-string">"motion-lora"</span>) | |
| pipe.set_adapters([<span class="hljs-string">"lcm"</span>, <span class="hljs-string">"motion-lora"</span>], adapter_weights=[<span class="hljs-number">0.55</span>, <span class="hljs-number">1.2</span>]) | |
| prompt = <span class="hljs-string">"best quality, masterpiece, 1girl, looking at viewer, blurry background, upper body, contemporary, dress"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| frames = pipe( | |
| prompt=prompt, | |
| num_inference_steps=<span class="hljs-number">5</span>, | |
| guidance_scale=<span class="hljs-number">1.25</span>, | |
| cross_attention_kwargs={<span class="hljs-string">"scale"</span>: <span class="hljs-number">1</span>}, | |
| num_frames=<span class="hljs-number">24</span>, | |
| generator=generator | |
| ).frames[<span class="hljs-number">0</span>] | |
| export_to_gif(frames, <span class="hljs-string">"animation.gif"</span>)`}}),{c(){m=a("meta"),T=i(),M(w.$$.fragment),g=i(),U=a("h1"),b=a("a"),Z=a("span"),M(q.$$.fragment),wt=i(),Ae=a("span"),Ae.textContent=Ct,hl=i(),D=a("p"),D.textContent=Bt,Ml=i(),P=a("p"),P.innerHTML=kt,ul=i(),K=a("blockquote"),K.innerHTML=_t,dl=i(),O=a("p"),O.innerHTML=Rt,yl=i(),ee=a("p"),ee.textContent=Et,fl=i(),le=a("p"),le.innerHTML=Nt,Jl=i(),te=a("p"),te.innerHTML=Qt,wl=i(),se=a("p"),se.textContent=St,bl=i(),ae=a("ul"),ae.innerHTML=Vt,Tl=i(),ne=a("p"),ne.innerHTML=Lt,gl=i(),ie=a("ul"),ie.innerHTML=Yt,Ul=i(),oe=a("p"),oe.textContent=Xt,jl=i(),pe=a("p"),pe.innerHTML=Ft,Zl=i(),M(re.$$.fragment),Wl=i(),W=a("h2"),Q=a("a"),ll=a("span"),M(ce.$$.fragment),bt=i(),He=a("span"),He.textContent=xt,vl=i(),me=a("p"),me.innerHTML=At,Il=i(),M(he.$$.fragment),Gl=i(),Me=a("p"),Me.innerHTML=Ht,Cl=i(),ue=a("p"),ue.textContent=$t,Bl=i(),M(S.$$.fragment),kl=i(),v=a("h3"),V=a("a"),tl=a("span"),M(de.$$.fragment),Tt=i(),$e=a("span"),$e.textContent=zt,_l=i(),ye=a("p"),ye.innerHTML=qt,Rl=i(),M(fe.$$.fragment),El=i(),Je=a("p"),Je.innerHTML=Dt,Nl=i(),I=a("h2"),L=a("a"),sl=a("span"),M(we.$$.fragment),gt=i(),ze=a("span"),ze.textContent=Pt,Ql=i(),be=a("p"),be.innerHTML=Kt,Sl=i(),M(Te.$$.fragment),Vl=i(),ge=a("p"),ge.innerHTML=Ot,Ll=i(),M(Y.$$.fragment),Yl=i(),G=a("h2"),X=a("a"),al=a("span"),M(Ue.$$.fragment),Ut=i(),qe=a("span"),qe.textContent=es,Xl=i(),je=a("p"),je.innerHTML=ls,Fl=i(),M(Ze.$$.fragment),xl=i(),We=a("p"),We.innerHTML=ts,Al=i(),C=a("h2"),F=a("a"),nl=a("span"),M(ve.$$.fragment),jt=i(),De=a("span"),De.textContent=ss,Hl=i(),Ie=a("p"),Ie.textContent=as,$l=i(),B=a("h3"),x=a("a"),il=a("span"),M(Ge.$$.fragment),Zt=i(),Pe=a("span"),Pe.textContent=ns,zl=Es(` | |
| For this example, we'll use the SD-v1-5 model and the LCM-LoRA for SD-v1-5 with canny ControlNet. | |
| `),M(Ce.$$.fragment),ql=i(),Be=a("p"),Be.innerHTML=is,Dl=i(),M(A.$$.fragment),Pl=i(),k=a("h3"),H=a("a"),ol=a("span"),M(ke.$$.fragment),Wt=i(),Ke=a("span"),Ke.textContent=os,Kl=i(),_e=a("p"),_e.innerHTML=ps,Ol=i(),M(Re.$$.fragment),et=i(),Ee=a("p"),Ee.innerHTML=rs,lt=i(),_=a("h2"),$=a("a"),pl=a("span"),M(Ne.$$.fragment),vt=i(),Oe=a("span"),Oe.textContent=cs,tt=i(),Qe=a("p"),Qe.textContent=ms,st=i(),M(Se.$$.fragment),at=i(),Ve=a("p"),Ve.innerHTML=hs,nt=i(),R=a("h2"),z=a("a"),rl=a("span"),M(Le.$$.fragment),It=i(),el=a("span"),el.textContent=Ms,it=i(),Ye=a("p"),Ye.innerHTML=us,ot=i(),M(Xe.$$.fragment),pt=i(),Fe=a("p"),Fe.innerHTML=ds,this.h()},l(e){const t=Ys("svelte-1phssyn",document.head);m=n(t,"META",{name:!0,content:!0}),t.forEach(l),T=o(e),u(w.$$.fragment,e),g=o(e),U=n(e,"H1",{class:!0});var xe=h(U);b=n(xe,"A",{id:!0,class:!0,href:!0});var cl=h(b);Z=n(cl,"SPAN",{});var ml=h(Z);u(q.$$.fragment,ml),ml.forEach(l),cl.forEach(l),wt=o(xe),Ae=n(xe,"SPAN",{"data-svelte-h":!0}),p(Ae)!=="svelte-1cqfhy4"&&(Ae.textContent=Ct),xe.forEach(l),hl=o(e),D=n(e,"P",{"data-svelte-h":!0}),p(D)!=="svelte-2fpkx0"&&(D.textContent=Bt),Ml=o(e),P=n(e,"P",{"data-svelte-h":!0}),p(P)!=="svelte-d9zkw1"&&(P.innerHTML=kt),ul=o(e),K=n(e,"BLOCKQUOTE",{"data-svelte-h":!0}),p(K)!=="svelte-9ngsrn"&&(K.innerHTML=_t),dl=o(e),O=n(e,"P",{"data-svelte-h":!0}),p(O)!=="svelte-yzou0e"&&(O.innerHTML=Rt),yl=o(e),ee=n(e,"P",{"data-svelte-h":!0}),p(ee)!=="svelte-sqxks"&&(ee.textContent=Et),fl=o(e),le=n(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-121irgb"&&(le.innerHTML=Nt),Jl=o(e),te=n(e,"P",{"data-svelte-h":!0}),p(te)!=="svelte-1op1l2i"&&(te.innerHTML=Qt),wl=o(e),se=n(e,"P",{"data-svelte-h":!0}),p(se)!=="svelte-1pmm8o2"&&(se.textContent=St),bl=o(e),ae=n(e,"UL",{"data-svelte-h":!0}),p(ae)!=="svelte-1utl29a"&&(ae.innerHTML=Vt),Tl=o(e),ne=n(e,"P",{"data-svelte-h":!0}),p(ne)!=="svelte-mgl5fc"&&(ne.innerHTML=Lt),gl=o(e),ie=n(e,"UL",{"data-svelte-h":!0}),p(ie)!=="svelte-2rtg3v"&&(ie.innerHTML=Yt),Ul=o(e),oe=n(e,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-19h4utp"&&(oe.textContent=Xt),jl=o(e),pe=n(e,"P",{"data-svelte-h":!0}),p(pe)!=="svelte-qd8sxg"&&(pe.innerHTML=Ft),Zl=o(e),u(re.$$.fragment,e),Wl=o(e),W=n(e,"H2",{class:!0});var ct=h(W);Q=n(ct,"A",{id:!0,class:!0,href:!0});var ys=h(Q);ll=n(ys,"SPAN",{});var fs=h(ll);u(ce.$$.fragment,fs),fs.forEach(l),ys.forEach(l),bt=o(ct),He=n(ct,"SPAN",{"data-svelte-h":!0}),p(He)!=="svelte-ws6p24"&&(He.textContent=xt),ct.forEach(l),vl=o(e),me=n(e,"P",{"data-svelte-h":!0}),p(me)!=="svelte-9y3mtl"&&(me.innerHTML=At),Il=o(e),u(he.$$.fragment,e),Gl=o(e),Me=n(e,"P",{"data-svelte-h":!0}),p(Me)!=="svelte-zmq986"&&(Me.innerHTML=Ht),Cl=o(e),ue=n(e,"P",{"data-svelte-h":!0}),p(ue)!=="svelte-n61tgz"&&(ue.textContent=$t),Bl=o(e),u(S.$$.fragment,e),kl=o(e),v=n(e,"H3",{class:!0});var mt=h(v);V=n(mt,"A",{id:!0,class:!0,href:!0});var Js=h(V);tl=n(Js,"SPAN",{});var ws=h(tl);u(de.$$.fragment,ws),ws.forEach(l),Js.forEach(l),Tt=o(mt),$e=n(mt,"SPAN",{"data-svelte-h":!0}),p($e)!=="svelte-nus8ej"&&($e.textContent=zt),mt.forEach(l),_l=o(e),ye=n(e,"P",{"data-svelte-h":!0}),p(ye)!=="svelte-15rr98x"&&(ye.innerHTML=qt),Rl=o(e),u(fe.$$.fragment,e),El=o(e),Je=n(e,"P",{"data-svelte-h":!0}),p(Je)!=="svelte-19vr4c5"&&(Je.innerHTML=Dt),Nl=o(e),I=n(e,"H2",{class:!0});var ht=h(I);L=n(ht,"A",{id:!0,class:!0,href:!0});var bs=h(L);sl=n(bs,"SPAN",{});var Ts=h(sl);u(we.$$.fragment,Ts),Ts.forEach(l),bs.forEach(l),gt=o(ht),ze=n(ht,"SPAN",{"data-svelte-h":!0}),p(ze)!=="svelte-1r5u1a2"&&(ze.textContent=Pt),ht.forEach(l),Ql=o(e),be=n(e,"P",{"data-svelte-h":!0}),p(be)!=="svelte-2suklx"&&(be.innerHTML=Kt),Sl=o(e),u(Te.$$.fragment,e),Vl=o(e),ge=n(e,"P",{"data-svelte-h":!0}),p(ge)!=="svelte-zt9d3e"&&(ge.innerHTML=Ot),Ll=o(e),u(Y.$$.fragment,e),Yl=o(e),G=n(e,"H2",{class:!0});var Mt=h(G);X=n(Mt,"A",{id:!0,class:!0,href:!0});var gs=h(X);al=n(gs,"SPAN",{});var Us=h(al);u(Ue.$$.fragment,Us),Us.forEach(l),gs.forEach(l),Ut=o(Mt),qe=n(Mt,"SPAN",{"data-svelte-h":!0}),p(qe)!=="svelte-1g89ox8"&&(qe.textContent=es),Mt.forEach(l),Xl=o(e),je=n(e,"P",{"data-svelte-h":!0}),p(je)!=="svelte-1ueo85e"&&(je.innerHTML=ls),Fl=o(e),u(Ze.$$.fragment,e),xl=o(e),We=n(e,"P",{"data-svelte-h":!0}),p(We)!=="svelte-9tzi4"&&(We.innerHTML=ts),Al=o(e),C=n(e,"H2",{class:!0});var ut=h(C);F=n(ut,"A",{id:!0,class:!0,href:!0});var js=h(F);nl=n(js,"SPAN",{});var Zs=h(nl);u(ve.$$.fragment,Zs),Zs.forEach(l),js.forEach(l),jt=o(ut),De=n(ut,"SPAN",{"data-svelte-h":!0}),p(De)!=="svelte-1q34qyx"&&(De.textContent=ss),ut.forEach(l),Hl=o(e),Ie=n(e,"P",{"data-svelte-h":!0}),p(Ie)!=="svelte-db61xh"&&(Ie.textContent=as),$l=o(e),B=n(e,"H3",{class:!0});var dt=h(B);x=n(dt,"A",{id:!0,class:!0,href:!0});var Ws=h(x);il=n(Ws,"SPAN",{});var vs=h(il);u(Ge.$$.fragment,vs),vs.forEach(l),Ws.forEach(l),Zt=o(dt),Pe=n(dt,"SPAN",{"data-svelte-h":!0}),p(Pe)!=="svelte-1147sj1"&&(Pe.textContent=ns),dt.forEach(l),zl=Ns(e,` | |
| For this example, we'll use the SD-v1-5 model and the LCM-LoRA for SD-v1-5 with canny ControlNet. | |
| `),u(Ce.$$.fragment,e),ql=o(e),Be=n(e,"P",{"data-svelte-h":!0}),p(Be)!=="svelte-11lx81y"&&(Be.innerHTML=is),Dl=o(e),u(A.$$.fragment,e),Pl=o(e),k=n(e,"H3",{class:!0});var yt=h(k);H=n(yt,"A",{id:!0,class:!0,href:!0});var Is=h(H);ol=n(Is,"SPAN",{});var Gs=h(ol);u(ke.$$.fragment,Gs),Gs.forEach(l),Is.forEach(l),Wt=o(yt),Ke=n(yt,"SPAN",{"data-svelte-h":!0}),p(Ke)!=="svelte-1np368w"&&(Ke.textContent=os),yt.forEach(l),Kl=o(e),_e=n(e,"P",{"data-svelte-h":!0}),p(_e)!=="svelte-5l31pr"&&(_e.innerHTML=ps),Ol=o(e),u(Re.$$.fragment,e),et=o(e),Ee=n(e,"P",{"data-svelte-h":!0}),p(Ee)!=="svelte-iuzcjf"&&(Ee.innerHTML=rs),lt=o(e),_=n(e,"H2",{class:!0});var ft=h(_);$=n(ft,"A",{id:!0,class:!0,href:!0});var Cs=h($);pl=n(Cs,"SPAN",{});var Bs=h(pl);u(Ne.$$.fragment,Bs),Bs.forEach(l),Cs.forEach(l),vt=o(ft),Oe=n(ft,"SPAN",{"data-svelte-h":!0}),p(Oe)!=="svelte-1870h70"&&(Oe.textContent=cs),ft.forEach(l),tt=o(e),Qe=n(e,"P",{"data-svelte-h":!0}),p(Qe)!=="svelte-fhcmt1"&&(Qe.textContent=ms),st=o(e),u(Se.$$.fragment,e),at=o(e),Ve=n(e,"P",{"data-svelte-h":!0}),p(Ve)!=="svelte-1t65w1d"&&(Ve.innerHTML=hs),nt=o(e),R=n(e,"H2",{class:!0});var Jt=h(R);z=n(Jt,"A",{id:!0,class:!0,href:!0});var ks=h(z);rl=n(ks,"SPAN",{});var _s=h(rl);u(Le.$$.fragment,_s),_s.forEach(l),ks.forEach(l),It=o(Jt),el=n(Jt,"SPAN",{"data-svelte-h":!0}),p(el)!=="svelte-15zwf0r"&&(el.textContent=Ms),Jt.forEach(l),it=o(e),Ye=n(e,"P",{"data-svelte-h":!0}),p(Ye)!=="svelte-13othel"&&(Ye.innerHTML=us),ot=o(e),u(Xe.$$.fragment,e),pt=o(e),Fe=n(e,"P",{"data-svelte-h":!0}),p(Fe)!=="svelte-zceinn"&&(Fe.innerHTML=ds),this.h()},h(){r(m,"name","hf:doc:metadata"),r(m,"content",JSON.stringify($s)),r(b,"id","performing-inference-with-lcmlora"),r(b,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(b,"href","#performing-inference-with-lcmlora"),r(U,"class","relative group"),r(Q,"id","texttoimage"),r(Q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(Q,"href","#texttoimage"),r(W,"class","relative group"),r(V,"id","inference-with-a-finetuned-model"),r(V,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(V,"href","#inference-with-a-finetuned-model"),r(v,"class","relative group"),r(L,"id","imagetoimage"),r(L,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(L,"href","#imagetoimage"),r(I,"class","relative group"),r(X,"id","combine-with-styled-loras"),r(X,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(X,"href","#combine-with-styled-loras"),r(G,"class","relative group"),r(F,"id","controlnett2iadapter"),r(F,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(F,"href","#controlnett2iadapter"),r(C,"class","relative group"),r(x,"id","controlnet"),r(x,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(x,"href","#controlnet"),r(B,"class","relative group"),r(H,"id","t2iadapter"),r(H,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(H,"href","#t2iadapter"),r(k,"class","relative group"),r($,"id","inpainting"),r($,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r($,"href","#inpainting"),r(_,"class","relative group"),r(z,"id","animatediff"),r(z,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),r(z,"href","#animatediff"),r(R,"class","relative group")},m(e,t){c(document.head,m),s(e,T,t),d(w,e,t),s(e,g,t),s(e,U,t),c(U,b),c(b,Z),d(q,Z,null),c(U,wt),c(U,Ae),s(e,hl,t),s(e,D,t),s(e,Ml,t),s(e,P,t),s(e,ul,t),s(e,K,t),s(e,dl,t),s(e,O,t),s(e,yl,t),s(e,ee,t),s(e,fl,t),s(e,le,t),s(e,Jl,t),s(e,te,t),s(e,wl,t),s(e,se,t),s(e,bl,t),s(e,ae,t),s(e,Tl,t),s(e,ne,t),s(e,gl,t),s(e,ie,t),s(e,Ul,t),s(e,oe,t),s(e,jl,t),s(e,pe,t),s(e,Zl,t),d(re,e,t),s(e,Wl,t),s(e,W,t),c(W,Q),c(Q,ll),d(ce,ll,null),c(W,bt),c(W,He),s(e,vl,t),s(e,me,t),s(e,Il,t),d(he,e,t),s(e,Gl,t),s(e,Me,t),s(e,Cl,t),s(e,ue,t),s(e,Bl,t),d(S,e,t),s(e,kl,t),s(e,v,t),c(v,V),c(V,tl),d(de,tl,null),c(v,Tt),c(v,$e),s(e,_l,t),s(e,ye,t),s(e,Rl,t),d(fe,e,t),s(e,El,t),s(e,Je,t),s(e,Nl,t),s(e,I,t),c(I,L),c(L,sl),d(we,sl,null),c(I,gt),c(I,ze),s(e,Ql,t),s(e,be,t),s(e,Sl,t),d(Te,e,t),s(e,Vl,t),s(e,ge,t),s(e,Ll,t),d(Y,e,t),s(e,Yl,t),s(e,G,t),c(G,X),c(X,al),d(Ue,al,null),c(G,Ut),c(G,qe),s(e,Xl,t),s(e,je,t),s(e,Fl,t),d(Ze,e,t),s(e,xl,t),s(e,We,t),s(e,Al,t),s(e,C,t),c(C,F),c(F,nl),d(ve,nl,null),c(C,jt),c(C,De),s(e,Hl,t),s(e,Ie,t),s(e,$l,t),s(e,B,t),c(B,x),c(x,il),d(Ge,il,null),c(B,Zt),c(B,Pe),s(e,zl,t),d(Ce,e,t),s(e,ql,t),s(e,Be,t),s(e,Dl,t),d(A,e,t),s(e,Pl,t),s(e,k,t),c(k,H),c(H,ol),d(ke,ol,null),c(k,Wt),c(k,Ke),s(e,Kl,t),s(e,_e,t),s(e,Ol,t),d(Re,e,t),s(e,et,t),s(e,Ee,t),s(e,lt,t),s(e,_,t),c(_,$),c($,pl),d(Ne,pl,null),c(_,vt),c(_,Oe),s(e,tt,t),s(e,Qe,t),s(e,st,t),d(Se,e,t),s(e,at,t),s(e,Ve,t),s(e,nt,t),s(e,R,t),c(R,z),c(z,rl),d(Le,rl,null),c(R,It),c(R,el),s(e,it,t),s(e,Ye,t),s(e,ot,t),d(Xe,e,t),s(e,pt,t),s(e,Fe,t),rt=!0},p(e,[t]){const xe={};t&2&&(xe.$$scope={dirty:t,ctx:e}),S.$set(xe);const cl={};t&2&&(cl.$$scope={dirty:t,ctx:e}),Y.$set(cl);const ml={};t&2&&(ml.$$scope={dirty:t,ctx:e}),A.$set(ml)},i(e){rt||(y(w.$$.fragment,e),y(q.$$.fragment,e),y(re.$$.fragment,e),y(ce.$$.fragment,e),y(he.$$.fragment,e),y(S.$$.fragment,e),y(de.$$.fragment,e),y(fe.$$.fragment,e),y(we.$$.fragment,e),y(Te.$$.fragment,e),y(Y.$$.fragment,e),y(Ue.$$.fragment,e),y(Ze.$$.fragment,e),y(ve.$$.fragment,e),y(Ge.$$.fragment,e),y(Ce.$$.fragment,e),y(A.$$.fragment,e),y(ke.$$.fragment,e),y(Re.$$.fragment,e),y(Ne.$$.fragment,e),y(Se.$$.fragment,e),y(Le.$$.fragment,e),y(Xe.$$.fragment,e),rt=!0)},o(e){f(w.$$.fragment,e),f(q.$$.fragment,e),f(re.$$.fragment,e),f(ce.$$.fragment,e),f(he.$$.fragment,e),f(S.$$.fragment,e),f(de.$$.fragment,e),f(fe.$$.fragment,e),f(we.$$.fragment,e),f(Te.$$.fragment,e),f(Y.$$.fragment,e),f(Ue.$$.fragment,e),f(Ze.$$.fragment,e),f(ve.$$.fragment,e),f(Ge.$$.fragment,e),f(Ce.$$.fragment,e),f(A.$$.fragment,e),f(ke.$$.fragment,e),f(Re.$$.fragment,e),f(Ne.$$.fragment,e),f(Se.$$.fragment,e),f(Le.$$.fragment,e),f(Xe.$$.fragment,e),rt=!1},d(e){e&&(l(T),l(g),l(U),l(hl),l(D),l(Ml),l(P),l(ul),l(K),l(dl),l(O),l(yl),l(ee),l(fl),l(le),l(Jl),l(te),l(wl),l(se),l(bl),l(ae),l(Tl),l(ne),l(gl),l(ie),l(Ul),l(oe),l(jl),l(pe),l(Zl),l(Wl),l(W),l(vl),l(me),l(Il),l(Gl),l(Me),l(Cl),l(ue),l(Bl),l(kl),l(v),l(_l),l(ye),l(Rl),l(El),l(Je),l(Nl),l(I),l(Ql),l(be),l(Sl),l(Vl),l(ge),l(Ll),l(Yl),l(G),l(Xl),l(je),l(Fl),l(xl),l(We),l(Al),l(C),l(Hl),l(Ie),l($l),l(B),l(zl),l(ql),l(Be),l(Dl),l(Pl),l(k),l(Kl),l(_e),l(Ol),l(et),l(Ee),l(lt),l(_),l(tt),l(Qe),l(st),l(at),l(Ve),l(nt),l(R),l(it),l(Ye),l(ot),l(pt),l(Fe)),l(m),J(w,e),J(q),J(re,e),J(ce),J(he,e),J(S,e),J(de),J(fe,e),J(we),J(Te,e),J(Y,e),J(Ue),J(Ze,e),J(ve),J(Ge),J(Ce,e),J(A,e),J(ke),J(Re,e),J(Ne),J(Se,e),J(Le),J(Xe,e)}}}const $s={local:"performing-inference-with-lcmlora",sections:[{local:"texttoimage",sections:[{local:"inference-with-a-finetuned-model",title:"Inference with a fine-tuned model"}],title:"Text-to-image"},{local:"imagetoimage",title:"Image-to-image"},{local:"combine-with-styled-loras",title:"Combine with styled LoRAs"},{local:"controlnett2iadapter",sections:[{local:"controlnet",title:"ControlNet"},{local:"t2iadapter",title:"T2I-Adapter"}],title:"ControlNet/T2I-Adapter"},{local:"inpainting",title:"Inpainting"},{local:"animatediff",title:"AnimateDiff"}],title:"Performing inference with LCM-LoRA"};function zs(N){return Ss(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class la extends Vs{constructor(m){super(),Ls(this,m,zs,Hs,Qs,{})}}export{la as component}; | |
Xet Storage Details
- Size:
- 57.7 kB
- Xet hash:
- e9d42abe025dcd5f3fd6a0f11f0846a2603c8a7d88ba00a3a585a2ffc099b565
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.