Skip to main content
JavaScriptMohamedAbdallah-14

illustration

Generate an in-product illustration (empty state, onboarding, hero, spot art) that obeys a brand bundle. Uses IP-Adapter / LoRA / Recraft style_id / Flux.2 brand refs for consistency across a set; validates palette ΔE2000 and style adherence.

Stars
7
Source
MohamedAbdallah-14/prompt-to-asset
Updated
2026-05-28
Slug
MohamedAbdallah-14--prompt-to-asset--illustration
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/MohamedAbdallah-14/prompt-to-asset/HEAD/.claude/skills/illustration/SKILL.md -o .claude/skills/illustration.md

Drops the SKILL.md into .claude/skills/illustration.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Illustration generation

The consistency problem

A single illustration is easy. A set of twelve in the same style is the hard problem. Research 10 + 15: prompt words drift; reference images do not. Any illustration skill must inject a brand style reference at every call.

Routing

Model Brand lock mechanism Best for
Flux Pro / Flux.2 reference_images[] (up to 8 in Flux.2) + brand LoRA Photoreal, stylized 3D, brand illustration sets
SDXL + brand LoRA trained LoRA (6d recipe, ~5k steps on 20 images) Bespoke brand style, open-weight
Recraft V3 style_id (brand magic) Flat vector, editorial illustration
Ideogram 3 style codes Loose "same vibe" — not strict lock
Midjourney v6/v7 --sref / --cref / --mref Concept work; no API, community wrappers only
gpt-image-1 input_image[] Edit / composite flows

First illustration in a set is human-gated. Once approved, its style becomes the reference injected into all subsequent generations.

Brand bundle injection

illustration prompt =
  [SUBJECT + SCENE from brief]
+ [style anchor: "in the style of the provided reference images"]
+ [palette: exact hex list from brand]
+ [do_not list as positive anchors: "flat matte surfaces" not "no glossy plastic"]
+ [typography reminder: "no text, no labels"]
+ [technical constraints: aspect, resolution, composition]

+ reference_images[]: [style_ref_01.png, style_ref_02.png, (prior approved illustration).png]
+ LoRA handle / style_id / --sref

Prompt scaffold

An illustration of [SUBJECT: concrete noun phrase] in a [SCENE: clear action/context].
Composition: [centered | rule-of-thirds | off-center-left]. Subject occupies ~60% of frame.
Style: in the style of the provided reference images. Flat vector with soft gradients. 
Line weight consistent with references.
Palette strictly limited to: [#hex, #hex, #hex, #hex, #hex].
Materials: matte surfaces, soft ambient lighting, no rim lights, no lens flare.
No text, no labels, no UI elements.
[aspect ratio]. 2048x1280 resolution.

Drop quality modifiers on Flux (no masterpiece, 8k — hurts adherence). Keep them on SD.

Post-processing

  1. Background removal only if asset is spot art (use BiRefNet for soft edges).
  2. Palette validation: K-means 8-color in LAB, ΔE2000 against brand palette, regenerate if max ΔE > 10.
  3. Composition validation: VLM rubric check against style references.
  4. Resize to target sizes (sharp premultiplied-alpha resize).

Full-set propagation

Workflow for generating N illustrations:

  1. Generate illustration #1 with the brand bundle and the brief.
  2. Human gates: accept / regenerate / tweak.
  3. On accept: add illustration #1 to the style reference set.
  4. Subsequent illustrations pull the whole augmented reference set → style locks progressively tighter.
  5. After 3–4 accepted illustrations, train a LoRA for even tighter lock on 20+ asset sets.

Output

illustrations/
├── empty-state-projects.png
├── empty-state-tasks.png
├── onboarding-welcome.png
└── meta.json     # includes provenance + "set coherence score" across the batch