{}const=>[]async()letfn</>var
JSWebDesarrollo

Cómo crear un generador de imágenes de IA con HTML, CSS y JavaScript

Aprende a crear un generador de imágenes con inteligencia artificial usando solo HTML, CSS y JavaScript. ¡Instrucciones para principiantes, código claro, conexión a la API de Hugging Face y un diseño elegante con un tema oscuro!

К

Kodik

Autor

10 min de lectura

¿Cómo crear un generador de imágenes de IA desde cero? 🤔

Veamos paso a paso cómo crear tu propia aplicación web que convertirá una descripción de texto en imágenes usando la API de Hugging Face. Todo lo que necesitas es un poco de conocimiento de HTML, CSS y JavaScript. Este es un gran proyecto para principiantes: ¡fácil de implementar y con resultados impresionantes!

Puedes descargar todos los códigos de los proyectos al final del artículo


📚 Contenido

  • 🚀 ¿Por qué hacer un proyecto así?

  • 🛠️ ¿Qué vamos a hacer?

  • 📁 Estructura del proyecto

  • 1️⃣ HTML (index.html)

  • 2️⃣ CSS (style.css)

  • 3️⃣ JavaScript (script.js)

  • 💡 Resultado

  • 📌 Consejos e ideas para mejorar

  • 🙋 Preguntas frecuentes (FAQ)

  • ✅ Conclusión


🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

🚀 ¿Por qué hacer un proyecto así?

Imagina que en solo un par de horas creas una aplicación web que convierte el texto en imágenes con la ayuda de la inteligencia artificial. ¿Suena a magia? Es solo una combinación de HTML, CSS, JavaScript y una API externa. 🤖✨

Por eso, este proyecto es un verdadero hallazgo para un principiante:

  • Práctica con API — aprenderás a enviar solicitudes a un servidor externo y procesar respuestas. ¡Esta es una habilidad clave de un desarrollador web moderno!

  • Visuales geniales — el resultado de tu trabajo será visible de inmediato. Introduces el texto y obtienes una imagen brillante. Es muy emocionante e inspirador.

  • Fijación de conocimientos — HTML, CSS, JS — todo en un solo lugar. Y no en ejemplos abstractos, sino en una miniaplicación real.

  • Tema claro y oscuro — tendencia de los últimos años. Haremos un botón de conmutación entre ellos y aprenderás cómo se implementa en la práctica.

  • Portafolio - un proyecto así no pasará desapercibido. Demuestra que sabes trabajar con API, crear interfaces y pensar en el usuario.

Si estabas buscando un proyecto que fuera útil, bonito y realmente interesante, lo has encontrado.


🛠️ ¿Qué vamos a hacer?

Imaginemos: abres una página, escribes una frase como «castillo en las nubes al atardecer», pulsas un botón y, en un par de segundos, obtienes imágenes únicas creadas por la IA. ¡Eso es exactamente lo que vamos a hacer!

Crearemos una aplicación web completa en la que el usuario podrá:

  • Introducir una descripción de texto (prompt) que describa una escena imaginaria

  • Elegir un modelo de generación de imágenes (por ejemplo, Stable Diffusion)

  • Ajustar el número de imágenes de una a cuatro

  • Establecer la relación de aspecto deseada: cuadrado, horizontal o vertical

  • Pulsa el botón «Generar» y verás el resultado al instante

  • Guardar imágenes en tu ordenador 💾

Y también cambiar el tema entre claro y oscuro. Cómodo, moderno y bonito.

Este proyecto te ayudará a dominar las habilidades reales de desarrollo web y comprender cómo funcionan las herramientas modernas de IA.


📁 Estructura del proyecto

Antes de escribir el código, debes organizar el proyecto correctamente. Este es un paso importante: una estructura clara te ayudará a navegar y hacer cambios más fácilmente en el futuro.

