Skip to main content

create-score

Generate scene-specific music using ACE-Step 1.5 via Dockerized FastAPI. Supports reference audio for theme continuity across scenes. Integrates with Federated Taxonomy (HMT) for multi-hop graph traversal in /memory.

معلومات المصدر

المستودع
grahama1970/agent-stack-public
آخر نشاط في المصدر
٢٤ سبتمبر ٢٠٢٦ في ١٥:٥١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
20 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
create-score
description
Generate scene-specific music using ACE-Step 1.5 via Dockerized FastAPI. Supports reference audio for theme continuity across scenes. Integrates with Federated Taxonomy (HMT) for multi-hop graph traversal in /memory.
allowed-tools
["Bash","Read","Write"]
triggers
["create score","score scene","generate music","film score","ace step","scene music","soundtrack"]
metadata
{"short-description":"Scene music generation via ACE-Step (Docker + HMT)","author":"Horus","version":"0.1.0"}
provides
["create-score"]
composes
["create-cast","create-storyboard","create-sound-design","create-story","task-monitor","agentic-evals"]
disciplines
["content-creation","voice-audio"]
# create-score Generate scene-specific music for films using ACE-Step 1.5 via a Dockerized FastAPI service. Designed to be called per-scene by `/create-movie`. ## Philosophy Music scoring is the emotional backbone of film. This skill generates original music that matches scene context, using Federated Taxonomy (HMT) bridge attributes to ensure thematic coherence across scenes. ## Quick Start ```bash cd .pi/skills/create-score # Start the ACE-Step Docker service (persistent) ./run.sh up # Generate a scene score ./run.sh generate \ --prompt "cinematic tension, strings and low brass, building suspense" \ --duration-s 30 \ --seed 42 \ --out scene_01.wav # Generate with bridge hints (HMT-aware) ./run.sh generate \ --prompt "battle preparation" \ --bridges Resilience,Precision \ --episode Siege_of_Terra \ --duration-s 45 \ --out battle_prep.wav # Use reference audio for theme continuity ./run.sh generate \ --prompt "same theme, higher intensity" \ --reference-audio outputs/main_theme.wav \ --duration-s 30 \ --out scene_02.wav # Stop the service when done ./run.sh down ``` ## CLI Commands ### `up` - Start Docker Service ```bash ./run.sh up ``` Builds and starts the ACE-Step Docker service. Waits for health check before returning. ### `down` - Stop Docker Service ```bash ./run.sh down ``` Stops the ACE-Step Docker service. ### `generate` - Generate Scene Music ```bash ./run.sh generate [OPTIONS] ``` **Required:** | Option | Description | |--------|-------------| | `--prompt` | Text prompt describing desired music | | `--out` | Output file path | **Generation:** | Option | Default | Description | |--------|---------|-------------| | `--duration-s` | 30 | Duration in seconds (1-300) | | `--steps` | 27 | Inference steps (more = higher quality, slower) | | `--seed` | -1 | Seed for reproducibility (-1 = random) | | `--cfg-scale` | 4.0 | Guidance scale (higher = more prompt adherence) | | `--format` | wav | Output format: wav, mp3, flac | **HMT Integration:** | Option | Description | |--------|-------------| | `--bridges` | Comma-separated bridge attributes (Resilience,Corruption,etc.) | | `--episode` | Episode association for memory storage | | `--store-memory/--no-store-memory` | Store in /memory (default: true) | **Conditioning:** | Option | Description | |--------|-------------| | `--reference-audio` | Reference audio for style/theme continuity | | `--tags` | Comma-separated genre/style tags | | `--instrumental/--no-instrumental` | Instrumental only (default: true) | ## Python API For integration with `/create-movie`: ```python import sys sys.path.insert(0, ".pi/skills/create-score") from create_score import generate_scene_score from pathlib import Path result = generate_scene_score( prompt="battle preparation, epic strings, building tension", duration_s=30, output_path=Path("./outputs/battle_scene.wav"), bridges=["Resilience", "Precision"], episode="Siege_of_Terra", reference_audio=Path("./outputs/main_theme.wav"), seed=42, format="wav", store_memory=True, ) print(result["output_path"]) # Path to generated audio print(result["hmt"]) # Full HMT taxonomy print(result["episode_association"]) # Episode link ``` ### Return Value ```python { "output_path": Path("outputs/battle_scene.wav"), "prompt": "battle preparation, epic strings, triumphant, heroic", # augmented "seed": 42, "duration_s": 30.0, "hmt": { "bridge_attributes": ["Resilience", "Precision"], "collection_tags": { "domain": ["Orchestral_Epic"], "thematic_weight": ["Epic"], "function": ["Score"] }, "tactical_tags": ["Score", "Amplify"], "episodic_associations": ["Siege_of_Terra"], "confidence": 0.85 }, "episode_association": "Siege_of_Terra" } ``` ## HMT Integration This skill uses the Federated Taxonomy (HMT) to: 1. **Extract bridges from scene context** - Automatically detect thematic bridges from prompts 2. **Augment prompts** - Add bridge-appropriate musical keywords 3. **Tag output** - Generated scores include full HMT metadata 4. **Enable multi-hop retrieval** - Query scores by bridge, episode, or tactical use ### Bridge to Music Mapping | Bridge | Musical Keywords | |--------|------------------| | **Precision** | polyrhythmic, technical, algorithmic patterns, complex | | **Resilience** | triumphant, epic strings, powerful brass, heroic | | **Fragility** | delicate, acoustic, tender piano, breaking | | **Corruption** | industrial, distorted, harsh textures, oppressive | | **Loyalty** | ceremonial, choral, sacred tones, anthemic | | **Stealth** | ambient, drone, minimal, atmospheric pads | ### Episode Associations | Episode | Primary Bridge | Music Character | |---------|----------------|-----------------| | Siege_of_Terra | Resilience | Defiant, enduring | | Davin_Corruption | Corruption | Dark, oppressive | | Webway_Collapse | Fragility | Breaking, tragic | | Mournival_Oath | Loyalty | Ceremonial, solemn | | Iron_Cage | Precision | Calculated, relentless | ## Reference Audio Continuity For thematic coherence across scenes: ```bash # Scene 1: Establish main theme ./run.sh generate \ --prompt "heroic main theme, brass fanfare" \ --duration-s 30 \ --seed 42 \ --out main_theme.wav # Scene 2: Variation on theme ./run.sh generate \ --prompt "same theme, quieter, strings only" \ --reference-audio main_theme.wav \ --duration-s 20 \ --out scene_02.wav # Scene 3: Climactic return ./run.sh generate \ --prompt "theme returns, full orchestra, triumphant" \ --reference-audio main_theme.wav \ --duration-s 45 \ --out climax.wav ``` ## Hardware Requirements | Component | Minimum | Recommended | |-----------|---------|-------------| | GPU VRAM | 16GB | 24GB (A5000/RTX 4090) | | System RAM | 32GB | 64GB+ | | Disk | 50GB | 100GB (model cache) | ### VRAM Usage | Mode | VRAM | Quality | |------|------|---------| | FP8 | ~20GB | High | | FP4 | ~12GB | Good | | BF16 | ~40GB | Maximum (RunPod) | ## Task Monitor Integration All generation jobs are automatically tracked via `/task-monitor`: - **Registry**: Jobs register at `~/.pi/task-monitor/registry.json` - **State File**: Progress written to `create-score/score_task_state.json` - **API Push**: If `TASK_MONITOR_API` is set, pushes to HTTP API ### View Progress ```bash # Via task-monitor TUI cd .pi/skills/task-monitor uv run python monitor.py tui --filter create-score # Via API curl http://localhost:8765/tasks/create-score ``` ### Manual Tracking (Advanced) ```python from create_score import ScoreMonitor monitor = ScoreMonitor(prompt="battle theme", duration_s=30) monitor.start_job(job_id="abc123", seed=42) monitor.update_progress(state="generating", progress_pct=50) monitor.complete_job(output_path=Path("output.wav")) ``` ## Memory Integration Generated scores are automatically stored in `/memory` with scope `horus-filmmaking`: ```bash # Recall scores by bridge /memory recall --bridge Resilience --category music_score # Recall by episode /memory recall --episode Siege_of_Terra --category music_score # Multi-hop: Find lore documents linked to same bridges as a score /memory traverse --from music_score --via bridge --to lore ``` ## Docker Service ### Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `ACE_STEP_PORT` | 8015 | Service port | | `HF_TOKEN` | - | HuggingFace token (for gated models) | ### Health Check ```bash curl http://localhost:8015/healthz # {"ok": true} ``` ### Manual API Access ```bash # Submit generation curl -X POST http://localhost:8015/generate \ -F 'json={"prompt":"test","duration_s":10}' \ | jq .job_id # Poll status curl http://localhost:8015/jobs/{job_id} # Download output curl http://localhost:8015/outputs/{filename} -o output.wav ``` ## Dependencies - Docker with GPU support (NVIDIA Container Toolkit) - Python 3.11+ - uv (for dependency management) ## Related Skills | Skill | Relationship | |-------|--------------| | `/create-movie` | Calls create-score per-scene | | `/memory` | Stores scores with HMT taxonomy | | `/taxonomy` | Provides bridge extraction | | `/consume-music` | Searches existing music (not generated) | | `/discover-music` | Finds reference music for inspiration |
عرض على GitHub