Imágenes
Genera, edita y anima imágenes por Meteor — misma key, debitando Energía, sin proveedor externo.
met.images genera, edita y anima imágenes desde tu código, por la misma key que el resto de la API. No necesitas contratar ni firmar contra un proveedor externo: Meteor corre el modelo, aloja el resultado y debita Energía a tu workspace por cada operación.
Requiere una key live (
met_live_…) con scopeintegrations:execute. Una key de test devuelve403. Además, tu workspace debe tener una integración de imágenes ACTIVA en el marketplace de MCPs; sin ella, la generación falla.
Como todas las operaciones con efectos, corre server-side:
import { Met } from '@meteor.ia/sdk';
const met = new Met(process.env.MET_KEY!, { workspaceId: 42 });
Generar una imagen
const img = await met.images.generate({
prompt: 'Mockup de una taza blanca con logo minimalista, fondo neutro',
aspect_ratio: '1:1',
});
console.log(img.url); // URL pública alojada por Meteor
console.log(img.format); // 'png' | 'jpeg' | 'webp' | …
console.log(img.size_bytes); // tamaño del archivo
console.log(img.model); // modelo usado
console.log(img.energy_debited); // Energía debitada por esta operación
El resultado es una URL pública alojada por Meteor, no los bytes crudos. Guárdala o pásala directo a donde la necesites:
const mockup = await met.images.generate({ prompt: 'Empaque de café artesanal, luz de estudio' });
await met.contacts.update(310, { image: mockup.url });
model y aspect_ratio son opcionales. Si omites model, se usa el modelo por defecto de la integración activa. aspect_ratio acepta valores como '1:1', '16:9', '9:16' o '3:4'.
Editar una imagen
Transforma una imagen existente pasándola en base64:
const edited = await met.images.edit({
prompt: 'Cambia el fondo a azul degradado',
image_base64: '...', // la imagen base, en base64
});
console.log(edited.url);
Devuelve la misma forma que generate (url, format, model, energy_debited).
Animar (video)
Genera un clip desde un prompt, opcionalmente animando una imagen inicial:
const clip = await met.images.video({
prompt: 'La taza gira lentamente sobre la mesa',
image_base64: '...', // primer frame opcional (base64)
duration_seconds: 4,
});
console.log(clip.url); // URL del video alojado
console.log(clip.duration_seconds); // duración real del clip
console.log(clip.energy_debited);
image_base64, duration_seconds y model son opcionales.
Costo
Cada generate, edit y video debita Energía a tu workspace y se atribuye a la key. El monto llega en energy_debited de la respuesta, y el consumo por API aparece separado del chat en tu dashboard. Si te faltan errores o paginación, mira Errores e idempotencia.