Crea una carpeta separada y asígnale un nombre, por ejemplo, ai-image-generator. Dentro de esta carpeta, crea 3 archivos principales:

  • index.html — aquí estará el marcado principal: estructura de la página, botones, campos de entrada y listas desplegables

  • style.css: archivo de estilos en el que crearemos un diseño moderno y adaptable, e implementaremos un tema oscuro y claro

  • script.js es un archivo JavaScript que se encarga de la lógica: procesamiento de datos, conexión a la API, generación de imágenes e interacción con la interfaz

Todo es simple y claro. ¡En pocos minutos tendrás una base con la que empezar a crear!


1️⃣ HTML (index.html)

Empecemos por lo más importante: el marco de nuestra aplicación. Es HTML el responsable de la estructura de la página: cómo se ve todo, dónde se encuentran los botones, campos, encabezados. Aquí describiremos lo que el usuario verá en el navegador.

HTML es la base sobre la que luego se «ponen» los estilos (CSS) y la lógica (JavaScript).

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>AI Image Generator Kodik APP</title>
  <!-- Font Awesome for icons -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
  <link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
  <!-- Header -->
  <header class="header">
    <div class="logo-wrapper">
      <div class="logo">
        <i class="fa-solid fa-wand-magic-sparkles"></i>
      </div>
      <h1>AI Image Generator</h1>
    </div>
    <button class="theme-toggle">
      <i class="fa-solid fa-moon"></i>
    </button>
  </header>
  <div class="main-content">
    <form action="#" class="prompt-form">
      <!-- Prompt Textarea Container -->
      <div class="prompt-container">
        <textarea class="prompt-input" placeholder="Describe your imagination in detail..." spellcheck="false" autofocus required></textarea>
        <button type="button" class="prompt-btn" title="Get Random Prompt">
          <i class="fa-solid fa-dice"></i>
        </button>
      </div>
      <!-- Prompt Actions / Buttons -->
      <div class="prompt-actions">
        <div class="select-wrapper">
          <select class="custom-select" id="model-select" required>
            <option value="" selected disabled>Select Model</option>
            <option value="black-forest-labs/FLUX.1-dev">FLUX.1-dev</option>
            <option value="black-forest-labs/FLUX.1-schnell">FLUX.1-schnell</option>
            <option value="stabilityai/stable-diffusion-xl-base-1.0">Stable Diffusion XL</option>
            <option value="runwayml/stable-diffusion-v1-5">Stable Diffusion v1.5</option>
            <option value="stabilityai/stable-diffusion-3-medium-diffusers">Stable Diffusion 3</option>
          </select>
        </div>
        <div class="select-wrapper">
          <select class="custom-select" id="count-select" required>
            <option value="" selected disabled>Image Count</option>
            <option value="1">1 Image</option>
            <option value="2">2 Images</option>
            <option value="3">3 Images</option>
            <option value="4">4 Images</option>
          </select>
        </div>
        <div class="select-wrapper">
          <select class="custom-select" id="ratio-select" required>
            <option value="" selected disabled>Aspect Ratio</option>
            <option value="1/1">Square (1:1)</option>
            <option value="16/9">Landscape (16:9)</option>
            <option value="9/16">Portrait (9:16)</option>
          </select>
        </div>
        <button type="submit" class="generate-btn">
          <i class="fa-solid fa-wand-sparkles"></i>
          Generate
        </button>
      </div>
    </form>
    <!-- Result Gallery Grid -->
    <div class="gallery-grid"></div>
  </div>
</div>
<script src="script.js"></script>
</body>
</html>

2️⃣ CSS (style.css)

Ahora que tenemos la estructura, es hora de hacer que la aplicación sea realmente bonita y agradable a la vista. Es CSS el que se encarga de la apariencia de todos los elementos: desde los botones hasta el fondo.

En nuestro caso, crearemos un diseño moderno con:

  • Animaciones fluidas

  • Diseño adaptable para que todo se vea bien tanto en la computadora como en el teléfono

  • Tema claro y oscuro, entre los cuales el usuario puede cambiar con un solo clic

  • Botones elegantes, campos de entrada y tarjetas con imágenes

