Saltar al contenido principal

Cómo utilizar la API de Difusión Estable 3

Aprende a utilizar la API de Difusión Estable 3 para la generación de imágenes con pasos prácticos e información sobre las nuevas funciones y mejoras.
Actualizado 30 jul 2024  · 12 min de lectura

Stability AI anunció un avance anticipado de Stable Diffusion 3 en febrero de 2024. El modelo de IA aún está en fase de previsualización, pero en abril de 2024, el equipo anunció que pondría a disposición de los usuarios Stable Diffusion 3 y Stable Diffusion 3 Turbo en la API de la Plataforma de Desarrolladores de IA de Stability, tras asociarse con Fireworks AI, la plataforma de API más rápida y fiable del mercado.

Ten en cuenta que la Difusión Estable 3 es simplemente una serie de modelos generativos de IA de texto a imagen. Según el equipo de Stability AI, el modelo es "igual o supera" a otros generadores de texto a imagen, como DALL-E 3 y Midjourney v6 de OpenAI, en "tipografía y adherencia a la indicación".

En este tutorial, aprenderás los pasos prácticos para empezar a utilizar la API y poder empezar a generar tus propias imágenes.

¿Por qué Difusión Estable 3?

Stable Diffusion 3 introduce varios avances y funciones que lo diferencian de sus predecesores y lo hacen muy competitivo en el espacio de la generación de texto a imagen, sobre todo en lo que se refiere a la mejora de la generación de texto y las funciones de seguimiento de indicaciones.

Exploremos estos avances:

Indicador mejorado tras

  • Comprensión contextual: Difusión Estable 3 incorpora técnicas punteras de procesamiento del lenguaje natural (PLN ), que le permiten comprender mejor e interpretar las indicaciones del usuario. Esto permite respuestas más precisas y contextualmente relevantes a las entradas del usuario.
  • Prompta continuidad: A diferencia de las versiones anteriores, la Difusión Estable 3 mantiene una mejor continuidad al seguir las indicaciones, lo que garantiza que el texto generado se mantenga coherente y alineado con la entrada del usuario a lo largo de la conversación.

Generación de texto mejorada

  • Modelos lingüísticos afinados: Difusión Estable 3 utiliza modelos lingüísticos perfeccionados que han sido sometidos a un entrenamiento exhaustivo en grandes conjuntos de datos, lo que da como resultado una mayor capacidad de generación de texto. Estos modelos comprenden mejor la gramática, la sintaxis y la semántica, lo que da lugar a respuestas más coherentes y naturales.
  • Menor variabilidad de respuesta: Mediante metodologías de entrenamiento y arquitecturas de modelo mejoradas, la Difusión Estable 3 reduce la variabilidad de las respuestas, generando resultados más coherentes y de mayor calidad en diferentes estímulos y contextos.

Ampliación avanzada de avisos

  • Soporte de diálogo multigiro: La Difusión Estable 3 puede manejar los diálogos de varios turnos con mayor eficacia, manteniendo la coherencia y el contexto en los múltiples intercambios entre el usuario y el modelo de IA.
  • Técnicas de expansión rápida: El modelo emplea técnicas avanzadas de expansión de instrucciones para generar respuestas más informativas y contextualmente relevantes, enriqueciendo el diálogo y proporcionando a los usuarios respuestas completas a sus consultas.

Mecanismos de control afinados

  • Ajuste de parámetros: Difusión Estable 3 presenta mecanismos de control afinados que permiten a los usuarios ajustar parámetros como la longitud de la respuesta, el nivel de creatividad y la relevancia del tema, lo que permite una experiencia de interacción más personalizada.
  • Mitigación del sesgo: El modelo incorpora medidas para mitigar los sesgos en la generación de textos, promoviendo la equidad y la inclusión en sus respuestas a las indicaciones de los usuarios.

Primeros pasos con la API Estable de Difusión 3

Esta sección repasará los pasos para empezar con la API de Estabilidad.

Paso 1: Crea tu cuenta. Tendrás que crear una cuenta antes de poder utilizar la API de Stability AI. Puedes registrarte utilizando un nombre de usuario y una contraseña, pero los nuevos usuarios obtienen 25 créditos gratuitos por registrarse utilizando su cuenta de Google.

Paso 2: Reclama tu clave API. Una vez que hayas creado tu cuenta, necesitarás una API get. Puedes encontrarlo en la página Claves API. En la documentación, Stability AI afirma que "Todas las API documentadas en este sitio utilizan el mismo mecanismo de autenticación: pasar la clave de la API a través del encabezado Autorización".

Paso 3: Recarga de créditos. Debes tener créditos para solicitar la API. Los créditos son la unidad monetaria que se consume al llamar a la API: la cantidad consumida varía según los modelos y modalidades. Después de utilizar todos tus créditos, puedes comprar más a través de tu panel de facturación a 1 USD por cada 100 créditos.

En este tutorial, utilizaremos Google Colab y ComfyUI para demostrar cómo generar imágenes utilizando la API de Difusión Estable 3. En la siguiente sección, cubriremos los pasos para empezar a utilizar cada herramienta.

Utilización de la API Estable Diffusion 3 con Google Colab

Para empezar con Google Colab, debes crear una cuenta de Google: haz clic en el enlace y sigue las instrucciones.

Si ya tienes una cuenta de Google, abre una nueva libreta y sigue los pasos que se indican a continuación.

Nota: El código utilizado en este ejemplo está tomado del tutorial SD3_API de Stability AI.

Paso 1: Instala los requisitos.

from io import BytesIO
import IPython
import json
import os
from PIL import Image
import requests
import time
from google.colab import output

Paso 2: Conéctate a la API de Estabilidad.

import getpass
# To get your API key, visit https://platform.stability.ai/account/keys
STABILITY_KEY = getpass.getpass('Enter your API Key')

Paso 3. Definir funciones

def send_generation_request(
    host,
    params,
):
    headers = {
        "Accept": "image/*",
        "Authorization": f"Bearer {STABILITY_KEY}"
    }

    # Encode parameters
    files = {}
    image = params.pop("image", None)
    mask = params.pop("mask", None)
    if image is not None and image != '':
        files["image"] = open(image, 'rb')
    if mask is not None and mask != '':
        files["mask"] = open(mask, 'rb')
    if len(files)==0:
        files["none"] = ''

    # Send request
    print(f"Sending REST request to {host}...")
    response = requests.post(
        host,
        headers=headers,
        files=files,
        data=params
    )
    if not response.ok:
        raise Exception(f"HTTP {response.status_code}: {response.text}")

    return response

Paso 4. Genera imágenes.

Según la documentación, los servicios de Imagen Estable sólo incluyen una oferta que está actualmente en producción:

  • SD3: utiliza 6,5 créditos
  • SD3 Turbo: utiliza 4 créditos

Vamos a probarlos.

En este ejemplo, crearemos una imagen de un pájaro tucán en una zona tropical de tierras bajas.

# SD3

prompt = "This dreamlike digital art captures a vibrant, Toucan bird in a lowland tropic area" #@param {type:"string"}
negative_prompt = "" #@param {type:"string"}
aspect_ratio = "1:1" #@param ["21:9", "16:9", "3:2", "5:4", "1:1", "4:5", "2:3", "9:16", "9:21"]
seed = 0 #@param {type:"integer"}
output_format = "jpeg" #@param ["jpeg", "png"]

host = f"https://api.stability.ai/v2beta/stable-image/generate/sd3"

params = {
    "prompt" : prompt,
    "negative_prompt" : negative_prompt,
    "aspect_ratio" : aspect_ratio,
    "seed" : seed,
    "output_format" : output_format,
    "model" : "sd3",
    "mode" : "text-to-image"
}

response = send_generation_request(
    host,
    params
)

# Decode response
output_image = response.content
finish_reason = response.headers.get("finish-reason")
seed = response.headers.get("seed")

# Check for NSFW classification
if finish_reason == 'CONTENT_FILTERED':
    raise Warning("Generation failed NSFW classifier")

# Save and display result
generated = f"generated_{seed}.{output_format}"
with open(generated, "wb") as f:
    f.write(output_image)
print(f"Saved image {generated}")

output.no_vertical_scroll()
print("Result image:")
IPython.display.display(Image.open(generated))

Esto es lo que creó:

Imagen creada por el autor con Difusión Estable 3

Ahora, vamos a crear una imagen de un coche hecho de frutas utilizando SD3 Turbo:

#SD3 Turbo

prompt = "A car made out of fruits." #@param {type:"string"}
aspect_ratio = "1:1" #@param ["21:9", "16:9", "3:2", "5:4", "1:1", "4:5", "2:3", "9:16", "9:21"]
seed = 0 #@param {type:"integer"}
output_format = "jpeg" #@param ["jpeg", "png"]

host = f"https://api.stability.ai/v2beta/stable-image/generate/sd3"

params = {
    "prompt" : prompt,
    "aspect_ratio" : aspect_ratio,
    "seed" : seed,
    "output_format" : output_format,
    "model" : "sd3-turbo"
}

response = send_generation_request(
    host,
    params
)

# Decode response
output_image = response.content
finish_reason = response.headers.get("finish-reason")
seed = response.headers.get("seed")

# Check for NSFW classification
if finish_reason == 'CONTENT_FILTERED':
    raise Warning("Generation failed NSFW classifier")

# Save and display result
generated = f"generated_{seed}.{output_format}"
with open(generated, "wb") as f:
    f.write(output_image)
print(f"Saved image {generated}")

output.no_vertical_scroll()
print("Result image:")
IPython.display.display(Image.open(generated))

La ejecución de este código produjo la siguiente imagen:

Imagen creada por el autor con Stable Diffusion 3 Turbo

Utilizar la API con ComfyUI

ComfyUI es una interfaz gráfica de usuario (GUI) robusta y flexible para la difusión estable. Presenta una interfaz basada en gráficos y utiliza un diseño de tipo diagrama de flujo para que los usuarios puedan crear y ejecutar flujos de trabajo de difusión sofisticados y estables.

Requisitos del sistema:

  • Unidad de procesamiento gráfico (GPU): Una GPU NVIDIA adecuada con un mínimo de 8 GB de VRAM, como la RTX 3060 Ti o superior.
  • Unidad Central de Proceso (CPU): Un procesador actual, incluyendo Intel Xeon E5, i5, Ryzen 5 o superior.
  • Memoria de acceso aleatorio (RAM): 16 GB o superior.
  • Sistema operativo: Windows 10/11 o Linux.
  • Espacio de almacenamiento adecuado en tu ordenador para los modelos y las imágenes generadas.

Paso 1: Instalar ComfyUI

El método más sencillo para instalar ComfyUI en Windows consiste en utilizar el instalador independiente que se encuentra en la página de versiones. Este instalador incluye dependencias esenciales como PyTorch y los Transformadores de Cara Abrazada, eliminando la necesidad de instalaciones separadas.

Proporciona un paquete completo, que permite una rápida instalación de ComfyUI en Windows sin necesidad de intrincadas configuraciones.

Sólo tienes que descargarlo, extraerlo, añadir modelos y ¡lanzarlo!

Paso 1.1: Descarga la versión independiente de ComfyUI desde este repositorio de GitHub - haciendo clic en el enlace se iniciará la descarga.

Paso 1.2: Una vez que hayas descargado el archivo comfyui-windows.zip más reciente, extráelo utilizando una utilidad como 7-Zip o WinRAR.

Paso 1.3: Se necesita un modelo de punto de control para empezar a usar ComfyUI. Puedes descargar un modelo de punto de control de Difusión Estable o Cara Abrazada. Coloca el modelo en la carpeta:

ComfyUI_windows_portable\ComfyUI\models\checkpoints

Paso 1.4: Ahora, simplemente ejecuta el archivo run_nvidia_gpu.bat (recomendado) o run_cpu.bat. Esto debería iniciar automáticamente ComfyUI en tu navegador.

La línea de comandos se ejecutará y generará una URL http://127.0.0.1:8188/ que ahora puedes abrir en tu navegador.

Paso 2: Instalar ComfyUI Manager

Dentro de la aplicación Explorador de archivos, localiza el directorio que acabas de instalar. Dado que utilizas Windows, debería llamarse "ComfyUI_windows_portable." Desde aquí, navega a ComfyUI, y luego a custom_nodes. Desde esta ubicación, escribe cmd en la barra de direcciones y pulsa Intro.

Esto debería abrir un terminal de símbolo del sistema, donde debes introducir el siguiente comando:

git clone https://github.com/ltdrdata/ComfyUI-Manager

Una vez completado, reinicia ComfyUI. El nuevo botón "Gestor" debería aparecer en el panel flotante.

Paso 3: Instala el nodo API de Estabilidad AI

Selecciona el botón Gestionar y navega hasta "Instalar nodos personalizados".Desde aquí, busca "API de estabilidad".

Localiza el nodo "Nodos de la API de estabilidad para ComfyUI" y haz clic en el botón Instalar situado a la derecha para iniciar el proceso de instalación. A continuación, aparecerá el botón "Reiniciar". Haz clic en "Reiniciar" para reiniciar ComfyUI.

Paso 4: Definir la clave API para todo el sistema

Este paso es opcional, pero se recomienda. Es decir, puedes establecer una clave API de la IA de Estabilidad para cada nodo dentro del nodo personalizado de la IA de Estabilidad. Esto evita la necesidad de introducir la clave API repetidamente en cada flujo de trabajo y reduce el riesgo de compartir inadvertidamente tu clave API al compartir el archivo JSON de tu flujo de trabajo.

Para ello, navega hasta el directorio del nodo personalizado:

ComfyUI_windows_portable > ComfyUI > custom_nodes > ComfyUI-SAI_API. 

Crea un nuevo archivo llamado sai_platform_key.txt. Pega tu Clave API en el archivo, guarda el documento y reinicia ComfyUI.

Paso 5: Carga y ejecuta el flujo de trabajo

Instala el flujo de trabajo texto-imagen de Stable Diffusion 3 y suéltalo en ComfyUI.

¡Ya puedes empezar!

Solución de problemas y consejos

Como con cualquier herramienta, siempre existe la posibilidad de que te encuentres con algunos problemas por el camino. Éstos son los problemas más comunes y los pasos para solucionarlos para los usuarios que tengan problemas con la API o con el proceso de configuración.

Clave API y problemas de autenticación

Desafío: Los usuarios pueden encontrarse con errores de autenticación al acceder a la API debido a una clave de API incorrecta o a unas credenciales de autenticación erróneas.

Solución de problemas: Comprueba dos veces la clave API y asegúrate de que se ha copiado y pegado correctamente. Comprueba que no hay espacios ni caracteres de más en la clave. Asegúrate de que la clave API está correctamente autenticada por el servidor Stable Diffusion 3.

Problemas de gestión del crédito

Desafío: Los usuarios pueden encontrarse con problemas relacionados con la gestión de créditos, como créditos insuficientes o errores de facturación.

Solución de problemas: Comprueba tu saldo de créditos en el panel de Difusión Estable 3 para asegurarte de que tienes créditos suficientes. Verifica tu información de facturación y aborda cualquier error o discrepancia de facturación con el equipo de asistencia.

Problemas de conectividad y de red

Desafío: Los usuarios pueden experimentar problemas de conectividad o interrupciones en la red que les impidan acceder a la API.

Solución de problemas: Asegúrate de que tienes una conexión a Internet estable y de que no hay interrupciones en la red. Para aislar el problema, intenta acceder a la API desde otra red o dispositivo. Ponte en contacto con tu proveedor de servicios de Internet si sigues teniendo problemas de conectividad.

Errores de compatibilidad y dependencia

Desafío: Los usuarios pueden encontrar problemas de compatibilidad o errores de dependencia al instalar o utilizar las herramientas y bibliotecas necesarias.

Solución de problemas: Comprueba los requisitos de compatibilidad de la API Estable de Difusión 3 y asegúrate de que utilizas versiones compatibles de herramientas y bibliotecas. Actualiza o reinstala cualquier dependencia que esté causando errores. Consulta la documentación y los foros de la comunidad para obtener orientación sobre la resolución de problemas.

Rendimiento y tiempo de respuesta

Desafío: Los usuarios pueden experimentar tiempos de respuesta lentos o problemas de rendimiento al interactuar con la API, especialmente durante las horas de mayor uso.

Solución de problemas: Supervisa el rendimiento de la API y haz un seguimiento de los tiempos de respuesta para identificar patrones o tendencias. Considera la posibilidad de pasar a un plan de suscripción de nivel superior para obtener un mejor rendimiento y acceso prioritario. Ponte en contacto con el equipo de asistencia si experimentas constantemente tiempos de respuesta lentos.

Documentación y apoyo

Desafío: Los usuarios pueden tener dificultades para comprender la documentación de la API o necesitar ayuda para solucionar problemas concretos.

Solución de problemas: Para obtener orientación sobre el uso de la API, la resolución de problemas y las mejores prácticas, consulta la documentación de Difusión Estable 3. Si tienes algún problema o pregunta sin resolver, ponte en contacto con el equipo de asistencia o los foros de la comunidad.

Conclusión

Difusión Estable 3 es una serie de modelos generativos de IA de texto a imagen. Este artículo cubría los pasos prácticos para empezar a utilizar la API con Google Colab y ComfyUI. Ahora ya tienes las habilidades necesarias para crear tus propias imágenes; asegúrate de aplicar lo aprendido lo antes posible para no olvidarlo.

¡Gracias por leer!

Perfeccionamiento

Preguntas frecuentes

¿Cuáles son algunas de las mejores prácticas para utilizar eficazmente la API de Difusión Estable 3?

Las mejores prácticas para utilizar la API de Difusión Estable 3 incluyen proporcionar indicaciones claras y específicas, experimentar con distintos parámetros para conseguir los resultados deseados, controlar el uso del crédito para evitar que se agote y mantenerse actualizado con la documentación y las funciones más recientes.

¿Qué es la Difusión Estable 3?

La Difusión Estable comprende una colección de modelos de IA centrados en generar imágenes a partir de indicaciones textuales. Los usuarios proporcionan descripciones de las imágenes deseadas, y el modelo genera las representaciones visuales correspondientes basándose en estas indicaciones.

¿Cómo funciona la Difusión Estable?

Difusión Estable 3 emplea una arquitectura de transformador de difusión similar a la de Sora, a diferencia de las versiones anteriores, que utilizaban un modelo de difusión similar al de la mayoría de las IAs de generación de imágenes existentes. Esta innovación fusiona la arquitectura de transformadores utilizada habitualmente en los grandes modelos lingüísticos, como GPT, con los modelos de difusión, ofreciendo la posibilidad de aprovechar los puntos fuertes de ambas arquitecturas.

Temas

¡Continúa hoy tu viaje por la IA!

programa

Fundamentos de la IA

10 horas hr
Descubre los fundamentos de la IA, sumérgete en modelos como ChatGPT y descifra los secretos de la IA generativa para navegar por el dinámico panorama de la IA.
Ver detallesRight Arrow
Comienza el curso
Certificación disponible

curso

Conceptos de grandes modelos lingüísticos (LLM)

2 hr
26.7K
Descubre todo el potencial de los LLM con nuestro curso conceptual que abarca las aplicaciones de los LLM, las metodologías de formación, las consideraciones éticas y las últimas investigaciones.
Ver másRight Arrow