Editnado — Edición automática de fotos, videos y reseñas
¿Editar? ¡Yo también! — Con una palabra, un tornado de edición. (Di una palabra y un tornado de edición te golpea.)
El usuario solo dice una carpeta de fotos/videos + reseña del día (nota de voz) + un estilo deseado, y luego corrige mediante chat para ver el resultado. El cálculo, la conversión y la transcripción los hace la PC (sin gasto de tokens), mientras que la IA se concentra en las decisiones de calidad (alinear escenas con el habla, corregir la transcripción, revisar la imagen de verificación).
El ejecutable es vc.cmd en esta carpeta (doctor · setup · auto · build · transcribe · sheet · stills · template). Se invoca desde PowerShell con & "<esta carpeta>\vc.cmd" auto … (Git Bash con cmd //c no funciona).
0. Lo que la IA debe cumplir
- La calidad primero, los tokens después. Solo ve lo necesario para juzgar — una línea JSON del resultado
auto, el mosaico de escenas (sheet_1.png), la imagen de verificación. El cálculo y la repetición se delegan a la PC; no lee el código fuente del ejecutable, la lista de comandos ni el listado completo de la carpeta (para listados usamedia.json). Las fotos/videos originales solo se abren cuando el mosaico de escenas no es suficiente. - Preguntar antes de instalar. Si es la primera vez,
vc.cmd setup→ muestra la tabla (qué y cuántos MB) al usuario y pide permiso antes de ejecutarvc.cmd setup -Yes. No usa privilegios de administrador. - Los originales solo se leen. Los resultados se escriben solo en
<carpeta>\Completado\(o en la carpeta especificada con-Out). - No inventar. El título, subtítulos y frases del blog se basan únicamente en lo que contiene la reseña, las fotos y la hora de captura. Información como precios u horarios de lugares solo si el usuario la proporcionó.
- Después de ver la imagen de verificación, dice "Completado". Si los subtítulos se cortan o la pantalla queda vacía, corrige el plan y vuelve a generar.
- Lenguaje sencillo. Se comunica con el usuario en un par de líneas de coreano sencillo; solo muestra comandos, rutas o inglés cuando sea necesario.
- No usa cuentas, claves API ni créditos de pago. Los datos personales como la ubicación de las fotos solo se envían a servicios de Internet con permiso explícito en cada caso.
1. Flujo
① Preparación vc.cmd doctor → Si falta FilmCatch o la herramienta de transcripción, hace setup como en 0-2
② Borrador vc.cmd auto <carpeta> -Template <id> [-Title "título"] [-Out <carpeta de resultado>] [-Bgm <archivo de música>]
→ En la carpeta de resultado (por defecto <carpeta>\Completado\) se crean: plan.json · mp4 de vista previa (mitad de resolución) · imagen de verificación · sheet_1.png (mosaico de escenas) · última línea JSON
{"plan","output","check","seconds_total","scenes":[{n,file,kind,taken,sentence,seconds}],
"sentences":[{k,at,text}],"warnings":[…]}
③ Refinamiento La calidad se decide aquí: antes de mostrar al usuario, revisa tres cosas
a. Escena ↔ habla: comprueba sheet_1.png y sentences para ver si cada escena coincide con el contenido de la frase. Si no, corrige solo el
"align" en plan.json (números de frase a mostrar por escena, en orden creciente) — el cálculo de tiempo e intervalos de video los hace build
b. Transcripción: si hay errores tipográficos o nombres propios (ej. "헤드는" → "해 뜨는"), corrige solo el texto en <carpeta de resultado>\<nombre de grabación>.srt
y lo marca en "captions": {"srt": ese archivo} (los tiempos se mantienen — build los ajusta según la intro)
c. warnings: si "El título de la intro tiene N líneas", acorta el título
Después de corregir, ejecuta vc.cmd build <plan.json> -Preview
④ Mostrar Muestra la imagen de verificación (un recuadro por escena) y al usuario le dice: "32 segundos · 9 escenas · primer subtítulo "…" · vista previa: <ruta>"
⑤ Corregir Lo que dice el usuario → se modifica solo ese valor en plan.json y se ejecuta vc.cmd build <plan.json> -Preview
⑥ Confirmar vc.cmd build <plan.json> → mp4 con calidad original + .srt
- Lo que hace
auto: ordena por hora de captura · en los videos toma el intervalo central · los archivos de audio cuyo nombre contenga "소감·memo·녹음·voice" se transcriben como narración de mi voz con subtítulos (cortados después de la terminación o partícula en coreano en 2 líneas) · empareja cada frase hablada con escenas (por defecto: escenas cercanas en hora de captura se agrupan en una frase, y se cambia de escena en la pausa entre frases) · conserva el sonido ambiente del video y lo reduce al hablar · los archivos cuyo nombre contenga "bgm·music·음악" (o-Bgm) se usan como música de fondo (se atenúa automáticamente al hablar) · template de intro, tono de color, estilo de subtítulos - Pregunta una cosa a la vez. Con solo la carpeta, el resto se define con los valores predeterminados de la plantilla.
2. Elegir plantilla
| Lo que dice el usuario | -Template |
|---|---|
| Básico/Vlog/Viaje/Horizontal/YouTube | default |
| Shorts/Reels/TikTok/Vertical/Rápido | shorts_fast |
| Tranquilo/Emotivo/Relajado | calm_mood |
| Restaurante/Comida/Mukbang/Café | food_quick |
| Familia/Padres/Letra grande/Álbum | family_big |
| Clase/Reseña/Demo/Explicación | tech_tutorial |
- Si no sabe,
default; si solo dice vertical,shorts_fast. Las palabras asociadas a cada plantilla están enmeta.words. - Las instaladas y las disponibles:
vc.cmd template list· Instalar:vc.cmd template install <id o zip>— el usuario elige. - Nueva versión de la skill ("Actualiza la skill"):
vc.cmd update→ muestra al usuario los cambios y pide permiso →vc.cmd update -Yes. Si la carpeta se obtuvo con git, hacegit pull(se detiene si hay archivos modificados localmente); si se obtuvo con zip, descarga el último release y verifica SHA256 antes de sobrescribir. Los perfiles personalesprofiles/localy las plantillas instaladas se conservan; los archivos modificados se respaldan. - Formato y cómo crear plantillas:
templates/README.md
3. Correcciones frecuentes → plan.json
| Lo que dice el usuario | Dónde corregir (las claves overrides son rutas de puntos) |
|---|---|
| Subtítulos un poco más arriba/abajo | overrides."subtitles.margin" ± 0.04 |
| Subtítulos grandes/pequeños | overrides."subtitles.size" (por defecto aprox. 64) |
| Música más baja/más alta | overrides."audio.bgm_duck_db" −3 / +3 |
| Quitar esta escena/Cambiar orden | Eliminar o mover en el array timeline (también eliminar o mover en align en la misma posición) |
| La escena no coincide con el habla | align — número de frase por escena (ej. [1,2,2,3,3,4,4,5]) |
| Última escena más larga/corta | tail_seconds ± 3 (segundos de silencio después de que termina el habla, por defecto 1 segundo) |
| Escena central más larga | Si hay align, asigna una frase adicional a esa escena (no se alarga en segundos para que no se desincronice con el habla). Si no, agrega 3 segundos a seconds de ese elemento |
| Recortar parte de una foto/Quitar objeto | crop de ese elemento: [izquierda, arriba, ancho, alto] proporciones 0~1 (ej. quitar 20% derecho = [0,0,0.8,1]) — el original no se modifica |
| Quitar color | overrides."video.color_preset": null |
| Quitar intro | overrides."intro": null |
| Cambiar título | title |
- "Solo esta vez" = como arriba, en
overrides. "Para siempre a partir de ahora" = enprofiles/local/<id de plantilla>.jsoncon la misma clave (no se modifican los archivos públicos). - Si la clave no existe, el ejecutable se detiene con "Clave no encontrada en el perfil (¿error tipográfico?)" — la lista de claves está en
references/preset-guide.md
4. Cómo escribir la reseña
| Uso | Método |
|---|---|
| Narración con mi voz | La nota de voz en la carpeta se transcribe automáticamente con auto para subtítulos. Si el nombre propio está mal, corrige <carpeta>\Completado\<nombre de grabación>.srt y lo marca como captions.srt en el plan |
| Narración por voz sintética | Reseña recibida en texto → en el plan "narration": {"mode":"tts","lines":[{"text":"…"}]} (voz coreana de Windows) |
| Frase de título/subtítulo | Se refina la reseña para hacerla breve. Una línea = dentro de subtitles.max_chars de la plantilla |
| Entrada de blog | Ver punto 6 |
Elegir tono: El tono de la plantilla (text.tone para títulos y frases de voz sintética, blog.tone para el blog) es el predeterminado — 습니다 · 해요 · 반말. Si el usuario especifica un tono, solo para esta vez se usa overrides."text.tone", y para siempre se escribe en profiles/local/<id>.json y se reescriben las frases con ese tono. Los subtítulos de la voz del usuario se mantienen tal como se hablaron (para no desincronizarse con el audio).
5. Fotos y miniaturas
- Corrección de fotos (opcional):
lightcraft-cli render <foto> -o <carpeta resultado>\_vc_work\photo\<nombre>.jpg --set color.vibrance=8 --size 1920(valores de la plantillaphoto.*); la ruta de esa foto en el plan se cambia a la corregida. - Miniatura: en el proyecto finalizado, una captura en el momento en que se ve la intro —
filmcraft-cli --project <_vc_work\.fcproj> render --seconds 1.5 --out thumb.png - Difuminar rostros (opcional):
deface.cmd <foto o video> -o <resultado>— se usa solo después de verificar que realmente se encuentra el rostro en el material.
6. Borrador de blog
Se escribe en <carpeta resultado>\blog\draft.md: reglas de la plantilla blog.* (tono, subtítulos, agrupación de fotos) + la regla 4 de hechos. Las fotos son las corregidas, en orden de hora de captura. Para incluir fotogramas del video, usar vc.cmd stills <plan.json> → en <carpeta resultado>\stills\ se crea un fotograma por cada intervalo de video realmente usado (calidad original). Si existe una skill específica de blog del usuario (como blog-writer), se le pasa el borrador.
7. Documentos de referencia (abrir solo cuando sea necesario)
references/edit-plan.md— formato del plan ·references/preset-guide.md— todas las clavesreferences/filmcraft-commands.md— comandos confirmados de FilmCraft y sus trampas (solo al modificar el ejecutable)references/cli-recipes.md— comandos para fotos, miniaturas y herramientas abiertas ·references/toolchain.md— fuentes de las herramientas, licencias, MCPreferences/onboarding.md— para PC nueva ·references/style-extractor.md— extraer estilo de un video de referenciatemplates/README.md— formato de plantilla y reglas de venta
Historial de revisiones
- 2026-11-12: Creación inicial → el mismo día plan interactivo + ejecutable
vc.ps1 - 2026-11-13: 2.0 — borrador automático
auto, instalaciónsetup, 6 tipos de plantilla (intro, tono de color), transcripcióntranscribe, división de subtítulos clara, ducking de sonido ambiente, selección de tono, prefijo de estándar público (agentskills.io) - 2026-11-14: 2.3.1 — Se corrigió el problema de que la ubicación de instalación y respaldo de herramientas se fijaba en una carpeta relativa "C" en PC normal (vc_paths Get-InstallRoot), licencias ArtCraft MIT/Apache-2.0
- 2026-11-13: 2.3 — Nombre Editnado (antes video-craft): nombre de carpeta, repositorio, release zip, frase de presentación "¿Editar? ¡Yo también!"
- 2026-11-13: 2.2 — Actualización de la skill
vc.cmd update(git, release zip, zip descargado directamente), procedimiento de release (release.ps1, para administradores) - 2026-11-13: 2.1 — Principio de calidad primero, alineación de escenas con frases (
alignytail_seconds), corte de subtítulos después de terminaciones y partículas, recorte de fotos (crop), fotograma único para blog (stills), vista previa de auto a mitad de resolución, conservación del sonido ambiente, advertencia de título demasiado largo