3️⃣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
  • prompt=prompt: 변환을 안내하는 텍스트 프롬프트입니다.

  • image=init_imag: 변환할 초기 이미지입니다. 이전 코드 스니펫에서 로드되고 처리된 이미지입니다.

  • strength=0.7: 이 매개변수는 프롬프트에서 생성된 측면으로 원본 이미지가 변경되는 정도를 제어합니다. 값이 0.75이면 원본 이미지의 일부 요소는 그대로 유지하면서 상당한 변형이 이루어짐을 나타냅니다.

  • guidance_scale=7.: 생성된 이미지가 프롬프트와 얼마나 밀접하게 일치해야 하는지에 영향을 주는 요소입니다. 값이 클수록 텍스트 프롬프트를 더 강하게 준수하게 되므로 결과물의 창의성이나 다양성이 저하될 위험이 있습니다.

Last updated