Dina produktbilder är helt okej. Problemet är allt som händer efteråt: ändra storlek, hitta på fyra ”olika” vinklar, lägga in erbjudandetext, exportera varianter, ladda upp – och sedan jaga länkar senare när du behöver dem igen.
Den här Gemini-karusellautomationen träffar e-handelsägare först, eftersom konsekvent publicering är en direkt intäktshävstång. Men social media managers och byråmarknadsförare känner samma friktion när varje ”snabb kampanj” blir en timme av pill.
Det här flödet gör om en produktbild plus en beskrivning till fyra 9:16-karusellklara visuella assets, sparar dem i imgbb med delbara länkar och kan till och med publicera via upload-post.com. Du får se hur det fungerar, vad du behöver och var det brukar ta stopp.
Så fungerar automationen
Här är hela workflowet du kommer att sätta upp:
n8n Workflow Template: Gemini + imgbb: karusellkampanjer klara att posta
flowchart LR
subgraph sg0["Photo Upload Form Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser2", pos: "b", h: 48 }
n1@{ icon: "mdi:wrench", form: "rounded", label: "Think2", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Storyboard Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Storyboard Vars", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Gemini 2.5 Flash - Generate .."]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Image Outputs 2", pos: "b", h: 48 }
n6["<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/>Rename to photo 2"]
n7["<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/>Upload Image to imgbb 2"]
n8["<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.5 Flash - Generate .."]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Image Outputs 3", pos: "b", h: 48 }
n10["<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/>Rename to photo 3"]
n11["<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/>Upload Image to imgbb 3"]
n12["<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.5 Flash - Generate .."]
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Image Outputs 4", pos: "b", h: 48 }
n14["<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/>Rename to photo 4"]
n15["<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/>Upload Image to imgbb 4"]
n16["<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.5 Flash - Generate .."]
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Image Outputs 5", pos: "b", h: 48 }
n18["<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/>Rename to photo 5"]
n19["<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/>Upload Image to imgbb 5"]
n20@{ icon: "mdi:robot", form: "rounded", label: "Generate Carousel Description", pos: "b", h: 48 }
n21["<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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n22@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n23["<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/form.svg' width='40' height='40' /></div><br/>Photo Upload Form"]
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set APIs Vars", pos: "b", h: 48 }
n25["<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/merge.svg' width='40' height='40' /></div><br/>Merge Vars + Photo1"]
n26["<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/>Upload Original Image to imgbb"]
n27@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n28["<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/>HTTP Request"]
n29["<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/>HTTP Request1"]
n30["<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/>HTTP Request2"]
n31["<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/>HTTP Request3"]
n32@{ icon: "mdi:cog", form: "rounded", label: "Upload Post", pos: "b", h: 48 }
n21 --> n22
n1 -.-> n2
n22 --> n20
n28 --> n6
n29 --> n10
n30 --> n14
n31 --> n18
n24 --> n25
n2 --> n3
n23 --> n25
n23 --> n2
n6 --> n7
n10 --> n11
n14 --> n15
n18 --> n19
n25 --> n26
n3 --> n24
n7 --> n21
n11 --> n21
n15 --> n21
n19 --> n21
n27 -.-> n2
n5 --> n28
n9 --> n29
n13 --> n30
n17 --> n31
n0 -.-> n2
n20 --> n32
n26 --> n4
n26 --> n8
n26 --> n12
n26 --> n16
n4 --> n5
n8 --> n9
n12 --> n13
n16 --> n17
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 n23 trigger
class n0,n2,n20 ai
class n27 aiModel
class n1 ai
class n4,n7,n8,n11,n12,n15,n16,n19,n26,n28,n29,n30,n31 api
class n6,n10,n14,n18 code
classDef customIcon fill:none,stroke:none
class n4,n6,n7,n8,n10,n11,n12,n14,n15,n16,n18,n19,n21,n23,n25,n26,n28,n29,n30,n31 customIcon
Varför det här spelar roll: göra ”en bild” till en riktig kampanj
De flesta produktkampanjer dör i glappen mellan verktyg. Du börjar med en helt okej bild, men sedan behöver du fyra varianter som inte ser kopierade ut. Du vill visa människor som använder produkten (inte sterila studiobilder), plus tydliga fördelar, ett erbjudande och en klar call-to-action. Och allt måste passa samma format på Instagram, TikTok, Facebook Stories och YouTube Shorts. Manuell produktion går, men den äter upp veckan i det tysta. Till slut postar du mer sällan – eller postar ”tillräckligt bra” innehåll som inte konverterar.
Det summeras snabbt. Här är var det fallerar i verkligheten:
- En kampanj blir fyra designer, och du bygger om layouten från början varje gång.
- Kreativ som ser ut som stock kan få din produkt att kännas generisk, även när den inte är det.
- Team tappar bort slutfilerna i DM:ar, mappar och ”v3-final-final”-exporter.
- Publicering blir ett eget miniprojekt, så du hoppar över plattformar och tappar räckvidd.
Vad du bygger: en fabrik för 4-bilders karusellkampanjer
Det här workflowet börjar med en enkel produktuppladdning plus en beskrivning (ofta inskickad via ett formulär eller ett meddelande). Från den enda inputen skapar det ett mini-storyboard för fyra tydligt olika kampanjbilder, så att varje slide förtjänar sin plats. Gemini 2.5 Flash genererar realistiska lifestyle-visuals som visar människor som använder produkten i trovärdiga sammanhang, istället för att upprepa samma produktbild med olika text. Workflowet processar sedan bilderna till vertikalt 9:16-format, laddar upp dem till imgbb och fångar de delbara länkarna så att du kan återanvända dem överallt. Vill du ta det längre genererar det en social-anpassad caption med OpenAI och kan publicera karusellen via upload-post.com till dina kopplade sociala konton.
Flödet är rakt på sak: du skickar in produktmaterialet, workflowet skapar fyra koncept och renderar dem parallellt, och sedan sparas länkar (och valfritt publiceras) utan att du behöver sitta och vakta exporter. Du får en repeterbar content-motor som gör om ”vi borde marknadsföra det här” till media som är redo att schemaläggas.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du lanserar två kampanjer i veckan. Manuellt betyder fyra slides ofta cirka 20 minuter per slide när du hanterar storleksändringar, layoutjusteringar, textöverlägg och exporter, plus ytterligare 20 minuter för uppladdning och filorganisering. Det är ungefär 3 timmar per kampanj. Med det här workflowet lägger du cirka 10 minuter på att förbereda produktbeskrivningen och ladda upp bilden, och väntar sedan på att generering och uppladdningar blir klara. Du granskar fortfarande innan publicering, men grovjobbet är borta.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Gemini 2.5 Flash (via fal.ai) för att generera de fyra kampanjbilderna
- imgbb för att lagra bilder och returnera delbara länkar
- fal.ai-token + imgbb API-nyckel + OpenAI API-nyckel (hämta dem från fal.ai, imgbb.com och din OpenAI-dashboard)
Kompetensnivå: Medel. Du kopplar API:er, klistrar in nycklar i n8n-credentials och testar med en riktig bild.
Vill du att någon bygger det här åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett produktinskick triggar körningen. Du startar workflowet manuellt eller via en meddelandebaserad trigger (många team använder Telegram för snabba inskick). Inputen är en produktbildfil plus en textbeskrivning som inkluderar målgrupp, erbjudande och viktigaste fördelarna.
Workflowet förbereder ”creative briefen”. n8n gör fälten korrekta, sätter API-variabler och strukturerar din beskrivning så att Gemini kan skapa konsekventa resultat. Om du hämtar detaljer från Google Sheets eller en PDF kan workflowet läsa de källorna och slå ihop dem till en brief.
Gemini genererar fyra bildkoncept. AI:n skapar ett storyboard och renderar fyra varianter i 9:16-format, byggt för placeringar som Stories/Reels. Här får du karuselleffekten utan att manuellt designa fyra separata slides.
Filer laddas upp och organiseras automatiskt. De färdiga bilderna skickas till imgbb via HTTP-requests, sedan fångar workflowet upp URL:erna som returneras och kan logga dem i Google Sheets för återanvändning senare. Om du aktiverar publicering kan upload-post.com trycka ut karusellen till dina kopplade sociala kanaler med den genererade captionen.
Du kan enkelt justera storyboard-prompten så att den matchar din tonalitet och visuella stil utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Felsökningstips
- imgbb-credentials kan gå ut eller klistras in på fel ställe. Om det skapar fel, kontrollera först API-nyckeln som är sparad i dina n8n-credentials eller workflowets nod ”Set APIs Vars”.
- Om du använder Wait-noder eller extern rendering varierar processingtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkestonalitet tidigt, annars kommer du att redigera outputs i all evighet.
Snabba svar
Cirka 30 minuter om dina API-nycklar är klara.
Nej. Du kopplar konton och klistrar in API-nycklar i n8n-credentials. Resten är mest prompt-justeringar och test med en riktig produktbild.
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 volym. Du behöver också räkna in API-kostnader för fal.ai/Gemini, imgbb och OpenAI (oftast några cent per körning, beroende på bildvolym och promptstorlek).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det bör du troligen göra. De snabbaste vinsterna kommer från att redigera storyboard- och bildgenereringsprompterna i Gemini-stegen (fal.ai) för HTTP-requests, och sedan justera noderna ”Set APIs Vars” och fältmappningen så att din erbjudandetext och CTA dyker upp konsekvent. Vanliga justeringar är att byta målplattformens format (9:16 vs 1:1), ändra stilen för ”person som använder produkten” så att den matchar din målgrupp, och logga fler fält i Google Sheets (SKU, kampanjnamn, säsong och så vidare).
Oftast är det en ogiltig eller utgången API-nyckel som är sparad i n8n. Skapa en ny imgbb-nyckel, uppdatera den i dina credentials (eller i workflowets nod för API-variabler) och kör en testuppladdning med en liten JPG. Om det fortfarande failar, kontrollera att du skickar binary-data korrekt från steget ”Read Binary File”, eftersom imgbb förväntar sig filpayloaden i ett specifikt format.
Om du self-hostar n8n finns inget tak för antal körningar (det beror mest på din server och API:ernas rate limits). På n8n Cloud beror din månatliga körningsgräns på plan, och det här workflowet räknas oftast som en körning per kampanjkörning plus eventuella retries. I praktiken kör team allt från några få till några dussin kampanjer per dag utan att ändra något, och skalar sedan genom att lägga till köhantering och hantera API-throttling. Din verkliga begränsning är oftast bildgenereringshastighet och leverantörsgränser, inte n8n.
Ofta, ja – eftersom n8n hanterar flersteglogik, parallella körningar och filhantering utan att det känns som att du slåss med plattformen. Du kan förgrena baserat på villkor (som ”publicera eller bara spara länkar”) och ha alla transformationer på ett ställe. Zapier eller Make kan också fungera, men filuppladdningar plus AI-bildgenerering tenderar att bli dyrt och skört där. Om ditt workflow bara är ”ladda upp en fil, skicka ett meddelande” är de verktygen helt okej. Om du bygger en repeterbar creative-pipeline är n8n oftast det lugnare valet. Prata med en automationsexpert om du är osäker på vad som passar.
Du får fyra kampanjklara bilder och delbara länkar från en enda input. Sätt upp det en gång och lägg sedan tiden på erbjudanden och distribution istället för att ändra storlek och exportera om.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.