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"
});