Arbeidsflytar
Slik blir funksjonane sette saman for presse, eit heilt løp, bryllaup, sport, studio, landskap og skript.
1:10Verkelege situasjonar som viser korleis funksjonane i FLOGVIT.photosuite blir sette saman for ulike typar fotografi.

Presse og nyheiter#

Den raskaste vegen frå minnekort til publisert bilete.
- Import — Set inn kortet. FLOGVIT.photosuite finn det sjølv. Importer med ein IPTC-mal som er fylt ut på førehand (publikasjon, fotograf, arrangement).
- Første runde — Enkeltbilete med automatisk vidare (Shift+A). Trykk P for valt, X for forkasta. Ikkje tenk for lenge — det er farten som tel.
- Filtrer på valde — Option+P viser berre dei valde.
- IPTC — Legg bilettekstar og nøkkelord på utvalet (Cmd+E). Copy IPTC Metadata og Paste IPTC Metadata tek ein bilettekst med til resten av ein serie.
- Opplasting — Trykk U på kvart bilete for å sende det over FTP. Opplastinga går i bakgrunnen.
- Neste kort — Set inn neste kort medan opplastinga framleis går. Importen og opplastingane går side om side.
Heile jobben, med eit skript som sender kvart plukk til desken idet du gjer det, står i Frå kortet til desken.
Eit heilt løp etter dagen#
Når fotografane leverer bileta sine etter eit arrangement, kvar i si mappe (in/Kari Foto/, in/Per Berg/), leverer éi køyring alt saman.

- Lag ein workflow frå Newspaper: whole event, HD with names (eller Relay: whole event, 4K with numbers for ein stafett der nummera blir leverte utan namn). Hent startlista i Identify-steget, eller legg til mappa hennar. Når to løp er fotograferte på dei same korta, gje kvart løp sin eigen workflow og legg startlista til det andre løpet under Also on the cards. Kvart nummer blir då vege mot begge listene, og kvar workflow namngjev berre sitt eige løp.
- Deliver → Deliver Event Folder…: vel workflowen, biletmappa (
in/til arrangementet), kvar det skal leverast (ved sida avin/som standard) og kreditten (t.d.Jærbladet). Eit bilete der kameraet ikkje har nokon fotograf, får namnet til mappa som fotograf og «© Kari Foto / Jærbladet» som opphavsrett. Bilete som ligg rett i arrangementsmappa, ikkje i mappa til ein fotograf, får namnet under Photographer. - Start. Dialogen tel bileta undervegs, med og utan nummer, og listar opp feil. Leveransen hamnar i
delivered/with-numbers/ogdelivered/without-numbers/(variabelen{identified}i mappa til Export-steget). Kvart bilete som har eit namn, har ei.txtved sida av seg. - Gå gjennom det som vart halde tilbake (Filter → Numbers → Needs review, sjå Startnummer), og køyr mappa på nytt. Det du avgjorde, blir ståande, og lesinga av kvart bilete blir hugsa, så ei ny køyring les ingenting på nytt.
Over API-et: POST /api/workflows/run-on-folder med workflow og folder (og org, photographer), GET på same sti for framdrift, DELETE for å stoppe (SDK: client.runOnFolder).
Bilete tekne av andre#
Deliver → Download Album… hentar eit heilt album inn i ei mappe, klart for Deliver Event Folder:
- eit offentleg Flickr-album (ingen konto trengst): kvart bilete under namnet kameraet til fotografen gav det, elles tittelen. Med One folder per photographer blir første ordet i tittelen mappa (
Grete Jonsson-12→Grete/). Den største storleiken Flickr lagar, blir teken i staden for originalen, fordi Flickr avgrensar kor mykje som kan hentast, og ein original brukar det opp fem gonger så fort. Når Flickr seier nei, senkar appen farten og prøver att; han hoppar aldri over eit bilete. Eit bilete som alt ligg i mappa, blir ikkje henta på nytt, så ei stoppa nedlasting held fram der ho slapp; - eit SmugMug-galleri SmugMug-tilkoplinga di kan sjå, ved lenkje eller node-ID, inn i ei mappe med namnet til fotografen. Kvart bilete kjem i 4K, som gjev dei same nummera som originalen på ein tidel av storleiken; Originals hentar originalane.
Over API-et: POST /api/albums/download.
Løpsgalleriet#
Galleriet på nett til eit levert arrangement (jaerbladet.menneske.no og løpsgalleria) les éin manifest.json per arrangement. Deliver → Build Race Gallery… skriv han frå mappa til arrangementet (over API-et: POST /api/event-site): kvart levert bilete med storleikane frå SmugMug-galleriet (eller storleikar skrivne ved sida av manifestet), kven som er i det, personboksane mobilvisinga skjer til, valet til redaksjonen først, og registra sida søkjer i etter nummer, klasse, klubb og fotograf. Eit nummer i eit bilete som ingen i startlista har, stoppar bygginga, heller enn å vise eit nummer utan namn. Ein stafett der arrangementsmappa har photographers.json (namnet til kvar fotograf og kvar langs løypa dei stod), får stafettgalleriet i staden: lag og bedrifter, og bilete etter stad langs løypa. Ein fotograf som manglar i fila, eller ein stad som ikkje er på løypa, stoppar bygginga heller enn å kreditere eit bilete til ingen. Filnamna i stafetten ber fotografen (<slug>-<n>.jpg), sidan SmugMug aldri ser mappene.
To val i same vindauge brukar skarpleiken til kvar løpar i eit bilete med fleire, frå journalen til Identify: Leave a runner out of their gallery where they are soft tek nummeret av eit bilete der løparen blir lesen mindre enn halvparten så skarp som den skarpaste personen der, og List each runner's pictures sharpest on them first ordnar bileta til kvar løpar etter kor skarp løparen er i dei. Begge er av som standard (i API-et: softRunnerShare og sharpestFirst).
Årets beste#
Deliver → Pick the Year's Best… vel dei beste bileta frå eit levert arrangement inn i <event>_best/, namngitte etter plassering, med best.json som seier kvifor kvart vart valt. Kvar stad blir rangert mot seg sjølv (eit målområde er lettare å fotografere enn ei vekslingssone). Kvar fotograf får eitt bilete først, så får kvar stad sin del, og resten blir valt etter kvalitet, med eit tak per stad. Eit lag blir vist éin gong og ei bedrift høgst to gonger. Apple Vision gjev dei estetiske poenga og ansiktspoenga, så det krev macOS 15 eller nyare; på Windows er det ikkje der enno. Ein lokal biletmodell, når du oppgjev ein, vurderer scene, uttrykk og historie i kortlista og skriv ein kort norsk bilettekst, men han blir aldri spurd om eit namn: laga kjem frå startlista.
For å gå gjennom: slett bileta du er usamd i frå _best-mappa og vel på nytt. Sletta bilete kjem aldri tilbake, dei du heldt på, held på plassen sin, og berre dei ledige plassane blir fylte. Over API-et: POST /api/best-of-year.
Eit stemne vist direkte#
Når fotografane sender utvalet sitt til ein FTP-tenar under arrangementet, kan photosuite fjerne støy, skjere til og rette opp kvart bilete, leggje det ut for sal på eventphotos og vise det på TV-en i hallen, utan at nokon rører det.

- Workflowen. Settings → Workflow → From Template… → Live event: FTP → DxO → album. Vel FTP-tilkoplinga og mappa i Ingest, DxO-profilen i Denoise og eit albumnamn i Add to Album (t.d.
NM kortbane). - Albumet på eventphotos. Høgreklikk albumet i Library-panelet → Publish to… → arrangementet. Kvart bilete workflowen legg til, går ut av seg sjølv: når bileta kjem tett, seinast eitt minutt etter det første som ventar.
- TV-en. TV-appen til eventphotos viser live-sida til arrangementet,
/e/<arrangement>/live. - Start Workflow. Fotografane sender utvalet sitt til FTP-mappa.
Kvart bilete får Auto: den lysaste ekte detaljen lagd høgt utan å klippe, LED-lysa i hallen haldne utanfor, andlet i hudbandet på bølgjeforma og løfta med Lift når dei ligg under, og svartpunktet sett for kvart bilete. Filer som er undereksponerte for kort lukkartid og filer som er rett eksponerte, kjem ut som éi serie fordi kvar får det han treng. Ingenting må stillast inn; i Develop-steget i workflowen kan eit førehandsval veljast under Look for unedited files, og Auto for each unedited file slåast av.
Kvart bilete blir skore til 3:2 (2:3 når kameraet vart halde på høgkant) rundt symjaren kameraet fokuserte på (etter kameraet sitt eige fokuspunkt, også der ingen blir funnen i vatnet), med heile symjaren (hovudet, armane, skuldrene og vasspruten framfor), plassert etter komposisjonsreglane med luft rundt og aldri mindre enn ei A4-utskrift, og retta opp etter linjene i biletet. Utsnittet går til eventphotos som ei redigering, så ein kjøpar kan gjere det større; heile biletet er fila DxO skreiv. Eit bilete som feila, ligg i failed/-mappa til workflowen med grunnen.
Kva Export-steget skriv#
Export-steget i ein workflow skriv det eksportdialogen skriv. Vel ein lagra eksportprofil (eller standardverdiane), og set format, kvalitet, bitdjupn, fargerom eller metadata i staden for dei til profilen: alle format og fargerom eksportdialogen har, eller ein kopi av fila. Dei ekstra storleikane og skjerpinga til profilen følgjer med. Utan profil eller metadataval ber den leverte fila det dei eigne stega til workflowen (Identify, Inject Metadata) la der, som før. export() i eit skript tek dei same felta.
Dele ein workflow#
Ein workflow kan sendast til ei anna maskin, eller til ein annan fotograf, som éi fil. I Settings → Workflows vel du han og trykkjer Export…. Han blir lagra som <name>.photosuite-workflow, med tilkoplingane, denoise-profilen, IPTC-malen og eksportprofilen stega brukar. Ingen passord, token eller nøklar kjem med i fila, heller ikkje arbeidsmappa eller adressa til ein webhook, så ho er trygg å sende.
Import… på den andre maskina legg han til. Ei tilkopling eller ein profil den maskina alt har, med same namn og som peikar same stad, blir brukt som han er; alt anna blir lagt til ved sida av under eit ledig namn (Desk 2), og stega følgjer med. Ingenting der blir skrive over. Etterpå står det kva som må fyllast inn før workflowen kan køyre: passorda til tilkoplingane han tok med, arbeidsmappa, adressa til ein webhook.
Over API-et: GET /api/workflow/profiles/{index}/export og POST /api/workflow/profiles/import (SDK: client.workflow.exportFile, client.workflow.importFile). Workflowar andre fotografar har delt, og dei appen følgjer med, finn du i skriptsamlinga.
Pass på ein workflow som køyrer#
Ein workflow som står og går på eit arrangement, kan slutte å gjere jobben sin medan han framleis seier at han køyrer: bileta kjem, men ingenting vert levert, eitt steg feilar på kvart bilete, opplastingar ventar i ein time, disken vert full. Slå på Settings → Workflow → Watch with Claude, så passar photosuite på workflowen medan han køyrer:
- Reglar, med ein gong og gratis: ingenting levert på eit tal minutt medan bilete kjem, eit steg som feilar på tre bilete på rad, ei opplasting som ventar lenger enn du tillèt, mindre ledig disk enn du tillèt, og ein workflow som stoppar av seg sjølv.
- Claude, til faste tider, med din eigen Claude-nøkkel: fakta som data — kva som kom, kva kvart steg gjorde med dei siste bileta (utsnittet og kva det ramma inn, eksponeringa, nummera som vart lesne og namna som vart gjevne) og kva som gjekk ut (storleik, bytes, bilettekst og overskrift) — for å sjå det ein regel ikkje ser: alle bileta i same vesle storleik, eit utsnitt langt mindre enn dei andre, nummer lesne utan at nokon fekk namn, bilettekstar som står tomme, same bilete sendt to gonger. Innstillinga viser kor mange kall det blir i timen og kva ein arrangementsdag på ti timar kostar; 0 minutt spør berre reglane. Med Vis Claude bileta på ser han òg eit kontaktark over bileta som er leverte sidan førre sjekk, og vurderer dei som ein redaktør ville: eit utsnitt som kuttar nokon, eit bilete altfor mørkt, same bilete om att. Eit funn om bilete opnar det første av dei med eit klikk i infolinja.
Det han finn, står i infolinja med kva du bør gjere når du held peikaren over, kjem som eit varsel frå systemet, og vert sendt som hendinga watch_finding: ein webhook på den hendinga bringar det til telefonen din. Skript les det med GET /api/watch (client.workflow.watch()) og endrar det med PUT /api/watch.
Kva workflowen gjorde med kvart bilete, blir teke vare på, dei siste 5 000 som standard (Settings → Workflow): kva kvart steg gjorde (utsnittet og kva det ramma inn, verdiane i fremkallinga, nummera som vart lesne og namna som vart gjevne, fila som vart skriven og kvar ho gjekk), når biletet kom og var ferdig, og det første steget som feila. Eit skript eller ei Claude-økt les det med GET /api/workflow/files?since=<id> (client.workflow.files({ since })), og får kvart steg og kvart ferdige bilete etter kvart som det skjer i hendingane workflow_step_completed og workflow_file_completed. Bileta òg: GET /api/workflow/files/{id}/picture gjev biletet som gjekk ut, eller med stage=source det som kom inn, i ein storleik ein modell les godt, og GET /api/workflow/files/sheet eitt kontaktark over dei siste med id-en til posten under kvart (client.workflow.picture, client.workflow.sheet).
Styr ein workflow som køyrer#
Når noko er gale midt i eit arrangement (eit utsnitt som bommar, ein bilettekst med feil løp), treng ikkje workflowen stoppast:
- Pause: Deliver → Pause Workflow (Cmd+Option+P), pauseknappen i infolinja, eller Set workflowen på pause i Settings → Workflow. Bileta held fram med å kome og ventar; infolinja seier kor mange. Rett workflowen, og hald fram.
- Køyr eit bilete igjen: Køyr igjen ved sida av biletet i Settings → Workflow. Det går før alle nye bilete, òg på pause. Eit skript kan setje eit utsnitt, ei eksponering, nummera eller ein bilettekst for det eine biletet. Eit fillager og eit album får det nye biletet i staden for det første; Dropbox, Google Drive og Flickr får det ved sida av; SmugMug held på eit namn det alt har. Svaret seier kva.
- Hald eit bilete tilbake: Hald ved sida av biletet. Det blir teke ut av retry-køen eller ei lokal leveransemappe (til
held/i arbeidsmappa) og ut av albuma sine, gøymt der dei er publiserte. Det som alt har gått til ein server, blir sagt, så det kan takast ned der. Slepp legg 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).
Rettingar lærer neste køyring. Eit bilete som blir køyrt igjen med eit anna utsnitt eller ei anna eksponering, eller blir halde tilbake, blir teke vare på som ei retting: kva workflowen gjorde, kva det vart, kvifor og kven. Eit retta utsnitt lærer autobeskjeringa av, som av dine eigne utsnitt, og eksponeringsrettingane på ei fremkallingsform (eit førehandsval, eller Auto) flyttar eksponeringa dei neste bileta får. Dei står under Corrections i Library-panelet, der ei kan fjernast og det som vart lært av ho, med ho (GET/DELETE /api/library/corrections). Settings → Workflow slår læringa av.
Etter arrangementet, rapporten. Kvar køyring tek vare på kva ho gjorde: kor mange bilete som kom inn og gjekk ut (og kvar), kva for nokre som vart haldne tilbake og kvifor, kva for nokre som vart køyrde igjen, kva som feila og på kva steg, tida frå ankomst til ferdig, kva vakta fann, og notata ei Claude-økt eller eit skript skreiv inn (POST /api/workflow/notes). Ho blir vist i Settings → Workflow, òg etter at køyringa har stoppa, blir lagra som report-<start>.html i arbeidsmappa når ho stoppar, og blir lesen med GET /api/workflow/runs.
Bryllaup#
Culling av tusenvis av bilete frå ein heil bryllaupsdag.
- Import — Kopier til arbeidsdisken og ein backup på ein gong. Bruk mappemalen
{image_date}/{camera}for å skilje husa. - Oversyn — Grid-visinga (G) for å gå gjennom dagen. Bruk fargeetikettar for vigsle (6 raud), selskap (7 gul), portrett (8 grøn) og detaljar (9 blå).
- Stjerner — Byt til enkeltbilete. Gje dei beste bileta 3–5 stjerner. Bruk automatisk vidare.
- Compare — For like bilete (gruppebilete, augneblink frå vigsla) trykkjer du C for å samanlikne side om side. Rulling zoomar begge bileta saman, så skarpleiken blir sjekka på same stad.
- Autobeskjering — For gruppebilete der du òg vil ha enkeltportrett, lagar autobeskjeringa personutsnitt av seg sjølv.
- Metadata — Rediger IPTC for heile utvalet med namna til brudeparet, stad og dato. Bruk Kopiere IPTC for å flytte metadata mellom like bilete.
- Eksport — Filtrer på 4 stjerner og meir (Option+4) og eksporter med formatet Original og Copy XMP sidecar files til ei «utval»-mappe for redigering i Lightroom eller Capture One. Stjernene følgjer med i sidecar-filene.
Sport#

