mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialect
Claude Code and agent skill by mohamedabdallah-14/prompt-to-asset
- community
Checking that the SKILL.md file is still in the repository.
Rewrite an asset brief into the exact prompt dialect of the target image model (OpenAI gpt-image-1, Google Imagen/Gemini, SDXL, Flux.1/Flux.2, Midjourney, Ideogram, Recraft). Handles negative-prompt translation, token budgets, transparency quirks, brand-palette injection, and text-in-image ceilings so that `asset_generate_*` submissions succeed on the first try.
Install
npx vskill@latest install mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialectSKILL.md
T2I prompt dialect
Runs between asset_enhance_prompt() and asset_generate_*(). Takes a normalized brief plus a target model and emits a prompt that honors that model's syntax, token budget, and quirks.
Per-model rules (quick card, verified Apr 2026)
| Model | Grammar | Token / char ceiling | Negative prompt | Transparency | Text ceiling | |
|---|---|---|---|---|---|---|
gpt-image-2 | Prose | ~100 words | silently ignored | NOT supported — `background:"transparent"` 400s (regression vs 1.5) — route transparent jobs to gpt-image-1.5 instead | ~80 chars / paragraph (~99% accuracy per third-party tests) | |
gpt-image-1.5 | Prose | ~100 words | silently ignored | API param background: "transparent" | dense text ~60 chars (LM Arena #1) | |
gpt-image-1 | Prose | ~100 words | silently ignored | API param background: "transparent" | ~50 chars / ≤5 words | |
| Imagen 4 (Fast/Standard/Ultra) | Narrative prose, ≥30 words suppresses auto-rewriter | unbounded | `negativePrompt` accepted on Vertex AI; ignored on Gemini API | never request in prompt (renders checkerboard as RGB) | ≤25 chars per Google's own guidance | |
| Gemini 3.1 Flash Image (Nano Banana 2) | Prose | unbounded | ignored | renders checkerboard | ~50 chars / ~90% accuracy (#1 Image Arena at launch — strong-text, not weak) | |
| Gemini 3 Pro Image (Nano Banana Pro) | Prose | unbounded | ignored | renders checkerboard | paragraph-length reliable (~94-96% accuracy) | |
| SD 1.5 / SDXL | Tag-soup, comma-separated, no articles | 77 CLIP tokens, chunk via BREAK | native | LayerDiffuse adapter or matte post | "cannot render legible text" per HF card — ≤1 glyph | |
| SD 3 / SD 3.5 Large | Prose + tags hybrid | 256 (T5) | native | matte post | ~30 chars (mid-tier; not strong-text) | |
| Flux 1.1 Pro / Flux Pro | Prose narrative | 512 | rejected at fal schema; no-op on BFL native | matte post | 1–3 words / ~25 chars | |
| Flux 2 (pro/flex/dev/klein) | Prose, JSON-structured prompts allowed | T5 + Mistral-3 24B VLM | officially unsupported per BFL guide ("FLUX.2 does not support negative prompts") | matte post | 5–10 words / one tagline (~92% layout accuracy) | |
| Flux Schnell | Prose | 256 | unsupported | matte post | 1–2 words max | |
| Midjourney v7/v8 | Prose + --flags | unbounded | --no X flag | none; matte post | ≤15 chars with --text | |
| Ideogram 3 / 3 Turbo | Prose + text in "double quotes" | unbounded | native | dedicated POST /v1/ideogram-v3/generate-transparent endpoint; rendering_speed: "TURBO" for Turbo tier (no style:"transparent" param exists) | ~3–6 words reliable, ~10 with seed retries | |
| Recraft V3 / V4 | Prose + controls.colors + style_id (V3 only — V4 dropped it) | unbounded | native | native SVG handles alpha trivially | ~3–5 words |
Negative-prompt translation
Native support: SD 1.5, SDXL, SD 3 / 3.5 Large, Recraft V3 / V4, Ideogram 3 / 3 Turbo, Leonardo Phoenix / Diffusion XL, Stability-hosted, Adobe Firefly. Imagen 4 also accepts negativePrompt on the Vertex AI endpoint (not on the Gemini API endpoint).
Silently ignored: all gpt-image-*, all Gemini Flash Image / Nano Banana variants, Imagen 4 via Gemini API, Freepik Mystic, Pollinations.
Rejected / unsupported: Flux 1.x on fal (schema lacks the field), Flux 2 family (BFL prompting guide: "FLUX.2 does not support negative prompts" — no negative-conditioning path in the model). Sending it 400s on some surfaces and silently no-ops on others.
For models that ignore or reject it, rewrite as affirmative anchors:
Text-in-image — model-specific ceilings, not a blanket rule
Every model has its own ceiling. Pick by tier:
- Paragraph-length OK:
gpt-image-2,gemini-3-pro-image-preview(Nano Banana Pro),gpt-image-1.5. The model can render it; composite remains safer for UI copy that must be pixel-exact. - Strong (~3–10 words):
ideogram-3/ideogram-3-turbo,gemini-3.1-flash-image-preview(Nano Banana 2),gpt-image-1,flux-2family. - OK (~3–4 words / ≤25 chars): Imagen 4 family, Recraft V4, Midjourney v7/v8.
- Weak (1–3 words): Flux Pro / 1.1 Pro, original
gemini-2.5-flash-image, Freepik Mystic, Pollinations. - Cannot render text: SDXL, SD 1.5, Flux Schnell, Flux 2 Klein. Composite always.
For weak / cannot-render tiers past ceiling: generate text-free, then composite the wordmark as SVG <text> (or design-tool type layer) using BrandBundle.typography.
Quoted-text syntax per model:
Brand injection per model
| Model | Palette delivery | Style lock | |
|---|---|---|---|
| Flux.1 | hex codes in prose | T5 picks up named colors + hex | |
| Flux.2 | JSON color_palette: ["#hex", …] | up to 8 reference images | |
| SDXL | (#hex style:0.8) tag + IP-Adapter image | LoRA weights / IP-Adapter ref | |
| Midjourney | color words in prose + --sref <id> --sw 250–400 | --sref, --cref, --mref | |
| Ideogram | prose color description | style_reference_images or style_codes | |
| Recraft | `controls.colors: ["#hex"]` (hard enforcement) | `style_id: "uuid"` (tight lock) |
Encode BrandBundle.do_not[] as affirmative anchors. Never forward literal "no X" language to Flux/Imagen/Ideogram/Recraft — translate it.
Dialect-rewrite template (logo example)
Input: "logo for my meditation app called Stillness, minimal, navy and white"
Pre-submission checklist
Common mistakes
- Forwarding user's brief verbatim (skips dialect rewrite → ~40% lower success rate)
- Asking Imagen/Gemini for transparency (produces checkerboard)
- Sending
negative_promptto Flux (rejected on 1.x fal schemas; no-op on Flux 2 family) - Sending
background: "transparent"to gpt-image-2 (400s — regression vs gpt-image-1.5; route transparent jobs to gpt-image-1.5 instead) - Omitting
background: "transparent"API param ongpt-image-1/gpt-image-1.5(silent failure) - Adjective overload (
"beautiful, stunning, amazing") — replace with concrete descriptors - Prompt <30 words on Imagen — internal rewriter strips style specificity
Research
docs/research/01-prompt-engineering-theory/1c-llm-prompt-expansion.md— LLM rewriter intent preservationdocs/research/01-prompt-engineering-theory/1d-prompt-weighting-syntax.md— per-ecosystem weightingdocs/research/06-stable-diffusion-flux/6b-flux-family-prompting.md— Flux guidance distillation, T5 semanticsdocs/research/07-midjourney-ideogram-recraft/7e-commercial-tool-asset-workflows.md— end-to-end recipesdocs/research/24-skills-for-p2a/03-t2i-prompt-dialect-skill.md— full design spec
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/t2i-prompt-dialect/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialect)