import openai
import requests
from PIL import Image
from io import BytesIO
# 配置
openai.api_base = "https://api.yelinai.com/v1"
openai.api_key = "your-api-key"
# 生成图像(使用新参数)
def generate_image(prompt, size="auto", quality="auto", output_format="png", n=1):
try:
response = openai.Image.create(
model="gpt-image-1",
prompt=prompt,
n=n,
size=size,
quality=quality,
output_format=output_format
)
# 返回图像 URLs
return [item['url'] for item in response['data']]
except Exception as e:
print(f"Error generating image: {e}")
return None
# 高级示例:使用压缩和背景设置
def generate_advanced_image(prompt, compression=None):
params = {
"model": "gpt-image-1",
"prompt": prompt,
"size": "1536x1024", # 横向图片
"quality": "high",
"output_format": "jpeg" if compression else "png",
"background": "transparent"
}
# 如果需要压缩,添加压缩参数
if compression:
params["output_compression"] = compression
try:
response = openai.Image.create(**params)
return response['data'][0]['url']
except Exception as e:
print(f"Error: {e}")
return None
# 下载并保存图像
def save_image(url, filename):
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img.save(filename)
print(f"Image saved as {filename}")
# 使用示例
prompts = [
"A futuristic city with flying cars and neon lights",
"A cozy coffee shop in autumn with warm lighting",
"An abstract art piece with vibrant colors and geometric shapes"
]
for i, prompt in enumerate(prompts):
print(f"Generating: {prompt}")
urls = generate_image(prompt)
if urls:
save_image(urls[0], f"image_{i+1}.png")