Cómo probar la generación de imágenes HiDream-I1 a través de API

Daniel Costa

Daniel Costa

22 April 2025

Cómo probar la generación de imágenes HiDream-I1 a través de API

Parece que cada semana recibimos nuevos modelos de generación de imágenes con IA capaces de crear visuales impresionantes. Uno de esos modelos poderosos es HiDream-I1-Full. Aunque ejecutar estos modelos de forma local puede ser intensivo en recursos, aprovechar las API proporciona una forma conveniente y escalable de integrar esta tecnología en sus aplicaciones o flujos de trabajo.

Este tutorial te guiará a través de:

  1. Comprender HiDream-I1-Full: Qué es y sus capacidades.
  2. Opciones de API: Explorando dos plataformas populares que ofrecen HiDream-I1-Full a través de API: Replicate y Fal.ai.
  3. Pruebas con Apidog: Una guía paso a paso sobre cómo interactuar y probar estas API utilizando la herramienta Apidog.
💡
¿Quieres una gran herramienta de pruebas de API que genere documentación de API hermosa?

¿Quieres una plataforma integrada, todo en uno, para que tu equipo de desarrolladores trabaje junto con máxima productividad?

¡Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!
botón

Público objetivo: Desarrolladores, diseñadores, entusiastas de la IA y cualquier persona interesada en utilizar generación de imágenes de IA avanzada sin configuraciones locales complejas.

Requisitos previos:

¿Qué es HiDream-I1-Full?

HiDream IA: ¿el nuevo rey de la generación de imágenes con IA?

HiDream-I1-Full es un modelo avanzado de difusión de texto a imagen desarrollado por HiDream AI. Pertenece a la familia de modelos diseñados para generar imágenes de alta calidad, coherentes y estéticamente agradables basadas en descripciones textuales (prompts).

Detalles del modelo: Puedes encontrar la tarjeta oficial del modelo y más información técnica en Hugging Face: https://huggingface.co/HiDream-ai/HiDream-I1-Full

Capacidades clave (típicas para modelos de esta clase):

Comparaciones de benchmarks de HiDream AI con GOT-4o, Recraft V3, Google Image 3, Ideogram 3.0 y FLUX (Fuente: ArtificialAnalysis)

¿Por qué usar una API?

Ejecutar grandes modelos de IA como HiDream-I1-Full de forma local requiere recursos computacionales significativos (GPUs potentes, RAM abundante y almacenamiento) y configuración técnica (gestionar dependencias, pesos de modelo, configuraciones de entorno). Usar una API ofrece varias ventajas:

Cómo usar HiDream-I1-Full a través de API

Varias plataformas alojan modelos de IA y proporcionan acceso a API. Nos centraremos en dos opciones populares para HiDream-I1-Full:

Opción 1: Usar la API HiDream de Replicate

Replicate es una plataforma que facilita ejecutar modelos de aprendizaje automático a través de una API sencilla, sin necesidad de gestionar infraestructura. Alojan una vasta biblioteca de modelos publicados por la comunidad.

Cómo funciona Replicate:

  1. Autenticación: Necesitas un token de API de Replicate, que puedes encontrar en la configuración de tu cuenta. Este token se pasa en el encabezado Authorization.
  2. Iniciar una Predicción: Envías una solicitud POST al endpoint de API de Replicate para predicciones. El cuerpo de la solicitud contiene la versión del modelo y los parámetros de entrada (como prompt, negative_prompt, seed, etc.).
  3. Operación Asincrónica: Replicate normalmente opera de forma asincrónica. La solicitud POST inicial devuelve inmediatamente un ID de predicción y URLs para comprobar el estado.
  4. Obtener Resultados: Necesitas consultar la URL de estado (proporcionada en la respuesta inicial) usando solicitudes GET hasta que el estado sea succeeded (o failed). La respuesta final exitosa contendrá la(s) URL(s) de la(s) imagen(es) generada(s).

Ejemplo Conceptual en Python (usando requests):

import requests
import time
import os

REPLICATE_API_TOKEN = "TU_TOKEN_API_REPLICATE" # Usa variables de entorno en producción
MODEL_VERSION = "VERSION_DEL_MODELO_OBJETIVO_DE_LA_PAGINA_REPLICATE" # por ejemplo, "9a0b4534..."

# 1. Iniciar Predicción
headers = {
    "Authorization": f"Token {REPLICATE_API_TOKEN}",
    "Content-Type": "application/json"
}
payload = {
    "version": MODEL_VERSION,
    "input": {
        "prompt": "Un paisaje urbano ciberpunk majestuoso al atardecer, luces de neón reflejándose en calles mojadas, ilustración detallada",
        "negative_prompt": "feo, deformado, borroso, baja calidad, texto, marca de agua",
        "width": 1024,
        "height": 1024,
        "seed": 12345
        # Agrega otros parámetros según sea necesario basándote en la página del modelo de Replicate
    }
}

start_response = requests.post("<https://api.replicate.com/v1/predictions>", json=payload, headers=headers)
start_response_json = start_response.json()

if start_response.status_code != 201:
    print(f"Error al iniciar la predicción: {start_response_json.get('detail')}")
    exit()

prediction_id = start_response_json.get('id')
status_url = start_response_json.get('urls', {}).get('get')

print(f"Predicción iniciada con ID: {prediction_id}")
print(f"URL de estado: {status_url}")

# 2. Consultar Resultados
output_image_url = None
while True:
    print("Comprobando estado...")
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status')
    if status == 'succeeded':
        output_image_url = status_response_json.get('output') # Generalmente una lista de URLs
        print("¡Predicción exitosa!")
        print(f"Salida: {output_image_url}")
        break
    elif status == 'failed' or status == 'canceled':
        print(f"La predicción falló o fue cancelada: {status_response_json.get('error')}")
        break
    elif status in ['starting', 'processing']:
        # Espera antes de consultar nuevamente
        time.sleep(5) # Ajusta el intervalo de consulta según sea necesario
    else:
        print(f"Estado desconocido: {status}")
        print(status_response_json)
        break

# Ahora puedes usar output_image_url

Precios: Replicate cobra según el tiempo de ejecución del modelo en su hardware. Consulta su página de precios para más detalles.

Opción 2: Fal.ai

Fal.ai es otra plataforma centrada en proporcionar inferencias rápidas, escalables y rentables para modelos de IA a través de API. A menudo enfatizan el rendimiento en tiempo real.

Cómo Funciona Fal.ai:

  1. Autenticación: Necesitas credenciales de API de Fal (ID de clave y clave secreta, a menudo combinadas como KeyID:KeySecret). Esto se pasa en el encabezado Authorization, típicamente como Key TuKeyID:TuKeySecret.
  2. Endpoint de API: Fal.ai proporciona una URL de endpoint directa para la función específica del modelo.
  3. Formato de Solicitud: Envías una solicitud POST a la URL del endpoint del modelo. El cuerpo de la solicitud es típicamente JSON que contiene los parámetros de entrada requeridos por el modelo (similar a Replicate: prompt, etc.).
  4. Síncrono vs. Asincrónico: Fal.ai puede ofrecer ambos. Para tareas que pueden tardar mucho tiempo, como la generación de imágenes, pueden usar:

Ejemplo Conceptual en Python (usando requests - asumiendo cola asincrónica):

import requests
import time
import os

FAL_API_KEY = "TU_FAL_KEY_ID:TU_FAL_KEY_SECRET" # Usa variables de entorno
MODEL_ENDPOINT_URL = "<https://fal.run/fal-ai/hidream-i1-full>" # Consulta la URL exacta en Fal.ai

# 1. Enviar Solicitud a la Cola (Ejemplo - consulta la documentación de Fal para la estructura exacta)
headers = {
    "Authorization": f"Key {FAL_API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    # Los parámetros suelen estar directamente en el payload para funciones sin servidor de Fal.ai
    # o dentro de un objeto 'input' dependiendo de la configuración. ¡Consulta la documentación!
    "prompt": "Un retrato hiperrealista de un astronauta flotando en el espacio, reflejando la Tierra en la visera del casco",
    "negative_prompt": "dibujo, ilustración, boceto, texto, letras",
    "seed": 98765
    # Agrega otros parámetros admitidos por la implementación de Fal.ai
}

# Fal.ai podría requerir agregar '/queue' o parámetros de consulta específicos para asincrónico
# Ejemplo: POST <https://fal.run/fal-ai/hidream-i1-full/queue>
# ¡Consulta su documentación! Suponiendo un endpoint que devuelve una URL de estado:

submit_response = requests.post(f"{MODEL_ENDPOINT_URL}", json=payload, headers=headers, params={"fal_webhook": "URL_WEBHOOK_OPCIONAL"}) # Consulta la documentación para parámetros de consulta como webhook

if submit_response.status_code >= 300:
    print(f"Error al enviar la solicitud: {submit_response.status_code}")
    print(submit_response.text)
    exit()

submit_response_json = submit_response.json()

# La respuesta asincrónica de Fal.ai podría diferir - podría devolver un request_id o una URL de estado directa
# Suponiendo que devuelve una URL de estado similar a Replicate para este ejemplo conceptual
status_url = submit_response_json.get('status_url') # O construir desde request_id, consulta la documentación
request_id = submit_response_json.get('request_id') # Identificador alternativo

if not status_url and request_id:
     # Puede que necesites construir la URL de estado, por ejemplo, <https://fal.run/fal-ai/hidream-i1-full/requests/{request_id}/status>
     # O consultar un endpoint de estado genérico: <https://fal.run/requests/{request_id}/status>
     print("Necesitas construir la URL de estado o usar request_id, consulta la documentación de Fal.ai.")
     exit() # Necesita implementación específica según la documentación de Fal

