스마티지와 글 읽기 – xAI API를 활용한 이미지 생성
https://docs.x.ai/docs/guides/image-generations#image-generations
안녕하세요, 여러분! 일타 강사 저스틴입니다. 오늘 강의는 xAI API를 활용한 이미지 생성 기능에 대해 자세히 다뤄보겠습니다. 이 기능은 AI를 이용해 원하는 이미지를 손쉽게 생성할 수 있는 강력한 도구로, 여러분의 창의적 작업을 한층 더 풍부하게 만들어 줄 거예요. 자, 집중해주세요!
1. xAI API 이미지 생성 기능 소개
여러분, xAI API는 이미지 생성(Image Generation) 기능을 제공하여 사용자가 텍스트 설명(프롬프트)을 입력하면 원하는 이미지를 생성할 수 있도록 지원합니다. 이는 채팅 모델이나 이미지 이해 모델과는 조금 다른 방식으로 작동하며, 복잡한 대화 구조 없이 간단한 텍스트 프롬프트만으로 이미지를 만들어낼 수 있어요. 오늘 강의에서는 이 기능의 사용법, 주요 매개변수, 그리고 실제 코드 예제를 통해 단계별로 알아보겠습니다.
2. 이미지 생성의 기본 원리
xAI API의 이미지 생성은 다음과 같은 과정을 거칩니다. 사용자가 입력한 프롬프트는 먼저 채팅 모델에 의해 수정(Revised Prompt)된 후, 이미지 생성 모델로 전달되어 실제 이미지가 생성됩니다. 이 과정은 사용자가 복잡한 설정 없이 간단히 텍스트로 원하는 이미지를 묘사하면 AI가 이를 해석하고 시각화하는 방식으로 이루어져요. 참고로, xAI API는 현재 품질(Quality), 크기(Size), 스타일(Style) 설정을 지원하지 않으니 이 점 유의해주세요.
3. 주요 매개변수 (Parameters)
이미지 생성 요청 시 사용할 수 있는 주요 매개변수를 정리해 보겠습니다.
- n: 생성할 이미지의 개수입니다. 1에서 10까지 설정 가능하며, 기본값은 1입니다. 여러 이미지를 한 번에 생성하고 싶을 때 유용해요.
- response_format: 응답 형식으로, 두 가지 옵션이 있습니다.
- “url”: 이미지 URL을 반환합니다. 응답 데이터에서
data[index].url
로 이미지에 접근할 수 있어요. - “b64_json”: Base64 인코딩된 이미지 데이터를 반환합니다. 응답 데이터에서
data[index].b64_json
으로 접근 가능합니다.
- “url”: 이미지 URL을 반환합니다. 응답 데이터에서
4. 이미지 생성 요청 방법
xAI API의 이미지 생성은 채팅 모델과 다른 엔드포인트를 사용합니다. 구체적으로, 이미지 생성은 https://api.x.ai/v1/images/generations
엔드포인트를 통해 이루어지며, OpenAI SDK와 호환되도록 설계되어 있어 base_url
을 https://api.x.ai/v1
로 설정하면 됩니다. 사용 모델은 grok-2-image
로 지정하며, 생성된 이미지는 JPG 형식으로 제공됩니다.
4-1. 기본 이미지 생성 (URL 반환)
아래는 Python 코드를 사용해 이미지를 생성하고 URL을 반환받는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os from openai import OpenAI # xAI API 키 설정 XAI_API_KEY = os.getenv("XAI_API_KEY") client = OpenAI(base_url="https://api.x.ai/v1", api_key=XAI_API_KEY) # 이미지 생성 요청 response = client.images.generate( model="grok-2-image", prompt="A cat in a tree" ) # 생성된 이미지 URL 출력 print(response.data[0].url) |
이 코드는 “나무 위의 고양이”라는 프롬프트로 이미지를 생성하고, 해당 이미지의 URL을 반환받아 출력합니다.
4-2. Base64 JSON 형식으로 이미지 받기
이미지 데이터를 Base64 인코딩 형식으로 받고 싶다면 response_format
을 "b64_json"
으로 설정하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import os from openai import OpenAI # xAI API 키 설정 XAI_API_KEY = os.getenv("XAI_API_KEY") client = OpenAI(base_url="https://api.x.ai/v1", api_key=XAI_API_KEY) # 이미지 생성 요청 (Base64 형식) response = client.images.generate( model="grok-2-image", prompt="A cat in a tree", response_format="b64_json" ) # 생성된 이미지 Base64 데이터 출력 print(response.data[0].b64_json) |
이 경우 응답 데이터에서 url
대신 b64_json
필드를 통해 이미지 데이터를 받을 수 있습니다.
4-3. 여러 이미지 생성하기
한 번에 여러 이미지를 생성하고 싶다면 n
매개변수를 사용해 이미지 개수를 설정하세요. 아래는 4개의 이미지를 생성하는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import os from openai import OpenAI # xAI API 키 설정 XAI_API_KEY = os.getenv("XAI_API_KEY") client = OpenAI(base_url="https://api.x.ai/v1", api_key=XAI_API_KEY) # 4개 이미지 생성 요청 response = client.images.generate( model="grok-2-image", prompt="A cat in a tree", n=4 ) # 생성된 이미지 URL들 출력 for image in response.data: print(image.url) |
이 코드는 4개의 이미지를 생성하고 각 이미지의 URL을 출력합니다.
5. 수정된 프롬프트 (Revised Prompt) 확인하기
xAI API는 사용자가 입력한 프롬프트를 채팅 모델이 수정한 후 이미지 생성 모델에 전달합니다. 이 수정된 프롬프트는 응답 데이터에서 revised_prompt
필드로 확인할 수 있어요. 예를 들어, 입력 프롬프트가 “A cat in a tree”라면 수정된 프롬프트는 훨씬 구체적으로 변형될 수 있습니다.
5-1. 수정된 프롬프트 확인 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os from openai import OpenAI # xAI API 키 설정 XAI_API_KEY = os.getenv("XAI_API_KEY") client = OpenAI(base_url="https://api.x.ai/v1", api_key=XAI_API_KEY) # 이미지 생성 요청 response = client.images.generate( model="grok-2-image", prompt="A cat in a tree" ) # 수정된 프롬프트 출력 print(response.data[0].revised_prompt) |
5-2. 예시
- 입력 프롬프트: “A cat in a tree”
- 수정된 프롬프트 (예시): “3D render of a gray cat with green eyes perched on a thick branch of a leafy tree, set in a suburban backyard during the day. The cat’s fur is slightly ruffled by a gentle breeze, and it is looking directly at the viewer. The background features a sunny sky with a few clouds and other trees, creating a natural and serene environment. The scene is focused on the cat, with no distracting foreground elements, ensuring the cat remains the central subject of the image.”
이처럼 수정된 프롬프트는 더 상세한 묘사를 포함하여 이미지 생성의 품질을 높이는 데 도움을 줍니다.
6. 마무리: xAI API로 창의적 이미지 생성 시작하기
여러분, 오늘 강의에서 xAI API를 활용한 이미지 생성 기능의 사용법과 주요 매개변수, 그리고 실제 코드 예제를 함께 살펴봤습니다. 간단한 텍스트 프롬프트만으로 원하는 이미지를 생성하고, URL 또는 Base64 형식으로 결과를 받을 수 있으며, 한 번에 여러 이미지를 생성하는 것도 가능해요. 또한, 채팅 모델이 수정한 프롬프트를 통해 AI가 어떻게 이미지를 해석하는지 확인할 수 있는 점도 흥미롭죠. xAI API를 활용해 여러분의 창의적 작업을 한 단계 업그레이드해보세요! 자, 다음 강의에서 더 유익한 정보로 찾아뵙겠습니다. 저스틴이었습니다. 감사합니다!