Vídeo de producto
Convierte un producto (idealmente con una foto) en un videoclip corto. Responde en el idioma del usuario. Todos los precios están en USD.
1. Recopilar la información
Pregunta solo por lo que falte:
- Producto: qué es, material, color, tamaño, la única característica que mostrar.
- Foto del producto: un enlace
httpspúblico a una foto limpia. Los archivos locales y los enlaces privados no funcionan; el usuario debe alojar la imagen en una URL https pública primero. - Dónde se usará: esto define la relación de aspecto.
- TikTok, Reels, Shorts, stories:
9:16 - Hero de sitio web, YouTube, landing page:
16:9 - Listado de marketplace, publicación en feed:
1:1(si el modelo lo ofrece)
- TikTok, Reels, Shorts, stories:
- Duración y presupuesto: la mayoría de los clips duran de 5 a 10 segundos. Para un vídeo más largo, planifica varios clips cortos en lugar de uno largo.
2. Elegir modelo y modo
Llama a list_models, luego llámalo de nuevo con model establecido en un ID candidato para ver sus modes, aspect_ratios, durations, options y max_prompt_chars.
- Foto disponible: usa un modo
i2vcon la foto comoimage_url. Esto conserva la forma, la etiqueta y el color reales del producto. - Varias fotos de referencia (producto desde diferentes ángulos): usa un modo
r2vsi el modelo lo tiene, conreference_images, dentro demax_references. - Sin foto: usa un modo
t2vy describe el producto con precisión. - Si un modelo lista
negative_promptenoptions, puedes usarlo para cosas como "etiqueta distorsionada, piezas extra, borroso".
3. Escribir el prompt
Un clip, una toma. Construye el prompt en este orden:
- Sujeto: el producto exacto, con material y color ("una taza de café de cerámica negra mate con base de corcho").
- Acción o movimiento de cámara: solo un movimiento, por ejemplo, acercamiento lento, órbita suave de 360 grados, revelado desde arriba, paneo macro sobre la textura, mano levantándolo.
- Escenario y luz: superficie, fondo, iluminación ("sobre una mesa de roble claro, luz suave de ventana matutina, poca profundidad de campo").
- Estilo y ritmo: "aspecto comercial limpio, ritmo calmado".
Consejos:
- No le pidas al modelo que muestre palabras, precios o logotipos como texto; a menudo salen distorsionados. Añade el texto después en un editor.
- Con
i2v, describe el movimiento y la escena, no la apariencia del producto; la foto ya la define. - Mantente por debajo de
max_prompt_chars.
Ejemplo:
Una taza de café de cerámica negra mate con base de corcho sobre una mesa de roble claro, vapor ascendiendo, la cámara se acerca lentamente, luz suave de ventana matutina, poca profundidad de campo, aspecto comercial limpio, ritmo calmado.
4. Resolución y precio
-
Haz un borrador en
720pprimero para comprobar el movimiento y el encuadre; cuesta menos. Haz la versión final en1080ppara sitio web, anuncios o pantallas grandes.720psuele ser suficiente para feeds de teléfono. -
Llama a
estimate_costpara las opciones de borrador y final y muestra al usuario ambos precios antes de ejecutar nada:{"input": {"model": "<model id>", "mode": "i2v", "prompt": "Una taza de café de cerámica negra mate sobre una mesa de roble claro, vapor ascendiendo, la cámara se acerca lentamente, luz suave de ventana", "image_url": "https://example.com/taza.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}}
5. Generar después de que el usuario acepte
Solo llama a generate después de que el usuario haya visto el precio y haya dicho que sí. Si el usuario ya estableció un presupuesto y te indicó que continúes, puedes comenzar sin preguntar de nuevo siempre que amount_usd esté dentro de ese presupuesto; usa amount_usd, no el presupuesto, como max_cost_usd.
max_cost_usd: obligatorio. Usa elamount_usdaprobado deestimate_cost, exactamente como se devolvió. El trabajo se rechaza si el precio es mayor.request_id: obligatorio y único para cada nuevo trabajo, ASCII imprimible sin espacios, como máximo 64 caracteres, por ejemplotaza-orbita-720p-1. Un ID usado nunca se puede reutilizar para un trabajo diferente.- Si
generatefalla con un error de red, un tiempo de espera, un error del sistema o "Demasiadas solicitudes", espera unos segundos y reintenta con el mismoinput, el mismomax_cost_usdy el mismorequest_id. El mismo ID devuelve el mismo trabajo y nunca se cobra dos veces.
{"input": {"model": "<model id>", "mode": "i2v", "prompt": "Una taza de café de cerámica negra mate sobre una mesa de roble claro, vapor ascendiendo, la cámara se acerca lentamente, luz suave de ventana", "image_url": "https://example.com/taza.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}, "max_cost_usd": "<amount_usd from estimate_cost>", "request_id": "taza-orbita-720p-1"}
Espera con check_job, pasando job_id y wait_s establecido en 55; si el trabajo aún se está ejecutando, sigue next_step y llama de nuevo con wait_s 55. No hagas polling en un bucle cerrado.
En caso de éxito, proporciona el enlace del resultado de outputs y la console_url. Los enlaces caducan después de 24 horas; check_job devuelve enlaces nuevos. Si un output tiene state blocked y no tiene url, la revisión de seguridad ocultó el resultado después de generarse; ese trabajo aún se cobra, y el usuario puede contactar con Makernice para que lo revisen. Los trabajos fallidos no se cobran; informa al usuario del motivo desde error.
Para un vídeo de varios clips, ejecuta un trabajo por clip, cada uno con su propio estimate_cost, max_cost_usd y nuevo request_id, y proporciona al usuario el total acumulado.
Manejo de rechazos
- Precio superior a
max_cost_usd: muestra el nuevo precio y pregunta antes de reintentar con un nuevomax_cost_usdy un nuevorequest_id. - Supera el límite por trabajo: sugiere
720po una duración más corta, o el usuario puede aumentar el límite por trabajo en Makernice. - Saldo insuficiente o límite diario alcanzado: llama a
get_balancey explica. Si la herramientaget_topup_linkestá disponible y el usuario pregunta cómo añadir saldo, proporciona el enlace una vez. - Configuración incorrecta en un trabajo en cola:
cancel_jobcon sujob_idlibera el monto retenido por completo.