Buckets:

rtrm's picture
download
raw
57.7 kB
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">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdxl&quot;</span>)
prompt = <span class="hljs-string">&quot;Self-portrait oil painting, a beautiful cyborg with golden hair, 8k&quot;</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">&quot;Linaqruf/animagine-xl&quot;</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdxl&quot;</span>)
prompt = <span class="hljs-string">&quot;face focus, cute, masterpiece, best quality, 1girl, green hair, sweater, looking at viewer, upper body, beanie, outdoors, night, turtleneck&quot;</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">&quot;Lykon/dreamshaper-7&quot;</span>,
torch_dtype=torch.float16,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdv1-5&quot;</span>)
<span class="hljs-comment"># prepare image</span>
url = <span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/img2img-init.png&quot;</span>
init_image = load_image(url)
prompt = <span class="hljs-string">&quot;Astronauts in a jungle, cold color palette, muted colors, detailed, 8k&quot;</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">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdxl&quot;</span>, adapter_name=<span class="hljs-string">&quot;lcm&quot;</span>)
pipe.load_lora_weights(<span class="hljs-string">&quot;TheLastBen/Papercut_SDXL&quot;</span>, weight_name=<span class="hljs-string">&quot;papercut.safetensors&quot;</span>, adapter_name=<span class="hljs-string">&quot;papercut&quot;</span>)
<span class="hljs-comment"># Combine LoRAs</span>
pipe.set_adapters([<span class="hljs-string">&quot;lcm&quot;</span>, <span class="hljs-string">&quot;papercut&quot;</span>], adapter_weights=[<span class="hljs-number">1.0</span>, <span class="hljs-number">0.8</span>])
prompt = <span class="hljs-string">&quot;papercut, a cute fox&quot;</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">&quot;https://hf.co/datasets/huggingface/documentation-images/resolve/main/diffusers/input_image_vermeer.png&quot;</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">&quot;lllyasviel/sd-controlnet-canny&quot;</span>, torch_dtype=torch.float16)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
<span class="hljs-string">&quot;runwayml/stable-diffusion-v1-5&quot;</span>,
controlnet=controlnet,
torch_dtype=torch.float16,
safety_checker=<span class="hljs-literal">None</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdv1-5&quot;</span>)
generator = torch.manual_seed(<span class="hljs-number">0</span>)
image = pipe(
<span class="hljs-string">&quot;the mona lisa&quot;</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">&quot;scale&quot;</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">&quot;https://huggingface.co/Adapter/t2iadapter/resolve/main/figs_SDXLV1.0/org_canny.jpg&quot;</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">&quot;TencentARC/t2i-adapter-canny-sdxl-1.0&quot;</span>, torch_dtype=torch.float16, varient=<span class="hljs-string">&quot;fp16&quot;</span>).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipe = StableDiffusionXLAdapterPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
adapter=adapter,
torch_dtype=torch.float16,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdxl&quot;</span>)
prompt = <span class="hljs-string">&quot;Mystical fairy in real, magic, 4k picture, high quality&quot;</span>
negative_prompt = <span class="hljs-string">&quot;extra digit, fewer digits, cropped, worst quality, low quality, glitch, deformed, mutated, ugly, disfigured&quot;</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">&quot;runwayml/stable-diffusion-inpainting&quot;</span>,
torch_dtype=torch.float16,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdv1-5&quot;</span>)
<span class="hljs-comment"># load base and mask image</span>
init_image = load_image(<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint.png&quot;</span>)
mask_image = load_image(<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint_mask.png&quot;</span>)
<span class="hljs-comment"># generator = torch.Generator(&quot;cuda&quot;).manual_seed(92)</span>
prompt = <span class="hljs-string">&quot;concept art digital painting of an elven castle, inspired by lord of the rings, highly detailed, 8k&quot;</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">&quot;diffusers/animatediff-motion-adapter-v1-5&quot;</span>)
pipe = AnimateDiffPipeline.from_pretrained(
<span class="hljs-string">&quot;frankjoshua/toonyou_beta6&quot;</span>,
motion_adapter=adapter,
).to(<span class="hljs-string">&quot;cuda&quot;</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">&quot;latent-consistency/lcm-lora-sdv1-5&quot;</span>, adapter_name=<span class="hljs-string">&quot;lcm&quot;</span>)
pipe.load_lora_weights(<span class="hljs-string">&quot;guoyww/animatediff-motion-lora-zoom-in&quot;</span>, weight_name=<span class="hljs-string">&quot;diffusion_pytorch_model.safetensors&quot;</span>, adapter_name=<span class="hljs-string">&quot;motion-lora&quot;</span>)
pipe.set_adapters([<span class="hljs-string">&quot;lcm&quot;</span>, <span class="hljs-string">&quot;motion-lora&quot;</span>], adapter_weights=[<span class="hljs-number">0.55</span>, <span class="hljs-number">1.2</span>])
prompt = <span class="hljs-string">&quot;best quality, masterpiece, 1girl, looking at viewer, blurry background, upper body, contemporary, dress&quot;</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">&quot;scale&quot;</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">&quot;animation.gif&quot;</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.