Escalar una imagen
Fotos de producto antiguas, imágenes de archivo del tamaño de una miniatura, capturas de pantalla de baja resolución que necesitan llenar un banner principal: este endpoint toma una imagen pequeña y la reconstruye más grande, en 2x o 4x, sin el aspecto blando y pastoso de un simple estiramiento de píxeles. Envía el archivo y recibe uno más grande que todavía se ve como una foto.
Esta tarea no está disponible ahora mismo, así que no se puede contratar. No se cobra nada por ella.
Cómo funciona y APIPor qué 'agrandarla y ya' suele salir mal
Estirar una imagen es trivial; estirarla bien no lo es. Los métodos de interpolación clásicos, los que trae integrados la mayoría de las librerías de imagen, inventan píxeles nuevos promediando a los vecinos, y ese promedio es exactamente lo que produce el aspecto pastoso y borroso que todos reconocen en una foto mal agrandada. Los bordes finos se suavizan, el texto se convierte en mancha, y la textura de la piel o la tela se aplana hasta parecer plástico. El problema empeora cuanto más se agranda, por eso un estiramiento 4x sin cuidado se ve notablemente peor que uno 2x.
Qué hace distinto el escalado real
En lugar de simplemente repartir los píxeles existentes sobre un lienzo más grande, la tarea reconstruye detalle verosímil a medida que agranda: afina bordes, conserva textura y evita los halos y artefactos de contorno que deja un afinado excesivo aplicado después. Elige 2x o 4x, envía la imagen de origen y recibe un archivo más grande que se sostiene a ese nuevo tamaño en lugar de verse como la misma foto, simplemente estirada.
Un problema tan viejo como la imagen digital
La superresolución, recuperar detalle que una captura de baja resolución nunca registró, es un problema de investigación desde las primeras cámaras digitales que producían imágenes más pequeñas que las pantallas donde debían mostrarse. Cada generación de técnicas de escalado persiguió el mismo objetivo: sumar detalle creíble sin inventar algo que no estaba ahí. Este endpoint aplica esa línea de trabajo como una sola llamada de API en lugar de un proceso de investigación.
Dónde una imagen pequeña se vuelve un problema real
Aparece todo el tiempo: un proveedor envía una foto de producto de 400px para una plantilla de listado que pide 1600px, un archivo antiguo solo tiene escaneos en resolución de miniatura, el avatar de un usuario se ve bien como círculo pequeño pero se pixela apenas se usa como banner de perfil. Escalar convierte cada uno de esos casos, de un callejón sin salida, en un activo utilizable, sin volver a fotografiar ni a escanear el original.
Cómo insertarlo en un flujo de trabajo
La tarea corre de forma asíncrona: envía la imagen y el factor objetivo, recibe un task_id, y el archivo agrandado llega por un webhook firmado en el momento en que está listo, útil cuando escalar es una etapa dentro de un trabajo mayor, como la digitalización de un archivo o la renovación masiva de un catálogo donde cada foto de origen debe alcanzar una resolución mínima antes de publicarse.
Qué puede hacer con ella
Renovación de catálogo de producto heredado
Un minorista hereda una década de fotos de producto en baja resolución y escala todo el conjunto para cumplir con el tamaño mínimo de una plantilla de listado moderna.
Restauración de archivo y escaneos
Un proyecto de digitalización solo tiene miniaturas escaneadas de documentos o fotos antiguas y las escala antes de mostrarlas o imprimirlas.
Reutilización de avatar como banner
Un avatar pequeño subido por un usuario se escala 4x para reutilizarlo como imagen de cabecera nítida, sin pedirle al usuario que vuelva a subir la foto.
Activos de origen solo en miniatura
Un equipo de diseño solo tiene una imagen de referencia del cliente del tamaño de una miniatura y la escala a una resolución de trabajo utilizable antes de maquetar.
Preguntas frecuentes
¿Cómo escalo una imagen con la api?
Haga un POST a /image/upscale con la imagen de origen y el factor objetivo, 2x o 4x; recibe un task_id y la imagen agrandada llega por webhook o enlace firmado.
¿Cuál es la diferencia entre escalar 2x y 4x?
2x duplica ancho y alto, 4x los cuadruplica; los factores más altos tardan un poco más y se notan más en fuentes muy pequeñas o muy comprimidas.
¿Escalar vuelve nítida una foto borrosa?
Agranda preservando bordes y textura mucho mejor que un estiramiento simple, pero no puede recuperar detalle que nunca se capturó; las fuentes muy borrosas o muy comprimidas seguirán mostrando su suavidad original a mayor tamaño.
¿Hay un plan gratuito para la api de escalar 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 cuesta escalar una imagen?
$0.061 por solicitud más $0.0041 por imagen, y solo se cobran las tareas completadas.
¿Ya está disponible la api de escalar imagen?
Está en despliegue y todavía no acepta trabajos; el endpoint y el precio aquí indicados son definitivos y abrirán en breve.
¿Qué formatos de imagen puedo escalar?
Se aceptan los formatos rasterizados comunes como entrada, y elige el formato de salida para el resultado agrandado.
¿Puedo escalar un lote grande de imágenes de una vez?
Sí, combine este endpoint con la API de Procesamiento en Lote para escalar muchas imágenes en una sola llamada, cada una cotizada por separado.
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/upscale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/foto.jpg","scale":2}'const res = await fetch("https://api.kit.forhosting.com/image/upscale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/foto.jpg",
"scale": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/upscale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/foto.jpg",
"scale": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/upscale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/foto.jpg","scale":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/foto.jpg","scale":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/upscale", 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/foto.jpg",
"scale": 2
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.upscale",
"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. |
501 | coming_soon | Capacidad en despliegue (Fase 1b). Su landing existe; aún no acepta ejecuciones. |