Lyria API

Lyria๋Š” ๊ณ ํ’ˆ์งˆ ์˜ค๋””์˜ค ์ƒ์„ฑ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ํŒŒ์šด๋ฐ์ด์…˜ ๋ชจ๋ธ๋กœ, ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ์—์„œ ๋‹ค์–‘ํ•œ ์‚ฌ์šด๋“œ์Šค์ผ€์ดํ”„์™€ ์Œ์•…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Lyria๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ์—์„œ ๊ณ ํ’ˆ์งˆ ์•…๊ธฐ ์Œ์•…์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”์—์„œ ์ด ๋ชจ๋ธ์„ ์‚ดํŽด๋ณด๋ ค๋ฉด Model Garden์˜ Lyria ๋ชจ๋ธ ์นด๋“œ (Media Studio ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Vertex AI(Vertex AI Studio)์—์„œ Lyria ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

Colab์—์„œ Lyria ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

์ง€์›๋˜๋Š” ๋ชจ๋ธ

Lyria API๋Š” ๋‹ค์Œ ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • lyria-002

HTTP ์š”์ฒญ

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://LOCATION[-aiplatform.googleapis.com/v1/projects/](https://-aiplatform.googleapis.com/v1/projects/)PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002:predict \
  -d '{
    "instances": [
      {
        "prompt": "string",
        "negative_prompt": "string", // Optional
        "seed": 0 // Optional. Cannot be used with sample_count.
      }
    ],
    "parameters": {
      "sample_count": 1 // Optional. Cannot be used with seed.
    }
  }'

Lyria ๋ชจ๋ธ์— ๋‹ค์Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Lyria Model Garden ์นด๋“œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋งค๊ฐœ๋ณ€์ˆ˜

prompt

(instances ๊ฐ์ฒด)

string

ํ•„์ˆ˜ ์ž…๋ ฅ๋ž€์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑํ•  ์˜ค๋””์˜ค์— ๋Œ€ํ•œ ๋ฏธ๊ตญ ์˜์–ด (en-us) ํ…์ŠคํŠธ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์˜ˆ: '๋น ๋ฅธ ํ…œํฌ์˜ ํ™œ๊ธฐ์ฐฌ ์ผ๋ ‰ํŠธ๋กœ๋‹‰ ๋Œ„์Šค๊ณก'

negative_prompt

(instances ๊ฐ์ฒด)

string

์„ ํƒ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์˜ค๋””์˜ค์—์„œ ์ œ์™ธํ•  ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์˜ˆ: "๋ณด์ปฌ, ๋А๋ฆฐ ํ…œํฌ"

seed

(instances ๊ฐ์ฒด)

integer

์„ ํƒ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ •๋ก ์  ์ƒ์„ฑ์„ ์œ„ํ•œ ์‹œ๋“œ์ž…๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ๊ฒฝ์šฐ ๋ชจ๋ธ์€ ๋™์ผํ•œ ํ”„๋กฌํ”„ํŠธ์™€ ๊ธฐํƒ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์˜ค๋””์˜ค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ์š”์ฒญ์—์„œ sample_count์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ: 12345

sample_count

(parameters ๊ฐ์ฒด)

integer

์„ ํƒ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑํ•  ์˜ค๋””์˜ค ์ƒ˜ํ”Œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ง€์ •๋˜์ง€ ์•Š๊ณ  ์‹œ๋“œ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

๋™์ผํ•œ ์š”์ฒญ์—์„œ seed์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ: 2

์ƒ˜ํ”Œ ์š”์ฒญ

๋‹ค์Œ ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ์—์„œ ์ธ์ŠคํŠธ๋ฃจ๋ฉ˜ํƒˆ ์Œ์•…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ๋ฅผ ์Œ์•…์œผ๋กœ ์ƒ์„ฑ ์š”์ฒญ

curl

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/lyria-002:predict \
-d '{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar",
      "seed": 98765
    }
  ],
  "parameters": {}
}'

JSON

์ด ์˜ˆ์‹œ์—์„œ๋Š” ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ์„ ์œ„ํ•ด seed๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar",
      "seed": 98765
    }
  ],
  "parameters": {}
}

sample_count๊ฐ€ ํฌํ•จ๋œ JSON

์ด ์˜ˆ์—์„œ๋Š” sample_count๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ƒ˜ํ”Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Lyria API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ๊ฒŒ์‹œ์ž ๋ชจ๋ธ ์—”๋“œํฌ์ธํŠธ์— POST ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์—์„œ๋Š” instances ๊ฐ์ฒด์—์„œ seed๋ฅผ ์ƒ๋žตํ•˜๊ณ  parameters ๊ฐ์ฒด์—์„œ sample_count๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ƒ˜ํ”Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar"
    }
  ],
  "parameters": {
    "sample_count": 2
  }
}

