개념 정리
Checkpoint Model

Checkpoint Model

체크포인트는 .ckpt.safetensor로 끝나는 확장자를 가지며 이미지를 생성하기 위한 모델입니다.

.safetensor.ckpt파일에 악의적인 의도로 악성코드를 심어둘 수 있는 것을 방지한 모델 파일입니다. 두 파일의 이미지 생성에 대한 차이는 없습니다.

다운로드 받는 곳

주로 HuggingFace (opens in a new tab)라는 사이트와 Civitai (opens in a new tab)를 통해 다운로드 받습니다.

⚠️
Civitai는 NSFW (Not Safe For Work)이미지가 많습니다.

모델의 특징

주로 Unet, CLIP, VAE의 구성 요소로 이루어지며, 이름 뒤에 pruned, vae같은 것들이 붙기도 합니다.

각 모델이 학습된 방식에 따라 그로인해 생성되는 이미지의 구도, 색감, 스타일, 디테일, 사물 표현등은 천차 만별이며 모델별로 효과적인 프롬프트, 샘플러옵션들의 최적값들이 모두 상이합니다.

따라서 어떤 모델이 어떤 방식으로 설정되어야 효율이 극대화가 되고 어떤 스타일의 이미지가 뽑아지는지 어느정도 암기가 필요합니다.

저는 이것을 위해 이 블로그를 개설했고, 자주쓰는 모델들에 대한 정리들도 겸사겸사 해 둘 예정입니다.

Base 모델

현재 기준으로 각 모델들은 Base Model이 대략 세개정도 있습니다.

  • SD15
  • SD21
  • SDXL

SD는 Stable Diffusion의 준말이고, 15는 1.5버전, 21는 2.1버전, XL은 Extra Large의 준말입니다.

여기서 주로 사용되는 베이스 모델은 SD15와 SDXL이며 SD21은 SD15보다 최신 버전이긴 하나 비교적 자유롭지 못한 프롬프트때문에 외면을 받아 잘 사용되지 않습니다.

이 베이스모델이 중요한 이유는 Controlnet, Lora및 다른 모델을 기반으로 학습되어 사용되는 기술들이 특정 모델에 제한되기 때문입니다.

예를 들어, SD15를 기반으로 학습시킨 Controlnet모델은 SDXL베이스 모델로 이미지를 뽑아내려할 때 사용할 수 없습니다.

애초에 SDXL은 아직 지원하지 않는 ICLight같은 기술(모델)들도 있습니다.

SD15와 SDXL의 주된 차이점은 SDXL은 Base모델 말고도 Refiner가 추가되어 이를 사용하면 조금이나마 생성되는 이미지의 퀄리티를 높힐 수 있습니다.

사실 이것보다 SDXL은 512x512로 학습된 SD15와 다르게 1024x1024의 이미지를 뽑아내는데 최적화가 되어있기 때문에 업스케일링 없이 첫 pass부터 조금 더 디테일을 살릴 수 있습니다.

SDXL은 신경망 학습에도 이미지의 크기도 인자로 사용되어 학습이 되었습니다. 따라서 이런 정보를 CLIP Prompt에 frame, target dimension등 인자를 이용해 기재하여 더 원하는 의도를 표현할 수 있습니다.

SDXL은 ComfyUI에서 SD15용 노드들과 다르게 전용 노드들도 몇가지가 있으며 사용법도 약간 복잡도가 증가하지만, 그렇게 차이나는것도 아니고 Refiner를 쓰지 않는다면 SD15에서 쓰던 노드를 거의 그대로 사용할 수 있습니다.

이미지를 하나 만들어보겠습니다.

https://raw.githubusercontent.com/mym0404/image-archive/master/202406040121859.png

Generation Metadata

Model

(SD15) Deliberate V3

Positive

beautiful landscape endless snow mountain and cloud

Negative

text, watermark,lowres,medium quality,low quality

Size

1536 x 1024

Sampler

Steps

20

CFG

8

Sampler

dpmpp_2m

Scheduler

karras

Denoise

1

Upscaling

Scale

2

Denoise

PixelModel
https://raw.githubusercontent.com/mym0404/image-archive/master/202406040133695.png

Generation Metadata

Model

(SDXL) nwsjrealmix v10

Positive

beautiful landscape endless snow mountain and cloud

Negative

text, watermark,lowres,medium quality,low quality

Size

1536 x 1024

Sampler

Steps

20

CFG

8

Sampler

dpmpp_2m

Scheduler

karras

Denoise

1

두 이미지의 크기는 같지만 sd15 모델은 512크기 이미지의 생성에 최적화가 되어있기 때문에 먼저 생성한다음 upscale을 이용해 크기를 동일하게 맞췄습니다.

이처럼 두 베이스 모델별로 느낌도 차이가 나지만, 각 모델을 기반으로 fine tune된 파생 모델들이 많으니 필요에 따라 원하는 것을 골라서 사용할 수 있습니다.

f16 vs f32

f16과 f32는 신경망에 사용된 실수형이 float 16(2byte)냐, float 32(4byte)냐 차이입니다.

f32가 당연히 더 정밀도가 높고 조금이나마 결과물이 우수하겠지만, 큰 차이가 없으므로 모델의 용량이 절반정도밖에 안하는 f16모델을 다운로드 받는것이 좋습니다.

f16모델들이 조금 더 빠르고 메모리도 절반으로 절약되기때문에 큰 차이는 안나지만 빠른 이미지 생성에도 용이합니다.

모델의 용량

SD15모델들은 f16기준으로 2GB정도의 크기이고, SDXL모델들은 거의 5~6GB입니다.

SDXL은 SD15보다 훨씬 많은 신경망으로 학습되었기 때문에 어쩔수없이 모델의 용량이 큽니다.