Image to Image
Image to Image
Image to Image는 입력 이미지를 가져와 출력 이미지로 변환하는 작업입니다.
이러한 유형의 작업은 스타일 전송, 색상화, 초고해상도 등과 같은 다양한 상황에 적용할 수 있습니다.
!wget https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg/660px-Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg -O ./dataset/mountain.jpg
--2024-05-19 17:10:06-- https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg/660px-Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg
Resolving upload.wikimedia.org (upload.wikimedia.org)... 103.102.166.240, 2001:df2:e500:ed1a::2:b
Connecting to upload.wikimedia.org (upload.wikimedia.org)|103.102.166.240|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 98683 (96K) [image/jpeg]
Saving to: ‘./dataset/mountain.jpg’
./dataset/mountain. 100%[===================>] 96.37K 493KB/s in 0.2s
2024-05-19 17:10:07 (493 KB/s) - ‘./dataset/mountain.jpg’ saved [98683/98683]
import torch
from PIL import Image
from diffusers import StableDiffusionImg2ImgPipeline
model_id_or_path = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
model_id_or_path,
torch_dtype=torch.float32
)
pipe = pipe.to("cuda")
init_image = Image.open("dataset/mountain.jpg").convert("RGB").resize((768, 512))
init_image
/home/kubwa/anaconda3/envs/pytorch/lib/python3.11/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.
warnings.warn(
model_index.json: 0%| | 0.00/541 [00:00<?, ?B/s]
Fetching 15 files: 0%| | 0/15 [00:00<?, ?it/s]
model.safetensors: 0%| | 0.00/1.22G [00:00<?, ?B/s]
model.safetensors: 0%| | 0.00/492M [00:00<?, ?B/s]
(…)ature_extractor/preprocessor_config.json: 0%| | 0.00/342 [00:00<?, ?B/s]
scheduler/scheduler_config.json: 0%| | 0.00/308 [00:00<?, ?B/s]
tokenizer/special_tokens_map.json: 0%| | 0.00/472 [00:00<?, ?B/s]
text_encoder/config.json: 0%| | 0.00/617 [00:00<?, ?B/s]
tokenizer/merges.txt: 0%| | 0.00/525k [00:00<?, ?B/s]
safety_checker/config.json: 0%| | 0.00/4.72k [00:00<?, ?B/s]
diffusion_pytorch_model.safetensors: 0%| | 0.00/3.44G [00:00<?, ?B/s]
tokenizer/vocab.json: 0%| | 0.00/1.06M [00:00<?, ?B/s]
unet/config.json: 0%| | 0.00/743 [00:00<?, ?B/s]
tokenizer/tokenizer_config.json: 0%| | 0.00/806 [00:00<?, ?B/s]
vae/config.json: 0%| | 0.00/547 [00:00<?, ?B/s]
diffusion_pytorch_model.safetensors: 0%| | 0.00/335M [00:00<?, ?B/s]
Loading pipeline components...: 0%| | 0/7 [00:00<?, ?it/s]
prompt=prompt
: 변환을 안내하는 텍스트 프롬프트입니다.image=init_imag
: 변환할 초기 이미지입니다. 이전 코드 스니펫에서 로드되고 처리된 이미지입니다.strength=0.7
: 이 매개변수는 프롬프트에서 생성된 측면으로 원본 이미지가 변경되는 정도를 제어합니다. 값이 0.75이면 원본 이미지의 일부 요소는 그대로 유지하면서 상당한 변형이 이루어짐을 나타냅니다.guidance_scale=7.
: 생성된 이미지가 프롬프트와 얼마나 밀접하게 일치해야 하는지에 영향을 주는 요소입니다. 값이 클수록 텍스트 프롬프트를 더 강하게 준수하게 되므로 결과물의 창의성이나 다양성이 저하될 위험이 있습니다.
prompt = "A fantasy landscape, trending on artstation"
images = pipe(
prompt=prompt,
image=init_image,
strength=0.75,
guidance_scale=7.5).images
images[0]
0%| | 0/37 [00:00<?, ?it/s]
Last updated