# generate_image.py import openai import base64 from io import BytesIO from PIL import Image import os openai.api_key = os.getenv("OPENAI_API_KEY") def generate_ghibli_avatar(prompt: str, reference_image: Image.Image = None) -> Image.Image: """ 调用 OpenAI API,根据提示词和可选参考图像生成吉卜力风格头像 """ # 将图像编码为 base64 格式 image_b64 = None if reference_image: buffered = BytesIO() reference_image.save(buffered, format="PNG") image_b64 = base64.b64encode(buffered.getvalue()).decode() # 发送请求给 DALL·E 或 GPT-4-Vision response = openai.Image.create_variation( image=open("your_image.png", "rb"), n=1, size="512x512" ) if reference_image else openai.Image.create( prompt=f"吉卜力风格的人物头像, {prompt}", n=1, size="512x512" ) # 下载生成结果 image_url = response["data"][0]["url"] return Image.open(BytesIO(openai.util.download(image_url).content))