Kontinuerleg fotografering i høgt tempo, med hundrevis av bilete per situasjon.
- Import — Importer frå kortet med sjekksum. Gje nytt namn undervegs til
{image_date}_{seq:4}. - Gå gjennom griden — Grid-visinga med store miniatyrar. Finn actionsekvensane raskt.
- Sorter på skarpleik — View → Sort → Sharpness, synkande. Uskarpe bilete hamnar nedst.
- Survey — Trykk N for å sjå 3–4 like bilete samtidig. Vel toppen av augneblinken.
- Rask vurdering — Enkeltbilete og automatisk vidare. Gje bileta du held på 3+ stjerner. Forkast dei uskarpe.
- Autobeskjering — Skjer tett rundt utøvarane for nett.
- Bilettekst og opplasting — Legg på korte bilettekstar, så U til FTP.
Studio og produkt#
Kontrollerte tilhøve, med vekt på at alt er likt og detaljane stemmer.
- Tether eller import — Opne mappa for opptaket direkte. Bileta dukkar opp etter kvart som dei blir tekne.
- Lupe — I griden held du Space og fører peikaren over for å sjå detaljar i 100 %. Sjekk fokus og skarpleik.
- Compare — C for å samanlikne lysvariantar side om side med zoomen synkronisert.
- Fargeetikettar — Merk etter oppsett: raud for oppsett A, gul for oppsett B osb.
- Eksponering — Hald sidepanelet ope (I) for å følgje eksponeringa frå bilete til bilete. Slå på klippeoverlegget (J) for å sjå etter utbrende høglys.
- Metadata — Legg produktnamn, varenummer og nøkkelord på utvalet i IPTC-redigeraren.
- Eksport — Kopier utvalet til mappa til retusjøren med nytt namn etter namnemønsteret i produktkatalogen.
Landskap og reise#
Store mengder frå turar over fleire dagar, med blanda kamera og objektiv.
- Import — Bruk mappemalen
{image_year}/{image_month}/{image_day}for å ordne alt etter dato. Legg på GPS-sporet frå telefonen for å geotagge bileta. - Filtrer på kamera — Brukar du fleire hus, vel eitt i Camera-filterkolonnen (</kbd>) for å gå gjennom kvart hus for seg.
- Stjerner — Første runde: flagg dei openberre forkasta (X) og dei sterke vala (P). Andre runde: finjuster med stjerner.
- Filtrer på stad — På kartet Shift-drar du rundt ein stad for å halde på berre bileta som er tekne der, eller du vel ein stad i Place-filterkolonnen.
- Støykart — For skumrings- og nattbilete med høg ISO, sjå på støykartet (H) for å avgjere kva bilete som treng støyfjerning.
- Støyfjerning — Send utvalet med høg ISO til støyfjerningsverktøyet rett frå FLOGVIT.photosuite (Shift+N).
- Nøkkelord — Legg på hierarkiske nøkkelord: Natur → Fjell → Dolomittane. Write Place Names skriv by og land inn i filer som har ein posisjon, men ingen stad.
- Eksport — XMP-sidecar-filer klare for Lightroom eller Capture One med alle stjerner, nøkkelord og GPS-data i behald.
Automatisering med API-et#
Bygg eigne arbeidsflytar med REST-API-et.
Flagg etter eksponering og skarpleik#
Skriv eit skript som flaggar bilete ut frå det analysane fann:
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' });
}
Webhookar#
Lytt etter hendingar og set i gang ting utanfor:
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}` }),
});
});
Handsame mange bilete#
Handsam ei heil mappe frå kommandolina:
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 gjer FLOGVIT.photosuite til ein byggjekloss i kva arbeidsflyt som helst du kan tenkje deg.