기본 콘텐츠로 건너뛰기

Checkpoint, Text Encoder, VAE — 이미지 생성 AI의 3대 핵심 구조 정리

 컴퓨터에서 이미지를 생성할 때 Checkpoint, Text Encorder, VAE 는 이미지 생성의 3대 핵심 구조이다.

이 3가지는 세트 개념으로 이해하고 항상 함께 사용할 때 정상적인 이미지가 생성되기 때문이다.
서로 다른 것들을 연결하여 사용하면 정상적인 이미지 생성을 기대하기 어렵다.
Checkpoint + Encorder + VAE


1. 이미지 생성에 필요한 핵심구조 이해

  • Checkpoint 또는  Diffusion Model : 이미지를 실제로 만들어내는 핵심 모델로 이것에 의해 이미지 생성이 가능하다.
  • Text Encorder : 글을 번역하는 번역기로 우리가 입력하는 Text(Prompt) 를 AI가 이해하는 언어(숫자 벡터)로 바꿔주는 번역기이다.  번역된 내용(Conditioning)으로 checkpoint 에서 이미지를 생성한다.
  • VAE : 잠재적 공간(latent)으로의 변환을 해주는 변환기.  이미지를 생성할 때 우리가 인식가능한 이미지 상태로 이미지를 생성하는 것이 아닌 AI 가 이해하는 잠재적 공간에서 이미지를 생성하는데 그 생성된 잠재적인 이미지를 우리가 실제로 알아볼 수 있는 이미지로 바꿔주는 역할을 한다. 
    • VAE Encorder : 실제 이미지 -> latent image
    • VAE Decorder : latent Image -> 실제 이미지

2. 주요 Checkpoint 모델별 , Encorder, VAE 의 관계

  • Stable Diffusion (SDXL), Pony 모델
    • Text Encorder: CLIP 사용 , 이 모델은 단어 단위의 text 를 변환해 주기 때문에 이 모델을 이용하여 이미지를 생성 할 때는 Prompt 를 단어 단위로 나열하여 입력하는 것이 좋다.
    • 예) masterpiece, best quality, highly detailed, 1girl, solo,  bangs, long hair, slender body,  slim legs,  hourglass figure, smooth skin, flawless complexion, realistic eyes,  red lips, makeup, top , skirt, sitting on chair.
    • VAE : sdxl_vae , sdxl_ani_vae 등
    • Stable Diffusion 모델에 따라 모델내부에 CLIP Encorder , 와 VAE 를 함께 종합하여 training 한 모델도 존재한다. 그런 모델은 굳이 CLIP Encorder 나 VAE 가 별도로 필요치 않다.
  • Flux1, Flux2 모델
    • Text Encorder : t5xxx 계열 Encorder.  t5xxl_fp8_e4m3fn, t5xxl_fp8_e4m3fn_scaled 등.  이 것은 주로 문장구조로 이해하고 분석하여 변환한다.  따라서  Flux 모델을 이용하여 이미지를 생성 할 때는 단어보다는 문장으로 prompt 를 입력해 주는 것이 좋다.   
    • 예) A captivating wooden artwork featuring silhouette of a young woman and a cat, crafted using randomly arranged colorful mosaic wood tiles.
    • VAE : ae , flux2-vae 등
    • Flux 모델을 위의 CLIP Encorder 나 sdxl_vae 를 연결하여 사용하면 이미지 생성이 안된다.  그래서 Checkpoint , Text Encorder 와 VAE 는 세트개념으로 관계된 것 끼리 함께 사용하여야 한다.   대부분  Checkpoint 모델을 다운로드하는 곳에는 관계된 Text Encorder 와 VAE 도 함께 다운로드가 가능할 것이다.
  •  Qwen 모델
    • Text Encorder : LLM 기반 Vision-Language 멀티모달 분석 모델 이다.  qwen_2.5_vl_fp16, qwen_3_4b 등. 이것은 Text 뿐 아니라 Image 도 분석 변환해 주기 때문에 qwen 모델은 image to prompt 도 있으며, Image to Image 모델도 존재한다.  좀더 자연어 prompt 를 상황에 맞게 잘 이해하고 문장의 선, 후 관계도 고려하기 때문에 좀 더 정확하게 명령을 이해하고 이미지를 생성 해 준다.  특히 다국어 , 즉 영어 뿐 아니라 중국어, 일본어, 한국어 도 잘 이해하고 이미지를 생성한다.
    • 예) A beautiful, elegant East Asian woman sitting barefoot on the floor, wearing a loose white button-down shirt and form-fitting blue jeans. She is holding a fine paintbrush in her right hand, poised to touch a palette of watercolors held in her left hand. Next to her is a white ceramic vase with a bouquet of realistic, pastel-colored flowers (roses, perhaps some greenery). The setting is a minimalist studio with a solid, neutral beige or light tan background, emphasizing soft, natural studio lighting. Highly detailed, photorealistic, cinematic light, 8k.
    • VAE : qwen_image_vae, qwen_image_layered_vae 등
    • 항상 필요한 Checkpoint 를 다운로드 하여 사용 할 때는 반드시 필요한 Text Encorder 와 VAE 를 파악하여 함께 다운받아 사용하여야 한다.

3. 이미지 생성 Flow

  • Prompt 입력 : 예) a woman in a red dress, cinematic lighting
  • Text Encorder : 글을 숫자벡터로 변형 (Conditioning)
  • Conditioning : 그림의 설계도 또는 요구 조건

Encorder(CLIP) 를 입력하면 Text 가 숫자벡터로 변환하여 Conditioning 으로 출력한다.
  • 보통 KSampler 에서 Conditioning 에 따라 Checkpoint Model 을 이용하여 그림을 생성한다.  이 그림은 잠재적 공간(latent) 에서 만들어 지기 때문에 실제로 우리가 눈으로 인식할 수있는 그림상태가 아니다.   그 이미지를 latent Image 라고 부른다.
  • VAE Decorder : latent Image 를 우리가 인식할 수 있는 그림으로 변환해 준다.
  • Image Save : 실제 이미지를 저장한다.

4. KSampler 구조분석

일반적인 KSampler 노드

  • 입력 단자 :
    • Model : Checkpoint 모델을 입력해 준다.
    • positive : 긍정 prompt 를 Conditioning 으로 변환하여 입력한다.
    • negative : 부정 prompt 를 Conditioning 으로 변환하여 입력한다.
    • latent_Image : 잠재적 공간에서 사용할 latent image 를 입력한다.  이미지 생성은 latent image 를 이용하여 새로 그릴수도, 일부 수정을 할 수도 있다.  보통 새로 이미지 생성을 할 때는 빈 latent image 를 입력한다.
  • 옵션 값 : 
    • seed : 생성된 이미지의 고유 번호인데 모든 조건이 동일하고 seed 값이 동일하면 똑같은 이미지를 생성한다.  반대로 모든 조건이 동일한데 seed 값이 다르면 이미지도 다르다. 이 값은 random 으로 정하거나 고정값을 정하거나 할 수 있다.
    • steps : 이미지를 생성하는 단계를 나타낸다고 이해하고 steps 가 클 수록 좀 더 정교하고 고 품질의 이미지를 생성한다. 
    • cfg : 이 값은 입력된 명령어(prompt) 를 어느 정도 따를 것인지 결정하는 값으로 높을수록 prompt 입력에 따라 이미지를 생성하고 0 이면 입력 prompt와 관계없이 모델 마음대로 이미지를 생성한다. 보통 3~7 값을 사용하는데  checkpoint 모델에 따라 1을 사용하는 경우도 있다.
    • sampler_name : 걍 쉽게 이미지 생성하는 방법으로 이해하자.  이것에 따라 이미지의 모양, 품질 등이 다르다.  다양한 sampler 가 존재하기 때문에 checkpoint 에 잘 어울리는 sampler 를 사용하여야 좋은 이미지를 얻을 수 있다.  만약 어떤 sampler 를 써야 할 지 잘 모르면 euler 를 쓰면 대충 잘 만들어 준다.
    • scheduler : steps 에 따라 이미지를 생성할 때 어느 부분에 더 이미지 생성을 분배할 지 다르다.   이것도 보통 sampler 와 연결하여 맞게 사용하는데 ,  모르겠으면 걍 normal 또는 simple 을 사용하면 된다.
    • denoise : 입력된 latent image를 가지고 이것을 얼마만큼 수정하여 그릴지를 결정하는 값인데,  1이란 완전히 바꾼다는 의미이며, 0 이면 latent image 를 전혀 변경없이 한다는 의미이다.  따라서 새로운 이미지를 생성하기 위해서는 1 값을 사용하고, 이미지의 일부를 변경하고 싶으면 0.4~0.6 사이값에서 조절하여 사용하면 된다.
  • 출력단자 :
    • LATENT : 생성된 latent image 를 출력한다.
    • latent image 는 우리가 실제로 인식할수있는 이미지가 아니기 때문에 이것을 VAE Decorder 를 통과하여 실제 이미지 얻는다.
