Reviviendo Praderas (Día 18) — portada seria en el blog
Cierra el siguiente bloque del plan de Día 17 / .agents/comfyui-cover-images.md: el sitio ya entiende Image:, muestra un hero estable en anchos bajos, rellena og:image (y Twitter summary_large_image cuando aplica), y en listados, etiquetas y búsqueda usa la miniatura de Image: si existe; si no, Lorem Picsum con semilla estable (derivada de page.id / URL) para no dejar tarjetas “rotas”. ComfyUI queda declarado listo para producción en el lado de generación de assets; lo que sigue abierto es solo automatizar el script / CI.
Reloj de pared (implementación + artículo + docs)
- Inicio:
2026-05-11 09:56:08 CEST - Fin:
2026-05-11 09:59:35 CEST
Ventana medida: ~3 min 30 s de calendario en esta sesión (rama desde main, cambios Twig/CSS/PHP, auditoría de front matter, actualización de .agents, esta bitácora, commit y push). No incluye una pasada humana de diseño fino ni despliegue en producción.
Qué se implementó
Image:en front matter — registrado en65-Multilingual.php(onMetaHeaders) para que Pico expongameta.imageen Twig.post.twig— hero conpradera-hero-figure/pradera-hero-img:Image:si existe; si no (entradas bajoblog/…), Picsum 1200×630 con la misma semilla estable que en tarjetas (praderas-macros.twig).page-meta.twig— URL absoluta paraog:imageytwitter:image;twitter:cardpasa asummary_large_imagecuando hay imagen.- Listados —
list-card-thumb.twig+ includes enblog.twig,blog-en.twig,tags.twig,search.twig: miniatura desdeImage:si el post la define; si no, Picsum con URLhttps://picsum.photos/seed/…/400/200y semilla estable (tras el merge se revirtió un intento de solo gradiente neutro, que dejaba las tarjetas sin foto útil). praderas-theme.css—max-width: 100%,object-fit: contain,max-heightconvhen el hero; reglas para.post-body img/figurepara que imágenes Markdown no rompan el cuerpo en móvil.scripts/frontmatter_audit.py— también recorrecontent/blog/en/*.mdy comprueba que rutasImage:no HTTP existan en disco.- Día 18 — portada dedicada en WebP generada con ComfyUI (ver sección siguiente); Día 17 sigue usando el raster de humo
day17-comfyui-sdxl-example.webpcomo referencia histórica del plan.
Imagen de esta entrada (ComfyUI / SDXL)
Esta bitácora lleva Image: /assets/images/day18-comfyui-sdxl-cover-responsive.webp: hero, vista previa social y miniatura de listado leen la misma ruta (sin duplicar  en el cuerpo).
- Grafo:
scripts/comfyui/sdxl_ubersimple.api.json(mismo que el plan del Día 17). - Exporte reproducible:
python3 scripts/comfyui/export_cover.pycon--outputapuntando a ese fichero,--seed 18052026, prefijo de guardado distinto por tanda (p. ej.praderas_day18_export). - Prompt positivo (CLIP, inglés):
Wide cinematic editorial illustration for a Spanish tech blog named Praderas, soft green meadow at golden hour, subtle abstract UI wireframes and gentle grid lines suggesting responsive web layout and Open Graph cards, calm modern typography shapes, no readable text, no logos, peaceful professional atmosphere, high detail, tasteful color grading
La política de migración de imágenes (nombres bajo assets/images/, par ES/EN con el mismo Image:, no reutilizar en silencio el recurso de otro día) está en .agents/comfyui-cover-images.md.
ComfyUI “production ready”
En documentación: la instancia y el grafo SDXL están listos para producir imágenes en local; el blog no llama a Comfy en runtime — solo consume archivos estáticos o URLs que el flujo de generación deje en el repo.
Pendiente (siguiente PR cuando toque)
- Cerrar el hueco del checklist: parche automático de front matter (
Image:) tras export; hoyscripts/comfyui/export_cover.pysoporta--patch-markdowny--webp. - CI opcional y política LFS si el peso de binarios crece.