[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CVRPNJB3MYF7RDFNKDS7AP":3,"skill-same:01M7CVRPNJB3MYF7RDFNKDS7AP":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M7CVRPNJB3MYF7RDFNKDS7AP","ace-step",null,"Generate, inpaint, and outpaint music with ACE Step on RunComfy via the `runcomfy` CLI. ACE Step is StepFun-AI's open-weights music foundation model — tag-driven composition (genre, mood, instruments), multilingual lyrics with section markers, 5 s to 4 min stereo output, $0.0002–0.0003 per second (≈ 27× cheaper than ElevenLabs Music). Four endpoints: ACE Step text-to-audio (the default), ACE Step 1.5 text-to-audio (50+ language lyrics, refined structured-lyric handling), ACE Step audio-inpaint (regenerate a time range inside an existing track), ACE Step audio-outpaint (extend an existing track before or after). Triggers on \"ace step\", \"ace-step\", \"acestep\", \"ACE music\", \"open music model\", \"cheap AI music\", \"inpaint audio\", \"audio inpaint\", \"extend music\", \"audio outpaint\", \"lengthen track\", \"music with tags\", or any explicit ask to generate or edit music with ACE Step.","om-scogo\u002Fskillsh-scraper","om-scogo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160466840?v=4","01M79AWB6DFVCQ7RK70CS34B96","Om Achrekar","01M79AWB6ZM9SKR8KDH1WSSM22",0,"MIT","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fruncomfy-com-skills\u002Face-step\u002FSkill.md",[],[],"2026-11-15 14:19:17",false,"---\nname: ace-step\ndisplayName: \"ACE Step — Pro Pack on RunComfy\"\nallowed-tools: Bash(runcomfy *)\ndescription: >\n  Generate, inpaint, and outpaint music with ACE Step on RunComfy via\n  the `runcomfy` CLI. ACE Step is StepFun-AI's open-weights music\n  foundation model — tag-driven composition (genre, mood, instruments),\n  multilingual lyrics with section markers, 5 s to 4 min stereo output,\n  $0.0002–0.0003 per second (≈ 27× cheaper than ElevenLabs Music).\n  Four endpoints: ACE Step text-to-audio (the default), ACE Step 1.5\n  text-to-audio (50+ language lyrics, refined structured-lyric\n  handling), ACE Step audio-inpaint (regenerate a time range inside an\n  existing track), ACE Step audio-outpaint (extend an existing track\n  before or after). Triggers on \"ace step\", \"ace-step\", \"acestep\",\n  \"ACE music\", \"open music model\", \"cheap AI music\", \"inpaint audio\",\n  \"audio inpaint\", \"extend music\", \"audio outpaint\", \"lengthen\n  track\", \"music with tags\", or any explicit ask to generate or edit\n  music with ACE Step.\nhomepage: https:\u002F\u002Fwww.runcomfy.com\nlicense: MIT\n---\n\n# ACE Step — Pro Pack on RunComfy\n\nTag-driven music generation, inpainting, and outpainting with StepFun-AI's **ACE Step** open-weights model. Four CLI-reachable endpoints, $0.0002–0.0003 per second of audio, up to 4 minutes per call.\n\n[runcomfy.com](https:\u002F\u002Fwww.runcomfy.com\u002F?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step base](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step 1.5](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step-1.5\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [CLI docs](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Fintroduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n## Install this skill\n\n```bash\nnpx skills add agentspace-so\u002Fruncomfy-agent-skills --skill ace-step -g\n```\n\n## Powered by the RunComfy CLI\n\n**Step 1 — install** (one of, see the `runcomfy-cli` skill for details):\n\n```bash\nnpm i -g @runcomfy\u002Fcli         # global install\nnpx -y @runcomfy\u002Fcli --version # zero-install\n```\n\n**Step 2 — sign in** (or set `RUNCOMFY_TOKEN` env var in CI \u002F containers):\n\n```bash\nruncomfy login\n```\n\n**Step 3 — generate**:\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Ftext-to-audio \\\n  --input '{\"tags\": \"...\"}' \\\n  --output-dir .\u002Fout\n```\n\nCLI deep dive: [`runcomfy-cli`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fruncomfy-cli) skill.\n\n---\n\n## Pick the right endpoint\n\nListed newest first.\n\n**ACE Step 1.5 (text-to-audio)** — `acestep-ai\u002Face-step-1.5\u002Ftext-to-audio`\n> Latest ACE Step generation. **50+ language vocal support**, refined structured-lyric handling, otherwise same shape as base. Slightly higher cost ($0.0003\u002Fs vs $0.0002\u002Fs).\n> Pick for: multilingual lyrics, hero-quality vocal tracks, vocal songs that need clean section structure.\n> Avoid for: cost-sensitive batches where the base model is good enough.\n\n**ACE Step (text-to-audio)** — `acestep-ai\u002Face-step\u002Ftext-to-audio` *(default — cheap & fast)*\n> Original ACE Step. Tag-driven composition, optional lyrics, 5–240 s stereo. $0.0002\u002Fs — ~27× cheaper than ElevenLabs Music.\n> Pick for: high-volume drafts, background music, jingles, game loops, cost-sensitive iteration.\n> Avoid for: maximally polished commercial vocal hooks — try **ACE Step 1.5** or **ElevenLabs Music** for those.\n\n**ACE Step (audio-inpaint)** — `acestep-ai\u002Face-step\u002Faudio-inpaint`\n> Regenerate a **time range** inside an existing track (not mask-based; uses `start_time` \u002F `end_time` in seconds, each anchored to track start or end).\n> Pick for: fix a bad chorus in the middle, swap the bridge, replace a 20 s section without re-rendering the whole song.\n> Avoid for: edits that aren't time-bounded — those don't fit the schema.\n\n**ACE Step (audio-outpaint)** — `acestep-ai\u002Face-step\u002Faudio-outpaint`\n> Extend an existing track **bidirectionally** — add intro before, outro after, or both.\n> Pick for: lengthening a 30 s draft into a 2 min cut, adding a fade-in, building a longer arrangement around an existing hook.\n> Avoid for: extending a track past 4 min total — chain calls instead.\n\n---\n\n## Route 1: ACE Step text-to-audio (default)\n\n**Model**: `acestep-ai\u002Face-step\u002Ftext-to-audio` (or `acestep-ai\u002Face-step-1.5\u002Ftext-to-audio` for the 1.5 variant)\n\n### Schema (both variants — same shape)\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `tags` | string | yes | — | **Comma-separated** genre \u002F mood \u002F instrument tags. Drives composition |\n| `lyrics` | string | no | — | Vocal content. Use section markers `[Verse]`, `[Chorus]`, `[Bridge]`. Use `[inst]` or `[instrumental]` for no vocals |\n| `duration` | int | no | `60` | Audio length in seconds. **5–240** (max 4 min per call) |\n| `seed` | int | no | `-1` | Reproducibility; `-1` randomizes |\n\n**Pricing**: ACE Step $0.0002\u002Fs · ACE Step 1.5 $0.0003\u002Fs. 60 s ≈ $0.012 \u002F $0.018; 240 s ≈ $0.048 \u002F $0.072.\n\n### Invoke\n\n**Tag-driven instrumental:**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Ftext-to-audio \\\n  --input '{\n    \"tags\": \"lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM\",\n    \"lyrics\": \"[inst]\",\n    \"duration\": 90\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Full vocal song with structure (use 1.5 for multilingual):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step-1.5\u002Ftext-to-audio \\\n  --input '{\n    \"tags\": \"indie pop, anthemic, electric guitar, driving drums, female vocal, 120 BPM\",\n    \"lyrics\": \"[Verse]\\nChalk on the palms, laces double-knotted\\nMorning on the ridge, the sun is rising\\n[Chorus]\\nWe rise, we strike, we never fade out\\nWe rise, we strike, we sing it loud\\n[Bridge]\\nSoft piano breakdown\\n[Outro]\\nFull band, fade\",\n    \"duration\": 60\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Prompting tips\n\n- **Tags do the heavy lifting** — be specific: `\"lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM\"` beats `\"chill music\"`.\n- **Include BPM** in tags when it matters — ACE respects tempo language.\n- **Lyrics with section markers**: `[Verse]`, `[Chorus]`, `[Bridge]`, `[Outro]`. Keep meter consistent across lines.\n- **Instrumental shortcut**: `\"lyrics\": \"[inst]\"` or `\"[instrumental]\"`. Belt-and-suspenders: also say \"no vocals\" in tags.\n- **Multilingual vocals**: ACE Step 1.5 covers 50+ languages. Write lyrics directly in the target language; tag the language too (`\"japanese vocal, j-pop\"`).\n- **Fix the seed** for reproducibility (`\"seed\": 42`); use `-1` to explore variations.\n- **Cheap draft → polish**: ACE Step at 5–10× lower cost is great for iterating tags before committing to a long render.\n\n---\n\n## Route 2: ACE Step audio-inpaint\n\n**Model**: `acestep-ai\u002Face-step\u002Faudio-inpaint`\n**Catalog**: [audio-inpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Faudio-inpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `audio` | string | yes | — | HTTPS URL to MP3 \u002F WAV \u002F FLAC. Up to 60 min |\n| `tags` | string | yes | — | Comma-separated tags steering the regenerated segment |\n| `start_time` | float | no | — | Start of editable segment, in seconds (0–240) |\n| `start_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `start_time` |\n| `end_time` | float | no | `30` | End of editable segment, in seconds (0–240) |\n| `end_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `end_time` |\n| `lyrics` | string | no | — | Lyrics for the regenerated segment. Blank = model writes; `[inst]` = no vocals |\n| `seed` | int | no | `-1` | Reproducibility |\n\n**No mask** — region is defined purely by `start_time` \u002F `end_time` (each anchorable to track start or end).\n\n### Invoke\n\n**Replace 20–40 s of a track with a new bridge:**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-inpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Foriginal-track.mp3\",\n    \"tags\": \"indie pop, breakdown, piano only, soft, no drums\",\n    \"start_time\": 20,\n    \"end_time\": 40,\n    \"lyrics\": \"[inst]\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Anchor end relative to track end (rewrite the last 15 s):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-inpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Fsong.mp3\",\n    \"tags\": \"indie pop, fade, soft, ambient pad\",\n    \"start_time\": 15,\n    \"start_time_relative_to\": \"end\",\n    \"end_time\": 0,\n    \"end_time_relative_to\": \"end\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Tips\n\n- **Match the surrounding tags** — if the original is \"indie pop, electric guitar, 120 BPM\", the inpaint segment should share enough of the tags to blend, not contrast.\n- **Inpaint window is up to ~4 min** even on a 60-min source — pick a focused range, not the whole track.\n- **Use `_relative_to: \"end\"`** to target the outro\u002Flast seconds without computing exact timestamps.\n\n---\n\n## Route 3: ACE Step audio-outpaint\n\n**Model**: `acestep-ai\u002Face-step\u002Faudio-outpaint`\n**Catalog**: [audio-outpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Faudio-outpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `audio` | string | yes | — | HTTPS URL to MP3 \u002F WAV \u002F FLAC. Up to 60 min |\n| `tags` | string | yes | — | Tags steering the extended sections |\n| `extend_before_duration` | float | no | `0` | Seconds of new audio **before** the original (0–240) |\n| `extend_after_duration` | float | no | `30` | Seconds of new audio **after** the original (0–240) |\n| `lyrics` | string | no | — | Optional lyrics for extended sections |\n| `seed` | int | no | `-1` | Reproducibility |\n\n### Invoke\n\n**Extend a 30 s hook into a 2 min cut (add 30 s intro + 60 s outro):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-outpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Fhook-30s.mp3\",\n    \"tags\": \"indie pop, electric guitar, drums, build-up before chorus, fade outro\",\n    \"extend_before_duration\": 30,\n    \"extend_after_duration\": 60,\n    \"lyrics\": \"[inst]\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Add only a fade-out (no pre-extension):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-outpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Ftrack.mp3\",\n    \"tags\": \"ambient pad, soft fade, low volume tail\",\n    \"extend_before_duration\": 0,\n    \"extend_after_duration\": 20\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Tips\n\n- **Tags describe the extension, not the original** — what should the new section sound like?\n- **Bidirectional in one call** — set both `extend_before_duration` and `extend_after_duration` to add intro + outro in one go.\n- **Don't exceed 4 min total** — if original is 3 min, you can add max 1 min combined.\n\n---\n\n## When to pick ACE Step vs ElevenLabs Music\n\nACE Step and ElevenLabs Music are different tools:\n\n| Dimension | ACE Step | ElevenLabs Music |\n|---|---|---|\n| **Cost** | $0.0002–0.0003 \u002F s | $0.0083 \u002F s (~27× more) |\n| **License** | Open-weights (Apache 2.0) | Commercial, ElevenLabs-hosted |\n| **Multilingual vocals** | 50+ languages (1.5 variant) | Strong multilingual support |\n| **Structured lyrics** | `[Verse]\u002F[Chorus]\u002F[Bridge]` markers | `[Verse]\u002F[Chorus]\u002F[Bridge]` markers |\n| **Max duration \u002F call** | 240 s (4 min) | 300 s (5 min) |\n| **Inpaint \u002F outpaint** | **Yes** (time-range based) | No |\n| **Tag-driven composition** | **Yes** (tags is required field) | Style is part of free-text prompt |\n| **Best for** | Cost-sensitive batches, drafts, inpaint\u002Foutpaint workflows, open-weights pipelines | Premium vocal song hooks, polished commercial cuts |\n\nCheap draft pattern: draft tag combos with ACE Step → lock vibe → final render on ElevenLabs Music if a polished commercial cut is needed.\n\nFor the routing skill that picks between them automatically based on intent, see [`ai-music`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fai-music) once it ships.\n\n---\n\n## Common patterns\n\n### Cost-sensitive background music library\n- **Route 1 (ACE Step base)** with varied tag combos, 60–90 s each, `[inst]`\n\n### Multilingual launch (same song, many languages)\n- **Route 1 (ACE Step 1.5)** with identical tags, swap `lyrics` per language\n\n### Section repair (bad chorus → new chorus)\n- **Route 2 (audio-inpaint)** with `start_time` \u002F `end_time` around the bad section, tags matching the song style\n\n### Hook → full track\n- **Route 3 (audio-outpaint)** adds intro before + outro after a tight 30 s hook\n\n### Game loop bed\n- **Route 1 (ACE Step base)** with \"seamless loop, consistent groove\" in tags, 60–120 s\n\n---\n\n## Browse the full catalog\n\n- [ACE Step on RunComfy](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — all four endpoints (base t2a, 1.5 t2a, inpaint, outpaint)\n- [All RunComfy models](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — image, video, and audio endpoints\n- [docs.runcomfy.com\u002Fcli](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Fintroduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — CLI install, authentication, troubleshooting\n\n---\n\n## Exit codes\n\n| code | meaning |\n|---|---|\n| 0  | success |\n| 64 | bad CLI args |\n| 65 | bad input JSON \u002F schema mismatch |\n| 69 | upstream 5xx |\n| 75 | retryable: timeout \u002F 429 |\n| 77 | not signed in or token rejected |\n\nFull reference: [docs.runcomfy.com\u002Fcli\u002Ftroubleshooting](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Ftroubleshooting?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step).\n\n## How it works\n\nThe skill picks one of the four ACE Step endpoints based on the user's intent — generate from scratch (t2a base or 1.5), regenerate a time range (inpaint), or extend the canvas (outpaint) — and invokes `runcomfy run` with the matching JSON body. The CLI POSTs to the RunComfy Model API, polls request status, and downloads the generated audio file into `--output-dir`.\n\n## Security & Privacy\n\n- **Install via verified package manager only.** Use `npm i -g @runcomfy\u002Fcli` or `npx -y @runcomfy\u002Fcli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf** — if the operator wants the curl-pipe path documented at `docs.runcomfy.com\u002Fcli\u002Finstall`, they should review the script first.\n- **Token storage**: `runcomfy login` writes the API token to `~\u002F.config\u002Fruncomfy\u002Ftoken.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI \u002F containers. Never echo the token into a prompt, log it, or check it in.\n- **Input boundary (shell injection)**: prompts and audio URLs are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content; it transmits the JSON body directly to the Model API over HTTPS. **No shell-injection surface from prompt content**.\n- **Indirect prompt injection (third-party content)**: source `audio` URLs for inpaint \u002F outpaint are **untrusted** — embedded steganographic instructions or unusual EXIF can influence generation. Agent mitigations:\n  - Ingest only audio URLs the **user explicitly provided** for this task.\n  - When the output diverges from the prompt, suspect the source audio.\n- **Lyrics provenance**: if the user supplies lyrics, confirm they have the rights. Generating music around copyrighted lyrics is the operator's responsibility.\n- **Outbound endpoints (allowlist)**: only `model-api.runcomfy.net` and `*.runcomfy.net` \u002F `*.runcomfy.com`. No telemetry, no callbacks.\n- **Generated-file size cap**: the CLI aborts any single download > 2 GiB.\n- **Scope of bash usage**: declared `allowed-tools: Bash(runcomfy *)`. The skill only invokes `runcomfy \u003Csubcommand>`; install lines are one-time operator setup.\n\n## See also\n\n- [`runcomfy-cli`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fruncomfy-cli) — the underlying CLI\n- [`elevenlabs-music-generation`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Felevenlabs-music-generation) — premium-tier music alternative\n- [`ai-music`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fai-music) — router that picks between ACE Step and ElevenLabs Music based on intent\n- [All RunComfy audio models](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — the full audio catalog\n","# ACE Step — Pro Pack on RunComfy\n\nTag-driven music generation, inpainting, and outpainting with StepFun-AI's **ACE Step** open-weights model. Four CLI-reachable endpoints, $0.0002–0.0003 per second of audio, up to 4 minutes per call.\n\n[runcomfy.com](https:\u002F\u002Fwww.runcomfy.com\u002F?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step base](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step 1.5](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step-1.5\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [CLI docs](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Fintroduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n## Install this skill\n\n```bash\nnpx skills add agentspace-so\u002Fruncomfy-agent-skills --skill ace-step -g\n```\n\n## Powered by the RunComfy CLI\n\n**Step 1 — install** (one of, see the `runcomfy-cli` skill for details):\n\n```bash\nnpm i -g @runcomfy\u002Fcli         # global install\nnpx -y @runcomfy\u002Fcli --version # zero-install\n```\n\n**Step 2 — sign in** (or set `RUNCOMFY_TOKEN` env var in CI \u002F containers):\n\n```bash\nruncomfy login\n```\n\n**Step 3 — generate**:\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Ftext-to-audio \\\n  --input '{\"tags\": \"...\"}' \\\n  --output-dir .\u002Fout\n```\n\nCLI deep dive: [`runcomfy-cli`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fruncomfy-cli) skill.\n\n---\n\n## Pick the right endpoint\n\nListed newest first.\n\n**ACE Step 1.5 (text-to-audio)** — `acestep-ai\u002Face-step-1.5\u002Ftext-to-audio`\n> Latest ACE Step generation. **50+ language vocal support**, refined structured-lyric handling, otherwise same shape as base. Slightly higher cost ($0.0003\u002Fs vs $0.0002\u002Fs).\n> Pick for: multilingual lyrics, hero-quality vocal tracks, vocal songs that need clean section structure.\n> Avoid for: cost-sensitive batches where the base model is good enough.\n\n**ACE Step (text-to-audio)** — `acestep-ai\u002Face-step\u002Ftext-to-audio` *(default — cheap & fast)*\n> Original ACE Step. Tag-driven composition, optional lyrics, 5–240 s stereo. $0.0002\u002Fs — ~27× cheaper than ElevenLabs Music.\n> Pick for: high-volume drafts, background music, jingles, game loops, cost-sensitive iteration.\n> Avoid for: maximally polished commercial vocal hooks — try **ACE Step 1.5** or **ElevenLabs Music** for those.\n\n**ACE Step (audio-inpaint)** — `acestep-ai\u002Face-step\u002Faudio-inpaint`\n> Regenerate a **time range** inside an existing track (not mask-based; uses `start_time` \u002F `end_time` in seconds, each anchored to track start or end).\n> Pick for: fix a bad chorus in the middle, swap the bridge, replace a 20 s section without re-rendering the whole song.\n> Avoid for: edits that aren't time-bounded — those don't fit the schema.\n\n**ACE Step (audio-outpaint)** — `acestep-ai\u002Face-step\u002Faudio-outpaint`\n> Extend an existing track **bidirectionally** — add intro before, outro after, or both.\n> Pick for: lengthening a 30 s draft into a 2 min cut, adding a fade-in, building a longer arrangement around an existing hook.\n> Avoid for: extending a track past 4 min total — chain calls instead.\n\n---\n\n## Route 1: ACE Step text-to-audio (default)\n\n**Model**: `acestep-ai\u002Face-step\u002Ftext-to-audio` (or `acestep-ai\u002Face-step-1.5\u002Ftext-to-audio` for the 1.5 variant)\n\n### Schema (both variants — same shape)\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `tags` | string | yes | — | **Comma-separated** genre \u002F mood \u002F instrument tags. Drives composition |\n| `lyrics` | string | no | — | Vocal content. Use section markers `[Verse]`, `[Chorus]`, `[Bridge]`. Use `[inst]` or `[instrumental]` for no vocals |\n| `duration` | int | no | `60` | Audio length in seconds. **5–240** (max 4 min per call) |\n| `seed` | int | no | `-1` | Reproducibility; `-1` randomizes |\n\n**Pricing**: ACE Step $0.0002\u002Fs · ACE Step 1.5 $0.0003\u002Fs. 60 s ≈ $0.012 \u002F $0.018; 240 s ≈ $0.048 \u002F $0.072.\n\n### Invoke\n\n**Tag-driven instrumental:**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Ftext-to-audio \\\n  --input '{\n    \"tags\": \"lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM\",\n    \"lyrics\": \"[inst]\",\n    \"duration\": 90\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Full vocal song with structure (use 1.5 for multilingual):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step-1.5\u002Ftext-to-audio \\\n  --input '{\n    \"tags\": \"indie pop, anthemic, electric guitar, driving drums, female vocal, 120 BPM\",\n    \"lyrics\": \"[Verse]\\nChalk on the palms, laces double-knotted\\nMorning on the ridge, the sun is rising\\n[Chorus]\\nWe rise, we strike, we never fade out\\nWe rise, we strike, we sing it loud\\n[Bridge]\\nSoft piano breakdown\\n[Outro]\\nFull band, fade\",\n    \"duration\": 60\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Prompting tips\n\n- **Tags do the heavy lifting** — be specific: `\"lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM\"` beats `\"chill music\"`.\n- **Include BPM** in tags when it matters — ACE respects tempo language.\n- **Lyrics with section markers**: `[Verse]`, `[Chorus]`, `[Bridge]`, `[Outro]`. Keep meter consistent across lines.\n- **Instrumental shortcut**: `\"lyrics\": \"[inst]\"` or `\"[instrumental]\"`. Belt-and-suspenders: also say \"no vocals\" in tags.\n- **Multilingual vocals**: ACE Step 1.5 covers 50+ languages. Write lyrics directly in the target language; tag the language too (`\"japanese vocal, j-pop\"`).\n- **Fix the seed** for reproducibility (`\"seed\": 42`); use `-1` to explore variations.\n- **Cheap draft → polish**: ACE Step at 5–10× lower cost is great for iterating tags before committing to a long render.\n\n---\n\n## Route 2: ACE Step audio-inpaint\n\n**Model**: `acestep-ai\u002Face-step\u002Faudio-inpaint`\n**Catalog**: [audio-inpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Faudio-inpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `audio` | string | yes | — | HTTPS URL to MP3 \u002F WAV \u002F FLAC. Up to 60 min |\n| `tags` | string | yes | — | Comma-separated tags steering the regenerated segment |\n| `start_time` | float | no | — | Start of editable segment, in seconds (0–240) |\n| `start_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `start_time` |\n| `end_time` | float | no | `30` | End of editable segment, in seconds (0–240) |\n| `end_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `end_time` |\n| `lyrics` | string | no | — | Lyrics for the regenerated segment. Blank = model writes; `[inst]` = no vocals |\n| `seed` | int | no | `-1` | Reproducibility |\n\n**No mask** — region is defined purely by `start_time` \u002F `end_time` (each anchorable to track start or end).\n\n### Invoke\n\n**Replace 20–40 s of a track with a new bridge:**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-inpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Foriginal-track.mp3\",\n    \"tags\": \"indie pop, breakdown, piano only, soft, no drums\",\n    \"start_time\": 20,\n    \"end_time\": 40,\n    \"lyrics\": \"[inst]\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Anchor end relative to track end (rewrite the last 15 s):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-inpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Fsong.mp3\",\n    \"tags\": \"indie pop, fade, soft, ambient pad\",\n    \"start_time\": 15,\n    \"start_time_relative_to\": \"end\",\n    \"end_time\": 0,\n    \"end_time_relative_to\": \"end\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Tips\n\n- **Match the surrounding tags** — if the original is \"indie pop, electric guitar, 120 BPM\", the inpaint segment should share enough of the tags to blend, not contrast.\n- **Inpaint window is up to ~4 min** even on a 60-min source — pick a focused range, not the whole track.\n- **Use `_relative_to: \"end\"`** to target the outro\u002Flast seconds without computing exact timestamps.\n\n---\n\n## Route 3: ACE Step audio-outpaint\n\n**Model**: `acestep-ai\u002Face-step\u002Faudio-outpaint`\n**Catalog**: [audio-outpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Faudio-outpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `audio` | string | yes | — | HTTPS URL to MP3 \u002F WAV \u002F FLAC. Up to 60 min |\n| `tags` | string | yes | — | Tags steering the extended sections |\n| `extend_before_duration` | float | no | `0` | Seconds of new audio **before** the original (0–240) |\n| `extend_after_duration` | float | no | `30` | Seconds of new audio **after** the original (0–240) |\n| `lyrics` | string | no | — | Optional lyrics for extended sections |\n| `seed` | int | no | `-1` | Reproducibility |\n\n### Invoke\n\n**Extend a 30 s hook into a 2 min cut (add 30 s intro + 60 s outro):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-outpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Fhook-30s.mp3\",\n    \"tags\": \"indie pop, electric guitar, drums, build-up before chorus, fade outro\",\n    \"extend_before_duration\": 30,\n    \"extend_after_duration\": 60,\n    \"lyrics\": \"[inst]\"\n  }' \\\n  --output-dir .\u002Fout\n```\n\n**Add only a fade-out (no pre-extension):**\n\n```bash\nruncomfy run acestep-ai\u002Face-step\u002Faudio-outpaint \\\n  --input '{\n    \"audio\": \"https:\u002F\u002Fyour-cdn.example\u002Ftrack.mp3\",\n    \"tags\": \"ambient pad, soft fade, low volume tail\",\n    \"extend_before_duration\": 0,\n    \"extend_after_duration\": 20\n  }' \\\n  --output-dir .\u002Fout\n```\n\n### Tips\n\n- **Tags describe the extension, not the original** — what should the new section sound like?\n- **Bidirectional in one call** — set both `extend_before_duration` and `extend_after_duration` to add intro + outro in one go.\n- **Don't exceed 4 min total** — if original is 3 min, you can add max 1 min combined.\n\n---\n\n## When to pick ACE Step vs ElevenLabs Music\n\nACE Step and ElevenLabs Music are different tools:\n\n| Dimension | ACE Step | ElevenLabs Music |\n|---|---|---|\n| **Cost** | $0.0002–0.0003 \u002F s | $0.0083 \u002F s (~27× more) |\n| **License** | Open-weights (Apache 2.0) | Commercial, ElevenLabs-hosted |\n| **Multilingual vocals** | 50+ languages (1.5 variant) | Strong multilingual support |\n| **Structured lyrics** | `[Verse]\u002F[Chorus]\u002F[Bridge]` markers | `[Verse]\u002F[Chorus]\u002F[Bridge]` markers |\n| **Max duration \u002F call** | 240 s (4 min) | 300 s (5 min) |\n| **Inpaint \u002F outpaint** | **Yes** (time-range based) | No |\n| **Tag-driven composition** | **Yes** (tags is required field) | Style is part of free-text prompt |\n| **Best for** | Cost-sensitive batches, drafts, inpaint\u002Foutpaint workflows, open-weights pipelines | Premium vocal song hooks, polished commercial cuts |\n\nCheap draft pattern: draft tag combos with ACE Step → lock vibe → final render on ElevenLabs Music if a polished commercial cut is needed.\n\nFor the routing skill that picks between them automatically based on intent, see [`ai-music`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fai-music) once it ships.\n\n---\n\n## Common patterns\n\n### Cost-sensitive background music library\n- **Route 1 (ACE Step base)** with varied tag combos, 60–90 s each, `[inst]`\n\n### Multilingual launch (same song, many languages)\n- **Route 1 (ACE Step 1.5)** with identical tags, swap `lyrics` per language\n\n### Section repair (bad chorus → new chorus)\n- **Route 2 (audio-inpaint)** with `start_time` \u002F `end_time` around the bad section, tags matching the song style\n\n### Hook → full track\n- **Route 3 (audio-outpaint)** adds intro before + outro after a tight 30 s hook\n\n### Game loop bed\n- **Route 1 (ACE Step base)** with \"seamless loop, consistent groove\" in tags, 60–120 s\n\n---\n\n## Browse the full catalog\n\n- [ACE Step on RunComfy](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Facestep-ai\u002Face-step\u002Ftext-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — all four endpoints (base t2a, 1.5 t2a, inpaint, outpaint)\n- [All RunComfy models](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — image, video, and audio endpoints\n- [docs.runcomfy.com\u002Fcli](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Fintroduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — CLI install, authentication, troubleshooting\n\n---\n\n## Exit codes\n\n| code | meaning |\n|---|---|\n| 0  | success |\n| 64 | bad CLI args |\n| 65 | bad input JSON \u002F schema mismatch |\n| 69 | upstream 5xx |\n| 75 | retryable: timeout \u002F 429 |\n| 77 | not signed in or token rejected |\n\nFull reference: [docs.runcomfy.com\u002Fcli\u002Ftroubleshooting](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Ftroubleshooting?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step).\n\n## How it works\n\nThe skill picks one of the four ACE Step endpoints based on the user's intent — generate from scratch (t2a base or 1.5), regenerate a time range (inpaint), or extend the canvas (outpaint) — and invokes `runcomfy run` with the matching JSON body. The CLI POSTs to the RunComfy Model API, polls request status, and downloads the generated audio file into `--output-dir`.\n\n## Security & Privacy\n\n- **Install via verified package manager only.** Use `npm i -g @runcomfy\u002Fcli` or `npx -y @runcomfy\u002Fcli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf** — if the operator wants the curl-pipe path documented at `docs.runcomfy.com\u002Fcli\u002Finstall`, they should review the script first.\n- **Token storage**: `runcomfy login` writes the API token to `~\u002F.config\u002Fruncomfy\u002Ftoken.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI \u002F containers. Never echo the token into a prompt, log it, or check it in.\n- **Input boundary (shell injection)**: prompts and audio URLs are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content; it transmits the JSON body directly to the Model API over HTTPS. **No shell-injection surface from prompt content**.\n- **Indirect prompt injection (third-party content)**: source `audio` URLs for inpaint \u002F outpaint are **untrusted** — embedded steganographic instructions or unusual EXIF can influence generation. Agent mitigations:\n  - Ingest only audio URLs the **user explicitly provided** for this task.\n  - When the output diverges from the prompt, suspect the source audio.\n- **Lyrics provenance**: if the user supplies lyrics, confirm they have the rights. Generating music around copyrighted lyrics is the operator's responsibility.\n- **Outbound endpoints (allowlist)**: only `model-api.runcomfy.net` and `*.runcomfy.net` \u002F `*.runcomfy.com`. No telemetry, no callbacks.\n- **Generated-file size cap**: the CLI aborts any single download > 2 GiB.\n- **Scope of bash usage**: declared `allowed-tools: Bash(runcomfy *)`. The skill only invokes `runcomfy \u003Csubcommand>`; install lines are one-time operator setup.\n\n## See also\n\n- [`runcomfy-cli`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fruncomfy-cli) — the underlying CLI\n- [`elevenlabs-music-generation`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Felevenlabs-music-generation) — premium-tier music alternative\n- [`ai-music`](https:\u002F\u002Fwww.skills.sh\u002Fagentspace-so\u002Fruncomfy-agent-skills\u002Fai-music) — router that picks between ACE Step and ElevenLabs Music based on intent\n- [All RunComfy audio models](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) — the full audio catalog\n",{"name":5,"license":15,"homepage":24,"description":25,"displayName":26,"allowed-tools":27},"https:\u002F\u002Fwww.runcomfy.com","Generate, inpaint, and outpaint music with ACE Step on RunComfy via the `runcomfy` CLI. ACE Step is StepFun-AI's open-weights music foundation model — tag-driven composition (genre, mood, instruments), multilingual lyrics with section markers, 5 s to 4 min stereo output, $0.0002–0.0003 per second (≈ 27× cheaper than ElevenLabs Music). Four endpoints: ACE Step text-to-audio (the default), ACE Step 1.5 text-to-audio (50+ language lyrics, refined structured-lyric handling), ACE Step audio-inpaint (regenerate a time range inside an existing track), ACE Step audio-outpaint (extend an existing track before or after). Triggers on \"ace step\", \"ace-step\", \"acestep\", \"ACE music\", \"open music model\", \"cheap AI music\", \"inpaint audio\", \"audio inpaint\", \"extend music\", \"audio outpaint\", \"lengthen track\", \"music with tags\", or any explicit ask to generate or edit music with ACE Step.\n","ACE Step — Pro Pack on RunComfy","Bash(runcomfy *)","main","8859218955d9504cd18b59e7892100718039d3b4","data\u002Fskills\u002Fruncomfy-com-skills\u002Face-step",1,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper","https:\u002F\u002Fgithub.com\u002Fom-scogo","SDE-1 @ Scogo ","2026-07-18 12:22:46",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add om-scogo\u002Fskillsh-scraper --skill ace-step",{"tool":42,"command":43},"bunx","bunx skills add om-scogo\u002Fskillsh-scraper --skill ace-step",{"tool":45,"command":46},"pnpm","pnpm dlx skills add om-scogo\u002Fskillsh-scraper --skill ace-step","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fruncomfy-com-skills\u002Face-step\u002FSkill.md",true,[50],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"metadata.json","REFERENCE","参考文档",410,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fruncomfy-com-skills\u002Face-step\u002Fmetadata.json",[57,64,69,76,81,88],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M7D6MC9FAAEV4CMNYX8W7JTG","arxiv-search","Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002Fskills\u002Farxiv-search\u002FSKILL.md",[],[],{"skillNo":65,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M7D6M85CKKN87TA98VCQV4H7","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002FSkill.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M7D4ZTCS4DR3CE4JY06X84T2","working-with-legacy-code","Safely change and test untested codebases using Feathers' \"Working Effectively with Legacy Code\". Use when the user mentions \"legacy code\", \"no tests\", \"untested codebase\", \"how do I test this\", \"seams\", \"characterization tests\", \"golden master\", \"sprout method\", \"afraid to change this code\", \"monster method\", \"dependency breaking\", or \"inherited a messy codebase\". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout\u002Fwrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002Fworking-with-legacy-code\u002FSKILL.md",[],[],{"skillNo":77,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7D4ZHZKJD2RSNGAF63V14P4","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002FSkill.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7D4ZB4CJBFW5JE67CPH2QRV","web-typography","Select, pair, and implement typefaces for web projects. Use when the user mentions \"font pairing\", \"which typeface\", \"line height\", \"responsive typography\", \"web font loading\", \"type hierarchy\", \"variable fonts\", \"FOUT\u002FFOIT\", \"typographic scale\", or \"the text is hard to read\". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002Fweb-typography\u002FSKILL.md",[],[],{"skillNo":89,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M7D4Z4MVYVY3NMJ18BNV6WNA","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002FSkill.md",[],[]]