Dit is alles wat ik in onze archieven (vault + sessietranscripts, focus meiβjuni 2026) heb gevonden over de Social Studio en de image generator in de haartips.nl-backend. Conductor zoekt parallel met Hermes mee; zijn vondsten voeg ik hier later aan toe.
Let op β 3 dingen heten "Social Studio". Jij bedoelt bijna altijd #1.
1. WP-pluginhaarvisie-social-studioop haartips.nl/wp-admin β DIT is de live Social Studio + image generator (focus van dit verslag).
2. SaaSstudio.haartips.nlβ apart product, fase 1 (login) klaar, fase 2 (content) open.
3. Hub social-module (haarvisie-hub.netlify.app) β los Instagram/Facebook/Pinterest-project.
Een WordPress-plugin (haarvisie-social-studio) in haartips.nl/wp-admin die social-media- en blogcontent maakt: foto's + captions + carrousels + blogs + TikTok-scripts.
Belangrijkste onderdelen:
- Blog-hero's (liggend) + inline kapsel-foto's + captions
- Pipelines: Caption, Afbeelding+Caption, Carrousel β allemaal live
- Blog Inspiratie: kies bestaand blog β "Schrijf blog" β direct naar generatie
- Blog2Social / Blog2Shorts: na publicatie van een blog draait automatisch (WP Cron) een pijplijn die een Instagram-foto+caption, Pinterest-foto's en een TikTok-script maakt β komt in de Wachtrij-tab voor jouw goedkeuring β posten naar IG/FB/Pinterest
- Voor/Na Extensions-tab (nieuwste werk, juni): genereert before/after extensie-foto's
- Richtlijnen-tab: merkstem, verboden woorden, stijlregels, seizoensthema's, foto-regels + 8 bewerkbare prompt-sjablonen
- Grid Planner: feed-planning, ook door agents bestuurbaar (sinds 17 mei)
gemini-2.5-flash-image (altijd dit, nooit Imagen 4). Via curl, niet via de Python-SDK.includes/class-image-generator.php β bevat de prompt-sjablonen + een vaste negatieve prompt (geen illustratie/CGI/glanzende huid).build_kapsel_prompt, build_voor_extensions_prompt, build_na_extensions_prompt β één per fototype. Worden 1-op-1 hergebruikt door de Blog Writer Agent.POST /wp-json/haarvisie-studio/v1/generate β 1 foto per call (4 foto's = 4 losse calls; de knop loopt client-side in een lus).image_type (verplicht), form_data, aspect_ratio (default 1:1), custom_width/height (optioneel).image_type-waarden: kapsel_foto, sfeer_lifestyle, before_after, product_foto, salon_interieur, eigen_prompt, bewerk_foto, nieuwsbrief_hero, nieuwsbrief_blog, voor_extensions, na_extensions. (editorial en blog bestaan NIET β geven een foutmelding.)bewerk_foto-route = de sleutel voor brand-models: image_type=bewerk_foto + base_image_url. Bij locatie "Rijswijk" doet de route automatisch logo-overlay + opslaan in galerij. Gebruik dit i.p.v. eigen_prompt voor brand-models.GET /capabilities (beschrijft alle 11 types), grid-plan, prompt-templates, voorna-composiet.β¦/wp-content/plugins/haarvisie-social-studio/. Deploy via rsync over SSH. PHP 8.2. JS-bundle = public/js/app.bundle.js (nooit dist/). React-frontend (webpack).haarvisie-api.jamalhaarvisie.workers.dev (HMAC-beveiligd β Gemini). De Gemini-key zit als Worker-secret.social-studio-assets (project haarvisie-brain). Bucket staat op private.contentengine.haartips.nl β Social Studio dashboardstudio.haartips.nl β content-pipeline dashboard (= SaaS, fase 2 open)models.haartips.nl β model-shootout (1 prompt β meerdere modellen naast elkaar: Gemini 2.5 Flash, Nano Banana 2/Pro, fal FLUX.2, Seedream v4)social-studio + een WordPress MCP Adapter (mu-plugin met 4 "Abilities": capabilities, generate-image, get/set grid-plan).| Versie | Datum | Wat |
|---|---|---|
| v2.9.9 | 7 jun | Voor/Na Extensions omgedraaid: eerst NA (brand model) β dan VOOR afgeleid. Live. |
| v2.9.8 | 7 jun | Before dun/plat/fijn-krul-prompts; logo links-boven; bugfixes |
| (17 mei) | 17 mei | Grote "agent-proof"-sessie: echtere gezichten, lossere krul, huidskleur-regel, /capabilities, MCP-adapter, Grid Planner, 8 bewerkbare sjablonen, Worker-key ververst |
| v2.9.5 | apr | Caption/Afbeelding/Carrousel-pipelines, Blog Inspiratie, Voor/Na upload |
| v2.9.1 | 28 mrt | Merkbijbel (17 merken + 60 promo's) |
| Fase 2 | 12 apr | Blog2Social-pijplijn + Wachtrij-tab + TikTok-scripter |
Wat de afgelopen 2 maanden veranderde: prompt-kwaliteit (echtere gezichten, lossere krul, huidskleur), agent-bestuurbaarheid (capabilities/MCP/grid-plan/templates), Voor/Na Extensions volledig herbouwd (NA-eerst), en de bewerk_foto-route gekoppeld aan de Virtual Makeover-worker.
public/js/app.bundle.js (nooit dist/); na elke deploy PHP-opcache resetten; Gemini-filter triggert op handelingswoorden (beschrijf het RESULTAAT, niet "verander/fix"); aspect_ratio post-processen met ImageMagick; TransIP max 3 SSH-verbindingen/min.haarvisie-api.jamalhaarvisie.workers.dev).haarvisie_studio_anthropic_key. fal.ai-key: WP-optie hv_fal_api_key.social-studio-assets. TransIP SSH: key ~/.ssh/id_ed25519.β οΈ Opschoonpunt (veiligheid): in één archief-notitie (gemini-image.md) staat een Gemini API-key in platte tekst. Die hoort in de Keychain/Worker, niet in een notitie β ik haal 'm daar weg.
Conductor liet Hermes parallel zoeken. Zijn extra vondsten (samengevoegd met mijn vault):
/generate ook /capabilities (zelf-beschrijvend schema β niet raden, opvragen), /voorna-composiet, en /brand-models β 13 goedgekeurde gezichten uit de Supabase-tabel brand_models.bewerk_foto = bewerkt een bestaande foto (via de MCP-tool edit_image). voor_extensions/na_extensions accepteren een brand_model_url β Gemini bewerkt de Γ©chte modelfoto en behoudt het gezicht.build_hair_prompt(): Lengte + Stijl + Textuur + Kleur + Belichting + Behoud. De selector/radio-key is letterlijk de Engelse Gemini-zin.~/.claude/mcp-servers/social-studio-mcp/index.js β tools: list_image_types, generate_image, edit_image./factory/*).Gaten van Hermes die Γk uit mijn vault heb ingevuld:
1. contentengine.haartips.nl = JA, het Social Studio-dashboard op de VPS (nginx + htpasswd). β
2. Supabase-bucket social-studio-assets = JA, project haarvisie-brain, op private gezet (26 apr). β
(naast de WP-gallery /haarvisie-studio/gallery/ + tabel brand_models)
3. v2.9.x changelog = aangevuld (zie versietabel; v2.9.7 Haardikte bevestigd). β