이미지 생성 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_l과 t5xxl_fp16입니다.
이는 '역할 분담과 전문화' 때문입니다.
-
clip_l(시각/키워드 매칭 전문가):-
전통적인 CLIP의 텍스트 인코더입니다.
-
이미지와 텍스트 간의 시각적 개념을 연결하는 데 강력합니다.
-
주로 핵심 키워드, 스타일, 구도 등 시각적 요소를 포착하는 데 사용됩니다.
-
-
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 인코더에 동일하게 입력하는 것은 매우 비효율적이며 바람직하지 않습니다.
왜 효과가 떨어질까?
-
모델의 학습 방식과 불일치: T5나 CLIP 같은 모델은 자연스러운 문장(텍스트)을 학습했습니다.
{,},"같은 프로그래밍 구문 기호들은 모델에게 '언어'가 아닌 '노이즈'로 인식될 수 있습니다. -
문맥 단절:
"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

5. 요약 및 결론
-
CLIP은 이미지를 그리는 생성기가 아니라, 텍스트와 이미지의 일치도를 평가하는 '심사위원' 입니다.
-
듀얼 인코더(T5 + CLIP-L) 는 '언어 전문가(T5)'와 '시각 매칭 전문가(CLIP-L)'가 협업하는 강력한 방식입니다.
-
최상의 결과를 얻으려면 T5에는 자연스러운 문장을, CLIP-L에는 핵심 키워드를 전달하는 것이 가장 좋습니다.
-
JSON이나 딕셔너리 같은 구조화된 데이터를 프롬프트에 그대로 사용하는 것은 모델의 이해를 방해하므로, 자연어 문장과 키워드로 변환하여 사용해야 합니다.
댓글이 없습니다.