Arbeidsflyter
Slik settes funksjonene sammen for presse, et helt løp, bryllup, sport, studio, landskap og skript.
1:10Virkelige situasjoner som viser hvordan FLOGVIT.photosuites funksjoner settes sammen for ulike typer fotografi.

Presse og nyheter#

Den raskeste veien fra minnekort til publisert bilde.
- Import — Sett inn kortet. FLOGVIT.photosuite finner det selv. Importer med en IPTC-mal som er fylt ut på forhånd (publikasjon, fotograf, arrangement).
- Første runde — Enkeltbilde med automatisk videre (Shift+A). Trykk P for valgt, X for forkastet. Ikke tenk for lenge — det er farten som teller.
- Filtrer på valgte — Option+P viser bare de valgte.
- IPTC — Legg bildetekster og nøkkelord på utvalget (Cmd+E). Copy IPTC Metadata og Paste IPTC Metadata tar en bildetekst med til resten av en serie.
- Opplasting — Trykk U på hvert bilde for å sende det over FTP. Opplastingen går i bakgrunnen.
- Neste kort — Sett inn neste kort mens opplastingen fortsatt går. Importen og opplastingene går side om side.
Hele jobben, med et skript som sender hvert plukk til desken idet du gjør det, står i Fra kortet til desken.
Et helt løp etter dagen#
Når fotografene leverer bildene sine etter et arrangement, hver i sin mappe (in/Kari Foto/, in/Per Berg/), leverer én kjøring alt sammen.

