IT정보/AI(이미지, LLM 등)

[ ComfyUI ] Img2Img의 기본 내용 살펴보기

카루루1007 2024. 8. 26. 13:58
728x90
반응형

지난 블로그에서 살펴본 내용들은

기본적으로 텍스트를 기반으로 이미지를 생성하는 Txt2img 방식이었습니다.

 

이번에는 기본 이미지에서 새로운 이미지를 만들어내는 Img2img를 

ComfyUI에서 어떻게 사용하는지 간단하게 알아보겠습니다.

 

[ ComfyUI ] ComfyUI 기본 사용 방법, ComfyUI 시작하기

[ ComfyUI ] KSampler 알아보기, 기본 구성 알아보기

728x90

 준비사항

 

먼저 기본이 될 이미지를 생성해 보겠습니다.

Stablility Matrix의 Model Browser에서 만화풍의 그림을 그려주는 체크포인트를 하나 다운로드하였습니다.

사용한 CheckPoint 모델은 Stalight XL 모델입니다.

Stable Matrix에 관한 간단한 소개를 여기를 참고하세요.

 

그다음 ComfyUI를 실행 또는 재시작을 한 후 이미지를 생성하겠습니다.

그전에 처음 사용하는 CheckPoint 모델이므로 해당 모델에 관한 내용을 알아보겠습니다.

Stablility Matrix에서 해당 모델을 마우스 우클릭하면 Civitai 사이트로 이동할 수 있습니다.

 

해당 페이지에 가서 Show More를 눌러 내용을 살펴보니

Sampler는 DPM++ 3M SDE Karras를 사용하고

Steps는 25~65 사이 약 40 정도

CFG는 3~5 사이 약 3.6 정도

그리고 이미지 크기는 832x1248 / 1360x768 / 912x1144 / 1024x1024

이렇게 세팅하고 사용하길 권장하고 있습니다.

 

해당 모델 페이지에 있는 간단한 프롬프트를 입력하고

권장하는 세팅값을 사용해서 이미지를 생성해 보겠습니다.

 

아래와 같이 설정하고 이미지를 생성했더니 귀여운 아이의 얼굴이 나타났습니다.

 

 

 이미지에서 이미지 만들어보기

 

기존에는 비어있는 Latent Image에서 이미지를 생성했습니다.

즉, 빈 도화지에 그림을 그렸습니다.

하지만 img2img는 그림을 기반으로 새로운 그림을 만드는 것입니다.

 

따라서 아래 그림의 빨간 네모 부분에 이미지가 들어가면 됩니다.

 

위 그림의 빨간 네모의 Empty Latent Image 노드를 삭제하고

이미지를 넣는 Load Image 노드를 추가하면 됩니다.

 

노드 삭제는 해당 노드에 마우스 우클릭 후 Remove를 누르시면 됩니다.

 

반응형

그다음 노드를 추가해 보겠습니다.

노드를 추가하는 방법 중 하나는 빈 화면에 마우스 우클릭을 해서

하나씩 찾아가는 방법이 있습니다.

아래 그림과 같이 Load Image 노드를 추가해 보겠습니다.

 

Load Image 노드가 생성되었으면 이제 이미지를 드래그하여 Load Image 노드에 넣습니다.

 

이 노드를 KSampler 노드의 latent_image 입력에 연결을 하면 됩니다.

하지만 연결이 되지 않습니다.

앞서 노드의 출력과 입력을 연결하려면 같은 색끼리만 연결이 가능하다고 말씀드렸습니다.

 

우선 불러온 이미지를 Latent_image로 바꾸어 주어야 합니다.

기본 노드에서 Latent_image를 최종 이미지로 바꾸어주는 노드가 VAE Decode 노드였습니다.

그럼 우리가 보는 이미지를 Latent_image로 바꾸어 주는 것은

VAE Encode일 것입니다.

 

VAE Encode 노드를 하나 더 추가합니다.

노드를 추가하는 다른 방법빈 공간을 마우스 더블클릭하는 방법이 있습니다.

아래 그림과 같이 검색해서 VAE Encode 노드를 추가해 줍니다.

 

그럼 아래 그림과 같이 됩니다.

 

같은 색의 원끼리 연결을 해주고

vae는 맨 처음 Load Checkpoint 노드에서 끌어와 연결을 해줍니다.

KSampler 노드에 있는 그림은 신경 쓰지 않으셔도 됩니다.

기존에 이미지를 생성했기 때문에 그림이 남아있는 것입니다.

 

이미지의 변화를 알아보기 위해 CheckPoint 모델을 바꾸어 보겠습니다.

juggemautXL 모델로 바꾸어 보았습니다.

그 외 설정은 건드리지 않았습니다.

 

그다음 Queue Prompt를 눌러 이미지를 한번 생성해 보겠습니다.

아래 그림의 좌측은 기존 이미지이고 우측은 변경된 이미지입니다.

 

여기서 KSampler의 denoise값을 줄이면 원본 이미지와 비슷한 이미지가 나타납니다.

기존에는 빈 도화지에서 이미지를 만들어 노이즈를 제거하였으므로 denoise 값이 낮으면

그림이 이상하게 나타났지만,

지금은 기존이미지가 Latent_image가 되어 노이즈 제거를 덜 하면 기존 이미지에 가깝게 나타납니다.

denoise값을 0.5로 만들고 이미지를 만들어 보겠습니다.

 

아래 그림의 좌측은 기존 이미지이고, 우측은 denoise값을 0.5로 하여 만든 이미지입니다.

 

전체적인 형태가 더 원본 이미지와 유사하게 나온 것 같습니다.

juggemautXL 모델은 실사에 가깝게 그려주는 모델이고

Stalight XL 모델은 약간 3D 애니메이션 화풍입니다.

 

애니메이션 형태의 화풍을 구도와 모양을 어느 정도 유지하면서 실사 이미지로 변환을 해 주었습니다.

이렇게 이미지에서 새로운 이미지를 만들 수 있습니다.

 

728x90
반응형