mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialect

Claude Code and agent skill by mohamedabdallah-14/prompt-to-asset

Trust tier 3
  • community
Source check pending

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-dialect

SKILL.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)

ModelGrammarToken / char ceilingNegative promptTransparencyText ceiling
gpt-image-2Prose~100 wordssilently ignoredNOT 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.5Prose~100 wordssilently ignoredAPI param background: "transparent"dense text ~60 chars (LM Arena #1)
gpt-image-1Prose~100 wordssilently ignoredAPI param background: "transparent"~50 chars / ≤5 words
Imagen 4 (Fast/Standard/Ultra)Narrative prose, ≥30 words suppresses auto-rewriterunbounded`negativePrompt` accepted on Vertex AI; ignored on Gemini APInever request in prompt (renders checkerboard as RGB)≤25 chars per Google's own guidance
Gemini 3.1 Flash Image (Nano Banana 2)Proseunboundedignoredrenders checkerboard~50 chars / ~90% accuracy (#1 Image Arena at launch — strong-text, not weak)
Gemini 3 Pro Image (Nano Banana Pro)Proseunboundedignoredrenders checkerboardparagraph-length reliable (~94-96% accuracy)
SD 1.5 / SDXLTag-soup, comma-separated, no articles77 CLIP tokens, chunk via BREAKnativeLayerDiffuse adapter or matte post"cannot render legible text" per HF card — ≤1 glyph
SD 3 / SD 3.5 LargeProse + tags hybrid256 (T5)nativematte post~30 chars (mid-tier; not strong-text)
Flux 1.1 Pro / Flux ProProse narrative512rejected at fal schema; no-op on BFL nativematte post1–3 words / ~25 chars
Flux 2 (pro/flex/dev/klein)Prose, JSON-structured prompts allowedT5 + Mistral-3 24B VLMofficially unsupported per BFL guide ("FLUX.2 does not support negative prompts")matte post5–10 words / one tagline (~92% layout accuracy)
Flux SchnellProse256unsupportedmatte post1–2 words max
Midjourney v7/v8Prose + --flagsunbounded--no X flagnone; matte post≤15 chars with --text
Ideogram 3 / 3 TurboProse + text in "double quotes"unboundednativededicated 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 / V4Prose + controls.colors + style_id (V3 only — V4 dropped it)unboundednativenative 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:

"blurry" → "tack-sharp, high-resolution"
"low quality" → "professional quality, fine details"
"watermark" → "clean unmarked composition"
"extra fingers" → "anatomically correct, five fingers per hand"
"cartoon" → "photorealistic, naturalistic rendering"
"no gradients" → "flat vector style, solid colors"
"no drop shadows" → "flat design, crisp edges"
"no text" → "purely visual, no embedded typography"

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-2 family.
  • 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:

gpt-image-2: The text "Acme" in bold sans-serif at the top, white on navy
gpt-image-1: "The text 'Acme' in bold sans-serif"
Ideogram: A wordmark "Morning Brew" in geometric sans-serif
Flux.2: The heading "OPEN" in large bold sans-serif, color #FF6B6B
Nano Banana Pro: A magazine cover with the headline "The Future of Compute" centered, in serif
SDXL: text 'acme' on background (tag-soup, fragile, ≤1 glyph reliable)

Brand injection per model

ModelPalette deliveryStyle lock
Flux.1hex codes in proseT5 picks up named colors + hex
Flux.2JSON color_palette: ["#hex", …]up to 8 reference images
SDXL(#hex style:0.8) tag + IP-Adapter imageLoRA weights / IP-Adapter ref
Midjourneycolor words in prose + --sref <id> --sw 250–400--sref, --cref, --mref
Ideogramprose color descriptionstyle_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"

gpt-image-1:
A minimalist geometric logo for Stillness, a meditation app. A single stylized
lotus form composed of overlapping curved lines, deep navy #0A1F44 and soft white
#FAFAFA. Flat vector style, no gradients, no shadows. Centered composition on a
transparent background. Scalable to 32×32 pixels.
[API: background="transparent", size="1024x1024"]
Imagen 3 (≥30 words):
A serene vector logo for Stillness, a mindfulness meditation app. The mark shows
a stylized seated figure in lotus position as simple overlapping curves, in deep
navy #0A1F44 and soft white #FAFAFA. Minimalist line-weight aesthetic with generous
negative space. Flat design, centered, solid pure white background. Scalable to
app-icon sizes.
Flux.1 [dev] (no negative_prompt, guidance 3.5):
A minimalist geometric logo for Stillness. A stylized lotus mark composed of
overlapping curves in deep navy #0A1F44 and soft white #FAFAFA. Flat vector style,
crisp edges, solid colors. Centered on a clean white background. Scalable, works
at 32×32 pixels.
SDXL (77-token chunked):
masterpiece, vector logo, minimalist meditation mark, lotus geometry, deep navy
#0A1F44, soft white #FAFAFA, flat design, (centered:1.2), white background
BREAK
professional, sharp details, scalable, clean composition, no shadow, no watermark
NEGATIVE: blurry, low quality, photorealistic, watermark, text, distorted shapes
Ideogram 3 Turbo (+ wordmark):
A minimalist vector logo for a meditation app. A stylized lotus mark in deep navy
on white. Wordmark "Stillness" in modern geometric sans-serif, tight letter
spacing, bold weight. Flat design, centered, high contrast.
[API for transparency: POST /v1/ideogram-v3/generate-transparent with
rendering_speed:"TURBO" — no `style:transparent` parameter exists]
Recraft V3:
prompt: "A minimalist geometric meditation logo, lotus mark, flat vector design."
controls.colors: ["#0A1F44", "#FAFAFA"]
style_id: "<brand-uuid if locked>"

Pre-submission checklist

Every brief:
☐ subject noun is concrete (not just adjectives)
☐ text ≤ model ceiling, else plan composite
☐ transparency intent matches model capability
SDXL only:
☐ positive prompt ≤77 tokens per BREAK chunk
☐ weights in [0.7, 2.0]
Flux only:
☐ no `negative_prompt` field (BFL guide: "FLUX.2 does not support negative prompts")
☐ guidance_scale [2.5, 4.5] for [dev]; omit for [schnell]
Imagen/Gemini only:
☐ prompt ≥30 words on Imagen 4 (suppresses auto-rewriter)
☐ no transparency request in prompt text (RGB-only VAE)
☐ for Imagen 4 negative prompts, hit the Vertex AI endpoint, not the Gemini API
Ideogram only:
☐ exact text in double quotes
☐ for transparency, hit POST /v1/ideogram-v3/generate-transparent (no style param)
☐ Magic Prompt off for brand work
Recraft only:
☐ style_id set if brand lock needed
☐ palette ≤4 hex codes

Common mistakes

  • Forwarding user's brief verbatim (skips dialect rewrite → ~40% lower success rate)
  • Asking Imagen/Gemini for transparency (produces checkerboard)
  • Sending negative_prompt to 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 on gpt-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 preservation
  • docs/research/01-prompt-engineering-theory/1d-prompt-weighting-syntax.md — per-ecosystem weighting
  • docs/research/06-stable-diffusion-flux/6b-flux-family-prompting.md — Flux guidance distillation, T5 semantics
  • docs/research/07-midjourney-ideogram-recraft/7e-commercial-tool-asset-workflows.md — end-to-end recipes
  • docs/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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialect/badge)](https://verified-skill.com/skills/mohamedabdallah-14/prompt-to-asset/t2i-prompt-dialect)

Something wrong with this skill or its page? Tell us.