diff --git a/catalogue/PROVENANCE.md b/catalogue/PROVENANCE.md index d14119c..2ed185c 100644 --- a/catalogue/PROVENANCE.md +++ b/catalogue/PROVENANCE.md @@ -527,6 +527,34 @@ Recraft — V3 $0.04/img raster on every provider (re-verified 2026-09-02; Recraft's own pricing table agrees). +## Lyria 3 and Lyria 3 Pro — fal serving contracts + +The existing `google/lyria-3` and `google/lyria-3-pro` top-level `provider`, +`input` and `output` fields describe their Replicate offering. They are not +universal claims that every provider accepts ten images or emits 48 kHz audio. +The fal bindings retain their independently sourced facts: + +- [Lyria 3 API](https://fal.ai/models/fal-ai/lyria3/api) and + [Lyria 3 Pro API](https://fal.ai/models/fal-ai/lyria3/pro/api) require a prompt + and accept one optional `image_url`. Their published input schemas also expose + `enable_safety_checker`; they do not expose separate duration, seed, + output-count or lyrics fields. Tempo, structure and lyrics may be described in + the prompt, which does not guarantee exact control. +- Both API pages describe MP3 at **44.1 kHz / 192 kbps**, rather than the + Replicate-specific 48 kHz fields retained on the card. The standard model is a + 30-second clip; Pro is described as up to approximately three minutes. These + output descriptions do not establish caller-selectable durations. +- Both schema pages declare an `audio` File object but show a URL string in their + output examples; the [Pro playground](https://fal.ai/models/fal-ai/lyria3/pro) + also shows a File object. The bindings record this discrepancy without + declaring either example a complete behavioral guarantee. Optional `lyrics` + may contain descriptions and other generated text, not a timed transcript. +- The existing regular fal prices remain unchanged: + [Lyria 3](https://fal.ai/models/fal-ai/lyria3) publishes **$0.04 per audio**, + and [Pro](https://fal.ai/models/fal-ai/lyria3/pro) publishes **$0.08 per audio**. + They are per-output charges, not duration multipliers. Adding these serving + facts does not change model identities, release dates or other providers. + ## `pricing: { type: "per_run_flat", usd: 0.04 },` Source: replicate.com/google/lyria-3 — "$0.04 per output audio file" diff --git a/catalogue/models.json b/catalogue/models.json index 14a597f..abe0490 100644 --- a/catalogue/models.json +++ b/catalogue/models.json @@ -20128,13 +20128,46 @@ "fal": { "provider": "fal", "id": "fal-ai/lyria3", + "input": "text-or-image", "source_url": "https://fal.ai/models/fal-ai/lyria3", "url": "https://fal.ai/models/fal-ai/lyria3", "pricing": { "type": "per_run_flat", "usd": 0.04, "source_url": "https://fal.ai/models/fal-ai/lyria3" - } + }, + "qualifications": [ + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/api", + "notes": "The request requires a text prompt and accepts one optional image_url. There is no separate duration, seed, output-count or lyrics parameter in the published input schema; lyrics, tempo and structure are described in the prompt." + }, + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/api", + "notes": "The fal endpoint returns 30-second MP3 audio at 44.1 kHz / 192 kbps, with optional generated lyrics. These serving facts differ from the existing Replicate-specific input and output fields on this card." + }, + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/api", + "notes": "The output schema declares audio as a File object with a URL, but its JSON example uses a URL string. This documentation discrepancy leaves the exact response representation unresolved." + } + ], + "endpoints": [ + { + "id": "fal-ai/lyria3", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/lyria3/api", + "parameters": { + "prompt": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "enable_safety_checker": { + "type": "boolean" + } + } + } + ] }, "openrouter": { "provider": "openrouter", @@ -20225,13 +20258,46 @@ "fal": { "provider": "fal", "id": "fal-ai/lyria3/pro", + "input": "text-or-image", "source_url": "https://fal.ai/models/fal-ai/lyria3/pro", "url": "https://fal.ai/models/fal-ai/lyria3/pro", "pricing": { "type": "per_run_flat", "usd": 0.08, "source_url": "https://fal.ai/models/fal-ai/lyria3/pro" - } + }, + "qualifications": [ + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro/api", + "notes": "The request requires a text prompt and accepts one optional image_url. There is no separate duration, seed, output-count or lyrics parameter in the published input schema; lyrics, tempo and structure are described in the prompt." + }, + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro/api", + "notes": "The fal endpoint returns MP3 songs up to approximately three minutes at 44.1 kHz / 192 kbps, with optional generated or supplied lyrics. These serving facts differ from the existing Replicate-specific input and output fields on this card." + }, + { + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro/api", + "notes": "The output schema declares audio as a File object with a URL, but its JSON example uses a URL string. This documentation discrepancy leaves the exact response representation unresolved." + } + ], + "endpoints": [ + { + "id": "fal-ai/lyria3/pro", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro/api", + "parameters": { + "prompt": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "enable_safety_checker": { + "type": "boolean" + } + } + } + ] }, "openrouter": { "provider": "openrouter", diff --git a/models/google/lyria-3-pro/card.toml b/models/google/lyria-3-pro/card.toml index b284185..3afd002 100644 --- a/models/google/lyria-3-pro/card.toml +++ b/models/google/lyria-3-pro/card.toml @@ -38,9 +38,25 @@ pricing = { "type" = "per_run_flat", "usd" = 0.08, "source_url" = "https://ai.go [providers.fal] provider = "fal" id = "fal-ai/lyria3/pro" +input = "text-or-image" source_url = "https://fal.ai/models/fal-ai/lyria3/pro" url = "https://fal.ai/models/fal-ai/lyria3/pro" pricing = { "type" = "per_run_flat", "usd" = 0.08, "source_url" = "https://fal.ai/models/fal-ai/lyria3/pro" } +qualifications = [ + { source_url = "https://fal.ai/models/fal-ai/lyria3/pro/api", notes = "The request requires a text prompt and accepts one optional image_url. There is no separate duration, seed, output-count or lyrics parameter in the published input schema; lyrics, tempo and structure are described in the prompt." }, + { source_url = "https://fal.ai/models/fal-ai/lyria3/pro/api", notes = "The fal endpoint returns MP3 songs up to approximately three minutes at 44.1 kHz / 192 kbps, with optional generated or supplied lyrics. These serving facts differ from the existing Replicate-specific input and output fields on this card." }, + { source_url = "https://fal.ai/models/fal-ai/lyria3/pro/api", notes = "The output schema declares audio as a File object with a URL, but its JSON example uses a URL string. This documentation discrepancy leaves the exact response representation unresolved." }, +] + +[[providers.fal.endpoints]] +id = "fal-ai/lyria3/pro" +input = "text" +source_url = "https://fal.ai/models/fal-ai/lyria3/pro/api" + +[providers.fal.endpoints.parameters] +prompt = { type = "string" } +image_url = { type = "string" } +enable_safety_checker = { type = "boolean" } [providers.openrouter] provider = "openrouter" diff --git a/models/google/lyria-3/card.toml b/models/google/lyria-3/card.toml index 0f800db..63e660f 100644 --- a/models/google/lyria-3/card.toml +++ b/models/google/lyria-3/card.toml @@ -38,9 +38,25 @@ pricing = { "type" = "per_run_flat", "usd" = 0.04, "source_url" = "https://ai.go [providers.fal] provider = "fal" id = "fal-ai/lyria3" +input = "text-or-image" source_url = "https://fal.ai/models/fal-ai/lyria3" url = "https://fal.ai/models/fal-ai/lyria3" pricing = { "type" = "per_run_flat", "usd" = 0.04, "source_url" = "https://fal.ai/models/fal-ai/lyria3" } +qualifications = [ + { source_url = "https://fal.ai/models/fal-ai/lyria3/api", notes = "The request requires a text prompt and accepts one optional image_url. There is no separate duration, seed, output-count or lyrics parameter in the published input schema; lyrics, tempo and structure are described in the prompt." }, + { source_url = "https://fal.ai/models/fal-ai/lyria3/api", notes = "The fal endpoint returns 30-second MP3 audio at 44.1 kHz / 192 kbps, with optional generated lyrics. These serving facts differ from the existing Replicate-specific input and output fields on this card." }, + { source_url = "https://fal.ai/models/fal-ai/lyria3/api", notes = "The output schema declares audio as a File object with a URL, but its JSON example uses a URL string. This documentation discrepancy leaves the exact response representation unresolved." }, +] + +[[providers.fal.endpoints]] +id = "fal-ai/lyria3" +input = "text" +source_url = "https://fal.ai/models/fal-ai/lyria3/api" + +[providers.fal.endpoints.parameters] +prompt = { type = "string" } +image_url = { type = "string" } +enable_safety_checker = { type = "boolean" } [providers.openrouter] provider = "openrouter"