이미지 생성 AI를 사용하다 보면 'CLIP'이라는 용어를 자주 접하게 됩니다. 많은 분이 이를 단순히 '텍스트를 이미지로 변환하는 해석기' 정도로 생각하지만, CLIP의 역할은 그보다 더 깊고 정교합니다. 특히 고품질 이미지를 생성하기 위해 두 개 이상의 인코더를 사용하는 '듀얼 CLIP' 방식이 등장하면서, 프롬프트를 작성하는 전략도 함께 진화하고 있습니다.

이 글에서는 CLIP의 기본 개념부터 듀얼 인코더 시스템에서 어떻게 프롬프트를 최적화할 수 있는지 알아보겠습니다.


1. CLIP이란 무엇인가?



CLIP (Contrastive Language-Image Pre-training) 은 OpenAI가 개발한 모델로, 이름 그대로 '언어(텍스트) 와 '이미지'를 대조(Contrastive)하며 함께 학습한 다중모달(Multi-modal) 모델입니다.

핵심 기능은 이미지와 텍스트를 동일한 '잠재 공간(Latent Space)' 이라는 가상의 벡터 공간에 배치하는 것입니다.

  • "강아지"라는 텍스트가 특정 공간 좌표(벡터)에 위치한다면,

  • "강아지" 사진 또한 그와 매우 가까운 좌표에 위치하도록 학습됩니다.

이미지 생성 모델에서의 역할:

중요한 점은, CLIP 자체가 이미지를 그리는 생성기(Generator)는 아니라는 것입니다. 대신, 생성 모델(예: Stable Diffusion)이 이미지를 만들어내는 과정에서 "현재 생성된 이미지가 사용자의 텍스트 프롬프트와 얼마나 일치하는가?" 를 평가하는 '심사위원' 또는 '내비게이터' 역할을 합니다. CLIP 점수가 높을수록(텍스트와 이미지가 가까울수록) 생성 모델은 "이 방향이 맞다"고 판단하고 디테일을 더해갑니다.


2. 듀얼 인코더의 등장: 왜 두 개의 모델을 사용할까?

최근 Stable Diffusion XL(SDXL)과 같은 고성능 모델은 단일 CLIP 대신 '듀얼 텍스트 인코더' 방식을 채택했습니다. 대표적인 조합이 clip_lt5xxl_fp16입니다.

이는 '역할 분담과 전문화' 때문입니다.

  1. clip_l (시각/키워드 매칭 전문가):

    • 전통적인 CLIP의 텍스트 인코더입니다.

    • 이미지와 텍스트 간의 시각적 개념을 연결하는 데 강력합니다.

    • 주로 핵심 키워드, 스타일, 구도 등 시각적 요소를 포착하는 데 사용됩니다.

  2. t5xxl_fp16 (언어/문맥 전문가):

    • T5는 Google이 개발한 거대 언어 모델(LLM)로, CLIP의 기본 텍스트 인코더보다 훨씬 큽니다.

    • 단순 키워드가 아닌, 복잡한 문장 구조, 문맥, 단어 간의 미묘한 관계를 훨씬 깊이 있게 이해합니다.

    • '언어 전문가'로서 프롬프트의 세부적인 뉘앙스를 파악합니다.

두 인코더를 함께 사용하면, 복잡하고 긴 문장의 의미(T5)핵심 시각 스타일(CLIP-L) 을 모두 정확하게 반영하여 훨씬 풍부하고 정확한 이미지를 생성할 수 있습니다.


3. 최적의 프롬프트 작성법: 문장과 키워드의 조합



이 듀얼 인코더 시스템의 성능을 최대로 활용하려면, 각 인코더의 특성에 맞는 프롬프트를 제공하는 것이 좋습니다. 많은 고급 이미지 생성 도구(예: ComfyUI)는 이 두 인코더에 각각 다른 텍스트를 입력할 수 있도록 허용합니다.

  • T5-XXL (언어 전문가)에게는 → 자연스러운 '문장'

    • 모델이 문맥을 파악할 수 있도록 완전한 문장 형태로 서술하는 것이 좋습니다.

    • 예: "A Japanese young woman in her 20s, with a black ponytail and wearing black framed glasses. She is sitting on a white carpet, listening to music, and staring up at the camera."

  • CLIP-L (시각 매칭 전문가)에게는 → '핵심 키워드'

    • 스타일, 객체, 색상, 구도 등 시각적으로 중요한 핵심 요소들을 나열하는 것이 효과적입니다.

    • 예: "japanese woman, 20s, black ponytail, black glasses, white headphones, white carpet, listening music, sitting, staring up, from above, whole body, professional real photo"


4. JSON 또는 딕셔너리 형태의 프롬프트는 어떨까?

프롬프트를 체계적으로 관리하기 위해, 다음과 같이 JSON이나 딕셔너리(Python Dictionary) 형태로 작성하는 경우가 있습니다.

{
"Character":"japanese young woman in her 20's.",
"Appearance":{
"hair": "black ponytail hear",
"wearing": "black framed glasses, white wireless headphone"
},
"Action": "listening music, sitting on white carpet",
"style" "professional real photo"
}

이 구조를 그대로 복사하여 T5와 CLIP-L 인코더에 동일하게 입력하는 것은 매우 비효율적이며 바람직하지 않습니다.

왜 효과가 떨어질까?

  1. 모델의 학습 방식과 불일치: T5나 CLIP 같은 모델은 자연스러운 문장(텍스트)을 학습했습니다. {, }, " 같은 프로그래밍 구문 기호들은 모델에게 '언어'가 아닌 '노이즈'로 인식될 수 있습니다.

  2. 문맥 단절: "Character": "...""Action": "..." 사이의 유기적인 문맥적 연결이 끊어집니다. 모델은 "캐릭터"와 "행동"을 별개의 정보 조각으로 받아들여, 이를 자연스러운 하나의 장면으로 조합하는 데 어려움을 겪습니다.

올바른 변환 예시

위 JSON 데이터를 듀얼 인코더 시스템에서 제대로 활용하려면, 다음과 같이 '번역' 하는 과정이 필요합니다.

  • T5-XXL (문장형 입력):

    A japanese young woman in her 20's, with a black ponytail, wearing black framed glasses and white wireless headphones. She is listening to music while sitting on a white carpet. This is a professional real photo.

  • CLIP-L (키워드형 입력):

    japanese young woman, 20's, black ponytail, black framed glasses, white wireless headphone, listening music, sitting on white carpet, professional real photo

image_from_right_prompt


5. 요약 및 결론

  1. CLIP은 이미지를 그리는 생성기가 아니라, 텍스트와 이미지의 일치도를 평가하는 '심사위원' 입니다.

  2. 듀얼 인코더(T5 + CLIP-L) 는 '언어 전문가(T5)'와 '시각 매칭 전문가(CLIP-L)'가 협업하는 강력한 방식입니다.

  3. 최상의 결과를 얻으려면 T5에는 자연스러운 문장을, CLIP-L에는 핵심 키워드를 전달하는 것이 가장 좋습니다.

  4. JSON이나 딕셔너리 같은 구조화된 데이터를 프롬프트에 그대로 사용하는 것은 모델의 이해를 방해하므로, 자연어 문장과 키워드로 변환하여 사용해야 합니다.