์‘๋‹ต ๋ณธ๋ฌธ

์š”์ฒญ์ด ์„ฑ๊ณตํ•˜๋ฉด ์ƒ์„ฑ๋œ ์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ JSON ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๊ฐ ์˜ค๋””์˜ค ํด๋ฆฝ์˜ ๊ธธ์ด๋Š” 30์ดˆ์ด๋ฉฐ 48kHz ์ƒ˜ํ”Œ๋ง ๋ ˆ์ดํŠธ์˜ WAV ์˜ค๋””์˜ค ํŒŒ์ผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

{
  "predictions": [
    {
      "audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_1",
      "mimeType": "audio/wav"
    }
    // Additional audio samples will be listed here if sample_count > 1
    // e.g.,
    //{"audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_2",
    // "mimeType": "audio/wav"
    //}
  ],
  "deployedModelId": "xxxxxxxxxxxxxxx", // Actual ID may vary based on deployment
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002",
  "modelDisplayName": "Lyria 2"
}
์‘๋‹ต ์š”์†Œ
predictions

array

์ƒ์„ฑ๋œ ์˜ค๋””์˜ค ์ƒ˜ํ”Œ์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ ๊ฐ์ฒด๋Š” ํ•˜๋‚˜์˜ ์˜ค๋””์˜ค ํด๋ฆฝ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

predictions[].audioContent

string

์ƒ์„ฑ๋œ WAV ์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ์˜ Base64 ์ธ์ฝ”๋”ฉ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

predictions[].mimeType

string

์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ์˜ MIME ์œ ํ˜•์ž…๋‹ˆ๋‹ค. Lyria์˜ ๊ฒฝ์šฐ "audio/wav"์ž…๋‹ˆ๋‹ค.

deployedModelId

string

์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ๋ฐฐํฌ๋œ ๋ชจ๋ธ์˜ ID์ž…๋‹ˆ๋‹ค (์—”๋“œํฌ์ธํŠธ ์œ ํ˜•์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ).

model

string

์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ๋ชจ๋ธ์˜ ์ „์ฒด ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

modelDisplayName

string

๋ชจ๋ธ์˜ ํ‘œ์‹œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๊ถŒ์žฅ์‚ฌํ•ญ ๋ฐ ์ œํ•œ์‚ฌํ•ญ

ํ”„๋กฌํ”„ํŠธ, ์–ธ์–ด ์ง€์› (ํ”„๋กฌํ”„ํŠธ๋Š” ๋ฏธ๊ตญ ์˜์–ด๋งŒ ์ง€์›), ์ƒ์„ฑ ์‹œ๊ฐ„, ์ถœ๋ ฅ ํ˜•์‹ (WAV, 48kHz, 30์ดˆ ๊ธธ์ด์˜ ์—ฐ์ฃผ๊ณก ํด๋ฆฝ), ์•ˆ์ „ ์กฐ์น˜, ๋ฐฐํฌ ์ •๋ณด์— ๊ด€ํ•œ ์ž์„ธํ•œ ๊ถŒ์žฅ์‚ฌํ•ญ์€ Lyria ๋ชจ๋ธ ์นด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ํ•ต์‹ฌ ์‚ฌํ•ญ:

  • ์ž์„ธํ•œ ํ”„๋กฌํ”„ํŠธ: ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋‚˜์€ ์˜ค๋””์˜ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์ •: ์žฅ๋ฅด, ๋ถ„์œ„๊ธฐ, ์•…๊ธฐ, ํ…œํฌ
  • ๋ถ€์ • ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ: negative_prompt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ถœ๋ ฅ: 30์ดˆ ๊ธธ์ด์˜ WAV ์˜ค๋””์˜ค ํด๋ฆฝ, 48kHz, ์—ฐ์ฃผ๊ณก๋งŒ ํ•ด๋‹น
  • ์•ˆ์ „: ์ฝ˜ํ…์ธ  ์•ˆ์ „ ํ•„ํ„ฐ, ๋‚ญ๋… ํ™•์ธ, ์•„ํ‹ฐ์ŠคํŠธ ์˜๋„ ํ™•์ธ, SynthID ์›Œํ„ฐ๋งˆํฌ๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ ์ฑ…์ •

Lyria 2 ์‚ฌ์šฉ ์š”๊ธˆ์€ ์ƒ์„ฑ๋œ ์ถœ๋ ฅ ์Œ์•… 30์ดˆ๋‹น $0.06์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Vertex AI ๊ฐ€๊ฒฉ ์ฑ…์ •์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์ •๋ณด

  • Vertex AI์˜ ์ƒ์„ฑํ˜• AI์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.
  • Lyria ๊ฐœ์š”๋Š” Model Garden (Media Studio)์—์„œ ์ œ๊ณต๋˜๋Š” ๋ชจ๋ธ ์นด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„