chore(skills): streamline image-gen skill, update config
Simplified image-gen SKILL.md, removed obsolete DDS/style references (replaced by Gemini API connector). Updated audio_connector, gitignore, and CLAUDE.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,178 +1,87 @@
|
||||
---
|
||||
name: image-gen
|
||||
description: >
|
||||
Generate themed visual assets for the Lords of Ash CK3 total conversion mod
|
||||
using the generate_image MCP tool (Nano Banana / Gemini 2.5 Flash Image).
|
||||
Use when generating any mod art: trait icons, modifier icons, decision
|
||||
illustrations, event backgrounds, loading screens, bookmark art, coat of arms
|
||||
emblems, religion icons, building icons, MaA icons, lifestyle assets, scheme
|
||||
icons, focus icons, activity assets, workshop thumbnail, or frontend art.
|
||||
Also use when the user asks about visual identity, art direction, asset
|
||||
pipeline, or DDS conversion. Triggers on: "generate icons", "make trait art",
|
||||
"create loading screen", "asset pipeline", "convert to DDS", "art style",
|
||||
"generate assets", "batch generate".
|
||||
Generate concept images for The Settled Reach using the Gemini API.
|
||||
Use when generating concept art, reference images, asset concepts, UI mockups,
|
||||
or any visual reference. Triggers on: "generate image", "concept art",
|
||||
"make an image", "reference image", "image-gen", "concept image".
|
||||
NOT for 3D models — use /glb-gen for that.
|
||||
---
|
||||
|
||||
# Asset Generation — Lords of Ash
|
||||
# Image Generation — The Settled Reach
|
||||
|
||||
Generate visually consistent, CK3-native art assets using the `generate_image`
|
||||
MCP tool.
|
||||
Generate concept images via the Gemini API. Standalone skill — does not chain
|
||||
into other pipelines. Output is a PNG file.
|
||||
|
||||
Asset descriptions, filenames, resolutions, and directory paths are documented
|
||||
in `docs/REQUIRED_ASSETS.md`. This skill provides the visual identity, prompt
|
||||
system, and workflow.
|
||||
## Prerequisites
|
||||
|
||||
## Prompt Assembly
|
||||
Requires `GEMINI_API_KEY` in environment (set in `.claude/settings.local.json`).
|
||||
|
||||
Every `generate_image` call uses three parts:
|
||||
|
||||
```
|
||||
[STYLE PREFIX] + [CATEGORY TEMPLATE] + [ASSET DESCRIPTION from docs/REQUIRED_ASSETS.md]
|
||||
```bash
|
||||
python3 .claude/skills/image-gen/scripts/image_connector.py health
|
||||
```
|
||||
|
||||
Never call `generate_image` with just the asset description. Always prepend the
|
||||
style prefix and matching category template.
|
||||
## Usage
|
||||
|
||||
- **Style prefix and color palette**: Read `references/style-guide.md`
|
||||
- **Category templates**: Read `references/category-templates.md` and match by
|
||||
asset type (trait icon, modifier icon, decision illustration, etc.)
|
||||
- **Asset description**: Look up the specific asset in `docs/REQUIRED_ASSETS.md`
|
||||
|
||||
## Aspect Ratio Mapping
|
||||
|
||||
| Asset Type | Pixel Size | `aspect_ratio` |
|
||||
|------------|-----------|----------------|
|
||||
| All square icons | various | `1:1` |
|
||||
| Decision illustrations | 1100x440 | `5:2` (fallback: `16:9` + crop) |
|
||||
| Event backgrounds | 1592x848 | `16:9` |
|
||||
| Loading screens | 3840x2160 | `16:9` |
|
||||
| Bookmark art | 1920x1080 | `16:9` |
|
||||
| Frontend art | 3840x2160 | `16:9` |
|
||||
| Activity headers | 1100x440 | `5:2` (fallback: `16:9` + crop) |
|
||||
| Lifestyle strips | 480x160 | `3:1` (fallback: `16:9` + crop) |
|
||||
| Perk tree backgrounds | 348x812 | `9:16` + crop |
|
||||
| Lifestyle sidebars | 608x1552 | `9:16` + crop |
|
||||
|
||||
If the tool doesn't support an exact ratio, generate at the nearest standard
|
||||
ratio and resize/crop with ImageMagick.
|
||||
|
||||
## Single Asset Workflow
|
||||
|
||||
1. Find the asset in `docs/REQUIRED_ASSETS.md` — note filename, resolution,
|
||||
directory, DDS format, and description.
|
||||
2. Read `references/style-guide.md` for the style prefix.
|
||||
3. Read `references/category-templates.md` for the matching template.
|
||||
4. Assemble the full prompt and call `generate_image` with correct `aspect_ratio`.
|
||||
5. Save the PNG to `lords_of_ash/` at the correct `gfx/` path.
|
||||
6. Report what was generated.
|
||||
|
||||
## Batch Workflow
|
||||
|
||||
When generating multiple assets of the same type:
|
||||
|
||||
1. Read the style prefix and category template once.
|
||||
2. Iterate through assets in `docs/REQUIRED_ASSETS.md` for that category.
|
||||
3. Use the same style prefix and template for every asset.
|
||||
4. Call `generate_image` in batches of **no more than 3 parallel calls** at a
|
||||
time. Wait for each batch to complete before starting the next. This avoids
|
||||
overwhelming the image generation API.
|
||||
5. Save PNGs to correct paths after each batch.
|
||||
6. Report summary: count generated, failures, paths written.
|
||||
|
||||
## Modifier Coin Base
|
||||
|
||||
All modifier icons use a shared hammered-metal coin base for visual cohesion.
|
||||
Pass it as `inputImagePath` when generating modifier icons:
|
||||
|
||||
```
|
||||
~/Pictures/mcp-images/icons/modifiers/modifier_base_coin.png
|
||||
```bash
|
||||
python3 .claude/skills/image-gen/scripts/image_connector.py generate \
|
||||
"prompt text" \
|
||||
--output path/to/output.png \
|
||||
--aspect 1:1
|
||||
```
|
||||
|
||||
Use the stronger prompt pattern to keep the model on the coin base:
|
||||
### Output Directory Convention
|
||||
|
||||
> On a weathered dark steel-silver coin with rough beveled edges and warm
|
||||
> gold-amber rim glow, against a dark navy-charcoal swirled background.
|
||||
> CK3 game modifier icon, painterly style. Embossed relief on the coin
|
||||
> surface of [MOTIF]. The motif is engraved into the smooth grey coin face
|
||||
> as a bas-relief.
|
||||
|
||||
If the model drifts (different edge style, wrong background), regenerate — the
|
||||
coin base consistency is critical for the set to look cohesive at 60x60.
|
||||
|
||||
## PNG Output Directory Structure
|
||||
|
||||
Generated PNGs are saved under `~/Pictures/mcp-images/`. Mirror the mod's
|
||||
`gfx/` directory structure so source PNGs are organized the same way as the
|
||||
final DDS files:
|
||||
Store intermediates in `.tmp/` with deep nesting by pipeline stage, asset
|
||||
category, and subcategory:
|
||||
|
||||
```
|
||||
~/Pictures/mcp-images/
|
||||
icons/modifiers/ → modifier icons (60x60)
|
||||
icons/traits/ → trait icons (120x120)
|
||||
icons/faith/ → faith icons (100x100)
|
||||
icons/buildings/ → building icons (60x60)
|
||||
icons/maa/ → MaA regiment icons (60x60)
|
||||
icons/focuses/ → focus icons (140x140)
|
||||
icons/schemes/ → scheme icons (120x120)
|
||||
icons/casus_belli/ → casus belli icons (60x60)
|
||||
illustrations/decisions/ → decision illustrations (1100x440)
|
||||
event_backgrounds/ → event scene backgrounds (1592x848)
|
||||
loading_screens/ → loading screens (3840x2160)
|
||||
bookmarks/ → bookmark art (1920x1080)
|
||||
frontend/ → frontend/menu art (3840x2160)
|
||||
coat_of_arms/ → CoA emblems (128x128)
|
||||
lifestyles/ → lifestyle strips, sidebars, perk trees
|
||||
.tmp/
|
||||
image-gen/
|
||||
furniture/tables/baroque_table_concept.png
|
||||
furniture/chairs/office_chair_concept.png
|
||||
characters/body/slim_body_concept.png
|
||||
characters/hair/short_crop_concept.png
|
||||
props/weapons/pistol_concept.png
|
||||
environment/walls/bulkhead_concept.png
|
||||
```
|
||||
|
||||
Use the `fileName` parameter with the subdirectory path (e.g.,
|
||||
`icons/modifiers/modifier_foo.png`) to save directly into the right location.
|
||||
Do not save PNGs loose in the root `mcp-images/` directory.
|
||||
Always use `--output .tmp/image-gen/[category]/[subcategory]/[name]_concept.png`.
|
||||
|
||||
When regenerating an asset, overwrite the existing file — do not create
|
||||
versioned copies (`_v2`, `_v3`, etc.).
|
||||
### Parameters
|
||||
|
||||
## DDS Conversion
|
||||
| Flag | Default | Description |
|
||||
|------|---------|-------------|
|
||||
| `--output` | auto-named in `~/Pictures/mcp-images/` | Output PNG path (use `.tmp/image-gen/...` instead) |
|
||||
| `--aspect` | `1:1` | Aspect ratio (1:1, 16:9, 3:2, 4:3, etc.) |
|
||||
| `--size` | standard | Resolution hint (1K, 2K, 4K) |
|
||||
| `--input` | none | Input image for image-to-image variation |
|
||||
|
||||
CK3 requires DDS format. After generating PNGs, convert using the format
|
||||
mapping and commands in `references/dds-conversion.md`.
|
||||
## Art Style Guide — The Settled Reach
|
||||
|
||||
All output paths are under `lords_of_ash/gfx/`. The full directory structure is
|
||||
documented at the end of `docs/REQUIRED_ASSETS.md`.
|
||||
When generating concept images for game assets, prepend this style context:
|
||||
|
||||
## Critical Rules
|
||||
```
|
||||
Simplified for a toon-shaded isometric video game.
|
||||
Clean geometric forms, low polygon aesthetic.
|
||||
Sleek sci-fi setting. Near-white base color.
|
||||
Flat color regions, no textures, no photorealism.
|
||||
Plain dark background. Single object, centered.
|
||||
No text, no labels, no watermarks.
|
||||
```
|
||||
|
||||
- Always prepend the style prefix — without it, images drift in style.
|
||||
- Icons need dark/near-black backgrounds — light backgrounds break CK3 UI.
|
||||
- Trait icons are 120x120, NOT 60x60. Modifier icons are 60x60.
|
||||
- Trait icons MUST be uncompressed ARGB in DDS, not DXT5.
|
||||
- CoA emblems MUST be uncompressed ARGB for the color mask system.
|
||||
- Modifier icons need mipmaps; trait icons do not.
|
||||
- Decision illustrations: weight composition right (left side has UI overlay).
|
||||
- Filenames are case-sensitive on Linux — match mod code exactly.
|
||||
- Append "absolutely no text, no letters, no words, no labels, no titles, no
|
||||
captions, no watermarks" to icon prompts — the model tends to add text despite
|
||||
weaker phrasing.
|
||||
- Never use circular medallion/coin framing for icons — the model defaults to
|
||||
round compositions which leave white/light corners on a square canvas. Enforce
|
||||
"flat square, dark background edge-to-edge" in the prompt.
|
||||
- Icons must be symbolic motifs only, not scenes or landscapes. If the model
|
||||
generates an environment instead of an icon, the prompt needs stronger
|
||||
"this is an icon, not a scene" language.
|
||||
- Enforce painterly style explicitly — the model sometimes drifts to vector/flat
|
||||
graphic/mobile game art. Add "painterly style only — NOT vector art, NOT flat
|
||||
graphic design, NOT mobile game art" when this happens.
|
||||
- For trait families that form a progression (e.g. weak/strong/savant), describe
|
||||
the same base motif in each prompt and only vary the intensity/effects. Specify
|
||||
orientation ("horizontal", "not tilted") to keep compositions consistent.
|
||||
- Allomantic energy uses cyan-blue, never green or purple.
|
||||
**Reference:** Invisible Inc — clean, sleek, adult.
|
||||
|
||||
## Quality Checklist
|
||||
For concept images intended as Trellis input (3D model generation):
|
||||
- Use `--aspect 1:1` (Trellis works best with square input)
|
||||
- Plain dark background (clean extraction)
|
||||
- Single object, centered (Trellis struggles with multiple objects)
|
||||
- Near-white base color (engine recolors via materials)
|
||||
|
||||
After generating, verify:
|
||||
- Colors match the palette (no oversaturated neons, no pastels)
|
||||
- Composition matches the category template
|
||||
- No unwanted text, labels, or signatures
|
||||
- Dark/near-black background for icons
|
||||
- Resolution correct (or needs crop/resize)
|
||||
- Visually distinguishable from similar assets in same category
|
||||
- Ash, mist, or metallic elements present where appropriate
|
||||
## Batch Usage
|
||||
|
||||
Generate multiple variants by running the script multiple times with different
|
||||
prompts or seeds. Each call is independent — no state between calls.
|
||||
|
||||
Show generated images to the user for review before proceeding to any
|
||||
downstream pipeline (e.g. /glb-gen).
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
# Category Templates
|
||||
|
||||
Insert between the Style Prefix and asset-specific description. Match by asset type.
|
||||
|
||||
## Icons
|
||||
|
||||
### Trait icons (120x120, 1:1)
|
||||
```
|
||||
CK3 trait icon: a single centered symbolic motif on a very dark, near-black background
|
||||
that fills the ENTIRE square canvas edge-to-edge. Do NOT use circular medallion, coin,
|
||||
or round frame compositions — the image must be a flat square with dark background
|
||||
reaching all four corners. No white, no light-colored backgrounds anywhere. This is an
|
||||
icon, not a scene — no landscapes, no environments, just the symbolic motif. Do NOT
|
||||
render as a 3D object, canvas, or painting on a wall — this IS the flat image. Clean bold
|
||||
silhouette that reads clearly at small sizes. No text, no letters, no words, no labels,
|
||||
no titles, no captions whatsoever. No border frame, no outer decoration. The symbol fills
|
||||
roughly 70% of the canvas. Subtle inner glow and metallic sheen on the motif. One clear
|
||||
visual concept — dramatic but simple.
|
||||
```
|
||||
|
||||
### Modifier icons (60x60, 1:1)
|
||||
```
|
||||
CK3 modifier icon: a tiny, highly simplified symbol on a very dark background. Extremely
|
||||
clean and minimal — must be readable at 60x60 pixels. Maximum one or two visual elements.
|
||||
Bold shapes only, no fine detail. Strong color contrast against the dark background.
|
||||
```
|
||||
|
||||
### Faith icons (100x100, 1:1)
|
||||
```
|
||||
CK3 faith icon: a single sacred or institutional symbol centered on a dark background.
|
||||
Clean iconographic style with metallic sheen. Slightly more ornate than trait icons but
|
||||
still readable at small sizes. Communicate the faith's identity in one glance.
|
||||
```
|
||||
|
||||
### Building icons (60x60, 1:1)
|
||||
```
|
||||
CK3 building icon: a tiny simplified architectural silhouette on a dark background. One
|
||||
building shape with one or two distinguishing features. Must read at very small sizes.
|
||||
```
|
||||
|
||||
### MaA / regiment icons (60x60, 1:1)
|
||||
```
|
||||
CK3 regiment icon: a tiny simplified warrior or creature silhouette on a dark background.
|
||||
Single figure shown from chest up or in action pose. Bold shapes, convey the unit type
|
||||
through silhouette alone.
|
||||
```
|
||||
|
||||
### Focus icons (140x140, 1:1)
|
||||
```
|
||||
CK3 focus icon: a symbolic motif for an area of study or training. Dark background. More
|
||||
detailed than trait icons but still iconographic. Visually related to its parent lifestyle.
|
||||
```
|
||||
|
||||
### Scheme icons (120x120, 1:1)
|
||||
```
|
||||
CK3 scheme icon: a symbolic motif suggesting covert or political action. Dark background.
|
||||
Suggests secrecy, manipulation, or hidden intent. Clear silhouette at small sizes.
|
||||
```
|
||||
|
||||
### Casus belli icons (60x60, 1:1)
|
||||
```
|
||||
CK3 casus belli icon: a tiny bold symbol of conflict or claim on a dark background.
|
||||
Aggressive, assertive motif. Sword, fist, crown, or territorial symbol.
|
||||
```
|
||||
|
||||
## Illustrations
|
||||
|
||||
### Decision illustrations (1100x440, 5:2)
|
||||
```
|
||||
CK3 decision illustration: wide cinematic panoramic scene. Painterly with dramatic lighting.
|
||||
Composition weighted slightly right (left side gets UI overlay in-game). Atmospheric depth
|
||||
with mist, ash particles, and volumetric light. Characters at mid-distance. Dark vignetting.
|
||||
```
|
||||
|
||||
### Event scene backgrounds (1592x848, 16:9)
|
||||
|
||||
Base template (shared by all event backgrounds):
|
||||
```
|
||||
CK3 event background: a wide atmospheric environment with no characters in the scene — this
|
||||
is a backdrop only. Rich environmental detail, strong mood lighting. 16:9 cinematic
|
||||
composition with depth — foreground detail, mid-ground subject, atmospheric background
|
||||
fading into haze. Dark vignetting at edges. A place where dramatic events unfold.
|
||||
Absolutely no people, no characters, no figures.
|
||||
```
|
||||
|
||||
Combine the base template with ONE of the following scene-class overlays:
|
||||
|
||||
#### Noble interior (court, ball, private_chamber)
|
||||
```
|
||||
Opulent noble interior. Polished pale marble floors and columns, white-veined stone walls
|
||||
kept immaculately clean — brightness itself is a display of wealth in this ash-choked world.
|
||||
Rich colored fabrics in deep crimsons, golds, and blues — rare color in a grey world. Brass
|
||||
and steel fixtures gleaming with polish, ornate metalwork filigree. Warm golden candlelight
|
||||
from chandeliers, multiple light sources creating a bright, warm interior. Tall arched
|
||||
windows showing ash and darkness outside — the contrast between interior luxury and exterior
|
||||
bleakness is the point. Metal ornamentation everywhere — in this world, metal IS wealth.
|
||||
Clean, bright, and warm inside; grey, ashy, and cold outside.
|
||||
```
|
||||
|
||||
#### Institutional interior (temple, dungeon, ruins)
|
||||
```
|
||||
Austere institutional interior. Cold stone walls, iron fixtures, functional architecture.
|
||||
Sparse and imposing — authority expressed through scale and bareness, not decoration.
|
||||
Torchlight or brazier glow. Smoke and incense haze replacing outdoor mist. Steel Ministry
|
||||
or secretive order aesthetic — order, control, rigid geometry.
|
||||
```
|
||||
|
||||
#### Skaa / underclass (streets, plantation, fighting_pit, underground, market)
|
||||
```
|
||||
Impoverished and oppressed setting. Crumbling ash-stained walls, rough timber, packed dirt
|
||||
floors. Dim torchlight or grey overcast daylight filtering through soot-caked openings.
|
||||
Everything coated in a fine layer of volcanic ash. Threadbare, makeshift, salvaged materials.
|
||||
Sharp contrast to noble opulence — no metal ornamentation here, metal is too precious.
|
||||
Cramped, crowded, desperate. The weight of the Final Empire visible in every surface.
|
||||
```
|
||||
|
||||
#### Exterior (wilderness, battlefield, mists, ashmount_close, clear_night)
|
||||
```
|
||||
Exterior Scadrial landscape. Perpetually overcast sky with red-brown clouds. Volcanic ash
|
||||
falling like grey snow. Thick mist clinging to the ground. Barren vegetation — brown scrub,
|
||||
no green. Distant ashmounts on the horizon trailing smoke. Oppressive atmosphere but with a
|
||||
stark, bleak beauty.
|
||||
```
|
||||
|
||||
#### Noble arena (fighting_pit)
|
||||
```
|
||||
Grand stone arena built for noble entertainment. Tiered stone seating rising
|
||||
high, with ornate private viewing boxes draped in colored fabrics for the Great
|
||||
Houses. Iron cage or pit floor below — bloodstained sand and scattered weapons.
|
||||
Brazier light and torchlight from iron sconces. The architecture is imposing and
|
||||
wealthy but the purpose is brutal — Roman Colosseum meets dark fantasy. Metal
|
||||
railings, house banners, the contrast of noble opulence watching savage violence.
|
||||
```
|
||||
|
||||
Scene-class mapping:
|
||||
| Scene | Class |
|
||||
|-------|-------|
|
||||
| court, ball, private_chamber | Noble interior |
|
||||
| temple, dungeon, ruins | Institutional interior |
|
||||
| fighting_pit | Noble arena |
|
||||
| streets, plantation, underground, market | Skaa / underclass |
|
||||
| wilderness, battlefield, mists, ashmount_close, clear_night | Exterior |
|
||||
|
||||
### Activity header backgrounds (1100x440, 5:2)
|
||||
```
|
||||
CK3 activity header: wide panoramic scene of the activity in progress. Painterly, dramatic
|
||||
lighting. Dynamic composition with multiple figures. Atmospheric environmental storytelling.
|
||||
```
|
||||
|
||||
## Large Format
|
||||
|
||||
### Loading screens (3840x2160, 16:9)
|
||||
```
|
||||
CK3 loading screen: an epic sweeping landscape or cityscape at maximum visual quality.
|
||||
Painterly, cinematic framing. Grand sense of scale — the viewer feels small. Rich
|
||||
atmospheric perspective with layers of mist and ash. The first art players see — make it
|
||||
striking and immediately communicate the world.
|
||||
```
|
||||
|
||||
### Bookmark background (1920x1080, 16:9)
|
||||
```
|
||||
CK3 bookmark background: a dramatic wide scene establishing a moment in history. Painterly.
|
||||
Leave space in the lower-center and sides for character portrait overlays. Dark, moody,
|
||||
atmospheric establishing shot.
|
||||
```
|
||||
|
||||
### Bookmark character overlay (1920x1080, 16:9)
|
||||
```
|
||||
CK3 bookmark character: a single character from the waist up on a dark/transparent background.
|
||||
Painterly, dramatic side-lighting. Clear readable features and distinctive clothing. Facing
|
||||
slightly toward camera. Edges fade to darkness for compositing over a background.
|
||||
```
|
||||
|
||||
### Frontend background (3840x2160, 16:9)
|
||||
```
|
||||
CK3 main menu background: a grand, atmospheric Scadrial landscape at 4K. Painterly. The
|
||||
scene should work as a static backdrop behind menu UI elements. Dramatic but not too busy.
|
||||
```
|
||||
|
||||
## Specialty
|
||||
|
||||
### Coat of Arms emblems (128x128, 1:1)
|
||||
```
|
||||
Heraldic emblem: a single bold crest motif on a transparent background. Flat graphic style
|
||||
with clean edges — NOT painterly. Uses simple flat color fills. Bold silhouette, medieval
|
||||
heraldry adapted to a dark industrial-fantasy world of metals and ash. Think sigil, not
|
||||
painting.
|
||||
```
|
||||
|
||||
### Lifestyle strips (480x160, 3:1)
|
||||
```
|
||||
CK3 lifestyle strip: a wide horizontal banner in three visual sections showing a triptych
|
||||
related to the lifestyle theme. Dark atmospheric background. Painterly with metallic accents.
|
||||
```
|
||||
|
||||
### Perk tree backgrounds (348x812, 9:16 + crop)
|
||||
```
|
||||
CK3 perk tree background: a tall narrow vertical atmospheric illustration. Moody and ambient
|
||||
without strong focal points (UI overlays this). Gradual tonal shift from dark at top to
|
||||
slightly lighter at bottom. Subtle thematic elements — mist, metal, ash.
|
||||
```
|
||||
|
||||
### Lifestyle sidebar illustrations (608x1552, 9:16 + crop)
|
||||
```
|
||||
CK3 lifestyle sidebar: a very tall vertical scene related to the lifestyle. Painterly.
|
||||
Strong vertical composition — the eye travels bottom to top. Main visual interest centered
|
||||
horizontally (this appears as a sidebar panel).
|
||||
```
|
||||
|
||||
### Workshop thumbnail (512x512, 1:1)
|
||||
```
|
||||
Mod logo thumbnail: a striking square composition with the mod's key visual identity. Must
|
||||
read at small sizes (Steam Workshop browsing). Dark background with signature crimson and
|
||||
cyan accents. Central iconic motif — a Mistborn silhouette or metallic arts symbol.
|
||||
```
|
||||
@@ -1,58 +0,0 @@
|
||||
# PNG to DDS Conversion
|
||||
|
||||
The `generate_image` tool outputs PNG. CK3 requires DDS. Convert after generation.
|
||||
|
||||
## DDS Format by Asset Type
|
||||
|
||||
| Asset Type | DDS Format | Mipmaps |
|
||||
|------------|-----------|---------|
|
||||
| Trait icons (120x120) | B8G8R8A8_UNORM (uncompressed ARGB) | No |
|
||||
| Modifier icons (60x60) | B8G8R8A8_UNORM (uncompressed ARGB) | Yes (6 levels) |
|
||||
| Faith icons (100x100) | B8G8R8A8_UNORM | No |
|
||||
| CoA emblems (128x128) | B8G8R8A8_UNORM (Linear) | No |
|
||||
| Building icons (60x60) | B8G8R8A8_UNORM | No |
|
||||
| MaA icons (60x60) | B8G8R8A8_UNORM | No |
|
||||
| Decision illustrations | BC1_UNORM (DXT1) | No |
|
||||
| Event backgrounds | BC1_UNORM (DXT1) | No |
|
||||
| Loading screens | BC1_UNORM (DXT1) | No |
|
||||
| Bookmark backgrounds | BC1_UNORM (DXT1) | No |
|
||||
| Bookmark overlays | BC3_UNORM (DXT5) | No |
|
||||
| Tenet icons (260x400) | BC3_UNORM (DXT5) | No |
|
||||
| Portrait textures | BC3_UNORM (DXT5) | Yes |
|
||||
| Frontend art | BC1_UNORM (DXT1) | No |
|
||||
|
||||
## Conversion with ImageMagick (Linux)
|
||||
|
||||
ImageMagick 7 with the `dds` delegate can write DDS files:
|
||||
|
||||
```bash
|
||||
# Uncompressed ARGB, no mipmaps (trait icons, faith icons, CoA emblems)
|
||||
magick input.png -define dds:compression=none -define dds:mipmaps=0 output.dds
|
||||
|
||||
# DXT1 opaque, no mipmaps (decisions, events, loading screens)
|
||||
magick input.png -define dds:compression=dxt1 -define dds:mipmaps=0 output.dds
|
||||
|
||||
# DXT5 with alpha, no mipmaps (bookmark overlays, tenet icons)
|
||||
magick input.png -define dds:compression=dxt5 -define dds:mipmaps=0 output.dds
|
||||
|
||||
# Uncompressed ARGB with mipmaps (modifier icons)
|
||||
magick input.png -define dds:compression=none -define dds:mipmaps=6 output.dds
|
||||
```
|
||||
|
||||
## Resize / Crop with ImageMagick
|
||||
|
||||
```bash
|
||||
# Resize to exact pixel dimensions
|
||||
magick input.png -resize 120x120! output.png
|
||||
|
||||
# Center-crop from a wider source
|
||||
magick input.png -gravity center -crop 1100x440+0+0 +repage output.png
|
||||
```
|
||||
|
||||
## Common Pitfalls
|
||||
|
||||
- Trait icons MUST be uncompressed ARGB, not DXT5 — wrong format = invisible in-game
|
||||
- CoA emblems MUST be uncompressed ARGB or the color mask tinting system breaks
|
||||
- Modifier icons need mipmaps; trait icons do not
|
||||
- Filenames are case-sensitive on Linux — match exactly what mod code references
|
||||
- Check `magick identify` output to verify format and dimensions after conversion
|
||||
@@ -1,39 +0,0 @@
|
||||
# Style Guide — Lords of Ash Visual Identity
|
||||
|
||||
## Style Prefix
|
||||
|
||||
Prepend to **every** `generate_image` prompt:
|
||||
|
||||
```
|
||||
Dark fantasy digital painting. Palette: deep charcoal blacks (#1a1a2e), muted ash greys,
|
||||
burnt orange embers (#c44b28), blood-red crimson skies (#6b0f1a), with electric cyan-blue
|
||||
(#00d4ff) magical energy accents. Metallic elements in cool steel-silver and warm aged-gold.
|
||||
Perpetually overcast world with falling volcanic ash particles and thick ground-level mist.
|
||||
Mood: gritty and oppressive but not grimdark — defiant hope underneath. Painterly brushwork
|
||||
with dramatic chiaroscuro lighting. Inspired by Brandon Sanderson's Mistborn aesthetic.
|
||||
```
|
||||
|
||||
## Color Palette
|
||||
|
||||
| Role | Hex Examples |
|
||||
|------|-------------|
|
||||
| Primary darks | `#1a1a2e`, `#16213e`, `#0f0f23` |
|
||||
| Atmosphere (ash grey) | `#4a4a5a`, `#6b6b7b`, `#8a8a8a` |
|
||||
| Accent warm (ember) | `#c44b28`, `#8b2500`, `#e85d26` |
|
||||
| Sky / danger (crimson) | `#6b0f1a`, `#8b1a2b`, `#4a0a12` |
|
||||
| Allomantic energy (cyan) | `#00d4ff`, `#4fc3f7`, `#80deea` |
|
||||
| Steel / iron | `#8a9bae`, `#b0bec5`, `#546e7a` |
|
||||
| Gold / brass | `#c4a35a`, `#b8860b`, `#daa520` |
|
||||
| Pewter | `#71797E`, `#8a8a8a`, `#a9a9a9` |
|
||||
| Atium (iridescent) | `#e8e8f0`, `#c0c0d0`, `#f0f0ff` |
|
||||
| Corruption / Ruin | `#3d0c0c`, `#5c1a1a`, `#2b0a0a` |
|
||||
| Hope / Preservation | `#d0dfe6`, `#e0ecf0`, `#f0f5f8` |
|
||||
|
||||
## Moodboard Anchors
|
||||
|
||||
- Silhouetted Mistborn on rooftop against crimson sky with oversized pale moon
|
||||
- Koloss as dark hulking shapes in mid-ground
|
||||
- Falling ash/snow particles in every scene
|
||||
- Electric cyan glow for all Allomantic effects (lines, auras, coin trails)
|
||||
- House crests as embossed dark metal badges on deep crimson with vignette
|
||||
- CK3-style chrome framing (beveled metal borders, riveted edges, parchment textures)
|
||||
@@ -46,3 +46,5 @@ Thumbs.db
|
||||
.claude/plans/
|
||||
.claude/projects/
|
||||
.claude/agent-memory/
|
||||
client-tmp/
|
||||
.tmp/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# The Settled Reach
|
||||
|
||||
A top-down immersive sim — occlusion-based detective game with combat elements, set in an original science fiction universe. Single-character perspective, asymmetric information as core mechanic, Rimworld-style storyteller. Godot 4 client + Rust/bevy_ecs simulation server via subprocess/IPC.
|
||||
A top-down life-sim — asymmetric information, occlusion-based perception, single-character perspective, Rimworld-style storyteller. Systems interactions like The Sims, combat and visuals like single-character Rimworld, world generation inheriting patterns from Dwarf Fortress and NMS, economy inspired by X4/EVE. Many systems interactable and ready for player participation, but capable of being ignored — the world is alive for any given run. Set in an original science fiction universe. Godot 4 client + Rust/bevy_ecs simulation server via subprocess/IPC.
|
||||
|
||||
**Official Title:** The Settled Reach
|
||||
**Repository name:** settled-reach
|
||||
|
||||
@@ -80,6 +80,19 @@ def post_process(wav_path, ogg_path=None, lufs=-16, quality=6, threshold=-50):
|
||||
return {"ok": True, "output": ogg_path}
|
||||
|
||||
|
||||
def _check_available(base):
|
||||
"""Quick check if Stable Audio is reachable. Fail fast with a clear message."""
|
||||
try:
|
||||
req = urllib.request.Request(f"{base}/config", method="GET")
|
||||
urllib.request.urlopen(req, timeout=5)
|
||||
except Exception:
|
||||
print(json.dumps({
|
||||
"ok": False,
|
||||
"error": f"Stable Audio is not available at {base}. The service may be switched off to save system resources. Start it before generating audio."
|
||||
}, indent=2))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def generate(prompt, duration=10.0, steps=100, cfg=7.0, output=None, timeout=600,
|
||||
post=False, output_ogg=None):
|
||||
"""
|
||||
@@ -96,6 +109,7 @@ def generate(prompt, duration=10.0, steps=100, cfg=7.0, output=None, timeout=600
|
||||
output_ogg: OGG output path when post=True (default: same basename .ogg)
|
||||
"""
|
||||
base = get_base_url()
|
||||
_check_available(base)
|
||||
api_url = f"{base}/gradio_api/call/generate_audio"
|
||||
|
||||
if output is None:
|
||||
|
||||
Reference in New Issue
Block a user