Bildgranskning blir märkligt smärtsam i samma ögonblick som någon säger: ”Kan du markera exakt vad du menar?” Plötsligt tar du skärmdumpar, ritar rutor för hand och får ändå följdfrågor.
Den här Gemini Drive bounding-automationen träffar QA-team först, men driftchefer och marknadsteam som levererar mycket visuellt material känner av den också. Du får samma slutresultat varje gång: tydliga överlägg som visar vad som upptäcktes, så att folk slutar diskutera vad AI:n ”såg”.
Nedan ser du hur arbetsflödet körs i n8n, vad det ger som output och hur du anpassar prompten så att rutorna matchar ditt faktiska användningsfall (inte bara en demo).
Så fungerar den här automationen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: Google Gemini + Drive – objekt med tydliga rutor
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Variables", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Test Image"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Gemini 2.0 Object Detection"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Scale Normalised Coords"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Draw Bounding Boxes", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Get Image Info", pos: "b", h: 48 }
n1 --> n4
n6 --> n3
n2 --> n6
n4 --> n5
n3 --> n1
n0 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n3 api
class n4 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4 customIcon
Problemet: objektdetektering som du inte kan verifiera
När objektdetektering är ”bara JSON” sjunker förtroendet snabbt. Någon i teamet frågar: ”Var är det i bilden?” och plötsligt översätter du koordinater, gissar skala eller öppnar ännu ett verktyg för att rita rutor manuellt. Det är inte bara långsamt. Det är lätt att göra fel, särskilt när en bild har skalats om någonstans i kedjan och koordinaterna inte längre stämmer. Då lägger ni mer tid på att diskutera precision än på att använda resultatet.
Friktionen byggs på. En otydlig detektering blir till en tråd, ett möte och en andra runda av ”kan du kolla igen?”
- Team ritar ofta rutor manuellt i skärmdumpar, vilket kan ta runt 10 minuter per bild.
- Koordinater kommer tillbaka i ett format som folk inte kan rimlighetskontrollera, så samma bild granskas två gånger.
- Om bilder skalas om i Drive, e-post, chatt eller ett CMS slutar rutorna att linjera och förtroendet sjunker.
- Utan ett visuellt överlägg är det svårt att bevisa att modellen hittade rätt sak, så godkännanden fastnar.
Lösningen: promptstyrda bounding boxes med visuella överlägg
Det här arbetsflödet tar en bild, skickar den till Google Gemini 2.0:s bounding box-funktion via en prompt i klartext och renderar sedan resultatet ovanpå originalbilden som synliga överlägg. Det börjar med att hämta en exempelbild (i verklig användning pekar du den mot en Drive-fil eller en URL). n8n tar ut bildens bredd och höjd så att arbetsflödet kan mappa Geminis box-koordinater korrekt. Gemini returnerar bounding box-data för det du bad den hitta (demoprompten letar efter kaniner). Därefter skalar arbetsflödet om koordinaterna så att de linjerar med originalbildens dimensioner och ritar rutorna direkt ovanpå bilden. Det du får är samma fil, nu ”verifierad” med ett människovänligt överlägg.
Det startar med att bilden hämtas, följt av en snabb bildanalys för att få dimensioner. Gemini gör den promptstyrda detekteringen, koordinaterna struktureras och skalas om, och sista steget renderar rutöverlägg som du kan dela för granskning.
Vad du får: automation vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du granskar 30 produktbilder i veckan och behöver bekräfta ”logotyp finns” eller ”etikett är läsbar”. Att rita rutor och annotera manuellt kan ta runt 10 minuter per bild, så du landar på ungefär 5 timmar i veckan. Med det här arbetsflödet triggar du det en gång per bild, väntar en minut eller två på detektering och rendering och delar sedan överlägget för godkännande. Även om du fortfarande stickprovar hamnar du oftast på runt en timmes granskningstid. Stor skillnad.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Gemini API för promptstyrd bounding box-detektering
- Google Drive för att lagra och hämta bilderna
- Gemini API-nyckel (hämta den från Google AI Studio eller ditt Google Cloud-projekt)
Svårighetsgrad: Medel. Du är bekväm med att redigera en prompt och klistra in API-uppgifter, plus mindre justeringar för att matcha din bildkälla.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En manuell körning startar det. I mallen klickar du på ”Execute” i n8n för att testa hela flödet från start till mål. I produktion byter många team detta mot en Drive-trigger (ny fil i en mapp) eller en webhook från ett annat system.
Arbetsflödet hämtar bilden och läser av dess faktiska dimensioner. En HTTP-förfrågan laddar ner filen, och sedan tar Edit Image-noden ut bredd och höjd. Det spelar roll eftersom AI ofta returnerar koordinater i ett normaliserat format som måste mappas tillbaka till riktiga pixlar.
Gemini utför promptstyrd objektdetektering. Du skickar bilden plus en instruktion i naturligt språk som ”Sätt en bounding box runt skadat emballage” eller ”Markera alla vuxna med barn”. Svaret innehåller bounding box-koordinater för varje träff, som sedan formas om till variabler som n8n kan använda.
Rutorna skalas om och renderas som ett överlägg. Ett litet kodsteg skalar om koordinaterna för att passa originalbildens storlek, och sedan ritar Edit Image rutorna ovanpå. Outputen blir något som en intressent kan verifiera på några sekunder.
Du kan enkelt ändra detekteringsprompten så att den matchar din kategori (produkter, personer, skyddsutrustning) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Ställ in arbetsflödet så att det startar på begäran, så att ni kan testa bildigenkänning och överlägg interaktivt.
- Lägg till noden Manual Launch Trigger som startpunkt i arbetsflödet.
- Lämna alla fält med standardvärden, eftersom den här noden används för manuella körningar.
- Koppla Manual Launch Trigger till Fetch Sample Image.
Steg 2: Anslut bildkällan
Hämta en exempelbild från en URL och extrahera dess dimensioner för koordinatskalning.
- I Fetch Sample Image ställer ni in URL till
https://www.stonhambarns.co.uk/wp-content/uploads/jennys-ark-petting-zoo-for-website-6.jpg. - Koppla Fetch Sample Image till Extract Image Details.
- I Extract Image Details ställer ni in Operation till
informationför att fånga bredd och höjd.
Steg 3: Ställ in promptbaserad objektdetektering
Skicka bilden till Gemini för objektdetektering och mappa resultatet till fält som används i senare bearbetning.
- I Prompted Object Detection ställer ni in URL till
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent. - Ställ in Method till
POST, aktivera Send Body och ställ in Specify Body tilljson. - Klistra in hela JSON-body i JSON Body med hjälp av det befintliga uttrycket:
={{ { "contents": [ { "parts":[ { "text": "I want to see all bounding boxes of rabbits in this image." }, { "inline_data": { "mime_type":"image/jpeg", "data": $input.item.binary.data.data } } ] } ], "generationConfig": { "response_mime_type": "application/json", "response_schema": { "type": "ARRAY", "items": { "type": "OBJECT", "properties": { "box_2d": {"type":"ARRAY", "items": { "type": "NUMBER" } }, "label": { "type": "STRING"} } } } } } }}. - Credential Required: Anslut era
googlePalmApi-inloggningsuppgifter i Prompted Object Detection. - Koppla Extract Image Details till Prompted Object Detection och koppla sedan Prompted Object Detection till Map Detection Variables.
- I Map Detection Variables lägger ni till tilldelningar: coords som
={{ $json.candidates[0].content.parts[0].text.parseJson() }}, width som={{ $('Extract Image Details').item.json.size.width }}och height som={{ $('Extract Image Details').item.json.size.height }}.
parseJson() att misslyckas. Säkerställ att svarsschemat för modellen efterlevs och att prompten förblir konsekvent.Steg 4: Konfigurera rendering av överlägg
Skala om normaliserade bounding boxes till pixelkoordinater och rita dem på bilden.
- I Rescale Box Coordinates behåller ni den angivna JavaScript Code för att skala koordinater från en normaliserad yta på 1000x1000 och bifoga den ursprungliga bildbinären.
- Verifiera att koden refererar till Fetch Sample Image med
$('Fetch Sample Image').first().binaryså att bilden skickas vidare. - Koppla Map Detection Variables till Rescale Box Coordinates och koppla sedan Rescale Box Coordinates till Render Box Overlays.
- I Render Box Overlays ställer ni in Operation till
multiStepoch behåller ritoperationerna som använder uttryck som={{ $json.coords[0].xmax }},={{ $json.coords[0].ymax }},={{ $json.coords[0].xmin }}och={{ $json.coords[0].ymin }}. - Upprepa ritblocken för ytterligare detekteringar enligt befintlig konfiguration (index 1–5).
Steg 5: Testa och aktivera ert arbetsflöde
Kör arbetsflödet manuellt för att bekräfta att bounding boxes renderas korrekt och aktivera det sedan för återkommande användning.
- Klicka på Execute Workflow för att trigga Manual Launch Trigger och bearbeta bilden från början till slut.
- Bekräfta att Render Box Overlays ger ut en binär bild med rosa bounding-rektanglar.
- Om överläggen hamnar fel, kontrollera mappningen av bredd/höjd i Map Detection Variables och skalningslogiken i Rescale Box Coordinates igen.
- När ni är nöjda, växla arbetsflödet till Active för att hålla det redo för manuella körningar.
Vanliga fallgropar
- Google Gemini-uppgifter kan löpa ut eller vara kopplade till fel projekt. Om något slutar fungera, kontrollera först begränsningar för din API-nyckel och faktureringsstatus i Google Cloud.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att sitta och redigera output för alltid.
Vanliga frågor
Cirka 30 minuter när du har en Gemini API-nyckel.
Nej, ingen kodning krävs för grundversionen. Du kommer främst att redigera prompten och koppla in behörigheter.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med kostnader för Gemini API-användning, som beror på bildstorlek och antal anrop.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är i huvudsak promptarbete. Du ändrar instruktionen som skickas i HTTP-förfrågan för Prompted Object Detection så att Gemini letar efter ”skadat emballage”, ”saknade etiketter” eller det du behöver. Vanliga anpassningar är att skärpa definitionen (”endast om det är sönderrivet”), begränsa antalet och returnera etiketter per ruta så att granskare vet vad varje rektangel representerar.
Oftast är det ett API-nyckelproblem: nyckeln saknas, är begränsad till fel tjänst eller så är fakturering inte aktiverad i projektet. Dubbelkolla Authorization-headern i HTTP Request-noden och bekräfta att du anropar rätt Gemini-endpoint för bild + bounding box-output. Om det fungerar för en bild men misslyckas för många kan du också slå i rate limits, så lägg in en kort väntan eller köa anropen.
Det beror på din n8n-plan och din Gemini-kvot.
Ofta, ja, eftersom du behöver några saker som blir klumpiga i enklare verktyg: extrahering av bilddimensioner, omskalning av koordinater och villkorslogik om du vill hantera ”inga detektioner” på ett annat sätt. n8n är också bekvämt med längre arbetsflöden och straffar dig inte för förgreningar. Zapier eller Make kan fortfarande fungera om du bara vill skicka en bild till ett API och lagra råsvaret någonstans, men de flesta team vill till slut ha det renderade överlägget. Prata med en automationsexpert om du vill ha hjälp att välja rätt upplägg för din volym och granskningsprocess.
När du väl kan se rutorna försvinner rundgången snabbt. Sätt upp det, trimma prompten och låt arbetsflödet sköta beviset.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.