Buckets:
| import{s as Ns,o as $s,n as gl}from"../chunks/scheduler.182ea377.js";import{S as Vs,i as Gs,g as n,s as i,p as d,x as le,A as Rs,h as a,f as l,c as o,j as U,q as h,m as r,y as se,k as u,v as M,a as s,r as m,d as f,t as y,u as w}from"../chunks/index.008d68e4.js";import{T as Cl}from"../chunks/Tip.4f096367.js";import{I as Ft}from"../chunks/IconCopyLink.96bbb92b.js";import{C as b}from"../chunks/CodeBlock.5ed6eb7b.js";function As(j){let p,_='🤗 Accelerate is a library for helping you train on multiple GPUs/TPUs or with mixed-precision. It’ll automatically configure your training setup based on your hardware and environment. Take a look at the 🤗 Accelerate <a href="https://huggingface.co/docs/accelerate/quicktour" rel="nofollow">Quick tour</a> to learn more.';return{c(){p=n("p"),p.innerHTML=_},l(c){p=a(c,"P",{"data-svelte-h":!0}),r(p)!=="svelte-1qbiqsn"&&(p.innerHTML=_)},m(c,J){s(c,p,J)},p:gl,d(c){c&&l(p)}}}function ks(j){let p,_='The following sections highlight parts of the training script that are important for understanding how to modify it, but it doesn’t cover every aspect of the script in detail. If you’re interested in learning more, feel free to read through the <a href="https://github.com/huggingface/diffusers/blob/main/examples/custom_diffusion/train_custom_diffusion.py" rel="nofollow">script</a> and let us know if you have any questions or concerns.';return{c(){p=n("p"),p.innerHTML=_},l(c){p=a(c,"P",{"data-svelte-h":!0}),r(p)!=="svelte-lc7164"&&(p.innerHTML=_)},m(c,J){s(c,p,J)},p:gl,d(c){c&&l(p)}}}function xs(j){let p,_='A lot of the code in the Custom Diffusion training script is similar to the <a href="dreambooth#training-script">DreamBooth</a> script. This guide instead focuses on the code that is relevant to Custom Diffusion.';return{c(){p=n("p"),p.innerHTML=_},l(c){p=a(c,"P",{"data-svelte-h":!0}),r(p)!=="svelte-17hnobu"&&(p.innerHTML=_)},m(c,J){s(c,p,J)},p:gl,d(c){c&&l(p)}}}function Bs(j){let p,_="If you’re training on human faces, the Custom Diffusion team has found the following parameters to work well:",c,J,W="<li><code>--learning_rate=5e-6</code></li> <li><code>--max_train_steps</code> can be anywhere between 1000 and 2000</li> <li><code>--freeze_model=crossattn</code></li> <li>use at least 15-20 images to train with</li>";return{c(){p=n("p"),p.textContent=_,c=i(),J=n("ul"),J.innerHTML=W},l(T){p=a(T,"P",{"data-svelte-h":!0}),r(p)!=="svelte-1nab0gg"&&(p.textContent=_),c=o(T),J=a(T,"UL",{"data-svelte-h":!0}),r(J)!=="svelte-1a7julv"&&(J.innerHTML=W)},m(T,E){s(T,p,E),s(T,c,E),s(T,J,E)},p:gl,d(T){T&&(l(p),l(c),l(J))}}}function zs(j){let p,_,c,J,W,T,E,qt,$l="Custom Diffusion",Me,Y,Vl='<a href="https://huggingface.co/papers/2212.04488" rel="nofollow">Custom Diffusion</a> is a training technique for personalizing image generation models. Like Textual Inversion, DreamBooth, and LoRA, Custom Diffusion only requires a few (~4-5) example images. This technique works by only training weights in the cross-attention layers, and it uses a special word to represent the newly learned concept. Custom Diffusion is unique because it can also learn multiple concepts at the same time.',de,Q,Gl="If you’re training on a GPU with limited vRAM, you should try enabling xFormers with <code>--enable_xformers_memory_efficient_attention</code> for faster training with lower vRAM requirements (16GB). To save even more memory, add <code>--set_grads_to_none</code> in the training argument to set the gradients to <code>None</code> instead of zero (this option can cause some issues, so if you experience any, try removing this parameter).",he,H,Rl='This guide will explore the <a href="https://github.com/huggingface/diffusers/blob/main/examples/custom_diffusion/train_custom_diffusion.py" rel="nofollow">train_custom_diffusion.py</a> script to help you become more familiar with it, and how you can adapt it for your own use-case.',me,S,Al="Before running the script, make sure you install the library from source:",fe,L,ye,F,kl="Navigate to the example folder with the training script and install the required dependencies:",we,q,Je,N,Ue,D,xl="Initialize an 🤗 Accelerate environment:",Te,P,be,K,Bl="To setup a default 🤗 Accelerate environment without choosing any configurations:",_e,O,je,tt,zl="Or if your environment doesn’t support an interactive shell, like a notebook, you can use:",Ce,et,ge,lt,El='Lastly, if you want to train a model on your own dataset, take a look at the <a href="create_dataset">Create a dataset for training</a> guide to learn how to create a dataset that works with the training script.',ve,$,Ie,C,V,ne,st,vl,Dt,Yl="Script parameters",Ze,nt,Ql='The training script contains all the parameters to help you customize your training run. These are found in the <a href="https://github.com/huggingface/diffusers/blob/64603389da01082055a901f2883c4810d1144edb/examples/custom_diffusion/train_custom_diffusion.py#L319" rel="nofollow"><code>parse_args()</code></a> function. The function comes with default values, but you can also set your own values in the training command if you’d like.',Xe,at,Hl="For example, to change the resolution of the input image:",We,it,Ne,ot,Sl='Many of the basic parameters are described in the <a href="dreambooth#script-parameters">DreamBooth</a> training guide, so this guide focuses on the parameters unique to Custom Diffusion:',$e,rt,Ll="<li><code>--freeze_model</code>: freezes the key and value parameters in the cross-attention layer; the default is <code>crossattn_kv</code>, but you can set it to <code>crossattn</code> to train all the parameters in the cross-attention layer</li> <li><code>--concepts_list</code>: to learn multiple concepts, provide a path to a JSON file containing the concepts</li> <li><code>--modifier_token</code>: a special word used to represent the learned concept</li> <li><code>--initializer_token</code>:</li>",Ve,g,G,ae,pt,Il,Pt,Fl="Prior preservation loss",Ge,ct,ql="Prior preservation loss is a method that uses a model’s own generated samples to help it learn how to generate more diverse images. Because these generated sample images belong to the same class as the images you provided, they help the model retain what it has learned about the class and how it can use what it already knows about the class to make new compositions.",Re,ut,Dl='Many of the parameters for prior preservation loss are described in the <a href="dreambooth#prior-preservation-loss">DreamBooth</a> training guide.',Ae,v,R,ie,Mt,Zl,Kt,Pl="Regularization",ke,dt,Kl="Custom Diffusion includes training the target images with a small set of real images to prevent overfitting. As you can imagine, this can be easy to do when you’re only training on a few images! Download 200 real images with <code>clip_retrieval</code>. The <code>class_prompt</code> should be the same category as the target images. These images are stored in <code>class_data_dir</code>.",xe,ht,Be,mt,Ol="To enable regularization, add the following parameters:",ze,ft,ts="<li><code>--with_prior_preservation</code>: whether to use prior preservation loss</li> <li><code>--prior_loss_weight</code>: controls the influence of the prior preservation loss on the model</li> <li><code>--real_prior</code>: whether to use a small set of real images to prevent overfitting</li>",Ee,yt,Ye,I,A,oe,wt,Xl,Ot,es="Training script",Qe,k,He,Jt,ls="The Custom Diffusion training script has two dataset classes:",Se,Ut,ss='<li><a href="https://github.com/huggingface/diffusers/blob/64603389da01082055a901f2883c4810d1144edb/examples/custom_diffusion/train_custom_diffusion.py#L165" rel="nofollow"><code>CustomDiffusionDataset</code></a>: preprocesses the images, class images, and prompts for training</li> <li><a href="https://github.com/huggingface/diffusers/blob/64603389da01082055a901f2883c4810d1144edb/examples/custom_diffusion/train_custom_diffusion.py#L148" rel="nofollow"><code>PromptDataset</code></a>: prepares the prompts for generating class images</li>',Le,Tt,ns='Next, the <code>modifier_token</code> is <a href="https://github.com/huggingface/diffusers/blob/64603389da01082055a901f2883c4810d1144edb/examples/custom_diffusion/train_custom_diffusion.py#L811" rel="nofollow">added to the tokenizer</a>, converted to token ids, and the token embeddings are resized to account for the new <code>modifier_token</code>. Then the <code>modifier_token</code> embeddings are initialized with the embeddings of the <code>initializer_token</code>. All parameters in the text encoder are frozen, except for the token embeddings since this is what the model is trying to learn to associate with the concepts.',Fe,bt,qe,_t,as='Now you’ll need to add the <a href="https://github.com/huggingface/diffusers/blob/64603389da01082055a901f2883c4810d1144edb/examples/custom_diffusion/train_custom_diffusion.py#L911C3-L911C3" rel="nofollow">Custom Diffusion weights</a> to the attention layers. This is a really important step for getting the shape and size of the attention weights correct, and for setting the appropriate number of attention processors in each UNet block.',De,jt,Pe,Ct,is='The <a href="https://github.com/huggingface/diffusers/blob/84cd9e8d01adb47f046b1ee449fc76a0c32dc4e2/examples/custom_diffusion/train_custom_diffusion.py#L982" rel="nofollow">optimizer</a> is initialized to update the cross-attention layer parameters:',Ke,gt,Oe,vt,os='In the <a href="https://github.com/huggingface/diffusers/blob/84cd9e8d01adb47f046b1ee449fc76a0c32dc4e2/examples/custom_diffusion/train_custom_diffusion.py#L1048" rel="nofollow">training loop</a>, it is important to only update the embeddings for the concept you’re trying to learn. This means setting the gradients of all the other token embeddings to zero:',tl,It,el,Z,x,re,Zt,Wl,te,rs="Launch the script",ll,Xt,ps="Once you’ve made all your changes or you’re okay with the default configuration, you’re ready to launch the training script! 🚀",sl,Wt,cs='In this guide, you’ll download and use these example <a href="https://www.cs.cmu.edu/~custom-diffusion/assets/data.zip" rel="nofollow">cat images</a>. You can also create and use your own dataset if you want (see the <a href="create_dataset">Create a dataset for training</a> guide).',nl,Nt,us="Set the environment variable <code>MODEL_NAME</code> to a model id on the Hub or a path to a local model, <code>INSTANCE_DIR</code> to the path where you just downloaded the cat images to, and <code>OUTPUT_DIR</code> to where you want to save the model. You’ll use <code><new1></code> as the special word to tie the newly learned embeddings to. The script creates and saves model checkpoints and a pytorch_custom_diffusion_weights.bin file to your repository.",al,$t,Ms="To monitor training progress with Weights and Biases, add the <code>--report_to=wandb</code> parameter to the training command and specify a validation prompt with <code>--validation_prompt</code>. This is useful for debugging and saving intermediate results.",il,B,ol,Vt,rl,Gt,ds='Custom Diffusion can also learn multiple concepts if you provide a <a href="https://github.com/adobe-research/custom-diffusion/blob/main/assets/concept_list.json" rel="nofollow">JSON</a> file with some details about each concept it should learn.',pl,Rt,hs="Run clip-retrieval to collect some real images to use for regularization:",cl,At,ul,kt,ms="Then you can launch the script:",Ml,xt,dl,Bt,fs="Once training is finished, you can use your new Custom Diffusion model for inference.",hl,zt,ml,Et,fl,X,z,pe,Yt,Nl,ee,ys="Next steps",yl,Qt,ws="Congratulations on training a model with Custom Diffusion! 🎉 To learn more:",wl,Ht,Js='<li>Read the <a href="https://www.cs.cmu.edu/~custom-diffusion/" rel="nofollow">Multi-Concept Customization of Text-to-Image Diffusion</a> blog post to learn more details about the experimental results from the Custom Diffusion team.</li>',Jl;return T=new Ft({}),L=new b({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZodWdnaW5nZmFjZSUyRmRpZmZ1c2VycyUwQWNkJTIwZGlmZnVzZXJzJTBBcGlwJTIwaW5zdGFsbCUyMC4=",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/huggingface/diffusers | |
| <span class="hljs-built_in">cd</span> diffusers | |
| pip install .`}}),q=new b({props:{code:"Y2QlMjBleGFtcGxlcyUyRmN1c3RvbV9kaWZmdXNpb24lMEFwaXAlMjBpbnN0YWxsJTIwLXIlMjByZXF1aXJlbWVudHMudHh0JTBBcGlwJTIwaW5zdGFsbCUyMGNsaXAtcmV0cmlldmFs",highlighted:`<span class="hljs-built_in">cd</span> examples/custom_diffusion | |
| pip install -r requirements.txt | |
| pip install clip-retrieval`}}),N=new Cl({props:{$$slots:{default:[As]},$$scope:{ctx:j}}}),P=new b({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config"}}),O=new b({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUyMGRlZmF1bHQ=",highlighted:"accelerate config default"}}),et=new b({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjB3cml0ZV9iYXNpY19jb25maWclMEElMEF3cml0ZV9iYXNpY19jb25maWcoKQ==",highlighted:`from accelerate.utils import write_basic_config | |
| write_basic_config()`}}),$=new Cl({props:{$$slots:{default:[ks]},$$scope:{ctx:j}}}),st=new Ft({}),it=new b({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX2N1c3RvbV9kaWZmdXNpb24ucHklMjAlNUMlMEElMjAlMjAtLXJlc29sdXRpb24lM0QyNTY=",highlighted:`accelerate launch train_custom_diffusion.py \\ | |
| --resolution=256`}}),pt=new Ft({}),Mt=new Ft({}),ht=new b({props:{code:"cHl0aG9uJTIwcmV0cmlldmUucHklMjAtLWNsYXNzX3Byb21wdCUyMGNhdCUyMC0tY2xhc3NfZGF0YV9kaXIlMjByZWFsX3JlZyUyRnNhbXBsZXNfY2F0JTIwLS1udW1fY2xhc3NfaW1hZ2VzJTIwMjAw",highlighted:'python retrieve.py --class_prompt <span class="hljs-built_in">cat</span> --class_data_dir real_reg/samples_cat --num_class_images 200'}}),yt=new b({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX2N1c3RvbV9kaWZmdXNpb24ucHklMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwJTVDJTBBJTIwJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tY2xhc3NfZGF0YV9kaXIlM0QlMjIuJTJGcmVhbF9yZWclMkZzYW1wbGVzX2NhdCUyMiUyMCU1QyUwQSUyMCUyMC0tY2xhc3NfcHJvbXB0JTNEJTIyY2F0JTIyJTIwJTVDJTBBJTIwJTIwLS1yZWFsX3ByaW9yJTNEVHJ1ZSUyMCU1Qw==",highlighted:`accelerate launch train_custom_diffusion.py \\ | |
| --with_prior_preservation \\ | |
| --prior_loss_weight=1.0 \\ | |
| --class_data_dir=<span class="hljs-string">"./real_reg/samples_cat"</span> \\ | |
| --class_prompt=<span class="hljs-string">"cat"</span> \\ | |
| --real_prior=True \\`}}),wt=new Ft({}),k=new Cl({props:{$$slots:{default:[xs]},$$scope:{ctx:j}}}),bt=new b({props:{code:"cGFyYW1zX3RvX2ZyZWV6ZSUyMCUzRCUyMGl0ZXJ0b29scy5jaGFpbiglMEElMjAlMjAlMjAlMjB0ZXh0X2VuY29kZXIudGV4dF9tb2RlbC5lbmNvZGVyLnBhcmFtZXRlcnMoKSUyQyUwQSUyMCUyMCUyMCUyMHRleHRfZW5jb2Rlci50ZXh0X21vZGVsLmZpbmFsX2xheWVyX25vcm0ucGFyYW1ldGVycygpJTJDJTBBJTIwJTIwJTIwJTIwdGV4dF9lbmNvZGVyLnRleHRfbW9kZWwuZW1iZWRkaW5ncy5wb3NpdGlvbl9lbWJlZGRpbmcucGFyYW1ldGVycygpJTJDJTBBKSUwQWZyZWV6ZV9wYXJhbXMocGFyYW1zX3RvX2ZyZWV6ZSk=",highlighted:`params_to_freeze = itertools.chain( | |
| text_encoder.text_model.encoder.parameters(), | |
| text_encoder.text_model.final_layer_norm.parameters(), | |
| text_encoder.text_model.embeddings.position_embedding.parameters(), | |
| ) | |
| freeze_params(params_to_freeze)`}}),jt=new b({props:{code:"c3QlMjAlM0QlMjB1bmV0LnN0YXRlX2RpY3QoKSUwQWZvciUyMG5hbWUlMkMlMjBfJTIwaW4lMjB1bmV0LmF0dG5fcHJvY2Vzc29ycy5pdGVtcygpJTNBJTBBJTIwJTIwJTIwJTIwY3Jvc3NfYXR0ZW50aW9uX2RpbSUyMCUzRCUyME5vbmUlMjBpZiUyMG5hbWUuZW5kc3dpdGgoJTIyYXR0bjEucHJvY2Vzc29yJTIyKSUyMGVsc2UlMjB1bmV0LmNvbmZpZy5jcm9zc19hdHRlbnRpb25fZGltJTBBJTIwJTIwJTIwJTIwaWYlMjBuYW1lLnN0YXJ0c3dpdGgoJTIybWlkX2Jsb2NrJTIyKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGhpZGRlbl9zaXplJTIwJTNEJTIwdW5ldC5jb25maWcuYmxvY2tfb3V0X2NoYW5uZWxzJTVCLTElNUQlMEElMjAlMjAlMjAlMjBlbGlmJTIwbmFtZS5zdGFydHN3aXRoKCUyMnVwX2Jsb2NrcyUyMiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBibG9ja19pZCUyMCUzRCUyMGludChuYW1lJTVCbGVuKCUyMnVwX2Jsb2Nrcy4lMjIpJTVEKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGhpZGRlbl9zaXplJTIwJTNEJTIwbGlzdChyZXZlcnNlZCh1bmV0LmNvbmZpZy5ibG9ja19vdXRfY2hhbm5lbHMpKSU1QmJsb2NrX2lkJTVEJTBBJTIwJTIwJTIwJTIwZWxpZiUyMG5hbWUuc3RhcnRzd2l0aCglMjJkb3duX2Jsb2NrcyUyMiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBibG9ja19pZCUyMCUzRCUyMGludChuYW1lJTVCbGVuKCUyMmRvd25fYmxvY2tzLiUyMiklNUQpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaGlkZGVuX3NpemUlMjAlM0QlMjB1bmV0LmNvbmZpZy5ibG9ja19vdXRfY2hhbm5lbHMlNUJibG9ja19pZCU1RCUwQSUyMCUyMCUyMCUyMGxheWVyX25hbWUlMjAlM0QlMjBuYW1lLnNwbGl0KCUyMi5wcm9jZXNzb3IlMjIpJTVCMCU1RCUwQSUyMCUyMCUyMCUyMHdlaWdodHMlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0b19rX2N1c3RvbV9kaWZmdXNpb24ud2VpZ2h0JTIyJTNBJTIwc3QlNUJsYXllcl9uYW1lJTIwJTJCJTIwJTIyLnRvX2sud2VpZ2h0JTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydG9fdl9jdXN0b21fZGlmZnVzaW9uLndlaWdodCUyMiUzQSUyMHN0JTVCbGF5ZXJfbmFtZSUyMCUyQiUyMCUyMi50b192LndlaWdodCUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMGlmJTIwdHJhaW5fcV9vdXQlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3ZWlnaHRzJTVCJTIydG9fcV9jdXN0b21fZGlmZnVzaW9uLndlaWdodCUyMiU1RCUyMCUzRCUyMHN0JTVCbGF5ZXJfbmFtZSUyMCUyQiUyMCUyMi50b19xLndlaWdodCUyMiU1RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdlaWdodHMlNUIlMjJ0b19vdXRfY3VzdG9tX2RpZmZ1c2lvbi4wLndlaWdodCUyMiU1RCUyMCUzRCUyMHN0JTVCbGF5ZXJfbmFtZSUyMCUyQiUyMCUyMi50b19vdXQuMC53ZWlnaHQlMjIlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3ZWlnaHRzJTVCJTIydG9fb3V0X2N1c3RvbV9kaWZmdXNpb24uMC5iaWFzJTIyJTVEJTIwJTNEJTIwc3QlNUJsYXllcl9uYW1lJTIwJTJCJTIwJTIyLnRvX291dC4wLmJpYXMlMjIlNUQlMEElMjAlMjAlMjAlMjBpZiUyMGNyb3NzX2F0dGVudGlvbl9kaW0lMjBpcyUyMG5vdCUyME5vbmUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjdXN0b21fZGlmZnVzaW9uX2F0dG5fcHJvY3MlNUJuYW1lJTVEJTIwJTNEJTIwYXR0ZW50aW9uX2NsYXNzKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyYWluX2t2JTNEdHJhaW5fa3YlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0cmFpbl9xX291dCUzRHRyYWluX3Ffb3V0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaGlkZGVuX3NpemUlM0RoaWRkZW5fc2l6ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNyb3NzX2F0dGVudGlvbl9kaW0lM0Rjcm9zc19hdHRlbnRpb25fZGltJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKS50byh1bmV0LmRldmljZSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjdXN0b21fZGlmZnVzaW9uX2F0dG5fcHJvY3MlNUJuYW1lJTVELmxvYWRfc3RhdGVfZGljdCh3ZWlnaHRzKSUwQSUyMCUyMCUyMCUyMGVsc2UlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjdXN0b21fZGlmZnVzaW9uX2F0dG5fcHJvY3MlNUJuYW1lJTVEJTIwJTNEJTIwYXR0ZW50aW9uX2NsYXNzKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyYWluX2t2JTNERmFsc2UlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0cmFpbl9xX291dCUzREZhbHNlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaGlkZGVuX3NpemUlM0RoaWRkZW5fc2l6ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNyb3NzX2F0dGVudGlvbl9kaW0lM0Rjcm9zc19hdHRlbnRpb25fZGltJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQWRlbCUyMHN0JTBBdW5ldC5zZXRfYXR0bl9wcm9jZXNzb3IoY3VzdG9tX2RpZmZ1c2lvbl9hdHRuX3Byb2NzKSUwQWN1c3RvbV9kaWZmdXNpb25fbGF5ZXJzJTIwJTNEJTIwQXR0blByb2NzTGF5ZXJzKHVuZXQuYXR0bl9wcm9jZXNzb3JzKQ==",highlighted:`st = unet.state_dict() | |
| <span class="hljs-keyword">for</span> name, _ <span class="hljs-keyword">in</span> unet.attn_processors.items(): | |
| cross_attention_dim = <span class="hljs-literal">None</span> <span class="hljs-keyword">if</span> name.endswith(<span class="hljs-string">"attn1.processor"</span>) <span class="hljs-keyword">else</span> unet.config.cross_attention_dim | |
| <span class="hljs-keyword">if</span> name.startswith(<span class="hljs-string">"mid_block"</span>): | |
| hidden_size = unet.config.block_out_channels[-<span class="hljs-number">1</span>] | |
| <span class="hljs-keyword">elif</span> name.startswith(<span class="hljs-string">"up_blocks"</span>): | |
| block_id = <span class="hljs-built_in">int</span>(name[<span class="hljs-built_in">len</span>(<span class="hljs-string">"up_blocks."</span>)]) | |
| hidden_size = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">reversed</span>(unet.config.block_out_channels))[block_id] | |
| <span class="hljs-keyword">elif</span> name.startswith(<span class="hljs-string">"down_blocks"</span>): | |
| block_id = <span class="hljs-built_in">int</span>(name[<span class="hljs-built_in">len</span>(<span class="hljs-string">"down_blocks."</span>)]) | |
| hidden_size = unet.config.block_out_channels[block_id] | |
| layer_name = name.split(<span class="hljs-string">".processor"</span>)[<span class="hljs-number">0</span>] | |
| weights = { | |
| <span class="hljs-string">"to_k_custom_diffusion.weight"</span>: st[layer_name + <span class="hljs-string">".to_k.weight"</span>], | |
| <span class="hljs-string">"to_v_custom_diffusion.weight"</span>: st[layer_name + <span class="hljs-string">".to_v.weight"</span>], | |
| } | |
| <span class="hljs-keyword">if</span> train_q_out: | |
| weights[<span class="hljs-string">"to_q_custom_diffusion.weight"</span>] = st[layer_name + <span class="hljs-string">".to_q.weight"</span>] | |
| weights[<span class="hljs-string">"to_out_custom_diffusion.0.weight"</span>] = st[layer_name + <span class="hljs-string">".to_out.0.weight"</span>] | |
| weights[<span class="hljs-string">"to_out_custom_diffusion.0.bias"</span>] = st[layer_name + <span class="hljs-string">".to_out.0.bias"</span>] | |
| <span class="hljs-keyword">if</span> cross_attention_dim <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-literal">None</span>: | |
| custom_diffusion_attn_procs[name] = attention_class( | |
| train_kv=train_kv, | |
| train_q_out=train_q_out, | |
| hidden_size=hidden_size, | |
| cross_attention_dim=cross_attention_dim, | |
| ).to(unet.device) | |
| custom_diffusion_attn_procs[name].load_state_dict(weights) | |
| <span class="hljs-keyword">else</span>: | |
| custom_diffusion_attn_procs[name] = attention_class( | |
| train_kv=<span class="hljs-literal">False</span>, | |
| train_q_out=<span class="hljs-literal">False</span>, | |
| hidden_size=hidden_size, | |
| cross_attention_dim=cross_attention_dim, | |
| ) | |
| <span class="hljs-keyword">del</span> st | |
| unet.set_attn_processor(custom_diffusion_attn_procs) | |
| custom_diffusion_layers = AttnProcsLayers(unet.attn_processors)`}}),gt=new b({props:{code:"b3B0aW1pemVyJTIwJTNEJTIwb3B0aW1pemVyX2NsYXNzKCUwQSUyMCUyMCUyMCUyMGl0ZXJ0b29scy5jaGFpbih0ZXh0X2VuY29kZXIuZ2V0X2lucHV0X2VtYmVkZGluZ3MoKS5wYXJhbWV0ZXJzKCklMkMlMjBjdXN0b21fZGlmZnVzaW9uX2xheWVycy5wYXJhbWV0ZXJzKCkpJTBBJTIwJTIwJTIwJTIwaWYlMjBhcmdzLm1vZGlmaWVyX3Rva2VuJTIwaXMlMjBub3QlMjBOb25lJTBBJTIwJTIwJTIwJTIwZWxzZSUyMGN1c3RvbV9kaWZmdXNpb25fbGF5ZXJzLnBhcmFtZXRlcnMoKSUyQyUwQSUyMCUyMCUyMCUyMGxyJTNEYXJncy5sZWFybmluZ19yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYmV0YXMlM0QoYXJncy5hZGFtX2JldGExJTJDJTIwYXJncy5hZGFtX2JldGEyKSUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9kZWNheSUzRGFyZ3MuYWRhbV93ZWlnaHRfZGVjYXklMkMlMEElMjAlMjAlMjAlMjBlcHMlM0RhcmdzLmFkYW1fZXBzaWxvbiUyQyUwQSk=",highlighted:`optimizer = optimizer_class( | |
| itertools.chain(text_encoder.get_input_embeddings().parameters(), custom_diffusion_layers.parameters()) | |
| <span class="hljs-keyword">if</span> args.modifier_token <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-literal">None</span> | |
| <span class="hljs-keyword">else</span> custom_diffusion_layers.parameters(), | |
| lr=args.learning_rate, | |
| betas=(args.adam_beta1, args.adam_beta2), | |
| weight_decay=args.adam_weight_decay, | |
| eps=args.adam_epsilon, | |
| )`}}),It=new b({props:{code:"aWYlMjBhcmdzLm1vZGlmaWVyX3Rva2VuJTIwaXMlMjBub3QlMjBOb25lJTNBJTBBJTIwJTIwJTIwJTIwaWYlMjBhY2NlbGVyYXRvci5udW1fcHJvY2Vzc2VzJTIwJTNFJTIwMSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGdyYWRzX3RleHRfZW5jb2RlciUyMCUzRCUyMHRleHRfZW5jb2Rlci5tb2R1bGUuZ2V0X2lucHV0X2VtYmVkZGluZ3MoKS53ZWlnaHQuZ3JhZCUwQSUyMCUyMCUyMCUyMGVsc2UlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBncmFkc190ZXh0X2VuY29kZXIlMjAlM0QlMjB0ZXh0X2VuY29kZXIuZ2V0X2lucHV0X2VtYmVkZGluZ3MoKS53ZWlnaHQuZ3JhZCUwQSUyMCUyMCUyMCUyMGluZGV4X2dyYWRzX3RvX3plcm8lMjAlM0QlMjB0b3JjaC5hcmFuZ2UobGVuKHRva2VuaXplcikpJTIwISUzRCUyMG1vZGlmaWVyX3Rva2VuX2lkJTVCMCU1RCUwQSUyMCUyMCUyMCUyMGZvciUyMGklMjBpbiUyMHJhbmdlKGxlbihtb2RpZmllcl90b2tlbl9pZCU1QjElM0ElNUQpKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGluZGV4X2dyYWRzX3RvX3plcm8lMjAlM0QlMjBpbmRleF9ncmFkc190b196ZXJvJTIwJTI2JTIwKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRvcmNoLmFyYW5nZShsZW4odG9rZW5pemVyKSklMjAhJTNEJTIwbW9kaWZpZXJfdG9rZW5faWQlNUJpJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMGdyYWRzX3RleHRfZW5jb2Rlci5kYXRhJTVCaW5kZXhfZ3JhZHNfdG9femVybyUyQyUyMCUzQSU1RCUyMCUzRCUyMGdyYWRzX3RleHRfZW5jb2Rlci5kYXRhJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW5kZXhfZ3JhZHNfdG9femVybyUyQyUyMCUzQSUwQSUyMCUyMCUyMCUyMCU1RC5maWxsXygwKQ==",highlighted:`<span class="hljs-keyword">if</span> args.modifier_token <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-literal">None</span>: | |
| <span class="hljs-keyword">if</span> accelerator.num_processes > <span class="hljs-number">1</span>: | |
| grads_text_encoder = text_encoder.module.get_input_embeddings().weight.grad | |
| <span class="hljs-keyword">else</span>: | |
| grads_text_encoder = text_encoder.get_input_embeddings().weight.grad | |
| index_grads_to_zero = torch.arange(<span class="hljs-built_in">len</span>(tokenizer)) != modifier_token_id[<span class="hljs-number">0</span>] | |
| <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(modifier_token_id[<span class="hljs-number">1</span>:])): | |
| index_grads_to_zero = index_grads_to_zero & ( | |
| torch.arange(<span class="hljs-built_in">len</span>(tokenizer)) != modifier_token_id[i] | |
| ) | |
| grads_text_encoder.data[index_grads_to_zero, :] = grads_text_encoder.data[ | |
| index_grads_to_zero, : | |
| ].fill_(<span class="hljs-number">0</span>)`}}),Zt=new Ft({}),B=new Cl({props:{$$slots:{default:[Bs]},$$scope:{ctx:j}}}),Vt=new b({props:{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMEFleHBvcnQlMjBPVVRQVVRfRElSJTNEJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTBBZXhwb3J0JTIwSU5TVEFOQ0VfRElSJTNEJTIyLiUyRmRhdGElMkZjYXQlMjIlMEElMEFhY2NlbGVyYXRlJTIwbGF1bmNoJTIwdHJhaW5fY3VzdG9tX2RpZmZ1c2lvbi5weSUyMCU1QyUwQSUyMCUyMC0tcHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglM0QlMjRNT0RFTF9OQU1FJTIwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9kYXRhX2RpciUzRCUyNElOU1RBTkNFX0RJUiUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyNE9VVFBVVF9ESVIlMjAlNUMlMEElMjAlMjAtLWNsYXNzX2RhdGFfZGlyJTNELiUyRnJlYWxfcmVnJTJGc2FtcGxlc19jYXQlMkYlMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwJTVDJTBBJTIwJTIwLS1yZWFsX3ByaW9yJTIwJTVDJTBBJTIwJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tY2xhc3NfcHJvbXB0JTNEJTIyY2F0JTIyJTIwJTVDJTBBJTIwJTIwLS1udW1fY2xhc3NfaW1hZ2VzJTNEMjAwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9wcm9tcHQlM0QlMjJwaG90byUyMG9mJTIwYSUyMCUzQ25ldzElM0UlMjBjYXQlMjIlMjAlMjAlNUMlMEElMjAlMjAtLXJlc29sdXRpb24lM0Q1MTIlMjAlMjAlNUMlMEElMjAlMjAtLXRyYWluX2JhdGNoX3NpemUlM0QyJTIwJTIwJTVDJTBBJTIwJTIwLS1sZWFybmluZ19yYXRlJTNEMWUtNSUyMCUyMCU1QyUwQSUyMCUyMC0tbHJfd2FybXVwX3N0ZXBzJTNEMCUyMCU1QyUwQSUyMCUyMC0tbWF4X3RyYWluX3N0ZXBzJTNEMjUwJTIwJTVDJTBBJTIwJTIwLS1zY2FsZV9sciUyMCU1QyUwQSUyMCUyMC0taGZsaXAlMjAlMjAlNUMlMEElMjAlMjAtLW1vZGlmaWVyX3Rva2VuJTIwJTIyJTNDbmV3MSUzRSUyMiUyMCU1QyUwQSUyMCUyMC0tdmFsaWRhdGlvbl9wcm9tcHQlM0QlMjIlM0NuZXcxJTNFJTIwY2F0JTIwc2l0dGluZyUyMGluJTIwYSUyMGJ1Y2tldCUyMiUyMCU1QyUwQSUyMCUyMC0tcmVwb3J0X3RvJTNEJTIyd2FuZGIlMjIlMjAlNUMlMEElMjAlMjAtLXB1c2hfdG9faHVi",highlighted:`<span class="hljs-built_in">export</span> MODEL_NAME=<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span> | |
| <span class="hljs-built_in">export</span> OUTPUT_DIR=<span class="hljs-string">"path-to-save-model"</span> | |
| <span class="hljs-built_in">export</span> INSTANCE_DIR=<span class="hljs-string">"./data/cat"</span> | |
| accelerate launch train_custom_diffusion.py \\ | |
| --pretrained_model_name_or_path=<span class="hljs-variable">$MODEL_NAME</span> \\ | |
| --instance_data_dir=<span class="hljs-variable">$INSTANCE_DIR</span> \\ | |
| --output_dir=<span class="hljs-variable">$OUTPUT_DIR</span> \\ | |
| --class_data_dir=./real_reg/samples_cat/ \\ | |
| --with_prior_preservation \\ | |
| --real_prior \\ | |
| --prior_loss_weight=1.0 \\ | |
| --class_prompt=<span class="hljs-string">"cat"</span> \\ | |
| --num_class_images=200 \\ | |
| --instance_prompt=<span class="hljs-string">"photo of a <new1> cat"</span> \\ | |
| --resolution=512 \\ | |
| --train_batch_size=2 \\ | |
| --learning_rate=1e-5 \\ | |
| --lr_warmup_steps=0 \\ | |
| --max_train_steps=250 \\ | |
| --scale_lr \\ | |
| --hflip \\ | |
| --modifier_token <span class="hljs-string">"<new1>"</span> \\ | |
| --validation_prompt=<span class="hljs-string">"<new1> cat sitting in a bucket"</span> \\ | |
| --report_to=<span class="hljs-string">"wandb"</span> \\ | |
| --push_to_hub`}}),At=new b({props:{code:"cGlwJTIwaW5zdGFsbCUyMGNsaXAtcmV0cmlldmFsJTBBcHl0aG9uJTIwcmV0cmlldmUucHklMjAtLWNsYXNzX3Byb21wdCUyMCU3QiU3RCUyMC0tY2xhc3NfZGF0YV9kaXIlMjAlN0IlN0QlMjAtLW51bV9jbGFzc19pbWFnZXMlMjAyMDA=",highlighted:`pip install clip-retrieval | |
| python retrieve.py --class_prompt {} --class_data_dir {} --num_class_images 200`}}),xt=new b({props:{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMEFleHBvcnQlMjBPVVRQVVRfRElSJTNEJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTBBJTBBYWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX2N1c3RvbV9kaWZmdXNpb24ucHklMjAlNUMlMEElMjAlMjAtLXByZXRyYWluZWRfbW9kZWxfbmFtZV9vcl9wYXRoJTNEJTI0TU9ERUxfTkFNRSUyMCUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyNE9VVFBVVF9ESVIlMjAlNUMlMEElMjAlMjAtLWNvbmNlcHRzX2xpc3QlM0QuJTJGY29uY2VwdF9saXN0Lmpzb24lMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwJTVDJTBBJTIwJTIwLS1yZWFsX3ByaW9yJTIwJTVDJTBBJTIwJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tcmVzb2x1dGlvbiUzRDUxMiUyMCUyMCU1QyUwQSUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDIlMjAlMjAlNUMlMEElMjAlMjAtLWxlYXJuaW5nX3JhdGUlM0QxZS01JTIwJTIwJTVDJTBBJTIwJTIwLS1scl93YXJtdXBfc3RlcHMlM0QwJTIwJTVDJTBBJTIwJTIwLS1tYXhfdHJhaW5fc3RlcHMlM0Q1MDAlMjAlNUMlMEElMjAlMjAtLW51bV9jbGFzc19pbWFnZXMlM0QyMDAlMjAlNUMlMEElMjAlMjAtLXNjYWxlX2xyJTIwJTVDJTBBJTIwJTIwLS1oZmxpcCUyMCUyMCU1QyUwQSUyMCUyMC0tbW9kaWZpZXJfdG9rZW4lMjAlMjIlM0NuZXcxJTNFJTJCJTNDbmV3MiUzRSUyMiUyMCU1QyUwQSUyMCUyMC0tcHVzaF90b19odWI=",highlighted:`<span class="hljs-built_in">export</span> MODEL_NAME=<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span> | |
| <span class="hljs-built_in">export</span> OUTPUT_DIR=<span class="hljs-string">"path-to-save-model"</span> | |
| accelerate launch train_custom_diffusion.py \\ | |
| --pretrained_model_name_or_path=<span class="hljs-variable">$MODEL_NAME</span> \\ | |
| --output_dir=<span class="hljs-variable">$OUTPUT_DIR</span> \\ | |
| --concepts_list=./concept_list.json \\ | |
| --with_prior_preservation \\ | |
| --real_prior \\ | |
| --prior_loss_weight=1.0 \\ | |
| --resolution=512 \\ | |
| --train_batch_size=2 \\ | |
| --learning_rate=1e-5 \\ | |
| --lr_warmup_steps=0 \\ | |
| --max_train_steps=500 \\ | |
| --num_class_images=200 \\ | |
| --scale_lr \\ | |
| --hflip \\ | |
| --modifier_token <span class="hljs-string">"<new1>+<new2>"</span> \\ | |
| --push_to_hub`}}),zt=new b({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJDb21wVmlzJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS00JTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBKS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLnVuZXQubG9hZF9hdHRuX3Byb2NzKCUyMnBhdGgtdG8tc2F2ZS1tb2RlbCUyMiUyQyUyMHdlaWdodF9uYW1lJTNEJTIycHl0b3JjaF9jdXN0b21fZGlmZnVzaW9uX3dlaWdodHMuYmluJTIyKSUwQXBpcGVsaW5lLmxvYWRfdGV4dHVhbF9pbnZlcnNpb24oJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTJDJTIwd2VpZ2h0X25hbWUlM0QlMjIlM0NuZXcxJTNFLmJpbiUyMiklMEElMEFpbWFnZSUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMiUzQ25ldzElM0UlMjBjYXQlMjBzaXR0aW5nJTIwaW4lMjBhJTIwYnVja2V0JTIyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDEwMCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENi4wJTJDJTBBJTIwJTIwJTIwJTIwZXRhJTNEMS4wJTJDJTBBKS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2Uuc2F2ZSglMjJjYXQucG5nJTIyKQ==",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">"CompVis/stable-diffusion-v1-4"</span>, torch_dtype=torch.float16, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.unet.load_attn_procs(<span class="hljs-string">"path-to-save-model"</span>, weight_name=<span class="hljs-string">"pytorch_custom_diffusion_weights.bin"</span>) | |
| pipeline.load_textual_inversion(<span class="hljs-string">"path-to-save-model"</span>, weight_name=<span class="hljs-string">"<new1>.bin"</span>) | |
| image = pipeline( | |
| <span class="hljs-string">"<new1> cat sitting in a bucket"</span>, | |
| num_inference_steps=<span class="hljs-number">100</span>, | |
| guidance_scale=<span class="hljs-number">6.0</span>, | |
| eta=<span class="hljs-number">1.0</span>, | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"cat.png"</span>)`}}),Et=new b({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViLnJlcG9jYXJkJTIwaW1wb3J0JTIwUmVwb0NhcmQlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJzYXlha3BhdWwlMkZjdXN0b20tZGlmZnVzaW9uLWNhdC13b29kZW4tcG90JTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KS50byglMjJjdWRhJTIyKSUwQXBpcGVsaW5lLnVuZXQubG9hZF9hdHRuX3Byb2NzKG1vZGVsX2lkJTJDJTIwd2VpZ2h0X25hbWUlM0QlMjJweXRvcmNoX2N1c3RvbV9kaWZmdXNpb25fd2VpZ2h0cy5iaW4lMjIpJTBBcGlwZWxpbmUubG9hZF90ZXh0dWFsX2ludmVyc2lvbihtb2RlbF9pZCUyQyUyMHdlaWdodF9uYW1lJTNEJTIyJTNDbmV3MSUzRS5iaW4lMjIpJTBBcGlwZWxpbmUubG9hZF90ZXh0dWFsX2ludmVyc2lvbihtb2RlbF9pZCUyQyUyMHdlaWdodF9uYW1lJTNEJTIyJTNDbmV3MiUzRS5iaW4lMjIpJTBBJTBBaW1hZ2UlMjAlM0QlMjBwaXBlbGluZSglMEElMjAlMjAlMjAlMjAlMjJ0aGUlMjAlM0NuZXcxJTNFJTIwY2F0JTIwc2N1bHB0dXJlJTIwaW4lMjB0aGUlMjBzdHlsZSUyMG9mJTIwYSUyMCUzQ25ldzIlM0UlMjB3b29kZW4lMjBwb3QlMjIlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEMTAwJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0Q2LjAlMkMlMEElMjAlMjAlMjAlMjBldGElM0QxLjAlMkMlMEEpLmltYWdlcyU1QjAlNUQlMEFpbWFnZS5zYXZlKCUyMm11bHRpLXN1YmplY3QucG5nJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> huggingface_hub.repocard <span class="hljs-keyword">import</span> RepoCard | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"sayakpaul/custom-diffusion-cat-wooden-pot"</span>, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.unet.load_attn_procs(model_id, weight_name=<span class="hljs-string">"pytorch_custom_diffusion_weights.bin"</span>) | |
| pipeline.load_textual_inversion(model_id, weight_name=<span class="hljs-string">"<new1>.bin"</span>) | |
| pipeline.load_textual_inversion(model_id, weight_name=<span class="hljs-string">"<new2>.bin"</span>) | |
| image = pipeline( | |
| <span class="hljs-string">"the <new1> cat sculpture in the style of a <new2> wooden pot"</span>, | |
| num_inference_steps=<span class="hljs-number">100</span>, | |
| guidance_scale=<span class="hljs-number">6.0</span>, | |
| eta=<span class="hljs-number">1.0</span>, | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"multi-subject.png"</span>)`}}),Yt=new Ft({}),{c(){p=n("meta"),_=i(),c=n("h1"),J=n("a"),W=n("span"),d(T.$$.fragment),E=i(),qt=n("span"),qt.textContent=$l,Me=i(),Y=n("p"),Y.innerHTML=Vl,de=i(),Q=n("p"),Q.innerHTML=Gl,he=i(),H=n("p"),H.innerHTML=Rl,me=i(),S=n("p"),S.textContent=Al,fe=i(),d(L.$$.fragment),ye=i(),F=n("p"),F.textContent=kl,we=i(),d(q.$$.fragment),Je=i(),d(N.$$.fragment),Ue=i(),D=n("p"),D.textContent=xl,Te=i(),d(P.$$.fragment),be=i(),K=n("p"),K.textContent=Bl,_e=i(),d(O.$$.fragment),je=i(),tt=n("p"),tt.textContent=zl,Ce=i(),d(et.$$.fragment),ge=i(),lt=n("p"),lt.innerHTML=El,ve=i(),d($.$$.fragment),Ie=i(),C=n("h2"),V=n("a"),ne=n("span"),d(st.$$.fragment),vl=i(),Dt=n("span"),Dt.textContent=Yl,Ze=i(),nt=n("p"),nt.innerHTML=Ql,Xe=i(),at=n("p"),at.textContent=Hl,We=i(),d(it.$$.fragment),Ne=i(),ot=n("p"),ot.innerHTML=Sl,$e=i(),rt=n("ul"),rt.innerHTML=Ll,Ve=i(),g=n("h3"),G=n("a"),ae=n("span"),d(pt.$$.fragment),Il=i(),Pt=n("span"),Pt.textContent=Fl,Ge=i(),ct=n("p"),ct.textContent=ql,Re=i(),ut=n("p"),ut.innerHTML=Dl,Ae=i(),v=n("h3"),R=n("a"),ie=n("span"),d(Mt.$$.fragment),Zl=i(),Kt=n("span"),Kt.textContent=Pl,ke=i(),dt=n("p"),dt.innerHTML=Kl,xe=i(),d(ht.$$.fragment),Be=i(),mt=n("p"),mt.textContent=Ol,ze=i(),ft=n("ul"),ft.innerHTML=ts,Ee=i(),d(yt.$$.fragment),Ye=i(),I=n("h2"),A=n("a"),oe=n("span"),d(wt.$$.fragment),Xl=i(),Ot=n("span"),Ot.textContent=es,Qe=i(),d(k.$$.fragment),He=i(),Jt=n("p"),Jt.textContent=ls,Se=i(),Ut=n("ul"),Ut.innerHTML=ss,Le=i(),Tt=n("p"),Tt.innerHTML=ns,Fe=i(),d(bt.$$.fragment),qe=i(),_t=n("p"),_t.innerHTML=as,De=i(),d(jt.$$.fragment),Pe=i(),Ct=n("p"),Ct.innerHTML=is,Ke=i(),d(gt.$$.fragment),Oe=i(),vt=n("p"),vt.innerHTML=os,tl=i(),d(It.$$.fragment),el=i(),Z=n("h2"),x=n("a"),re=n("span"),d(Zt.$$.fragment),Wl=i(),te=n("span"),te.textContent=rs,ll=i(),Xt=n("p"),Xt.textContent=ps,sl=i(),Wt=n("p"),Wt.innerHTML=cs,nl=i(),Nt=n("p"),Nt.innerHTML=us,al=i(),$t=n("p"),$t.innerHTML=Ms,il=i(),d(B.$$.fragment),ol=le(` | |
| <hfoptions id="training-inference"> | |
| <hfoption id="single concept"> | |
| `),d(Vt.$$.fragment),rl=le(` | |
| </hfoption> | |
| <hfoption id="multiple concepts"> | |
| `),Gt=n("p"),Gt.innerHTML=ds,pl=i(),Rt=n("p"),Rt.textContent=hs,cl=i(),d(At.$$.fragment),ul=i(),kt=n("p"),kt.textContent=ms,Ml=i(),d(xt.$$.fragment),dl=le(` | |
| </hfoption> | |
| </hfoptions> | |
| `),Bt=n("p"),Bt.textContent=fs,hl=le(` | |
| <hfoptions id="training-inference"> | |
| <hfoption id="single concept"> | |
| `),d(zt.$$.fragment),ml=le(` | |
| </hfoption> | |
| <hfoption id="multiple concepts"> | |
| `),d(Et.$$.fragment),fl=le(` | |
| </hfoption> | |
| </hfoptions> | |
| `),X=n("h2"),z=n("a"),pe=n("span"),d(Yt.$$.fragment),Nl=i(),ee=n("span"),ee.textContent=ys,yl=i(),Qt=n("p"),Qt.textContent=ws,wl=i(),Ht=n("ul"),Ht.innerHTML=Js,this.h()},l(t){const e=Rs("svelte-1phssyn",document.head);p=a(e,"META",{name:!0,content:!0}),e.forEach(l),_=o(t),c=a(t,"H1",{class:!0});var St=U(c);J=a(St,"A",{id:!0,class:!0,href:!0});var ce=U(J);W=a(ce,"SPAN",{});var ue=U(W);h(T.$$.fragment,ue),ue.forEach(l),ce.forEach(l),E=o(St),qt=a(St,"SPAN",{"data-svelte-h":!0}),r(qt)!=="svelte-1dt2un5"&&(qt.textContent=$l),St.forEach(l),Me=o(t),Y=a(t,"P",{"data-svelte-h":!0}),r(Y)!=="svelte-zoobzt"&&(Y.innerHTML=Vl),de=o(t),Q=a(t,"P",{"data-svelte-h":!0}),r(Q)!=="svelte-1pc1nnz"&&(Q.innerHTML=Gl),he=o(t),H=a(t,"P",{"data-svelte-h":!0}),r(H)!=="svelte-u5h0jz"&&(H.innerHTML=Rl),me=o(t),S=a(t,"P",{"data-svelte-h":!0}),r(S)!=="svelte-l7dm2q"&&(S.textContent=Al),fe=o(t),h(L.$$.fragment,t),ye=o(t),F=a(t,"P",{"data-svelte-h":!0}),r(F)!=="svelte-1nnn36i"&&(F.textContent=kl),we=o(t),h(q.$$.fragment,t),Je=o(t),h(N.$$.fragment,t),Ue=o(t),D=a(t,"P",{"data-svelte-h":!0}),r(D)!=="svelte-60q53m"&&(D.textContent=xl),Te=o(t),h(P.$$.fragment,t),be=o(t),K=a(t,"P",{"data-svelte-h":!0}),r(K)!=="svelte-di6juu"&&(K.textContent=Bl),_e=o(t),h(O.$$.fragment,t),je=o(t),tt=a(t,"P",{"data-svelte-h":!0}),r(tt)!=="svelte-tsz4qp"&&(tt.textContent=zl),Ce=o(t),h(et.$$.fragment,t),ge=o(t),lt=a(t,"P",{"data-svelte-h":!0}),r(lt)!=="svelte-1fkfdql"&&(lt.innerHTML=El),ve=o(t),h($.$$.fragment,t),Ie=o(t),C=a(t,"H2",{class:!0});var Lt=U(C);V=a(Lt,"A",{id:!0,class:!0,href:!0});var Us=U(V);ne=a(Us,"SPAN",{});var Ts=U(ne);h(st.$$.fragment,Ts),Ts.forEach(l),Us.forEach(l),vl=o(Lt),Dt=a(Lt,"SPAN",{"data-svelte-h":!0}),r(Dt)!=="svelte-r00uw2"&&(Dt.textContent=Yl),Lt.forEach(l),Ze=o(t),nt=a(t,"P",{"data-svelte-h":!0}),r(nt)!=="svelte-1t7lm99"&&(nt.innerHTML=Ql),Xe=o(t),at=a(t,"P",{"data-svelte-h":!0}),r(at)!=="svelte-or9ig"&&(at.textContent=Hl),We=o(t),h(it.$$.fragment,t),Ne=o(t),ot=a(t,"P",{"data-svelte-h":!0}),r(ot)!=="svelte-j5tc3k"&&(ot.innerHTML=Sl),$e=o(t),rt=a(t,"UL",{"data-svelte-h":!0}),r(rt)!=="svelte-19fpm7h"&&(rt.innerHTML=Ll),Ve=o(t),g=a(t,"H3",{class:!0});var Ul=U(g);G=a(Ul,"A",{id:!0,class:!0,href:!0});var bs=U(G);ae=a(bs,"SPAN",{});var _s=U(ae);h(pt.$$.fragment,_s),_s.forEach(l),bs.forEach(l),Il=o(Ul),Pt=a(Ul,"SPAN",{"data-svelte-h":!0}),r(Pt)!=="svelte-1cavofy"&&(Pt.textContent=Fl),Ul.forEach(l),Ge=o(t),ct=a(t,"P",{"data-svelte-h":!0}),r(ct)!=="svelte-1oc83h6"&&(ct.textContent=ql),Re=o(t),ut=a(t,"P",{"data-svelte-h":!0}),r(ut)!=="svelte-1mpzp5"&&(ut.innerHTML=Dl),Ae=o(t),v=a(t,"H3",{class:!0});var Tl=U(v);R=a(Tl,"A",{id:!0,class:!0,href:!0});var js=U(R);ie=a(js,"SPAN",{});var Cs=U(ie);h(Mt.$$.fragment,Cs),Cs.forEach(l),js.forEach(l),Zl=o(Tl),Kt=a(Tl,"SPAN",{"data-svelte-h":!0}),r(Kt)!=="svelte-bcw8xd"&&(Kt.textContent=Pl),Tl.forEach(l),ke=o(t),dt=a(t,"P",{"data-svelte-h":!0}),r(dt)!=="svelte-13fgxpn"&&(dt.innerHTML=Kl),xe=o(t),h(ht.$$.fragment,t),Be=o(t),mt=a(t,"P",{"data-svelte-h":!0}),r(mt)!=="svelte-hwsu6x"&&(mt.textContent=Ol),ze=o(t),ft=a(t,"UL",{"data-svelte-h":!0}),r(ft)!=="svelte-6jy6u"&&(ft.innerHTML=ts),Ee=o(t),h(yt.$$.fragment,t),Ye=o(t),I=a(t,"H2",{class:!0});var bl=U(I);A=a(bl,"A",{id:!0,class:!0,href:!0});var gs=U(A);oe=a(gs,"SPAN",{});var vs=U(oe);h(wt.$$.fragment,vs),vs.forEach(l),gs.forEach(l),Xl=o(bl),Ot=a(bl,"SPAN",{"data-svelte-h":!0}),r(Ot)!=="svelte-339bde"&&(Ot.textContent=es),bl.forEach(l),Qe=o(t),h(k.$$.fragment,t),He=o(t),Jt=a(t,"P",{"data-svelte-h":!0}),r(Jt)!=="svelte-1owi8ao"&&(Jt.textContent=ls),Se=o(t),Ut=a(t,"UL",{"data-svelte-h":!0}),r(Ut)!=="svelte-1fby5zy"&&(Ut.innerHTML=ss),Le=o(t),Tt=a(t,"P",{"data-svelte-h":!0}),r(Tt)!=="svelte-1jto000"&&(Tt.innerHTML=ns),Fe=o(t),h(bt.$$.fragment,t),qe=o(t),_t=a(t,"P",{"data-svelte-h":!0}),r(_t)!=="svelte-12higtg"&&(_t.innerHTML=as),De=o(t),h(jt.$$.fragment,t),Pe=o(t),Ct=a(t,"P",{"data-svelte-h":!0}),r(Ct)!=="svelte-bhf9v4"&&(Ct.innerHTML=is),Ke=o(t),h(gt.$$.fragment,t),Oe=o(t),vt=a(t,"P",{"data-svelte-h":!0}),r(vt)!=="svelte-dnomct"&&(vt.innerHTML=os),tl=o(t),h(It.$$.fragment,t),el=o(t),Z=a(t,"H2",{class:!0});var _l=U(Z);x=a(_l,"A",{id:!0,class:!0,href:!0});var Is=U(x);re=a(Is,"SPAN",{});var Zs=U(re);h(Zt.$$.fragment,Zs),Zs.forEach(l),Is.forEach(l),Wl=o(_l),te=a(_l,"SPAN",{"data-svelte-h":!0}),r(te)!=="svelte-zp6p5k"&&(te.textContent=rs),_l.forEach(l),ll=o(t),Xt=a(t,"P",{"data-svelte-h":!0}),r(Xt)!=="svelte-9dei1q"&&(Xt.textContent=ps),sl=o(t),Wt=a(t,"P",{"data-svelte-h":!0}),r(Wt)!=="svelte-mn6swm"&&(Wt.innerHTML=cs),nl=o(t),Nt=a(t,"P",{"data-svelte-h":!0}),r(Nt)!=="svelte-1o5n4y1"&&(Nt.innerHTML=us),al=o(t),$t=a(t,"P",{"data-svelte-h":!0}),r($t)!=="svelte-gvoz0n"&&($t.innerHTML=Ms),il=o(t),h(B.$$.fragment,t),ol=se(t,` | |
| <hfoptions id="training-inference"> | |
| <hfoption id="single concept"> | |
| `),h(Vt.$$.fragment,t),rl=se(t,` | |
| </hfoption> | |
| <hfoption id="multiple concepts"> | |
| `),Gt=a(t,"P",{"data-svelte-h":!0}),r(Gt)!=="svelte-dc1va4"&&(Gt.innerHTML=ds),pl=o(t),Rt=a(t,"P",{"data-svelte-h":!0}),r(Rt)!=="svelte-wqrprq"&&(Rt.textContent=hs),cl=o(t),h(At.$$.fragment,t),ul=o(t),kt=a(t,"P",{"data-svelte-h":!0}),r(kt)!=="svelte-1etdm7l"&&(kt.textContent=ms),Ml=o(t),h(xt.$$.fragment,t),dl=se(t,` | |
| </hfoption> | |
| </hfoptions> | |
| `),Bt=a(t,"P",{"data-svelte-h":!0}),r(Bt)!=="svelte-1mw1g2x"&&(Bt.textContent=fs),hl=se(t,` | |
| <hfoptions id="training-inference"> | |
| <hfoption id="single concept"> | |
| `),h(zt.$$.fragment,t),ml=se(t,` | |
| </hfoption> | |
| <hfoption id="multiple concepts"> | |
| `),h(Et.$$.fragment,t),fl=se(t,` | |
| </hfoption> | |
| </hfoptions> | |
| `),X=a(t,"H2",{class:!0});var jl=U(X);z=a(jl,"A",{id:!0,class:!0,href:!0});var Xs=U(z);pe=a(Xs,"SPAN",{});var Ws=U(pe);h(Yt.$$.fragment,Ws),Ws.forEach(l),Xs.forEach(l),Nl=o(jl),ee=a(jl,"SPAN",{"data-svelte-h":!0}),r(ee)!=="svelte-pr7lub"&&(ee.textContent=ys),jl.forEach(l),yl=o(t),Qt=a(t,"P",{"data-svelte-h":!0}),r(Qt)!=="svelte-nq8p2g"&&(Qt.textContent=ws),wl=o(t),Ht=a(t,"UL",{"data-svelte-h":!0}),r(Ht)!=="svelte-1u8bbml"&&(Ht.innerHTML=Js),this.h()},h(){u(p,"name","hf:doc:metadata"),u(p,"content",JSON.stringify(Es)),u(J,"id","custom-diffusion"),u(J,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(J,"href","#custom-diffusion"),u(c,"class","relative group"),u(V,"id","script-parameters"),u(V,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(V,"href","#script-parameters"),u(C,"class","relative group"),u(G,"id","prior-preservation-loss"),u(G,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(G,"href","#prior-preservation-loss"),u(g,"class","relative group"),u(R,"id","regularization"),u(R,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(R,"href","#regularization"),u(v,"class","relative group"),u(A,"id","training-script"),u(A,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(A,"href","#training-script"),u(I,"class","relative group"),u(x,"id","launch-the-script"),u(x,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(x,"href","#launch-the-script"),u(Z,"class","relative group"),u(z,"id","next-steps"),u(z,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(z,"href","#next-steps"),u(X,"class","relative group")},m(t,e){M(document.head,p),s(t,_,e),s(t,c,e),M(c,J),M(J,W),m(T,W,null),M(c,E),M(c,qt),s(t,Me,e),s(t,Y,e),s(t,de,e),s(t,Q,e),s(t,he,e),s(t,H,e),s(t,me,e),s(t,S,e),s(t,fe,e),m(L,t,e),s(t,ye,e),s(t,F,e),s(t,we,e),m(q,t,e),s(t,Je,e),m(N,t,e),s(t,Ue,e),s(t,D,e),s(t,Te,e),m(P,t,e),s(t,be,e),s(t,K,e),s(t,_e,e),m(O,t,e),s(t,je,e),s(t,tt,e),s(t,Ce,e),m(et,t,e),s(t,ge,e),s(t,lt,e),s(t,ve,e),m($,t,e),s(t,Ie,e),s(t,C,e),M(C,V),M(V,ne),m(st,ne,null),M(C,vl),M(C,Dt),s(t,Ze,e),s(t,nt,e),s(t,Xe,e),s(t,at,e),s(t,We,e),m(it,t,e),s(t,Ne,e),s(t,ot,e),s(t,$e,e),s(t,rt,e),s(t,Ve,e),s(t,g,e),M(g,G),M(G,ae),m(pt,ae,null),M(g,Il),M(g,Pt),s(t,Ge,e),s(t,ct,e),s(t,Re,e),s(t,ut,e),s(t,Ae,e),s(t,v,e),M(v,R),M(R,ie),m(Mt,ie,null),M(v,Zl),M(v,Kt),s(t,ke,e),s(t,dt,e),s(t,xe,e),m(ht,t,e),s(t,Be,e),s(t,mt,e),s(t,ze,e),s(t,ft,e),s(t,Ee,e),m(yt,t,e),s(t,Ye,e),s(t,I,e),M(I,A),M(A,oe),m(wt,oe,null),M(I,Xl),M(I,Ot),s(t,Qe,e),m(k,t,e),s(t,He,e),s(t,Jt,e),s(t,Se,e),s(t,Ut,e),s(t,Le,e),s(t,Tt,e),s(t,Fe,e),m(bt,t,e),s(t,qe,e),s(t,_t,e),s(t,De,e),m(jt,t,e),s(t,Pe,e),s(t,Ct,e),s(t,Ke,e),m(gt,t,e),s(t,Oe,e),s(t,vt,e),s(t,tl,e),m(It,t,e),s(t,el,e),s(t,Z,e),M(Z,x),M(x,re),m(Zt,re,null),M(Z,Wl),M(Z,te),s(t,ll,e),s(t,Xt,e),s(t,sl,e),s(t,Wt,e),s(t,nl,e),s(t,Nt,e),s(t,al,e),s(t,$t,e),s(t,il,e),m(B,t,e),s(t,ol,e),m(Vt,t,e),s(t,rl,e),s(t,Gt,e),s(t,pl,e),s(t,Rt,e),s(t,cl,e),m(At,t,e),s(t,ul,e),s(t,kt,e),s(t,Ml,e),m(xt,t,e),s(t,dl,e),s(t,Bt,e),s(t,hl,e),m(zt,t,e),s(t,ml,e),m(Et,t,e),s(t,fl,e),s(t,X,e),M(X,z),M(z,pe),m(Yt,pe,null),M(X,Nl),M(X,ee),s(t,yl,e),s(t,Qt,e),s(t,wl,e),s(t,Ht,e),Jl=!0},p(t,[e]){const St={};e&2&&(St.$$scope={dirty:e,ctx:t}),N.$set(St);const ce={};e&2&&(ce.$$scope={dirty:e,ctx:t}),$.$set(ce);const ue={};e&2&&(ue.$$scope={dirty:e,ctx:t}),k.$set(ue);const Lt={};e&2&&(Lt.$$scope={dirty:e,ctx:t}),B.$set(Lt)},i(t){Jl||(f(T.$$.fragment,t),f(L.$$.fragment,t),f(q.$$.fragment,t),f(N.$$.fragment,t),f(P.$$.fragment,t),f(O.$$.fragment,t),f(et.$$.fragment,t),f($.$$.fragment,t),f(st.$$.fragment,t),f(it.$$.fragment,t),f(pt.$$.fragment,t),f(Mt.$$.fragment,t),f(ht.$$.fragment,t),f(yt.$$.fragment,t),f(wt.$$.fragment,t),f(k.$$.fragment,t),f(bt.$$.fragment,t),f(jt.$$.fragment,t),f(gt.$$.fragment,t),f(It.$$.fragment,t),f(Zt.$$.fragment,t),f(B.$$.fragment,t),f(Vt.$$.fragment,t),f(At.$$.fragment,t),f(xt.$$.fragment,t),f(zt.$$.fragment,t),f(Et.$$.fragment,t),f(Yt.$$.fragment,t),Jl=!0)},o(t){y(T.$$.fragment,t),y(L.$$.fragment,t),y(q.$$.fragment,t),y(N.$$.fragment,t),y(P.$$.fragment,t),y(O.$$.fragment,t),y(et.$$.fragment,t),y($.$$.fragment,t),y(st.$$.fragment,t),y(it.$$.fragment,t),y(pt.$$.fragment,t),y(Mt.$$.fragment,t),y(ht.$$.fragment,t),y(yt.$$.fragment,t),y(wt.$$.fragment,t),y(k.$$.fragment,t),y(bt.$$.fragment,t),y(jt.$$.fragment,t),y(gt.$$.fragment,t),y(It.$$.fragment,t),y(Zt.$$.fragment,t),y(B.$$.fragment,t),y(Vt.$$.fragment,t),y(At.$$.fragment,t),y(xt.$$.fragment,t),y(zt.$$.fragment,t),y(Et.$$.fragment,t),y(Yt.$$.fragment,t),Jl=!1},d(t){t&&(l(_),l(c),l(Me),l(Y),l(de),l(Q),l(he),l(H),l(me),l(S),l(fe),l(ye),l(F),l(we),l(Je),l(Ue),l(D),l(Te),l(be),l(K),l(_e),l(je),l(tt),l(Ce),l(ge),l(lt),l(ve),l(Ie),l(C),l(Ze),l(nt),l(Xe),l(at),l(We),l(Ne),l(ot),l($e),l(rt),l(Ve),l(g),l(Ge),l(ct),l(Re),l(ut),l(Ae),l(v),l(ke),l(dt),l(xe),l(Be),l(mt),l(ze),l(ft),l(Ee),l(Ye),l(I),l(Qe),l(He),l(Jt),l(Se),l(Ut),l(Le),l(Tt),l(Fe),l(qe),l(_t),l(De),l(Pe),l(Ct),l(Ke),l(Oe),l(vt),l(tl),l(el),l(Z),l(ll),l(Xt),l(sl),l(Wt),l(nl),l(Nt),l(al),l($t),l(il),l(ol),l(rl),l(Gt),l(pl),l(Rt),l(cl),l(ul),l(kt),l(Ml),l(dl),l(Bt),l(hl),l(ml),l(fl),l(X),l(yl),l(Qt),l(wl),l(Ht)),l(p),w(T),w(L,t),w(q,t),w(N,t),w(P,t),w(O,t),w(et,t),w($,t),w(st),w(it,t),w(pt),w(Mt),w(ht,t),w(yt,t),w(wt),w(k,t),w(bt,t),w(jt,t),w(gt,t),w(It,t),w(Zt),w(B,t),w(Vt,t),w(At,t),w(xt,t),w(zt,t),w(Et,t),w(Yt)}}}const Es={local:"custom-diffusion",sections:[{local:"script-parameters",sections:[{local:"prior-preservation-loss",title:"Prior preservation loss"},{local:"regularization",title:"Regularization"}],title:"Script parameters"},{local:"training-script",title:"Training script"},{local:"launch-the-script",title:"Launch the script"},{local:"next-steps",title:"Next steps"}],title:"Custom Diffusion"};function Ys(j){return $s(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class qs extends Vs{constructor(p){super(),Gs(this,p,Ys,zs,Ns,{})}}export{qs as component}; | |
Xet Storage Details
- Size:
- 50.4 kB
- Xet hash:
- f7b0c82c269b120d5b0b60726d55d03194717059dd71776a7afb3e21db09a057
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.