Dall-e-3 api format, hmm do we just add the model in the Image endpoint calls like so

?? so are the endpoints going to change from Image.__ , or do we just add the model in the parameters as such once we have access in October?;

import os
import openai
import requests
from datetime import datetime
import uuid

openai.api_key = “api_here”

def save_image(image_url, save_path):
response = requests.get(image_url)
with open(save_path, ‘wb’) as f:
f.write(response.content)
print(f"Image saved at {save_path}")

def create_image(prompt, n=1, size=“1024x1024”, save_dir=“./images_creations”):
response = openai.Image.create(prompt=prompt, n=n, size=size, model=“dall-e-3”) #just add it here when referring to endpoint calls?
image_urls = [data[‘url’] for data in response[‘data’]]

if not os.path.exists(save_dir):
    os.makedirs(save_dir)

for i, image_url in enumerate(image_urls):
    save_path = get_save_path(prompt.replace(" ", "_"), save_dir, f"creation_{i}")
    save_image(image_url, save_path)

return image_urls

def create_edit(image_path, mask_path, prompt, n=1, size=“1024x1024”, save_dir=“./images_edits”):
with open(image_path, “rb”) as image_file, open(mask_path, “rb”) as mask_file:
response = openai.Image.create_edit(
image=image_file,
mask=mask_file,
prompt=prompt,
n=n,
size=size,
model=“dall-e-3” #just add it here when referring to endpoint calls?
)
image_data = response[‘data’]

if not os.path.exists(save_dir):
    os.makedirs(save_dir)

image_paths = []
for i, data in enumerate(image_data):
    save_path = os.path.join(save_dir, f"{prompt.replace(' ', '_')}_{i}.png")
    save_image(data['url'], save_path)
    image_paths.append(save_path)

return image_paths

def create_variation(image_path, n=1, size=“1024x1024”, save_dir=“./images_variations”, model=“dall-e-3”): #and here when referring to endpoint calls?
with open(image_path, “rb”) as image_file:
response = openai.Image.create_variation(
image=image_file,
n=n,
size=size,
)
image_data = response[‘data’]

if not os.path.exists(save_dir):
    os.makedirs(save_dir)

image_paths = []
for i, data in enumerate(image_data):
    save_path = os.path.join(save_dir, f"{os.path.basename(image_path).replace('.png', '')}_variation_{i}.png")
    save_image(data['url'], save_path)
    image_paths.append(save_path)

return image_paths

Example usage:

#image_paths = create_image(“A cute baby sea otter kitty saying meow”, n=2)
#edit_paths = create_edit(image_paths[0], “path/to/your/mask.png”, “A modified image description”, n=1)
#variation_paths = create_variation(image_paths[1], n=1)

def get_save_path(base_name, save_dir, suffix=“”):
timestamp = datetime.now().strftime(“%Y%m%d_%H%M%S”)
unique_id = str(uuid.uuid4())[:8]
filename = f"{base_name}{suffix}{timestamp}_{unique_id}.png"
return os.path.join(save_dir, filename)

def listen_for_commands():
while True:
try:
command = input("Enter a command: “)
args = command.split(” ")

        if args[0].lower() == "create":
            if len(args) < 2:
                print("Usage: create <prompt> [n] [size] [save_dir]")
                continue
               
            prompt = args[1]
            n = int(args[2]) if len(args) > 2 else 1
            size = args[3] if len(args) > 3 else "1024x1024"
            save_dir = args[4] if len(args) > 4 else "./images_creations"
            
            image_urls = create_image(prompt, n, size, save_dir)
            print("Generated image URLs: ", image_urls)
        
        elif args[0].lower() == "edit":
            if len(args) < 4:
                print("Usage: edit <image_path> <mask_path> <prompt> [n] [size] [save_dir]")
                continue

            image_path, mask_path, prompt = args[1], args[2], args[3]
            n = int(args[4]) if len(args) > 4 else 1
            size = args[5] if len(args) > 5 else "1024x1024"
            save_dir = args[6] if len(args) > 6 else "./images_edits"
            
            create_edit(image_path, mask_path, prompt, n, size, save_dir)

        elif args[0].lower() == "vary":
            if len(args) < 2:
                print("Usage: vary <image_path> [n] [size] [save_dir] [save_option]")
                continue
              
            image_path = args[1]
            n = int(args[2]) if len(args) > 2 else 1
            size = args[3] if len(args) > 3 else "1024x1024"
            save_dir = args[4] if len(args) > 4 else "./images_variations"
            save_option = args[5] if len(args) > 5 else ""

            image_urls = create_variation(image_path, n, size, save_dir)

            if save_option.lower() == "save":
                base_name = os.path.splitext(os.path.basename(image_path))[0]
                for i, image_url in enumerate(image_urls):
                    save_path = get_save_path(base_name, save_dir, f"variation_{i}")
                    save_image(image_url, save_path)
            else:
                print("Generated image URLs: ", image_urls)

        else:
            print(f"Unknown command: {args[0]}")
    
    except Exception as e:
        print(f"An error occurred: {e}")

Start listening for commands

listen_for_commands()

A post was merged into an existing topic: DALL-E 3 Announcement, Coming Soon