Checkpoint ?

4. 이미지 생성의 유의사항

  • 원하는 이미지에 맞는 Checkpoint 모델을 사용한다.  
    • stable diffusion (sdxl) : 저 성능의 컴퓨터에서 빠르게 1024x1024 실사 이미지를 원할 경우 사용한다. 
    • Pony 모델 : 애니 케릭터 이미지를 원할때 사용한다.  특히 NSFW 이미지는 거의 제한이 없는 모델이다.   
    • Flux 모델 : 고품질의 인물이미지에 적합하다. 다만 모델 크기가 크기 때문에 컴퓨터 성능이 좋아야 한다.
    • QWEN : 고품질이면서 특히 동양적 이미지를 잘 생성해 주고,  한글 prompt 를 사용해도 잘 만들어 준다.  특히 QWEN-Image-Edit-2511 은 개인적으로 가장 이미지 수정을 잘해 준다.
  • 반드시 Checkpoint 와 Text Encorder , VAE 는 짝을 맞추어 사용한다.
  • prompt 는 SDXL, Pony 모델은 단어 나열로 입력하고, Flux 및 QWEN 모델을 문장으로 자세히 표현하여 입력한다.
  • prompt 에 따라 checkpoint 별로 다른 이미지들이 생성되기 때문에 같은 prompt라도 서로 다른 checkpoint 를 사용하여 만들어 본다.
  • cfg 값, Samplder and scheduler 는 checkpoint 에 맞는것을 사용한다.
기본적으로 상기 내용대로 하면 꽤 쓸만한 이미지를 생성 할 수있다.

이미지 생성에 초보자 라면 반드시 위의 기본적인 내용을 이해하고 많은 이미지를 만들어 보시길 권한다.

좋은 prompt 가 좋은 Image 를 생성한다.

이미지 생성에 어느정도 자신이 있으면 여기서 더 원하는 이미지는 Lora, Controlnet, Upscale 을 추가하여 생성한다.



댓글

이 블로그의 인기 게시물

Comfyui Wildcard 사용법 - Stable Diffusion , Flux 에서 쉽게 Random Prompt 로 이미지 만들기

 Comfyui Wildcard 사용법에 대하여 알아본다. Comfyui 로 Stable Diffusion 또는 Flux 로 이미지를 만들 때 Prompt 가 이미지를 결정하는데 매우 중요한 역할을 한다.  영어가 모국어가 아닌 이상 영어로 prompt 를 만드는 것이 참 어려운 일이다. 물론 처음에는 많은 다른 사람들이 사용한 prompt 들을 모방하여 수정하고 사용하는데 이런 일을 하나하나 해 보기가 시간이 많이 걸리고 어렵다.   그래서 Random 으로 prompt 가 만들어 져서 이미지가 생성되고 그 이미지 중에서 마음에 드는 이미지들을 골라 그 이미지의 Prompt들 만을 가지고 보완하고 개선하면 더 편리하고 좋지 않을까 생각이 든다.  그런 식의 Random Prompt 생성이 가능하게 해주는 것이 wildcard 사용이다. Joker는 card game에서 wildcard 이다. 1. Wildcard 의 의미      와일드 카드(Wildcard)란 카드 게임에서 유래되었다.  이런 카드 게임에서 모든 카드의 대용으로 쓸 수 있는 비장의 카드를 와일드 카드라고 한다. 포커나 훌라를 할 때 조커가 이런 역할을 하는데 ,  이 의미가 컴퓨터와 스포츠로 확장되어 사용되는 것이다. 컴퓨터 용어로 쓰일 때는 한 디렉터리 내에 여러 파일이 존재하거나, 파일 이름의 뒷부분을 정확히 알지 못하는 경우에도 사용할 수 있는 명령어를 말합니다. '*'을 넣으면 빠진 것에 어떤 문자열이 있든지 대신할 수 있고,  '?'는 임의의 한 문자에만  대응한다. Comfyui 에서 wildcard 사용은 "--문자열--"  이런 식으로 wildcard 사용 가능한 노드에 prompt 를 입력해 주면 그 노드는 "문자열" 에  해당되는 파일을 찾아 그 파일 내용 중에서 임의의 일부분을 prompt 로 대체해 준다. 2. Wildcard 사...

