En este tutorial aprende a crear una web usando la API de OpenAI llamada Dall-e-2 la cual permite crear imagenes usando Prompts o textos.
Crea un archivo index.html con el siguiente código:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Javascript Dall-e-2</title>
<link rel="stylesheet" href="./index.css" />
</head>
<body>
<section class="container">
<div class="card">
<h1>Image Generator</h1>
<input
type="text"
placeholder="Generacion de Imagenes"
class="input"
id="input"
/>
<button class="btn" id="btn">Generate</button>
<img class="img" src="" id="img" />
</div>
</section>
<script src="./index.js"></script>
</body>
</html>
Luego crea un archivo index.css con el siguiente código:
body {
background: #202020;
color: white;
}
.container {
display: flex;
justify-content: center;
height: calc(100vh - 20px);
align-items: center;
}
.card {
background: #2a2a2a;
border-radius: 7px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
padding: 20px;
width: 400px;
max-width: 100%;
text-align: center;
}
.input {
padding: 10px;
border-radius: 5px;
}
.btn {
padding: 10px;
border-radius: 5px;
background: #202020;
color: white;
border: none;
cursor: pointer;
}
.btn:disabled {
opacity: 0.5;
}
.img {
margin-top: 10px;
width: 70%;
}
Luego añade el siguiente Código de Javascript:
const btn = document.querySelector('#btn');
const img = document.querySelector('#img');
const input = document.querySelector('#input');
btn.addEventListener('click', () => {
img.src = "https://images.crunchbase.com/image/upload/c_lpad,f_auto,q_auto:eco,dpr_1/erkxwhl1gd48xfhe2yld"
});
Integración de la API de OpenAI
Primero ve a la documentacion de la API de generacion de Imagenes de OpenAI luego genera tu API key para que puedas conectar tu aplicacion a la API de OpenAI.
Luego podras actualizar el codigo de la siguiente forma:
const btn = document.querySelector("#btn");
const img = document.querySelector("#img");
const input = document.querySelector("#input");
const OPENAI_API_KEY = "sk...";
btn.addEventListener("click", async () => {
if (input.value === "") {
alert("Please enter a prompt!");
return;
}
btn.disabled = true;
const res = await fetch("https://api.openai.com/v1/images/generations", {
method: "POST",
body: JSON.stringify({
prompt: input.value,
n: 1,
size: "1024x1024",
}),
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${OPENAI_API_KEY}`,
}
});
const data = await res.json();
console.log(data)
input.value = "";
img.src = data.data[0].url;
btn.disabled = false;
// img.src = "https://images.crunchbase.com/image/upload/c_lpad,f_auto,q_auto:eco,dpr_1/erkxwhl1gd48xfhe2yld"
});