Variaciones de imagen
La primera versión de una imagen rara vez es la definitiva: es un punto de partida que quiere explorar en cinco direcciones a la vez. Este endpoint toma una imagen fuente y devuelve un conjunto de alternativas que conservan su espíritu mientras varían los detalles, dándole opciones en vez de un único resultado fijo.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El problema real: elegir, no producir, una sola imagen
La mayor parte del trabajo creativo no se traba en producir una sola imagen, se traba en no saber cuál imagen es la correcta. A un diseñador le gusta la composición de un banner generado pero quiere verlo con luz más cálida, o con un ángulo levemente distinto, o con un fondo más cargado, y volver a escribir el prompt desde cero pierde lo que ya funcionaba. Este endpoint resuelve exactamente ese cuello de botella: conserva lo que funciona en la imagen fuente y deja que el resto varíe, así elige entre opciones reales en lugar de adivinar a ciegas un prompt nuevo.
Qué envía y qué recibe
Envía una imagen fuente, por URL o archivo, junto con cuántas variaciones quiere, y la tarea devuelve esa cantidad de imágenes alternativas cuando termina la generación. Cada variación comparte el ADN visual de la fuente, sujeto, paleta, composición general, mientras difiere en los detalles específicos que una nueva generación cambiaría de forma natural, y los resultados se entregan por webhook o por un enlace firmado como tarea asíncrona.
Por qué variar es una capacidad distinta de generar
Generar imágenes nuevas desde un prompt de texto y generar variaciones de una imagen existente son problemas técnicos distintos: uno parte del lenguaje, el otro parte de una referencia visual y la reinterpreta manteniéndose anclado a ella. Ese anclaje es lo que hace útiles a las variaciones de una forma que regenerar desde un prompt reescrito normalmente no logra, porque un prompt solo puede describir lo que cabe en palabras, mientras una imagen de referencia arrastra matices visuales que ninguna frase captura del todo.
Dónde encaja en un flujo de trabajo
Como es asíncrono, este endpoint encaja de forma natural después de un primer paso de generación o de carga: genera o recibe una imagen base, pide variaciones, y el webhook entrega el conjunto cuando está listo, sin que nadie espere frente a un ícono de carga. Los equipos lo usan para pruebas A/B de creatividades, para darle al usuario final un paso de elegir su favorita dentro de un flujo de personalización, o para explorar la dirección del moodboard de un cliente antes de comprometerse con una pieza final.
Lo que las variaciones sí y no hacen
Las variaciones reinterpretan una imagen; no garantizan un cambio específico solicitado, así que si necesita una edición precisa, como quitar un objeto o cambiar un texto exacto, una herramienta de edición dirigida es mejor opción. Trate este endpoint como una forma de ampliar rápidamente sus opciones a partir de un único punto de partida, no como una manera controlada de aplicar una modificación exacta.
Qué puede hacer con ella
Pruebas A/B creativas
Un equipo de marketing genera varias variaciones de un banner principal a partir de una imagen base aprobada y prueba cuál versión rinde mejor en una campaña.
Exploración de dirección con el cliente
Un estudio de diseño muestra al cliente un puñado de variaciones de un concepto aprobado en lugar de rehacer todo el brief en cada ronda de retroalimentación.
Flujos donde el usuario elige su favorita
Una app de impresión bajo demanda deja que el comprador genere varias variaciones de un diseño y elija la que más le gusta antes de ordenar.
Expandir un conjunto limitado de piezas
Un equipo pequeño estira una sola imagen principal licenciada o generada hasta una familia de visuales relacionados para usar en distintas páginas y formatos.
Preguntas frecuentes
¿Cómo genero variaciones de una imagen con la api?
Envía un POST a /image/variations con la imagen fuente y la cantidad de variaciones que quiere; recibe un task_id y los resultados llegan por webhook o por un enlace firmado.
¿Qué tan parecidas son las variaciones a la original?
Comparten el sujeto, la paleta y la composición general de la fuente mientras varían detalles específicos, así que espere una familia de imágenes relacionadas, no casi duplicados ni escenas nuevas sin relación.
¿Puedo pedir un número exacto de variaciones?
Sí, especifica cuántas variaciones quiere en la solicitud y recibe esa misma cantidad de resultados en la tarea completada.
¿Es lo mismo que generar una imagen desde un prompt?
No, image.generate crea una imagen nueva desde texto, mientras este endpoint reinterpreta una imagen existente que usted proporciona, manteniéndola anclada a la fuente.
¿Hay un plan gratuito para la api de variaciones de imagen?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuestan las variaciones de imagen?
$0.002 por solicitud más $0.0065 por imagen, y solo se cobran las variaciones que efectivamente se entregan.
¿Qué pasa si la tarea de variación falla?
Reintenta automáticamente hasta tres veces; si aun así no puede completarse, recibe un error claro y nunca se cobra el intento fallido.
¿Puedo usar esto para hacer una edición precisa, como quitar un objeto?
No de forma confiable: las variaciones reinterpretan la imagen en general en lugar de aplicar un cambio dirigido, así que una edición precisa necesita una herramienta de edición dedicada.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/image/variations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/variations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/variations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/variations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/variations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"image": "https://ejemplo.com/imagen.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.variations",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 15 |
max_megapixels | 12 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |