CommunityImagengithub.com

Generador de Miniaturas

Genera miniaturas de YouTube en formato 16:9 (1280x720) para cualquier canal. Úsalo cuando un video necesite una miniatura: el flujo de trabajo analiza el video, selecciona referencias de diseño, recopila datos faltantes, renderiza variantes y muestra el resultado para aprobación antes de cualquier subida.

¿Qué es Generador de Miniaturas?

Generador de Miniaturas es un flujo de trabajo de agente + renderizador determinista que permite a cualquier canal de YouTube crear miniaturas atractivas y honestas de manera sistemática. El paquete proporciona reglas de estilo, plantillas de diseño, fuentes, herramientas de fotogramas y el renderizador; el agente anfitrión aporta comprensión y juicio semántico. El flujo comienza analizando el video (título, descripción, transcripción, fotogramas clave) para extraer evidencia como frecuencias de términos y marcas de corte de escenas. Luego, el agente selecciona 2-3 referencias de diseño de la biblioteca privada del creador, basándose en estadísticas de píxeles y etiquetas de composición. Se recopilan todos los datos faltantes (texto de 2-4 palabras, palabra de acento, diseño, estado de ánimo, idioma) y se renderizan hasta 2-3 conceptos distintos por video, generando un manifiesto que documenta cada decisión. El paquete incluye una doble capa de control de calidad: automática (dimensiones, tamaño de archivo, contraste) y semántica (veracidad del gancho, coincidencia temática, variedad de diseño). No sube nada automáticamente; requiere aprobación final del creador antes de cualquier publicación. Es ideal para agentes de IA que trabajan con creadores de contenido que necesitan mantener consistencia visual y honestidad en sus miniaturas.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stanuser297/thumbnail-skill/tree/HEAD

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Generador de Miniaturas?

Flujo de trabajo de agente + renderizador determinista, adaptable a cualquier canal. El paquete proporciona reglas de estilo, plantillas de diseño, fuentes, herramientas de fotogramas y el renderizador; el agente anfitrión aporta comprensión y juicio.

