Flujos de trabajo
Cómo se combinan las funciones para prensa, una carrera entera, bodas, deporte, estudio, paisaje y scripts.
En esta página
1:10Situaciones reales que muestran cómo combinar las funciones de FLOGVIT.photosuite para distintos tipos de fotografía.

Prensa y actualidad#

El camino más rápido de la tarjeta de memoria a la foto publicada.
- Importar — Inserta la tarjeta. FLOGVIT.photosuite la detecta solo. Importa con una plantilla IPTC ya rellenada (publicación, fotógrafo, evento).
- Primera pasada — Vista individual con avance automático (Shift+A). Pulsa P para elegir, X para rechazar. No lo pienses demasiado — la velocidad importa.
- Filtrar las elegidas — Option+P muestra solo las elegidas.
- IPTC — Añade pies de foto y palabras clave a tu selección (Cmd+E). Copy IPTC Metadata y Paste IPTC Metadata llevan un pie de foto al resto de una serie.
- Subir — Pulsa U en cada foto para enviarla por FTP. Las subidas se ejecutan en segundo plano.
- Siguiente tarjeta — Inserta la siguiente tarjeta mientras se sigue subiendo. La importación y las subidas van en paralelo.
El trabajo completo, con un script que envía cada foto elegida a la redacción en cuanto la eliges, está en De la tarjeta a la redacción.
Una carrera entera después del día#
Cuando los fotógrafos entregan sus fotos después de un evento, cada uno en su propia carpeta (in/Kari Foto/, in/Per Berg/), una sola ejecución lo entrega todo.

- Crea un flujo a partir de Newspaper: whole event, HD with names (o Relay: whole event, 4K with numbers para un relevo cuyos números se entregan sin nombres). En su paso Identify, descarga la lista de salida o añade su carpeta. Si se fotografiaron dos carreras con las mismas tarjetas, da a cada carrera su propio flujo y pon la lista de salida de la otra en Also on the cards. Así cada número se compara con ambas listas, y cada flujo solo nombra su propia carrera.
- Deliver → Deliver Event Folder…: elige el flujo, la carpeta de fotos (el
in/del evento), dónde entregar (junto ain/por defecto) y el crédito (p. ej.Jærbladet). Una foto cuya cámara no tiene fotógrafo recibe el nombre de la carpeta como autor y «© Kari Foto / Jærbladet» como copyright. Las fotos que están directamente en la carpeta del evento, no en la de un fotógrafo, reciben el nombre indicado en Photographer. - Start. El diálogo cuenta las fotos a medida que avanzan, con y sin número, y lista los fallos. La entrega llega a
delivered/with-numbers/ydelivered/without-numbers/(la variable{identified}en la carpeta del paso Export). Cada foto que tiene un nombre lleva un.txtal lado. - Revisa lo que quedó retenido (Filter → Numbers → Needs review, ver Dorsales) y vuelve a ejecutar la carpeta. Lo que decidiste se conserva, y la lectura de cada foto se recuerda, así que una segunda ejecución no vuelve a leer nada.
Por la API: POST /api/workflows/run-on-folder con workflow y folder (y org, photographer), GET en la misma ruta para el progreso, DELETE para detenerlo (SDK: client.runOnFolder).
Fotos tomadas por otros#
Deliver → Download Album… descarga un álbum entero a una carpeta, listo para Deliver Event Folder:
- un álbum público de Flickr (sin cuenta): cada foto con el nombre que le dio la cámara del fotógrafo, si no su título. Con One folder per photographer, la primera palabra del título es la carpeta (
Grete Jonsson-12→Grete/). Se toma el tamaño más grande que genera Flickr en lugar del original, porque Flickr limita cuánto se puede descargar y un original agota ese límite cinco veces más rápido. Cuando Flickr se niega, la aplicación va más despacio y vuelve a intentarlo; nunca se salta una foto. Una foto que ya está en la carpeta no se vuelve a descargar, así que una descarga detenida sigue donde se quedó; - una galería de SmugMug que tu conexión de SmugMug pueda ver, por su enlace o id de nodo, a una carpeta con el nombre del fotógrafo. Cada foto llega en su tamaño 4K, que da los mismos números que el original con una décima parte del tamaño; Originals descarga los originales.
Por la API: POST /api/albums/download.
La galería de la carrera#
La web de galería de un evento entregado (jaerbladet.menneske.no y las galerías de carreras) lee un manifest.json por evento. Deliver → Build Race Gallery… lo escribe a partir de la carpeta del evento (por la API: POST /api/event-site): cada foto entregada con sus tamaños de la galería de SmugMug (o tamaños escritos junto al manifiesto), quién aparece, los recuadros de personas a los que recorta la vista móvil, las elegidas por la redacción primero, y los índices por los que la web busca por número, prueba, club y fotógrafo. Un número en una foto que ninguna entrada de la lista de salida tiene detiene la generación, en lugar de mostrar un número sin nombre. Un relevo cuya carpeta de evento tiene photographers.json (el nombre de cada fotógrafo y dónde estaba en el recorrido) recibe en su lugar la galería de relevos: equipos y empresas, y fotos por lugar a lo largo del recorrido. Un fotógrafo que falta en ese archivo, o un lugar fuera del recorrido, detiene la generación en lugar de acreditar una foto a nadie. Los nombres de archivo del relevo llevan el fotógrafo (<slug>-<n>.jpg), ya que SmugMug nunca ve las carpetas.
Dos opciones en la misma ventana usan la nitidez propia de cada corredor en una foto con varios, tomada del diario de Identify: Leave a runner out of their gallery where they are soft quita el dorsal de una foto donde ese corredor se lee con menos de la mitad de nitidez que la persona más nítida, y List each runner's pictures sharpest on them first ordena las fotos de cada corredor según lo nítido que sale en ellas. Ambas están desactivadas por defecto (en la API: softRunnerShare y sharpestFirst).
Lo mejor del año#
Deliver → Pick the Year's Best… elige las mejores fotos de un evento entregado en <event>_best/, nombradas por puesto, con best.json diciendo por qué se eligió cada una. Cada lugar se clasifica frente a sí mismo (una línea de meta es más fácil de fotografiar que una zona de relevo). Cada fotógrafo recibe primero una foto, luego cada lugar su parte, y el resto se elige por calidad, con un tope por lugar. Un equipo aparece una vez y una empresa como mucho dos. Apple Vision da las puntuaciones estéticas y de caras, así que necesita macOS 15 o posterior; en Windows aún no está. Un modelo de visión local, si indicas uno, juzga la escena, la expresión y la historia de la preselección y escribe un breve pie de foto en noruego, pero nunca se le pide un nombre: los equipos salen de la lista de salida.
Para revisar: borra de la carpeta _best las fotos con las que no estés de acuerdo y vuelve a elegir. Las fotos borradas nunca vuelven, las que conservaste mantienen su puesto, y solo se rellenan los puestos libres. Por la API: POST /api/best-of-year.
Una competición mostrada en directo#
Cuando los fotógrafos envían su selección a un servidor FTP durante el evento, photosuite puede reducir el ruido, recortar y enderezar cada foto, ponerla a la venta en eventphotos y mostrarla en la televisión del recinto, sin que nadie la toque.

- El flujo de trabajo. Settings → Workflow → From Template… → Live event: FTP → DxO → album. Elige la conexión FTP y la carpeta en Ingest, el perfil de DxO en Denoise y un nombre de álbum en Add to Album (p. ej.
NM kortbane). - El álbum en eventphotos. Clic derecho en el álbum en el panel Library → Publish to… → el evento. Cada foto que añade el flujo sale sola: si las fotos no dejan de llegar, como mucho un minuto después de la primera que espera.
- La televisión. La app de TV de eventphotos muestra la página en directo del evento,
/e/<event>/live. - Start Workflow. Los fotógrafos envían su selección a la carpeta FTP.
Cada foto recibe Auto: el detalle real más claro colocado arriba sin recortarlo, las luces LED del recinto fuera, las caras en la banda de piel de la forma de onda y levantadas con Lift cuando quedan por debajo, y el punto negro fijado en cada foto. Los archivos subexpuestos para una velocidad rápida y los bien expuestos salen como una serie, porque cada uno recibe lo que necesita. No hay que ajustar nada; en el paso Develop del flujo se puede elegir un preset en Look for unedited files y desactivar Auto for each unedited file.
Cada foto se recorta en 3:2 (2:3 si la cámara estaba en vertical) alrededor del nadador en el que enfocó la cámara (por el punto de enfoque de la propia cámara, incluso donde no se detecta a nadie en el agua), con todo el nadador (la cabeza, los brazos, los hombros y la salpicadura delante), colocado según las reglas de composición con espacio alrededor y nunca menor que una copia A4, y se endereza por las líneas de la imagen. El recorte va a eventphotos como una edición, así que un comprador puede ampliarlo; la foto entera es el archivo que escribió DxO. Una foto que falló queda en la carpeta failed/ del flujo con el motivo.
Lo que escribe el paso Export#
El paso Export de un flujo escribe lo que escribe el diálogo de exportación. Elige un perfil de exportación guardado (o los valores por defecto), y fija en su lugar el formato, la calidad, la profundidad de bits, el espacio de color o los metadatos: cualquier formato y espacio de color que tenga el diálogo de exportación, o una copia del archivo. Los tamaños adicionales y el enfoque del perfil vienen incluidos. Sin perfil ni elección de metadatos, el archivo entregado lleva lo que pusieron los pasos propios del flujo (Identify, Inject Metadata), como antes. El export() de un script acepta los mismos campos.
Compartir un flujo de trabajo#
Un flujo de trabajo puede pasar a otro equipo, o a otro fotógrafo, como un solo archivo. En Settings → Workflows, selecciónalo y pulsa Export…. Se guarda como <name>.photosuite-workflow, con las conexiones, el perfil de reducción de ruido, la plantilla IPTC y el perfil de exportación que usan sus pasos. Ninguna contraseña, token ni clave entra en el archivo, ni tampoco la carpeta de trabajo ni la dirección de un webhook, así que se puede enviar con tranquilidad.
Import… en el otro equipo lo añade. Una conexión o un perfil que ese equipo ya tiene, con el mismo nombre y apuntando al mismo sitio, se usa tal cual; todo lo demás se añade al lado con un nombre libre (Desk 2), y los pasos lo siguen. Allí no se sobrescribe nada. Después indica qué hay que rellenar antes de que el flujo pueda funcionar: las contraseñas de las conexiones que trajo, la carpeta de trabajo, la dirección de un webhook.
Por la API: GET /api/workflow/profiles/{index}/export y POST /api/workflow/profiles/import (SDK: client.workflow.exportFile, client.workflow.importFile). Los flujos de trabajo que han compartido otros fotógrafos, y los que vienen con la aplicación, están en la colección de scripts.
Vigilar un flujo de trabajo en marcha#
Un flujo de trabajo que se deja en marcha en un evento puede dejar de hacer su trabajo mientras sigue diciendo que está en marcha: llegan fotos y no se entrega nada, un paso falla en cada foto, las subidas esperan una hora, el disco se llena. Activa Settings → Workflow → Watch with Claude y photosuite vigila el flujo mientras funciona:
- Reglas, al instante y gratis: nada entregado durante unos minutos mientras llegan fotos, un paso que falla en tres fotos seguidas, una subida que espera más de lo que permites, menos disco libre del que permites y un flujo que se detiene solo.
- Claude, a horas fijas, con tu propia clave de Claude: los hechos como datos —lo que llegó, lo que cada paso hizo con las últimas fotos (el recorte y lo que encuadra, la exposición, los números leídos y los nombres dados) y lo que salió (tamaño, bytes, pie de foto y titular)— para ver lo que una regla no ve: todas las fotos del mismo tamaño diminuto, un recorte mucho más pequeño que los demás, números leídos sin que nadie reciba nombre, pies de foto vacíos, la misma foto enviada dos veces. El ajuste muestra las llamadas por hora y lo que cuesta un día de evento de diez horas; 0 minutos solo consulta las reglas. Con Mostrar a Claude las fotos activado, también ve una hoja de contactos de las fotos entregadas desde la última comprobación y las juzga como lo haría un editor: un recorte que corta a alguien, una foto demasiado oscura, la misma imagen otra vez. Un hallazgo sobre fotos abre la primera con un clic en la barra de información.
Lo que encuentra aparece en la barra de información, con qué hacer al pasar el puntero, como una notificación del sistema y como el evento watch_finding: un webhook en ese evento lo lleva a tu teléfono. Los scripts lo leen con GET /api/watch (client.workflow.watch()) y lo cambian con PUT /api/watch.
Lo que el flujo de trabajo hizo con cada foto se guarda, las últimas 5 000 por defecto (Settings → Workflow): lo que hizo cada paso (el recorte y lo que encuadra, los valores del revelado, los números leídos y los nombres dados, el archivo escrito y adónde fue), cuándo llegó la foto y cuándo terminó, y el primer paso que falló. Un script o una sesión de Claude lo lee con GET /api/workflow/files?since=<id> (client.workflow.files({ since })), y recibe cada paso y cada foto terminada a medida que ocurren en los eventos workflow_step_completed y workflow_file_completed. También las fotos: GET /api/workflow/files/{id}/picture da la foto que salió, o con stage=source la que llegó, a un tamaño que un modelo lee bien, y GET /api/workflow/files/sheet una hoja de contactos de las últimas con el id del registro debajo de cada una (client.workflow.picture, client.workflow.sheet).
Dirigir un flujo de trabajo en marcha#
Cuando algo falla en mitad de un evento (un recorte que no acierta, un pie de foto con la carrera equivocada), no hace falta detener el flujo de trabajo:
- Pausa: Deliver → Pause Workflow (Cmd+Option+P), el botón de pausa de la barra de información o Pausar el flujo de trabajo en Settings → Workflow. Las fotos siguen llegando y esperan; la barra de información dice cuántas. Corrige el flujo de trabajo y reanúdalo.
- Volver a ejecutar una foto: Volver a ejecutar junto a la foto en Settings → Workflow. Va antes que cualquier foto nueva, también en pausa. Un script puede fijar un recorte, una exposición, los números o un pie de foto solo para esa foto. Un almacenamiento de archivos y un álbum reciben la foto nueva en lugar de la primera; Dropbox, Google Drive y Flickr la reciben al lado; SmugMug conserva un nombre que ya tiene. La respuesta dice cuál.
- Retener una foto: Retener junto a la foto. Sale de la cola de reintentos o de una carpeta de entrega local (a
held/en la carpeta de trabajo) y de sus álbumes, oculta donde están publicados. Lo que ya fue a un servidor se indica, para retirarlo allí. Liberar lo devuelve todo.
Por la API: POST /api/workflow/pause y /resume, POST /api/workflow/files/{id}/rerun con crop, ev, bibs o caption, POST /api/workflow/files/{id}/hold con reason (y by), y /release (SDK: client.workflow.pause, resume, rerun, hold, release).
Las correcciones enseñan a la siguiente ejecución. Una foto que se vuelve a ejecutar con otro recorte u otra exposición, o que se retiene, se guarda como corrección: lo que hizo el flujo de trabajo, en qué se convirtió, por qué y quién. El recorte automático aprende de un recorte corregido como de los tuyos, y las correcciones de exposición de una forma de revelado (un preajuste, o Auto) mueven la exposición de las fotos siguientes. Aparecen en Corrections, en el panel Library, donde se puede quitar una junto con lo que se aprendió de ella (GET/DELETE /api/library/corrections). Settings → Workflow desactiva el aprendizaje.
Después del evento, el informe. Cada ejecución guarda lo que hizo: cuántas fotos llegaron y salieron (y adónde), cuáles se retuvieron y por qué, cuáles se volvieron a ejecutar, qué falló y en qué paso, el tiempo desde la llegada hasta el final, lo que encontró la vigilancia y las notas que una sesión de Claude o un script escribió en ella (POST /api/workflow/notes). Se ve en Settings → Workflow, también después de que la ejecución se detenga, se guarda como report-<start>.html en la carpeta de trabajo al detenerse y se lee con GET /api/workflow/runs.
Bodas#
Seleccionar miles de fotos de un día de boda completo.
- Importar — Copia a la vez al disco de trabajo y a una copia de seguridad. Usa la plantilla de carpeta
{image_date}/{camera}para separar los cuerpos. - Vista general — Vista de cuadrícula (G) para recorrer el día. Usa etiquetas de color para la ceremonia (6 rojo), el banquete (7 amarillo), los retratos (8 verde) y los detalles (9 azul).
- Valoración — Cambia a vista individual. Da de 3 a 5 estrellas a las mejores fotos. Usa el avance automático.
- Comparar — Para tomas parecidas (fotos de grupo, momentos de la ceremonia), pulsa C para comparar lado a lado. Al desplazarte se hace zoom en las dos fotos a la vez, así que la nitidez se comprueba en el mismo punto.
- Recorte automático — Para fotos de grupo de las que también quieres retratos individuales, el recorte automático crea recortes por persona solo.
- Metadatos — Edita el IPTC de toda la selección con los nombres de la pareja, el lugar y la fecha. Usa la copia de IPTC para pasar metadatos entre tomas parecidas.
- Exportar — Filtra 4 estrellas o más (Option+4) y exporta con el formato Original y Copy XMP sidecar files a una carpeta «selección» para editar en Lightroom o Capture One. Las valoraciones viajan en los XMP.
Deporte#

