Buckets:
| import{s as Je,o as ke,n as xe}from"../chunks/scheduler.8c3d61f6.js";import{S as ze,i as Ee,g as p,s as r,r as g,A as Be,h as m,f as s,c as n,j as z,u as _,x as U,k as E,y as l,a as c,v as b,d as M,t as $,w}from"../chunks/index.da70eac4.js";import{T as Ge}from"../chunks/Tip.1d9b8c37.js";import{D as O}from"../chunks/Docstring.ee4b6913.js";import{C as Ce}from"../chunks/CodeBlock.00a903b3.js";import{E as je}from"../chunks/ExampleCodeBlock.f7bd2c1f.js";import{H as ye,E as qe}from"../chunks/EditOnGithub.1e64e623.js";function Le(A){let o,y='Learn how to load an IP-Adapter checkpoint and image in the IP-Adapter <a href="../../using-diffusers/loading_adapters#ip-adapter">loading</a> guide, and you can see how to use it in the <a href="../../using-diffusers/ip_adapter">usage</a> guide.';return{c(){o=p("p"),o.innerHTML=y},l(d){o=m(d,"P",{"data-svelte-h":!0}),U(o)!=="svelte-xt8bs9"&&(o.innerHTML=y)},m(d,i){c(d,o,i)},p:xe,d(d){d&&s(o)}}}function Ne(A){let o,y="Example:",d,i,f;return i=new Ce({props:{code:"JTIzJTIwVG8lMjB1c2UlMjBvcmlnaW5hbCUyMElQLUFkYXB0ZXIlMEFzY2FsZSUyMCUzRCUyMDEuMCUwQXBpcGVsaW5lLnNldF9pcF9hZGFwdGVyX3NjYWxlKHNjYWxlKSUwQSUwQSUyMyUyMFRvJTIwdXNlJTIwc3R5bGUlMjBibG9jayUyMG9ubHklMEFzY2FsZSUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMnVwJTIyJTNBJTIwJTdCJTIyYmxvY2tfMCUyMiUzQSUyMCU1QjAuMCUyQyUyMDEuMCUyQyUyMDAuMCU1RCU3RCUyQyUwQSU3RCUwQXBpcGVsaW5lLnNldF9pcF9hZGFwdGVyX3NjYWxlKHNjYWxlKSUwQSUwQSUyMyUyMFRvJTIwdXNlJTIwc3R5bGUlMkJsYXlvdXQlMjBibG9ja3MlMEFzY2FsZSUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMmRvd24lMjIlM0ElMjAlN0IlMjJibG9ja18yJTIyJTNBJTIwJTVCMC4wJTJDJTIwMS4wJTVEJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIydXAlMjIlM0ElMjAlN0IlMjJibG9ja18wJTIyJTNBJTIwJTVCMC4wJTJDJTIwMS4wJTJDJTIwMC4wJTVEJTdEJTJDJTBBJTdEJTBBcGlwZWxpbmUuc2V0X2lwX2FkYXB0ZXJfc2NhbGUoc2NhbGUpJTBBJTBBJTIzJTIwVG8lMjB1c2UlMjBzdHlsZSUyMGFuZCUyMGxheW91dCUyMGZyb20lMjAyJTIwcmVmZXJlbmNlJTIwaW1hZ2VzJTBBc2NhbGVzJTIwJTNEJTIwJTVCJTdCJTIyZG93biUyMiUzQSUyMCU3QiUyMmJsb2NrXzIlMjIlM0ElMjAlNUIwLjAlMkMlMjAxLjAlNUQlN0QlN0QlMkMlMjAlN0IlMjJ1cCUyMiUzQSUyMCU3QiUyMmJsb2NrXzAlMjIlM0ElMjAlNUIwLjAlMkMlMjAxLjAlMkMlMjAwLjAlNUQlN0QlN0QlNUQlMEFwaXBlbGluZS5zZXRfaXBfYWRhcHRlcl9zY2FsZShzY2FsZXMp",highlighted:`<span class="hljs-comment"># To use original IP-Adapter</span> | |
| scale = <span class="hljs-number">1.0</span> | |
| pipeline.set_ip_adapter_scale(scale) | |
| <span class="hljs-comment"># To use style block only</span> | |
| scale = { | |
| <span class="hljs-string">"up"</span>: {<span class="hljs-string">"block_0"</span>: [<span class="hljs-number">0.0</span>, <span class="hljs-number">1.0</span>, <span class="hljs-number">0.0</span>]}, | |
| } | |
| pipeline.set_ip_adapter_scale(scale) | |
| <span class="hljs-comment"># To use style+layout blocks</span> | |
| scale = { | |
| <span class="hljs-string">"down"</span>: {<span class="hljs-string">"block_2"</span>: [<span class="hljs-number">0.0</span>, <span class="hljs-number">1.0</span>]}, | |
| <span class="hljs-string">"up"</span>: {<span class="hljs-string">"block_0"</span>: [<span class="hljs-number">0.0</span>, <span class="hljs-number">1.0</span>, <span class="hljs-number">0.0</span>]}, | |
| } | |
| pipeline.set_ip_adapter_scale(scale) | |
| <span class="hljs-comment"># To use style and layout from 2 reference images</span> | |
| scales = [{<span class="hljs-string">"down"</span>: {<span class="hljs-string">"block_2"</span>: [<span class="hljs-number">0.0</span>, <span class="hljs-number">1.0</span>]}}, {<span class="hljs-string">"up"</span>: {<span class="hljs-string">"block_0"</span>: [<span class="hljs-number">0.0</span>, <span class="hljs-number">1.0</span>, <span class="hljs-number">0.0</span>]}}] | |
| pipeline.set_ip_adapter_scale(scales)`,wrap:!1}}),{c(){o=p("p"),o.textContent=y,d=r(),g(i.$$.fragment)},l(t){o=m(t,"P",{"data-svelte-h":!0}),U(o)!=="svelte-11lpom8"&&(o.textContent=y),d=n(t),_(i.$$.fragment,t)},m(t,u){c(t,o,u),c(t,d,u),b(i,t,u),f=!0},p:xe,i(t){f||(M(i.$$.fragment,t),f=!0)},o(t){$(i.$$.fragment,t),f=!1},d(t){t&&(s(o),s(d)),w(i,t)}}}function Qe(A){let o,y="Examples:",d,i,f;return i=new Ce({props:{code:"JTIzJTIwQXNzdW1pbmclMjAlNjBwaXBlbGluZSU2MCUyMGlzJTIwYWxyZWFkeSUyMGxvYWRlZCUyMHdpdGglMjB0aGUlMjBJUCUyMEFkYXB0ZXIlMjB3ZWlnaHRzLiUwQXBpcGVsaW5lLnVubG9hZF9pcF9hZGFwdGVyKCklMEEuLi4=",highlighted:'<span class="hljs-meta">>>> </span><span class="hljs-comment"># Assuming `pipeline` is already loaded with the IP Adapter weights.</span>\n<span class="hljs-meta">>>> </span>pipeline.unload_ip_adapter()\n<span class="hljs-meta">>>> </span>...',wrap:!1}}),{c(){o=p("p"),o.textContent=y,d=r(),g(i.$$.fragment)},l(t){o=m(t,"P",{"data-svelte-h":!0}),U(o)!=="svelte-kvfsh7"&&(o.textContent=y),d=n(t),_(i.$$.fragment,t)},m(t,u){c(t,o,u),c(t,d,u),b(i,t,u),f=!0},p:xe,i(t){f||(M(i.$$.fragment,t),f=!0)},o(t){$(i.$$.fragment,t),f=!1},d(t){t&&(s(o),s(d)),w(i,t)}}}function Fe(A){let o,y,d,i,f,t,u,Ie='<a href="https://hf.co/papers/2308.06721" rel="nofollow">IP-Adapter</a> is a lightweight adapter that enables prompting a diffusion model with an image. This method decouples the cross-attention layers of the image and text features. The image features are generated from an image encoder.',oe,j,ae,B,se,h,G,pe,V,ve="Mixin for handling IP Adapters.",me,Z,q,fe,v,L,ue,W,Te=`Set IP-Adapter scales per-transformer block. Input <code>scale</code> could be a single config or a list of configs for | |
| granular control over each IP-Adapter behavior. A config can be a float or a dictionary.`,he,C,ge,T,N,_e,D,Pe="Unloads the IP Adapter weights",be,J,re,Q,ne,I,F,Me,H,Ue="Image processor for IP Adapter image masks.",$e,k,S,we,R,Ae=`Downsamples the provided mask tensor to match the expected dimensions for scaled dot-product attention. If the | |
| aspect ratio of the mask does not match the aspect ratio of the output image, a warning is issued.`,ie,X,de,ee,le;return f=new ye({props:{title:"IP-Adapter",local:"ip-adapter",headingTag:"h1"}}),j=new Ge({props:{$$slots:{default:[Le]},$$scope:{ctx:A}}}),B=new ye({props:{title:"IPAdapterMixin",local:"diffusers.loaders.IPAdapterMixin",headingTag:"h2"}}),G=new O({props:{name:"class diffusers.loaders.IPAdapterMixin",anchor:"diffusers.loaders.IPAdapterMixin",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L51"}}),q=new O({props:{name:"load_ip_adapter",anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter",parameters:[{name:"pretrained_model_name_or_path_or_dict",val:": Union"},{name:"subfolder",val:": Union"},{name:"weight_name",val:": Union"},{name:"image_encoder_folder",val:": Optional = 'image_encoder'"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.pretrained_model_name_or_path_or_dict",description:`<strong>pretrained_model_name_or_path_or_dict</strong> (<code>str</code> or <code>List[str]</code> or <code>os.PathLike</code> or <code>List[os.PathLike]</code> or <code>dict</code> or <code>List[dict]</code>) — | |
| Can be either:</p> | |
| <ul> | |
| <li>A string, the <em>model id</em> (for example <code>google/ddpm-celebahq-256</code>) of a pretrained model hosted on | |
| the Hub.</li> | |
| <li>A path to a <em>directory</em> (for example <code>./my_model_directory</code>) containing the model weights saved | |
| with <a href="/docs/diffusers/main/en/api/models/overview#diffusers.ModelMixin.save_pretrained">ModelMixin.save_pretrained()</a>.</li> | |
| <li>A <a href="https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict" rel="nofollow">torch state | |
| dict</a>.</li> | |
| </ul>`,name:"pretrained_model_name_or_path_or_dict"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.subfolder",description:`<strong>subfolder</strong> (<code>str</code> or <code>List[str]</code>) — | |
| The subfolder location of a model file within a larger model repository on the Hub or locally. If a | |
| list is passed, it should have the same length as <code>weight_name</code>.`,name:"subfolder"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.weight_name",description:`<strong>weight_name</strong> (<code>str</code> or <code>List[str]</code>) — | |
| The name of the weight file to load. If a list is passed, it should have the same length as | |
| <code>weight_name</code>.`,name:"weight_name"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.image_encoder_folder",description:`<strong>image_encoder_folder</strong> (<code>str</code>, <em>optional</em>, defaults to <code>image_encoder</code>) — | |
| The subfolder location of the image encoder within a larger model repository on the Hub or locally. | |
| Pass <code>None</code> to not load the image encoder. If the image encoder is located in a folder inside | |
| <code>subfolder</code>, you only need to pass the name of the folder that contains image encoder weights, e.g. | |
| <code>image_encoder_folder="image_encoder"</code>. If the image encoder is located in a folder other than | |
| <code>subfolder</code>, you should pass the path to the folder that contains image encoder weights, for example, | |
| <code>image_encoder_folder="different_subfolder/image_encoder"</code>.`,name:"image_encoder_folder"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.cache_dir",description:`<strong>cache_dir</strong> (<code>Union[str, os.PathLike]</code>, <em>optional</em>) — | |
| Path to a directory where a downloaded pretrained model configuration is cached if the standard cache | |
| is not used.`,name:"cache_dir"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.force_download",description:`<strong>force_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to force the (re-)download of the model weights and configuration files, overriding the | |
| cached versions if they exist.`,name:"force_download"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.proxies",description:`<strong>proxies</strong> (<code>Dict[str, str]</code>, <em>optional</em>) — | |
| A dictionary of proxy servers to use by protocol or endpoint, for example, <code>{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}</code>. The proxies are used on each request.`,name:"proxies"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.local_files_only",description:`<strong>local_files_only</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to only load local model weights and configuration files or not. If set to <code>True</code>, the model | |
| won’t be downloaded from the Hub.`,name:"local_files_only"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.token",description:`<strong>token</strong> (<code>str</code> or <em>bool</em>, <em>optional</em>) — | |
| The token to use as HTTP bearer authorization for remote files. If <code>True</code>, the token generated from | |
| <code>diffusers-cli login</code> (stored in <code>~/.huggingface</code>) is used.`,name:"token"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"main"</code>) — | |
| The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier | |
| allowed by Git.`,name:"revision"},{anchor:"diffusers.loaders.IPAdapterMixin.load_ip_adapter.low_cpu_mem_usage",description:`<strong>low_cpu_mem_usage</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code> if torch version >= 1.9.0 else <code>False</code>) — | |
| Speed up model loading only loading the pretrained weights and not initializing the weights. This also | |
| tries to not use more than 1x model size in CPU memory (including peak memory) while loading the model. | |
| Only supported for PyTorch >= 1.9.0. If you are using an older version of PyTorch, setting this | |
| argument to <code>True</code> will raise an error.`,name:"low_cpu_mem_usage"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L54"}}),L=new O({props:{name:"set_ip_adapter_scale",anchor:"diffusers.loaders.IPAdapterMixin.set_ip_adapter_scale",parameters:[{name:"scale",val:""}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L251"}}),C=new je({props:{anchor:"diffusers.loaders.IPAdapterMixin.set_ip_adapter_scale.example",$$slots:{default:[Ne]},$$scope:{ctx:A}}}),N=new O({props:{name:"unload_ip_adapter",anchor:"diffusers.loaders.IPAdapterMixin.unload_ip_adapter",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L303"}}),J=new je({props:{anchor:"diffusers.loaders.IPAdapterMixin.unload_ip_adapter.example",$$slots:{default:[Qe]},$$scope:{ctx:A}}}),Q=new ye({props:{title:"IPAdapterMaskProcessor",local:"diffusers.image_processor.IPAdapterMaskProcessor",headingTag:"h2"}}),F=new O({props:{name:"class diffusers.image_processor.IPAdapterMaskProcessor",anchor:"diffusers.image_processor.IPAdapterMaskProcessor",parameters:[{name:"do_resize",val:": bool = True"},{name:"vae_scale_factor",val:": int = 8"},{name:"resample",val:": str = 'lanczos'"},{name:"do_normalize",val:": bool = False"},{name:"do_binarize",val:": bool = True"},{name:"do_convert_grayscale",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.do_resize",description:`<strong>do_resize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether to downscale the image’s (height, width) dimensions to multiples of <code>vae_scale_factor</code>.`,name:"do_resize"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.vae_scale_factor",description:`<strong>vae_scale_factor</strong> (<code>int</code>, <em>optional</em>, defaults to <code>8</code>) — | |
| VAE scale factor. If <code>do_resize</code> is <code>True</code>, the image is automatically resized to multiples of this factor.`,name:"vae_scale_factor"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.resample",description:`<strong>resample</strong> (<code>str</code>, <em>optional</em>, defaults to <code>lanczos</code>) — | |
| Resampling filter to use when resizing the image.`,name:"resample"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.do_normalize",description:`<strong>do_normalize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to normalize the image to [-1,1].`,name:"do_normalize"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.do_binarize",description:`<strong>do_binarize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether to binarize the image to 0/1.`,name:"do_binarize"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.do_convert_grayscale",description:`<strong>do_convert_grayscale</strong> (<code>bool</code>, <em>optional</em>, defaults to be <code>True</code>) — | |
| Whether to convert the images to grayscale format.`,name:"do_convert_grayscale"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/image_processor.py#L928"}}),S=new O({props:{name:"downsample",anchor:"diffusers.image_processor.IPAdapterMaskProcessor.downsample",parameters:[{name:"mask",val:": Tensor"},{name:"batch_size",val:": int"},{name:"num_queries",val:": int"},{name:"value_embed_dim",val:": int"}],parametersDescription:[{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.downsample.mask",description:`<strong>mask</strong> (<code>torch.Tensor</code>) — | |
| The input mask tensor generated with <code>IPAdapterMaskProcessor.preprocess()</code>.`,name:"mask"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.downsample.batch_size",description:`<strong>batch_size</strong> (<code>int</code>) — | |
| The batch size.`,name:"batch_size"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.downsample.num_queries",description:`<strong>num_queries</strong> (<code>int</code>) — | |
| The number of queries.`,name:"num_queries"},{anchor:"diffusers.image_processor.IPAdapterMaskProcessor.downsample.value_embed_dim",description:`<strong>value_embed_dim</strong> (<code>int</code>) — | |
| The dimensionality of the value embeddings.`,name:"value_embed_dim"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/image_processor.py#L969",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The downsampled mask tensor.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>torch.Tensor</code></p> | |
| `}}),X=new qe({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/loaders/ip_adapter.md"}}),{c(){o=p("meta"),y=r(),d=p("p"),i=r(),g(f.$$.fragment),t=r(),u=p("p"),u.innerHTML=Ie,oe=r(),g(j.$$.fragment),ae=r(),g(B.$$.fragment),se=r(),h=p("div"),g(G.$$.fragment),pe=r(),V=p("p"),V.textContent=ve,me=r(),Z=p("div"),g(q.$$.fragment),fe=r(),v=p("div"),g(L.$$.fragment),ue=r(),W=p("p"),W.innerHTML=Te,he=r(),g(C.$$.fragment),ge=r(),T=p("div"),g(N.$$.fragment),_e=r(),D=p("p"),D.textContent=Pe,be=r(),g(J.$$.fragment),re=r(),g(Q.$$.fragment),ne=r(),I=p("div"),g(F.$$.fragment),Me=r(),H=p("p"),H.textContent=Ue,$e=r(),k=p("div"),g(S.$$.fragment),we=r(),R=p("p"),R.textContent=Ae,ie=r(),g(X.$$.fragment),de=r(),ee=p("p"),this.h()},l(e){const a=Be("svelte-u9bgzb",document.head);o=m(a,"META",{name:!0,content:!0}),a.forEach(s),y=n(e),d=m(e,"P",{}),z(d).forEach(s),i=n(e),_(f.$$.fragment,e),t=n(e),u=m(e,"P",{"data-svelte-h":!0}),U(u)!=="svelte-nxzt54"&&(u.innerHTML=Ie),oe=n(e),_(j.$$.fragment,e),ae=n(e),_(B.$$.fragment,e),se=n(e),h=m(e,"DIV",{class:!0});var x=z(h);_(G.$$.fragment,x),pe=n(x),V=m(x,"P",{"data-svelte-h":!0}),U(V)!=="svelte-geelri"&&(V.textContent=ve),me=n(x),Z=m(x,"DIV",{class:!0});var te=z(Z);_(q.$$.fragment,te),te.forEach(s),fe=n(x),v=m(x,"DIV",{class:!0});var P=z(v);_(L.$$.fragment,P),ue=n(P),W=m(P,"P",{"data-svelte-h":!0}),U(W)!=="svelte-vgoyt3"&&(W.innerHTML=Te),he=n(P),_(C.$$.fragment,P),P.forEach(s),ge=n(x),T=m(x,"DIV",{class:!0});var Y=z(T);_(N.$$.fragment,Y),_e=n(Y),D=m(Y,"P",{"data-svelte-h":!0}),U(D)!=="svelte-io61ja"&&(D.textContent=Pe),be=n(Y),_(J.$$.fragment,Y),Y.forEach(s),x.forEach(s),re=n(e),_(Q.$$.fragment,e),ne=n(e),I=m(e,"DIV",{class:!0});var K=z(I);_(F.$$.fragment,K),Me=n(K),H=m(K,"P",{"data-svelte-h":!0}),U(H)!=="svelte-mxmwf6"&&(H.textContent=Ue),$e=n(K),k=m(K,"DIV",{class:!0});var ce=z(k);_(S.$$.fragment,ce),we=n(ce),R=m(ce,"P",{"data-svelte-h":!0}),U(R)!=="svelte-1jm7ypm"&&(R.textContent=Ae),ce.forEach(s),K.forEach(s),ie=n(e),_(X.$$.fragment,e),de=n(e),ee=m(e,"P",{}),z(ee).forEach(s),this.h()},h(){E(o,"name","hf:doc:metadata"),E(o,"content",Se),E(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),E(v,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),E(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),E(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),E(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),E(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,a){l(document.head,o),c(e,y,a),c(e,d,a),c(e,i,a),b(f,e,a),c(e,t,a),c(e,u,a),c(e,oe,a),b(j,e,a),c(e,ae,a),b(B,e,a),c(e,se,a),c(e,h,a),b(G,h,null),l(h,pe),l(h,V),l(h,me),l(h,Z),b(q,Z,null),l(h,fe),l(h,v),b(L,v,null),l(v,ue),l(v,W),l(v,he),b(C,v,null),l(h,ge),l(h,T),b(N,T,null),l(T,_e),l(T,D),l(T,be),b(J,T,null),c(e,re,a),b(Q,e,a),c(e,ne,a),c(e,I,a),b(F,I,null),l(I,Me),l(I,H),l(I,$e),l(I,k),b(S,k,null),l(k,we),l(k,R),c(e,ie,a),b(X,e,a),c(e,de,a),c(e,ee,a),le=!0},p(e,[a]){const x={};a&2&&(x.$$scope={dirty:a,ctx:e}),j.$set(x);const te={};a&2&&(te.$$scope={dirty:a,ctx:e}),C.$set(te);const P={};a&2&&(P.$$scope={dirty:a,ctx:e}),J.$set(P)},i(e){le||(M(f.$$.fragment,e),M(j.$$.fragment,e),M(B.$$.fragment,e),M(G.$$.fragment,e),M(q.$$.fragment,e),M(L.$$.fragment,e),M(C.$$.fragment,e),M(N.$$.fragment,e),M(J.$$.fragment,e),M(Q.$$.fragment,e),M(F.$$.fragment,e),M(S.$$.fragment,e),M(X.$$.fragment,e),le=!0)},o(e){$(f.$$.fragment,e),$(j.$$.fragment,e),$(B.$$.fragment,e),$(G.$$.fragment,e),$(q.$$.fragment,e),$(L.$$.fragment,e),$(C.$$.fragment,e),$(N.$$.fragment,e),$(J.$$.fragment,e),$(Q.$$.fragment,e),$(F.$$.fragment,e),$(S.$$.fragment,e),$(X.$$.fragment,e),le=!1},d(e){e&&(s(y),s(d),s(i),s(t),s(u),s(oe),s(ae),s(se),s(h),s(re),s(ne),s(I),s(ie),s(de),s(ee)),s(o),w(f,e),w(j,e),w(B,e),w(G),w(q),w(L),w(C),w(N),w(J),w(Q,e),w(F),w(S),w(X,e)}}}const Se='{"title":"IP-Adapter","local":"ip-adapter","sections":[{"title":"IPAdapterMixin","local":"diffusers.loaders.IPAdapterMixin","sections":[],"depth":2},{"title":"IPAdapterMaskProcessor","local":"diffusers.image_processor.IPAdapterMaskProcessor","sections":[],"depth":2}],"depth":1}';function Xe(A){return ke(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ke extends ze{constructor(o){super(),Ee(this,o,Xe,Fe,Je,{})}}export{Ke as component}; | |
Xet Storage Details
- Size:
- 21.2 kB
- Xet hash:
- 2127eccd253693e36cd69ffa94722337a6933842694da274c552d5bc08a4e25d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.