8.4 실습: 이미지 기반 Q&A, 썸네일 생성기
이 절에서는 GPT-4o의 멀티모달 처리 능력을 바탕으로 ‘이미지 기반 질의응답 시스템’과 ‘썸네일 생성기’를 직접 구현해 봅니다. 이 두 가지 실습은 GPT의 이미지 인식 및 이해 능력과 DALL·E의 이미지 생성 능력을 연계하여 활용하는 대표적인 예시입니다. 실습을 통해 Vision API와 이미지 생성 API를 통합적으로 사용하는 방법을 익힐 수 있습니다.
8.4.1 이미지 기반 Q&A 시스템
개요
이 실습에서는 사용자가 이미지를 업로드하고 이를 GPT-4o에 입력해 설명을 듣거나 질문을 하는 시스템을 구축합니다. 예를 들어, 어떤 UI의 스크린샷을 올려 "이 화면에서 로그아웃 버튼은 어디에 있나요?"라고 질문하면 GPT가 시각적 정보를 분석하여 답변합니다. 이를 통해 OCR 이상의 '이해 능력'을 갖춘 이미지 기반 챗봇을 만들 수 있습니다.
사전 준비
OpenAI의 GPT-4o API 접근 권한 필요
Python 개발 환경 (requests 또는 openai SDK 설치)
이미지 파일(JPEG, PNG 등)
Jupyter Notebook 또는 간단한 웹 프론트(Optional)
코드 예제: 단일 이미지 기반 질의응답
Step 1. 이미지 파일 준비 및 base64 인코딩
import base64
def encode_image(image_path):
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
image_path = "screenshot.png"
base64_image = encode_image(image_path)
Step 2. Vision 메시지 구조 생성
GPT-4o는 이미지 입력이 포함된 메시지를 다음과 같은 형식으로 전달받습니다.
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "이 이미지에서 로그인 버튼은 어디에 있나요?"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{base64_image}",
"detail": "auto"
}
}
],
}
],
max_tokens=500,
)
print(response.choices[0].message.content)
Step 3. 출력 예시
이 이미지에서 로그인 버튼은 오른쪽 상단에 위치하며, 파란색 배경의 “Log In” 텍스트로 표시되어 있습니다.
실전 팁
“이 화면에서 오류 메시지가 있는지 알려줘”처럼 추론적 질의도 가능
UI/UX 리뷰 자동화 도구에도 활용 가능
이미지당 입력 토큰 비용 발생 → resolution 고려
8.4.2 자동 썸네일 생성기
이제 DALL·E API를 사용하여 자동으로 썸네일 이미지를 생성해보겠습니다. 사용자의 입력 텍스트(예: YouTube 영상 제목)를 기반으로 GPT에게 썸네일 지시 프롬프트를 생성하게 하고, 이를 바탕으로 이미지 생성 요청을 수행하는 방식입니다. 생성된 이미지는 마케팅 콘텐츠, 블로그, 영상 등에 활용할 수 있습니다.
사전 준비
OpenAI DALL·E API 사용 권한
Python과 openai 패키지
텍스트 기반 썸네일 생성 컨셉 설계
코드 예제: GPT 기반 썸네일 프롬프트 생성 + 생성
Step 1. GPT를 통한 프롬프트 생성
사용자의 제목을 받아 알맞은 썸네일 설명 영어 프롬프트를 생성합니다.
def generate_thumbnail_prompt(video_title):
system_prompt = "당신은 유튜브 썸네일 프로듀서입니다. 아래 제목을 보고 이미지 내용에 대한 설명을 영어로 작성하세요. 시각적 요소가 잘 떠올려지도록 구체적으로 묘사해주세요."
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": video_title}
],
max_tokens=200
)
return response.choices[0].message.content.strip()
예시 호출:
prompt = generate_thumbnail_prompt("ChatGPT로 나만의 고객센터 챗봇 만들기")
print(prompt)
출력 예시:
An illustration of a smiling chatbot wearing a headset, sitting at a desk with a laptop, with speech bubbles showing questions and answers. The background includes icons of gears, AI, and customer support.
Step 2. DALL·E API로 이미지 생성
response = client.images.generate(
model="dall-e-3",
prompt=prompt,
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
print("썸네일 URL:", image_url)
실전 팁
생성된 썸네일은 PIL이나 requests로 다운로드 후 저장 가능
“prompt engineering”을 통해 이미지 퀄리티 제어 가능
간단한 GUI를 만들거나 정기적으로 자동 생성(예: 뉴스레터용 이미지)
8.4.3 확장 실습: 이미지 기반 Q&A + 썸네일 생성 통합 서비스
이전 두 실습을 통합하여, 사용자가 이미지를 업로드하면 GPT가 인식한 내용을 분석하고, 그 내용을 바탕으로 관련 썸네일을 생성하는 일련의 파이프라인을 구성할 수도 있습니다.
예: 강의자료 이미지를 업로드 → 제목 추출 • 주제 분석 → 해당 강의의 프로모션 썸네일을 자동 생성 이런 방식은 AI 기반 콘텐츠 프로듀싱 워크플로우 자동화에 매우 실용적입니다.
8.4.4 마무리 및 요약
GPT-4o Vision 기능을 통해 정적 이미지에 대한 동적 질의응답이 가능해졌습니다.
DALL·E 3의 강화된 표현 능력으로 컨텐츠에 어울리는 이미지를 거의 실시간으로 생성할 수 있습니다.
두 API를 결합한 자동화 워크플로우는 콘텐츠 제작, UI/UX 리뷰, 마케팅 등 다양한 실무 영역에 직접 접목 가능합니다.
이 절에서 배운 것
GPT-4o Vision 입력 방식
base64 이미지 포함한 structured message 구성
이미지 Q&A
사용자가 던지는 질문에 대해 GPT가 시각 정보 기반으로 답변
썸네일 생성기
텍스트 → GPT 설명 프롬프트 → DALL·E 이미지를 거치는 단계별 처리
확장 응용
문서/스크린샷에서 핵심 요소 추출 → 시각 콘텐츠 자동 생성 가능
다음 절에서는 Chat API의 Function Calling 기능을 활용하여 외부 시스템과의 통신을 다루게 됩니다. 이미지 입출력 결과를 외부 로직과 연계하고자 할 때도 Function Call이 중요한 역할을 하며, 여기서 이어지는 흐름을 자연스럽게 연결해 나아갈 수 있습니다.
Last updated