Spaces:
Sleeping
Sleeping
| import os | |
| from typing import List | |
| from openai import OpenAI | |
| from .base import ImageProvider | |
| _OPENAI_IMAGE_MODEL = os.getenv("OPENAI_IMAGE_MODEL", "gpt-image-1") | |
| class OpenAIImageProvider(ImageProvider): | |
| def __init__(self, api_key: str): | |
| # The SDK reads key from env, but we allow explicit injection too. | |
| os.environ["OPENAI_API_KEY"] = api_key | |
| self.client = OpenAI() | |
| def generate_image(self, prompt: str, size: str = "1024x1024", n: int = 1) -> List[str]: | |
| # OpenAI returns base64 JSON for images | |
| resp = self.client.images.generate( | |
| model=_OPENAI_IMAGE_MODEL, | |
| prompt=prompt, | |
| size=size, | |
| n=n | |
| ) | |
| # Each item has .b64_json | |
| images_b64 = [d.b64_json for d in resp.data] | |
| return images_b64 | |