OpenAIImageGenerator
OpenAIImageGenerator
gpt-image-2 같은 OpenAI 이미지 생성 모델로 이미지를 만드는 컴포넌트예요.
출처: 문서
본문
OpenAIImageGenerator 컴포넌트는 OpenAI의 이미지 생성 모델(예: gpt-image-2)로 이미지를 생성해요.
기본적으로 이 컴포넌트는 gpt-image-2 모델, "auto" 품질, 1024x1024 해상도를 사용해요. model(컴포넌트 초기화 시), quality와 size(컴포넌트 초기화 또는 실행 시) 파라미터로 이 값을 바꿀 수 있어요.
OpenAIImageGenerator는 동작에 OpenAI 키가 필요해요. 기본적으로 OPENAI_API_KEY 환경 변수를 사용해요. 아니면 초기화할 때 api_key로 API 키를 넘길 수 있어요.
image_generator = OpenAIImageGenerator(api_key=Secret.from_token("<your-api-key>"))
컴포넌트 파라미터의 자세한 설명은 API 참조를, OpenAI API 파라미터의 세부 내용은 OpenAI 문서를 확인하세요.
더 알아보기 (Learn more)
단독으로 쓰기
from haystack.components.generators import OpenAIImageGenerator
image_generator = OpenAIImageGenerator()
response = image_generator.run("Show me a picture of a black cat.")
print(response)
파이프라인에서 쓰기
다음 파이프라인에서는 먼저 PromptBuilder를 구성해서 다양한 예술 요소를 묘사하는 상세 템플릿으로 이미지 설명을 만들고, 이 구조화된 프롬프트를 OpenAIImageGenerator에 넘겨 상세 설명에 기반한 이미지를 생성해요.
from haystack import Pipeline
from haystack.components.generators import OpenAIImageGenerator
from haystack.components.builders import PromptBuilder
prompt_builder = PromptBuilder(
template="""Create a {{ style }} image with the following details:
Main subject: {{ prompt }}
Artistic style: {{ art_style }}
Lighting: {{ lighting }}
Color palette: {{ colors }}
Composition: {{ composition }}
Additional details: {{ details }}""",
)
image_generator = OpenAIImageGenerator()
pipeline = Pipeline()
pipeline.add_component("prompt_builder", prompt_builder)
pipeline.add_component("image_generator", image_generator)
pipeline.connect("prompt_builder.prompt", "image_generator.prompt")
results = pipeline.run(
{
"prompt": "a mystical treehouse library",
"style": "photorealistic",
"art_style": "fantasy concept art with intricate details",
"lighting": "dusk with warm lantern light glowing from within",
"colors": "rich earth tones, deep greens, and golden accents",
"composition": "wide angle view showing the entire structure nestled in an ancient oak tree",
"details": "spiral staircases wrapping around branches, stained glass windows, floating books, and magical fireflies providing ambient illumination",
},
)
generated_images = results["image_generator"]["images"]
revised_prompt = results["image_generator"]["revised_prompt"]
print(f"Generated image (base64-encoded): {generated_images[0]}")
print(f"Revised prompt: {revised_prompt}")