Arbetsflöden
Så sätts funktionerna ihop för press, ett helt lopp, bröllop, sport, studio, landskap och skript.
1:10Verkliga situationer som visar hur FLOGVIT.photosuites funktioner sätts ihop för olika typer av fotografi.

Press och nyheter#

Den snabbaste vägen från minneskort till publicerad bild.
- Import — Sätt i kortet. FLOGVIT.photosuite hittar det själv. Importera med en IPTC-mall som är ifylld i förväg (publikation, fotograf, evenemang).
- Första genomgången — Enskild bild med automatiskt nästa (Shift+A). Tryck P för vald, X för förkastad. Tänk inte för länge — det är farten som räknas.
- Filtrera på valda — Option+P visar bara de valda.
- IPTC — Lägg bildtexter och nyckelord på urvalet (Cmd+E). Copy IPTC Metadata och Paste IPTC Metadata för en bildtext vidare till resten av en serie.
- Uppladdning — Tryck U på varje bild för att skicka den via FTP. Uppladdningen körs i bakgrunden.
- Nästa kort — Sätt i nästa kort medan uppladdningen pågår. Importen och uppladdningarna körs sida vid sida.
Hela jobbet, med ett skript som skickar varje vald bild till desken medan du väljer, finns i Från kortet till desken.
Ett helt lopp efter dagen#
När fotograferna lämnar in sina bilder efter ett evenemang, var och en i sin egen mapp (in/Kari Foto/, in/Per Berg/), levererar en körning alltihop.

- Skapa ett arbetsflöde från Newspaper: whole event, HD with names (eller Relay: whole event, 4K with numbers för en stafett vars nummer levereras utan namn). Hämta startlistan i Identify-steget, eller lägg till dess mapp. När två lopp har fotograferats på samma kort, ge varje lopp ett eget arbetsflöde och lägg det andra loppets startlista under Also on the cards. Varje nummer vägs då mot båda listorna, och varje arbetsflöde namnger bara sitt eget lopp.
- Deliver → Deliver Event Folder…: välj arbetsflödet, bildmappen (evenemangets
in/), var det ska levereras (bredvidin/som standard) och krediten (t.ex.Jærbladet). En bild vars kamera inte har någon fotograf får mappens namn som fotograf och ”© Kari Foto / Jærbladet” som upphovsrätt. Bilder som ligger direkt i evenemangsmappen, inte i en fotografs mapp, får namnet under Photographer. - Start. Dialogen räknar bilderna medan de går, med och utan nummer, och listar fel. Leveransen hamnar i
delivered/with-numbers/ochdelivered/without-numbers/(variabeln{identified}i Export-stegets mapp). Varje bild som har ett namn har en.txtbredvid sig. - Gå igenom det som hölls tillbaka (Filter → Numbers → Needs review, se Startnummer), och kör mappen igen. Det du har avgjort står kvar, och varje bilds läsning kommer ihåg, så en ny körning läser ingenting igen.
Över API:t: POST /api/workflows/run-on-folder med workflow och folder (och org, photographer), GET på samma sökväg för förloppet, DELETE för att stoppa (SDK: client.runOnFolder).
Bilder tagna av andra#
Deliver → Download Album… hämtar ett helt album till en mapp, klart för Deliver Event Folder:
- ett offentligt Flickr-album (inget konto behövs): varje bild under det namn fotografens kamera gav den, annars titeln. Med One folder per photographer blir titelns första ord mappen (
Grete Jonsson-12→Grete/). Den största storlek Flickr gör tas i stället för originalet, eftersom Flickr begränsar hur mycket som får hämtas och ett original gör slut på det fem gånger så fort. När Flickr säger nej saktar appen ner och försöker igen; den hoppar aldrig över en bild. En bild som redan finns i mappen hämtas inte igen, så en avbruten nedladdning fortsätter där den slutade; - ett SmugMug-galleri som din SmugMug-anslutning kan se, via länk eller nod-ID, till en mapp med fotografens namn. Varje bild kommer i 4K-storlek, som ger samma nummer som originalet på en tiondel av storleken; Originals hämtar originalen.
Över API:t: POST /api/albums/download.
Loppgalleriet#
Ett levererat evenemangs galleri på webben (jaerbladet.menneske.no och loppgallerierna) läser en manifest.json per evenemang. Deliver → Build Race Gallery… skriver den från evenemangets mapp (över API:t: POST /api/event-site): varje levererad bild med storlekarna från SmugMug-galleriet (eller storlekar skrivna bredvid manifestet), vem som är med, personrutorna mobilvyn beskär till, redaktionens val först, och registren sidan söker i efter nummer, klass, klubb och fotograf. Ett nummer i en bild som ingen i startlistan har stoppar bygget, hellre än att visa ett nummer utan namn. En stafett vars evenemangsmapp har photographers.json (varje fotografs namn och var längs banan de stod) får stafettgalleriet i stället: lag och företag, och bilder efter plats längs banan. En fotograf som saknas i filen, eller en plats som inte finns på banan, stoppar bygget hellre än att kreditera en bild till ingen. Stafettens filnamn bär fotografen (<slug>-<n>.jpg), eftersom SmugMug aldrig ser mapparna.
Två val i samma fönster använder varje löpares egen skärpa i en bild med flera, från Identifys journal: Leave a runner out of their gallery where they are soft tar bort numret från en bild där löparen läses mindre än hälften så skarp som den skarpaste personen där, och List each runner's pictures sharpest on them first ordnar varje löpares bilder efter hur skarp löparen är i dem. Båda är av som standard (i API:et: softRunnerShare och sharpestFirst).
Årets bästa#
Deliver → Pick the Year's Best… väljer de bästa bilderna från ett levererat evenemang till <event>_best/, namngivna efter placering, med best.json som säger varför varje bild valdes. Varje plats rangordnas mot sig själv (en mållinje är lättare att fotografera än en växlingszon). Varje fotograf får en bild först, sedan får varje plats sin andel, och resten väljs på kvalitet, med ett tak per plats. Ett lag visas en gång och ett företag högst två gånger. Apple Vision ger de estetiska poängen och ansiktspoängen, så det kräver macOS 15 eller senare; på Windows finns det inte ännu. En lokal bildmodell, när du anger en, bedömer kortlistans scen, uttryck och berättelse och skriver en kort norsk bildtext, men den tillfrågas aldrig om ett namn: lagen kommer från startlistan.
För att gå igenom: radera bilderna du inte håller med om från _best-mappen och välj igen. Raderade bilder kommer aldrig tillbaka, de du behöll behåller sin plats, och bara de lediga platserna fylls. Över API:t: POST /api/best-of-year.
En tävling visad direkt#
När fotograferna skickar sitt urval till en FTP-server under evenemanget kan photosuite brusreducera, beskära och räta upp varje bild, lägga ut den till försäljning på eventphotos och visa den på hallens tv, utan att någon rör den.

