ES ▾
Obtener clave de API

Generador de prompts para ChatGPT SDXL frente a tu propio script de API

Actualizado

Un flujo de trabajo de generador de prompts de chatgpt sdxl significa abrir una ventana de chat, escribir una idea, copiar la respuesta en tu herramienta de imágenes y repetir. Está bien para diez prompts y es miserable para mil. Este artículo compara esa rutina con un script corto que llama a una API y pone números en ambos.

Escena dividida isométrica: lento rastro de papel manual frente a una cinta transportadora de baldosas brillantes automatizadas
Diorama de un pequeño escenario con burbujas de diálogo brillantes que representan un escenario de rol de texto

Puntos clave

  • El chat manual es mejor para explorar un estilo; un script es mejor una vez que necesitas volumen o repetibilidad.
  • A 30 segundos por prompt manual, 1.000 prompts toman aproximadamente 8.3 horas; un script puede terminar en minutos.
  • En esta API, 1.000 prompts de unos 300 tokens de entrada y 200 de salida cuestan aproximadamente $0,145.
  • Un script también te da formatos fijos, entradas guardadas y reintentos, lo que una ventana de chat no tiene.

Dos formas de obtener prompts SDXL de un modelo de lenguaje

La primera forma es un asistente de chat. Pegas una instrucción de estilo de sistema una vez, luego envías ideas cortas una a la vez y copias cada respuesta en tu herramienta de imágenes. No necesita código, ves la respuesta inmediatamente y puedes decir "más oscuro, más cinematográfico" y obtener una revisión. Para el descubrimiento, es difícil de superar.

La segunda forma es un script. Escribes la instrucción una vez en código, cargas una lista de ideas desde un archivo, llamas a un endpoint de chat completions para cada uno y escribes los resultados en un archivo o los envías directamente a tu generador de imágenes. Este servicio es una API compatible con OpenAI, solo de texto, que sirve un único modelo de pesos abiertos de un proveedor independiente. No es ChatGPT ni un producto de OpenAI, pero cualquier SDK de OpenAI puede conectarse con él una vez que cambies la URL base y la clave.

Ningún enfoque dibuja imágenes. En ambos, el modelo escribe texto y una herramienta separada como SDXL la renderiza.

Lado a lado

FactorVentana de chatScript de API
ConfiguraciónNingunaClave, 30 líneas de Python
Mejor tamaño de loteDe 1 a 20 promptsCientos a miles
Formato de salidaLo que devuelva el chat; lo limpias manualmenteEl modo JSON devuelve campos que puedes analizar
RepetibilidadSe desvía a medida que crece la conversaciónMisma instrucción en cada llamada, semilla opcional
IteraciónNatural: responder con comentariosEditas el guion y lo vuelves a ejecutar
Modelo de costoDepende del plan que tengas; consulta sus términos actualesPago por token, crédito prepago
RechazosDepende de la política de contenido del asistenteEste modelo responde sin rechazos de contenido para uso adulto lícito

El resumen honesto: si haces un puñado de imágenes por semana y disfrutas conversar sobre ellas, mantente en el chat. Un guion comienza a ser rentable cuando copiar y pegar se convierte en el paso más lento de tu flujo de trabajo.

El costo en tiempo de copiar y pegar

Toma una suposición modesta: 30 segundos por prompt para escribir la idea, esperar, copiar el resultado y pegarlo donde corresponde. En 1.000 prompts eso son 1.000 × 30 s = 30.000 s, o unas 8,3 horas de atención.

Un script tiene una forma diferente. Supongamos que cada llamada a la API tarda unos 5 segundos (esa es una suposición, así que mide la tuya). Con 8 peticiones en curso, que es el límite de concurrencia de una clave completa, 1.000 llamadas tardan aproximadamente 1.000 / 8 × 5 s = 625 s, un poco más de 10 minutos. El límite de peticiones de 300 por minuto significa que el piso absoluto es poco más de 3 minutos. Lo inicias, te haces un café y lees el archivo después.

El tiempo ahorrado es el argumento principal. El dinero es secundario, como muestra la siguiente sección.

Costo por 1.000 prompts

Esta API cobra $0,15 por 1M de tokens de entrada y $0,50 por 1M de tokens de salida. Supongamos que cada llamada envía una instrucción de 250 tokens y una idea de 50 tokens (300 de entrada) y devuelve un prompt de 200 tokens.

  • Entrada: 1.000 × 300 = 300.000 tokens × $0,15 / 1M = $0,045.
  • Salida: 1.000 × 200 = 200.000 tokens × $0,50 / 1M = $0,10.
  • Total: $0.145 para 1,000 prompts.

Para comparar con una suscripción de chat u otra API, divide el precio de ese plan por el número de prompts que realmente harás en un mes y verifica su precio actual en lugar de confiar en una cifra de un artículo. El crédito de prueba de $0,50, reclamado con un clic en la página de clave de API después del inicio de sesión, cubre un poco más de 3.400 prompts de este tamaño. Consulta la página de precios para recargas desde $20 hasta $500, con cripto.

Un guion por lotes con reintentos

El guion de abajo lee ideas de ideas.txt, una por línea, y escribe prompts.jsonl. Ejecuta 6 procesos en paralelo y reintenta en 429.

import json, time
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI, RateLimitError

client = OpenAI(base_url="https://api.sdxlapi.com/v1", api_key="YOUR_KEY", max_retries=0)

SYSTEM = (
    "Expand the idea into one SDXL prompt of 40 to 60 words: subject, setting, "
    "lighting, style, mood, comma-separated. Return JSON with key 'prompt'."
)

def make(idea):
    for attempt in range(5):
        try:
            r = client.chat.completions.create(
                model="uncensored",
                messages=[{"role": "system", "content": SYSTEM},
                          {"role": "user", "content": idea}],
                response_format={"type": "json_object"},
                temperature=0.8,
            )
            return {"idea": idea, **json.loads(r.choices[0].message.content)}
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    return {"idea": idea, "prompt": None}

ideas = [l.strip() for l in open("ideas.txt") if l.strip()]
with ThreadPoolExecutor(max_workers=6) as pool, open("prompts.jsonl", "w") as out:
    for row in pool.map(make, ideas):
        out.write(json.dumps(row, ensure_ascii=False) + "\n")

Mantén el número de procesos en o por debajo de 8 con una clave de pago, o 2 con una clave de prueba. Si ves 429 con el código concurrency, redúcelo; rate_limited significa que excediste el límite por minuto. Las peticiones fallidas no se facturan, así que los reintentos son gratis. Más sobre parámetros está en la documentación.

Obtención de mejores resultados del script

La primera ejecución de un lote rara vez es la mejor. Tres cambios económicos mejoran los resultados más que cambiar de herramienta.

  • Agrega dos o tres ejemplos al prompt del sistema. Pega prompts que te generaron imágenes que te gustaron, cada uno con la idea corta que lo produjo. El modelo copia la estructura y el nivel de detalle.
  • Pasa un campo de estilo. Mantén un pequeño diccionario como "fotograma de película", "acuarela", "render isométrico", y añade el estilo elegido a cada idea. Una lista de ideas puede entonces producir varios estilos.
  • Filtra la salida. Rechaza filas cuyo prompt sea más corto que 25 palabras o más largo que 80, luego vuelve a ejecutar solo esas. Una verificación corta en código supera la lectura de mil líneas.

Guarda la idea junto a cada resultado. Cuando una imagen sale bien, quieres ver exactamente qué la produjo, y un historial de chat se pierde al hacer scroll. El tema sigue siendo tu decisión: el modelo está ajustado para uso adulto legal, y el límite estricto es que nunca se genera nada sexual que involucre a menores de edad.

Cuándo quedarse con el chat

Un guion no siempre es la mejor opción. Usa un asistente de chat cuando aún no sabes qué quieres, cuando cada imagen necesita una conversación sobre composición, o cuando tu volumen es lo suficientemente pequeño como para que el tiempo de configuración exceda el tiempo ahorrado. Un patrón común es usar el chat para encontrar una buena instrucción, luego pegar esa instrucción en el guion como prompt del sistema y ejecutar el trabajo por lotes allí.

Piensa también en los datos. Los prompts enviados a esta API no se utilizan para entrenamiento. Para cualquier otro servicio, lee su política de datos antes de enviar obras creativas no publicadas.

Preguntas y respuestas

¿Es esta API lo mismo que ChatGPT?

No. Es un endpoint compatible con OpenAI que sirve un modelo de pesos abiertos de un proveedor independiente. No es un producto de OpenAI.

¿Puede la API generar también la imagen SDXL?

No. Solo escribe texto. Tu prompt se envía a SDXL, ComfyUI, Automatic1111 u otra herramienta de imágenes.

¿Cuánto cuesta generar 1,000 prompts?

Aproximadamente $0,145 para prompts de unos 300 tokens de entrada y 200 de salida, a $0,15 por 1M de tokens de entrada y $0,50 por 1M de tokens de salida.

¿Qué tan rápido puede ejecutarse un lote?

Una clave completa permite 8 solicitudes simultáneas y 300 por minuto, por lo que 1,000 prompts cortos pueden terminar en minutos. Las claves de prueba permiten 2 y 60.

Tu clave está a un formulario de distancia

Crea una cuenta, copia la clave, cambia la URL base. Esa es toda la configuración.

Obtener clave de API