ChatGPT使用案例之图像生成

ChatGPT使用案例之图像生成

这里一节我们介绍一下ChatGPT的图像生成,这里我们使用代码来完成,也就是通过API 来完成,因为ChatGPT 本身是不能生成图片的,言外之意我们图片生成是ChatGPT通过其他方式生成的

Images API提供了三种与图像交互的方法:

  1. 基于文本提示从头开始创建图像
  2. 基于新的文本提示创建对现有图像的编辑
  3. 创建现有图像的变体

当然如果你觉得这种方式不好或者不能满足要求,可以使用midjourney,也是通过prompt 生成的

生成图片

我们可以运行下面的方法生成图片,图片大小有 256x256, 512x512,1024x1024 ,例如我们这里就是1024x1024 ,n 是我们要生成的图片数量,这里就是3,最多一次调用可以生成10张。

def generate():
    response = openai.Image.create(
        prompt="a white siamese cat",
        n=3,
        size="1024x1024"
    )
    image_urls = response['data']
    print(image_urls)

运行之后我们就看到把生成的图片链接打印出来了

ChatGPT使用案例之图像生成_第1张图片

我们可以点看链接去看看

图片编辑

图像编辑API 运行通过上传遮罩来编辑和扩展图像。遮罩的透明区域指示应在何处编辑图像,提示应描述完整的新图像,而不仅仅是已擦除的区域,其实就是通过ChatGPT 生成遮罩区域的图像。

我们看一下代码

response = openai.Image.create_edit(
  image=open("sunlit_lounge.png", "rb"),
  mask=open("mask.png", "rb"),
  prompt="A sunlit indoor lounge area with a pool containing a flamingo",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']

我们的输入和输入如下所示

ChatGPT使用案例之图像生成_第2张图片

这里有两个问题需要注意一下,一个是我们的图片格式,否则可能抛出下面的错误

raise self.handle_error_response(
openai.error.InvalidRequestError: Invalid input image - format must be in ['RGBA', 'LA', 'L'], got RGB.

我们可以使用PIL模块进行图片格式转换

from PIL import Image
image=Image.open("original.png")
img = image.convert('RGBA')
img.save("original2.png")

还有就是我们的遮罩也就是mask 必须是和原图一样大的

raise self.handle_error_response(
openai.error.InvalidRequestError: Invalid input mask - mask size must match image size 1468x1462, got 1470x1462 instead.

图片调整

其实这里准确的描述应该是可以针对我们的图片进行一些变化,也就是生成变化

def variation():
    response = openai.Image.create_variation(
        image=open("image_edit_mask2.png", "rb"),
        n=1,
        size="1024x1024"
    )
    image_url = response['data'][0]['url']
    print(image_url)
variation()

下面分别就是我们的输入输出

这里有一个需要注意的地方那就是这个变化完全是由ChatGPT控制的,我们不能提示也就是不能使用prompt,否则

openai.error.InvalidRequestError: Additional properties are not allowed ('prompt' was unexpected)

总结

到这里我们关于ChatGPT生成图像就已经介绍完了,可以看到的是只是有这个功能,还不够强大,目前只支持下面三种形式

  1. 基于文本提示从头开始创建图像
  2. 基于新的文本提示创建对现有图像的编辑
  3. 创建现有图像的变体

如果不满足需求,可以让ChatGPT 生成prompt,然后通过midjourney根据prompt生成。

你可能感兴趣的:(ChatGPT,chatgpt,人工智能,计算机视觉)