- Arbetsflödet. Settings → Workflow → From Template… → Live event: FTP → DxO → album. Välj FTP-anslutningen och mappen i Ingest, DxO-profilen i Denoise och ett albumnamn i Add to Album (t.ex.
NM kortbane). - Albumet på eventphotos. Högerklicka på albumet i Library-panelen → Publish to… → evenemanget. Varje bild arbetsflödet lägger till går ut av sig själv: när bilderna kommer tätt, senast en minut efter den första som väntar.
- Tv:n. eventphotos tv-app visar evenemangets livesida,
/e/<evenemang>/live. - Start Workflow. Fotograferna skickar sitt urval till FTP-mappen.
Varje bild får Auto: den ljusaste verkliga detaljen lagd högt utan att klippas, hallens LED-ljus hållna utanför, ansikten i hudbandet på vågformen och lyfta med Lift när de ligger under, och svartpunkten satt för varje bild. Filer som är underexponerade för kort slutartid och filer som är rätt exponerade kommer ut som en serie eftersom var och en får det den behöver. Inget behöver ställas in; i arbetsflödets Develop-steg kan en förinställning väljas under Look for unedited files, och Auto for each unedited file stängas av.
Varje bild beskärs i 3:2 (2:3 när kameran hölls på höjden) runt simmaren kameran fokuserade på (efter kamerans egen fokuspunkt, även där ingen hittas i vattnet), med hela simmaren (huvudet, armarna, axlarna och plasket framför), placerad efter kompositionsreglerna med luft runt och aldrig mindre än en A4-utskrift, och rätas upp efter linjerna i bilden. Beskärningen går till eventphotos som en redigering, så en köpare kan vidga den; hela bilden är filen DxO skrev. En bild som misslyckades ligger i arbetsflödets failed/-mapp med orsaken.
Vad Export-steget skriver#
Ett arbetsflödes Export-steg skriver det exportdialogen skriver. Välj en sparad exportprofil (eller standardvärdena), och ange format, kvalitet, bitdjup, färgrymd eller metadata i stället för profilens: alla format och färgrymder som exportdialogen har, eller en kopia av filen. Profilens extra storlekar och skärpning följer med. Utan profil eller metadataval bär den levererade filen det arbetsflödets egna steg (Identify, Inject Metadata) lade där, som förut. Ett skripts export() tar samma fält.
Dela ett arbetsflöde#
Ett arbetsflöde kan skickas till en annan dator, eller till en annan fotograf, som en enda fil. I Settings → Workflows markerar du det och trycker Export…. Det sparas som <name>.photosuite-workflow, med anslutningarna, denoise-profilen, IPTC-mallen och exportprofilen som stegen använder. Inga lösenord, token eller nycklar kommer med i filen, inte heller arbetsmappen eller adressen till en webhook, så den är säker att skicka.
Import… på den andra datorn lägger till det. En anslutning eller profil som datorn redan har, med samma namn och som pekar på samma ställe, används som den är; allt annat läggs till bredvid under ett ledigt namn (Desk 2), och stegen följer med. Ingenting där skrivs över. Sedan står det vad som måste fyllas i innan arbetsflödet kan köras: lösenorden till anslutningarna det tog med, arbetsmappen, adressen till en webhook.
Via API:t: GET /api/workflow/profiles/{index}/export och POST /api/workflow/profiles/import (SDK: client.workflow.exportFile, client.workflow.importFile). Arbetsflöden som andra fotografer har delat, och de som följer med appen, finns i skriptsamlingen.
Vakta ett arbetsflöde som körs#
Ett arbetsflöde som står och går på ett evenemang kan sluta göra sitt jobb medan det fortfarande säger att det körs: bilderna kommer men inget levereras, ett steg misslyckas på varje bild, uppladdningar väntar i en timme, disken blir full. Slå på Settings → Workflow → Watch with Claude, så vaktar photosuite arbetsflödet medan det körs:
- Regler, direkt och gratis: inget levererat på ett antal minuter medan bilder kommer, ett steg som misslyckas på tre bilder i rad, en uppladdning som väntar längre än du tillåter, mindre ledigt diskutrymme än du tillåter, och ett arbetsflöde som stannar av sig självt.
- Claude, på bestämda tider, med din egen Claude-nyckel: fakta som data — vad som kom, vad varje steg gjorde med de senaste bilderna (beskärningen och vad den ramade in, exponeringen, numren som lästes och namnen som gavs) och vad som gick ut (storlek, byte, bildtext och rubrik) — för att se det en regel inte ser: alla bilder i samma lilla storlek, en beskärning långt mindre än de andra, nummer lästa utan att någon fick namn, bildtexter som står tomma, samma bild skickad två gånger. Inställningen visar hur många anrop det blir per timme och vad en evenemangsdag på tio timmar kostar; 0 minuter frågar bara reglerna. Med Visa Claude bilderna på ser den också ett kontaktark över bilderna som levererats sedan förra kontrollen och bedömer dem som en redaktör skulle: en beskärning som skär av någon, en bild alldeles för mörk, samma bild igen. Ett fynd om bilder öppnar den första av dem med ett klick i infofältet.
Det den hittar står i informationsraden med vad du bör göra när du håller pekaren över, kommer som en avisering från systemet och skickas som händelsen watch_finding: en webhook på den händelsen tar det till din telefon. Skript läser det med GET /api/watch (client.workflow.watch()) och ändrar det med PUT /api/watch.
Vad arbetsflödet gjorde med varje bild sparas, de senaste 5 000 som standard (Settings → Workflow): vad varje steg gjorde (beskärningen och vad den ramade in, framkallningens värden, numren som lästes och namnen som gavs, filen som skrevs och vart den gick), när bilden kom och var klar, och det första steget som misslyckades. Ett skript eller en Claude-session läser det med GET /api/workflow/files?since=<id> (client.workflow.files({ since })), och får varje steg och varje färdig bild allteftersom i händelserna workflow_step_completed och workflow_file_completed. Bilderna också: GET /api/workflow/files/{id}/picture ger bilden som gick ut, eller med stage=source den som kom in, i en storlek en modell läser bra, och GET /api/workflow/files/sheet ett kontaktark över de senaste med postens id under varje (client.workflow.picture, client.workflow.sheet).
Styr ett arbetsflöde som körs#
När något är fel mitt under ett evenemang (en beskärning som missar, en bildtext med fel lopp) behöver arbetsflödet inte stoppas:
- Pausa: Deliver → Pause Workflow (Cmd+Option+P), pausknappen i infofältet eller Pausa arbetsflödet i Settings → Workflow. Bilderna fortsätter att komma och väntar; infofältet säger hur många. Rätta arbetsflödet och återuppta.
- Kör en bild igen: Kör igen bredvid bilden i Settings → Workflow. Den går före alla nya bilder, även under paus. Ett skript kan ange en beskärning, en exponering, numren eller en bildtext för just den bilden. Ett fillager och ett album får den nya bilden i stället för den första; Dropbox, Google Drive och Flickr får den bredvid; SmugMug behåller ett namn det redan har. Svaret säger vilket.
- Håll tillbaka en bild: Håll bredvid bilden. Den tas ut ur omförsökskön eller en lokal leveransmapp (till
held/i arbetsmappen) och ur sina album, dold där de är publicerade. Det som redan gått till en server sägs, så att det kan tas ned där. Släpp lägger tillbaka allt.
Via API:et: POST /api/workflow/pause och /resume, POST /api/workflow/files/{id}/rerun med crop, ev, bibs eller caption, POST /api/workflow/files/{id}/hold med reason (och by), och /release (SDK: client.workflow.pause, resume, rerun, hold, release).
Rättelser lär nästa körning. En bild som körs om med en annan beskärning eller exponering, eller hålls tillbaka, sparas som en rättelse: vad arbetsflödet gjorde, vad det blev, varför och vem. En rättad beskärning lär sig autobeskärningen av, som av dina egna beskärningar, och exponeringsrättelserna på en framkallningsform (en förinställning, eller Auto) flyttar exponeringen nästa bilder får. De listas under Corrections i Library-panelen, där en kan tas bort och det som lärdes av den med den (GET/DELETE /api/library/corrections). Settings → Workflow stänger av inlärningen.
Efter evenemanget, rapporten. Varje körning sparar vad den gjorde: hur många bilder som kom in och gick ut (och vart), vilka som hölls tillbaka och varför, vilka som kördes om, vad som misslyckades och i vilket steg, tiden från ankomst till klar, vad bevakningen hittade och anteckningarna en Claude-session eller ett skript skrev in (POST /api/workflow/notes). Den visas i Settings → Workflow, även efter att körningen har stoppat, sparas som report-<start>.html i arbetsmappen när den stoppar och läses med GET /api/workflow/runs.
Bröllop#
Gallra tusentals bilder från en hel bröllopsdag.
- Import — Kopiera till arbetsdisken och en backup på en gång. Använd mappmallen
{image_date}/{camera}för att skilja kamerahusen åt. - Översikt — Rutnätsvyn (G) för att gå igenom dagen. Använd färgetiketter för vigsel (6 röd), fest (7 gul), porträtt (8 grön) och detaljer (9 blå).
- Betyg — Byt till enskild bild. Ge de bästa bilderna 3–5 stjärnor. Använd automatiskt nästa.
- Compare — För liknande bilder (gruppbilder, ögonblick från vigseln) trycker du C för att jämföra sida vid sida. Scrollning zoomar båda bilderna tillsammans, så skärpan kontrolleras på samma ställe.
- Autobeskärning — För gruppbilder där du också vill ha enskilda porträtt gör autobeskärningen personutsnitt av sig själv.
- Metadata — Redigera IPTC för hela urvalet med brudparets namn, plats och datum. Använd Kopiera IPTC för att föra metadata mellan liknande bilder.
- Export — Filtrera på 4 stjärnor och uppåt (Option+4) och exportera med formatet Original och Copy XMP sidecar files till en ”urval”-mapp för redigering i Lightroom eller Capture One. Betygen följer med i sidecar-filerna.
Sport#

Kontinuerlig fotografering i högt tempo, med hundratals bilder per situation.
- Import — Importera från kortet med kontrollsumma. Byt namn på vägen till
{image_date}_{seq:4}. - Gå igenom rutnätet — Rutnätsvyn med stora miniatyrer. Hitta actionsekvenserna snabbt.
- Sortera på skärpa — View → Sort → Sharpness, fallande. Oskarpa bilder hamnar längst ner.
- Survey — Tryck N för att se 3–4 liknande bilder samtidigt. Välj toppen av ögonblicket.
- Snabb bedömning — Enskild bild och automatiskt nästa. Ge bilderna du behåller 3+ stjärnor. Förkasta de oskarpa.
- Autobeskärning — Beskär tätt runt idrottarna för webben.
- Bildtext och uppladdning — Lägg på korta bildtexter, och sedan U till FTP.
Studio och produkt#
Kontrollerade förhållanden, med fokus på att allt är likadant och detaljerna stämmer.
- Tether eller import — Öppna fotograferingens mapp direkt. Bilderna dyker upp allteftersom de tas.
- Lupp — I rutnätet håller du Space och för pekaren över för att se detaljer i 100 %. Kontrollera fokus och skärpa.
- Compare — C för att jämföra ljusvarianter sida vid sida med zoomen synkroniserad.
- Färgetiketter — Märk efter uppställning: röd för uppställning A, gul för uppställning B osv.
- Exponering — Håll sidopanelen öppen (I) för att följa exponeringen från bild till bild. Slå på klippningsöverlägget (J) för att leta efter utfrätta högdagrar.
- Metadata — Lägg produktnamn, artikelnummer och nyckelord på urvalet i IPTC-redigeraren.
- Export — Kopiera urvalet till retuschörens mapp med namnbyte enligt produktkatalogens namnmönster.
Landskap och resor#
Stora mängder från resor över flera dagar, med blandade kameror och objektiv.
- Import — Använd mappmallen
{image_year}/{image_month}/{image_day}för att ordna allt efter datum. Lägg på GPS-loggen från telefonen för att geotagga bilderna. - Filtrera på kamera — Använder du flera kamerahus, välj ett i filterkolumnen Camera (</kbd>) för att gå igenom varje hus för sig.
- Betyg — Första genomgången: flagga uppenbara förkastade (X) och starka val (P). Andra genomgången: finjustera med stjärnor.
- Filtrera på plats — På kartan skift-drar du runt en plats för att bara behålla bilderna som togs där, eller väljer en plats i filterkolumnen Place.
- Brusbild — För skymnings- och nattbilder med högt ISO, titta på brusöverlägget (H) för att avgöra vilka bilder som behöver brusreducering.
- Brusreducering — Skicka urvalet med högt ISO till brusreduceringsverktyget direkt från FLOGVIT.photosuite (Shift+N).
- Nyckelord — Lägg på hierarkiska nyckelord: Natur → Berg → Dolomiterna. Write Place Names skriver in ort och land i filer som har en position men ingen plats.
- Export — XMP-sidecar-filer klara för Lightroom eller Capture One med alla betyg, nyckelord och GPS-data i behåll.
Automatisering med API:t#
Bygg egna arbetsflöden med REST-API:t.
Flagga efter exponering och skärpa#
Skriv ett skript som flaggar bilder utifrån vad analyserna hittade:
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#
Lyssna efter händelser och starta saker utanför:
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}` }),
});
});
Bearbeta många bilder#
Bearbeta en hel mapp från kommandoraden:
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:t gör FLOGVIT.photosuite till en byggsten i vilket arbetsflöde du än kan tänka dig.