Image

We can perform Image generation and Image editing using DALL-E model of OpenAI. Before we begin, let’s import some image-processing libraries.

Python3




# importing other libraries
import requests
from PIL import Image
from io import BytesIO


Now we construct a function to produce an image using the DALL E API’s “create” endpoint.

Python3




# function for text-to-image generation 
# using create endpoint of DALL-E API
# function takes in a string argument
def generate(text):
  res = openai.Image.create(
    # text describing the generated image
    prompt=text,
    # number of images to generate 
    n=1,
    # size of each generated image
    size="256x256",
  )
  # returning the URL of one image as 
  # we are generating only one image
  return res["data"][0]["url"]


An argument string is passed to the API endpoint by the aforementioned function. Other parameters are n (the “number of images generated using that prompt”) and size (the “size of the image generated”). Either Base64 or a URL can be used by the API to generate an image. As output, API provides the created image’s URL.

Note: The size of the generated images must be one of 256×256, 512×512, or 1024×1024.

Examples for Image Generation

Now Let’s see some examples to gain a better understanding of Image Generation using DALL-E

Prompt 1:

Python3




# prompt describing the desired image
text = "batman art in red and blue color"
# calling the custom function "generate"
# saving the output in "url1"
url1 = generate(text)
# using requests library to get the image in bytes
response = requests.get(url1, stream=True)
# using the Image module from PIL library to view the image
Image.open(response.raw)


Output:

batman art in red and blue color

Prompt 2:

Python3




# text prompt describing my desired image
text = "a scenic view of moon shining light on a yacht"
# generate function uses DALL-E API to generate image
# it returns a temporary URL of the image
url1 = generate(text)
# We use the requests library to fetch the image from URL
response = requests.get(url1, stream=True)
# We use the Image Class from PIL library to open the image
Image.open(response.raw)


Output:

A scenic view of moon shining light on a yacht

Examples for Image Editing

For editing the image we use the create edit endpoint of the DALL-E API. In this section, a mask will be uploaded and a text prompt will be supplied in order to change an image. Where the image should be altered is indicated by the transparent portions of the mask, and the prompt should describe the entire new image rather than just the area that was erased.

Make sure your image and mask are of the same size (square PNG) and less than 4MB in size before passing them as arguments to API. For this we use the below code.

Python3




response = requests.get(url1)
# saving the image in PNG format
with open("img.png", "wb") as f:
  f.write(response.content)
# opening the saved image and converting it into "RGBA" format
# converted image is saved in result
result = Image.open('img.png').convert('RGBA')
# saving the new image in PNG format
result.save('img_rgba.png','PNG')


Also, write a prompt such that it describes the full new image not just the transparent area that needs to be replaced. Use the following lines of code to edit the image.

Let’s see the example to gain a better understanding of Image Editing using DALL-E.

Image 1:

We will be using the below image as input:

Input Image for Create Edit endpoint

Below is the code for editing the image and generating 3 images as output.

Python3




# using create_edit endpoint of the DALL - E API
response = openai.Image.create_edit(
  # opening original image in read mode
  image=open("img_rgba.png", "rb"),
  # opening mask image in read mode 
  mask=open("mask.png", "rb"),
  # text prompt describing the new image
  prompt="gotham city skyline behind batman",
  # number of images to be generated
  n=1,
  #size of each image generated in pixels
  size="256x256"
)
  
# saving the URLs of all image in new variable "res"
res = response['data']
  
# loop to save and display images
for i in range(len(res)):
  # saving URL of image in res
  image_url = res[i]['url']
  # extracting image from URL in bytes form
  response = requests.get(image_url, stream=True)
  # opening the image
  k = Image.open(response.raw)
  # displaying the image
  k.show()
  # saving the image
  with open(f"img_mask_edit_{i}.png", "wb") as f:
    f.write(response.content)


Output:

OpenAI Python API – Complete Guide

OpenAI is the leading company in the field of AI. With the public release of software like ChatGPT, DALL-E, GPT-3, and Whisper, the company has taken the entire AI industry by storm. Everyone has incorporated ChatGPT to do their work more efficiently and those who failed to do so have lost their jobs. The age of AI has started and people not adapting to AI could introduce some difficulties for them. 

In this article, we will be discussing how you can leverage the power of AI and make your day-to-day tasks a lot easier by using the OpenAI APIs (Application Programming Interface) that allow developers to easily access their AI models and Integrate them into their own applications using Python.

Table of Content

  • What is OpenAI?
  • What is OpenAI API?
  • Generate OpenAI API key
  • Installation of OpenAI package
  • Prompt Engineering
  • Text
  • Chat
  • Image
  • Audio
  • Embeddings
  • Fine-Tuning
  • API Error Codes
  • Conclusion
  • FAQs on OpenAI Python API

Similar Reads

What is OpenAI?

...

What is OpenAI API?

OpenAI is a Leading Company in the field of Artificial Intelligence(AI). It was originally founded in 2015 by Sam Altman and Elon Musk as a Non-profit Organization. They primarily focus on AI-based Software products Such as ChatGPT 3, ChatGPT 4 and DALL-E etc. They develop next-generation AI products holding incredible capabilities, for example, OpenAIs GPT-3 which is a Content filtering model that allows you to implement advanced text classification, outline, question-answering, and other chatbot applications....

Generate OpenAI API key

OpenAI API is a powerful cloud-based platform, hosted on Microsoft’s Azure, designed to provide developers with seamless access to state-of-the-art, pre-trained artificial intelligence models. This API empowers developers to effortlessly integrate cutting-edge AI capabilities into their applications, regardless of the programming language they choose to work with. By leveraging the OpenAI Python API, developers can unlock advanced AI functionalities and enhance the intelligence and performance of their software solutions....

Installation of OpenAI package

For you to use OpenAI’s models in your Python environment, you must first generate an API key. You can follow the below steps to generate the API key:...

Prompt Engineering

Step 1: Now open a text editor of your choosing or an online notebook like Google Colab or Jupyter Notebook. Here, we’re using a Google Colab notebook to run the command indicated below in order to install the Open AI library in Python....

Text

...

Chat

Giving the AI brain a unique set of instructions to increase its intelligence and responsiveness is what AI prompt engineering entails. To comprehend what we want from AI models like ChatGPT or GPT-4, they need to be gently nudged in the right direction. Prompt engineering can help with it. The finest answers from the AI may be ensured by carefully structuring the prompts. Now, prompt engineering doesn’t only happen once. The process of adjusting and experimenting is continuing. When we ask the AI a question, we experiment with varied wording and the addition of unique rules. We seem to be concocting a miraculous concoction of instructions! Let’s take a look at some rules to construct good prompts to generate accurate results for AI....

Image

For performing any text-specific tasks you can define the following function and execute it with your desired prompts....

Audio

...

Embeddings

...

Fine-Tuning

...

API Error Codes

...

Conclusion

...

OpenAI Python API – FAQs

...