Buckets:

download
raw
83.3 kB
import{s as Va,a as Ca,o as Ea,n as $e}from"../chunks/scheduler.e4ff9b64.js";import{S as qa,i as Aa,e as M,s as a,c as J,h as Xa,a as r,d as t,b as n,f as Ws,g as c,j as w,k as W,l as _s,m as s,n as m,t as u,o as T,p as y}from"../chunks/index.09f1bca0.js";import{C as Qa,H as g,E as Fa}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.db7f41fd.js";import{C as h}from"../chunks/CodeBlock.b59ddf12.js";import{H as Gs,a as We}from"../chunks/HfOption.44827c7f.js";function La(Z){let p,f;return p=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMm9zdHJpcyUyRnN1cGVyLWNlcmVhbC1zZHhsLWxvcmElMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMmNlcmVhbF9ib3hfc2R4bF92MS5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmNlcmVhbCUyMiUwQSklMEFwaXBlbGluZSglMjJiZWFycyUyQyUyMHBpenphJTIwYml0ZXMlMjIpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
pipeline = AutoPipelineForText2Image.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/super-cereal-sdxl-lora&quot;</span>,
weight_name=<span class="hljs-string">&quot;cereal_box_sdxl_v1.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cereal&quot;</span>
)
pipeline(<span class="hljs-string">&quot;bears, pizza bites&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),{c(){J(p.$$.fragment)},l(i){c(p.$$.fragment,i)},m(i,U){m(p,i,U),f=!0},p:$e,i(i){f||(u(p.$$.fragment,i),f=!0)},o(i){T(p.$$.fragment,i),f=!1},d(i){y(p,i)}}}function Ya(Z){let p,f;return p=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYQ29uZGl0aW9uUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwZXhwb3J0X3RvX3ZpZGVvJTJDJTIwbG9hZF9pbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwTFRYQ29uZGl0aW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMkxpZ2h0cmlja3MlMkZMVFgtVmlkZW8tMC45LjUlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTBBKSUwQSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMkxpZ2h0cmlja3MlMkZMVFgtVmlkZW8tQ2FrZWlmeS1Mb1JBJTIyJTJDJTBBJTIwJTIwJTIwJTIwd2VpZ2h0X25hbWUlM0QlMjJsdHh2XzA5NV9jYWtlaWZ5X2xvcmEuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJjYWtlaWZ5JTIyJTBBKSUwQXBpcGVsaW5lLnNldF9hZGFwdGVycyglMjJjYWtlaWZ5JTIyKSUwQSUwQSUyMyUyMCVFNCVCRCVCRiVFNyU5NCVBOCUyMCUyMkNBS0VJRlklMjIlMjAlRTglQTclQTYlRTUlOEYlOTElRTglQkYlOTklRTQlQjglQUElMjBMb1JBJTBBcHJvbXB0JTIwJTNEJTIwJTIyQ0FLRUlGWSUyMGElMjBwZXJzb24lMjB1c2luZyUyMGElMjBrbmlmZSUyMHRvJTIwY3V0JTIwYSUyMGNha2UlMjBzaGFwZWQlMjBsaWtlJTIwYSUyMFBpa2FjaHUlMjBwbHVzaGllJTIyJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZMaWdodHJpY2tzJTJGTFRYLVZpZGVvLUNha2VpZnktTG9SQSUyRnJlc29sdmUlMkZtYWluJTJGYXNzZXRzJTJGaW1hZ2VzJTJGcGlrYWNodS5wbmclMjIpJTBBJTBBdmlkZW8lMjAlM0QlMjBwaXBlbGluZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBpbWFnZSUzRGltYWdlJTJDJTBBJTIwJTIwJTIwJTIwd2lkdGglM0Q1NzYlMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0Q1NzYlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTYxJTJDJTBBJTIwJTIwJTIwJTIwZGVjb2RlX3RpbWVzdGVwJTNEMC4wMyUyQyUwQSUyMCUyMCUyMCUyMGRlY29kZV9ub2lzZV9zY2FsZSUzRDAuMDI1JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDUwJTJDJTBBKS5mcmFtZXMlNUIwJTVEJTBBZXhwb3J0X3RvX3ZpZGVvKHZpZGVvJTJDJTIwJTIyb3V0cHV0Lm1wNCUyMiUyQyUyMGZwcyUzRDI2KQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTXConditionPipeline
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video, load_image
pipeline = LTXConditionPipeline.from_pretrained(
<span class="hljs-string">&quot;Lightricks/LTX-Video-0.9.5&quot;</span>, torch_dtype=torch.bfloat16
)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;Lightricks/LTX-Video-Cakeify-LoRA&quot;</span>,
weight_name=<span class="hljs-string">&quot;ltxv_095_cakeify_lora.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cakeify&quot;</span>
)
pipeline.set_adapters(<span class="hljs-string">&quot;cakeify&quot;</span>)
<span class="hljs-comment"># 使用 &quot;CAKEIFY&quot; 触发这个 LoRA</span>
prompt = <span class="hljs-string">&quot;CAKEIFY a person using a knife to cut a cake shaped like a Pikachu plushie&quot;</span>
image = load_image(<span class="hljs-string">&quot;https://huggingface.co/Lightricks/LTX-Video-Cakeify-LoRA/resolve/main/assets/images/pikachu.png&quot;</span>)
video = pipeline(
prompt=prompt,
image=image,
width=<span class="hljs-number">576</span>,
height=<span class="hljs-number">576</span>,
num_frames=<span class="hljs-number">161</span>,
decode_timestep=<span class="hljs-number">0.03</span>,
decode_noise_scale=<span class="hljs-number">0.025</span>,
num_inference_steps=<span class="hljs-number">50</span>,
).frames[<span class="hljs-number">0</span>]
export_to_video(video, <span class="hljs-string">&quot;output.mp4&quot;</span>, fps=<span class="hljs-number">26</span>)`,lang:"py",wrap:!1}}),{c(){J(p.$$.fragment)},l(i){c(p.$$.fragment,i)},m(i,U){m(p,i,U),f=!0},p:$e,i(i){f||(u(p.$$.fragment,i),f=!0)},o(i){T(p.$$.fragment,i),f=!1},d(i){y(p,i)}}}function va(Z){let p,f,i,U;return p=new We({props:{id:"usage",option:"text-to-image",$$slots:{default:[La]},$$scope:{ctx:Z}}}),i=new We({props:{id:"usage",option:"text-to-video",$$slots:{default:[Ya]},$$scope:{ctx:Z}}}),{c(){J(p.$$.fragment),f=a(),J(i.$$.fragment)},l(o){c(p.$$.fragment,o),f=n(o),c(i.$$.fragment,o)},m(o,d){m(p,o,d),s(o,f,d),m(i,o,d),U=!0},p(o,d){const j={};d&2&&(j.$$scope={dirty:d,ctx:o}),p.$set(j);const I={};d&2&&(I.$$scope={dirty:d,ctx:o}),i.$set(I)},i(o){U||(u(p.$$.fragment,o),u(i.$$.fragment,o),U=!0)},o(o){T(p.$$.fragment,o),T(i.$$.fragment,o),U=!1},d(o){o&&t(f),y(p,o),y(i,o)}}}function xa(Z){let p,f="对于简单场景,可以直接把 <code>cross_attention_kwargs={&quot;scale&quot;: 1.0}</code> 传给管道。",i,U,o;return U=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMm9zdHJpcyUyRnN1cGVyLWNlcmVhbC1zZHhsLWxvcmElMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMmNlcmVhbF9ib3hfc2R4bF92MS5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmNlcmVhbCUyMiUwQSklMEFwaXBlbGluZSglMjJiZWFycyUyQyUyMHBpenphJTIwYml0ZXMlMjIlMkMlMjBjcm9zc19hdHRlbnRpb25fa3dhcmdzJTNEJTdCJTIyc2NhbGUlMjIlM0ElMjAxLjAlN0QpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
pipeline = AutoPipelineForText2Image.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/super-cereal-sdxl-lora&quot;</span>,
weight_name=<span class="hljs-string">&quot;cereal_box_sdxl_v1.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cereal&quot;</span>
)
pipeline(<span class="hljs-string">&quot;bears, pizza bites&quot;</span>, cross_attention_kwargs={<span class="hljs-string">&quot;scale&quot;</span>: <span class="hljs-number">1.0</span>}).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),{c(){p=M("p"),p.innerHTML=f,i=a(),J(U.$$.fragment)},l(d){p=r(d,"P",{"data-svelte-h":!0}),w(p)!=="svelte-bomtd1"&&(p.innerHTML=f),i=n(d),c(U.$$.fragment,d)},m(d,j){s(d,p,j),s(d,i,j),m(U,d,j),o=!0},p:$e,i(d){o||(u(U.$$.fragment,d),o=!0)},o(d){T(U.$$.fragment,d),o=!1},d(d){d&&(t(p),t(i)),y(U,d)}}}function Sa(Z){let p,f="<p><code>set_adapters()</code> 只会缩放 attention 权重。如果某个 LoRA 还包含 ResNet、downsampler 或 upsampler,这些组件的缩放值仍会保持为 <code>1.0</code>。</p>",i,U,o="如果你想更细粒度地控制 UNet 或文本编码器中每个组件的缩放比例,可以改为传入一个字典。下面这个例子里,UNet 中 <code>&quot;down&quot;</code> block 的缩放值是 0.9,而 <code>&quot;up&quot;</code> block 里还进一步指定了 <code>&quot;block_0&quot;</code> 和 <code>&quot;block_1&quot;</code> 中 transformer 的缩放值。如果像 <code>&quot;mid&quot;</code> 这样的 block 没有显式指定,就会使用默认值 <code>1.0</code>。",d,j,I;return j=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMm9zdHJpcyUyRnN1cGVyLWNlcmVhbC1zZHhsLWxvcmElMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMmNlcmVhbF9ib3hfc2R4bF92MS5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmNlcmVhbCUyMiUwQSklMEFzY2FsZXMlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJ0ZXh0X2VuY29kZXIlMjIlM0ElMjAwLjUlMkMlMEElMjAlMjAlMjAlMjAlMjJ0ZXh0X2VuY29kZXJfMiUyMiUzQSUyMDAuNSUyQyUwQSUyMCUyMCUyMCUyMCUyMnVuZXQlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJkb3duJTIyJTNBJTIwMC45JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydXAlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJibG9ja18wJTIyJTNBJTIwMC42JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyYmxvY2tfMSUyMiUzQSUyMCU1QjAuNCUyQyUyMDAuOCUyQyUyMDEuMCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQXBpcGVsaW5lLnNldF9hZGFwdGVycyglMjJjZXJlYWwlMjIlMkMlMjBzY2FsZXMpJTBBcGlwZWxpbmUoJTIyYmVhcnMlMkMlMjBwaXp6YSUyMGJpdGVzJTIyKS5pbWFnZXMlNUIwJTVE",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
pipeline = AutoPipelineForText2Image.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/super-cereal-sdxl-lora&quot;</span>,
weight_name=<span class="hljs-string">&quot;cereal_box_sdxl_v1.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cereal&quot;</span>
)
scales = {
<span class="hljs-string">&quot;text_encoder&quot;</span>: <span class="hljs-number">0.5</span>,
<span class="hljs-string">&quot;text_encoder_2&quot;</span>: <span class="hljs-number">0.5</span>,
<span class="hljs-string">&quot;unet&quot;</span>: {
<span class="hljs-string">&quot;down&quot;</span>: <span class="hljs-number">0.9</span>,
<span class="hljs-string">&quot;up&quot;</span>: {
<span class="hljs-string">&quot;block_0&quot;</span>: <span class="hljs-number">0.6</span>,
<span class="hljs-string">&quot;block_1&quot;</span>: [<span class="hljs-number">0.4</span>, <span class="hljs-number">0.8</span>, <span class="hljs-number">1.0</span>],
}
}
}
pipeline.set_adapters(<span class="hljs-string">&quot;cereal&quot;</span>, scales)
pipeline(<span class="hljs-string">&quot;bears, pizza bites&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),{c(){p=M("blockquote"),p.innerHTML=f,i=a(),U=M("p"),U.innerHTML=o,d=a(),J(j.$$.fragment),this.h()},l(b){p=r(b,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(p)!=="svelte-1chq01l"&&(p.innerHTML=f),i=n(b),U=r(b,"P",{"data-svelte-h":!0}),w(U)!=="svelte-1piy7jx"&&(U.innerHTML=o),d=n(b),c(j.$$.fragment,b),this.h()},h(){W(p,"class","warning")},m(b,G){s(b,p,G),s(b,i,G),s(b,U,G),s(b,d,G),m(j,b,G),I=!0},p:$e,i(b){I||(u(j.$$.fragment,b),I=!0)},o(b){T(j.$$.fragment,b),I=!1},d(b){b&&(t(p),t(i),t(U),t(d)),y(j,b)}}}function za(Z){let p,f,i,U;return p=new We({props:{id:"weight-scale",option:"simple use case",$$slots:{default:[xa]},$$scope:{ctx:Z}}}),i=new We({props:{id:"weight-scale",option:"finer control",$$slots:{default:[Sa]},$$scope:{ctx:Z}}}),{c(){J(p.$$.fragment),f=a(),J(i.$$.fragment)},l(o){c(p.$$.fragment,o),f=n(o),c(i.$$.fragment,o)},m(o,d){m(p,o,d),s(o,f,d),m(i,o,d),U=!0},p(o,d){const j={};d&2&&(j.$$scope={dirty:d,ctx:o}),p.$set(j);const I={};d&2&&(I.$$scope={dirty:d,ctx:o}),i.$set(I)},i(o){U||(u(p.$$.fragment,o),u(i.$$.fragment,o),U=!0)},o(o){T(p.$$.fragment,o),T(i.$$.fragment,o),U=!1},d(o){o&&t(f),y(p,o),y(i,o)}}}function Ha(Z){let p,f;return p=new h({props:{code:"cGlwZWxpbmUudW5sb2FkX2xvcmFfd2VpZ2h0cygpJTBBcGlwZWxpbmUuc2F2ZV9wcmV0cmFpbmVkKCUyMnBhdGglMkZ0byUyRmZ1c2VkLXBpcGVsaW5lJTIyKQ==",highlighted:`pipeline.unload_lora_weights()
pipeline.save_pretrained(<span class="hljs-string">&quot;path/to/fused-pipeline&quot;</span>)`,lang:"py",wrap:!1}}),{c(){J(p.$$.fragment)},l(i){c(p.$$.fragment,i)},m(i,U){m(p,i,U),f=!0},p:$e,i(i){f||(u(p.$$.fragment,i),f=!0)},o(i){T(p.$$.fragment,i),f=!1},d(i){y(p,i)}}}function Na(Z){let p,f;return p=new h({props:{code:"cGlwZWxpbmUudW5sb2FkX2xvcmFfd2VpZ2h0cygpJTBBcGlwZWxpbmUucHVzaF90b19odWIoJTIyZnVzZWQtaWtlYS1mZW5nJTIyKQ==",highlighted:`pipeline.unload_lora_weights()
pipeline.push_to_hub(<span class="hljs-string">&quot;fused-ikea-feng&quot;</span>)`,lang:"py",wrap:!1}}),{c(){J(p.$$.fragment)},l(i){c(p.$$.fragment,i)},m(i,U){m(p,i,U),f=!0},p:$e,i(i){f||(u(p.$$.fragment,i),f=!0)},o(i){T(p.$$.fragment,i),f=!1},d(i){y(p,i)}}}function Da(Z){let p,f,i,U;return p=new We({props:{id:"save",option:"save locally",$$slots:{default:[Ha]},$$scope:{ctx:Z}}}),i=new We({props:{id:"save",option:"save to Hub",$$slots:{default:[Na]},$$scope:{ctx:Z}}}),{c(){J(p.$$.fragment),f=a(),J(i.$$.fragment)},l(o){c(p.$$.fragment,o),f=n(o),c(i.$$.fragment,o)},m(o,d){m(p,o,d),s(o,f,d),m(i,o,d),U=!0},p(o,d){const j={};d&2&&(j.$$scope={dirty:d,ctx:o}),p.$set(j);const I={};d&2&&(I.$$scope={dirty:d,ctx:o}),i.$set(I)},i(o){U||(u(p.$$.fragment,o),u(i.$$.fragment,o),U=!0)},o(o){T(p.$$.fragment,o),T(i.$$.fragment,o),U=!1},d(o){o&&t(f),y(p,o),y(i,o)}}}function Ka(Z){let p,f,i,U,o,d,j,I,b,G='<a href="https://huggingface.co/papers/2106.09685" rel="nofollow">LoRA (Low-Rank Adaptation)</a> 是一种让模型快速适配新任务的方法。它会冻结原始模型权重,并额外添加一小部分<em>新的</em>可训练参数。这样一来,在现有模型上适配新任务的速度会更快、成本也更低,比如生成某种新的图像风格。',Ge,L,ks="LoRA的checkpoint通常只有几百 MB,因此非常轻量,也很容易存储。你可以使用 <code>load_lora_weights()</code> 将这组较小的权重加载到现有基础模型中,并通过 <code>weight_name</code> 指定文件名。",ke,k,Re,Y,Rs="<code>load_lora_weights()</code> 是把 LoRA 权重加载到 UNet 和 text encoder 中的首选方式,因为它能处理以下情况:",Be,v,Bs="<li>LoRA 权重没有分别标注 UNet 和text encoder标识符</li> <li>LoRA 权重分别带有 UNet 和text encoder标识符</li>",Ve,x,Vs="<code>load_lora_adapter()</code> 则用于在<em>模型级别</em>直接加载 LoRA adapter,只要该模型是 Diffusers 模型并且继承自 <code>PeftAdapterMixin</code> 即可。它会为 adapter 构建并准备所需的模型配置。这个方法同样会把 LoRA adapter 加载到 UNet 中。",Ce,S,Cs="例如,如果你只想把 LoRA 加载到 UNet,<code>load_lora_adapter()</code> 会忽略文本编码器对应的 key。使用 <code>prefix</code> 参数筛选并加载合适的 state dict,这里传入 <code>&quot;unet&quot;</code> 即可。",Ee,z,qe,H,Ae,N,Es='<a href="../optimization/fp16#torchcompile">torch.compile</a> 会通过编译 PyTorch 模型来使用优化内核,从而加速推理。在编译之前,需要先把 LoRA 权重融合进基础模型,并卸载原始 LoRA 权重。',Xe,D,Qe,K,qs="通常会编译 UNet,因为它是整个管道里计算最密集的部分。",Fe,P,Le,O,As='如果你想在编译模型后配合多个 LoRA 一起使用,又不想每次都重新编译,可以查看下文的 <a href="#hotswapping">hotswapping</a> 部分。',Ye,ll,ve,el,Xs="<code>scale</code> 参数用于控制 LoRA 的应用强度。值为 <code>0</code> 时等价于只使用基础模型权重;值为 <code>1</code> 时等价于完全使用 LoRA。",xe,R,Se,tl,ze,sl,Qs="在采样过程中动态调整 LoRA scale,通常可以让你更好地控制整体构图和布局,因为某些采样步骤可能更适合使用更高或更低的 scale。",He,al,Fs='下面的例子使用了一个 <a href="https://huggingface.co/alvarobartt/ghibli-characters-flux-lora" rel="nofollow">character LoRA</a>。它在前 20 步使用较高的 scale,并逐步衰减,以便先把角色生成出来;在后续步骤中,只保留 0.2 的 scale,避免把 LoRA 学到的特征过多地施加到图像中其他并非训练目标的区域。',Ne,nl,De,pl,Ke,il,Ls="LoRA 热切换(hotswapping)是一种高效的多 LoRA 工作方式。它可以避免多次调用 <code>load_lora_weights()</code> 带来的额外内存累积;在某些情况下,如果模型已经编译,还可以避免重新编译。这个工作流要求你先加载一个 LoRA,因为新的 LoRA 权重会原地替换当前已加载的 LoRA。",Pe,ol,Oe,B,Ys="<p>目标是文本编码器的 LoRA 目前不支持热切换。</p>",lt,Ml,vs="在 <code>load_lora_weights()</code> 中设置 <code>hotswap=True</code>,即可替换第二个 LoRA。使用 <code>adapter_name</code> 参数指定要替换的是哪个 LoRA(默认名字是 <code>default_0</code>)。",et,rl,tt,Jl,st,cl,xs="对于已经编译的模型,可以使用 <code>enable_lora_hotswap()</code> 来避免热切换时重新编译。这个方法应该在加载第一个 LoRA <em>之前</em>调用,而 <code>torch.compile</code> 则应该在加载第一个 LoRA <em>之后</em>调用。",at,V,Ss="<p>如果第二个 LoRA 与第一个 LoRA 的 rank 和 scale 完全一致,那么 <code>enable_lora_hotswap()</code> 不一定是必需的。</p>",nt,ml,zs="在 <code>enable_lora_hotswap()</code> 中,<code>target_rank</code> 参数很重要,它决定了所有 LoRA adapter 的 rank。设为 <code>max_rank</code> 时,会自动取最大的 rank;如果 LoRA 的 rank 不同,你也可以手动设为更高的值。默认 rank 是 128。",pt,ul,it,C,Hs='<p>你可以把代码放进 <code>with torch._dynamo.config.patch(error_on_recompile=True)</code> 上下文中,用来检测模型是否发生了重新编译。如果你严格按照上面的步骤做了,模型依然重新编译,请带着可复现示例提交一个 <a href="https://github.com/huggingface/diffusers/issues" rel="nofollow">issue</a>。</p>',ot,Tl,Ns='如果你预计在推理时会使用不同分辨率,请在编译时设置 <code>dynamic=True</code>。更多细节可以参考<a href="../optimization/fp16#dynamic-shape-compilation">这篇文档</a>。',Mt,yl,Ds='有些情况下,重新编译依然无法避免,例如热切换进来的 LoRA 比初始 adapter 覆盖了更多层。这时,尽量<em>先</em>加载那个覆盖层数最多的 LoRA。关于这个限制的更多说明,可以参考 PEFT 的 <a href="https://huggingface.co/docs/peft/main/en/package_reference/hotswap#peft.utils.hotswap.hotswap_adapter" rel="nofollow">hotswapping</a> 文档。',rt,wl,Ks='<summary>热切换的技术细节</summary> <p><code>enable_lora_hotswap()</code> 会把 LoRA 的缩放因子从 float 转成 torch.tensor,并把权重形状补齐到所需的最大形状,这样在替换权重数据时,就不用重新分配整个属性。</p> <p>这也是为什么 <code>max_rank</code> 参数很重要。即使补出来的部分是零,也不会改变最终结果,只是补齐量越大,计算速度可能会更慢一些。</p> <p>由于不会新增新的 LoRA 属性,因此后续热切换进来的 LoRA 只能作用于与第一个 LoRA 相同的层,或者其子集。LoRA 的加载顺序因此会很关键。如果多个 LoRA 的目标层彼此不相交,你最终可能需要先构造一个覆盖所有目标层并集的 dummy LoRA。</p> <p>如果想了解更多实现细节,可以直接查看 <a href="https://github.com/huggingface/peft/blob/92d65cafa51c829484ad3d95cf71d09de57ff066/src/peft/utils/hotswap.py" rel="nofollow"><code>hotswap.py</code></a> 文件。</p>',Jt,dl,ct,fl,Ps="你可以把多个 LoRA 的权重合并在一起,得到多种现有风格的混合效果。LoRA 合并有多种方法,不同方法主要区别在于<em>如何</em>合并权重,这也可能影响生成质量。",mt,Ul,ut,hl,Os="<code>set_adapters()</code> 会通过拼接多个 LoRA 的加权矩阵来完成合并。把 LoRA 名称传给 <code>set_adapters()</code>,再通过 <code>adapter_weights</code> 参数控制每个 LoRA 的缩放权重。例如,当 <code>adapter_weights=[0.5, 0.5]</code> 时,输出就是两个 LoRA 的平均效果。",Tt,E,la='<p><code>&quot;scale&quot;</code> 参数决定了应用合并后 LoRA 的强度。详情可参考前面的 <a href="#%E6%9D%83%E9%87%8D%E7%BC%A9%E6%94%BE">权重缩放</a> 部分。</p>',yt,jl,wt,q,ea='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/lora_merge_set_adapters.png"/>',dt,bl,ft,A,ta='<p>这是一个实验性方法。更多背景可以参考 PEFT 的 <a href="https://huggingface.co/docs/peft/developer_guides/model_merging" rel="nofollow">Model merging</a> 文档。如果你想了解这项集成背后的动机和设计,也可以看看这个 <a href="https://github.com/huggingface/diffusers/issues/6892" rel="nofollow">issue</a>。</p>',Ut,Zl,sa='<code>add_weighted_adapter</code> 支持使用更高效的合并方法,比如 <a href="https://huggingface.co/papers/2306.01708" rel="nofollow">TIES</a> 或 <a href="https://huggingface.co/papers/2311.03099" rel="nofollow">DARE</a>。这些方法会从合并后的模型中移除冗余或可能互相干扰的参数。需要注意的是,要进行合并,各个 LoRA 的 rank 必须一致。',ht,gl,aa="请先确保安装的是最新版稳定版 Diffusers 和 PEFT。",jt,Il,bt,Wl,na="先加载一个与 LoRA UNet 对应的 UNet。",Zt,$l,gt,_l,pa="加载一个管道,把这个 UNet 传进去,然后再加载 LoRA。",It,Gl,Wt,kl,ia="通过前面加载的第一个 UNet 和管道中的 LoRA UNet,创建一个来自该 LoRA 检查点的 <code>PeftModel</code>。",$t,Rl,_t,_,Ie,oa="你也可以像下面这样把 <code>ikea_peft_model</code> 推送到 Hub,之后保存并复用。",$s,Bl,Gt,Vl,Ma="重复这一步,为第二个 LoRA 再创建一个 <code>PeftModel</code>。",kt,Cl,Rt,El,ra="加载一个基础 UNet,并加载 adapters。",Bt,ql,Vt,Al,Ja='使用 <code>add_weighted_adapter</code> 合并 LoRA,并通过 <code>combination_type</code> 指定合并方式。下面的例子使用 <code>&quot;dare_linear&quot;</code> 方法(想了解这些合并方法,可以参考<a href="https://huggingface.co/blog/peft_merging" rel="nofollow">这篇博客</a>),它会先随机裁剪一部分权重,再根据 <code>weights</code> 中给定的权重,对各个 LoRA 的张量做加权求和。',Ct,Xl,ca="再使用 <code>set_adapters()</code> 激活合并后的 LoRA。",Et,Ql,qt,X,ma='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/ikea-feng-dare-linear.png"/>',At,Fl,Xt,Ll,ua="<code>fuse_lora()</code> 会把 LoRA 权重直接融合到基础模型底层的 UNet 和文本编码器权重中。这样做可以减少每个 LoRA 都重新加载底层模型的开销,因为基础模型只需加载一次,从而降低内存占用并提升推理速度。",Qt,Yl,Ft,vl,Ta="调用 <code>fuse_lora()</code> 进行融合。<code>lora_scale</code> 参数控制 LoRA 权重对输出的缩放强度。这里必须现在就设置好,因为在这个场景下,向 <code>cross_attention_kwargs</code> 传 <code>scale</code> 不会生效。",Lt,xl,Yt,Sl,ya="由于 LoRA 权重已经融合到底层模型中,可以把它们卸载掉。然后通过 <code>save_pretrained()</code> 保存到本地,或者通过 <code>~PushToHubMixin.push_to_hub</code> 保存到 Hub。",vt,Q,xt,zl,wa="之后,你就可以快速加载这个融合后的管道进行推理,而不需要分别加载每个 LoRA。",St,Hl,zt,Nl,da="如果你想恢复底层模型原始权重,例如想改用不同的 <code>lora_scale</code>,可以使用 <code>unfuse_lora()</code>。不过只有融合了单个 LoRA 时才能反融合。比如上面那个含多个融合 LoRA 的管道就无法这样做,这种情况下你需要重新加载整个模型。",Ht,Dl,Nt,F,fa='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/fuse_lora.png"/>',Dt,Kl,Kt,Pl,Ua="Diffusers 提供了多种方法来帮助你管理 LoRA,尤其是在同时使用多个 LoRA 时会很有帮助。",Pt,Ol,Ot,le,ha="<code>set_adapters()</code> 也会在多个活跃 LoRA 中激活当前要使用的那个 LoRA。你可以通过指定名字,在不同 LoRA 之间切换。",ls,ee,es,te,ts,se,ja="使用 <code>save_lora_adapter()</code> 保存 adapter。",ss,ae,as,ne,ns,pe,ba="<code>unload_lora_weights()</code> 会卸载管道中的所有 LoRA 权重,并恢复到底层模型原始权重。",ps,ie,is,oe,os,Me,Za="<code>disable_lora()</code> 会禁用所有 LoRA(但仍保留在管道中),并让管道恢复到底层模型权重。",Ms,re,rs,Je,Js,ce,ga="<code>get_active_adapters()</code> 会返回挂载在管道上的活跃 LoRA 列表。",cs,me,ms,ue,us,Te,Ia="<code>get_list_adapters()</code> 会返回管道中每个组件当前有哪些活跃 LoRA。",Ts,ye,ys,we,ws,de,Wa="<code>delete_adapters()</code> 会把某个 LoRA 及其对应层从模型中彻底移除。",ds,fe,fs,Ue,Us,he,$a='你可以在 <a href="https://lorastudio.co/models" rel="nofollow">LoRA Studio</a> 浏览可用的 LoRA,也可以使用下面这个 Civitai Space,把自己喜欢的 LoRA 上传到 Hub。',hs,$,_a,js,je,Ga='你还可以在 <a href="https://huggingface.co/spaces/multimodalart/flux-lora-the-explorer" rel="nofollow">FLUX LoRA the Explorer</a> 和 <a href="https://huggingface.co/spaces/multimodalart/LoraTheExplorer" rel="nofollow">LoRA the Explorer</a> 这两个仓库中找到更多 LoRA。',bs,be,ka='如果你想了解如何结合 FlashAttention-3 和 fp8 量化等方法优化 LoRA 推理,也可以看看这篇博客:<a href="https://huggingface.co/blog/lora-fast" rel="nofollow">Fast LoRA inference for Flux with Diffusers and PEFT</a>。',Zs,Ze,gs,_e,Is;return o=new Qa({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),j=new g({props:{title:"LoRA",local:"lora",headingTag:"h1"}}),k=new Gs({props:{id:"usage",options:["text-to-image","text-to-video"],$$slots:{default:[va]},$$scope:{ctx:Z}}}),z=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLnVuZXQubG9hZF9sb3JhX2FkYXB0ZXIoJTBBJTIwJTIwJTIwJTIwJTIyamJpbGNrZS1oZiUyRnNkeGwtY2luZW1hdGljLTElMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMnB5dG9yY2hfbG9yYV93ZWlnaHRzLnNhZmV0ZW5zb3JzJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyY2luZW1hdGljJTIyJTJDJTBBJTIwJTIwJTIwJTIwcHJlZml4JTNEJTIydW5ldCUyMiUwQSklMEElMjMlMjAlRTUlOUMlQTglRTYlOEYlOTAlRTclQTQlQkElRTglQUYlOEQlRTQlQjglQUQlRTQlQkQlQkYlRTclOTQlQTglMjBjbm10JTIwJUU2JTlEJUE1JUU4JUE3JUE2JUU1JThGJTkxJUU4JUJGJTk5JUU0JUI4JUFBJTIwTG9SQSUwQXBpcGVsaW5lKCUyMkElMjBjdXRlJTIwY25tdCUyMGVhdGluZyUyMGElMjBzbGljZSUyMG9mJTIwcGl6emElMkMlMjBzdHVubmluZyUyMGNvbG9yJTIwc2NoZW1lJTJDJTIwbWFzdGVycGllY2UlMkMlMjBpbGx1c3RyYXRpb24lMjIpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
pipeline = AutoPipelineForText2Image.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.unet.load_lora_adapter(
<span class="hljs-string">&quot;jbilcke-hf/sdxl-cinematic-1&quot;</span>,
weight_name=<span class="hljs-string">&quot;pytorch_lora_weights.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cinematic&quot;</span>,
prefix=<span class="hljs-string">&quot;unet&quot;</span>
)
<span class="hljs-comment"># 在提示词中使用 cnmt 来触发这个 LoRA</span>
pipeline(<span class="hljs-string">&quot;A cute cnmt eating a slice of pizza, stunning color scheme, masterpiece, illustration&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),H=new g({props:{title:"torch.compile",local:"torchcompile",headingTag:"h2"}}),D=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEElMjMlMjAlRTUlOEElQTAlRTglQkQlQkQlRTUlOUYlQkElRTclQTElODAlRTYlQTglQTElRTUlOUUlOEIlRTUlOTIlOEMlMjBMb1JBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMm9zdHJpcyUyRmlrZWEtaW5zdHJ1Y3Rpb25zLWxvcmEtc2R4bCUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9uYW1lJTNEJTIyaWtlYV9pbnN0cnVjdGlvbnNfeGxfdjFfNS5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmlrZWElMjIlMEEpJTBBJTBBJTIzJTIwJUU2JUJGJTgwJUU2JUI0JUJCJTIwTG9SQSUyMCVFNSVCOSVCNiVFOCVBRSVCRSVFNyVCRCVBRSUyMGFkYXB0ZXIlMjAlRTYlOUQlODMlRTklODclOEQlMEFwaXBlbGluZS5zZXRfYWRhcHRlcnMoJTIyaWtlYSUyMiUyQyUyMGFkYXB0ZXJfd2VpZ2h0cyUzRDAuNyklMEElMEElMjMlMjAlRTglOUUlOEQlRTUlOTAlODglMjBMb1JBJTIwJUU1JUI5JUI2JUU1JThEJUI4JUU4JUJEJUJEJUU2JTlEJTgzJUU5JTg3JThEJTBBcGlwZWxpbmUuZnVzZV9sb3JhKGFkYXB0ZXJfbmFtZXMlM0QlNUIlMjJpa2VhJTIyJTVEJTJDJTIwbG9yYV9zY2FsZSUzRDEuMCklMEFwaXBlbGluZS51bmxvYWRfbG9yYV93ZWlnaHRzKCk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
<span class="hljs-comment"># 加载基础模型和 LoRA</span>
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
<span class="hljs-comment"># 激活 LoRA 并设置 adapter 权重</span>
pipeline.set_adapters(<span class="hljs-string">&quot;ikea&quot;</span>, adapter_weights=<span class="hljs-number">0.7</span>)
<span class="hljs-comment"># 融合 LoRA 并卸载权重</span>
pipeline.fuse_lora(adapter_names=[<span class="hljs-string">&quot;ikea&quot;</span>], lora_scale=<span class="hljs-number">1.0</span>)
pipeline.unload_lora_weights()`,lang:"py",wrap:!1}}),P=new h({props:{code:"cGlwZWxpbmUudW5ldC50byhtZW1vcnlfZm9ybWF0JTNEdG9yY2guY2hhbm5lbHNfbGFzdCklMEFwaXBlbGluZS51bmV0JTIwJTNEJTIwdG9yY2guY29tcGlsZShwaXBlbGluZS51bmV0JTJDJTIwbW9kZSUzRCUyMnJlZHVjZS1vdmVyaGVhZCUyMiUyQyUyMGZ1bGxncmFwaCUzRFRydWUpJTBBJTBBcGlwZWxpbmUoJTIyQSUyMGJvd2wlMjBvZiUyMHJhbWVuJTIwc2hhcGVkJTIwbGlrZSUyMGElMjBjdXRlJTIwa2F3YWlpJTIwYmVhciUyMikuaW1hZ2VzJTVCMCU1RA==",highlighted:`pipeline.unet.to(memory_format=torch.channels_last)
pipeline.unet = torch.<span class="hljs-built_in">compile</span>(pipeline.unet, mode=<span class="hljs-string">&quot;reduce-overhead&quot;</span>, fullgraph=<span class="hljs-literal">True</span>)
pipeline(<span class="hljs-string">&quot;A bowl of ramen shaped like a cute kawaii bear&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),ll=new g({props:{title:"权重缩放",local:"权重缩放",headingTag:"h2"}}),R=new Gs({props:{id:"weight-scale",options:["simple use case","finer control"],$$slots:{default:[za]},$$scope:{ctx:Z}}}),tl=new g({props:{title:"缩放调度",local:"缩放调度",headingTag:"h3"}}),nl=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRmx1eFBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBGbHV4UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmJsYWNrLWZvcmVzdC1sYWJzJTJGRkxVWC4xLWRldiUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBcGlwZWxuZS5sb2FkX2xvcmFfd2VpZ2h0cyglMjJhbHZhcm9iYXJ0dCUyRmdoaWJsaS1jaGFyYWN0ZXJzLWZsdXgtbG9yYSUyMiUyQyUyMCUyMmxvcmElMjIpJTBBJTBBbnVtX2luZmVyZW5jZV9zdGVwcyUyMCUzRCUyMDMwJTBBbG9yYV9zdGVwcyUyMCUzRCUyMDIwJTBBbG9yYV9zY2FsZXMlMjAlM0QlMjB0b3JjaC5saW5zcGFjZSgxLjUlMkMlMjAwLjclMkMlMjBsb3JhX3N0ZXBzKS50b2xpc3QoKSUwQWxvcmFfc2NhbGVzJTIwJTJCJTNEJTIwJTVCMC4yJTVEJTIwKiUyMChudW1faW5mZXJlbmNlX3N0ZXBzJTIwLSUyMGxvcmFfc3RlcHMlMjAlMkIlMjAxKSUwQSUwQXBpcGVsaW5lLnNldF9hZGFwdGVycyglMjJsb3JhJTIyJTJDJTIwbG9yYV9zY2FsZXMlNUIwJTVEKSUwQSUwQWRlZiUyMGNhbGxiYWNrKHBpcGVsaW5lJTNBJTIwRmx1eFBpcGVsaW5lJTJDJTIwc3RlcCUzQSUyMGludCUyQyUyMHRpbWVzdGVwJTNBJTIwdG9yY2guTG9uZ1RlbnNvciUyQyUyMGNhbGxiYWNrX2t3YXJncyUzQSUyMGRpY3QpJTNBJTBBJTIwJTIwJTIwJTIwcGlwZWxpbmUuc2V0X2FkYXB0ZXJzKCUyMmxvcmElMjIlMkMlMjBsb3JhX3NjYWxlcyU1QnN0ZXAlMjAlMkIlMjAxJTVEKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMGNhbGxiYWNrX2t3YXJncyUwQSUwQXByb21wdCUyMCUzRCUyMCUyMiUyMiUyMiUwQUdoaWJsaSUyMHN0eWxlJTIwVGhlJTIwR3JpbmNoJTJDJTIwYSUyMG1pc2NoaWV2b3VzJTIwZ3JlZW4lMjBjcmVhdHVyZSUyMHdpdGglMjBhJTIwc2x5JTIwZ3JpbiUyQyUyMHBlZWtpbmclMjBvdXQlMjBmcm9tJTIwYmVoaW5kJTIwYSUyMHNub3ctY292ZXJlZCUyMHRyZWUlMjB3aGlsZSUyMHBsb3R0aW5nJTIwaGlzJTIwYW50aWNzJTJDJTIwJTBBaW4lMjBhJTIwcXVhaW50JTIwc25vd3klMjB2aWxsYWdlJTIwZGVjb3JhdGVkJTIwZm9yJTIwdGhlJTIwaG9saWRheXMlMkMlMjB3YXJtJTIwbGlnaHQlMjBnbG93aW5nJTIwZnJvbSUyMGNvenklMjBob21lcyUyQyUyMHdpdGglMjBwbGF5ZnVsJTIwc25vd2ZsYWtlcyUyMGRhbmNpbmclMjBpbiUyMHRoZSUyMGFpciUwQSUyMiUyMiUyMiUwQXBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNEMy4wJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRG51bV9pbmZlcmVuY2Vfc3RlcHMlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0R0b3JjaC5HZW5lcmF0b3IoKS5tYW51YWxfc2VlZCg0MiklMkMlMEElMjAlMjAlMjAlMjBjYWxsYmFja19vbl9zdGVwX2VuZCUzRGNhbGxiYWNrJTJDJTBBKS5pbWFnZXMlNUIwJTVE",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> FluxPipeline
pipeline = FluxPipeline.from_pretrained(
<span class="hljs-string">&quot;black-forest-labs/FLUX.1-dev&quot;</span>, torch_dtype=torch.bfloat16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipelne.load_lora_weights(<span class="hljs-string">&quot;alvarobartt/ghibli-characters-flux-lora&quot;</span>, <span class="hljs-string">&quot;lora&quot;</span>)
num_inference_steps = <span class="hljs-number">30</span>
lora_steps = <span class="hljs-number">20</span>
lora_scales = torch.linspace(<span class="hljs-number">1.5</span>, <span class="hljs-number">0.7</span>, lora_steps).tolist()
lora_scales += [<span class="hljs-number">0.2</span>] * (num_inference_steps - lora_steps + <span class="hljs-number">1</span>)
pipeline.set_adapters(<span class="hljs-string">&quot;lora&quot;</span>, lora_scales[<span class="hljs-number">0</span>])
<span class="hljs-keyword">def</span> <span class="hljs-title function_">callback</span>(<span class="hljs-params">pipeline: FluxPipeline, step: <span class="hljs-built_in">int</span>, timestep: torch.LongTensor, callback_kwargs: <span class="hljs-built_in">dict</span></span>):
pipeline.set_adapters(<span class="hljs-string">&quot;lora&quot;</span>, lora_scales[step + <span class="hljs-number">1</span>])
<span class="hljs-keyword">return</span> callback_kwargs
prompt = <span class="hljs-string">&quot;&quot;&quot;
Ghibli style The Grinch, a mischievous green creature with a sly grin, peeking out from behind a snow-covered tree while plotting his antics,
in a quaint snowy village decorated for the holidays, warm light glowing from cozy homes, with playful snowflakes dancing in the air
&quot;&quot;&quot;</span>
pipeline(
prompt=prompt,
guidance_scale=<span class="hljs-number">3.0</span>,
num_inference_steps=num_inference_steps,
generator=torch.Generator().manual_seed(<span class="hljs-number">42</span>),
callback_on_step_end=callback,
).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),pl=new g({props:{title:"热切换",local:"热切换",headingTag:"h2"}}),ol=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEElMjMlMjAlRTUlOEElQTAlRTglQkQlQkQlRTUlOUYlQkElRTclQTElODAlRTYlQTglQTElRTUlOUUlOEIlRTUlOTIlOEMlMjBMb1JBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMm9zdHJpcyUyRmlrZWEtaW5zdHJ1Y3Rpb25zLWxvcmEtc2R4bCUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9uYW1lJTNEJTIyaWtlYV9pbnN0cnVjdGlvbnNfeGxfdjFfNS5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmlrZWElMjIlMEEp",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
<span class="hljs-comment"># 加载基础模型和 LoRA</span>
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)`,lang:"py",wrap:!1}}),rl=new h({props:{code:"cGlwZWxpbmUubG9hZF9sb3JhX3dlaWdodHMoJTBBJTIwJTIwJTIwJTIwJTIybG9yZGppYSUyRmJ5LWZlbmctemlrYWklMjIlMkMlMEElMjAlMjAlMjAlMjBob3Rzd2FwJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmlrZWElMjIlMEEp",highlighted:`pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
hotswap=<span class="hljs-literal">True</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)`,lang:"py",wrap:!1}}),Jl=new g({props:{title:"编译模型",local:"编译模型",headingTag:"h3"}}),ul=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEElMjMlMjAlRTUlOEElQTAlRTglQkQlQkQlRTUlOUYlQkElRTclQTElODAlRTYlQTglQTElRTUlOUUlOEIlRTUlOTIlOEMlMjBMb1JBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQSUyMyUyMDEuJTIwJUU1JTkwJUFGJUU3JTk0JUE4JTIwZW5hYmxlX2xvcmFfaG90c3dhcCUwQXBpcGVsaW5lLmVuYWJsZV9sb3JhX2hvdHN3YXAodGFyZ2V0X3JhbmslM0RtYXhfcmFuayklMEFwaXBlbGluZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJvc3RyaXMlMkZpa2VhLWluc3RydWN0aW9ucy1sb3JhLXNkeGwlMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMmlrZWFfaW5zdHJ1Y3Rpb25zX3hsX3YxXzUuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJpa2VhJTIyJTBBKSUwQSUyMyUyMDIuJTIwdG9yY2guY29tcGlsZSUwQXBpcGVsaW5lLnVuZXQlMjAlM0QlMjB0b3JjaC5jb21waWxlKHBpcGVsaW5lLnVuZXQlMkMlMjBtb2RlJTNEJTIycmVkdWNlLW92ZXJoZWFkJTIyJTJDJTIwZnVsbGdyYXBoJTNEVHJ1ZSklMEElMEElMjMlMjAzLiUyMCVFNyU4MyVBRCVFNSU4OCU4NyVFNiU4RCVBMiUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMmxvcmRqaWElMkZieS1mZW5nLXppa2FpJTIyJTJDJTBBJTIwJTIwJTIwJTIwaG90c3dhcCUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJpa2VhJTIyJTBBKQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
<span class="hljs-comment"># 加载基础模型和 LoRA</span>
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-comment"># 1. 启用 enable_lora_hotswap</span>
pipeline.enable_lora_hotswap(target_rank=max_rank)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
<span class="hljs-comment"># 2. torch.compile</span>
pipeline.unet = torch.<span class="hljs-built_in">compile</span>(pipeline.unet, mode=<span class="hljs-string">&quot;reduce-overhead&quot;</span>, fullgraph=<span class="hljs-literal">True</span>)
<span class="hljs-comment"># 3. 热切换</span>
pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
hotswap=<span class="hljs-literal">True</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)`,lang:"py",wrap:!1}}),dl=new g({props:{title:"合并",local:"合并",headingTag:"h2"}}),Ul=new g({props:{title:"set_adapters",local:"setadapters",headingTag:"h3"}}),jl=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUubG9hZF9sb3JhX3dlaWdodHMoJTBBJTIwJTIwJTIwJTIwJTIyb3N0cmlzJTJGaWtlYS1pbnN0cnVjdGlvbnMtbG9yYS1zZHhsJTIyJTJDJTBBJTIwJTIwJTIwJTIwd2VpZ2h0X25hbWUlM0QlMjJpa2VhX2luc3RydWN0aW9uc194bF92MV81LnNhZmV0ZW5zb3JzJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyaWtlYSUyMiUwQSklMEFwaXBlbGluZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJsb3JkamlhJTJGYnktZmVuZy16aWthaSUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9uYW1lJTNEJTIyZmVuZ3ppa2FpX3YxLjBfWEwuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJmZW5nJTIyJTBBKSUwQXBpcGVsaW5lLnNldF9hZGFwdGVycyglNUIlMjJpa2VhJTIyJTJDJTIwJTIyZmVuZyUyMiU1RCUyQyUyMGFkYXB0ZXJfd2VpZ2h0cyUzRCU1QjAuNyUyQyUyMDAuOCU1RCklMEElMjMlMjAlRTUlOUMlQTglRTYlOEYlOTAlRTclQTQlQkElRTglQUYlOEQlRTQlQjglQUQlRTQlQkQlQkYlRTclOTQlQTglMjBieSUyMEZlbmclMjBaaWthaSUyMCVFNiU5RCVBNSVFNiVCRiU4MCVFNiVCNCVCQiUyMGxvcmRqaWElMkZieS1mZW5nLXppa2FpJTIwJUU4JUJGJTk5JUU0JUI4JUFBJTIwTG9SQSUwQXBpcGVsaW5lKCUyMkElMjBib3dsJTIwb2YlMjByYW1lbiUyMHNoYXBlZCUyMGxpa2UlMjBhJTIwY3V0ZSUyMGthd2FpaSUyMGJlYXIlMkMlMjBieSUyMEZlbmclMjBaaWthaSUyMiUyQyUyMGNyb3NzX2F0dGVudGlvbl9rd2FyZ3MlM0QlN0IlMjJzY2FsZSUyMiUzQSUyMDEuMCU3RCkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
weight_name=<span class="hljs-string">&quot;fengzikai_v1.0_XL.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)
pipeline.set_adapters([<span class="hljs-string">&quot;ikea&quot;</span>, <span class="hljs-string">&quot;feng&quot;</span>], adapter_weights=[<span class="hljs-number">0.7</span>, <span class="hljs-number">0.8</span>])
<span class="hljs-comment"># 在提示词中使用 by Feng Zikai 来激活 lordjia/by-feng-zikai 这个 LoRA</span>
pipeline(<span class="hljs-string">&quot;A bowl of ramen shaped like a cute kawaii bear, by Feng Zikai&quot;</span>, cross_attention_kwargs={<span class="hljs-string">&quot;scale&quot;</span>: <span class="hljs-number">1.0</span>}).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),bl=new g({props:{title:"add_weighted_adapter",local:"addweightedadapter",headingTag:"h3"}}),Il=new h({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1VJTIwLXElMjBkaWZmdXNlcnMlMjBwZWZ0",highlighted:"pip install -U -q diffusers peft",lang:"bash",wrap:!1}}),$l=new h({props:{code:"aW1wb3J0JTIwY29weSUwQWltcG9ydCUyMHRvcmNoJTBBZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUyQyUyMERpZmZ1c2lvblBpcGVsaW5lJTBBZnJvbSUyMHBlZnQlMjBpbXBvcnQlMjBnZXRfcGVmdF9tb2RlbCUyQyUyMExvcmFDb25maWclMkMlMjBQZWZ0TW9kZWwlMEElMEF1bmV0JTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMEElMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJ1bmV0JTIyJTJDJTBBKS50byglMjJjdWRhJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> copy
<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoModel, DiffusionPipeline
<span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> get_peft_model, LoraConfig, PeftModel
unet = AutoModel.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16,
use_safetensors=<span class="hljs-literal">True</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
subfolder=<span class="hljs-string">&quot;unet&quot;</span>,
).to(<span class="hljs-string">&quot;cuda&quot;</span>)`,lang:"py",wrap:!1}}),Gl=new h({props:{code:"cGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMEElMjAlMjAlMjAlMjB1bmV0JTNEdW5ldCUwQSkudG8oJTIyY3VkYSUyMiklMEFwaXBlbGluZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJvc3RyaXMlMkZpa2VhLWluc3RydWN0aW9ucy1sb3JhLXNkeGwlMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMmlrZWFfaW5zdHJ1Y3Rpb25zX3hsX3YxXzUuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJpa2VhJTIyJTBBKQ==",highlighted:`pipeline = 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,
unet=unet
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)`,lang:"py",wrap:!1}}),Rl=new h({props:{code:"c2R4bF91bmV0JTIwJTNEJTIwY29weS5kZWVwY29weSh1bmV0KSUwQWlrZWFfcGVmdF9tb2RlbCUyMCUzRCUyMGdldF9wZWZ0X21vZGVsKCUwQSUyMCUyMCUyMCUyMHNkeGxfdW5ldCUyQyUwQSUyMCUyMCUyMCUyMHBpcGVsaW5lLnVuZXQucGVmdF9jb25maWclNUIlMjJpa2VhJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyaWtlYSUyMiUwQSklMEElMEFvcmlnaW5hbF9zdGF0ZV9kaWN0JTIwJTNEJTIwJTdCZiUyMmJhc2VfbW9kZWwubW9kZWwuJTdCayU3RCUyMiUzQSUyMHYlMjBmb3IlMjBrJTJDJTIwdiUyMGluJTIwcGlwZWxpbmUudW5ldC5zdGF0ZV9kaWN0KCkuaXRlbXMoKSU3RCUwQWlrZWFfcGVmdF9tb2RlbC5sb2FkX3N0YXRlX2RpY3Qob3JpZ2luYWxfc3RhdGVfZGljdCUyQyUyMHN0cmljdCUzRFRydWUp",highlighted:`sdxl_unet = copy.deepcopy(unet)
ikea_peft_model = get_peft_model(
sdxl_unet,
pipeline.unet.peft_config[<span class="hljs-string">&quot;ikea&quot;</span>],
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
original_state_dict = {<span class="hljs-string">f&quot;base_model.model.<span class="hljs-subst">{k}</span>&quot;</span>: v <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> pipeline.unet.state_dict().items()}
ikea_peft_model.load_state_dict(original_state_dict, strict=<span class="hljs-literal">True</span>)`,lang:"py",wrap:!1}}),Bl=new h({props:{code:"aWtlYV9wZWZ0X21vZGVsLnB1c2hfdG9faHViKCUyMmlrZWFfcGVmdF9tb2RlbCUyMiUyQyUyMHRva2VuJTNEVE9LRU4p",highlighted:'ikea_peft_model.push_to_hub(<span class="hljs-string">&quot;ikea_peft_model&quot;</span>, token=TOKEN)',lang:"py",wrap:!1}}),Cl=new h({props:{code:"cGlwZWxpbmUuZGVsZXRlX2FkYXB0ZXJzKCUyMmlrZWElMjIpJTBBc2R4bF91bmV0LmRlbGV0ZV9hZGFwdGVycyglMjJpa2VhJTIyKSUwQSUwQXBpcGVsaW5lLmxvYWRfbG9yYV93ZWlnaHRzKCUwQSUyMCUyMCUyMCUyMCUyMmxvcmRqaWElMkZieS1mZW5nLXppa2FpJTIyJTJDJTBBJTIwJTIwJTIwJTIwd2VpZ2h0X25hbWUlM0QlMjJmZW5nemlrYWlfdjEuMF9YTC5zYWZldGVuc29ycyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmZlbmclMjIlMEEpJTBBcGlwZWxpbmUuc2V0X2FkYXB0ZXJzKGFkYXB0ZXJfbmFtZXMlM0QlMjJmZW5nJTIyKSUwQSUwQWZlbmdfcGVmdF9tb2RlbCUyMCUzRCUyMGdldF9wZWZ0X21vZGVsKCUwQSUyMCUyMCUyMCUyMHNkeGxfdW5ldCUyQyUwQSUyMCUyMCUyMCUyMHBpcGVsaW5lLnVuZXQucGVmdF9jb25maWclNUIlMjJmZW5nJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyZmVuZyUyMiUwQSklMEElMEFvcmlnaW5hbF9zdGF0ZV9kaWN0JTIwJTNEJTIwJTdCZiUyMmJhc2VfbW9kZWwubW9kZWwuJTdCayU3RCUyMiUzQSUyMHYlMjBmb3IlMjBrJTJDJTIwdiUyMGluJTIwcGlwZS51bmV0LnN0YXRlX2RpY3QoKS5pdGVtcygpJTdEJTBBZmVuZ19wZWZ0X21vZGVsLmxvYWRfc3RhdGVfZGljdChvcmlnaW5hbF9zdGF0ZV9kaWN0JTJDJTIwc3RyaWN0JTNEVHJ1ZSk=",highlighted:`pipeline.delete_adapters(<span class="hljs-string">&quot;ikea&quot;</span>)
sdxl_unet.delete_adapters(<span class="hljs-string">&quot;ikea&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
weight_name=<span class="hljs-string">&quot;fengzikai_v1.0_XL.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)
pipeline.set_adapters(adapter_names=<span class="hljs-string">&quot;feng&quot;</span>)
feng_peft_model = get_peft_model(
sdxl_unet,
pipeline.unet.peft_config[<span class="hljs-string">&quot;feng&quot;</span>],
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)
original_state_dict = {<span class="hljs-string">f&quot;base_model.model.<span class="hljs-subst">{k}</span>&quot;</span>: v <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> pipe.unet.state_dict().items()}
feng_peft_model.load_state_dict(original_state_dict, strict=<span class="hljs-literal">True</span>)`,lang:"py",wrap:!1}}),ql=new h({props:{code:"YmFzZV91bmV0JTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMEElMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJ1bmV0JTIyJTJDJTBBKS50byglMjJjdWRhJTIyKSUwQSUwQW1vZGVsJTIwJTNEJTIwUGVmdE1vZGVsLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjBiYXNlX3VuZXQlMkMlMEElMjAlMjAlMjAlMjAlMjJzdGV2aGxpdSUyRmlrZWFfcGVmdF9tb2RlbCUyMiUyQyUwQSUyMCUyMCUyMCUyMHVzZV9zYWZldGVuc29ycyUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJpa2VhJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyaWtlYSUyMiUwQSklMEFtb2RlbC5sb2FkX2FkYXB0ZXIoJTBBJTIwJTIwJTIwJTIwJTIyc3RldmhsaXUlMkZmZW5nX3BlZnRfbW9kZWwlMjIlMkMlMEElMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwc3ViZm9sZGVyJTNEJTIyZmVuZyUyMiUyQyUwQSUyMCUyMCUyMCUyMGFkYXB0ZXJfbmFtZSUzRCUyMmZlbmclMjIlMEEp",highlighted:`base_unet = AutoModel.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16,
use_safetensors=<span class="hljs-literal">True</span>,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
subfolder=<span class="hljs-string">&quot;unet&quot;</span>,
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
model = PeftModel.from_pretrained(
base_unet,
<span class="hljs-string">&quot;stevhliu/ikea_peft_model&quot;</span>,
use_safetensors=<span class="hljs-literal">True</span>,
subfolder=<span class="hljs-string">&quot;ikea&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
model.load_adapter(
<span class="hljs-string">&quot;stevhliu/feng_peft_model&quot;</span>,
use_safetensors=<span class="hljs-literal">True</span>,
subfolder=<span class="hljs-string">&quot;feng&quot;</span>,
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)`,lang:"py",wrap:!1}}),Ql=new h({props:{code:"bW9kZWwuYWRkX3dlaWdodGVkX2FkYXB0ZXIoJTBBJTIwJTIwJTIwJTIwYWRhcHRlcnMlM0QlNUIlMjJpa2VhJTIyJTJDJTIwJTIyZmVuZyUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMGNvbWJpbmF0aW9uX3R5cGUlM0QlMjJkYXJlX2xpbmVhciUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodHMlM0QlNUIxLjAlMkMlMjAxLjAlNUQlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJpa2VhLWZlbmclMjIlMEEpJTBBbW9kZWwuc2V0X2FkYXB0ZXJzKCUyMmlrZWEtZmVuZyUyMiklMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB1bmV0JTNEbW9kZWwlMkMlMEElMjAlMjAlMjAlMjB2YXJpYW50JTNEJTIyZnAxNiUyMiUyQyUwQSUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUwQSkudG8oJTIyY3VkYSUyMiklMEFwaXBlbGluZSglMjJBJTIwYm93bCUyMG9mJTIwcmFtZW4lMjBzaGFwZWQlMjBsaWtlJTIwYSUyMGN1dGUlMjBrYXdhaWklMjBiZWFyJTJDJTIwYnklMjBGZW5nJTIwWmlrYWklMjIpLmltYWdlcyU1QjAlNUQ=",highlighted:`model.add_weighted_adapter(
adapters=[<span class="hljs-string">&quot;ikea&quot;</span>, <span class="hljs-string">&quot;feng&quot;</span>],
combination_type=<span class="hljs-string">&quot;dare_linear&quot;</span>,
weights=[<span class="hljs-number">1.0</span>, <span class="hljs-number">1.0</span>],
adapter_name=<span class="hljs-string">&quot;ikea-feng&quot;</span>
)
model.set_adapters(<span class="hljs-string">&quot;ikea-feng&quot;</span>)
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
unet=model,
variant=<span class="hljs-string">&quot;fp16&quot;</span>,
torch_dtype=torch.float16,
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline(<span class="hljs-string">&quot;A bowl of ramen shaped like a cute kawaii bear, by Feng Zikai&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),Fl=new g({props:{title:"fuse_lora",local:"fuselora",headingTag:"h3"}}),Yl=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUubG9hZF9sb3JhX3dlaWdodHMoJTBBJTIwJTIwJTIwJTIwJTIyb3N0cmlzJTJGaWtlYS1pbnN0cnVjdGlvbnMtbG9yYS1zZHhsJTIyJTJDJTBBJTIwJTIwJTIwJTIwd2VpZ2h0X25hbWUlM0QlMjJpa2VhX2luc3RydWN0aW9uc194bF92MV81LnNhZmV0ZW5zb3JzJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyaWtlYSUyMiUwQSklMEFwaXBlbGluZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJsb3JkamlhJTJGYnktZmVuZy16aWthaSUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9uYW1lJTNEJTIyZmVuZ3ppa2FpX3YxLjBfWEwuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJmZW5nJTIyJTBBKSUwQXBpcGVsaW5lLnNldF9hZGFwdGVycyglNUIlMjJpa2VhJTIyJTJDJTIwJTIyZmVuZyUyMiU1RCUyQyUyMGFkYXB0ZXJfd2VpZ2h0cyUzRCU1QjAuNyUyQyUyMDAuOCU1RCk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
weight_name=<span class="hljs-string">&quot;fengzikai_v1.0_XL.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)
pipeline.set_adapters([<span class="hljs-string">&quot;ikea&quot;</span>, <span class="hljs-string">&quot;feng&quot;</span>], adapter_weights=[<span class="hljs-number">0.7</span>, <span class="hljs-number">0.8</span>])`,lang:"py",wrap:!1}}),xl=new h({props:{code:"cGlwZWxpbmUuZnVzZV9sb3JhKGFkYXB0ZXJfbmFtZXMlM0QlNUIlMjJpa2VhJTIyJTJDJTIwJTIyZmVuZyUyMiU1RCUyQyUyMGxvcmFfc2NhbGUlM0QxLjAp",highlighted:'pipeline.fuse_lora(adapter_names=[<span class="hljs-string">&quot;ikea&quot;</span>, <span class="hljs-string">&quot;feng&quot;</span>], lora_scale=<span class="hljs-number">1.0</span>)',lang:"py",wrap:!1}}),Q=new Gs({props:{id:"save",options:["save locally","save to Hub"],$$slots:{default:[Da]},$$scope:{ctx:Z}}}),Hl=new h({props:{code:"cGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIydXNlcm5hbWUlMkZmdXNlZC1pa2VhLWZlbmclMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMkMlMEEpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUoJTIyQSUyMGJvd2wlMjBvZiUyMHJhbWVuJTIwc2hhcGVkJTIwbGlrZSUyMGElMjBjdXRlJTIwa2F3YWlpJTIwYmVhciUyQyUyMGJ5JTIwRmVuZyUyMFppa2FpJTIyKS5pbWFnZXMlNUIwJTVE",highlighted:`pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;username/fused-ikea-feng&quot;</span>, torch_dtype=torch.float16,
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline(<span class="hljs-string">&quot;A bowl of ramen shaped like a cute kawaii bear, by Feng Zikai&quot;</span>).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}}),Dl=new h({props:{code:"cGlwZWxpbmUudW5mdXNlX2xvcmEoKQ==",highlighted:"pipeline.unfuse_lora()",lang:"py",wrap:!1}}),Kl=new g({props:{title:"管理",local:"管理",headingTag:"h2"}}),Ol=new g({props:{title:"set_adapters",local:"setadapters",headingTag:"h3"}}),ee=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24teGwtYmFzZS0xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUubG9hZF9sb3JhX3dlaWdodHMoJTBBJTIwJTIwJTIwJTIwJTIyb3N0cmlzJTJGaWtlYS1pbnN0cnVjdGlvbnMtbG9yYS1zZHhsJTIyJTJDJTBBJTIwJTIwJTIwJTIwd2VpZ2h0X25hbWUlM0QlMjJpa2VhX2luc3RydWN0aW9uc194bF92MV81LnNhZmV0ZW5zb3JzJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyaWtlYSUyMiUwQSklMEFwaXBlbGluZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJsb3JkamlhJTJGYnktZmVuZy16aWthaSUyMiUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9uYW1lJTNEJTIyZmVuZ3ppa2FpX3YxLjBfWEwuc2FmZXRlbnNvcnMlMjIlMkMlMEElMjAlMjAlMjAlMjBhZGFwdGVyX25hbWUlM0QlMjJmZW5nJTIyJTBBKSUwQSUyMyUyMCVFNiVCRiU4MCVFNiVCNCVCQiUyMGZlbmclMjBMb1JBJUVGJUJDJThDJUU4JTgwJThDJUU0JUI4JThEJUU2JTk4JUFGJTIwaWtlYSUyMExvUkElMEFwaXBlbGluZS5zZXRfYWRhcHRlcnMoJTIyZmVuZyUyMik=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;ostris/ikea-instructions-lora-sdxl&quot;</span>,
weight_name=<span class="hljs-string">&quot;ikea_instructions_xl_v1_5.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;ikea&quot;</span>
)
pipeline.load_lora_weights(
<span class="hljs-string">&quot;lordjia/by-feng-zikai&quot;</span>,
weight_name=<span class="hljs-string">&quot;fengzikai_v1.0_XL.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;feng&quot;</span>
)
<span class="hljs-comment"># 激活 feng LoRA,而不是 ikea LoRA</span>
pipeline.set_adapters(<span class="hljs-string">&quot;feng&quot;</span>)`,lang:"py",wrap:!1}}),te=new g({props:{title:"save_lora_adapter",local:"saveloraadapter",headingTag:"h3"}}),ae=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLnVuZXQubG9hZF9sb3JhX2FkYXB0ZXIoJTBBJTIwJTIwJTIwJTIwJTIyamJpbGNrZS1oZiUyRnNkeGwtY2luZW1hdGljLTElMjIlMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfbmFtZSUzRCUyMnB5dG9yY2hfbG9yYV93ZWlnaHRzLnNhZmV0ZW5zb3JzJTIyJTJDJTBBJTIwJTIwJTIwJTIwYWRhcHRlcl9uYW1lJTNEJTIyY2luZW1hdGljJTIyJTBBJTIwJTIwJTIwJTIwcHJlZml4JTNEJTIydW5ldCUyMiUwQSklMEFwaXBlbGluZS5zYXZlX2xvcmFfYWRhcHRlciglMjJwYXRoJTJGdG8lMkZzYXZlJTIyJTJDJTIwYWRhcHRlcl9uYW1lJTNEJTIyY2luZW1hdGljJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
pipeline = AutoPipelineForText2Image.from_pretrained(
<span class="hljs-string">&quot;stabilityai/stable-diffusion-xl-base-1.0&quot;</span>,
torch_dtype=torch.float16
).to(<span class="hljs-string">&quot;cuda&quot;</span>)
pipeline.unet.load_lora_adapter(
<span class="hljs-string">&quot;jbilcke-hf/sdxl-cinematic-1&quot;</span>,
weight_name=<span class="hljs-string">&quot;pytorch_lora_weights.safetensors&quot;</span>,
adapter_name=<span class="hljs-string">&quot;cinematic&quot;</span>
prefix=<span class="hljs-string">&quot;unet&quot;</span>
)
pipeline.save_lora_adapter(<span class="hljs-string">&quot;path/to/save&quot;</span>, adapter_name=<span class="hljs-string">&quot;cinematic&quot;</span>)`,lang:"py",wrap:!1}}),ne=new g({props:{title:"unload_lora_weights",local:"unloadloraweights",headingTag:"h3"}}),ie=new h({props:{code:"cGlwZWxpbmUudW5sb2FkX2xvcmFfd2VpZ2h0cygp",highlighted:"pipeline.unload_lora_weights()",lang:"py",wrap:!1}}),oe=new g({props:{title:"disable_lora",local:"disablelora",headingTag:"h3"}}),re=new h({props:{code:"cGlwZWxpbmUuZGlzYWJsZV9sb3JhKCk=",highlighted:"pipeline.disable_lora()",lang:"py",wrap:!1}}),Je=new g({props:{title:"get_active_adapters",local:"getactiveadapters",headingTag:"h3"}}),me=new h({props:{code:"cGlwZWxpbmUuZ2V0X2FjdGl2ZV9hZGFwdGVycygpJTBBJTVCJTIyY2VyZWFsJTIyJTJDJTIwJTIyaWtlYSUyMiU1RA==",highlighted:`pipeline.get_active_adapters()
[<span class="hljs-string">&quot;cereal&quot;</span>, <span class="hljs-string">&quot;ikea&quot;</span>]`,lang:"py",wrap:!1}}),ue=new g({props:{title:"get_list_adapters",local:"getlistadapters",headingTag:"h3"}}),ye=new h({props:{code:"cGlwZWxpbmUuZ2V0X2xpc3RfYWRhcHRlcnMoKSUwQSU3QiUyMnVuZXQlMjIlM0ElMjAlNUIlMjJjZXJlYWwlMjIlMkMlMjAlMjJpa2VhJTIyJTVEJTJDJTIwJTIydGV4dF9lbmNvZGVyXzIlMjIlM0ElMjAlNUIlMjJjZXJlYWwlMjIlNUQlN0Q=",highlighted:`pipeline.get_list_adapters()
{<span class="hljs-string">&quot;unet&quot;</span>: [<span class="hljs-string">&quot;cereal&quot;</span>, <span class="hljs-string">&quot;ikea&quot;</span>], <span class="hljs-string">&quot;text_encoder_2&quot;</span>: [<span class="hljs-string">&quot;cereal&quot;</span>]}`,lang:"py",wrap:!1}}),we=new g({props:{title:"delete_adapters",local:"deleteadapters",headingTag:"h3"}}),fe=new h({props:{code:"cGlwZWxpbmUuZGVsZXRlX2FkYXB0ZXJzKCUyMmlrZWElMjIp",highlighted:'pipeline.delete_adapters(<span class="hljs-string">&quot;ikea&quot;</span>)',lang:"py",wrap:!1}}),Ue=new g({props:{title:"资源",local:"资源",headingTag:"h2"}}),Ze=new Fa({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/tutorials/using_peft_for_inference.md"}}),{c(){p=M("meta"),f=a(),i=M("p"),U=a(),J(o.$$.fragment),d=a(),J(j.$$.fragment),I=a(),b=M("p"),b.innerHTML=G,Ge=a(),L=M("p"),L.innerHTML=ks,ke=a(),J(k.$$.fragment),Re=a(),Y=M("p"),Y.innerHTML=Rs,Be=a(),v=M("ul"),v.innerHTML=Bs,Ve=a(),x=M("p"),x.innerHTML=Vs,Ce=a(),S=M("p"),S.innerHTML=Cs,Ee=a(),J(z.$$.fragment),qe=a(),J(H.$$.fragment),Ae=a(),N=M("p"),N.innerHTML=Es,Xe=a(),J(D.$$.fragment),Qe=a(),K=M("p"),K.textContent=qs,Fe=a(),J(P.$$.fragment),Le=a(),O=M("p"),O.innerHTML=As,Ye=a(),J(ll.$$.fragment),ve=a(),el=M("p"),el.innerHTML=Xs,xe=a(),J(R.$$.fragment),Se=a(),J(tl.$$.fragment),ze=a(),sl=M("p"),sl.textContent=Qs,He=a(),al=M("p"),al.innerHTML=Fs,Ne=a(),J(nl.$$.fragment),De=a(),J(pl.$$.fragment),Ke=a(),il=M("p"),il.innerHTML=Ls,Pe=a(),J(ol.$$.fragment),Oe=a(),B=M("blockquote"),B.innerHTML=Ys,lt=a(),Ml=M("p"),Ml.innerHTML=vs,et=a(),J(rl.$$.fragment),tt=a(),J(Jl.$$.fragment),st=a(),cl=M("p"),cl.innerHTML=xs,at=a(),V=M("blockquote"),V.innerHTML=Ss,nt=a(),ml=M("p"),ml.innerHTML=zs,pt=a(),J(ul.$$.fragment),it=a(),C=M("blockquote"),C.innerHTML=Hs,ot=a(),Tl=M("p"),Tl.innerHTML=Ns,Mt=a(),yl=M("p"),yl.innerHTML=Ds,rt=a(),wl=M("details"),wl.innerHTML=Ks,Jt=a(),J(dl.$$.fragment),ct=a(),fl=M("p"),fl.innerHTML=Ps,mt=a(),J(Ul.$$.fragment),ut=a(),hl=M("p"),hl.innerHTML=Os,Tt=a(),E=M("blockquote"),E.innerHTML=la,yt=a(),J(jl.$$.fragment),wt=a(),q=M("div"),q.innerHTML=ea,dt=a(),J(bl.$$.fragment),ft=a(),A=M("blockquote"),A.innerHTML=ta,Ut=a(),Zl=M("p"),Zl.innerHTML=sa,ht=a(),gl=M("p"),gl.textContent=aa,jt=a(),J(Il.$$.fragment),bt=a(),Wl=M("p"),Wl.textContent=na,Zt=a(),J($l.$$.fragment),gt=a(),_l=M("p"),_l.textContent=pa,It=a(),J(Gl.$$.fragment),Wt=a(),kl=M("p"),kl.innerHTML=ia,$t=a(),J(Rl.$$.fragment),_t=a(),_=M("blockquote"),Ie=M("p"),Ie.innerHTML=oa,$s=a(),J(Bl.$$.fragment),Gt=a(),Vl=M("p"),Vl.innerHTML=Ma,kt=a(),J(Cl.$$.fragment),Rt=a(),El=M("p"),El.textContent=ra,Bt=a(),J(ql.$$.fragment),Vt=a(),Al=M("p"),Al.innerHTML=Ja,Ct=a(),Xl=M("p"),Xl.innerHTML=ca,Et=a(),J(Ql.$$.fragment),qt=a(),X=M("div"),X.innerHTML=ma,At=a(),J(Fl.$$.fragment),Xt=a(),Ll=M("p"),Ll.innerHTML=ua,Qt=a(),J(Yl.$$.fragment),Ft=a(),vl=M("p"),vl.innerHTML=Ta,Lt=a(),J(xl.$$.fragment),Yt=a(),Sl=M("p"),Sl.innerHTML=ya,vt=a(),J(Q.$$.fragment),xt=a(),zl=M("p"),zl.textContent=wa,St=a(),J(Hl.$$.fragment),zt=a(),Nl=M("p"),Nl.innerHTML=da,Ht=a(),J(Dl.$$.fragment),Nt=a(),F=M("div"),F.innerHTML=fa,Dt=a(),J(Kl.$$.fragment),Kt=a(),Pl=M("p"),Pl.textContent=Ua,Pt=a(),J(Ol.$$.fragment),Ot=a(),le=M("p"),le.innerHTML=ha,ls=a(),J(ee.$$.fragment),es=a(),J(te.$$.fragment),ts=a(),se=M("p"),se.innerHTML=ja,ss=a(),J(ae.$$.fragment),as=a(),J(ne.$$.fragment),ns=a(),pe=M("p"),pe.innerHTML=ba,ps=a(),J(ie.$$.fragment),is=a(),J(oe.$$.fragment),os=a(),Me=M("p"),Me.innerHTML=Za,Ms=a(),J(re.$$.fragment),rs=a(),J(Je.$$.fragment),Js=a(),ce=M("p"),ce.innerHTML=ga,cs=a(),J(me.$$.fragment),ms=a(),J(ue.$$.fragment),us=a(),Te=M("p"),Te.innerHTML=Ia,Ts=a(),J(ye.$$.fragment),ys=a(),J(we.$$.fragment),ws=a(),de=M("p"),de.innerHTML=Wa,ds=a(),J(fe.$$.fragment),fs=a(),J(Ue.$$.fragment),Us=a(),he=M("p"),he.innerHTML=$a,hs=a(),$=M("iframe"),js=a(),je=M("p"),je.innerHTML=Ga,bs=a(),be=M("p"),be.innerHTML=ka,Zs=a(),J(Ze.$$.fragment),gs=a(),_e=M("p"),this.h()},l(l){const e=Xa("svelte-u9bgzb",document.head);p=r(e,"META",{name:!0,content:!0}),e.forEach(t),f=n(l),i=r(l,"P",{}),Ws(i).forEach(t),U=n(l),c(o.$$.fragment,l),d=n(l),c(j.$$.fragment,l),I=n(l),b=r(l,"P",{"data-svelte-h":!0}),w(b)!=="svelte-mjdt0h"&&(b.innerHTML=G),Ge=n(l),L=r(l,"P",{"data-svelte-h":!0}),w(L)!=="svelte-1k9yhdw"&&(L.innerHTML=ks),ke=n(l),c(k.$$.fragment,l),Re=n(l),Y=r(l,"P",{"data-svelte-h":!0}),w(Y)!=="svelte-1hjkua4"&&(Y.innerHTML=Rs),Be=n(l),v=r(l,"UL",{"data-svelte-h":!0}),w(v)!=="svelte-bn82aq"&&(v.innerHTML=Bs),Ve=n(l),x=r(l,"P",{"data-svelte-h":!0}),w(x)!=="svelte-1mlxodb"&&(x.innerHTML=Vs),Ce=n(l),S=r(l,"P",{"data-svelte-h":!0}),w(S)!=="svelte-1c2rtzb"&&(S.innerHTML=Cs),Ee=n(l),c(z.$$.fragment,l),qe=n(l),c(H.$$.fragment,l),Ae=n(l),N=r(l,"P",{"data-svelte-h":!0}),w(N)!=="svelte-17xu0vi"&&(N.innerHTML=Es),Xe=n(l),c(D.$$.fragment,l),Qe=n(l),K=r(l,"P",{"data-svelte-h":!0}),w(K)!=="svelte-ncemnd"&&(K.textContent=qs),Fe=n(l),c(P.$$.fragment,l),Le=n(l),O=r(l,"P",{"data-svelte-h":!0}),w(O)!=="svelte-1aj1qc4"&&(O.innerHTML=As),Ye=n(l),c(ll.$$.fragment,l),ve=n(l),el=r(l,"P",{"data-svelte-h":!0}),w(el)!=="svelte-w92uxe"&&(el.innerHTML=Xs),xe=n(l),c(R.$$.fragment,l),Se=n(l),c(tl.$$.fragment,l),ze=n(l),sl=r(l,"P",{"data-svelte-h":!0}),w(sl)!=="svelte-xgywa7"&&(sl.textContent=Qs),He=n(l),al=r(l,"P",{"data-svelte-h":!0}),w(al)!=="svelte-jjrsic"&&(al.innerHTML=Fs),Ne=n(l),c(nl.$$.fragment,l),De=n(l),c(pl.$$.fragment,l),Ke=n(l),il=r(l,"P",{"data-svelte-h":!0}),w(il)!=="svelte-1i4qnti"&&(il.innerHTML=Ls),Pe=n(l),c(ol.$$.fragment,l),Oe=n(l),B=r(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(B)!=="svelte-bfi8pe"&&(B.innerHTML=Ys),lt=n(l),Ml=r(l,"P",{"data-svelte-h":!0}),w(Ml)!=="svelte-m0ofz7"&&(Ml.innerHTML=vs),et=n(l),c(rl.$$.fragment,l),tt=n(l),c(Jl.$$.fragment,l),st=n(l),cl=r(l,"P",{"data-svelte-h":!0}),w(cl)!=="svelte-1xihsvj"&&(cl.innerHTML=xs),at=n(l),V=r(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(V)!=="svelte-1sjyz4k"&&(V.innerHTML=Ss),nt=n(l),ml=r(l,"P",{"data-svelte-h":!0}),w(ml)!=="svelte-10znaim"&&(ml.innerHTML=zs),pt=n(l),c(ul.$$.fragment,l),it=n(l),C=r(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(C)!=="svelte-msnp2t"&&(C.innerHTML=Hs),ot=n(l),Tl=r(l,"P",{"data-svelte-h":!0}),w(Tl)!=="svelte-1qi5pa7"&&(Tl.innerHTML=Ns),Mt=n(l),yl=r(l,"P",{"data-svelte-h":!0}),w(yl)!=="svelte-1dlbqha"&&(yl.innerHTML=Ds),rt=n(l),wl=r(l,"DETAILS",{"data-svelte-h":!0}),w(wl)!=="svelte-1v21fi6"&&(wl.innerHTML=Ks),Jt=n(l),c(dl.$$.fragment,l),ct=n(l),fl=r(l,"P",{"data-svelte-h":!0}),w(fl)!=="svelte-jtncav"&&(fl.innerHTML=Ps),mt=n(l),c(Ul.$$.fragment,l),ut=n(l),hl=r(l,"P",{"data-svelte-h":!0}),w(hl)!=="svelte-1q1qd8h"&&(hl.innerHTML=Os),Tt=n(l),E=r(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(E)!=="svelte-c3hne2"&&(E.innerHTML=la),yt=n(l),c(jl.$$.fragment,l),wt=n(l),q=r(l,"DIV",{class:!0,"data-svelte-h":!0}),w(q)!=="svelte-rp1f80"&&(q.innerHTML=ea),dt=n(l),c(bl.$$.fragment,l),ft=n(l),A=r(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),w(A)!=="svelte-10vwkfw"&&(A.innerHTML=ta),Ut=n(l),Zl=r(l,"P",{"data-svelte-h":!0}),w(Zl)!=="svelte-6dff64"&&(Zl.innerHTML=sa),ht=n(l),gl=r(l,"P",{"data-svelte-h":!0}),w(gl)!=="svelte-xm1oai"&&(gl.textContent=aa),jt=n(l),c(Il.$$.fragment,l),bt=n(l),Wl=r(l,"P",{"data-svelte-h":!0}),w(Wl)!=="svelte-r1m5tw"&&(Wl.textContent=na),Zt=n(l),c($l.$$.fragment,l),gt=n(l),_l=r(l,"P",{"data-svelte-h":!0}),w(_l)!=="svelte-n54mna"&&(_l.textContent=pa),It=n(l),c(Gl.$$.fragment,l),Wt=n(l),kl=r(l,"P",{"data-svelte-h":!0}),w(kl)!=="svelte-1d2o30m"&&(kl.innerHTML=ia),$t=n(l),c(Rl.$$.fragment,l),_t=n(l),_=r(l,"BLOCKQUOTE",{class:!0});var ge=Ws(_);Ie=r(ge,"P",{"data-svelte-h":!0}),w(Ie)!=="svelte-c9ev9p"&&(Ie.innerHTML=oa),$s=n(ge),c(Bl.$$.fragment,ge),ge.forEach(t),Gt=n(l),Vl=r(l,"P",{"data-svelte-h":!0}),w(Vl)!=="svelte-13ysjqz"&&(Vl.innerHTML=Ma),kt=n(l),c(Cl.$$.fragment,l),Rt=n(l),El=r(l,"P",{"data-svelte-h":!0}),w(El)!=="svelte-lyeewo"&&(El.textContent=ra),Bt=n(l),c(ql.$$.fragment,l),Vt=n(l),Al=r(l,"P",{"data-svelte-h":!0}),w(Al)!=="svelte-1fg8itd"&&(Al.innerHTML=Ja),Ct=n(l),Xl=r(l,"P",{"data-svelte-h":!0}),w(Xl)!=="svelte-pindxi"&&(Xl.innerHTML=ca),Et=n(l),c(Ql.$$.fragment,l),qt=n(l),X=r(l,"DIV",{class:!0,"data-svelte-h":!0}),w(X)!=="svelte-o7lfk9"&&(X.innerHTML=ma),At=n(l),c(Fl.$$.fragment,l),Xt=n(l),Ll=r(l,"P",{"data-svelte-h":!0}),w(Ll)!=="svelte-wvmkrp"&&(Ll.innerHTML=ua),Qt=n(l),c(Yl.$$.fragment,l),Ft=n(l),vl=r(l,"P",{"data-svelte-h":!0}),w(vl)!=="svelte-ijs6et"&&(vl.innerHTML=Ta),Lt=n(l),c(xl.$$.fragment,l),Yt=n(l),Sl=r(l,"P",{"data-svelte-h":!0}),w(Sl)!=="svelte-xw5j50"&&(Sl.innerHTML=ya),vt=n(l),c(Q.$$.fragment,l),xt=n(l),zl=r(l,"P",{"data-svelte-h":!0}),w(zl)!=="svelte-1rot6mt"&&(zl.textContent=wa),St=n(l),c(Hl.$$.fragment,l),zt=n(l),Nl=r(l,"P",{"data-svelte-h":!0}),w(Nl)!=="svelte-6mhg6x"&&(Nl.innerHTML=da),Ht=n(l),c(Dl.$$.fragment,l),Nt=n(l),F=r(l,"DIV",{class:!0,"data-svelte-h":!0}),w(F)!=="svelte-d7vbup"&&(F.innerHTML=fa),Dt=n(l),c(Kl.$$.fragment,l),Kt=n(l),Pl=r(l,"P",{"data-svelte-h":!0}),w(Pl)!=="svelte-wy5nl6"&&(Pl.textContent=Ua),Pt=n(l),c(Ol.$$.fragment,l),Ot=n(l),le=r(l,"P",{"data-svelte-h":!0}),w(le)!=="svelte-1dwagsy"&&(le.innerHTML=ha),ls=n(l),c(ee.$$.fragment,l),es=n(l),c(te.$$.fragment,l),ts=n(l),se=r(l,"P",{"data-svelte-h":!0}),w(se)!=="svelte-abeg7p"&&(se.innerHTML=ja),ss=n(l),c(ae.$$.fragment,l),as=n(l),c(ne.$$.fragment,l),ns=n(l),pe=r(l,"P",{"data-svelte-h":!0}),w(pe)!=="svelte-b9yhh3"&&(pe.innerHTML=ba),ps=n(l),c(ie.$$.fragment,l),is=n(l),c(oe.$$.fragment,l),os=n(l),Me=r(l,"P",{"data-svelte-h":!0}),w(Me)!=="svelte-61kq2p"&&(Me.innerHTML=Za),Ms=n(l),c(re.$$.fragment,l),rs=n(l),c(Je.$$.fragment,l),Js=n(l),ce=r(l,"P",{"data-svelte-h":!0}),w(ce)!=="svelte-u6was8"&&(ce.innerHTML=ga),cs=n(l),c(me.$$.fragment,l),ms=n(l),c(ue.$$.fragment,l),us=n(l),Te=r(l,"P",{"data-svelte-h":!0}),w(Te)!=="svelte-1xpm4w0"&&(Te.innerHTML=Ia),Ts=n(l),c(ye.$$.fragment,l),ys=n(l),c(we.$$.fragment,l),ws=n(l),de=r(l,"P",{"data-svelte-h":!0}),w(de)!=="svelte-1vq7c7r"&&(de.innerHTML=Wa),ds=n(l),c(fe.$$.fragment,l),fs=n(l),c(Ue.$$.fragment,l),Us=n(l),he=r(l,"P",{"data-svelte-h":!0}),w(he)!=="svelte-1xh46ni"&&(he.innerHTML=$a),hs=n(l),$=r(l,"IFRAME",{src:!0,frameborder:!0,width:!0,height:!0}),Ws($).forEach(t),js=n(l),je=r(l,"P",{"data-svelte-h":!0}),w(je)!=="svelte-12yf5q3"&&(je.innerHTML=Ga),bs=n(l),be=r(l,"P",{"data-svelte-h":!0}),w(be)!=="svelte-1ma83la"&&(be.innerHTML=ka),Zs=n(l),c(Ze.$$.fragment,l),gs=n(l),_e=r(l,"P",{}),Ws(_e).forEach(t),this.h()},h(){W(p,"name","hf:doc:metadata"),W(p,"content",Pa),W(B,"class","warning"),W(V,"class","tip"),W(C,"class","tip"),W(E,"class","tip"),W(q,"class","flex justify-center"),W(A,"class","tip"),W(_,"class","tip"),W(X,"class","flex justify-center"),W(F,"class","flex justify-center"),Ca($.src,_a="https://multimodalart-civitai-to-hf.hf.space")||W($,"src",_a),W($,"frameborder","0"),W($,"width","850"),W($,"height","450")},m(l,e){_s(document.head,p),s(l,f,e),s(l,i,e),s(l,U,e),m(o,l,e),s(l,d,e),m(j,l,e),s(l,I,e),s(l,b,e),s(l,Ge,e),s(l,L,e),s(l,ke,e),m(k,l,e),s(l,Re,e),s(l,Y,e),s(l,Be,e),s(l,v,e),s(l,Ve,e),s(l,x,e),s(l,Ce,e),s(l,S,e),s(l,Ee,e),m(z,l,e),s(l,qe,e),m(H,l,e),s(l,Ae,e),s(l,N,e),s(l,Xe,e),m(D,l,e),s(l,Qe,e),s(l,K,e),s(l,Fe,e),m(P,l,e),s(l,Le,e),s(l,O,e),s(l,Ye,e),m(ll,l,e),s(l,ve,e),s(l,el,e),s(l,xe,e),m(R,l,e),s(l,Se,e),m(tl,l,e),s(l,ze,e),s(l,sl,e),s(l,He,e),s(l,al,e),s(l,Ne,e),m(nl,l,e),s(l,De,e),m(pl,l,e),s(l,Ke,e),s(l,il,e),s(l,Pe,e),m(ol,l,e),s(l,Oe,e),s(l,B,e),s(l,lt,e),s(l,Ml,e),s(l,et,e),m(rl,l,e),s(l,tt,e),m(Jl,l,e),s(l,st,e),s(l,cl,e),s(l,at,e),s(l,V,e),s(l,nt,e),s(l,ml,e),s(l,pt,e),m(ul,l,e),s(l,it,e),s(l,C,e),s(l,ot,e),s(l,Tl,e),s(l,Mt,e),s(l,yl,e),s(l,rt,e),s(l,wl,e),s(l,Jt,e),m(dl,l,e),s(l,ct,e),s(l,fl,e),s(l,mt,e),m(Ul,l,e),s(l,ut,e),s(l,hl,e),s(l,Tt,e),s(l,E,e),s(l,yt,e),m(jl,l,e),s(l,wt,e),s(l,q,e),s(l,dt,e),m(bl,l,e),s(l,ft,e),s(l,A,e),s(l,Ut,e),s(l,Zl,e),s(l,ht,e),s(l,gl,e),s(l,jt,e),m(Il,l,e),s(l,bt,e),s(l,Wl,e),s(l,Zt,e),m($l,l,e),s(l,gt,e),s(l,_l,e),s(l,It,e),m(Gl,l,e),s(l,Wt,e),s(l,kl,e),s(l,$t,e),m(Rl,l,e),s(l,_t,e),s(l,_,e),_s(_,Ie),_s(_,$s),m(Bl,_,null),s(l,Gt,e),s(l,Vl,e),s(l,kt,e),m(Cl,l,e),s(l,Rt,e),s(l,El,e),s(l,Bt,e),m(ql,l,e),s(l,Vt,e),s(l,Al,e),s(l,Ct,e),s(l,Xl,e),s(l,Et,e),m(Ql,l,e),s(l,qt,e),s(l,X,e),s(l,At,e),m(Fl,l,e),s(l,Xt,e),s(l,Ll,e),s(l,Qt,e),m(Yl,l,e),s(l,Ft,e),s(l,vl,e),s(l,Lt,e),m(xl,l,e),s(l,Yt,e),s(l,Sl,e),s(l,vt,e),m(Q,l,e),s(l,xt,e),s(l,zl,e),s(l,St,e),m(Hl,l,e),s(l,zt,e),s(l,Nl,e),s(l,Ht,e),m(Dl,l,e),s(l,Nt,e),s(l,F,e),s(l,Dt,e),m(Kl,l,e),s(l,Kt,e),s(l,Pl,e),s(l,Pt,e),m(Ol,l,e),s(l,Ot,e),s(l,le,e),s(l,ls,e),m(ee,l,e),s(l,es,e),m(te,l,e),s(l,ts,e),s(l,se,e),s(l,ss,e),m(ae,l,e),s(l,as,e),m(ne,l,e),s(l,ns,e),s(l,pe,e),s(l,ps,e),m(ie,l,e),s(l,is,e),m(oe,l,e),s(l,os,e),s(l,Me,e),s(l,Ms,e),m(re,l,e),s(l,rs,e),m(Je,l,e),s(l,Js,e),s(l,ce,e),s(l,cs,e),m(me,l,e),s(l,ms,e),m(ue,l,e),s(l,us,e),s(l,Te,e),s(l,Ts,e),m(ye,l,e),s(l,ys,e),m(we,l,e),s(l,ws,e),s(l,de,e),s(l,ds,e),m(fe,l,e),s(l,fs,e),m(Ue,l,e),s(l,Us,e),s(l,he,e),s(l,hs,e),s(l,$,e),s(l,js,e),s(l,je,e),s(l,bs,e),s(l,be,e),s(l,Zs,e),m(Ze,l,e),s(l,gs,e),s(l,_e,e),Is=!0},p(l,[e]){const ge={};e&2&&(ge.$$scope={dirty:e,ctx:l}),k.$set(ge);const Ra={};e&2&&(Ra.$$scope={dirty:e,ctx:l}),R.$set(Ra);const Ba={};e&2&&(Ba.$$scope={dirty:e,ctx:l}),Q.$set(Ba)},i(l){Is||(u(o.$$.fragment,l),u(j.$$.fragment,l),u(k.$$.fragment,l),u(z.$$.fragment,l),u(H.$$.fragment,l),u(D.$$.fragment,l),u(P.$$.fragment,l),u(ll.$$.fragment,l),u(R.$$.fragment,l),u(tl.$$.fragment,l),u(nl.$$.fragment,l),u(pl.$$.fragment,l),u(ol.$$.fragment,l),u(rl.$$.fragment,l),u(Jl.$$.fragment,l),u(ul.$$.fragment,l),u(dl.$$.fragment,l),u(Ul.$$.fragment,l),u(jl.$$.fragment,l),u(bl.$$.fragment,l),u(Il.$$.fragment,l),u($l.$$.fragment,l),u(Gl.$$.fragment,l),u(Rl.$$.fragment,l),u(Bl.$$.fragment,l),u(Cl.$$.fragment,l),u(ql.$$.fragment,l),u(Ql.$$.fragment,l),u(Fl.$$.fragment,l),u(Yl.$$.fragment,l),u(xl.$$.fragment,l),u(Q.$$.fragment,l),u(Hl.$$.fragment,l),u(Dl.$$.fragment,l),u(Kl.$$.fragment,l),u(Ol.$$.fragment,l),u(ee.$$.fragment,l),u(te.$$.fragment,l),u(ae.$$.fragment,l),u(ne.$$.fragment,l),u(ie.$$.fragment,l),u(oe.$$.fragment,l),u(re.$$.fragment,l),u(Je.$$.fragment,l),u(me.$$.fragment,l),u(ue.$$.fragment,l),u(ye.$$.fragment,l),u(we.$$.fragment,l),u(fe.$$.fragment,l),u(Ue.$$.fragment,l),u(Ze.$$.fragment,l),Is=!0)},o(l){T(o.$$.fragment,l),T(j.$$.fragment,l),T(k.$$.fragment,l),T(z.$$.fragment,l),T(H.$$.fragment,l),T(D.$$.fragment,l),T(P.$$.fragment,l),T(ll.$$.fragment,l),T(R.$$.fragment,l),T(tl.$$.fragment,l),T(nl.$$.fragment,l),T(pl.$$.fragment,l),T(ol.$$.fragment,l),T(rl.$$.fragment,l),T(Jl.$$.fragment,l),T(ul.$$.fragment,l),T(dl.$$.fragment,l),T(Ul.$$.fragment,l),T(jl.$$.fragment,l),T(bl.$$.fragment,l),T(Il.$$.fragment,l),T($l.$$.fragment,l),T(Gl.$$.fragment,l),T(Rl.$$.fragment,l),T(Bl.$$.fragment,l),T(Cl.$$.fragment,l),T(ql.$$.fragment,l),T(Ql.$$.fragment,l),T(Fl.$$.fragment,l),T(Yl.$$.fragment,l),T(xl.$$.fragment,l),T(Q.$$.fragment,l),T(Hl.$$.fragment,l),T(Dl.$$.fragment,l),T(Kl.$$.fragment,l),T(Ol.$$.fragment,l),T(ee.$$.fragment,l),T(te.$$.fragment,l),T(ae.$$.fragment,l),T(ne.$$.fragment,l),T(ie.$$.fragment,l),T(oe.$$.fragment,l),T(re.$$.fragment,l),T(Je.$$.fragment,l),T(me.$$.fragment,l),T(ue.$$.fragment,l),T(ye.$$.fragment,l),T(we.$$.fragment,l),T(fe.$$.fragment,l),T(Ue.$$.fragment,l),T(Ze.$$.fragment,l),Is=!1},d(l){l&&(t(f),t(i),t(U),t(d),t(I),t(b),t(Ge),t(L),t(ke),t(Re),t(Y),t(Be),t(v),t(Ve),t(x),t(Ce),t(S),t(Ee),t(qe),t(Ae),t(N),t(Xe),t(Qe),t(K),t(Fe),t(Le),t(O),t(Ye),t(ve),t(el),t(xe),t(Se),t(ze),t(sl),t(He),t(al),t(Ne),t(De),t(Ke),t(il),t(Pe),t(Oe),t(B),t(lt),t(Ml),t(et),t(tt),t(st),t(cl),t(at),t(V),t(nt),t(ml),t(pt),t(it),t(C),t(ot),t(Tl),t(Mt),t(yl),t(rt),t(wl),t(Jt),t(ct),t(fl),t(mt),t(ut),t(hl),t(Tt),t(E),t(yt),t(wt),t(q),t(dt),t(ft),t(A),t(Ut),t(Zl),t(ht),t(gl),t(jt),t(bt),t(Wl),t(Zt),t(gt),t(_l),t(It),t(Wt),t(kl),t($t),t(_t),t(_),t(Gt),t(Vl),t(kt),t(Rt),t(El),t(Bt),t(Vt),t(Al),t(Ct),t(Xl),t(Et),t(qt),t(X),t(At),t(Xt),t(Ll),t(Qt),t(Ft),t(vl),t(Lt),t(Yt),t(Sl),t(vt),t(xt),t(zl),t(St),t(zt),t(Nl),t(Ht),t(Nt),t(F),t(Dt),t(Kt),t(Pl),t(Pt),t(Ot),t(le),t(ls),t(es),t(ts),t(se),t(ss),t(as),t(ns),t(pe),t(ps),t(is),t(os),t(Me),t(Ms),t(rs),t(Js),t(ce),t(cs),t(ms),t(us),t(Te),t(Ts),t(ys),t(ws),t(de),t(ds),t(fs),t(Us),t(he),t(hs),t($),t(js),t(je),t(bs),t(be),t(Zs),t(gs),t(_e)),t(p),y(o,l),y(j,l),y(k,l),y(z,l),y(H,l),y(D,l),y(P,l),y(ll,l),y(R,l),y(tl,l),y(nl,l),y(pl,l),y(ol,l),y(rl,l),y(Jl,l),y(ul,l),y(dl,l),y(Ul,l),y(jl,l),y(bl,l),y(Il,l),y($l,l),y(Gl,l),y(Rl,l),y(Bl),y(Cl,l),y(ql,l),y(Ql,l),y(Fl,l),y(Yl,l),y(xl,l),y(Q,l),y(Hl,l),y(Dl,l),y(Kl,l),y(Ol,l),y(ee,l),y(te,l),y(ae,l),y(ne,l),y(ie,l),y(oe,l),y(re,l),y(Je,l),y(me,l),y(ue,l),y(ye,l),y(we,l),y(fe,l),y(Ue,l),y(Ze,l)}}}const Pa='{"title":"LoRA","local":"lora","sections":[{"title":"torch.compile","local":"torchcompile","sections":[],"depth":2},{"title":"权重缩放","local":"权重缩放","sections":[{"title":"缩放调度","local":"缩放调度","sections":[],"depth":3}],"depth":2},{"title":"热切换","local":"热切换","sections":[{"title":"编译模型","local":"编译模型","sections":[],"depth":3}],"depth":2},{"title":"合并","local":"合并","sections":[{"title":"set_adapters","local":"setadapters","sections":[],"depth":3},{"title":"add_weighted_adapter","local":"addweightedadapter","sections":[],"depth":3},{"title":"fuse_lora","local":"fuselora","sections":[],"depth":3}],"depth":2},{"title":"管理","local":"管理","sections":[{"title":"set_adapters","local":"setadapters","sections":[],"depth":3},{"title":"save_lora_adapter","local":"saveloraadapter","sections":[],"depth":3},{"title":"unload_lora_weights","local":"unloadloraweights","sections":[],"depth":3},{"title":"disable_lora","local":"disablelora","sections":[],"depth":3},{"title":"get_active_adapters","local":"getactiveadapters","sections":[],"depth":3},{"title":"get_list_adapters","local":"getlistadapters","sections":[],"depth":3},{"title":"delete_adapters","local":"deleteadapters","sections":[],"depth":3}],"depth":2},{"title":"资源","local":"资源","sections":[],"depth":2}],"depth":1}';function Oa(Z){return Ea(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class nn extends qa{constructor(p){super(),Aa(this,p,Oa,Ka,Va,{})}}export{nn as component};

Xet Storage Details

Size:
83.3 kB
·
Xet hash:
a152d67a13ec0e710bb90ee5513babfd87c2eede5ae2bb32ff22fe0cbebb85fc

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