- Lag en workflow fra Newspaper: whole event, HD with names (eller Relay: whole event, 4K with numbers for en stafett der numrene leveres uten navn). Hent startlista i Identify-steget, eller legg til mappa dens. Når to løp er fotografert på de samme kortene, gi hvert løp sin egen workflow og legg det andre løpets startliste under Also on the cards. Hvert nummer veies da mot begge listene, og hver workflow navngir bare sitt eget løp.
- Deliver → Deliver Event Folder…: velg workflowen, bildemappa (arrangementets
in/), hvor det skal leveres (ved siden avin/som standard) og kreditten (f.eks.Jærbladet). Et bilde der kameraet ikke har noen fotograf, får mappas navn som fotograf og «© Kari Foto / Jærbladet» som opphavsrett. Bilder som ligger rett i arrangementsmappa, ikke i en fotografs mappe, får navnet under Photographer. - Start. Dialogen teller bildene underveis, med og uten nummer, og lister opp feil. Leveransen havner i
delivered/with-numbers/ogdelivered/without-numbers/(variabelen{identified}i Export-stegets mappe). Hvert bilde som har et navn, har en.txtved siden av seg. - Gå gjennom det som ble holdt tilbake (Filter → Numbers → Needs review, se Startnummer), og kjør mappa på nytt. Det du avgjorde, blir stående, og hvert bildes lesing huskes, så en ny kjøring leser ingenting på nytt.
Over API-et: POST /api/workflows/run-on-folder med workflow og folder (og org, photographer), GET på samme sti for fremdrift, DELETE for å stoppe (SDK: client.runOnFolder).
Bilder tatt av andre#
Deliver → Download Album… henter et helt album inn i en mappe, klart for Deliver Event Folder:
- et offentlig Flickr-album (ingen konto trengs): hvert bilde under navnet fotografens kamera ga det, ellers tittelen. Med One folder per photographer blir første ord i tittelen mappa (
Grete Jonsson-12→Grete/). Den største størrelsen Flickr lager, tas i stedet for originalen, fordi Flickr begrenser hvor mye som kan hentes, og en original bruker det opp fem ganger så fort. Når Flickr sier nei, senker appen farten og prøver igjen; den hopper aldri over et bilde. Et bilde som alt ligger i mappa, hentes ikke på nytt, så en stoppet nedlasting fortsetter der den slapp; - et SmugMug-galleri din SmugMug-tilkobling kan se, ved lenke eller node-ID, inn i en mappe med fotografens navn. Hvert bilde kommer i 4K, som gir de samme numrene som originalen på en tidel av størrelsen; Originals henter originalene.
Over API-et: POST /api/albums/download.
Løpsgalleriet#
Et levert arrangements galleri på nett (jaerbladet.menneske.no og løpsgalleriene) leser én manifest.json per arrangement. Deliver → Build Race Gallery… skriver den fra arrangementets mappe (over API-et: POST /api/event-site): hvert leverte bilde med størrelsene fra SmugMug-galleriet (eller størrelser skrevet ved siden av manifestet), hvem som er i det, personboksene mobilvisningen beskjærer til, redaksjonens valg først, og registrene siden søker i etter nummer, klasse, klubb og fotograf. Et nummer i et bilde som ingen i startlista har, stopper byggingen, heller enn å vise et nummer uten navn. En stafett der arrangementsmappa har photographers.json (hver fotografs navn og hvor langs løypa de sto), får stafettgalleriet i stedet: lag og bedrifter, og bilder etter sted langs løypa. En fotograf som mangler i fila, eller et sted som ikke er på løypa, stopper byggingen heller enn å kreditere et bilde til ingen. Stafettens filnavn bærer fotografen (<slug>-<n>.jpg), siden SmugMug aldri ser mappene.
To valg i samme vindu bruker hver løpers egen skarphet i et bilde med flere, fra Identifys journal: Leave a runner out of their gallery where they are soft tar nummeret av et bilde der løperen leses mindre enn halvparten så skarp som den skarpeste personen der, og List each runner's pictures sharpest on them first ordner hver løpers bilder etter hvor skarp løperen er i dem. Begge er av som standard (i API-et: softRunnerShare og sharpestFirst).
Årets beste#
Deliver → Pick the Year's Best… velger de beste bildene fra et levert arrangement inn i <event>_best/, navngitt etter plassering, med best.json som sier hvorfor hvert ble valgt. Hvert sted rangeres mot seg selv (et målområde er lettere å fotografere enn en vekslingssone). Hver fotograf får ett bilde først, så får hvert sted sin andel, og resten velges etter kvalitet, med et tak per sted. Et lag vises én gang og en bedrift høyst to ganger. Apple Vision gir de estetiske poengene og ansiktspoengene, så det krever macOS 15 eller nyere; på Windows er det ikke der ennå. En lokal bildemodell, når du oppgir en, vurderer kortlistas scene, uttrykk og historie og skriver en kort norsk bildetekst, men den blir aldri spurt om et navn: lagene kommer fra startlista.
For å gå gjennom: slett bildene du er uenig i fra _best-mappa og velg på nytt. Slettede bilder kommer aldri tilbake, de du beholdt, beholder plassen sin, og bare de ledige plassene fylles. Over API-et: POST /api/best-of-year.
Et stevne vist direkte#
Når fotografene sender utvalget sitt til en FTP-server under arrangementet, kan photosuite fjerne støy, beskjære og rette opp hvert bilde, legge det ut for salg på eventphotos og vise det på TV-en i hallen, uten at noen rører det.

- Workflowen. Settings → Workflow → From Template… → Live event: FTP → DxO → album. Velg FTP-tilkoblingen og mappa i Ingest, DxO-profilen i Denoise og et albumnavn i Add to Album (f.eks.
NM kortbane). - Albumet på eventphotos. Høyreklikk albumet i Library-panelet → Publish to… → arrangementet. Hvert bilde workflowen legger til, går ut av seg selv: når bildene kommer tett, senest ett minutt etter det første som venter.
- TV-en. eventphotos' TV-app viser arrangementets live-side,
/e/<arrangement>/live. - Start Workflow. Fotografene sender utvalget sitt til FTP-mappa.
Hvert bilde får Auto: den lyseste ekte detaljen lagt høyt uten å klippe, hallens LED-lys holdt utenfor, ansikter i hudbåndet på bølgeformen og løftet med Lift når de ligger under, og svartpunktet satt for hvert bilde. Filer som er undereksponert for kort lukkertid og filer som er riktig eksponert, kommer ut som én serie fordi hver får det den trenger. Ingenting må stilles inn; i workflowens Develop-steg kan et forhåndsvalg velges under Look for unedited files, og Auto for each unedited file slås av.
Hvert bilde beskjæres 3:2 (2:3 når kameraet ble holdt på høykant) rundt svømmeren kameraet fokuserte på (etter kameraets eget fokuspunkt, også der ingen blir funnet i vannet), med hele svømmeren (hodet, armene, skuldrene og vannspruten foran), plassert etter komposisjonsreglene med luft rundt og aldri mindre enn en A4-utskrift, og rettes opp etter linjene i bildet. Utsnittet går til eventphotos som en redigering, så en kjøper kan gjøre det større; hele bildet er fila DxO skrev. Et bilde som feilet, ligger i workflowens failed/-mappe med grunnen.
Hva Export-steget skriver#
En workflows Export-steg skriver det eksportdialogen skriver. Velg en lagret eksportprofil (eller standardverdiene), og sett format, kvalitet, bitdybde, fargerom eller metadata i stedet for profilens: alle formater og fargerom eksportdialogen har, eller en kopi av fila. Profilens ekstra størrelser og skjerping følger med. Uten profil eller metadatavalg bærer den leverte fila det workflowens egne steg (Identify, Inject Metadata) la der, som før. Et skripts export() tar de samme feltene.
Dele en workflow#
En workflow kan sendes til en annen maskin, eller til en annen fotograf, som én fil. I Settings → Workflows velger du den og trykker Export…. Den lagres som <name>.photosuite-workflow, med tilkoblingene, denoise-profilen, IPTC-malen og eksportprofilen stegene bruker. Ingen passord, tokener eller nøkler kommer med i fila, heller ikke arbeidsmappa eller adressen til en webhook, så den er trygg å sende.
Import… på den andre maskinen legger den til. En tilkobling eller profil den maskinen allerede har, med samme navn og som peker samme sted, brukes som den er; alt annet legges til ved siden av under et ledig navn (Desk 2), og stegene følger med. Ingenting der blir skrevet over. Etterpå står det hva som må fylles inn før workflowen kan kjøre: passordene til tilkoblingene den tok med, arbeidsmappa, adressen til en webhook.
Over API-et: GET /api/workflow/profiles/{index}/export og POST /api/workflow/profiles/import (SDK: client.workflow.exportFile, client.workflow.importFile). Workflows andre fotografer har delt, og dem appen følger med, finner du i skriptsamlingen.
Pass på en workflow som kjører#
En workflow som står og går på et arrangement, kan slutte å gjøre jobben sin mens den fortsatt sier at den kjører: bildene kommer, men ingenting leveres, ett steg feiler på hvert bilde, opplastinger venter i en time, disken blir full. Slå på Settings → Workflow → Watch with Claude, så passer photosuite på workflowen mens den kjører:
- Regler, med en gang og gratis: ingenting levert på et antall minutter mens bilder kommer, et steg som feiler på tre bilder på rad, en opplasting som venter lenger enn du tillater, mindre ledig disk enn du tillater, og en workflow som stopper av seg selv.
- Claude, til faste tider, med din egen Claude-nøkkel: fakta som data — hva som kom, hva hvert steg gjorde med de siste bildene (utsnittet og hva det rammet inn, eksponeringen, numrene som ble lest og navnene som ble gitt) og hva som gikk ut (størrelse, bytes, bildetekst og overskrift) — for å se det en regel ikke ser: alle bildene i samme lille størrelse, et utsnitt langt mindre enn de andre, nummer lest uten at noen fikk navn, bildetekster som står tomme, samme bilde sendt to ganger. Innstillingen viser hvor mange kall det blir i timen og hva en arrangementsdag på ti timer koster; 0 minutter spør bare reglene. Med Vis Claude bildene på ser den også et kontaktark over bildene som er levert siden forrige sjekk, og vurderer dem som en redaktør ville: et utsnitt som kutter noen, et bilde altfor mørkt, samme bilde om igjen. Et funn om bilder åpner det første av dem med et klikk i infolinja.
Det den finner, står i infolinja med hva du bør gjøre når du holder pekeren over, kommer som et varsel fra systemet, og sendes som hendelsen watch_finding: en webhook på den hendelsen bringer det til telefonen din. Skript leser det med GET /api/watch (client.workflow.watch()) og endrer det med PUT /api/watch.
Hva workflowen gjorde med hvert bilde, blir tatt vare på, de siste 5 000 som standard (Settings → Workflow): hva hvert steg gjorde (utsnittet og hva det rammet inn, fremkallingens verdier, numrene som ble lest og navnene som ble gitt, fila som ble skrevet og hvor den gikk), når bildet kom og var ferdig, og det første steget som feilet. Et skript eller en Claude-økt leser det med GET /api/workflow/files?since=<id> (client.workflow.files({ since })), og får hvert steg og hvert ferdige bilde etter hvert som det skjer i hendelsene workflow_step_completed og workflow_file_completed. Bildene også: GET /api/workflow/files/{id}/picture gir bildet som gikk ut, eller med stage=source det som kom inn, i en størrelse en modell leser godt, og GET /api/workflow/files/sheet ett kontaktark over de siste med postens id under hvert (client.workflow.picture, client.workflow.sheet).
Styr en workflow som kjører#
Når noe er galt midt i et arrangement (et utsnitt som bommer, en bildetekst med feil løp), trenger ikke workflowen å stoppes:
- Pause: Deliver → Pause Workflow (Cmd+Option+P), pauseknappen i infolinja, eller Sett workflowen på pause i Settings → Workflow. Bildene fortsetter å komme og venter; infolinja sier hvor mange. Rett workflowen, og fortsett.
- Kjør et bilde igjen: Kjør igjen ved siden av bildet i Settings → Workflow. Det går før alle nye bilder, også på pause. Et skript kan sette et utsnitt, en eksponering, numrene eller en bildetekst for det ene bildet. Et fillager og et album får det nye bildet i stedet for det første; Dropbox, Google Drive og Flickr får det ved siden av; SmugMug beholder et navn det alt har. Svaret sier hvilket.
- Hold et bilde tilbake: Hold ved siden av bildet. Det tas ut av retry-køen eller en lokal leveransemappe (til
held/i arbeidsmappa) og ut av albumene sine, skjult der de er publisert. Det som alt har gått til en server, blir sagt, så det kan tas ned der. Slipp legger alt tilbake.
Over API-et: POST /api/workflow/pause og /resume, POST /api/workflow/files/{id}/rerun med crop, ev, bibs eller caption, POST /api/workflow/files/{id}/hold med reason (og by), og /release (SDK: client.workflow.pause, resume, rerun, hold, release).
Rettelser lærer neste kjøring. Et bilde som kjøres igjen med et annet utsnitt eller en annen eksponering, eller holdes tilbake, tas vare på som en rettelse: hva workflowen gjorde, hva det ble, hvorfor og hvem. Et rettet utsnitt lærer autobeskjæringen av, som av dine egne utsnitt, og eksponeringsrettelsene på en fremkallingsform (et forhåndsvalg, eller Auto) flytter eksponeringen de neste bildene får. De står under Corrections i Library-panelet, der en kan fjernes og det som ble lært av den, med den (GET/DELETE /api/library/corrections). Settings → Workflow slår læringen av.
Etter arrangementet, rapporten. Hver kjøring tar vare på hva den gjorde: hvor mange bilder som kom inn og gikk ut (og hvor), hvilke som ble holdt tilbake og hvorfor, hvilke som ble kjørt igjen, hva som feilet og på hvilket steg, tiden fra ankomst til ferdig, hva vakta fant, og notatene en Claude-økt eller et skript skrev inn (POST /api/workflow/notes). Den vises i Settings → Workflow, også etter at kjøringen har stoppet, lagres som report-<start>.html i arbeidsmappa når den stopper, og leses med GET /api/workflow/runs.
Bryllup#
Culling av tusenvis av bilder fra en hel bryllupsdag.
- Import — Kopier til arbeidsdisken og en backup på én gang. Bruk mappemalen
{image_date}/{camera}for å skille husene. - Oversikt — Grid-visning (G) for å gå gjennom dagen. Bruk fargeetiketter for vielse (6 rød), selskap (7 gul), portretter (8 grønn) og detaljer (9 blå).
- Stjerner — Bytt til enkeltbilde. Gi de beste bildene 3–5 stjerner. Bruk automatisk videre.
- Compare — For like bilder (gruppebilder, øyeblikk fra vielsen) trykker du C for å sammenligne side om side. Rulling zoomer begge bildene sammen, så skarpheten sjekkes på samme sted.
- Autobeskjæring — For gruppebilder der du også vil ha enkeltportretter, lager autobeskjæringen personutsnitt av seg selv.
- Metadata — Rediger IPTC for hele utvalget med brudeparets navn, sted og dato. Bruk Kopiere IPTC for å flytte metadata mellom like bilder.
- Eksport — Filtrer på 4 stjerner og mer (Option+4) og eksporter med formatet Original og Copy XMP sidecar files til en «utvalg»-mappe for redigering i Lightroom eller Capture One. Stjernene følger med i sidecar-filene.
Sport#