print(f"Solicitud enviada. URL de estado: {status_url}")

# 2. Consultar Resultados (si es asincrónico)
output_data = None
while status_url: # Solo consulta si tenemos una URL de estado
    print("Comprobando estado...")
    # La consulta podría requerir autenticación también
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status') # Consulta la documentación de Fal.ai para claves de estado ('COMPLETED', 'FAILED', etc.)

    if status == 'COMPLETED': # Estado de ejemplo
        output_data = status_response_json.get('response') # O 'result', 'output', consulta la documentación
        print("¡Solicitud completada!")
        print(f"Salida: {output_data}") # La estructura de salida depende del modelo en Fal.ai
        break
    elif status == 'FAILED': # Estado de ejemplo
        print(f"La solicitud falló: {status_response_json.get('error')}") # Consulta el campo de error
        break
    elif status in ['IN_PROGRESS', 'IN_QUEUE']: # Estados de ejemplo
        # Espera antes de consultar nuevamente
        time.sleep(3) # Ajusta el intervalo de consulta
    else:
        print(f"Estado desconocido: {status}")
        print(status_response_json)
        break

# Usa output_data (que podría contener URLs de imágenes u otra información)

Precios: Fal.ai típicamente cobra según el tiempo de ejecución, a menudo con facturación por segundo. Consulta sus detalles de precios para el modelo específico y los recursos de computación.

Prueba la API HiDream con Apidog

Apidog es una poderosa herramienta de diseño, desarrollo y pruebas de API. Proporciona una interfaz fácil de usar para enviar solicitudes HTTP, inspeccionar respuestas y gestionar detalles de la API, lo que la hace ideal para probar las APIs de Replicate y Fal.ai antes de integrarlas en el código.

botón

Pasos para probar la API HiDream-I1-Full usando Apidog:

Paso 1. Instalar y abrir Apidog: Descarga e instala Apidog o usa su versión web. Crea una cuenta si es necesario.

Paso 2. Crear una nueva solicitud:

Paso 3. Establecer el método HTTP y la URL:

Paso 4. Configurar Encabezados:

Agregar el encabezado Content-Type:

Agregar el encabezado Authorization:

Para Replicate:

Para Fal.ai:

Paso 5. Configurar el cuerpo de la solicitud:

Ve a la pestaña Body.

Selecciona el formato raw y elige JSON del menú desplegable.

Pega el payload JSON según los requisitos de la plataforma.

Ejemplo de cuerpo JSON para Replicate:

{
  "version": "PEGA_LA_VERSION_DEL_MODELO_DE_LA_PAGINA_REPLICATE_AQUI",
  "input": {
    "prompt": "Una pintura en acuarela de un acogedor rincón de biblioteca con un gato durmiendo",
    "negative_prompt": "fotorrealista, renderizado 3d, arte malo, deformado",
    "width": 1024,
    "height": 1024,
    "seed": 55555
  }
}

Ejemplo de cuerpo JSON para Fal.ai

{
  "prompt": "Una pintura en acuarela de un acogedor rincón de biblioteca con un gato durmiendo",
  "negative_prompt": "fotorrealista, renderizado 3d, arte malo, deformado",
  "width": 1024,
  "height": 1024,
  "seed": 55555
  // Otros parámetros como 'model_name' pueden ser necesarios dependiendo de la configuración de Fal.ai
}

Importante: Consulta la documentación específica en las páginas de Replicate o Fal.ai para los parámetros exactos requeridos y opcionales para la versión del modelo HiDream-I1-Full que estás utilizando. Parámetros como guidance_scale, num_inference_steps, etc., pueden estar disponibles.

Paso 6. Enviar la solicitud:

Consultar Resultados (para APIs Asincrónicas):

Ver la Imagen: Copia la URL de la imagen de la respuesta final exitosa y pégala en tu navegador web para ver la imagen generada.

💡
¿Quieres una gran herramienta de pruebas de API que genere documentación de API hermosa?

¿Quieres una plataforma integrada, todo en uno, para que tu equipo de desarrolladores trabaje junto con máxima productividad?

¡Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!
botón

Conclusión

HiDream-I1-Full ofrece potentes capacidades de generación de imágenes, y usar APIs de plataformas como Replicate o Fal.ai hace que esta tecnología sea accesible sin gestionar infraestructura compleja. Al comprender el flujo de trabajo de la API (solicitud, posible consulta, respuesta) y utilizar herramientas como Apidog para pruebas, puedes experimentar e integrar fácilmente la generación de imágenes de IA de vanguardia en tus proyectos.

Recuerda siempre consultar la documentación específica en Replicate y Fal.ai para obtener las URL de endpoint más actualizadas, los parámetros requeridos, los métodos de autenticación y los detalles de precios, ya que estos pueden cambiar con el tiempo. ¡Feliz generación!

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs