New announcement for DALL-E 3!
Coming Soon! (October for the API)
New announcement for DALL-E 3!
Coming Soon! (October for the API)
Awesome! Dall-E has always held a special spot in my heart. It works so sweet to capture the semantics of the prompt.
Very excited to try it out. Incorporating it into ChatGPT is going to sweet. I wonder how that will work exactly? It must cost credits?
Also, this image, with the prompt that created it is incredible.
Also, what?
DALL¡E 3 is now in research preview, and will be available to ChatGPT Plus and Enterprise customers in October via the API
So one has to be subscribed to ChatGPT Plus to access Dall-E via the API? Surely not?
Just saw this wonderful announcement:
Is it available via the API yet and if so, doc link please? If not, when?
Coming in October, donât know what date yet.
DALL¡E 3 is now in research preview, and will be available to ChatGPT Plus and Enterprise customers in October via the API, and in Labs later this fall.
The experimental version this summer was so great. Iâm betting 3 is even betterâŚ
Not sure, I had access to the Dall-E experimental plugin for a while, was suuuper cool. Did the best cartoons Iâve ever seen.
Ahhh Iâm envious. Dall-E kicks ass. I love the ability to âgrowâ the art. Canât wait to see the masterpieces
If Dall-E is your thing, the Discord has daily image theme competitions and is very active on the creative side of things, worth a visit. OpenAI Discord
The samples are beautiful. Undeniably a step up from DALL-E 2. Anyone know if there a paper to go along with this announcement?
Exciting, I wonder how this compares to the updated version of DALLE that Bing image generator has been using. Same thing or even newer?
In the alpha plugin I was testing it was significantly different, the Bing one was the same as the Dall-E 2.Exp (experimental). I preferred the Plugin through ChatGPT, it was also able to create business documents and signs, logos, info graphics and that kind of thing. Pumped about it being fully finished now and almost ready to go.
Semantics?
This prompt doesnât say to âmake half the tiger out of treesâ. âStands tall and proudâ is not âa floating entityâ. But this is often seen currently where a wrongly-placed word will twist the whole image.
Best of 4 Bing AI image from the prompt:
Re-written:
It looks like the new Dall-e is 1348 in the example: portrait and landscape will be well appreciated if thatâs not a crop. Well-defined and detailed imagery.
Thanks Paul! Iâm really looking forward to it. I made a virtual world builder with integrated Dalle-2 support via an in-world chat window. But I had to add a manual import feature because Leonardo AI and Midjourney were just too far ahead (until now) and made Dalle-2 look like an amateur tool. This is really exciting for me.
Of course, itâs not perfect. I am comparing it to other models like Stable Diffusion where itâs mainly keyword-focused (Dall-E can be as well but I find it much nicer in just âflowingâ out sentences and having it capture it). So I can do
âan idea depicted as an explosion of color de la cabeza de una person anonimo, forming a new galaxy with billions of stars, master workâ (donât ask why I decided to go spanish halfway)
or
" An ethereal dance of a beautiful cyberpunk couple. The definition of harmony, colors and musical notes are creating from apparent thin air. The world around this dancing couple is a quantum delight of particle explosions and stars, illuminating the love they have for eachother"
Instead of
âhighres, shadows, absurdres, best_quality, ultra_detailed, 8k, extremely_clear, photograph, beautiful, sharp focus, hdr, underwater, giant whale, fantastic location, dream, flying, underwater cyberpunk cityâ
How was it with adhering to the prompt text? Itâs pretty much an ubiquitous problem with all of the current AI gen tech, image and video, that each of them have their own massive blinds spots when it comes to following the prompt. You literally canât force them to do simple things like, depending on the model, have the main object cross the screen from to right (video/Pika Labs), etc. and you learn to modify your prompt attempts to complement the manifold surface of their weak spots. Did you see much of that with Dalle-3 experimental?
Also, did OpenAI ever even hint at coming up with their own video gen service? That would be amazing!
Haha! Love the pre-Sharknado pic.
Really good in my opinion!
âsmall set of 4 images (32 pixels) potion icon simple design (photorealistic illustration) (gamedev) (Unreal Engine 5) (game ready icon assets) (black background)â
I can show some comparisons if you want. Itâs night and dayâŚ
Text wasnât perfect, but it was doing a lot better⌠hands tooâŚ
?? 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
#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}")
listen_for_commands()
Weâre not sure yet, but hopefully weâll just be able to drop in the new model - ie no changes like from completion to chat endpointsâŚ
That said, I would love to have negative prompting features âŚ