Buckets:
| import{s as Te,n as be,o as he}from"../chunks/scheduler.94020406.js";import{S as _e,i as je,g as i,s as a,r as m,E as Ce,h as p,f as e,c as n,j as Ue,u as o,x as M,k as Je,y as Ze,a as s,v as c,d as r,t as f,w as u}from"../chunks/index.a08c8d92.js";import{C as w}from"../chunks/CodeBlock.b23cf525.js";import{H as d,E as Ie}from"../chunks/EditOnGithub.b1bceb47.js";function Ne(vl){let y,It,Ct,Nt,U,$t,J,Fl=`<a href="https://arxiv.org/abs/2212.04488" rel="nofollow">커스텀 Diffusion</a>은 피사체의 이미지 몇 장(4~5장)만 주어지면 Stable Diffusion처럼 text-to-image 모델을 커스터마이징하는 방법입니다. | |
| ‘train_custom_diffusion.py’ 스크립트는 학습 과정을 구현하고 이를 Stable Diffusion에 맞게 조정하는 방법을 보여줍니다.`,Wt,T,xl='이 교육 사례는 <a href="https://nupurkmr9.github.io/" rel="nofollow">Nupur Kumari</a>가 제공하였습니다. (Custom Diffusion의 저자 중 한명).',gt,b,Xt,h,Rt,_,Bl="스크립트를 실행하기 전에 라이브러리의 학습 dependencies를 설치해야 합니다:",Vt,j,Ll="<strong>중요</strong>",Et,C,Yl="예제 스크립트의 최신 버전을 성공적으로 실행하려면 <strong>소스로부터 설치</strong>하는 것을 매우 권장하며, 예제 스크립트를 자주 업데이트하는 만큼 일부 예제별 요구 사항을 설치하고 설치를 최신 상태로 유지하는 것이 좋습니다. 이를 위해 새 가상 환경에서 다음 단계를 실행하세요:",Gt,Z,vt,I,zl='<a href="https://github.com/huggingface/diffusers/tree/main/examples/custom_diffusion" rel="nofollow">example folder</a>로 cd하여 이동하세요.',Ft,N,xt,$,kl="이제 실행",Bt,W,Lt,g,Sl='그리고 <a href="https://github.com/huggingface/accelerate/" rel="nofollow">🤗Accelerate</a> 환경을 초기화:',Yt,X,zt,R,Ql="또는 사용자 환경에 대한 질문에 답하지 않고 기본 가속 구성을 사용하려면 다음과 같이 하세요.",kt,V,St,E,Al="또는 사용 중인 환경이 대화형 셸을 지원하지 않는 경우(예: jupyter notebook)",Qt,G,At,v,Ht,F,Hl='이제 데이터셋을 가져옵니다. <a href="https://www.cs.cmu.edu/~custom-diffusion/assets/data.zip" rel="nofollow">여기</a>에서 데이터셋을 다운로드하고 압축을 풉니다. 직접 데이터셋을 사용하려면 <a href="create_dataset">학습용 데이터셋 생성하기</a> 가이드를 참고하세요.',qt,x,ql="또한 ‘clip-retrieval’을 사용하여 200개의 실제 이미지를 수집하고, regularization으로서 이를 학습 데이터셋의 타겟 이미지와 결합합니다. 이렇게 하면 주어진 타겟 이미지에 대한 과적합을 방지할 수 있습니다. 다음 플래그를 사용하면 <code>prior_loss_weight=1.</code>로 <code>prior_preservation</code>, <code>real_prior</code> regularization을 활성화할 수 있습니다.\n클래스_프롬프트<code>는 대상 이미지와 동일한 카테고리 이름이어야 합니다. 수집된 실제 이미지에는 </code>class_prompt<code>와 유사한 텍스트 캡션이 있습니다. 검색된 이미지는 </code>class_data_dir<code>에 저장됩니다. 생성된 이미지를 regularization으로 사용하기 위해 </code>real_prior`를 비활성화할 수 있습니다. 실제 이미지를 수집하려면 훈련 전에 이 명령을 먼저 사용하십시오.",Dt,B,Pt,L,Dl='<strong><strong><em>참고: <a href="https://huggingface.co/stabilityai/stable-diffusion-2" rel="nofollow">stable-diffusion-2</a> 768x768 모델을 사용하는 경우 ‘해상도’를 768로 변경하세요.</em></strong></strong>',Ot,Y,Pl="스크립트는 모델 체크포인트와 <code>pytorch_custom_diffusion_weights.bin</code> 파일을 생성하여 저장소에 저장합니다.",Kt,z,tl,k,Ol='<strong>더 낮은 VRAM 요구 사항(GPU당 16GB)으로 더 빠르게 훈련하려면 <code>--enable_xformers_memory_efficient_attention</code>을 사용하세요. 설치 방법은 <a href="https://github.com/facebookresearch/xformers" rel="nofollow">가이드</a>를 따르세요.</strong>',ll,S,Kl="가중치 및 편향(<code>wandb</code>)을 사용하여 실험을 추적하고 중간 결과를 저장하려면(강력히 권장합니다) 다음 단계를 따르세요:",el,Q,te="<li><code>wandb</code> 설치: <code>pip install wandb</code>.</li> <li>로그인 : <code>wandb login</code>.</li> <li>그런 다음 트레이닝을 시작하는 동안 <code>validation_prompt</code>를 지정하고 <code>report_to</code>를 <code>wandb</code>로 설정합니다. 다음과 같은 관련 인수를 구성할 수도 있습니다:<ul><li><code>num_validation_images</code></li> <li><code>validation_steps</code></li></ul></li>",sl,A,al,H,le='다음은 <a href="https://wandb.ai/sayakpaul/custom-diffusion/runs/26ghrcau" rel="nofollow">Weights and Biases page</a>의 예시이며, 여러 학습 세부 정보와 함께 중간 결과들을 확인할 수 있습니다.',nl,q,ee='<code>--push_to_hub</code>를 지정하면 학습된 파라미터가 허깅 페이스 허브의 리포지토리에 푸시됩니다. 다음은 <a href="https://huggingface.co/sayakpaul/custom-diffusion-cat" rel="nofollow">예제 리포지토리</a>입니다.',il,D,pl,P,se='<a href="https://github.com/ShivamShrirao/diffusers/blob/main/examples/dreambooth/train_dreambooth.py" rel="nofollow">this</a>와 유사하게 각 컨셉에 대한 정보가 포함된 <a href="https://github.com/adobe-research/custom-diffusion/blob/main/assets/concept_list.json" rel="nofollow">json</a> 파일을 제공합니다.',Ml,O,ae="실제 이미지를 수집하려면 json 파일의 각 컨셉에 대해 이 명령을 실행합니다.",ml,K,ol,tt,ne="그럼 우리는 학습시킬 준비가 되었습니다!",cl,lt,rl,et,ie='다음은 <a href="https://wandb.ai/sayakpaul/custom-diffusion/runs/3990tzkg" rel="nofollow">Weights and Biases page</a>의 예시이며, 다른 학습 세부 정보와 함께 중간 결과들을 확인할 수 있습니다.',fl,st,ul,at,pe="사람 얼굴에 대한 파인튜닝을 위해 다음과 같은 설정이 더 효과적이라는 것을 확인했습니다: <code>learning_rate=5e-6</code>, <code>max_train_steps=1000 to 2000</code>, <code>freeze_model=crossattn</code>을 최소 15~20개의 이미지로 설정합니다.",wl,nt,Me="실제 이미지를 수집하려면 훈련 전에 이 명령을 먼저 사용하십시오.",dl,it,yl,pt,me="이제 학습을 시작하세요!",Ul,Mt,Jl,mt,Tl,ot,oe="위 프롬프트를 사용하여 모델을 학습시킨 후에는 아래 프롬프트를 사용하여 추론을 실행할 수 있습니다. 프롬프트에 ‘modifier token’(예: 위 예제에서는 \\<new1>)을 반드시 포함해야 합니다.",bl,ct,hl,rt,ce="허브 리포지토리에서 이러한 매개변수를 직접 로드할 수 있습니다:",_l,ft,jl,ut,re="다음은 여러 컨셉으로 추론을 수행하는 예제입니다:",Cl,wt,Zl,dt,fe="여기서 ‘고양이’와 ‘나무 냄비’는 여러 컨셉을 말합니다.",Il,yt,Nl,Ut,ue="<code>--checkpointing_steps</code> 인수를 사용한 경우 학습 과정에서 저장된 전체 체크포인트 중 하나에서 추론을 수행할 수도 있습니다.",$l,Jt,Wl,Tt,we="더 많은 메모리를 절약하려면 스크립트에 <code>--set_grads_to_none</code> 인수를 전달하세요. 이렇게 하면 성적이 0이 아닌 없음으로 설정됩니다. 그러나 특정 동작이 변경되므로 문제가 발생하면 이 인수를 제거하세요.",gl,bt,de='자세한 정보: <a href="https://pytorch.org/docs/stable/generated/torch.optim.Optimizer.zero_grad.html" rel="nofollow">https://pytorch.org/docs/stable/generated/torch.optim.Optimizer.zero_grad.html</a>',Xl,ht,Rl,_t,ye='실험에 대한 자세한 내용은 <a href="https://www.cs.cmu.edu/~custom-diffusion/" rel="nofollow">당사 웹페이지</a>를 참조하세요.',Vl,jt,El,Zt,Gl;return U=new d({props:{title:"커스텀 Diffusion 학습 예제",local:"커스텀-diffusion-학습-예제",headingTag:"h1"}}),b=new d({props:{title:"로컬에서 PyTorch로 실행하기",local:"로컬에서-pytorch로-실행하기",headingTag:"h2"}}),h=new d({props:{title:"Dependencies 설치하기",local:"dependencies-설치하기",headingTag:"h3"}}),Z=new w({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZodWdnaW5nZmFjZSUyRmRpZmZ1c2VycyUwQWNkJTIwZGlmZnVzZXJzJTBBcGlwJTIwaW5zdGFsbCUyMC1lJTIwLg==",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/huggingface/diffusers | |
| <span class="hljs-built_in">cd</span> diffusers | |
| pip install -e .`,wrap:!1}}),N=new w({props:{code:"Y2QlMjBleGFtcGxlcyUyRmN1c3RvbV9kaWZmdXNpb24=",highlighted:'<span class="hljs-built_in">cd</span> examples/custom_diffusion',wrap:!1}}),W=new w({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1yJTIwcmVxdWlyZW1lbnRzLnR4dCUwQXBpcCUyMGluc3RhbGwlMjBjbGlwLXJldHJpZXZhbA==",highlighted:`pip install -r requirements.txt | |
| pip install clip-retrieval`,wrap:!1}}),X=new w({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",wrap:!1}}),V=new w({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUyMGRlZmF1bHQ=",highlighted:"accelerate config default",wrap:!1}}),G=new w({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjB3cml0ZV9iYXNpY19jb25maWclMEElMEF3cml0ZV9iYXNpY19jb25maWcoKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> write_basic_config | |
| write_basic_config()`,wrap:!1}}),v=new d({props:{title:"고양이 예제 😺",local:"고양이-예제-",headingTag:"h3"}}),B=new w({props:{code:"cGlwJTIwaW5zdGFsbCUyMGNsaXAtcmV0cmlldmFsJTBBcHl0aG9uJTIwcmV0cmlldmUucHklMjAtLWNsYXNzX3Byb21wdCUyMGNhdCUyMC0tY2xhc3NfZGF0YV9kaXIlMjByZWFsX3JlZyUyRnNhbXBsZXNfY2F0JTIwLS1udW1fY2xhc3NfaW1hZ2VzJTIwMjAw",highlighted:`pip install clip-retrieval | |
| python retrieve.py --class_prompt <span class="hljs-built_in">cat</span> --class_data_dir real_reg/samples_cat --num_class_images 200`,wrap:!1}}),z=new w({props:{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMEFleHBvcnQlMjBPVVRQVVRfRElSJTNEJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTBBZXhwb3J0JTIwSU5TVEFOQ0VfRElSJTNEJTIyLiUyRmRhdGElMkZjYXQlMjIlMEElMEFhY2NlbGVyYXRlJTIwbGF1bmNoJTIwdHJhaW5fY3VzdG9tX2RpZmZ1c2lvbi5weSUyMCU1QyUwQSUyMCUyMC0tcHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglM0QlMjRNT0RFTF9OQU1FJTIwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9kYXRhX2RpciUzRCUyNElOU1RBTkNFX0RJUiUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyNE9VVFBVVF9ESVIlMjAlNUMlMEElMjAlMjAtLWNsYXNzX2RhdGFfZGlyJTNELiUyRnJlYWxfcmVnJTJGc2FtcGxlc19jYXQlMkYlMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwLS1yZWFsX3ByaW9yJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tY2xhc3NfcHJvbXB0JTNEJTIyY2F0JTIyJTIwLS1udW1fY2xhc3NfaW1hZ2VzJTNEMjAwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9wcm9tcHQlM0QlMjJwaG90byUyMG9mJTIwYSUyMCUzQ25ldzElM0UlMjBjYXQlMjIlMjAlMjAlNUMlMEElMjAlMjAtLXJlc29sdXRpb24lM0Q1MTIlMjAlMjAlNUMlMEElMjAlMjAtLXRyYWluX2JhdGNoX3NpemUlM0QyJTIwJTIwJTVDJTBBJTIwJTIwLS1sZWFybmluZ19yYXRlJTNEMWUtNSUyMCUyMCU1QyUwQSUyMCUyMC0tbHJfd2FybXVwX3N0ZXBzJTNEMCUyMCU1QyUwQSUyMCUyMC0tbWF4X3RyYWluX3N0ZXBzJTNEMjUwJTIwJTVDJTBBJTIwJTIwLS1zY2FsZV9sciUyMC0taGZsaXAlMjAlMjAlNUMlMEElMjAlMjAtLW1vZGlmaWVyX3Rva2VuJTIwJTIyJTNDbmV3MSUzRSUyMiUyMCU1QyUwQSUyMCUyMC0tcHVzaF90b19odWI=",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> \\ | |
| --push_to_hub`,wrap:!1}}),A=new w({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX2N1c3RvbV9kaWZmdXNpb24ucHklMjAlNUMlMEElMjAlMjAtLXByZXRyYWluZWRfbW9kZWxfbmFtZV9vcl9wYXRoJTNEJTI0TU9ERUxfTkFNRSUyMCUyMCU1QyUwQSUyMCUyMC0taW5zdGFuY2VfZGF0YV9kaXIlM0QlMjRJTlNUQU5DRV9ESVIlMjAlNUMlMEElMjAlMjAtLW91dHB1dF9kaXIlM0QlMjRPVVRQVVRfRElSJTIwJTVDJTBBJTIwJTIwLS1jbGFzc19kYXRhX2RpciUzRC4lMkZyZWFsX3JlZyUyRnNhbXBsZXNfY2F0JTJGJTIwJTVDJTBBJTIwJTIwLS13aXRoX3ByaW9yX3ByZXNlcnZhdGlvbiUyMC0tcmVhbF9wcmlvciUyMC0tcHJpb3JfbG9zc193ZWlnaHQlM0QxLjAlMjAlNUMlMEElMjAlMjAtLWNsYXNzX3Byb21wdCUzRCUyMmNhdCUyMiUyMC0tbnVtX2NsYXNzX2ltYWdlcyUzRDIwMCUyMCU1QyUwQSUyMCUyMC0taW5zdGFuY2VfcHJvbXB0JTNEJTIycGhvdG8lMjBvZiUyMGElMjAlM0NuZXcxJTNFJTIwY2F0JTIyJTIwJTIwJTVDJTBBJTIwJTIwLS1yZXNvbHV0aW9uJTNENTEyJTIwJTIwJTVDJTBBJTIwJTIwLS10cmFpbl9iYXRjaF9zaXplJTNEMiUyMCUyMCU1QyUwQSUyMCUyMC0tbGVhcm5pbmdfcmF0ZSUzRDFlLTUlMjAlMjAlNUMlMEElMjAlMjAtLWxyX3dhcm11cF9zdGVwcyUzRDAlMjAlNUMlMEElMjAlMjAtLW1heF90cmFpbl9zdGVwcyUzRDI1MCUyMCU1QyUwQSUyMCUyMC0tc2NhbGVfbHIlMjAtLWhmbGlwJTIwJTIwJTVDJTBBJTIwJTIwLS1tb2RpZmllcl90b2tlbiUyMCUyMiUzQ25ldzElM0UlMjIlMjAlNUMlMEElMjAlMjAtLXZhbGlkYXRpb25fcHJvbXB0JTNEJTIyJTNDbmV3MSUzRSUyMGNhdCUyMHNpdHRpbmclMjBpbiUyMGElMjBidWNrZXQlMjIlMjAlNUMlMEElMjAlMjAtLXJlcG9ydF90byUzRCUyMndhbmRiJTIyJTIwJTVDJTBBJTIwJTIwLS1wdXNoX3RvX2h1Yg==",highlighted:`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`,wrap:!1}}),D=new d({props:{title:"멀티 컨셉에 대한 학습 🐱🪵",local:"멀티-컨셉에-대한-학습-",headingTag:"h3"}}),K=new w({props:{code:"cGlwJTIwaW5zdGFsbCUyMGNsaXAtcmV0cmlldmFsJTBBcHl0aG9uJTIwcmV0cmlldmUucHklMjAtLWNsYXNzX3Byb21wdCUyMCU3QiU3RCUyMC0tY2xhc3NfZGF0YV9kaXIlMjAlN0IlN0QlMjAtLW51bV9jbGFzc19pbWFnZXMlMjAyMDA=",highlighted:`pip install clip-retrieval | |
| python retrieve.py --class_prompt {} --class_data_dir {} --num_class_images 200`,wrap:!1}}),lt=new w({props:{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMEFleHBvcnQlMjBPVVRQVVRfRElSJTNEJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTBBJTBBYWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX2N1c3RvbV9kaWZmdXNpb24ucHklMjAlNUMlMEElMjAlMjAtLXByZXRyYWluZWRfbW9kZWxfbmFtZV9vcl9wYXRoJTNEJTI0TU9ERUxfTkFNRSUyMCUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyNE9VVFBVVF9ESVIlMjAlNUMlMEElMjAlMjAtLWNvbmNlcHRzX2xpc3QlM0QuJTJGY29uY2VwdF9saXN0Lmpzb24lMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwLS1yZWFsX3ByaW9yJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tcmVzb2x1dGlvbiUzRDUxMiUyMCUyMCU1QyUwQSUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDIlMjAlMjAlNUMlMEElMjAlMjAtLWxlYXJuaW5nX3JhdGUlM0QxZS01JTIwJTIwJTVDJTBBJTIwJTIwLS1scl93YXJtdXBfc3RlcHMlM0QwJTIwJTVDJTBBJTIwJTIwLS1tYXhfdHJhaW5fc3RlcHMlM0Q1MDAlMjAlNUMlMEElMjAlMjAtLW51bV9jbGFzc19pbWFnZXMlM0QyMDAlMjAlNUMlMEElMjAlMjAtLXNjYWxlX2xyJTIwLS1oZmxpcCUyMCUyMCU1QyUwQSUyMCUyMC0tbW9kaWZpZXJfdG9rZW4lMjAlMjIlM0NuZXcxJTNFJTJCJTNDbmV3MiUzRSUyMiUyMCU1QyUwQSUyMCUyMC0tcHVzaF90b19odWI=",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`,wrap:!1}}),st=new d({props:{title:"사람 얼굴에 대한 학습",local:"사람-얼굴에-대한-학습",headingTag:"h3"}}),it=new w({props:{code:"cGlwJTIwaW5zdGFsbCUyMGNsaXAtcmV0cmlldmFsJTBBcHl0aG9uJTIwcmV0cmlldmUucHklMjAtLWNsYXNzX3Byb21wdCUyMHBlcnNvbiUyMC0tY2xhc3NfZGF0YV9kaXIlMjByZWFsX3JlZyUyRnNhbXBsZXNfcGVyc29uJTIwLS1udW1fY2xhc3NfaW1hZ2VzJTIwMjAw",highlighted:`pip install clip-retrieval | |
| python retrieve.py --class_prompt person --class_data_dir real_reg/samples_person --num_class_images 200`,wrap:!1}}),Mt=new w({props:{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMEFleHBvcnQlMjBPVVRQVVRfRElSJTNEJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTBBZXhwb3J0JTIwSU5TVEFOQ0VfRElSJTNEJTIycGF0aC10by1pbWFnZXMlMjIlMEElMEFhY2NlbGVyYXRlJTIwbGF1bmNoJTIwdHJhaW5fY3VzdG9tX2RpZmZ1c2lvbi5weSUyMCU1QyUwQSUyMCUyMC0tcHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglM0QlMjRNT0RFTF9OQU1FJTIwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9kYXRhX2RpciUzRCUyNElOU1RBTkNFX0RJUiUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyNE9VVFBVVF9ESVIlMjAlNUMlMEElMjAlMjAtLWNsYXNzX2RhdGFfZGlyJTNELiUyRnJlYWxfcmVnJTJGc2FtcGxlc19wZXJzb24lMkYlMjAlNUMlMEElMjAlMjAtLXdpdGhfcHJpb3JfcHJlc2VydmF0aW9uJTIwLS1yZWFsX3ByaW9yJTIwLS1wcmlvcl9sb3NzX3dlaWdodCUzRDEuMCUyMCU1QyUwQSUyMCUyMC0tY2xhc3NfcHJvbXB0JTNEJTIycGVyc29uJTIyJTIwLS1udW1fY2xhc3NfaW1hZ2VzJTNEMjAwJTIwJTVDJTBBJTIwJTIwLS1pbnN0YW5jZV9wcm9tcHQlM0QlMjJwaG90byUyMG9mJTIwYSUyMCUzQ25ldzElM0UlMjBwZXJzb24lMjIlMjAlMjAlNUMlMEElMjAlMjAtLXJlc29sdXRpb24lM0Q1MTIlMjAlMjAlNUMlMEElMjAlMjAtLXRyYWluX2JhdGNoX3NpemUlM0QyJTIwJTIwJTVDJTBBJTIwJTIwLS1sZWFybmluZ19yYXRlJTNENWUtNiUyMCUyMCU1QyUwQSUyMCUyMC0tbHJfd2FybXVwX3N0ZXBzJTNEMCUyMCU1QyUwQSUyMCUyMC0tbWF4X3RyYWluX3N0ZXBzJTNEMTAwMCUyMCU1QyUwQSUyMCUyMC0tc2NhbGVfbHIlMjAtLWhmbGlwJTIwLS1ub2F1ZyUyMCU1QyUwQSUyMCUyMC0tZnJlZXplX21vZGVsJTIwY3Jvc3NhdHRuJTIwJTVDJTBBJTIwJTIwLS1tb2RpZmllcl90b2tlbiUyMCUyMiUzQ25ldzElM0UlMjIlMjAlNUMlMEElMjAlMjAtLWVuYWJsZV94Zm9ybWVyc19tZW1vcnlfZWZmaWNpZW50X2F0dGVudGlvbiUyMCU1QyUwQSUyMCUyMC0tcHVzaF90b19odWI=",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">"path-to-images"</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_person/ \\ | |
| --with_prior_preservation --real_prior --prior_loss_weight=1.0 \\ | |
| --class_prompt=<span class="hljs-string">"person"</span> --num_class_images=200 \\ | |
| --instance_prompt=<span class="hljs-string">"photo of a <new1> person"</span> \\ | |
| --resolution=512 \\ | |
| --train_batch_size=2 \\ | |
| --learning_rate=5e-6 \\ | |
| --lr_warmup_steps=0 \\ | |
| --max_train_steps=1000 \\ | |
| --scale_lr --hflip --noaug \\ | |
| --freeze_model crossattn \\ | |
| --modifier_token <span class="hljs-string">"<new1>"</span> \\ | |
| --enable_xformers_memory_efficient_attention \\ | |
| --push_to_hub`,wrap:!1}}),mt=new d({props:{title:"추론",local:"추론",headingTag:"h2"}}),ct=new w({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMkNvbXBWaXMlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTQlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZS51bmV0LmxvYWRfYXR0bl9wcm9jcyglMjJwYXRoLXRvLXNhdmUtbW9kZWwlMjIlMkMlMjB3ZWlnaHRfbmFtZSUzRCUyMnB5dG9yY2hfY3VzdG9tX2RpZmZ1c2lvbl93ZWlnaHRzLmJpbiUyMiklMEFwaXBlLmxvYWRfdGV4dHVhbF9pbnZlcnNpb24oJTIycGF0aC10by1zYXZlLW1vZGVsJTIyJTJDJTIwd2VpZ2h0X25hbWUlM0QlMjIlM0NuZXcxJTNFLmJpbiUyMiklMEElMEFpbWFnZSUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwJTIyJTNDbmV3MSUzRSUyMGNhdCUyMHNpdHRpbmclMjBpbiUyMGElMjBidWNrZXQlMjIlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEMTAwJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0Q2LjAlMkMlMEElMjAlMjAlMjAlMjBldGElM0QxLjAlMkMlMEEpLmltYWdlcyU1QjAlNUQlMEFpbWFnZS5zYXZlKCUyMmNhdC5wbmclMjIp",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| pipe = DiffusionPipeline.from_pretrained(<span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipe.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>) | |
| pipe.load_textual_inversion(<span class="hljs-string">"path-to-save-model"</span>, weight_name=<span class="hljs-string">"<new1>.bin"</span>) | |
| image = pipe( | |
| <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>)`,wrap:!1}}),ft=new w({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViLnJlcG9jYXJkJTIwaW1wb3J0JTIwUmVwb0NhcmQlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFtb2RlbF9pZCUyMCUzRCUyMCUyMnNheWFrcGF1bCUyRmN1c3RvbS1kaWZmdXNpb24tY2F0JTIyJTBBY2FyZCUyMCUzRCUyMFJlcG9DYXJkLmxvYWQobW9kZWxfaWQpJTBBYmFzZV9tb2RlbF9pZCUyMCUzRCUyMGNhcmQuZGF0YS50b19kaWN0KCklNUIlMjJiYXNlX21vZGVsJTIyJTVEJTBBJTBBcGlwZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZChiYXNlX21vZGVsX2lkJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KS50byglMjJjdWRhJTIyKSUwQXBpcGUudW5ldC5sb2FkX2F0dG5fcHJvY3MobW9kZWxfaWQlMkMlMjB3ZWlnaHRfbmFtZSUzRCUyMnB5dG9yY2hfY3VzdG9tX2RpZmZ1c2lvbl93ZWlnaHRzLmJpbiUyMiklMEFwaXBlLmxvYWRfdGV4dHVhbF9pbnZlcnNpb24obW9kZWxfaWQlMkMlMjB3ZWlnaHRfbmFtZSUzRCUyMiUzQ25ldzElM0UuYmluJTIyKSUwQSUwQWltYWdlJTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjAlMjIlM0NuZXcxJTNFJTIwY2F0JTIwc2l0dGluZyUyMGluJTIwYSUyMGJ1Y2tldCUyMiUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0QxMDAlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDYuMCUyQyUwQSUyMCUyMCUyMCUyMGV0YSUzRDEuMCUyQyUwQSkuaW1hZ2VzJTVCMCU1RCUwQWltYWdlLnNhdmUoJTIyY2F0LnBuZyUyMik=",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 | |
| model_id = <span class="hljs-string">"sayakpaul/custom-diffusion-cat"</span> | |
| card = RepoCard.load(model_id) | |
| base_model_id = card.data.to_dict()[<span class="hljs-string">"base_model"</span>] | |
| pipe = DiffusionPipeline.from_pretrained(base_model_id, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipe.unet.load_attn_procs(model_id, weight_name=<span class="hljs-string">"pytorch_custom_diffusion_weights.bin"</span>) | |
| pipe.load_textual_inversion(model_id, weight_name=<span class="hljs-string">"<new1>.bin"</span>) | |
| image = pipe( | |
| <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>)`,wrap:!1}}),wt=new w({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViLnJlcG9jYXJkJTIwaW1wb3J0JTIwUmVwb0NhcmQlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFtb2RlbF9pZCUyMCUzRCUyMCUyMnNheWFrcGF1bCUyRmN1c3RvbS1kaWZmdXNpb24tY2F0LXdvb2Rlbi1wb3QlMjIlMEFjYXJkJTIwJTNEJTIwUmVwb0NhcmQubG9hZChtb2RlbF9pZCklMEFiYXNlX21vZGVsX2lkJTIwJTNEJTIwY2FyZC5kYXRhLnRvX2RpY3QoKSU1QiUyMmJhc2VfbW9kZWwlMjIlNUQlMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKGJhc2VfbW9kZWxfaWQlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZS51bmV0LmxvYWRfYXR0bl9wcm9jcyhtb2RlbF9pZCUyQyUyMHdlaWdodF9uYW1lJTNEJTIycHl0b3JjaF9jdXN0b21fZGlmZnVzaW9uX3dlaWdodHMuYmluJTIyKSUwQXBpcGUubG9hZF90ZXh0dWFsX2ludmVyc2lvbihtb2RlbF9pZCUyQyUyMHdlaWdodF9uYW1lJTNEJTIyJTNDbmV3MSUzRS5iaW4lMjIpJTBBcGlwZS5sb2FkX3RleHR1YWxfaW52ZXJzaW9uKG1vZGVsX2lkJTJDJTIwd2VpZ2h0X25hbWUlM0QlMjIlM0NuZXcyJTNFLmJpbiUyMiklMEElMEFpbWFnZSUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwJTIydGhlJTIwJTNDbmV3MSUzRSUyMGNhdCUyMHNjdWxwdHVyZSUyMGluJTIwdGhlJTIwc3R5bGUlMjBvZiUyMGElMjAlM0NuZXcyJTNFJTIwd29vZGVuJTIwcG90JTIyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDEwMCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENi4wJTJDJTBBJTIwJTIwJTIwJTIwZXRhJTNEMS4wJTJDJTBBKS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2Uuc2F2ZSglMjJtdWx0aS1zdWJqZWN0LnBuZyUyMik=",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 | |
| model_id = <span class="hljs-string">"sayakpaul/custom-diffusion-cat-wooden-pot"</span> | |
| card = RepoCard.load(model_id) | |
| base_model_id = card.data.to_dict()[<span class="hljs-string">"base_model"</span>] | |
| pipe = DiffusionPipeline.from_pretrained(base_model_id, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipe.unet.load_attn_procs(model_id, weight_name=<span class="hljs-string">"pytorch_custom_diffusion_weights.bin"</span>) | |
| pipe.load_textual_inversion(model_id, weight_name=<span class="hljs-string">"<new1>.bin"</span>) | |
| pipe.load_textual_inversion(model_id, weight_name=<span class="hljs-string">"<new2>.bin"</span>) | |
| image = pipe( | |
| <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>)`,wrap:!1}}),yt=new d({props:{title:"학습된 체크포인트에서 추론하기",local:"학습된-체크포인트에서-추론하기",headingTag:"h3"}}),Jt=new d({props:{title:"Grads를 None으로 설정",local:"grads를-none으로-설정",headingTag:"h2"}}),ht=new d({props:{title:"실험 결과",local:"실험-결과",headingTag:"h2"}}),jt=new Ie({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/training/custom_diffusion.md"}}),{c(){y=i("meta"),It=a(),Ct=i("p"),Nt=a(),m(U.$$.fragment),$t=a(),J=i("p"),J.innerHTML=Fl,Wt=a(),T=i("p"),T.innerHTML=xl,gt=a(),m(b.$$.fragment),Xt=a(),m(h.$$.fragment),Rt=a(),_=i("p"),_.textContent=Bl,Vt=a(),j=i("p"),j.innerHTML=Ll,Et=a(),C=i("p"),C.innerHTML=Yl,Gt=a(),m(Z.$$.fragment),vt=a(),I=i("p"),I.innerHTML=zl,Ft=a(),m(N.$$.fragment),xt=a(),$=i("p"),$.textContent=kl,Bt=a(),m(W.$$.fragment),Lt=a(),g=i("p"),g.innerHTML=Sl,Yt=a(),m(X.$$.fragment),zt=a(),R=i("p"),R.textContent=Ql,kt=a(),m(V.$$.fragment),St=a(),E=i("p"),E.textContent=Al,Qt=a(),m(G.$$.fragment),At=a(),m(v.$$.fragment),Ht=a(),F=i("p"),F.innerHTML=Hl,qt=a(),x=i("p"),x.innerHTML=ql,Dt=a(),m(B.$$.fragment),Pt=a(),L=i("p"),L.innerHTML=Dl,Ot=a(),Y=i("p"),Y.innerHTML=Pl,Kt=a(),m(z.$$.fragment),tl=a(),k=i("p"),k.innerHTML=Ol,ll=a(),S=i("p"),S.innerHTML=Kl,el=a(),Q=i("ul"),Q.innerHTML=te,sl=a(),m(A.$$.fragment),al=a(),H=i("p"),H.innerHTML=le,nl=a(),q=i("p"),q.innerHTML=ee,il=a(),m(D.$$.fragment),pl=a(),P=i("p"),P.innerHTML=se,Ml=a(),O=i("p"),O.textContent=ae,ml=a(),m(K.$$.fragment),ol=a(),tt=i("p"),tt.textContent=ne,cl=a(),m(lt.$$.fragment),rl=a(),et=i("p"),et.innerHTML=ie,fl=a(),m(st.$$.fragment),ul=a(),at=i("p"),at.innerHTML=pe,wl=a(),nt=i("p"),nt.textContent=Me,dl=a(),m(it.$$.fragment),yl=a(),pt=i("p"),pt.textContent=me,Ul=a(),m(Mt.$$.fragment),Jl=a(),m(mt.$$.fragment),Tl=a(),ot=i("p"),ot.textContent=oe,bl=a(),m(ct.$$.fragment),hl=a(),rt=i("p"),rt.textContent=ce,_l=a(),m(ft.$$.fragment),jl=a(),ut=i("p"),ut.textContent=re,Cl=a(),m(wt.$$.fragment),Zl=a(),dt=i("p"),dt.textContent=fe,Il=a(),m(yt.$$.fragment),Nl=a(),Ut=i("p"),Ut.innerHTML=ue,$l=a(),m(Jt.$$.fragment),Wl=a(),Tt=i("p"),Tt.innerHTML=we,gl=a(),bt=i("p"),bt.innerHTML=de,Xl=a(),m(ht.$$.fragment),Rl=a(),_t=i("p"),_t.innerHTML=ye,Vl=a(),m(jt.$$.fragment),El=a(),Zt=i("p"),this.h()},l(t){const l=Ce("svelte-u9bgzb",document.head);y=p(l,"META",{name:!0,content:!0}),l.forEach(e),It=n(t),Ct=p(t,"P",{}),Ue(Ct).forEach(e),Nt=n(t),o(U.$$.fragment,t),$t=n(t),J=p(t,"P",{"data-svelte-h":!0}),M(J)!=="svelte-2ebn3g"&&(J.innerHTML=Fl),Wt=n(t),T=p(t,"P",{"data-svelte-h":!0}),M(T)!=="svelte-10e22jc"&&(T.innerHTML=xl),gt=n(t),o(b.$$.fragment,t),Xt=n(t),o(h.$$.fragment,t),Rt=n(t),_=p(t,"P",{"data-svelte-h":!0}),M(_)!=="svelte-xj6xw"&&(_.textContent=Bl),Vt=n(t),j=p(t,"P",{"data-svelte-h":!0}),M(j)!=="svelte-kmsm4y"&&(j.innerHTML=Ll),Et=n(t),C=p(t,"P",{"data-svelte-h":!0}),M(C)!=="svelte-od6hhu"&&(C.innerHTML=Yl),Gt=n(t),o(Z.$$.fragment,t),vt=n(t),I=p(t,"P",{"data-svelte-h":!0}),M(I)!=="svelte-y8wn8i"&&(I.innerHTML=zl),Ft=n(t),o(N.$$.fragment,t),xt=n(t),$=p(t,"P",{"data-svelte-h":!0}),M($)!=="svelte-1vcow5r"&&($.textContent=kl),Bt=n(t),o(W.$$.fragment,t),Lt=n(t),g=p(t,"P",{"data-svelte-h":!0}),M(g)!=="svelte-1m4i3jt"&&(g.innerHTML=Sl),Yt=n(t),o(X.$$.fragment,t),zt=n(t),R=p(t,"P",{"data-svelte-h":!0}),M(R)!=="svelte-12kxokf"&&(R.textContent=Ql),kt=n(t),o(V.$$.fragment,t),St=n(t),E=p(t,"P",{"data-svelte-h":!0}),M(E)!=="svelte-1094f9w"&&(E.textContent=Al),Qt=n(t),o(G.$$.fragment,t),At=n(t),o(v.$$.fragment,t),Ht=n(t),F=p(t,"P",{"data-svelte-h":!0}),M(F)!=="svelte-1hl0glm"&&(F.innerHTML=Hl),qt=n(t),x=p(t,"P",{"data-svelte-h":!0}),M(x)!=="svelte-1em9a98"&&(x.innerHTML=ql),Dt=n(t),o(B.$$.fragment,t),Pt=n(t),L=p(t,"P",{"data-svelte-h":!0}),M(L)!=="svelte-6lkpti"&&(L.innerHTML=Dl),Ot=n(t),Y=p(t,"P",{"data-svelte-h":!0}),M(Y)!=="svelte-sf3x1d"&&(Y.innerHTML=Pl),Kt=n(t),o(z.$$.fragment,t),tl=n(t),k=p(t,"P",{"data-svelte-h":!0}),M(k)!=="svelte-cfu7qy"&&(k.innerHTML=Ol),ll=n(t),S=p(t,"P",{"data-svelte-h":!0}),M(S)!=="svelte-1cdkqys"&&(S.innerHTML=Kl),el=n(t),Q=p(t,"UL",{"data-svelte-h":!0}),M(Q)!=="svelte-1ptamfu"&&(Q.innerHTML=te),sl=n(t),o(A.$$.fragment,t),al=n(t),H=p(t,"P",{"data-svelte-h":!0}),M(H)!=="svelte-1gf7cxo"&&(H.innerHTML=le),nl=n(t),q=p(t,"P",{"data-svelte-h":!0}),M(q)!=="svelte-1jkha3u"&&(q.innerHTML=ee),il=n(t),o(D.$$.fragment,t),pl=n(t),P=p(t,"P",{"data-svelte-h":!0}),M(P)!=="svelte-dvorqa"&&(P.innerHTML=se),Ml=n(t),O=p(t,"P",{"data-svelte-h":!0}),M(O)!=="svelte-22dnkf"&&(O.textContent=ae),ml=n(t),o(K.$$.fragment,t),ol=n(t),tt=p(t,"P",{"data-svelte-h":!0}),M(tt)!=="svelte-1ls580o"&&(tt.textContent=ne),cl=n(t),o(lt.$$.fragment,t),rl=n(t),et=p(t,"P",{"data-svelte-h":!0}),M(et)!=="svelte-9w5zdp"&&(et.innerHTML=ie),fl=n(t),o(st.$$.fragment,t),ul=n(t),at=p(t,"P",{"data-svelte-h":!0}),M(at)!=="svelte-x3ps4s"&&(at.innerHTML=pe),wl=n(t),nt=p(t,"P",{"data-svelte-h":!0}),M(nt)!=="svelte-1baklot"&&(nt.textContent=Me),dl=n(t),o(it.$$.fragment,t),yl=n(t),pt=p(t,"P",{"data-svelte-h":!0}),M(pt)!=="svelte-1hae69m"&&(pt.textContent=me),Ul=n(t),o(Mt.$$.fragment,t),Jl=n(t),o(mt.$$.fragment,t),Tl=n(t),ot=p(t,"P",{"data-svelte-h":!0}),M(ot)!=="svelte-1fnfhx0"&&(ot.textContent=oe),bl=n(t),o(ct.$$.fragment,t),hl=n(t),rt=p(t,"P",{"data-svelte-h":!0}),M(rt)!=="svelte-1kgsue9"&&(rt.textContent=ce),_l=n(t),o(ft.$$.fragment,t),jl=n(t),ut=p(t,"P",{"data-svelte-h":!0}),M(ut)!=="svelte-1rk20g1"&&(ut.textContent=re),Cl=n(t),o(wt.$$.fragment,t),Zl=n(t),dt=p(t,"P",{"data-svelte-h":!0}),M(dt)!=="svelte-d3qkpz"&&(dt.textContent=fe),Il=n(t),o(yt.$$.fragment,t),Nl=n(t),Ut=p(t,"P",{"data-svelte-h":!0}),M(Ut)!=="svelte-13dw6tk"&&(Ut.innerHTML=ue),$l=n(t),o(Jt.$$.fragment,t),Wl=n(t),Tt=p(t,"P",{"data-svelte-h":!0}),M(Tt)!=="svelte-eyi1ip"&&(Tt.innerHTML=we),gl=n(t),bt=p(t,"P",{"data-svelte-h":!0}),M(bt)!=="svelte-1q8lr5q"&&(bt.innerHTML=de),Xl=n(t),o(ht.$$.fragment,t),Rl=n(t),_t=p(t,"P",{"data-svelte-h":!0}),M(_t)!=="svelte-awcruk"&&(_t.innerHTML=ye),Vl=n(t),o(jt.$$.fragment,t),El=n(t),Zt=p(t,"P",{}),Ue(Zt).forEach(e),this.h()},h(){Je(y,"name","hf:doc:metadata"),Je(y,"content",$e)},m(t,l){Ze(document.head,y),s(t,It,l),s(t,Ct,l),s(t,Nt,l),c(U,t,l),s(t,$t,l),s(t,J,l),s(t,Wt,l),s(t,T,l),s(t,gt,l),c(b,t,l),s(t,Xt,l),c(h,t,l),s(t,Rt,l),s(t,_,l),s(t,Vt,l),s(t,j,l),s(t,Et,l),s(t,C,l),s(t,Gt,l),c(Z,t,l),s(t,vt,l),s(t,I,l),s(t,Ft,l),c(N,t,l),s(t,xt,l),s(t,$,l),s(t,Bt,l),c(W,t,l),s(t,Lt,l),s(t,g,l),s(t,Yt,l),c(X,t,l),s(t,zt,l),s(t,R,l),s(t,kt,l),c(V,t,l),s(t,St,l),s(t,E,l),s(t,Qt,l),c(G,t,l),s(t,At,l),c(v,t,l),s(t,Ht,l),s(t,F,l),s(t,qt,l),s(t,x,l),s(t,Dt,l),c(B,t,l),s(t,Pt,l),s(t,L,l),s(t,Ot,l),s(t,Y,l),s(t,Kt,l),c(z,t,l),s(t,tl,l),s(t,k,l),s(t,ll,l),s(t,S,l),s(t,el,l),s(t,Q,l),s(t,sl,l),c(A,t,l),s(t,al,l),s(t,H,l),s(t,nl,l),s(t,q,l),s(t,il,l),c(D,t,l),s(t,pl,l),s(t,P,l),s(t,Ml,l),s(t,O,l),s(t,ml,l),c(K,t,l),s(t,ol,l),s(t,tt,l),s(t,cl,l),c(lt,t,l),s(t,rl,l),s(t,et,l),s(t,fl,l),c(st,t,l),s(t,ul,l),s(t,at,l),s(t,wl,l),s(t,nt,l),s(t,dl,l),c(it,t,l),s(t,yl,l),s(t,pt,l),s(t,Ul,l),c(Mt,t,l),s(t,Jl,l),c(mt,t,l),s(t,Tl,l),s(t,ot,l),s(t,bl,l),c(ct,t,l),s(t,hl,l),s(t,rt,l),s(t,_l,l),c(ft,t,l),s(t,jl,l),s(t,ut,l),s(t,Cl,l),c(wt,t,l),s(t,Zl,l),s(t,dt,l),s(t,Il,l),c(yt,t,l),s(t,Nl,l),s(t,Ut,l),s(t,$l,l),c(Jt,t,l),s(t,Wl,l),s(t,Tt,l),s(t,gl,l),s(t,bt,l),s(t,Xl,l),c(ht,t,l),s(t,Rl,l),s(t,_t,l),s(t,Vl,l),c(jt,t,l),s(t,El,l),s(t,Zt,l),Gl=!0},p:be,i(t){Gl||(r(U.$$.fragment,t),r(b.$$.fragment,t),r(h.$$.fragment,t),r(Z.$$.fragment,t),r(N.$$.fragment,t),r(W.$$.fragment,t),r(X.$$.fragment,t),r(V.$$.fragment,t),r(G.$$.fragment,t),r(v.$$.fragment,t),r(B.$$.fragment,t),r(z.$$.fragment,t),r(A.$$.fragment,t),r(D.$$.fragment,t),r(K.$$.fragment,t),r(lt.$$.fragment,t),r(st.$$.fragment,t),r(it.$$.fragment,t),r(Mt.$$.fragment,t),r(mt.$$.fragment,t),r(ct.$$.fragment,t),r(ft.$$.fragment,t),r(wt.$$.fragment,t),r(yt.$$.fragment,t),r(Jt.$$.fragment,t),r(ht.$$.fragment,t),r(jt.$$.fragment,t),Gl=!0)},o(t){f(U.$$.fragment,t),f(b.$$.fragment,t),f(h.$$.fragment,t),f(Z.$$.fragment,t),f(N.$$.fragment,t),f(W.$$.fragment,t),f(X.$$.fragment,t),f(V.$$.fragment,t),f(G.$$.fragment,t),f(v.$$.fragment,t),f(B.$$.fragment,t),f(z.$$.fragment,t),f(A.$$.fragment,t),f(D.$$.fragment,t),f(K.$$.fragment,t),f(lt.$$.fragment,t),f(st.$$.fragment,t),f(it.$$.fragment,t),f(Mt.$$.fragment,t),f(mt.$$.fragment,t),f(ct.$$.fragment,t),f(ft.$$.fragment,t),f(wt.$$.fragment,t),f(yt.$$.fragment,t),f(Jt.$$.fragment,t),f(ht.$$.fragment,t),f(jt.$$.fragment,t),Gl=!1},d(t){t&&(e(It),e(Ct),e(Nt),e($t),e(J),e(Wt),e(T),e(gt),e(Xt),e(Rt),e(_),e(Vt),e(j),e(Et),e(C),e(Gt),e(vt),e(I),e(Ft),e(xt),e($),e(Bt),e(Lt),e(g),e(Yt),e(zt),e(R),e(kt),e(St),e(E),e(Qt),e(At),e(Ht),e(F),e(qt),e(x),e(Dt),e(Pt),e(L),e(Ot),e(Y),e(Kt),e(tl),e(k),e(ll),e(S),e(el),e(Q),e(sl),e(al),e(H),e(nl),e(q),e(il),e(pl),e(P),e(Ml),e(O),e(ml),e(ol),e(tt),e(cl),e(rl),e(et),e(fl),e(ul),e(at),e(wl),e(nt),e(dl),e(yl),e(pt),e(Ul),e(Jl),e(Tl),e(ot),e(bl),e(hl),e(rt),e(_l),e(jl),e(ut),e(Cl),e(Zl),e(dt),e(Il),e(Nl),e(Ut),e($l),e(Wl),e(Tt),e(gl),e(bt),e(Xl),e(Rl),e(_t),e(Vl),e(El),e(Zt)),e(y),u(U,t),u(b,t),u(h,t),u(Z,t),u(N,t),u(W,t),u(X,t),u(V,t),u(G,t),u(v,t),u(B,t),u(z,t),u(A,t),u(D,t),u(K,t),u(lt,t),u(st,t),u(it,t),u(Mt,t),u(mt,t),u(ct,t),u(ft,t),u(wt,t),u(yt,t),u(Jt,t),u(ht,t),u(jt,t)}}}const $e='{"title":"커스텀 Diffusion 학습 예제","local":"커스텀-diffusion-학습-예제","sections":[{"title":"로컬에서 PyTorch로 실행하기","local":"로컬에서-pytorch로-실행하기","sections":[{"title":"Dependencies 설치하기","local":"dependencies-설치하기","sections":[],"depth":3},{"title":"고양이 예제 😺","local":"고양이-예제-","sections":[],"depth":3},{"title":"멀티 컨셉에 대한 학습 🐱🪵","local":"멀티-컨셉에-대한-학습-","sections":[],"depth":3},{"title":"사람 얼굴에 대한 학습","local":"사람-얼굴에-대한-학습","sections":[],"depth":3}],"depth":2},{"title":"추론","local":"추론","sections":[{"title":"학습된 체크포인트에서 추론하기","local":"학습된-체크포인트에서-추론하기","sections":[],"depth":3}],"depth":2},{"title":"Grads를 None으로 설정","local":"grads를-none으로-설정","sections":[],"depth":2},{"title":"실험 결과","local":"실험-결과","sections":[],"depth":2}],"depth":1}';function We(vl){return he(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ee extends _e{constructor(y){super(),je(this,y,We,Ne,Te,{})}}export{Ee as component}; | |
Xet Storage Details
- Size:
- 38.1 kB
- Xet hash:
- 8f4657ea01e35e824ab50f64019591dd9b4cb8d2dea21604e78514163a5fdaab
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.