Disparo continuo a ritmo rápido, con cientos de fotos por jugada.
- Importar — Importa desde la tarjeta con verificación por suma de comprobación. Cambia el nombre al importar a
{image_date}_{seq:4}. - Repaso en cuadrícula — Vista de cuadrícula con miniaturas grandes. Localiza rápido las secuencias de acción.
- Ordenar por nitidez — View → Sort → Sharpness, descendente. Las tomas desenfocadas bajan al final.
- Survey — Pulsa N para ver 3 o 4 fotos parecidas a la vez. Elige el momento cumbre.
- Valorar rápido — Vista individual y avance automático. Da 3 estrellas o más a las que te quedas. Rechaza las desenfocadas.
- Recorte automático — Recorta ceñido alrededor de los deportistas para la web.
- Pie de foto y subida — Añade pies de foto rápidos y luego U al FTP.
Estudio y producto#
Entorno controlado, con el foco en la uniformidad y el detalle.
- Tether o importar — Abre directamente la carpeta de la sesión. Las fotos aparecen a medida que se toman.
- Lupa — En la cuadrícula, mantén Space y pasa el puntero para comprobar detalles al 100 %. Verifica el enfoque y la nitidez.
- Comparar — C para comparar variantes de iluminación lado a lado con el zoom sincronizado.
- Etiquetas de color — Etiqueta por montaje: rojo para el montaje A, amarillo para el B, etc.
- Exposición — Mantén abierto el panel lateral (I) para seguir la exposición de una toma a otra. Activa la capa de recorte (J) para buscar altas luces quemadas.
- Metadatos — Pon nombres de producto, referencias y palabras clave en la selección con el editor IPTC.
- Exportar — Copia la selección a la carpeta del retocador con un cambio de nombre que siga la convención del catálogo de productos.
Paisaje y viajes#
Grandes volúmenes de viajes de varios días, con cámaras y objetivos variados.
- Importar — Usa la plantilla de carpeta
{image_year}/{image_month}/{image_day}para ordenar por fecha. Aplica el track GPS del teléfono para geoetiquetar las fotos. - Filtrar por cámara — Si disparas con varios cuerpos, elige uno en la columna de filtro Camera (</kbd>) para revisar cada cuerpo por separado.
- Valoración — Primera pasada: marca los rechazos evidentes (X) y las elegidas claras (P). Segunda pasada: afina con estrellas.
- Filtrar por lugar — En el mapa, arrastra con Mayús alrededor de un lugar para quedarte solo con las fotos tomadas allí, o elige un lugar en la columna de filtro Place.
- Mapa de ruido — Para tomas de atardecer y noche con ISO alto, mira el mapa de ruido (H) para decidir qué fotos necesitan reducción de ruido.
- Reducción de ruido — Envía la selección de ISO alto a tu herramienta de reducción de ruido directamente desde FLOGVIT.photosuite (Shift+N).
- Palabras clave — Aplica palabras clave jerárquicas: Naturaleza → Montañas → Dolomitas. Write Place Names escribe la ciudad y el país en los archivos que tienen posición pero ningún lugar.
- Exportar — XMP listos para Lightroom o Capture One con todas las valoraciones, palabras clave y datos GPS intactos.
Automatización con la API#
Crea tus propios flujos con la API REST.
Marcar según exposición y nitidez#
Escribe un script que marque fotos según lo que encontraron los análisis:
import { CullingClient } from './photosuite-sdk.mjs';
const client = new CullingClient();
const images = await client.images.list();
// Reject what the exposure pass calls underexposed
const dark = images.filter((image) => image.exposure === 'underexposed');
// Flag sharp images as picks (sharpness is null until a frame is scored)
const sharp = images.filter(
(image) => image.exposure !== 'underexposed' && (image.sharpness ?? 0) > 500,
);
if (dark.length > 0) {
await client.batch.apply({ indices: dark.map((i) => i.index), action: 'set_flag', value: 'reject' });
}
if (sharp.length > 0) {
await client.batch.apply({ indices: sharp.map((i) => i.index), action: 'set_flag', value: 'pick' });
}
Webhooks#
Escucha eventos y lanza acciones externas:
import { CullingClient } from './photosuite-sdk.mjs';
const client = new CullingClient();
client.on('rating_set', async (event) => {
if (event.rating >= 4) {
// Queue high-rated images for every upload destination
await client.upload.queue([event.index]);
}
});
client.on('import_started', async (event) => {
// Tell the team on Slack that a card is coming in
await fetch(process.env.SLACK_WEBHOOK!, {
method: 'POST',
body: JSON.stringify({ text: `Importing ${event.files} files from ${event.source}` }),
});
});
Procesado por lotes#
Procesa una carpeta entera desde la línea de comandos:
import { CullingClient } from './photosuite-sdk.mjs';
const client = new CullingClient();
// Open folder
await client.folder.open('/Photos/2026/event');
// Crop every image around the people in it
for (const image of await client.images.list()) {
await client.navigate.to(image.index);
await client.images.autoCrop();
}
// Filter to 3+ stars and send them to every upload destination
await client.filter.set({ min_rating: 3 });
const selects = await client.images.list();
await client.upload.queue(selects.map((image) => image.index));
La API convierte FLOGVIT.photosuite en una pieza para cualquier flujo de trabajo que se te ocurra.