Concept Art logo

Concept Art

Organization
SummerEngine
concept-art

Explore art direction with 3-4 rough concept variants of a character, environment or prop.

Overview

PublisherSummerEngine
Repositorysummer
Skill nameconcept-art
Stars
91
Forks
8
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by SummerEngine on GitHub. Read the source before you install it.

Installation

Install the Concept Art AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/SummerEngine/summer/tree/main/library/skills/concept-art
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/SummerEngine/summer.git /tmp/summer
mkdir -p .claude/skills
cp -r /tmp/summer/library/skills/concept-art .claude/skills/concept-art
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Concept Art in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Concept Art on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Concept Art is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

concept-art — Batch-of-Variants for Art Direction

This skill produces 3-4 rough concept images of the same subject under different stylistic interpretations. The goal is not the final asset — the goal is to give the user something visual to react to so they can lock a direction. Variants are deliberately divergent (different palette, mood, framing, era) so the user has real choices, not four near-identical takes.

If the user wants ONE polished image (a dialogue portrait, a hero card), this is the wrong skill — route to character-portrait. The asset-strategy meta-router uses the disambiguation phrase "Quick check — exploring the look (3-4 variants for art direction) or generating a final character portrait for dialogue UI?" to send users to one of the two. If you arrived here without that question being asked, ask it before generating.

When to use

  • "I'm not sure what this character should look like — give me some options."
  • "Show me 3-4 directions for the witch."
  • "I want a mood board for the swamp level."
  • Early-project art direction, before the GameSoul.md visual style is locked.
  • The user describes a vibe ("dark fantasy", "Ghibli-esque", "Mobius") and wants to see it rendered.

When NOT to use

  • The user wants a single locked portrait for a dialogue UI → character-portrait.
  • The user wants pixel art specifically → pixel-art.
  • The user wants a UI icon or HUD element → ui-graphics.
  • The user wants a tileable wall/floor texture → tileable-texture.
  • The user wants an image-to-3D reference → asset-strategy (the 3D pipeline has its own prompt suffix).

Steps

1. Confirm exploration vs final

Before generating, ask once:

Quick check — exploring the look (3-4 variants for art direction) or generating a final character portrait for dialogue UI?

If "final" → hand off to character-portrait. If "explore" → continue.

2. Search for prior concepts

assets.search({ query: "<subject> concept", assetType: "2d_image", scope: "all" })

If something already exists, ask if the user wants to riff on it (img2img via referenceImageUrl) or start fresh.

3. Pick a variant axis

Variants must differ on one explicit axis, not noise. Pick one:

AxisUse when
Palette / mood"Should this feel grim or hopeful?"
Era / setting"Medieval, sci-fi, modern, post-apoc?"
Stylization"Painterly, anime, photoreal, Mobius line-art?"
Silhouette / proportionsCharacter design — slim/bulky/childlike/monstrous
Time of day / lightingEnvironment — dawn/noon/dusk/night

State the axis to the user before generating: "I'll vary on stylization — painterly, anime, line-art, photoreal. OK?"

4. Generate the batch

Issue 3-4 calls in parallel, one per variant. Use the same subject phrasing across all four; only the style-modifier changes.

assets.generate_image({
  prompt: "<subject>. <axis variant 1>. concept art, evocative, rough painterly, atmospheric lighting, wide cinematic framing",
  model: "nano-banana-2",
  style: "none"
})

style: "none" is intentional: only cartoon and anime append anything to the prompt, realistic and none append nothing, and any other value is coerced to none. So the preset cannot override the prompt's stylistic direction — it just contributes nothing, which is what concept art wants. All four variants' divergence has to come from the prompt.

For a shape other than square, pass aspectRatio ("16:9", "9:16", ...) or width + height; the result reports the real width and height and the model that ran. Exploration images are thrown away, so square is usually fine. Background removal is the removeBackground argument (there is no options object). Four variants are four charges: dryRun: true on one call shows its credits.

5. Present the batch

After all 4 return, show the user the thumbnails (link thumbnailUrl for each) and ask:

Which direction lands? I can generate variants on the chosen one, or hand off to character-portrait for a final.

Do NOT import any of these as res:// assets yet. Concept art is reference, not shipped art. Only import once the user picks a winner — then either it goes to character-portrait for a polished version or directly to summer_import_from_url if they want to use it as-is as a reference.

Prompt patterns

The structure: subject + axis variant + "concept art" + lighting/atmosphere. Keep prompts under 30 words.

GoalPrompt that worksWhy
Character — palette axisyoung witch with raven familiar. <warm autumn palette / cold blue moonlit palette / sickly green swamp palette / monochrome ash palette>. concept art, painterly, atmosphericLocked subject + four explicit palettes
Character — silhouette axisgoblin warrior. <slim wiry / hulking brute / childlike imp / multi-limbed mutant>. concept art, full body, rough painterlyForces real shape variation
Environment — mood axisswamp village at dusk. <hopeful warm lanterns / oppressive fog / abandoned ruins / overgrown nature reclaim>. concept art, wide shot, atmosphericMood drives composition
Environment — stylization axismountain temple. <Studio Ghibli soft painterly / Mobius clean line-art / dark Berserk ink / Hayao detailed wash>. concept art, wide establishing shotNames real reference styles the model recognizes
Prop — era axisroyal sword. <bronze age / medieval / ornate baroque / sci-fi energy>. concept art, three-quarter view, neutral backgroundEra as the only varying dimension
Creature — physiology axisforest spirit. <deer-like elegant / fungal grotesque / jellyfish floating / branch-and-moss elemental>. concept art, atmospheric, painterlyForces real morphological divergence

Bad prompts (and why)

BadFailure mode
cool fantasy characterNo subject, no axis. All 4 variants will look interchangeable.
make 4 different witchesModel doesn't render "4 of"; you must call 4 times.
epic concept art masterpiece trending on artstationAdjective soup. Trending-on-artstation is a 2022 cliche; modern models render it as bland slop.
same character but different"Different" is undefined. Pick an axis and name it.

Anti-patterns

  • Generating 4 near-identical variants because you didn't pick a real axis. The user can't choose between four images that all look like the same painting.
  • Importing concept art as final assets. These are exploration. The polished version comes from character-portrait after a direction is picked.
  • Treating style as the variant axis. The presets are realistic | cartoon | anime | none, and only two of them append anything. Four "stylization" variants have to differ in their prompt text, not in the style argument.
  • Skipping the disambiguation question. If you don't ask, you may generate four rough variants when the user wanted one polished bust.
  • Generating before the GameSoul.md is written. If .summer/GameSoul.md exists, read it first — its visual-style section narrows the axis.

Edge cases

  • User says "just one" after you propose 4. That's a character-portrait job. Hand off.
  • User wants 8+ variants. Generate 4 first; if the user wants more on the same axis, generate 4 more. Don't dump 8 at once — overload paralyzes choice.
  • Subject is a fully described scene, not an asset. You're producing key art, not asset reference. Pass aspectRatio: "16:9" (or width: 1920, height: 1080 for store key art) and bias toward atmospheric.
  • User wants the final to be 3D. After they pick a direction, route to asset-strategy — concept-art images are not 3D-ready references (they have backgrounds, scene context, dramatic lighting baked in). The 3D pipeline needs its own clean white-background reference.

Without Summer Engine

In a session without Summer Engine tools (the assets profile; the summer-assets skill has the whole loop), every step works. Pass out with the person's folder so the batch lands there (the summer-assets skill says how), and skip summer_import_from_url.

Fallback (no MCP)

Print the 4 prompts and the call for each:

assets.generate_image({ prompt: "<variant 1>", model: "nano-banana-2", style: "none" })
assets.generate_image({ prompt: "<variant 2>", ... })
...

Tell the user to run via the Summer dashboard, then come back and summer_import_from_url the winning variant.

Handoff

Once the user picks a direction:

  • Character / NPC final → character-portrait (use the picked variant as referenceImageUrl).
  • 3D model from this concept → asset-strategy (regenerate a 3D-ready reference; concept art is not 3D-ready as-is).
  • Tileable texture from this mood → tileable-texture.
  • Pixel-art version → pixel-art.
  • Lock the visual direction → write the choice into .summer/GameSoul.md under ## Visual style so future asset skills inherit it.

See also

  • asset-strategy — meta-router that delegates here vs other 2d-assets skills.
  • character-portrait — the polished single-image counterpart.
  • summer_docs_read id reference/mcp-tools-reference — how to call assets.generate_image.

From a shell

No Summer MCP tools in this session? Run each one as a command; when summer --version is missing or below 4.0, use npx -y summer-engine@latest in place of summer. Fields are flags in kebab-case (--scene-path res://main.tscn) or one --input '<json>', and summer ops describe <op> prints the exact input. The summer-cli skill has the rest.

In this skillCommand
assets.generate_image, summer_assets_generate_imagesummer assets generate-image
summer_assets_searchsummer assets search
summer_docs_readsummer docs read
summer_import_from_urlsummer engine import-from-url

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Concept Art AI skill do?

Explore art direction with 3-4 rough concept variants of a character, environment or prop.

Why use Concept Art on TypingMind?

Because you install it once and use it with any model. Concept Art is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Concept Art in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/SummerEngine/summer/tree/main/library/skills/concept-art. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Concept Art?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Concept Art?

As many as you like. As long as a model supports skills, you can use Concept Art with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Concept Art AI skill free?

Yes. It is published on GitHub by SummerEngine under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