Kontinuerlig fotografering i høyt tempo, med hundrevis av bilder per situasjon.
- Import — Importer fra kortet med sjekksum. Gi nytt navn underveis til
{image_date}_{seq:4}. - Gå gjennom griden — Grid-visning med store miniatyrer. Finn actionsekvensene raskt.
- Sorter på skarphet — View → Sort → Sharpness, synkende. Uskarpe bilder havner nederst.
- Survey — Trykk N for å se 3–4 like bilder samtidig. Velg toppen av øyeblikket.
- Rask vurdering — Enkeltbilde og automatisk videre. Gi bildene du beholder 3+ stjerner. Forkast de uskarpe.
- Autobeskjæring — Beskjær tett rundt utøverne for nett.
- Bildetekst og opplasting — Legg på korte bildetekster, så U til FTP.
Studio og produkt#
Kontrollerte forhold, med vekt på at alt er likt og detaljene stemmer.
- Tether eller import — Åpne mappa for opptaket direkte. Bildene dukker opp etter hvert som de tas.
- Lupe — I griden holder du Space og fører pekeren over for å se detaljer i 100 %. Sjekk fokus og skarphet.
- Compare — C for å sammenligne lysvarianter side om side med zoomen synkronisert.
- Fargeetiketter — Merk etter oppsett: rød for oppsett A, gul for oppsett B osv.
- Eksponering — Hold sidepanelet åpent (I) for å følge eksponeringen fra bilde til bilde. Slå på klippeoverlegget (J) for å se etter utbrente høylys.
- Metadata — Legg produktnavn, varenummer og nøkkelord på utvalget i IPTC-redigereren.
- Eksport — Kopier utvalget til retusjørens mappe med nytt navn etter produktkatalogens navnemønster.
Landskap og reise#
Store mengder fra turer over flere dager, med blandede kameraer og objektiver.
- Import — Bruk mappemalen
{image_year}/{image_month}/{image_day}for å ordne alt etter dato. Legg på GPS-sporet fra telefonen for å geotagge bildene. - Filtrer på kamera — Bruker du flere hus, velg ett i Camera-filterkolonnen (</kbd>) for å gå gjennom hvert hus for seg.
- Stjerner — Første runde: flagg de åpenbare forkastede (X) og de sterke valgene (P). Andre runde: finjuster med stjerner.
- Filtrer på sted — På kartet Shift-drar du rundt et sted for å beholde bare bildene som er tatt der, eller du velger et sted i Place-filterkolonnen.
- Støykart — For skumrings- og nattbilder med høy ISO, se på støykartet (H) for å avgjøre hvilke bilder som trenger støyfjerning.
- Støyfjerning — Send utvalget med høy ISO til støyfjerningsverktøyet rett fra FLOGVIT.photosuite (Shift+N).
- Nøkkelord — Legg på hierarkiske nøkkelord: Natur → Fjell → Dolomittene. Write Place Names skriver by og land inn i filer som har en posisjon, men ikke noe sted.
- Eksport — XMP-sidecar-filer klare for Lightroom eller Capture One med alle stjerner, nøkkelord og GPS-data i behold.
Automatisering med API-et#
Bygg egne arbeidsflyter med REST-API-et.
Flagg etter eksponering og skarphet#
Skriv et skript som flagger bilder ut fra det analysene fant:
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#
Lytt etter hendelser og sett i gang ting utenfor:
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}` }),
});
});
Behandle mange bilder#
Behandle en hel mappe fra kommandolinja:
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));
API-et gjør FLOGVIT.photosuite til en byggekloss i hvilken som helst arbeidsflyt du kan tenke deg.