Flujo de trabajo

  1. Resumen del video (comprensión del anfitrión, evidencia del paquete): lee el título, descripción, capítulos/transcripción y fotogramas de muestra del video. scripts/video_brief.py --video V --transcript subs.srt --scenes --out brief.json ensambla la evidencia: frecuencias de términos de la transcripción (conteos simples de palabras, sin modelo) y marcas de tiempo de cortes de escena mediante ffmpeg. Luego, el anfitrión completa los campos main_question, show y avoid_implying del resumen: lo que la miniatura debe comunicar honestamente y lo que NO debe implicar. El paquete no comprende el contenido del video por sí mismo; necesita un anfitrión que pueda leer metadatos, fotogramas y texto del video. Fotogramas candidatos: scripts/extract_frames.py VIDEO --out frames/ (muestreo uniforme) o --scenes (fotogramas en los cortes de escena más fuertes: momentos donde algo cambió, no una prueba de qué momento es importante).
  2. Selección de referencias (capacidad del agente anfitrión): de la biblioteca privada de referencias del creador, elige 2-3 referencias cuya composición se ajuste al tema de este video, y anota los patrones concretos (tamaño/ubicación del texto, contraste de color, posición del sujeto). scripts/analyze_references.py FOLDER [--labels sources.csv] proporciona estadísticas a nivel de píxel (brillo, contraste, proporción de oscuro/colorido) sobre la carpeta de la biblioteca local del propio creador para fundamentar esas elecciones; la biblioteca nunca abandona el disco local y nunca se incluye dentro de este paquete. Para bibliotecas más grandes, el anfitrión puede hacer UNA pasada de visión sobre la carpeta y registrar los temas/estado de ánimo/composición de cada referencia en un reference_tags.json privado (esquema en examples/example_reference_tags.json); luego scripts/match_references.py --tags reference_tags.json --topic ... --mood ... preselecciona candidatos por superposición de etiquetas para que el anfitrión los revise. El archivo de etiquetas permanece fuera del repositorio junto a la biblioteca, exactamente como las imágenes.
  3. Recopilar datos faltantes: texto de la miniatura (2-4 palabras, honesto para el video), la ÚNICA palabra de acento, diseño, estado de ánimo del estilo (uno de los cinco en styles.json), idioma (hindi/inglés) y el fotograma elegido (un momento real del video que coincida con el tema, no solo la imagen más nítida). Un perfil de canal (profiles.json) puede proporcionar valores predeterminados; las elecciones explícitas siempre anulan. Pregunta al creador por cualquier cosa que aún falte.
  4. Edición de reacción del personaje y recorte (opcional; capacidad de edición de imágenes del anfitrión): cuando la miniatura necesita que el personaje del video muestre una reacción específica (sorpresa, alegría, enfado) que encaje con el momento del video, el anfitrión puede editar el fotograma elegido con un modelo de edición de imágenes: conservar la identidad del personaje, el estilo de ilustración y el fondo; cambiar solo la expresión. Para el aspecto recortado (sujeto separado del fondo con un contorno, el patrón dominante en la biblioteca de referencias), haz que el anfitrión coloque al personaje sobre un fondo uniforme (la pantalla verde funciona mejor) y ejecuta scripts/make_cutout.py shot.png --out subject.png: la incrustación se realiza completamente en local; solo la producción del fotograma con fondo uniforme necesita la herramienta de imágenes del anfitrión. Compón con --subject subject.png (stack-left/bottom-left: sujeto a la derecha con contorno emergente y sombra, texto mantenido alejado). Este paquete no contiene ningún modelo de imagen; las ediciones utilizan cualquier capacidad de edición de imágenes que proporcione el entorno del anfitrión, sin asumir proveedor de pago ni registro. Cuando no exista tal capacidad, omite este paso y elige un fotograma cuya expresión existente ya encaje. Reglas: solo editar activos ilustrados/avatar del propio video del creador; nunca inventar la expresión de una persona real para una afirmación de un evento real; registrar cada edición en el manifiesto de ejecución (--reaction-edit) para que el creador sepa que la expresión fue editada.
  5. Conceptos distintos, no rotaciones de color: para cada video, diseña 2-3 conceptos genuinamente diferentes (diferente gancho, diferente fotograma/escena, diferente composición) y represéntalos en una sola ejecución: scripts/run_thumbnail.py --video V --concepts concepts.json --out set.jpg (cada entrada en el JSON tiene su propio título, fotograma, diseño, nota de concepto y sujeto/edición de reacción opcional; un manifiesto registra todo el conjunto). --variants N sigue siendo para rotaciones de estilo/diseño del MISMO texto, lo cual es una opción más débil para decisiones reales.
  6. Renderizado + manifiesto: scripts/run_thumbnail.py --video V --title T --accent A [--profile P] [--style S] [--layout L] [--variants N] [--label K] [--lang hi] [--reaction-edit "lo que se editó"] [--subject subject.png] [--brief brief.json] [--channel NOMBRE] --frame F --frame-time SEGUNDOS --concept "..." --refs IDS --ref-notes "..." --out thumb.jpg escribe hasta N variantes y un registro de ejecución *.manifest.json (identidad del video de entrada, perfil, referencias inspeccionadas, concepto, fotograma elegido, cualquier edición de reacción, cada salida). Con --brief, cada salida obtiene hook_evidence: líneas de la transcripción que comparten las palabras del gancho más una advertencia cuando el gancho hace una afirmación absoluta (muerto/khatam/acabado/...) que la transcripción nunca hace: evidencia para la revisión de veracidad, NO un veredicto de verdad; un gancho puede compartir palabras y aún así tergiversar. Con --channel, una memoria de diseño por canal (.thumbnail-history/, fuera del repositorio) advierte cuando el nuevo renderizado repetiría el patrón reciente del canal (misma familia de estilo o diseño 3 veces seguidas, sujeto recortado 3 de los últimos 4): advertencias, nunca bloqueos, y el diseño deliberado de series está bien; luego se registra la ejecución. Para un renderizado rápido sin manifiesto usa scripts/make_thumbnail.py directamente; --mobile-preview añade un renderizado de 380px de ancho para la verificación de legibilidad en tamaño de teléfono.
  7. Control de calidad, dos capas:
    • Automático (solo medible): run_thumbnail.py ya ejecuta scripts/check_thumbnail.py en cada salida y registra los resultados en el manifiesto (quality_checks); las advertencias/fallos se imprimen durante la ejecución. Verificaciones: dimensiones 1280x720, límite de 2MB de YouTube, contraste de la zona de texto a 380px (tamaño de teléfono) y brillo del recorte pegado cuando se usó un recorte --subject. La verificación del sujeto lee la ubicación CONOCIDA del recorte: no es un detector de rostros y no dice nada sobre rostros dentro de un fotograma de fondo; los renderizados basados en fotogramas aún necesitan tus ojos. También puedes ejecutarlo de forma independiente: python3 scripts/check_thumbnail.py thumb.jpg --layout stack-left --subject subject.png (salida 1 en FALLO, para que pueda bloquear un flujo de trabajo).
    • Semántico (juicio del anfitrión, nunca garantizado): revisa lo que los píxeles no pueden: (1) veracidad del gancho: el texto debe ser una pregunta que el video realmente hace o una afirmación que respalda, nunca un absoluto inventado para clics (usa el hook_evidence del manifiesto como evidencia inicial, luego juzga); (2) coincidencia tema-imagen: el fotograma debe pertenecer al tema del video (una pintura religiosa o histórica detrás de un gancho de explicación técnica es un rechazo); (3) ajuste estilo-estado de ánimo: texto gigante condensado y llamativo se adapta a temas dramáticos, los explicadores más tranquilos pueden leerse mejor con una composición más serena; (4) variedad: no el mismo diseño + la misma expresión en cada video. Luego abre la imagen y la vista previa móvil: la palabra de acento es la resaltada, sin superposición con el sujeto del fotograma, la expresión editada aún se parece al mismo personaje.
  8. Aprobar: el creador aprueba antes de cualquier subida. Ediciones dirigidas: vuelve a ejecutar make_thumbnail.py --spec thumb.spec.json solo con las banderas cambiadas.

