Att generera en hund är enkelt. Att generera samma hund tre gånger med konsekvent päls, proportioner och färg visade sig betydligt svårare. Det lärde oss också något om gränsen mellan vad som finns i ett gränssnitt och vad som faktiskt går att automatisera via API. Så här löste vi det.
Vad vi ville uppnå
Flocken-appen visar hundannonser med fasta hundkaraktärer som återkommer i marknadsföringsmaterial. För att hålla en professionell och konsekvent upplevelse behövde varje hund ett eget bildbibliotek.
Vi ville ta fram tre bilder per hund: profil, trekvartsvinkel och liggande. Vit studiobakgrund, neutralt ljus, full kropp synlig.
Kravet på konsistens var det avgörande. Det räcker inte med en bra bild. Hunden måste se ut som samma individ i alla tre poserna, med samma pälsstruktur, samma proportioner och samma färgnyans. Annars bryter det illusionen.
Målet var att automatisera genereringen via API så att vi enkelt kunde lägga till nya hundar i framtiden utan manuellt fotoarbete.
Hur vi tänkte
Hypotesen var enkel. Extremt detaljerade prompter med konsekvent struktur borde räcka för att få samma hund att se likadan ut i varje pose. Vi började med Vertex AI och modellen imagen-3.0-generate-001.
ChatGPT hjälpte oss bygga upp promptstrukturen. Vi specificerade ras, proportioner, pälsfärg, ljussättning och kameravinkel i ett standardiserat format och körde samma mall för varje pose. Cursor tog hand om API-anropen och organiserade scripts så att en komplett hundprofil skulle kunna genereras med ett enda kommando.
Det kändes som ett vattentätt upplägg.
Vad som hände – tre omtag
Omtag 1: Detaljerade prompter löser inte identitetsproblem.
Redan vid första testsessionen var problemet tydligt. Imagen 3 genererade visuellt fina hundar, men inte samma hund. Pälsstrukturen varierade, proportionerna skiftade och färgnyansen ändrades mellan generationer. Det spelade ingen roll hur exakt prompten var, modellen hade inget minne av den individ vi försökte reproducera.
Orsaken: Imagen 3 saknar stöd för reference images i text-to-image-läge. Utan referensbild finns inget sätt att låsa identiteten.
Omtag 2: Funktionen finns, men inte via API.
Nästa steg var att undersöka alternativ. Genom att studera nätverkstrafiken i Google AI Studio identifierades att Gemini 3 Pro Image Preview faktiskt stödjer reference images i gränssnittet. Man laddar upp en referensbild och modellen genererar nya poser av samma individ med hög konsistens.
Men funktionen exponeras inte via något publikt API. Det vi hittade var en intern RPC-endpoint och ett file ID-system som inte är dokumenterat eller stabilt. En lösning byggd på det är inte hållbar.
Omtag 3: Manuell generation som tillfällig lösning.
Automationsplanen lades åt sidan. Istället etablerades ett manuellt workflow i Google AI Studio: ladda upp referensbilder för varje hund, generera en pose i taget, spara enligt fast namnkonvention.
Det är mer tidskrävande, men det ger den konsistens vi behöver. Det handlar om referensbilder vi tar fram en gång och vars kvalitet påverkar alla bilder vi tar fram, vilket gör att tidsinvesteringen är motiverad.
Resultat och lärdomar
Tre referensbilder per hund genereras nu manuellt. Konsistensen är god. Automatiseringen väntar.
Det viktigaste vi lärde oss är att verktygsval styr output mer än promptprecision. Vi lade mycket tid på att optimera prompter när det verkliga problemet var att vi använde fel modell för uppgiften. Ingen mängd finjustering av textbeskrivningar löser bristen på reference image-stöd.
Skillnaden mellan vad ett gränssnitt erbjuder och vad som finns tillgängligt via API är en lärdom som dyker upp gång på gång i det här arbetet. Funktioner i UI:t är ofta experimentella eller beroende av intern infrastruktur som inte är redo för extern användning. Det är en viktig mental modell när man planerar automation.
AI fungerade bäst i den analytiska fasen. Att resonera kring varför Imagen och Gemini beter sig olika, kartlägga Googles bildsystem och formulera nästa hypotes var ChatGPT genuint hjälpsam med. Däremot löste inte AI det tekniska kärnproblemet, det krävde att vi faktiskt testade och förstod vad modellerna klarar av.
Det manuella workflowet är en tillfällig lösning. Den dag Google öppnar reference image-stöd via API förändras förutsättningarna helt, och mycket av det vi byggt manuellt kan automatiseras. Det är egentligen inte en fråga om vi kommer dit, utan när.
Vi väntar på
Google öppnar reference image-stöd via API. Funktionen finns redan i gränssnittet och när den når externa användare kan hela genereringsflödet automatiseras. Tills dess fortsätter det manuella workflowet.
Hur vi går vidare
Nästa steg beror på vad Google gör. Om Gemini image API öppnas för externa användare kan hela flödet automatiseras med den konsistens vi redan sett i gränssnittet. Det är den enklaste vägen och sannolikheten att det händer är hög, frågan är bara när.
Om det dröjer är DreamBooth via Replicate det starkaste alternativet. Det innebär att träna en egen modell per hund på ett fåtal bilder, vilket ger full kontroll över identiteten oberoende av vad Google väljer att tillgängliggöra.
Tills vidare fortsätter det manuella workflowet. Det fungerar och ger bra resultat. Att vänta på rätt verktyg är ibland det smartaste beslutet.
Verktyg i den här processen
- Vertex AI / Imagen 3 – Googles text-to-image-modell. Utvärderades och övergavs på grund av avsaknad av reference image-stöd.
- Google AI Studio – Webbgränssnitt för Gemini. Fungerar manuellt med reference images men saknar publikt API för funktionen.
- ChatGPT – Användes för promptdesign, analys av modellbegränsningar och hypotesformulering.
- Cursor – Strukturerade API-anrop och scripts under testfasen.