You've finalized a campaign in one market and need to ship it across Germany, Japan, Brazil, and three other locales without starting from scratch. This takes your master assets and adapts them per market: swaps copy with your translations (never auto-translates ad copy, compliance risk), handles text expansion for German and Russian, mirrors layouts for Arabic and Hebrew, and replaces culturally specific visuals like faces or settings. Built by Picsart, it's opinionated about workflow: one locale at a time with native speaker review before moving to the next, because parallelizing five markets at once means you've burned 5x the credits before catching a prompt bug. Expects you to bring human-reviewed translations and knows which models render legible Japanese text versus gibberish.
npx -y skills add PicsArt/gen-ai-skills --skill marketer-localize-campaign --agent claude-codeInstalls into .claude/skills of the current project.
Take one finished campaign and adapt it to N markets — translated copy, culturally appropriate visuals, right-to-left handling for AR/HE, and text-expansion-safe layouts. Built for consistency (same campaign identity per market) and speed (one batch per locale).
marketer-campaign-kit first, then this skill).Ask up front if the brief doesn't cover it (combine into one message):
de-DE, fr-FR, ja-JP, ar-SA, pt-BR). Region matters for cultural appropriateness.{campaign}_{locale}_{size}.webp.Never auto-translate ad copy without a reviewer — legal/compliance owns sign-off.
ideogram-v3 with the translated copy and same visual.qwen-image-edit-plus, flux-kontext-pro) with the original image + a locale-specific prompt.image for composition.gen-ai batch run localize-de.json --dry-run
gen-ai batch run localize-de.json -c 4 -o ./out/de-DE
results.json archived for audit.One manifest per locale keeps things tidy. {locale} and {name} placeholders support cross-locale reuse.
{
"defaults": {
"model": "qwen-image-edit-plus",
"imageUrls": ["https://cdn-pipeline-output.picsart.com/.../master-hero.webp"],
"negativePrompt": "low quality, watermark, culturally inappropriate"
},
"jobs": [
{ "id": "hero_de-DE", "prompt": "adapt hero for German market — preserve composition, swap setting to central-European urban, replace overlay text with: \"Jetzt entdecken\"", "aspectRatio": "16:9" },
{ "id": "ad_9x16_de-DE", "prompt": "adapt ad for German market — keep product/subject, swap scene to Berlin street, overlay headline: \"Jetzt entdecken — 20% Rabatt\"", "aspectRatio": "9:16" },
{ "id": "ad_1x1_de-DE", "prompt": "adapt ad for German market — clean background, German headline: \"Jetzt entdecken\", CTA: \"Mehr erfahren\"", "aspectRatio": "1:1" },
{ "id": "email_de-DE", "prompt": "email header for German launch — German copy on-canvas: \"Jetzt entdecken\"", "aspectRatio": "3:1" },
{ "id": "lp_hero_de-DE", "prompt": "LP hero for German market — same product, German subtitle: \"Entdecken Sie die neue Kollektion\"", "aspectRatio": "16:9" }
]
}
For RTL locales (AR, HE), mirror layouts explicitly in the prompt: "right-to-left layout, headline reads from right, mirror the hero composition".
For voiceover localization (video campaigns), pair with gen-ai generate -m eleven-multilingual-v2 per locale — keep voice ID consistent across locales for brand continuity.
| Sub-task | Model | Why |
|---|---|---|
| In-place text swap on clean bg | ideogram-v3 | Only model that reliably renders legible text in multiple scripts (Latin, Cyrillic, JP, AR) |
| Motif / setting swap, preserve subject | qwen-image-edit-plus | Strong at in-place edits — keeps composition, swaps scene |
| Instructed edits with reference | flux-kontext-pro | Precise edit-to-prompt adherence, good when you need surgical changes |
| Full regeneration with cultural guidance | flux-2-pro | Best photoreal; reference the original as image to keep composition |
| Face/person swap with identity consistency | gemini-3-pro-image (Nano Banana Pro) | Best at persisting or deliberately swapping a subject across renders |
| Multilingual voiceover | eleven-multilingual-v2 | Consistent voice across locales — set voice ID in defaults |
| Background replacement only | gen-ai change-bg (subcommand) | Pixel-identical subject, locale-appropriate scene |
Confirm IDs with gen-ai models.
ideogram-v3 is the only reliable option for on-image text in non-Latin scripts. Other models render JP/AR/KR as gibberish. Use it for any text-bearing asset.launch_de-DE_9x16.webp parses cleanly in Meta / Google / TikTok CSV importers.voice in defaults, not per-job.ideogram-v3 for any non-Latin on-image text, not flux/recraft.voice IDs per locale breaks brand continuity — set one voice ID across all TTS jobs.Run gen-ai whoami to confirm authentication, then re-run the failed command with --debug.
Rough estimate to localize a 9-asset campaign across 5 locales (45 total renders):
| Asset type | Count per locale | Model | Credits each | Per locale | 5 locales |
|---|---|---|---|---|---|
| Hero + ad + email + LP (motif swap) | 5 | qwen-image-edit-plus | ~2 | 10 | 50 |
| Text-bearing assets (headlines, CTAs) | 4 | ideogram-v3 | ~3 | 12 | 60 |
| Image subtotal | 9 | ~22 | ~110 credits | ||
| Voiceover (if video campaign) | 1 per locale | eleven-multilingual-v2 | ~1-3 | ~2 | ~10 |
| Grand total | ~120 credits | ||||
| Wall time (sequential per locale, concurrency 4 within) | ~3 min | ~15 min |
Full regeneration via flux-2-pro roughly doubles the image credits. Estimate explicitly with gen-ai batch run localize-{locale}.json --dry-run before spending.
gen-ai-use/SKILL.md — full CLI reference (flags, model catalog, auth, TTS models)gen-ai-workflows/SKILL.md — general multi-step patternsgen-ai-batch/SKILL.md — manifest shape, placeholders, concurrencyworkflows/marketer-campaign-kit/SKILL.md — run before this to produce the master campaignworkflows/marketer-ad-variant-factory/SKILL.md — run winners through localization after A/B tests pick themsickn33/antigravity-awesome-skills
moizibnyousaf/ai-agent-skills
github/awesome-copilot