import{s as ae,n as ie,o as oe}from"../chunks/scheduler.8c3d61f6.js";import{S as pe,i as de,g as i,s,r as U,A as re,h as o,f as n,c as a,j as ne,u as _,x as Z,k as le,y as me,a as l,v as $,d as v,t as J,w as j}from"../chunks/index.da70eac4.js";import{C as H}from"../chunks/CodeBlock.00a903b3.js";import{H as se,E as fe}from"../chunks/EditOnGithub.1e64e623.js";function ue(P){let p,W,C,V,d,k,r,A="Many diffusion systems share the same components, allowing you to adapt a pretrained model for one task to an entirely different task.",x,m,q='This guide will show you how to adapt a pretrained text-to-image model for inpainting by initializing and modifying the architecture of a pretrained <a href="/docs/diffusers/pr_6247/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel">UNet2DConditionModel</a>.',B,f,N,u,Y='A <a href="/docs/diffusers/pr_6247/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel">UNet2DConditionModel</a> by default accepts 4 channels in the <a href="https://huggingface.co/docs/diffusers/v0.16.0/en/api/models#diffusers.UNet2DConditionModel.in_channels" rel="nofollow">input sample</a>. For example, load a pretrained text-to-image model like <a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" rel="nofollow"><code>stable-diffusion-v1-5/stable-diffusion-v1-5</code></a> and take a look at the number of <code>in_channels</code>:',z,c,E,h,K='Inpainting requires 9 channels in the input sample. You can check this value in a pretrained inpainting model like <a href="https://huggingface.co/runwayml/stable-diffusion-inpainting" rel="nofollow"><code>runwayml/stable-diffusion-inpainting</code></a>:',X,M,F,y,O="To adapt your text-to-image model for inpainting, you’ll need to change the number of <code>in_channels</code> from 4 to 9.",L,b,ee='Initialize a <a href="/docs/diffusers/pr_6247/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel">UNet2DConditionModel</a> with the pretrained text-to-image model weights, and change <code>in_channels</code> to 9. Changing the number of <code>in_channels</code> means you need to set <code>ignore_mismatched_sizes=True</code> and <code>low_cpu_mem_usage=False</code> to avoid a size mismatch error because the shape is different now.',R,g,S,w,te="The pretrained weights of the other components from the text-to-image model are initialized from their checkpoints, but the input channel weights (<code>conv_in.weight</code>) of the <code>unet</code> are randomly initialized. It is important to finetune the model for inpainting because otherwise the model returns noise.",Q,T,D,G,I;return d=new se({props:{title:"Adapt a model to a new task",local:"adapt-a-model-to-a-new-task",headingTag:"h1"}}),f=new se({props:{title:"Configure UNet2DConditionModel parameters",local:"configure-unet2dconditionmodel-parameters",headingTag:"h2"}}),c=new H({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTJDJTIwdXNlX3NhZmV0ZW5zb3JzJTNEVHJ1ZSklMEFwaXBlbGluZS51bmV0LmNvbmZpZyU1QiUyMmluX2NoYW5uZWxzJTIyJTVEJTBBNA==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionPipeline

pipeline = StableDiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;stable-diffusion-v1-5/stable-diffusion-v1-5&quot;</span>, use_safetensors=<span class="hljs-literal">True</span>)
pipeline.unet.config[<span class="hljs-string">&quot;in_channels&quot;</span>]
<span class="hljs-number">4</span>`,wrap:!1}}),M=new H({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIycnVud2F5bWwlMkZzdGFibGUtZGlmZnVzaW9uLWlucGFpbnRpbmclMjIlMkMlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlKSUwQXBpcGVsaW5lLnVuZXQuY29uZmlnJTVCJTIyaW5fY2hhbm5lbHMlMjIlNUQlMEE5",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionPipeline

pipeline = StableDiffusionPipeline.from_pretrained(<span class="hljs-string">&quot;runwayml/stable-diffusion-inpainting&quot;</span>, use_safetensors=<span class="hljs-literal">True</span>)
pipeline.unet.config[<span class="hljs-string">&quot;in_channels&quot;</span>]
<span class="hljs-number">9</span>`,wrap:!1}}),g=new H({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFVOZXQyRENvbmRpdGlvbk1vZGVsJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTUlMjIlMEF1bmV0JTIwJTNEJTIwVU5ldDJEQ29uZGl0aW9uTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMG1vZGVsX2lkJTJDJTBBJTIwJTIwJTIwJTIwc3ViZm9sZGVyJTNEJTIydW5ldCUyMiUyQyUwQSUyMCUyMCUyMCUyMGluX2NoYW5uZWxzJTNEOSUyQyUwQSUyMCUyMCUyMCUyMGxvd19jcHVfbWVtX3VzYWdlJTNERmFsc2UlMkMlMEElMjAlMjAlMjAlMjBpZ25vcmVfbWlzbWF0Y2hlZF9zaXplcyUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> UNet2DConditionModel

model_id = <span class="hljs-string">&quot;stable-diffusion-v1-5/stable-diffusion-v1-5&quot;</span>
unet = UNet2DConditionModel.from_pretrained(
    model_id,
    subfolder=<span class="hljs-string">&quot;unet&quot;</span>,
    in_channels=<span class="hljs-number">9</span>,
    low_cpu_mem_usage=<span class="hljs-literal">False</span>,
    ignore_mismatched_sizes=<span class="hljs-literal">True</span>,
    use_safetensors=<span class="hljs-literal">True</span>,
)`,wrap:!1}}),T=new fe({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/training/adapt_a_model.md"}}),{c(){p=i("meta"),W=s(),C=i("p"),V=s(),U(d.$$.fragment),k=s(),r=i("p"),r.textContent=A,x=s(),m=i("p"),m.innerHTML=q,B=s(),U(f.$$.fragment),N=s(),u=i("p"),u.innerHTML=Y,z=s(),U(c.$$.fragment),E=s(),h=i("p"),h.innerHTML=K,X=s(),U(M.$$.fragment),F=s(),y=i("p"),y.innerHTML=O,L=s(),b=i("p"),b.innerHTML=ee,R=s(),U(g.$$.fragment),S=s(),w=i("p"),w.innerHTML=te,Q=s(),U(T.$$.fragment),D=s(),G=i("p"),this.h()},l(e){const t=re("svelte-u9bgzb",document.head);p=o(t,"META",{name:!0,content:!0}),t.forEach(n),W=a(e),C=o(e,"P",{}),ne(C).forEach(n),V=a(e),_(d.$$.fragment,e),k=a(e),r=o(e,"P",{"data-svelte-h":!0}),Z(r)!=="svelte-3om45r"&&(r.textContent=A),x=a(e),m=o(e,"P",{"data-svelte-h":!0}),Z(m)!=="svelte-1ntxdh7"&&(m.innerHTML=q),B=a(e),_(f.$$.fragment,e),N=a(e),u=o(e,"P",{"data-svelte-h":!0}),Z(u)!=="svelte-p35quw"&&(u.innerHTML=Y),z=a(e),_(c.$$.fragment,e),E=a(e),h=o(e,"P",{"data-svelte-h":!0}),Z(h)!=="svelte-ph2jy1"&&(h.innerHTML=K),X=a(e),_(M.$$.fragment,e),F=a(e),y=o(e,"P",{"data-svelte-h":!0}),Z(y)!=="svelte-1p1x44t"&&(y.innerHTML=O),L=a(e),b=o(e,"P",{"data-svelte-h":!0}),Z(b)!=="svelte-1esz5zp"&&(b.innerHTML=ee),R=a(e),_(g.$$.fragment,e),S=a(e),w=o(e,"P",{"data-svelte-h":!0}),Z(w)!=="svelte-6j6lxu"&&(w.innerHTML=te),Q=a(e),_(T.$$.fragment,e),D=a(e),G=o(e,"P",{}),ne(G).forEach(n),this.h()},h(){le(p,"name","hf:doc:metadata"),le(p,"content",ce)},m(e,t){me(document.head,p),l(e,W,t),l(e,C,t),l(e,V,t),$(d,e,t),l(e,k,t),l(e,r,t),l(e,x,t),l(e,m,t),l(e,B,t),$(f,e,t),l(e,N,t),l(e,u,t),l(e,z,t),$(c,e,t),l(e,E,t),l(e,h,t),l(e,X,t),$(M,e,t),l(e,F,t),l(e,y,t),l(e,L,t),l(e,b,t),l(e,R,t),$(g,e,t),l(e,S,t),l(e,w,t),l(e,Q,t),$(T,e,t),l(e,D,t),l(e,G,t),I=!0},p:ie,i(e){I||(v(d.$$.fragment,e),v(f.$$.fragment,e),v(c.$$.fragment,e),v(M.$$.fragment,e),v(g.$$.fragment,e),v(T.$$.fragment,e),I=!0)},o(e){J(d.$$.fragment,e),J(f.$$.fragment,e),J(c.$$.fragment,e),J(M.$$.fragment,e),J(g.$$.fragment,e),J(T.$$.fragment,e),I=!1},d(e){e&&(n(W),n(C),n(V),n(k),n(r),n(x),n(m),n(B),n(N),n(u),n(z),n(E),n(h),n(X),n(F),n(y),n(L),n(b),n(R),n(S),n(w),n(Q),n(D),n(G)),n(p),j(d,e),j(f,e),j(c,e),j(M,e),j(g,e),j(T,e)}}}const ce='{"title":"Adapt a model to a new task","local":"adapt-a-model-to-a-new-task","sections":[{"title":"Configure UNet2DConditionModel parameters","local":"configure-unet2dconditionmodel-parameters","sections":[],"depth":2}],"depth":1}';function he(P){return oe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class we extends pe{constructor(p){super(),de(this,p,he,ue,ae,{})}}export{we as component};
