forked from jdmartinev/Taller3-PI1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmovie_pictures.py
49 lines (41 loc) · 1.33 KB
/
movie_pictures.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#importar librerías
import os
from openai import OpenAI
import json
from dotenv import load_dotenv, find_dotenv
import requests
from PIL import Image
from io import BytesIO
import numpy as np
#Se lee del archivo .env la api key de openai
_ = load_dotenv('openAI.env')
client = OpenAI(
# This is the default and can be omitted
api_key=os.environ.get('openAI_api_key'),
)
#Se carga la lista de películas de movie_titles.json
with open('movie_descriptions.json', 'r') as file:
file_content = file.read()
movies = json.loads(file_content)
idx_movie = np.random.randint(len(movies)-1)
print(movies[idx_movie])
#Se hace la conexión con la API de generación de imágenes. El prompt en este caso es:
#Alguna escena de la película + "nombre de la película"
response = client.images.generate(
model="dall-e-3",
prompt=f"Portada de la película {movies[np.random.randint(idx_movie)]['title']}",
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
# La API devuelve la url de la imagen, por lo que debemos generar una función auxiliar que
# descargue la imagen.
def fetch_image(url):
response = requests.get(url)
response.raise_for_status()
# Convert the response content into a PIL Image
image = Image.open(BytesIO(response.content))
return(image)
img = fetch_image(image_url)
img.show()