Buckets:
| import"../chunks/DsnmJJEf.js";import{i as R,h as C,C as I,H as e,a,E as X,s as N}from"../chunks/CFM6C53a.js";import{p as Y,o as B,s as l,f as G,a as f,b as Q,c as W,n as V}from"../chunks/CNc7KuUZ.js";const S='{"title":"InstructPix2Pix","local":"instructpix2pix","sections":[{"title":"PyTorch로 로컬에서 실행하기","local":"pytorch로-로컬에서-실행하기","sections":[{"title":"종속성(dependencies) 설치하기","local":"종속성dependencies-설치하기","sections":[],"depth":3},{"title":"예시","local":"예시","sections":[],"depth":3}],"depth":2},{"title":"다수의 GPU로 학습하기","local":"다수의-gpu로-학습하기","sections":[],"depth":2},{"title":"추론하기","local":"추론하기","sections":[],"depth":2}],"depth":1}';var F=W('<meta name="hf:doc:metadata"/>'),E=W('<p></p> <!> <!> <p><a href="https://huggingface.co/papers/2211.09800" rel="nofollow">InstructPix2Pix</a>는 text-conditioned diffusion 모델이 한 이미지에 편집을 따를 수 있도록 파인튜닝하는 방법입니다. 이 방법을 사용하여 파인튜닝된 모델은 다음을 입력으로 사용합니다:</p> <p align="center"><img src="https://huggingface.co/datasets/diffusers/docs-images/resolve/main/evaluation_diffusion_models/edit-instruction.png" alt="instructpix2pix-inputs" width="600/"/></p> <p>출력은 입력 이미지에 편집 지시가 반영된 “수정된” 이미지입니다:</p> <p align="center"><img src="https://huggingface.co/datasets/diffusers/docs-images/resolve/main/output-gs%407-igs%401-steps%4050.png" alt="instructpix2pix-output" width="600/"/></p> <p><code>train_instruct_pix2pix.py</code> 스크립트(<a href="https://github.com/huggingface/diffusers/blob/main/examples/instruct_pix2pix/train_instruct_pix2pix.py" rel="nofollow">여기</a>에서 찾을 수 있습니다.)는 학습 절차를 설명하고 Stable Diffusion에 적용할 수 있는 방법을 보여줍니다.</p> <p>*** <code>train_instruct_pix2pix.py</code>는 <a href="https://github.com/timothybrooks/instruct-pix2pix" rel="nofollow">원래 구현</a>에 충실하면서 InstructPix2Pix 학습 절차를 구현하고 있지만, <a href="https://huggingface.co/datasets/fusing/instructpix2pix-1000-samples" rel="nofollow">소규모 데이터셋</a>에서만 테스트를 했습니다. 이는 최종 결과에 영향을 끼칠 수 있습니다. 더 나은 결과를 위해, 더 큰 데이터셋에서 더 길게 학습하는 것을 권장합니다. <a href="https://huggingface.co/datasets/timbrooks/instructpix2pix-clip-filtered" rel="nofollow">여기</a>에서 InstructPix2Pix 학습을 위해 큰 데이터셋을 찾을 수 있습니다.</p> <hr/> <!> <!> <p>이 스크립트를 실행하기 전에, 라이브러리의 학습 종속성을 설치하세요:</p> <p><strong>중요</strong></p> <p>최신 버전의 예제 스크립트를 성공적으로 실행하기 위해, <strong>원본으로부터 설치</strong>하는 것과 예제 스크립트를 자주 업데이트하고 예제별 요구사항을 설치하기 때문에 최신 상태로 유지하는 것을 권장합니다. 이를 위해, 새로운 가상 환경에서 다음 스텝을 실행하세요:</p> <!> <p>cd 명령어로 예제 폴더로 이동하세요.</p> <!> <p>이제 실행하세요.</p> <!> <p>그리고 <a href="https://github.com/huggingface/accelerate/" rel="nofollow">🤗Accelerate</a> 환경에서 초기화하세요:</p> <!> <p>혹은 환경에 대한 질문 없이 기본적인 accelerate 구성을 사용하려면 다음을 실행하세요.</p> <!> <p>혹은 사용 중인 환경이 notebook과 같은 대화형 쉘은 지원하지 않는 경우는 다음 절차를 따라주세요.</p> <!> <!> <p>이전에 언급했듯이, 학습을 위해 <a href="https://huggingface.co/datasets/fusing/instructpix2pix-1000-samples" rel="nofollow">작은 데이터셋</a>을 사용할 것입니다. 그 데이터셋은 InstructPix2Pix 논문에서 사용된 <a href="https://huggingface.co/datasets/timbrooks/instructpix2pix-clip-filtered" rel="nofollow">원래의 데이터셋</a>보다 작은 버전입니다. 자신의 데이터셋을 사용하기 위해, <a href="create_dataset">학습을 위한 데이터셋 만들기</a> 가이드를 참고하세요.</p> <p><code>MODEL_NAME</code> 환경 변수(허브 모델 레포지토리 또는 모델 가중치가 포함된 폴더 경로)를 지정하고 <a href="https://huggingface.co/docs/diffusers/en/api/diffusion_pipeline#diffusers.DiffusionPipeline.from_pretrained.pretrained_model_name_or_path" rel="nofollow"><code>pretrained_model_name_or_path</code></a> 인수에 전달합니다. <code>DATASET_ID</code>에 데이터셋 이름을 지정해야 합니다:</p> <!> <p>지금, 학습을 실행할 수 있습니다. 스크립트는 레포지토리의 하위 폴더의 모든 구성요소(<code>feature_extractor</code>, <code>scheduler</code>, <code>text_encoder</code>, <code>unet</code> 등)를 저장합니다.</p> <!> <p>추가적으로, 가중치와 바이어스를 학습 과정에 모니터링하여 검증 추론을 수행하는 것을 지원합니다. <code>report_to="wandb"</code>와 이 기능을 사용할 수 있습니다:</p> <!> <p>모델 디버깅에 유용한 이 평가 방법 권장합니다. 이를 사용하기 위해 <code>wandb</code>를 설치하는 것을 주목해주세요. <code>pip install wandb</code>로 실행해 <code>wandb</code>를 설치할 수 있습니다.</p> <p><a href="https://wandb.ai/sayakpaul/instruct-pix2pix/runs/ctr3kovq" rel="nofollow">여기</a>, 몇 가지 평가 방법과 학습 파라미터를 포함하는 예시를 볼 수 있습니다.</p> <p><strong><em>참고: 원본 논문에서, 저자들은 256x256 이미지 해상도로 학습한 모델로 512x512와 같은 더 큰 해상도로 잘 일반화되는 것을 볼 수 있었습니다. 이는 학습에 사용한 큰 데이터셋을 사용했기 때문입니다.</em></strong></p> <!> <p><code>accelerate</code>는 원활한 다수의 GPU로 학습을 가능하게 합니다. <code>accelerate</code>로 분산 학습을 실행하는 <a href="https://huggingface.co/docs/accelerate/basic_tutorials/launch" rel="nofollow">여기</a> 설명을 따라 해 주시기 바랍니다. 예시의 명령어 입니다:</p> <!> <!> <p>일단 학습이 완료되면, 추론 할 수 있습니다:</p> <!> <p>학습 스크립트를 사용해 얻은 예시의 모델 레포지토리는 여기 <a href="https://huggingface.co/sayakpaul/instruct-pix2pix" rel="nofollow">sayakpaul/instruct-pix2pix</a>에서 확인할 수 있습니다.</p> <p>성능을 위한 속도와 품질을 제어하기 위해 세 가지 파라미터를 사용하는 것이 좋습니다:</p> <ul><li><code>num_inference_steps</code></li> <li><code>image_guidance_scale</code></li> <li><code>guidance_scale</code></li></ul> <p>특히, <code>image_guidance_scale</code>와 <code>guidance_scale</code>는 생성된(“수정된”) 이미지에서 큰 영향을 미칠 수 있습니다.(<a href="https://twitter.com/RisingSayak/status/1628392199196151808?s=20" rel="nofollow">여기</a>예시를 참고해주세요.)</p> <p>만약 InstructPix2Pix 학습 방법을 사용해 몇 가지 흥미로운 방법을 찾고 있다면, 이 블로그 게시물<a href="https://huggingface.co/blog/instruction-tuning-sd" rel="nofollow">Instruction-tuning Stable Diffusion with InstructPix2Pix</a>을 확인해주세요.</p> <!> <p></p>',1);function z(Z,j){Y(j,!1),B(()=>{new URLSearchParams(window.location.search).get("fw")}),R();var t=E();C("bny2f6",b=>{var _=F();N(_,"content",S),f(b,_)});var s=l(G(t),2);I(s,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var n=l(s,2);e(n,{title:"InstructPix2Pix",local:"instructpix2pix",headingTag:"h1"});var i=l(n,16);e(i,{title:"PyTorch로 로컬에서 실행하기",local:"pytorch로-로컬에서-실행하기",headingTag:"h2"});var c=l(i,2);e(c,{title:"종속성(dependencies) 설치하기",local:"종속성dependencies-설치하기",headingTag:"h3"});var p=l(c,8);a(p,{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 .`,lang:"bash",wrap:!1});var o=l(p,4);a(o,{code:"Y2QlMjBleGFtcGxlcyUyRmluc3RydWN0X3BpeDJwaXg=",highlighted:'<span class="hljs-built_in">cd</span> examples/instruct_pix2pix',lang:"bash",wrap:!1});var d=l(o,4);a(d,{code:"cGlwJTIwaW5zdGFsbCUyMC1yJTIwcmVxdWlyZW1lbnRzLnR4dA==",highlighted:"pip install -r requirements.txt",lang:"bash",wrap:!1});var r=l(d,4);a(r,{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",lang:"bash",wrap:!1});var M=l(r,4);a(M,{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUyMGRlZmF1bHQ=",highlighted:"accelerate config default",lang:"bash",wrap:!1});var U=l(M,4);a(U,{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjB3cml0ZV9iYXNpY19jb25maWclMEElMEF3cml0ZV9iYXNpY19jb25maWcoKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> write_basic_config | |
| write_basic_config()`,lang:"python",wrap:!1});var y=l(U,2);e(y,{title:"예시",local:"예시",headingTag:"h3"});var u=l(y,6);a(u,{code:"ZXhwb3J0JTIwTU9ERUxfTkFNRSUzRCUyMnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyMiUwQWV4cG9ydCUyMERBVEFTRVRfSUQlM0QlMjJmdXNpbmclMkZpbnN0cnVjdHBpeDJwaXgtMTAwMC1zYW1wbGVzJTIy",highlighted:`<span class="hljs-built_in">export</span> MODEL_NAME=<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span> | |
| <span class="hljs-built_in">export</span> DATASET_ID=<span class="hljs-string">"fusing/instructpix2pix-1000-samples"</span>`,lang:"bash",wrap:!1});var h=l(u,4);a(h,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEJTIyZnAxNiUyMiUyMHRyYWluX2luc3RydWN0X3BpeDJwaXgucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLXByZXRyYWluZWRfbW9kZWxfbmFtZV9vcl9wYXRoJTNEJTI0TU9ERUxfTkFNRSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldF9uYW1lJTNEJTI0REFUQVNFVF9JRCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZW5hYmxlX3hmb3JtZXJzX21lbW9yeV9lZmZpY2llbnRfYXR0ZW50aW9uJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXNvbHV0aW9uJTNEMjU2JTIwLS1yYW5kb21fZmxpcCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDQlMjAtLWdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDQlMjAtLWdyYWRpZW50X2NoZWNrcG9pbnRpbmclMjAlNUMlMEElMjAlMjAlMjAlMjAtLW1heF90cmFpbl9zdGVwcyUzRDE1MDAwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1jaGVja3BvaW50aW5nX3N0ZXBzJTNENTAwMCUyMC0tY2hlY2twb2ludHNfdG90YWxfbGltaXQlM0QxJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1sZWFybmluZ19yYXRlJTNENWUtMDUlMjAtLW1heF9ncmFkX25vcm0lM0QxJTIwLS1scl93YXJtdXBfc3RlcHMlM0QwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1jb25kaXRpb25pbmdfZHJvcG91dF9wcm9iJTNEMC4wNSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEZnAxNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tc2VlZCUzRDQyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1wdXNoX3RvX2h1Yg==",highlighted:`accelerate launch --mixed_precision=<span class="hljs-string">"fp16"</span> train_instruct_pix2pix.py \\ | |
| --pretrained_model_name_or_path=<span class="hljs-variable">$MODEL_NAME</span> \\ | |
| --dataset_name=<span class="hljs-variable">$DATASET_ID</span> \\ | |
| --enable_xformers_memory_efficient_attention \\ | |
| --resolution=256 --random_flip \\ | |
| --train_batch_size=4 --gradient_accumulation_steps=4 --gradient_checkpointing \\ | |
| --max_train_steps=15000 \\ | |
| --checkpointing_steps=5000 --checkpoints_total_limit=1 \\ | |
| --learning_rate=5e-05 --max_grad_norm=1 --lr_warmup_steps=0 \\ | |
| --conditioning_dropout_prob=0.05 \\ | |
| --mixed_precision=fp16 \\ | |
| --seed=42 \\ | |
| --push_to_hub`,lang:"bash",wrap:!1});var m=l(h,4);a(m,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEJTIyZnAxNiUyMiUyMHRyYWluX2luc3RydWN0X3BpeDJwaXgucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLXByZXRyYWluZWRfbW9kZWxfbmFtZV9vcl9wYXRoJTNEJTI0TU9ERUxfTkFNRSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldF9uYW1lJTNEJTI0REFUQVNFVF9JRCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZW5hYmxlX3hmb3JtZXJzX21lbW9yeV9lZmZpY2llbnRfYXR0ZW50aW9uJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXNvbHV0aW9uJTNEMjU2JTIwLS1yYW5kb21fZmxpcCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDQlMjAtLWdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDQlMjAtLWdyYWRpZW50X2NoZWNrcG9pbnRpbmclMjAlNUMlMEElMjAlMjAlMjAlMjAtLW1heF90cmFpbl9zdGVwcyUzRDE1MDAwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1jaGVja3BvaW50aW5nX3N0ZXBzJTNENTAwMCUyMC0tY2hlY2twb2ludHNfdG90YWxfbGltaXQlM0QxJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1sZWFybmluZ19yYXRlJTNENWUtMDUlMjAtLW1heF9ncmFkX25vcm0lM0QxJTIwLS1scl93YXJtdXBfc3RlcHMlM0QwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1jb25kaXRpb25pbmdfZHJvcG91dF9wcm9iJTNEMC4wNSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEZnAxNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdmFsX2ltYWdlX3VybCUzRCUyMmh0dHBzJTNBJTJGJTJGaGYuY28lMkZkYXRhc2V0cyUyRmRpZmZ1c2VycyUyRmRpZmZ1c2Vycy1pbWFnZXMtZG9jcyUyRnJlc29sdmUlMkZtYWluJTJGbW91bnRhaW4ucG5nJTIyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS12YWxpZGF0aW9uX3Byb21wdCUzRCUyMm1ha2UlMjB0aGUlMjBtb3VudGFpbnMlMjBzbm93eSUyMiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tc2VlZCUzRDQyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXBvcnRfdG8lM0R3YW5kYiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcHVzaF90b19odWI=",highlighted:`accelerate launch --mixed_precision=<span class="hljs-string">"fp16"</span> train_instruct_pix2pix.py \\ | |
| --pretrained_model_name_or_path=<span class="hljs-variable">$MODEL_NAME</span> \\ | |
| --dataset_name=<span class="hljs-variable">$DATASET_ID</span> \\ | |
| --enable_xformers_memory_efficient_attention \\ | |
| --resolution=256 --random_flip \\ | |
| --train_batch_size=4 --gradient_accumulation_steps=4 --gradient_checkpointing \\ | |
| --max_train_steps=15000 \\ | |
| --checkpointing_steps=5000 --checkpoints_total_limit=1 \\ | |
| --learning_rate=5e-05 --max_grad_norm=1 --lr_warmup_steps=0 \\ | |
| --conditioning_dropout_prob=0.05 \\ | |
| --mixed_precision=fp16 \\ | |
| --val_image_url=<span class="hljs-string">"https://hf.co/datasets/diffusers/diffusers-images-docs/resolve/main/mountain.png"</span> \\ | |
| --validation_prompt=<span class="hljs-string">"make the mountains snowy"</span> \\ | |
| --seed=42 \\ | |
| --report_to=wandb \\ | |
| --push_to_hub`,lang:"bash",wrap:!1});var w=l(m,8);e(w,{title:"다수의 GPU로 학습하기",local:"다수의-gpu로-학습하기",headingTag:"h2"});var J=l(w,4);a(J,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEJTIyZnAxNiUyMiUyMC0tbXVsdGlfZ3B1JTIwdHJhaW5faW5zdHJ1Y3RfcGl4MnBpeC5weSUyMCU1QyUwQSUyMC0tcHJldHJhaW5lZF9tb2RlbF9uYW1lX29yX3BhdGglM0RzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTUlMjAlNUMlMEElMjAtLWRhdGFzZXRfbmFtZSUzRHNheWFrcGF1bCUyRmluc3RydWN0cGl4MnBpeC0xMDAwLXNhbXBsZXMlMjAlNUMlMEElMjAtLXVzZV9lbWElMjAlNUMlMEElMjAtLWVuYWJsZV94Zm9ybWVyc19tZW1vcnlfZWZmaWNpZW50X2F0dGVudGlvbiUyMCU1QyUwQSUyMC0tcmVzb2x1dGlvbiUzRDUxMiUyMC0tcmFuZG9tX2ZsaXAlMjAlNUMlMEElMjAtLXRyYWluX2JhdGNoX3NpemUlM0Q0JTIwLS1ncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlM0Q0JTIwLS1ncmFkaWVudF9jaGVja3BvaW50aW5nJTIwJTVDJTBBJTIwLS1tYXhfdHJhaW5fc3RlcHMlM0QxNTAwMCUyMCU1QyUwQSUyMC0tY2hlY2twb2ludGluZ19zdGVwcyUzRDUwMDAlMjAtLWNoZWNrcG9pbnRzX3RvdGFsX2xpbWl0JTNEMSUyMCU1QyUwQSUyMC0tbGVhcm5pbmdfcmF0ZSUzRDVlLTA1JTIwLS1scl93YXJtdXBfc3RlcHMlM0QwJTIwJTVDJTBBJTIwLS1jb25kaXRpb25pbmdfZHJvcG91dF9wcm9iJTNEMC4wNSUyMCU1QyUwQSUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEZnAxNiUyMCU1QyUwQSUyMC0tc2VlZCUzRDQyJTIwJTVDJTBBJTIwLS1wdXNoX3RvX2h1Yg==",highlighted:`accelerate launch --mixed_precision=<span class="hljs-string">"fp16"</span> --multi_gpu train_instruct_pix2pix.py \\ | |
| --pretrained_model_name_or_path=stable-diffusion-v1-5/stable-diffusion-v1-5 \\ | |
| --dataset_name=sayakpaul/instructpix2pix-1000-samples \\ | |
| --use_ema \\ | |
| --enable_xformers_memory_efficient_attention \\ | |
| --resolution=512 --random_flip \\ | |
| --train_batch_size=4 --gradient_accumulation_steps=4 --gradient_checkpointing \\ | |
| --max_train_steps=15000 \\ | |
| --checkpointing_steps=5000 --checkpoints_total_limit=1 \\ | |
| --learning_rate=5e-05 --lr_warmup_steps=0 \\ | |
| --conditioning_dropout_prob=0.05 \\ | |
| --mixed_precision=fp16 \\ | |
| --seed=42 \\ | |
| --push_to_hub`,lang:"bash",wrap:!1});var g=l(J,2);e(g,{title:"추론하기",local:"추론하기",headingTag:"h2"});var T=l(g,4);a(T,{code:"aW1wb3J0JTIwUElMJTBBaW1wb3J0JTIwcmVxdWVzdHMlMEFpbXBvcnQlMjB0b3JjaCUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBTdGFibGVEaWZmdXNpb25JbnN0cnVjdFBpeDJQaXhQaXBlbGluZSUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyeW91cl9tb2RlbF9pZCUyMiUyMCUyMCUyMyUyMCUzQy0lMjAlRUMlOUQlQjQlRUIlQTUlQkMlMjAlRUMlODglOTglRUMlQTAlOTUlRUQlOTUlOTglRUMlODQlQjglRUMlOUElOTQuJTBBcGlwZSUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvbkluc3RydWN0UGl4MlBpeFBpcGVsaW5lLmZyb21fcHJldHJhaW5lZChtb2RlbF9pZCUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNikudG8oJTIyY3VkYSUyMiklMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5HZW5lcmF0b3IoJTIyY3VkYSUyMikubWFudWFsX3NlZWQoMCklMEElMEF1cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZzYXlha3BhdWwlMkZzYW1wbGUtZGF0YXNldHMlMkZyZXNvbHZlJTJGbWFpbiUyRnRlc3RfcGl4MnBpeF80LnBuZyUyMiUwQSUwQSUwQWRlZiUyMGRvd25sb2FkX2ltYWdlKHVybCklM0ElMEElMjAlMjAlMjBpbWFnZSUyMCUzRCUyMFBJTC5JbWFnZS5vcGVuKHJlcXVlc3RzLmdldCh1cmwlMkMlMjBzdHJlYW0lM0RUcnVlKS5yYXcpJTBBJTIwJTIwJTIwaW1hZ2UlMjAlM0QlMjBQSUwuSW1hZ2VPcHMuZXhpZl90cmFuc3Bvc2UoaW1hZ2UpJTBBJTIwJTIwJTIwaW1hZ2UlMjAlM0QlMjBpbWFnZS5jb252ZXJ0KCUyMlJHQiUyMiklMEElMjAlMjAlMjByZXR1cm4lMjBpbWFnZSUwQSUwQSUwQWltYWdlJTIwJTNEJTIwZG93bmxvYWRfaW1hZ2UodXJsKSUwQXByb21wdCUyMCUzRCUyMCUyMndpcGUlMjBvdXQlMjB0aGUlMjBsYWtlJTIyJTBBbnVtX2luZmVyZW5jZV9zdGVwcyUyMCUzRCUyMDIwJTBBaW1hZ2VfZ3VpZGFuY2Vfc2NhbGUlMjAlM0QlMjAxLjUlMEFndWlkYW5jZV9zY2FsZSUyMCUzRCUyMDEwJTBBJTBBZWRpdGVkX2ltYWdlJTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjBpbWFnZSUzRGltYWdlJTJDJTBBJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRG51bV9pbmZlcmVuY2Vfc3RlcHMlMkMlMEElMjAlMjAlMjBpbWFnZV9ndWlkYW5jZV9zY2FsZSUzRGltYWdlX2d1aWRhbmNlX3NjYWxlJTJDJTBBJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0RndWlkYW5jZV9zY2FsZSUyQyUwQSUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUwQSkuaW1hZ2VzJTVCMCU1RCUwQWVkaXRlZF9pbWFnZS5zYXZlKCUyMmVkaXRlZF9pbWFnZS5wbmclMjIp",highlighted:`<span class="hljs-keyword">import</span> PIL | |
| <span class="hljs-keyword">import</span> requests | |
| <span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionInstructPix2PixPipeline | |
| model_id = <span class="hljs-string">"your_model_id"</span> <span class="hljs-comment"># <- 이를 수정하세요.</span> | |
| pipe = StableDiffusionInstructPix2PixPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| generator = torch.Generator(<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">0</span>) | |
| url = <span class="hljs-string">"https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/test_pix2pix_4.png"</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">download_image</span>(<span class="hljs-params">url</span>): | |
| image = PIL.Image.<span class="hljs-built_in">open</span>(requests.get(url, stream=<span class="hljs-literal">True</span>).raw) | |
| image = PIL.ImageOps.exif_transpose(image) | |
| image = image.convert(<span class="hljs-string">"RGB"</span>) | |
| <span class="hljs-keyword">return</span> image | |
| image = download_image(url) | |
| prompt = <span class="hljs-string">"wipe out the lake"</span> | |
| num_inference_steps = <span class="hljs-number">20</span> | |
| image_guidance_scale = <span class="hljs-number">1.5</span> | |
| guidance_scale = <span class="hljs-number">10</span> | |
| edited_image = pipe( | |
| prompt, | |
| image=image, | |
| num_inference_steps=num_inference_steps, | |
| image_guidance_scale=image_guidance_scale, | |
| guidance_scale=guidance_scale, | |
| generator=generator, | |
| ).images[<span class="hljs-number">0</span>] | |
| edited_image.save(<span class="hljs-string">"edited_image.png"</span>)`,lang:"python",wrap:!1});var x=l(T,12);X(x,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/training/instructpix2pix.md"}),V(2),f(Z,t),Q()}export{z as component}; | |
Xet Storage Details
- Size:
- 20 kB
- Xet hash:
- 44c5402f047940a2b0b1958a559de0d81e232303eabab30be8c8b6702d0ce967
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.