张子阳的博客

首页 读书 技术 店铺 关于
张子阳的博客 首页 读书 技术 关于

OpenAI 生成吉卜力风格的图片

2025-04-28 张子阳 分类: 大语言模型

最近OpenAI再一次火了一波,因为它推出了 原生多模态图像生成模型。这种模型在训练时直接混合多模态数据(如图文对、音视频同步数据),建立模态间语义映射,统一处理多模态输入输出。直观上,就是提供一张图片,同时配上需求,例如:将这张图片转为吉卜力风格,模型即可自动完成。当前支持最高1024x1536的分辨率,费用大约0.2美元/张。这篇文章将讲述如何实现这一过程,之后就可以将自己喜欢的相片转成吉卜力风格啦。

我们依然需要app_key,关于这部分,可以参考 LlamaIndex 使用大语言模型

创建工作目录,在该文件夹下创建文件 main.py:

import os import base64 from dotenv import load_dotenv load_dotenv() from openai import OpenAI # 设置OpenAI API密钥 api_key = os.getenv("OPENAI_API_KEY") base_url = os.getenv("OPENAI_API_BASE") llm = OpenAI(api_key=api_key, base_url=base_url) # llm = OpenAI() img = open("avatar.jpg", "rb") prompt='''请将我提供的照片转换为一张现代高清的吉卜力动画风格插画,保留照片的基本构图与主体元素。具体要求如下:使用细腻、干净、明亮的手绘风格进行重绘;构图不变:人物和背景的布局与原图保持一致;人物姿态保持不变,发型、面部特征、眼神、服饰、身体姿态 尽可能贴近原图,表情为淡淡的微笑;头部和身体的比例更接近实际比例;色彩处理:色彩 鲜明自然,充满阳光气息,避免泛黄或昏暗,整体氛围应温柔、通透、有情感张力;线条风格:线条清晰流畅,细节丰富,具有手绘质感;尺寸比例:输出图像尺寸与原图一致''' # 调用 GPT-image-1 的图像编辑接口 result = llm.images.edit( model = "gpt-image-1", image = img, prompt= prompt, size = "1024x1024", quality = "high", n = 1 ) # 检查API响应是否为空 if result is None or not hasattr(result, 'data'): raise ValueError("API调用失败,返回结果为空") # 检查data字段是否存在有效内容 if not result.data: print(result.model_dump_json(indent=4)) raise ValueError("API返回结果未包含有效图像数据") # 解码并保存生成的图像 image_bytes = base64.b64decode(result.data[0].b64_json) with open("ghibli_output.png", "wb") as f: f.write(image_bytes) print("吉卜力风格图像已生成!")

在上面代码中,需要注意 api_key 和 api_base 需要显示地传递到 OpanAI()函数中。否则的话,默认会直接调用 OpenAI 官方的API地址,是调不通的。

生成了几张图(提示词略有不同,大家可以根据需要进行自行编辑),效果如下:

感谢阅读,希望这篇文章能给你带来帮助!