Alcance: lo que este paquete hace y no hace

  • SÍ hace: extraer/evaluar fotogramas de video, aplicar el sistema de estilo (fuentes, colores, 4 diseños), renderizar variantes en hindi o inglés, analizar una carpeta de referencias local para elecciones de estilo fundamentadas, mantener una especificación editable y un manifiesto de ejecución por miniatura.
  • NO hace: comprender el video semánticamente, elegir el gancho o concepto por sí mismo, editar imágenes por sí mismo (las ediciones de reacción usan la propia capacidad de edición de imágenes del anfitrión; el paquete solo las registra), verificar la honestidad del mensaje, ni subir nada. Esas son decisiones del anfitrión/creador y capacidades del anfitrión, proporcionadas como entradas declaradas. El aprendizaje de CTR necesitaría acceso a análisis del canal y datos controlados, no es parte de este paquete.

Diseños y estilos

Cuatro diseños (bottom-left, stack-left, center-big, split), aprendidos de los patrones dominantes en una biblioteca de referencias de 97 imágenes: palabras apiladas enormes con una barra de resaltado, títulos de destino centrados, divisiones antes/después y bloques en la parte inferior izquierda sobre fotogramas degradados. Cinco combinaciones de colores en styles.json (documental, finanzas, tecnología, podcast, boldred): un fondo, un color de texto, un acento. Reglas: 2-4 palabras, UNA palabra de acento (resaltada), una familia de fuentes.

Requisitos

Python 3 con Pillow y numpy; ffmpeg en PATH para extracción de fotogramas y metadatos de video. No se necesita red en el momento del renderizado.

Biblioteca de referencias

Los patrones de diseño se aprenden de la biblioteca privada de referencias del creador (97 miniaturas en familias de rostros de reacción, tipografía audaz, pódcast, juegos, viajes y otras). La biblioteca permanece privada: nunca incluyas sus imágenes en este paquete ni en ninguna distribución. analyze_references.py solo lee una carpeta local a la que el creador apunta.

Skills relacionados