También conectaremos la fuente Inter con Google Fonts: se ve moderno y legible.

¡Esta interfaz es agradable de usar y no es inferior a los servicios externos en Internet!

/* Importing Google Fonts - Inter */
@import url('https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap');
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
}
:root {
  --color-primary: #5C56E1;
  --color-primary-dark: #5b21b6;
  --color-accent: #8B5CF6;
  --color-card: #FFFFFF;
  --color-input: #F1F1FF;
  --color-text: #09090E;
  --color-placeholder: #5C5A87;
  --color-border: #D4D4ED;
  --color-gradient: linear-gradient(135deg, #5C56E1, #8B5CF6);
}
body.dark-theme {
  --color-card: #1E293B;
  --color-input: #141B2D;
  --color-text: #F3F4F6;
  --color-placeholder: #A3B6DC;
  --color-border: #334155;
  background: var(--color-card);
  background-image: radial-gradient(circle at 15% 50%, rgba(99, 102, 241, 0.15) 0%, transparent 35%), radial-gradient(circle at 85% 30%, rgba(139, 92, 246, 0.15) 0%, transparent 35%), radial-gradient(circle at 50% 80%, rgba(99, 102, 241, 0.1) 0%, transparent 40%);
}

(El código completo se puede obtener en github. El enlace al final del artículo, solo tienes que insertarlo en style.css)


3️⃣ JavaScript (script.js)

HTML es responsable de la estructura, CSS de la apariencia, pero JavaScript dará vida a nuestra aplicación.

Con su ayuda, nosotros:

  • Procesamos la entrada del usuario: descripción de texto, modelo seleccionado y parámetros de generación

  • Enviamos una solicitud a la API de Hugging Face para obtener imágenes

  • Mostrar las imágenes en una bonita cuadrícula con efectos de carga

  • Añadiremos la funcionalidad del botón "pista aleatoria", que introduce automáticamente ideas interesantes

  • Implementamos el cambio entre el tema claro y el oscuro

Aquí trabajarás con DOM, eventos, solicitudes asíncronas (fetch) y mucho más. ¡Este es un gran entrenamiento para desarrollar habilidades reales de desarrollo de JavaScript!

👉 Inserta tu clave API de Hugging Face en lugar de PASTE-YOUR-API-KEY:

const promptForm = document.querySelector(".prompt-form");
const themeToggle = document.querySelector(".theme-toggle");
const promptBtn = document.querySelector(".prompt-btn");
const promptInput = document.querySelector(".prompt-input");
const generateBtn = document.querySelector(".generate-btn");
const galleryGrid = document.querySelector(".gallery-grid");
const modelSelect = document.getElementById("model-select");
const countSelect = document.getElementById("count-select");
const ratioSelect = document.getElementById("ratio-select");

const API_KEY = "PASTE-YOUR-API-KEY"; // Hugging Face API Key

// Example prompts
const examplePrompts = [
  "A magic forest with glowing plants and fairy homes among giant mushrooms",
  "An old steampunk airship floating through golden clouds at sunset",
  "A future Mars colony with glass domes and gardens against red mountains",
  "A dragon sleeping on gold coins in a crystal cave",
  "An underwater kingdom with merpeople and glowing coral buildings",
  "A floating island with waterfalls pouring into clouds below",
  "A witch's cottage in fall with magic herbs in the garden",
  "A robot painting in a sunny studio with art supplies around it",
  "A magical library with floating glowing books and spiral staircases",
  "A Japanese shrine during cherry blossom season with lanterns and misty mountains",
  "A cosmic beach with glowing sand and an aurora in the night sky",
  "A medieval marketplace with colorful tents and street performers",
  "A cyberpunk city with neon signs and flying cars at night",
  "A peaceful bamboo forest with a hidden ancient temple",
  "A giant turtle carrying a village on its back in the ocean",
];

Si no tienes la clave, regístrate gratis en huggingface.co y consíguelo en la sección Access Tokens

(El código completo se puede encontrar en github. Enlace al final del artículo)


💡 Resultado

Cuando termines este proyecto, no solo tendrás un conjunto de archivos, sino una verdadera miniaplicación que se ve profesional y funciona con inteligencia artificial real.

Podrás:

  • Introduce cualquier descripción imaginaria y obtén una imagen generada como si fuera de fantasía

  • Utilizar diferentes modelos para la generación, incluidas las versiones populares de Stable Diffusion

  • Guarda tus imágenes favoritas y compártelas con tus amigos

  • Cambia el tema de diseño según la hora del día o tu estado de ánimo 🌞🌙

Y lo más importante: lo has hecho tú mismo. De principio a fin. ¡Este resultado te da una poderosa carga de confianza en ti mismo y motivación para seguir adelante!


📌 Consejos e ideas para mejorar

El proyecto ya está listo, pero no tienes por qué detenerte ahí. Así es como puedes mejorarlo aún más:

  • Favoritos — haz posible añadir las mejores imágenes a una galería separada

  • Edición de consultas — añadir un botón de regeneración donde se pueda cambiar el prompt sin reiniciar completamente el formulario

  • Historia — guarda las consultas e imágenes anteriores en localStorage para que el usuario pueda volver a ellas más tarde

  • Comentarios — permitir al usuario evaluar el resultado o dejar un comentario

  • Compartir — añadir la posibilidad de compartir la imagen a través de un enlace o exportarla a las redes sociales

¡Es una forma estupenda de desarrollar un proyecto y mejorar tus habilidades al mismo tiempo!


🙋 Preguntas frecuentes (FAQ)

🔑 ¿Dónde puedo obtener una clave API de Hugging Face?

Ir al sitio web huggingface.co, crea una cuenta (si aún no la tienes), luego ve a la sección Settings > Access Tokens y genera una nueva clave. Insértala en la variable API_KEY en script.js.

🖼️ ¿Cuántas imágenes se pueden generar a la vez?

Puedes elegir de 1 a 4 imágenes. Este valor se configura en la lista desplegable de la página.

⚠️ ¿Por qué no se carga la imagen?

Posibles causas:

  • Clave API no válida

  • Conexión a Internet inestable

  • Error en el lado del modelo (se pueden ver los detalles en los registros de la consola del navegador)

🌗 ¿Cómo funciona el cambio de tema?

El sitio recuerda el tema seleccionado (claro u oscuro) y lo guarda en localStorage, y también tiene en cuenta la configuración del sistema del navegador.

📱 ¿Funciona en dispositivos móviles?

Sí, la interfaz está adaptada para dispositivos móviles. Todos los elementos se escalan y la galería de imágenes se reconstruye para adaptarse a la pantalla.

📤 ¿Puedo compartir los resultados?

¡Por supuesto! Haz clic en el icono de descarga debajo de la imagen: el archivo se guardará y podrás enviarlo a tus amigos o publicarlo en las redes sociales.


✅ Conclusión

Eso es todo: acabas de pasar de una carpeta vacía a una aplicación de IA lista para usar que genera imágenes a partir de texto. 🔥

Has aprendido a:

  • usar HTML para construir la interfaz

  • aplicar CSS para crear un diseño adaptable y moderno

  • habilitar JavaScript e interactuar con una API externa

Este proyecto no es solo educativo. Se ve decente, funciona de manera estable y demuestra que sabes cómo construir herramientas web reales.

Sigue experimentando:

  • prueba nuevos modelos

  • cambia la interfaz

  • añade nuevas funciones

Cada mejora te hará más fuerte como desarrollador. ¡Buena suerte en tu viaje! 🚀

Puedes descargar el código fuente desde nuestro GitHub

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta