feat: design system overhaul — sidebar, AI chats, settings, brainstorm, color cleanup
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 12s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 12s
- Sidebar: dynamic brand-accent colors, brainstorm section restyled - AI chat general: popup panel with expand/collapse, hides when contextual AI open - AI chat contextual: tabs reordered (Actions first), X close button, height fix - Settings: all tabs restyled, 6 new color presets (sage, terracotta, iron, etc.) - Global color cleanup: emerald/orange hardcoded → brand-accent dynamic - Brainstorm page: orange → brand-accent throughout - PageEntry animation component added to key pages - Floating AI button: bg-brand-accent instead of hardcoded black - i18n: all 15 locales updated with new AI/billing keys - Billing: freemium quota tracking, BYOK, stripe subscription scaffolding - Admin: integrated into new design - AGENTS.md + CLAUDE.md project rules added
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Band Profile Manager
|
||||
|
||||
The Band Profile Manager handles CRUD operations for band identity profiles — the sonic equivalent of a brand book for your musical projects. It captures genre, vocal character, production style, creative boundaries, language, and songwriter voice into persistent YAML profiles stored at `docs/band-profiles/`. These profiles serve as the foundation that the Style Prompt Builder, Lyric Transformer, and Feedback Elicitor draw from to maintain consistency across songs.
|
||||
|
||||
## When to Use Directly vs. Through Mac
|
||||
|
||||
Use this skill directly when you need to manage profiles independently — creating, editing, duplicating, or analyzing writer voice outside of a song-creation workflow. Use Mac (the orchestrating agent) when profile work is part of a larger session that includes building style prompts, transforming lyrics, or refining Suno output.
|
||||
|
||||
## Operations
|
||||
|
||||
### Interactive Mode (default)
|
||||
|
||||
| Operation | Description |
|
||||
|-----------|-------------|
|
||||
| **Create** | Guided conversational discovery to build a complete band profile |
|
||||
| **List** | Show all saved profiles with name, genre, model, language, and vocal/instrumental status |
|
||||
| **Load** | Display a profile in readable format with tier drift detection |
|
||||
| **Edit** | Apply natural language changes to an existing profile |
|
||||
| **Delete** | Remove a profile with explicit confirmation |
|
||||
| **Duplicate** | Clone a profile as a starting point for versioning or forks |
|
||||
| **Analyze Voice** | Extract writer voice patterns from 3-5 writing samples |
|
||||
| **Health Check** | Assess profile completeness and quality with friendly recommendations |
|
||||
|
||||
### Headless Mode (`--headless` or `-H`)
|
||||
|
||||
- `--headless:create` — Create from provided YAML, validate, save
|
||||
- `--headless:validate` — Validate an existing profile against schema
|
||||
- `--headless:load <name>` — Return profile as structured JSON
|
||||
- `--headless:edit <name>` — Apply YAML field overrides to an existing profile
|
||||
- `--headless:delete <name>` — Delete without confirmation
|
||||
- `--headless:duplicate <source> <new_name>` — Copy profile to new name
|
||||
- `--headless` (no subcommand) — List all profiles as JSON array
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Description |
|
||||
|--------|-------------|
|
||||
| `validate-profile.py` | Validates band profile YAML against schema; supports `--derive-filename` for kebab-case naming |
|
||||
| `list-profiles.py` | Scans `docs/band-profiles/` and returns profile summaries; supports `--check` to verify a specific profile |
|
||||
| `tier-features.py` | Returns available/unavailable Suno features for a given tier |
|
||||
| `diff-profiles.py` | Compares two profile YAML files and returns a structured JSON diff |
|
||||
|
||||
## Example Invocation
|
||||
|
||||
```
|
||||
# Interactive
|
||||
"Create a new band profile"
|
||||
"Analyze my writing voice for the midnight-echoes profile"
|
||||
"Health check the velvet-haze profile"
|
||||
|
||||
# Headless
|
||||
--headless:create < profile.yaml
|
||||
--headless:validate --profile midnight-echoes
|
||||
--headless:edit midnight-echoes --field tier=pro
|
||||
```
|
||||
|
||||
## Profiles Storage
|
||||
|
||||
Profiles are stored as YAML files at `docs/band-profiles/{profile-name}.yaml`. The schema is defined in `./references/profile-schema.md`.
|
||||
|
||||
## Part of the Suno Band Manager Module
|
||||
|
||||
This skill is part of the Suno Band Manager module and works with any LLM CLI supporting the [Agent Skills](https://agentskills.io) standard. For the full guided experience, invoke Mac — the orchestrating agent — instead of using this skill directly.
|
||||
@@ -0,0 +1,253 @@
|
||||
# Band Profile Schema
|
||||
|
||||
## YAML Structure
|
||||
|
||||
```yaml
|
||||
# Band Profile — {band_name}
|
||||
# Created: {date}
|
||||
# Last modified: {date}
|
||||
|
||||
name: "Band Name Here"
|
||||
version: 1 # Increment on major sound evolution
|
||||
instrumental: false # true for instrumental-only projects (skips vocal requirements)
|
||||
|
||||
# Sound Identity
|
||||
genre: "indie folk-rock with electronic textures"
|
||||
mood: "melancholic but hopeful, atmospheric"
|
||||
language: "English" # Language for lyrics and style cues
|
||||
reference_tracks:
|
||||
- "Bon Iver meets Radiohead"
|
||||
- "Fleet Foxes with Massive Attack production"
|
||||
|
||||
# Model & Tier
|
||||
model_preference: "v4.5-all" # v4.5-all | v4 Pro (legacy) | v4.5 Pro | v4.5+ Pro | v5 Pro | v5.5
|
||||
tier: "free" # free | pro | premier
|
||||
|
||||
# Style Prompt — 1,000 char limit (v4.5+/v5/v5.5; 200 for v4 Pro). Front-load essentials in first ~200 chars (critical zone).
|
||||
style_baseline: >
|
||||
Indie folk-rock with electronic textures, atmospheric and layered.
|
||||
Warm analog synths underneath acoustic guitar, subtle ambient pads.
|
||||
Modern production, wide stereo field, intimate mix.
|
||||
exclusion_defaults:
|
||||
- "no autotune"
|
||||
- "no screaming"
|
||||
- "no heavy metal guitar"
|
||||
|
||||
# Vocal Direction (required unless instrumental: true)
|
||||
vocal:
|
||||
gender: "male" # male | female | nonbinary | any
|
||||
tone: "warm, breathy"
|
||||
delivery: "intimate, conversational"
|
||||
energy: "restrained, building"
|
||||
diction: "clear, slightly slurred on emotional peaks"
|
||||
persona_reference: "" # Suno Persona name, if exists (v4.5/v5 only; replaced by voice_id in v5.5)
|
||||
persona_source_song: "" # Song the Persona was derived from (for recreation)
|
||||
# NOTE: Personas pull the sound toward the era/style of the source song.
|
||||
# Audio Influence at 10-15% reduces this era-anchoring but doesn't fully
|
||||
# overcome it. For era-specific pieces, consider generating without a persona,
|
||||
# or creating era-specific personas from era-appropriate source songs.
|
||||
voice_id: "" # Suno Voice identifier (v5.5, Pro/Premier only). Replaces persona_reference for v5.5.
|
||||
# NOTE: When voice_id is set, omit gender vocal descriptors from style_baseline —
|
||||
# the Voice defines the vocal identity (gender, tone, character from the audio sample).
|
||||
|
||||
# Creative Settings
|
||||
creativity_default: "balanced" # conservative | balanced | experimental
|
||||
|
||||
# Sliders (pay-gated — only set if tier supports them)
|
||||
sliders:
|
||||
weirdness: 50 # 0-100, default 50
|
||||
style_influence: 50 # 0-100, default 50
|
||||
audio_influence: null # 0-100, only when using audio upload
|
||||
|
||||
# Studio Preferences (Premier tier only)
|
||||
studio_preferences:
|
||||
bpm: null # Default tempo (number)
|
||||
key: "" # Default key/scale (e.g., "C minor", "A major")
|
||||
time_signature: "" # Default time signature (e.g., "4/4", "3/4")
|
||||
|
||||
# Custom Model (v5.5, Pro/Premier only)
|
||||
custom_model_id: "" # Suno Custom Model identifier, if user has one
|
||||
custom_model_notes: "" # What the custom model was trained on and what production style it provides
|
||||
|
||||
# Writer Voice (optional — populated by Analyze Writer Voice)
|
||||
writer_voice:
|
||||
vocabulary: "" # formal/casual, abstract/concrete, domain words
|
||||
rhythm: "" # sentence length patterns, fragment use
|
||||
imagery: "" # dominant image worlds (nature, urban, body, etc.)
|
||||
emotional_tone: "" # raw/restrained, hopeful/melancholic, etc.
|
||||
metaphor_style: "" # extended/quick, conventional/surprising, frequency
|
||||
repetition_patterns: "" # anaphora, refrains, echo structures
|
||||
sample_quotes: [] # representative lines from analyzed samples
|
||||
|
||||
# Known Working Prompt Patterns (optional — prompt formulations that reliably produce good results)
|
||||
known_working_patterns: []
|
||||
# Per-profile list of prompt patterns proven to work well for this band's sound.
|
||||
# Record specific formulations that nail the identity, especially when blending genres.
|
||||
# Examples:
|
||||
# - "'atmospheric swamp metal accents' — best formulation for keeping band identity when another genre leads"
|
||||
# - "'progressive heavy groove with post-rock dynamics' — captures heaviness without triggering screaming"
|
||||
|
||||
# Known Limitations (optional — things Suno can't reliably do for this sound)
|
||||
known_limitations: []
|
||||
# Per-profile list of known limitations or failure modes for this band's genre/style.
|
||||
# Saves time by documenting dead ends and workaround-required areas.
|
||||
# Examples:
|
||||
# - "Bass-forward rock/metal is not reliably achievable — Suno defaults to guitar-forward mixes"
|
||||
# - "'funk metal' triggers slap/pop bass, not overdriven fingerstyle — avoid this term"
|
||||
# - "Even with 'guitar' in Exclude Styles, Suno still produces guitar in rock/metal context"
|
||||
|
||||
# Generation Learnings (optional — what prompt language triggers what behavior)
|
||||
generation_learnings:
|
||||
# Optional — captures what style prompt language triggers what behavior
|
||||
# for this specific band's sound. Accumulated from testing and feedback.
|
||||
# Examples:
|
||||
# - "'metal' in style prompt triggers screaming — use 'progressive heavy groove' instead"
|
||||
# - "'sludge' triggers harsh vocals — use 'thick, heavy' instead"
|
||||
# - "Weirdness above 60 produces inconsistent results for this genre"
|
||||
|
||||
# Generation History (optional — successful generation snapshots)
|
||||
generation_history: []
|
||||
# Each entry:
|
||||
# - date: "2026-03-19"
|
||||
# style_prompt: "the style prompt that worked"
|
||||
# model: "v5 Pro"
|
||||
# sliders: { weirdness: 65, style_influence: 55 }
|
||||
# note: "nailed the vocal tone on this one"
|
||||
```
|
||||
|
||||
## Field Definitions
|
||||
|
||||
| Field | Required | Type | Constraints |
|
||||
|-------|----------|------|-------------|
|
||||
| `name` | Yes | string | Non-empty, used as display name |
|
||||
| `version` | No | integer | Defaults to 1, increment on major changes |
|
||||
| `instrumental` | No | boolean | Defaults to false. When true, vocal fields become optional |
|
||||
| `genre` | Yes | string | Non-empty |
|
||||
| `mood` | Yes | string | Non-empty |
|
||||
| `language` | No | string | Defaults to "English". Passed to Lyric Transformer and Style Prompt Builder |
|
||||
| `reference_tracks` | No | list of strings | Free-form "sounds like" descriptions |
|
||||
| `model_preference` | Yes | string | One of: v4.5-all, v4 Pro (legacy), v4.5 Pro, v4.5+ Pro, v5 Pro, v5.5 |
|
||||
| `tier` | Yes | string | One of: free, pro, premier |
|
||||
| `style_baseline` | Yes | string | Max 1000 chars (v4.5+/v5/v5.5). Max 200 chars for v4 Pro. Front-load essentials in first ~200 chars (critical zone — strongest influence). Content beyond 200 is supplementary, not wasted. |
|
||||
| `exclusion_defaults` | No | list of strings | Keep each entry concise and specific. Max 5 entries recommended |
|
||||
| `vocal.gender` | Yes* | string | One of: male, female, nonbinary, any. *Optional if `instrumental: true` |
|
||||
| `vocal.tone` | Yes* | string | Non-empty. *Optional if `instrumental: true` |
|
||||
| `vocal.delivery` | Yes* | string | Non-empty. *Optional if `instrumental: true` |
|
||||
| `vocal.energy` | Yes* | string | Non-empty. *Optional if `instrumental: true` |
|
||||
| `vocal.diction` | No | string | Optional refinement |
|
||||
| `vocal.persona_reference` | No | string | Suno Persona name if exists (Pro/Premier only). v4.5/v5 models only; replaced by `voice_id` for v5.5 |
|
||||
| `vocal.persona_source_song` | No | string | Song the Persona was derived from (for recreation if lost) |
|
||||
| `vocal.voice_id` | No | string | Suno Voice identifier (Pro/Premier only, v5.5). Replaces `persona_reference` for v5.5. When set, omit gender vocal descriptors from `style_baseline` |
|
||||
| `creativity_default` | No | string | One of: conservative, balanced, experimental. Defaults to balanced |
|
||||
| `sliders.weirdness` | No | integer | 0-100, only valid for pro/premier tiers |
|
||||
| `sliders.style_influence` | No | integer | 0-100, only valid for pro/premier tiers |
|
||||
| `sliders.audio_influence` | No | integer | 0-100, only appears when using audio upload (pro/premier) |
|
||||
| `studio_preferences.bpm` | No | number | Default tempo. Only valid for premier tier |
|
||||
| `studio_preferences.key` | No | string | Default key/scale. Only valid for premier tier |
|
||||
| `studio_preferences.time_signature` | No | string | Default time signature. Only valid for premier tier |
|
||||
| `custom_model_id` | No | string | Suno Custom Model identifier (Pro/Premier only, v5.5). Up to 3 models per account, trained on 6+ original tracks |
|
||||
| `custom_model_notes` | No | string | Description of what the custom model was trained on and what production style it provides |
|
||||
| `writer_voice.*` | No | string/list | All writer_voice fields are optional |
|
||||
| `known_working_patterns` | No | list of strings | Prompt formulations proven to reliably produce good results for this band's sound. Record specific wording that nails the identity. |
|
||||
| `known_limitations` | No | list of strings | Known failure modes or dead ends for this band's genre/style in Suno. Saves time by documenting things that don't work. |
|
||||
| `generation_learnings` | No | list of strings | Accumulated observations about what prompt language triggers what Suno behavior for this band's genre/style. Updated from testing and feedback sessions. |
|
||||
| `generation_history` | No | list of objects | Max 10 entries. Each entry: date, style_prompt, model, sliders, note |
|
||||
|
||||
## Validation Rules
|
||||
|
||||
1. `name` must be non-empty
|
||||
2. `genre` must be non-empty
|
||||
3. `mood` must be non-empty
|
||||
4. `model_preference` must be one of the allowed values
|
||||
5. `tier` must be one of: free, pro, premier
|
||||
6. `style_baseline` must not exceed 1000 characters (200 for v4 Pro)
|
||||
7. If `instrumental` is not true: `vocal.gender` must be one of: male, female, nonbinary, any
|
||||
8. If `instrumental` is not true: `vocal.tone`, `vocal.delivery`, `vocal.energy` must be non-empty
|
||||
9. If `instrumental` is true: vocal section is optional; if present, fields are not required
|
||||
10. If `tier` is "free", `sliders` should not be present or should warn that values won't be usable
|
||||
11. If `tier` is "free" and `model_preference` is not "v4.5-all", warn about mismatch
|
||||
12. If `tier` is not "premier" and `studio_preferences` has values, warn they won't be usable
|
||||
13. If `creativity_default` is present, must be one of: conservative, balanced, experimental
|
||||
14. If `language` is present, must be a non-empty string
|
||||
15. `generation_history` must not exceed 10 entries
|
||||
16. Profile filename must be kebab-case matching the band name (spaces to hyphens, lowercase)
|
||||
17. If `vocal.voice_id` is set, warn if `vocal.gender` is also set — the Voice defines vocal identity, gender descriptors should be omitted from `style_baseline`
|
||||
18. If `vocal.voice_id` is set but `model_preference` is not "v5.5", warn that Voices require v5.5
|
||||
19. If `custom_model_id` is set but `tier` is "free", warn that Custom Models require Pro or Premier tier
|
||||
|
||||
## Notes for Downstream Skills
|
||||
|
||||
- **Style Prompt Builder** reads: `style_baseline`, `reference_tracks`, `vocal`, `exclusion_defaults`, `sliders`, `creativity_default`, `model_preference`, `language`, `instrumental`
|
||||
- **Lyric Transformer** reads: `writer_voice`, `language`
|
||||
- **Feedback Elicitor** reads: `style_baseline`, `sliders`, `model_preference`; writes to `generation_history` via headless:edit
|
||||
- When a Persona is active (v4.5/v5), its style auto-populates the Style of Music field — keep additional style modifications simple (1-2 genres, 1 mood, 2-4 instruments max)
|
||||
- **Persona Era-Anchoring (v4.5/v5):** Personas pull the sound toward the era/style of the source song. Audio Influence at 10-15% reduces this but doesn't eliminate it. For era-specific pieces, generate without a persona or create era-specific personas from era-appropriate source songs.
|
||||
- **Voices (v5.5):** Voices replace Personas for v5.5. When `voice_id` is set, the Voice defines the vocal identity — omit gender vocal descriptors from `style_baseline`. The style prompt should focus on instrumentation, production, and mood rather than vocal character.
|
||||
- **v5.5 Voice Gravity Principle (validated April 2026):** v5.5 Voice clones carry **trained genre gravity** — the Voice pulls generations toward its trained baseline on its own. When the target song genre differs from the Voice's trained direction, the style prompt must ACTIVELY FIGHT that gravity, not describe the target. Six practical rules for Voice-aware profiles (see `suno-style-prompt-builder/references/model-prompt-strategies.md` for full details and validated case study):
|
||||
1. **Drop descriptors the Voice already delivers** — if the Voice is a folk clone, drop "warm," "vulnerable," "clean," "storytelling vocal" from `style_baseline`. These are wasted characters and can fight the Voice.
|
||||
2. **Load descriptors that push AGAINST the Voice's direction** — for a folk Voice doing rock songs, lean hard into "overdriven," "crunch," "driving groove," "rock urgency."
|
||||
3. **Keep Style Influence at 65+** so the prompt leads firmly. Profiles with a Voice-genre mismatch should bump `sliders.style_influence` to 65 as the default.
|
||||
4. **Leave `vocal.gender` empty** when `voice_id` is set — the schema already warns about this (rule 17).
|
||||
5. **Voice-aware `exclusion_defaults`** — when the Voice physically cannot produce harsh vocals, drop `harsh vocals`, `screamed vocals`, etc. from exclusions. Focus exclusions on production/genre-direction protection only (`heavy metal`, `heavy distortion`, `steel guitar`, `autotune`, `pop sheen`). The clean Voice IS the guardrail.
|
||||
6. **Audio Influence floor** — use 55-60% as the default for Voice profiles. 30-40% "subtle flavor" only works with Professional-level Voices; non-Professional Voices below 40% trigger robotic timbre.
|
||||
- **Multi-profile Voice strategy** — profiles can reference multiple Voice IDs when the project uses several Voice recordings (e.g., "Narrative Rock" for mid-tempo rock tracks, "Ballad Intimate" for tender songs, "Speak-Sing Confessional" for literary/narrative tracks). Each Voice should be internally consistent (single stable character, 20-30 sec per recording, Skill Level Professional mandatory). Variety lives across Voices, not within one Voice sample. Document the mapping and per-Voice use cases in the profile.
|
||||
- **Custom Models (v5.5):** When `custom_model_id` is set, the Style Prompt Builder should complement the model's learned production style rather than fight it. Include `custom_model_notes` context when building prompts.
|
||||
- **Inspo Playlist Guidance:** Using your own songs as Inspo homogenizes the catalog sound. Drop Inspo when a song needs its own identity within the same band — let the style prompt and persona/voice do the work instead.
|
||||
|
||||
---
|
||||
|
||||
## Per-Band Playlist YAML (the canonical playlist source)
|
||||
|
||||
Each band in the project owns exactly **one** canonical playlist file:
|
||||
|
||||
```
|
||||
docs/{band-slug}-playlist.yaml
|
||||
```
|
||||
|
||||
The slug matches the band profile filename — `docs/band-profiles/solitary-fire.yaml` pairs with `docs/solitary-fire-playlist.yaml`. This file is the single source of truth for the band's track sequence; **do not duplicate the track list elsewhere.** Other files (sidecar narrative, voice context, ordering doc) reference or derive from this YAML.
|
||||
|
||||
### Schema
|
||||
|
||||
```yaml
|
||||
album: "<Band display name>"
|
||||
tracks:
|
||||
- name: "<Song title (must match the songbook entry's frontmatter title)>"
|
||||
file: "<exact filename in docs/audio/, e.g. My Song.mp3>"
|
||||
- name: "<next song>"
|
||||
file: "<next file>"
|
||||
# ...
|
||||
```
|
||||
|
||||
The two required fields per track are `name` (the human-readable song title — must match the songbook entry's frontmatter `title`) and `file` (the audio filename in `docs/audio/`, used as the input to `playlist-sequencing-data.py`).
|
||||
|
||||
### Why this file exists
|
||||
|
||||
The audio analysis script (`playlist-sequencing-data.py`) needs a per-band ordered list with audio file mappings. Without a canonical YAML, this list inevitably gets duplicated in several places — the band profile YAML, an ordering doc, the sidecar narrative, the voice context — and each copy drifts independently. Consolidating to a single file with a deterministic location ends the drift class.
|
||||
|
||||
### Bootstrapping
|
||||
|
||||
If a band already has songbook entries but no playlist YAML, scaffold one:
|
||||
|
||||
```bash
|
||||
python3 src/skills/suno-band-profile-manager/scripts/scaffold-playlist.py {band-slug} --from-songbook
|
||||
```
|
||||
|
||||
This writes `docs/{band-slug}-playlist.yaml` with discovered song titles populated and `file:` fields left as empty strings (TODO: fill in from `docs/audio/`). The user reviews, fills in audio filenames, sets the order, and saves.
|
||||
|
||||
For a brand new band with no songbook entries yet, run without `--from-songbook` to write an empty template.
|
||||
|
||||
### Auto-creation on band profile creation
|
||||
|
||||
When a new band profile is created via `suno-band-profile-manager`, the playlist YAML scaffold MUST be created in the same write batch. New bands without a playlist YAML are caught by `validate-profile.py` once they have any songbook entries.
|
||||
|
||||
### Deprecation notice — the `playlist:` block in band profile YAML
|
||||
|
||||
Earlier versions of this module supported a `playlist:` block inside the band profile YAML carrying track order, sequencing notes, and gap analysis. As of v1.7.2, **that block is deprecated and validators will warn on profiles that still carry it.** Move authoritative track-list data to `docs/{band-slug}-playlist.yaml`; sequencing-history narrative notes can move to a band-specific ordering doc (`docs/{band-slug}-playlist-ordering.md`) if you maintain one. Keeping playlist data in two places is the drift problem this convention was created to fix.
|
||||
|
||||
### Workflow rules (apply in same write batch)
|
||||
|
||||
- **On song publish:** the band's `docs/{band-slug}-playlist.yaml` MUST be updated alongside the songbook entry.
|
||||
- **On track reorder:** edit `docs/{band-slug}-playlist.yaml` first; the script's per-album companion `docs/{band-slug}-playlist-sequencing.md` auto-refreshes from this on the next run.
|
||||
- **On track removal/rename:** update the YAML, the songbook (if renaming), the sidecar narrative, and any ordering doc all in the same write batch.
|
||||
|
||||
See also `suno-feedback-elicitor/references/playlist-sequencing-methodology.md` for the album-craft methodology that consumes this file's data.
|
||||
@@ -0,0 +1,120 @@
|
||||
# Suno Tier Feature Matrix
|
||||
|
||||
> **Last validated:** March 2026 (Suno Free, Pro, Premier plans). Suno updates pricing, features, and tier boundaries frequently — use web search to verify against current Suno pricing page when uncertain.
|
||||
|
||||
**Note:** The `./scripts/tier-features.py` script is the authoritative source for this data. This reference file is provided for human readability. When updating, update the script first.
|
||||
|
||||
## Plan Comparison
|
||||
|
||||
| Feature | Free ($0) | Pro ($10/mo, $8/mo annual) | Premier ($30/mo, $24/mo annual) |
|
||||
|---------|-----------|----------------------------|----------------------------------|
|
||||
| **Model Access** | v4.5-all only | All models incl. v5, v5.5 | All models incl. v5.5 + Studio |
|
||||
| **Credits** | 50/day (~10 songs) | 2,500/mo (~500 songs) | 10,000/mo (~2,000 songs) |
|
||||
| **Credit Cost** | 10/song, 5/extend | 10/song, 5/extend | 10/song, 5/extend |
|
||||
| **Song Length** | Determined by model — v4.5-all supports up to ~8 min | Determined by model — v4.5/v5 support up to ~8 min | Determined by model — v4.5/v5 support up to ~8 min |
|
||||
| **Download Quality** | 128kbps MP3 | 320kbps MP3 + WAV | 320kbps MP3 + WAV |
|
||||
| **Commercial Use** | No | Yes (new songs) | Yes (new songs) |
|
||||
| **Personas** | No | Yes (v4.5/v5 only; replaced by Voices in v5.5) | Yes (v4.5/v5 only; replaced by Voices in v5.5) |
|
||||
| **Voices** | No | Yes (v5.5 voice cloning) | Yes (v5.5 voice cloning) |
|
||||
| **Custom Models** | No | Yes (up to 3 models) | Yes (up to 3 models) |
|
||||
| **My Taste** | Yes (passive) | Yes (passive) | Yes (passive) |
|
||||
| **Weirdness Slider** | No | Yes (0-100) | Yes (0-100) |
|
||||
| **Style Influence Slider** | No | Yes (0-100) | Yes (0-100) |
|
||||
| **Audio Influence Slider** | No | Yes (0-100, with audio upload) | Yes (0-100, with audio upload) |
|
||||
| | | *10-15% reduces persona era-anchoring* | *10-15% reduces persona era-anchoring* |
|
||||
| **Add Vocals/Instrumental** | No | Yes (beta) | Yes (beta) |
|
||||
| **Covers** | No | Yes (beta) | Yes (beta) |
|
||||
| **Remaster** | No | Yes | Yes |
|
||||
| **Stems** | No | Up to 12 | Up to 12 |
|
||||
| **Audio Upload** | 1 min | 8 min | 8 min |
|
||||
| **Legacy Editor** (Replace, Extend, Crop, Fade, Rearrange) | No | Yes | Yes |
|
||||
| **Studio** (full Generative Audio Workstation) | No | No | Yes |
|
||||
| **Warp Markers** | No | No | Yes (Studio) |
|
||||
| **Remove FX** | No | No | Yes (Studio) |
|
||||
| **Alternates / Take Lanes** | No | No | Yes (Studio) |
|
||||
| **EQ** (6-band per track) | No | No | Yes (Studio) |
|
||||
| **Time Signature** control | No | No | Yes (Studio, editing only — not sent to generative models) |
|
||||
| **Context Window** | No | No | Yes (Studio) |
|
||||
| **Recording** (microphone) | No | No | Yes (Studio) |
|
||||
| **Loop Recording** | No | No | Yes (Studio) |
|
||||
| **Sounds Mode** (text-to-sound) | No | No | Yes (Studio, beta) |
|
||||
| **Stem Cover** | No | No | Yes (Studio) |
|
||||
| **Heal Edits** | No | No | Yes (Studio) |
|
||||
| **MIDI Export** (10 credits/stem) | No | No | Yes |
|
||||
| **MILO-1080 Sequencer** | No | No | Yes (Studio) |
|
||||
| **Queue Priority** | Shared | Priority, 10 at once | Priority, 10 at once |
|
||||
| **Add-on Credits** | No | Yes | Yes |
|
||||
|
||||
## Free Tier Available Options
|
||||
|
||||
- Vocal Gender selection
|
||||
- Manual/Auto Lyrics mode
|
||||
- Song Title
|
||||
|
||||
## Models
|
||||
|
||||
| Model | Tagline | Availability |
|
||||
|-------|---------|-------------|
|
||||
| v5.5 | Voices, Custom Models, My Taste | Pro/Premier |
|
||||
| v5 Pro | Authentic vocals, superior audio quality and control | Pro/Premier |
|
||||
| v4.5+ Pro | Advanced creation methods | Pro/Premier |
|
||||
| v4.5 Pro | Intelligent prompts | Pro/Premier |
|
||||
| v4.5-all | Best free model | All tiers |
|
||||
| v4 Pro | Improved sound quality (legacy) | Pro/Premier |
|
||||
|
||||
## Profile Implications by Tier
|
||||
|
||||
**Free tier profiles should:**
|
||||
- Set `model_preference` to "v4.5-all" (only available model)
|
||||
- Omit or zero out `sliders` (not available)
|
||||
- Not reference Personas or Voices (not available)
|
||||
- Focus style_baseline on conversational descriptions (v4.5-all strength)
|
||||
- My Taste is active passively — no profile configuration needed
|
||||
|
||||
**Pro tier profiles can:**
|
||||
- Use any model including v5 Pro and v5.5
|
||||
- Set Weirdness and Style Influence sliders
|
||||
- Reference Suno Personas for vocal consistency (v4.5/v5 models)
|
||||
- Use Suno Voices for vocal consistency (v5.5 model — replaces Personas)
|
||||
- Use Custom Models (up to 3, trained on 6+ original tracks, 2-5 min training time)
|
||||
- Use crisp, descriptor-focused style for v5 Pro
|
||||
- Use Audio Influence slider to manage persona era-anchoring (reduce to 10-15% when the persona's source era conflicts with the desired sound)
|
||||
- When a Voice is configured, omit gender vocal descriptors from style_baseline — the Voice defines the vocal identity
|
||||
|
||||
**Premier tier profiles can:**
|
||||
- Everything Pro can do, plus full Suno Studio (GAW)
|
||||
- Set studio_preferences (BPM, key, time signature)
|
||||
- Stems separation for production work
|
||||
- MIDI export for DAW integration (10 credits per stem)
|
||||
- Voices and Custom Models (same as Pro)
|
||||
- EQ (6-band per track), Warp Markers, Remove FX, Alternates, Context Window
|
||||
- Recording (microphone input), Loop Recording, Sounds Mode, Stem Cover, Heal Edits
|
||||
- MILO-1080 Step Sequencer (16-track, text-to-sound, MIDI I/O)
|
||||
|
||||
## Production Notes
|
||||
|
||||
**Audio Influence as Era Control (Pro/Premier):** When a persona's era-anchoring conflicts with the desired era for a track, reducing Audio Influence from the default 25% to 10-15% helps pull the sound away from the persona's source era. This doesn't fully eliminate the anchoring — for strong era shifts, consider generating without a persona or creating an era-specific persona from an era-appropriate source song.
|
||||
|
||||
**Audio Influence Effective Range (Pro/Premier):** The practical range for Audio Influence is 15-25%. Values above 25% show diminishing returns — tested at 40%, it did not override an incompatible style prompt. The slider shapes the persona's contribution but cannot force the persona's character over a conflicting style direction.
|
||||
|
||||
**Acoustic/Ballad Tracks and Audio Influence (Pro/Premier):** When the style prompt clearly defines a non-heavy genre (ballad, acoustic, stripped-back), the persona contributes only vocal identity — it does not drag in unwanted instrumentation. Do NOT reduce Audio Influence for ballads or stripped tracks; keep it at the normal working range. The style prompt governs the arrangement; the persona governs the voice.
|
||||
|
||||
**Exclude Styles — Known Limitations:** The Exclude Styles field helps shape tone but does not reliably remove instruments entirely. For example, even with "guitar" in Exclude Styles, Suno still produces guitar in rock/metal contexts. Treat Exclude Styles as a nudge toward the desired balance rather than a hard instrument filter.
|
||||
|
||||
**Personas to Voices Transition (v5.5):** Personas are replaced by Voices in v5.5. Existing Personas still work on v4.5 and v5 models. For v5.5 generation, use a Voice instead. Voices are created from a 15-second to 4-minute audio sample and include anti-deepfake verification. Voices are private to the account that created them.
|
||||
|
||||
**Voices and Vocal Descriptors (v5.5, Pro/Premier):** When a Voice is active, the Voice defines the vocal identity — gender, tone, and character come from the audio sample. Omit gender vocal descriptors from the style prompt to avoid conflicts. Other vocal direction (delivery, energy, diction) can still shape performance.
|
||||
|
||||
**Audio Influence with Voices (v5.5, Pro/Premier):** Unlike Personas (15-25% effective range), Voices uses a wider range. The sweet spot is personal — 35-45% for subtle flavor, 55-70% balanced (default starting point), 75-85% for identity-focused work, 85-95% for maximum fidelity. Adjust up if voice is unrecognizable, down if quality suffers.
|
||||
|
||||
**Custom Models (v5.5, Pro/Premier):** Custom Models are trained on 6 or more original tracks and take 2-5 minutes to train. Up to 3 Custom Models per account. They capture a production style and sound signature. When a Custom Model is active, it shapes the overall production character — the style prompt should complement rather than fight the model's learned style.
|
||||
|
||||
**My Taste (v5.5, All Tiers):** My Taste is passive personalization derived from the user's generation history. It requires no configuration and works across all tiers including Free. It subtly shapes generation output based on patterns in what the user has created and liked.
|
||||
|
||||
**Legacy Editor vs. Studio (Pro vs Premier):** Pro users get the Legacy Editor — section-level editing with Replace Section, Extend, Crop, Fade, Rearrange, and Stems. Premier users additionally get Suno Studio — a full browser-based Generative Audio Workstation with multitrack timeline, EQ, Warp Markers, Alternates/Take Lanes, Remove FX, Recording, Loop Recording, Context Window, Stem Cover, Sounds Mode, Heal Edits, and MIDI Export. For complete editing workflows, see [STUDIO-EDITOR-REFERENCE.md](../../STUDIO-EDITOR-REFERENCE.md).
|
||||
|
||||
**Remaster (Pro/Premier):** Generates refined variations adjusting production details (instrument balance, effects, mix quality, vocal clarity) while preserving song structure. Three strength levels: Subtle, Normal, High. Does NOT change lyrics, style, or vocalist — use Cover for those. Good for final polish before export.
|
||||
|
||||
**Replace Section Best Practices (Pro/Premier):** Key controls: Keep Duration toggle (ON = match length, OFF = creative flexibility), Instrumental Mode toggle (removes vocals), Replace Lyrics (edit lyrics for just the selected region). Best results with 10-30 second selections; typically requires 2-5 attempts for seamless transitions.
|
||||
|
||||
**v5.5 Editing Paradigm:** v5.5 favors generate → inspect → section replace → refine (not regenerate from scratch). This preserves good material and spends fewer credits. For complete Studio and Editor workflows, see [STUDIO-EDITOR-REFERENCE.md](../../suno-agent-band-manager/references/STUDIO-EDITOR-REFERENCE.md).
|
||||
Reference in New Issue
Block a user