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:
2026-03-17 23:35:01 +01:00
co-authored by Claude Opus 4.6
parent 8ab042e3f1
commit 4516a3bac4
7 changed files with 77 additions and 464 deletions
+60 -151
View File
@@ -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)
+2
View File
@@ -46,3 +46,5 @@ Thumbs.db
.claude/plans/
.claude/projects/
.claude/agent-memory/
client-tmp/
.tmp/
+1 -1
View File
@@ -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
+14
View File
@@ -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: