Skip to content

Latest commit

 

History

History
78 lines (48 loc) · 6.31 KB

File metadata and controls

78 lines (48 loc) · 6.31 KB

Imágenes para plantillas · v1.7

Craft permite usar imágenes generadas por modelos dentro de las cards y prototipos. El agente describe la imagen una vez, el proveedor la genera y el motor Go conserva los bytes y una caché por solicitud. Cambiar texto, colores o disposición no genera otra imagen. También acepta PNG/JPEG importados desde cualquier generador mediante craft_assets add_reference.

Pollinations: API vigente y coste

El adaptador usa https://gen.pollinations.ai/image/{prompt} con autenticación Bearer, según la documentación oficial, consultada el 9 de septiembre de 2026. Sustituye el patrón antiguo image.pollinations.ai/prompt/ sin clave. El modelo predeterminado es black-forest-labs/flux.1-schnell; los modelos y sus precios pueden cambiar, consulta el catálogo del proveedor.

Pollinations usa créditos Pollen: no se garantiza generación gratuita ni ilimitada. Si la cuenta tiene créditos gratuitos disponibles, su consumo y caducidad dependen del proveedor. Craft no usa una llamada adicional a un modelo de texto para convertir el prompt en imagen, pero eso no elimina el coste del modelo de imágenes. No reutiliza credenciales de otros programas.

Configura en el entorno del proceso MCP:

  • POLLINATIONS_API_KEY: clave propia del proveedor, solo en el backend.
  • CRAFT_IMAGE_GENERATION=1: habilita solicitudes nuevas al proveedor.

Sin esa configuración, las imágenes ya guardadas y las importaciones locales siguen funcionando. El MCP no lee automáticamente un archivo .env. Reinícialo después de cambiar su entorno. Las claves nunca deben ir en el JSON de diseño, la URL de Studio, el repositorio o el navegador.

Contrato compacto para el agente

Primero consulta el estado local, sin hacer una petición al proveedor:

{"action":"image_status"}

Con el proveedor configurado:

{"action":"generate_image","spec":{"prompt":"Warm architectural workspace, natural materials, soft daylight, restrained sage and terracotta palette, editorial photography, no text","model":"black-forest-labs/flux.1-schnell","width":1024,"height":768,"seed":42}}

Son llamadas a craft_assets. La respuesta contiene referenceId, ruta, hash, dimensiones reales, modelo y cached. No contiene base64 ni envía la imagen al modelo de texto. reference_image permite solicitarla explícitamente para validación visual. cacheOnly: true dentro de spec prohíbe una solicitud nueva incluso cuando la generación está habilitada.

Una solicitud idéntica reutiliza la caché aunque ya no haya clave. Prompt, modelo, ancho, alto y semilla forman su identidad. Cambia la semilla para pedir otra variante; una semilla no garantiza reproducibilidad entre versiones del proveedor. No hay reintentos automáticos ni cascadas hacia modelos más caros. Un bloqueo por solicitud evita generaciones duplicadas entre procesos; después de un cierre abrupto puede requerir retirar el .lock correspondiente, verificando antes que el proceso terminó.

CLI equivalente:

codegraft image-status --project .
codegraft image --project . --spec image-request.json

Incorporar la imagen al diseño

Usa el ID devuelto en artwork de la especificación de shape:

{"artwork":{"referenceId":"ID_DEVUELTO","alt":"Espacio de trabajo con luz natural y materiales cálidos","layout":"split"}}

También puedes poner artwork en una dirección o en una pantalla de screens. La pantalla tiene prioridad sobre la dirección, y esta sobre el diseño. Omitir la imagen de una pantalla existente conserva su elección; {"artwork":{"hidden":true}} la oculta en esa pantalla sin borrar el archivo ni alterar las demás. layout acepta:

Disposición Uso
banner Imagen horizontal debajo del título y descripción.
split Texto e imagen en columnas; apilados en ancho móvil.
illustration Imagen completa con ajuste contenido, sin recorte.

El agente puede usar la misma imagen en las tres alternativas para comparar estructura sin pagar tres generaciones. Solo debe pedir imágenes distintas si aportan una diferencia visual necesaria. Los textos y controles siguen siendo HTML editable; no se convierte la interfaz completa en una imagen plana.

Las imágenes admiten comentarios anclados mediante Comentar. Cambiar su referencia, disposición o texto alternativo se realiza mediante la especificación y genera una nueva revisión; el inspector básico de texto/espaciado no es un editor de fotografías.

Almacenamiento y exportación

  • Originales y metadatos: catálogo de referencias existente.
  • Caché de generación: .codegraft/image-cache/, sin credenciales.
  • Derivados de visualización: .codegraft/cards/artwork/.
  • Artefactos: HTML/SVG con imagen incrustada y las especificaciones por IDs.

El motor verifica el hash del original, limita a seis imágenes distintas por diseño y reduce cada una a un máximo de 1200 × 900, manteniendo proporción. Los derivados son JPEG con fondo blanco para transparencia; el original PNG/JPEG permanece intacto. HTML autónomo incluye los bytes necesarios; PNG/PDF capturan el prototipo sin contactar al proveedor. SVG sigue siendo un resumen visual, no una copia exacta del HTML.

El MD de implementación conserva la imagen elegida, texto alternativo y disposición. El agente debe copiar la imagen aprobada a los recursos de la aplicación y reutilizarla en producción; nunca generar otra durante la carga de la página. La UI real conserva sus controles y comportamiento. TUI no admite imágenes raster en este renderer: usa su representación nativa de terminal.

Evidencia y límites

images_test.go verifica peticiones HTTP contra un proveedor de prueba, autenticación en cabecera, caché, ausencia de red cuando está deshabilitada, validación de bytes, hash y exportación incrustada. artwork-flow.cjs recorre MCP, Go, Studio y Chromium con una imagen existente del proyecto: verifica carga, ancho móvil, ocultación por vista y HTML/PNG/PDF sin conexión.

Estas pruebas no certifican disponibilidad, saldo ni calidad de una cuenta real de Pollinations. La integración no necesita una generación facturable para ejecutar CI. La calidad visual final exige inspeccionar la imagen real y su composición, además de validar el código del adaptador.