Pinokio 앱 설치 - 오픈 소스 AI 플랫폼

  Pinokio 는 오픈 소스 AI 플랫폼이다. 로컬에서 AI 애플리케이션을 쉽게 설치하고 실행할 수 있게 도와주는 오픈 소스 AI 플랫폼이다. 이 플랫폼은 사용자가 복잡한 설치 과정 없이 클릭 한 번으로 AI 도구들을 설치할 수 있도록 설계되어 있다. 이를 통해 기술적인 배경 지식이 없는 초보자나 비전문가들도 쉽게 AI 애플리케이션을 사용할 수 있다.   이미 설치되어 있는 애플리케이션이 있어도 별도의 독립된 공간에서 문제없이 사용할 수 있게 해준다.   우리가 stable diffusion 을 comfyui 에서 사용하기 위해서는 "Python", "git ....", "conda"  뭔지 모르지만 설치해야 하는데 pinokio 브라우저에서 원 클릭으로 알아서 설치를 해주기 때문에  컴맹인 일반인도 쉽게 설치하고 사용 할 수 있다. pinokio.computer 1. Pinokio 주요 기능 원클릭 설치 : 복잡한 환경 설정이나 명령어 입력 없이도 다양한 AI 모델을 한 번의 클릭으로 설치할 수 있다. 예를 들어, Comfyui 나 Flux 같은 AI 도구들을 손쉽게 설치할 수 있다. 다양한 AI 애플리케이션 제공 : Pinokio는 다양한 오픈 소스 AI 애플리케이션을 제공하는 허브 역할을 하며, Pinokio 브라우저 나 홈페이지에서 쉽게 찾아 설치할 수 있다. 브라우저 기반 인터페이스 : 모든 설치된 애플리케이션은 Pinokio 웹 브라우저에서 관리할 수 있어, 친숙한 인터페이스로 쉽게 사용이 가능하다. 독립적인 가상 컴퓨터 : Pinokio는 백엔드 작업을 자동으로 처리하여, 애플리케이션이 로컬에서 실행되는 동안 인터넷에 연결되어 있지 않아도 된다. 2. Pinokio 설치 구글에서 pinokio 를 검색하여 " pinokio.computer " 를 클릭 Download 클릭 다운로드 된 pinokio 압축 파일을  푼다. pinokio 설치파일을 실행하여 설치 설치과정은 복...

Flux Lora 제작 - Local 에서 Fluxgym 을 이용하여 자체 Lora 만들기

 Flux Lora 는 일관된 이미지를 만드는데 꼭 필요하다. 특히 일관된 얼굴의 이미지를 만드는데 있어서 다른 기능들 (ipadapter , controlnet, imgtoimg 등) 을 이용하는 것 보다 훨씬 일정한 캐릭터를 생성하게 해준다.  문제는 이런 Lora는 주로 CIVITAI , Tensor, Hugging face 등 사이트에서 다운 받아 사용하면 되지만  그것은 나만의 독특한 캐릭터가 아니고 나의 취향과 일치 되기가 어려워서 Lora를 구하기가 어렵다.  아니면 그런 사이트 내에서 자체 Lora를 제작하면 되는데 모두 비용이 필요하다. 여기 소개하는 Fluxgym AI 는 Local 컴퓨터에서 VRAM 12G 이상이면 자체 Lora를 만들 수 있게 해준다.   소요되는 시간도 생각보다 많이 걸리지 않는다.   이제 설치하고 자체 Lora를 한번 만들어 보자. Fluxgym 으로 만든 Lora 대표이미지 1. fluxgym 설치 pinokio 앱을 실행한다. ( pinokio 앱 설치 참조 ) 우측 상단 맨 처음 아이콘 (discover) 클릭 fluxgym 을 찾아서 클릭 fluxgym 이것을 클릭하면 된다. 여러가지 파일들을 설치하기 때문에 시간이 좀 소요될 것이다. 모든 설치가 끝나면 pinokio 브라우저 하단 부분에 fluxgym 메뉴가 추가된다. fluxgym 나중에 불필요하면 삭제(쓰레기통 아이콘 클릭) 하면 모두 unintall 된다. 2. fluxgym 실행 항상 pinokio 앱을 실행하여 pinokio 브라우저에서 fluxgym 을 클릭하면 된다. flux화면3-1 -. 1번항 : 여기에 입력한 대로 fluxgym/outputs/ 의 하위 폴더를 만들어 준다. -. 2번항 : Lora를 작동시키는 trigger word 를 입력한다. (예,  hart_style_a......) -. 3번항 : 자신의 가능한 VRAM 선택 : 나는 12 G 선택 ...