kie-ruby 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.claude/commands/add-model.md +155 -0
- data/.claude/commands/release.md +118 -0
- data/.claude/commands/update-model.md +177 -0
- data/CLAUDE.md +1 -0
- data/README.md +137 -2
- data/docs/api/INDEX.md +12 -0
- data/docs/api/general/INDEX.md +59 -0
- data/docs/api/general/flux-2-flex-image-to-image.md +257 -0
- data/docs/api/general/flux-2-flex-text-to-image.md +237 -0
- data/docs/api/general/flux-2-pro-image-to-image.md +257 -0
- data/docs/api/general/grok-imagine-image-to-image.md +232 -0
- data/docs/api/general/grok-imagine-image-to-video.md +257 -0
- data/docs/api/general/grok-imagine-text-to-image.md +237 -0
- data/docs/api/general/grok-imagine-text-to-video.md +245 -0
- data/docs/api/general/grok-imagine-upscale.md +217 -0
- data/docs/api/general/nano-banana-pro.md +275 -0
- data/docs/api/general/seedream-4-5-edit.md +252 -0
- data/docs/api/general/seedream-4-5-text-to-image.md +245 -0
- data/docs/api/overview.md +92 -0
- data/docs/api/suno/INDEX.md +44 -0
- data/docs/api/suno/generate.md +154 -0
- data/docs/api/suno/models.md +95 -0
- data/docs/api/suno/task-status.md +150 -0
- data/docs/development/INDEX.md +1 -0
- data/docs/development/adding-new-model.md +195 -0
- data/docs/development/technical-design.md +2 -8
- data/lib/kie/models/flux_2_flex_image_to_image.rb +16 -0
- data/lib/kie/models/flux_2_flex_text_to_image.rb +15 -0
- data/lib/kie/models/flux_2_pro_image_to_image.rb +16 -0
- data/lib/kie/models/grok_imagine_image_to_image.rb +15 -0
- data/lib/kie/models/grok_imagine_image_to_video.rb +19 -0
- data/lib/kie/models/grok_imagine_text_to_image.rb +14 -0
- data/lib/kie/models/grok_imagine_text_to_video.rb +15 -0
- data/lib/kie/models/grok_imagine_upscale.rb +12 -0
- data/lib/kie/models/seedream_4_5_edit.rb +16 -0
- data/lib/kie/models/seedream_4_5_text_to_image.rb +15 -0
- data/lib/kie/version.rb +1 -1
- data/lib/kie.rb +10 -0
- metadata +33 -1
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Seedream 4.5 Text-to-Image API
|
|
2
|
+
|
|
3
|
+
Seedream 4.5 Text-to-Image 画像生成 API。
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
Seedream 4.5 Text-to-Image はテキストプロンプトから高品質な画像を生成するモデル。入力画像を必要としない純粋な text-to-image 生成が可能。
|
|
8
|
+
|
|
9
|
+
## タスク作成
|
|
10
|
+
|
|
11
|
+
### エンドポイント
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
POST /api/v1/jobs/createTask
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### リクエストパラメータ
|
|
18
|
+
|
|
19
|
+
#### トップレベル
|
|
20
|
+
|
|
21
|
+
| パラメータ | 型 | 必須 | 説明 |
|
|
22
|
+
|-----------|-----|------|------|
|
|
23
|
+
| `model` | string | Yes | `"seedream/4.5-text-to-image"` 固定 |
|
|
24
|
+
| `input` | object | Yes | 生成パラメータ |
|
|
25
|
+
| `callBackUrl` | string | No | タスク完了時の Webhook URL |
|
|
26
|
+
|
|
27
|
+
#### input オブジェクト
|
|
28
|
+
|
|
29
|
+
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|
|
30
|
+
|-----------|-----|------|-----------|------|
|
|
31
|
+
| `prompt` | string | Yes | - | 画像の説明(最大 3,000 文字) |
|
|
32
|
+
| `aspect_ratio` | string | No | `"1:1"` | 出力アスペクト比 |
|
|
33
|
+
| `quality` | string | No | `"basic"` | 出力品質 |
|
|
34
|
+
|
|
35
|
+
### aspect_ratio の値
|
|
36
|
+
|
|
37
|
+
| 値 | 説明 |
|
|
38
|
+
|----|------|
|
|
39
|
+
| `1:1` | 正方形 |
|
|
40
|
+
| `4:3` | 横長(4:3) |
|
|
41
|
+
| `3:4` | 縦長(3:4) |
|
|
42
|
+
| `16:9` | 横長(16:9、ワイドスクリーン) |
|
|
43
|
+
| `9:16` | 縦長(9:16、スマートフォン向け) |
|
|
44
|
+
| `2:3` | 縦長(2:3) |
|
|
45
|
+
| `3:2` | 横長(3:2) |
|
|
46
|
+
| `21:9` | 超横長(21:9、シネマスコープ) |
|
|
47
|
+
|
|
48
|
+
### quality の値
|
|
49
|
+
|
|
50
|
+
| 値 | 説明 |
|
|
51
|
+
|----|------|
|
|
52
|
+
| `basic` | 2K 解像度(標準品質) |
|
|
53
|
+
| `high` | 4K 解像度(高品質) |
|
|
54
|
+
|
|
55
|
+
### リクエスト例
|
|
56
|
+
|
|
57
|
+
#### 基本的な画像生成
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"model": "seedream/4.5-text-to-image",
|
|
62
|
+
"input": {
|
|
63
|
+
"prompt": "A serene Japanese garden with cherry blossoms in spring"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### 詳細なパラメータ指定
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"model": "seedream/4.5-text-to-image",
|
|
73
|
+
"input": {
|
|
74
|
+
"prompt": "A futuristic cityscape at sunset with flying cars and neon lights",
|
|
75
|
+
"aspect_ratio": "16:9",
|
|
76
|
+
"quality": "high"
|
|
77
|
+
},
|
|
78
|
+
"callBackUrl": "https://example.com/webhook"
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### レスポンス
|
|
83
|
+
|
|
84
|
+
#### 成功時
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"code": 200,
|
|
89
|
+
"msg": "success",
|
|
90
|
+
"data": {
|
|
91
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### エラー時
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"code": 400,
|
|
101
|
+
"msg": "Invalid parameters"
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## タスクステータス取得
|
|
106
|
+
|
|
107
|
+
### エンドポイント
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
GET /api/v1/jobs/queryTask?taskId={taskId}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### クエリパラメータ
|
|
114
|
+
|
|
115
|
+
| パラメータ | 型 | 説明 |
|
|
116
|
+
|-----------|-----|------|
|
|
117
|
+
| `taskId` | string | タスク ID |
|
|
118
|
+
|
|
119
|
+
### レスポンス
|
|
120
|
+
|
|
121
|
+
#### 成功時
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"code": 200,
|
|
126
|
+
"msg": "success",
|
|
127
|
+
"data": {
|
|
128
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
129
|
+
"model": "seedream/4.5-text-to-image",
|
|
130
|
+
"state": "success",
|
|
131
|
+
"param": "{\"prompt\":\"...\"}",
|
|
132
|
+
"resultJson": "{\"resultUrls\":[\"https://...\"]}",
|
|
133
|
+
"costTime": 12000,
|
|
134
|
+
"createTime": 1704067200000,
|
|
135
|
+
"completeTime": 1704067212000
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### 処理中
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"code": 200,
|
|
145
|
+
"msg": "success",
|
|
146
|
+
"data": {
|
|
147
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
148
|
+
"model": "seedream/4.5-text-to-image",
|
|
149
|
+
"state": "waiting"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### 失敗時
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"code": 200,
|
|
159
|
+
"msg": "success",
|
|
160
|
+
"data": {
|
|
161
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
162
|
+
"model": "seedream/4.5-text-to-image",
|
|
163
|
+
"state": "fail",
|
|
164
|
+
"failCode": "CONTENT_POLICY_VIOLATION",
|
|
165
|
+
"failMsg": "The prompt violates content policy"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### タスクステータス
|
|
171
|
+
|
|
172
|
+
| ステータス | 説明 | 終了状態 |
|
|
173
|
+
|-----------|------|----------|
|
|
174
|
+
| `waiting` | 処理待ち | No |
|
|
175
|
+
| `success` | 完了 | Yes (成功) |
|
|
176
|
+
| `fail` | 失敗 | Yes (失敗) |
|
|
177
|
+
|
|
178
|
+
### レスポンスフィールド
|
|
179
|
+
|
|
180
|
+
| フィールド | 型 | 説明 |
|
|
181
|
+
|-----------|-----|------|
|
|
182
|
+
| `taskId` | string | タスク ID |
|
|
183
|
+
| `model` | string | モデル名 |
|
|
184
|
+
| `state` | string | タスクステータス |
|
|
185
|
+
| `param` | string | リクエストパラメータ(JSON 文字列) |
|
|
186
|
+
| `resultJson` | string | 結果(JSON 文字列、成功時のみ) |
|
|
187
|
+
| `failCode` | string | エラーコード(失敗時) |
|
|
188
|
+
| `failMsg` | string | エラーメッセージ(失敗時) |
|
|
189
|
+
| `costTime` | integer | 処理時間(ミリ秒) |
|
|
190
|
+
| `createTime` | integer | 作成日時(Unix ミリ秒) |
|
|
191
|
+
| `completeTime` | integer | 完了日時(Unix ミリ秒) |
|
|
192
|
+
|
|
193
|
+
## Ruby クライアントでの使用
|
|
194
|
+
|
|
195
|
+
```ruby
|
|
196
|
+
client = Kie::Client.new(api_key: "your-api-key")
|
|
197
|
+
|
|
198
|
+
# 基本的な画像生成
|
|
199
|
+
task = client.general.generate(
|
|
200
|
+
model: "seedream/4.5-text-to-image",
|
|
201
|
+
input: {
|
|
202
|
+
prompt: "A majestic mountain landscape at dawn"
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# パラメータ指定
|
|
207
|
+
task = client.general.generate(
|
|
208
|
+
model: "seedream/4.5-text-to-image",
|
|
209
|
+
input: {
|
|
210
|
+
prompt: "An abstract digital art piece with vibrant colors"
|
|
211
|
+
},
|
|
212
|
+
aspect_ratio: "16:9",
|
|
213
|
+
quality: "high"
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
# 結果を取得
|
|
217
|
+
task.wait
|
|
218
|
+
|
|
219
|
+
if task.success?
|
|
220
|
+
image_url = task.urls.first
|
|
221
|
+
puts "Generated: #{image_url}"
|
|
222
|
+
else
|
|
223
|
+
puts "Failed: #{task.error_message}"
|
|
224
|
+
end
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## seedream/4.5-edit との違い
|
|
228
|
+
|
|
229
|
+
| 項目 | seedream/4.5-text-to-image | seedream/4.5-edit |
|
|
230
|
+
|------|---------------------------|-------------------|
|
|
231
|
+
| 入力画像 | 不要 | 必須 |
|
|
232
|
+
| 用途 | テキストから新規画像生成 | 既存画像の編集・変換 |
|
|
233
|
+
| prompt | 画像の説明 | 編集指示 |
|
|
234
|
+
|
|
235
|
+
## コード参照
|
|
236
|
+
|
|
237
|
+
モデル定義は以下のファイルで管理されている:
|
|
238
|
+
|
|
239
|
+
- `lib/kie/models/seedream_4_5_text_to_image.rb`
|
|
240
|
+
|
|
241
|
+
## 関連ドキュメント
|
|
242
|
+
|
|
243
|
+
- [API 共通仕様](../overview.md)
|
|
244
|
+
- [Seedream 4.5 Edit API](seedream-4-5-edit.md)
|
|
245
|
+
- [Nano Banana Pro API](nano-banana-pro.md)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# API 共通仕様
|
|
2
|
+
|
|
3
|
+
Kie.ai API の共通仕様について説明する。
|
|
4
|
+
|
|
5
|
+
## 認証
|
|
6
|
+
|
|
7
|
+
すべての API リクエストには Bearer トークンによる認証が必要。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Authorization: Bearer <API_KEY>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 共通レスポンス形式
|
|
14
|
+
|
|
15
|
+
### 成功レスポンス
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"code": 200,
|
|
20
|
+
"msg": "success",
|
|
21
|
+
"data": {
|
|
22
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### エラーレスポンス
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"code": 400,
|
|
32
|
+
"msg": "Invalid parameters"
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## ステータスコード
|
|
37
|
+
|
|
38
|
+
| コード | 説明 | Ruby クラス |
|
|
39
|
+
|--------|------|-------------|
|
|
40
|
+
| 200 | 成功 | - |
|
|
41
|
+
| 400 | パラメータエラー | `Kie::InvalidParametersError` |
|
|
42
|
+
| 402 | クレジット不足 | `Kie::InsufficientCreditsError` |
|
|
43
|
+
| 422 | バリデーションエラー | `Kie::InvalidParametersError` |
|
|
44
|
+
| 429 | レート制限 | `Kie::RateLimitError` |
|
|
45
|
+
|
|
46
|
+
## コールバック URL
|
|
47
|
+
|
|
48
|
+
非同期処理の完了通知を受け取るための Webhook URL。
|
|
49
|
+
|
|
50
|
+
### 仕様
|
|
51
|
+
|
|
52
|
+
- パラメータ名: `callBackUrl` (Suno) / `callBackUrl` (General)
|
|
53
|
+
- 形式: 有効な HTTP/HTTPS URL
|
|
54
|
+
- タスク完了時に POST リクエストが送信される
|
|
55
|
+
|
|
56
|
+
### コールバックペイロード例
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
61
|
+
"status": "SUCCESS",
|
|
62
|
+
"data": { ... }
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## タスクステータス
|
|
67
|
+
|
|
68
|
+
### Suno タスクステータス
|
|
69
|
+
|
|
70
|
+
| ステータス | 説明 |
|
|
71
|
+
|-----------|------|
|
|
72
|
+
| `PENDING` | 処理待ち |
|
|
73
|
+
| `TEXT_SUCCESS` | テキスト処理完了 |
|
|
74
|
+
| `FIRST_SUCCESS` | 最初の生成完了 |
|
|
75
|
+
| `SUCCESS` | 完了 |
|
|
76
|
+
| `CREATE_TASK_FAILED` | タスク作成失敗 |
|
|
77
|
+
| `GENERATE_AUDIO_FAILED` | 音声生成失敗 |
|
|
78
|
+
| `CALLBACK_EXCEPTION` | コールバック例外 |
|
|
79
|
+
| `SENSITIVE_WORD_ERROR` | 禁止ワード検出 |
|
|
80
|
+
|
|
81
|
+
### General タスクステータス
|
|
82
|
+
|
|
83
|
+
| ステータス | 説明 |
|
|
84
|
+
|-----------|------|
|
|
85
|
+
| `waiting` | 処理待ち |
|
|
86
|
+
| `success` | 完了 |
|
|
87
|
+
| `fail` | 失敗 |
|
|
88
|
+
|
|
89
|
+
## 関連ドキュメント
|
|
90
|
+
|
|
91
|
+
- [Suno API](./suno/INDEX.md)
|
|
92
|
+
- [General API](./general/INDEX.md)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Suno API
|
|
2
|
+
|
|
3
|
+
Suno 音楽生成 API のドキュメント。
|
|
4
|
+
|
|
5
|
+
## ドキュメント一覧
|
|
6
|
+
|
|
7
|
+
- `generate.md`: 音楽生成 API(Generate Music)
|
|
8
|
+
- `task-status.md`: タスクステータス取得 API
|
|
9
|
+
- `models.md`: モデルバージョン別仕様
|
|
10
|
+
|
|
11
|
+
## 概要
|
|
12
|
+
|
|
13
|
+
Suno API は AI による音楽生成を提供する。テキストプロンプトから楽曲を生成し、非同期でタスク結果を取得する。
|
|
14
|
+
|
|
15
|
+
### エンドポイント
|
|
16
|
+
|
|
17
|
+
| 操作 | エンドポイント | メソッド |
|
|
18
|
+
|------|---------------|---------|
|
|
19
|
+
| 音楽生成 | `/api/v1/generate` | POST |
|
|
20
|
+
| ステータス取得 | `/api/v1/generate/{taskId}` | GET |
|
|
21
|
+
|
|
22
|
+
### Ruby クライアントでの使用例
|
|
23
|
+
|
|
24
|
+
```ruby
|
|
25
|
+
client = Kie::Client.new(api_key: "your-api-key")
|
|
26
|
+
|
|
27
|
+
# 音楽を生成
|
|
28
|
+
task = client.generate(
|
|
29
|
+
model: "V4_5",
|
|
30
|
+
input: {
|
|
31
|
+
prompt: "A happy pop song about summer",
|
|
32
|
+
custom_mode: false,
|
|
33
|
+
instrumental: false
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
# 結果を取得
|
|
38
|
+
result = task.wait
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 関連ドキュメント
|
|
42
|
+
|
|
43
|
+
- [API 共通仕様](../overview.md)
|
|
44
|
+
- [General API](../general/INDEX.md)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Suno Generate Music API
|
|
2
|
+
|
|
3
|
+
音楽を生成する API。
|
|
4
|
+
|
|
5
|
+
## エンドポイント
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
POST /api/v1/generate
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## リクエストパラメータ
|
|
12
|
+
|
|
13
|
+
### 必須パラメータ
|
|
14
|
+
|
|
15
|
+
| パラメータ | 型 | 説明 |
|
|
16
|
+
|-----------|-----|------|
|
|
17
|
+
| `model` | string | モデルバージョン。[モデル一覧](./models.md)を参照 |
|
|
18
|
+
| `customMode` | boolean | カスタムモードの有効化。詳細な制御が可能になる |
|
|
19
|
+
| `instrumental` | boolean | `true` の場合、ボーカルなしの楽曲を生成 |
|
|
20
|
+
| `prompt` | string | 楽曲の説明またはリリック。文字数制限は[モデル別仕様](./models.md)を参照 |
|
|
21
|
+
|
|
22
|
+
### 条件付き必須パラメータ
|
|
23
|
+
|
|
24
|
+
`customMode: true` の場合に必要。
|
|
25
|
+
|
|
26
|
+
| パラメータ | 型 | 説明 |
|
|
27
|
+
|-----------|-----|------|
|
|
28
|
+
| `style` | string | 音楽のジャンルや雰囲気。文字数制限は[モデル別仕様](./models.md)を参照 |
|
|
29
|
+
| `title` | string | 楽曲タイトル(最大 80 文字) |
|
|
30
|
+
|
|
31
|
+
### オプションパラメータ
|
|
32
|
+
|
|
33
|
+
| パラメータ | 型 | 値 | 説明 |
|
|
34
|
+
|-----------|-----|-----|------|
|
|
35
|
+
| `callBackUrl` | string | URL | タスク完了時の Webhook URL |
|
|
36
|
+
| `negativeTags` | string | - | 除外するスタイルや特性 |
|
|
37
|
+
| `vocalGender` | string | `m`, `f` | ボーカルの性別(`customMode: true` 時のみ有効) |
|
|
38
|
+
| `styleWeight` | number | 0–1 | スタイル適用の強度(小数点以下 2 桁) |
|
|
39
|
+
| `weirdnessConstraint` | number | 0–1 | 創造的逸脱の制御(小数点以下 2 桁) |
|
|
40
|
+
| `audioWeight` | number | 0–1 | オーディオ特性のバランス(小数点以下 2 桁) |
|
|
41
|
+
| `personaId` | string | - | カスタムペルソナ ID(`customMode: true` 時のみ有効) |
|
|
42
|
+
|
|
43
|
+
## リクエスト例
|
|
44
|
+
|
|
45
|
+
### シンプルモード
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"model": "V4_5",
|
|
50
|
+
"customMode": false,
|
|
51
|
+
"instrumental": false,
|
|
52
|
+
"prompt": "A happy pop song about summer vacation",
|
|
53
|
+
"callBackUrl": "https://example.com/webhook"
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### カスタムモード
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"model": "V5",
|
|
62
|
+
"customMode": true,
|
|
63
|
+
"instrumental": false,
|
|
64
|
+
"prompt": "[Verse 1]\nSunshine on the beach...\n[Chorus]\nSummer days are here...",
|
|
65
|
+
"style": "upbeat pop, acoustic guitar, summer vibes",
|
|
66
|
+
"title": "Summer Days",
|
|
67
|
+
"negativeTags": "sad, melancholic",
|
|
68
|
+
"vocalGender": "f",
|
|
69
|
+
"callBackUrl": "https://example.com/webhook"
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### インストゥルメンタル
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"model": "V4_5",
|
|
78
|
+
"customMode": true,
|
|
79
|
+
"instrumental": true,
|
|
80
|
+
"prompt": "Background music for a video game",
|
|
81
|
+
"style": "orchestral, epic, cinematic",
|
|
82
|
+
"title": "Epic Adventure",
|
|
83
|
+
"callBackUrl": "https://example.com/webhook"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## レスポンス
|
|
88
|
+
|
|
89
|
+
### 成功時
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"code": 200,
|
|
94
|
+
"msg": "success",
|
|
95
|
+
"data": {
|
|
96
|
+
"taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### エラー時
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"code": 400,
|
|
106
|
+
"msg": "Invalid parameters"
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Ruby クライアントでの使用
|
|
111
|
+
|
|
112
|
+
```ruby
|
|
113
|
+
client = Kie::Client.new(api_key: "your-api-key")
|
|
114
|
+
|
|
115
|
+
# シンプルモード
|
|
116
|
+
task = client.generate(
|
|
117
|
+
model: "V4_5",
|
|
118
|
+
input: {
|
|
119
|
+
prompt: "A happy pop song",
|
|
120
|
+
custom_mode: false,
|
|
121
|
+
instrumental: false
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
# カスタムモード
|
|
126
|
+
task = client.generate(
|
|
127
|
+
model: "V5",
|
|
128
|
+
input: {
|
|
129
|
+
prompt: "[Verse]\nLyrics here...",
|
|
130
|
+
custom_mode: true,
|
|
131
|
+
instrumental: false,
|
|
132
|
+
style: "pop, acoustic",
|
|
133
|
+
title: "My Song",
|
|
134
|
+
negative_tags: "sad",
|
|
135
|
+
vocal_gender: "f"
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## バリデーション
|
|
141
|
+
|
|
142
|
+
クライアントライブラリは以下のバリデーションを実行する:
|
|
143
|
+
|
|
144
|
+
- `prompt` の文字数がモデル・モードの制限内か
|
|
145
|
+
- `style` の文字数がモデルの制限内か(`customMode: true` 時)
|
|
146
|
+
- `title` が 80 文字以内か(`customMode: true` 時)
|
|
147
|
+
|
|
148
|
+
バリデーションエラー時は `Kie::ValidationError` が発生する。
|
|
149
|
+
|
|
150
|
+
## 関連ドキュメント
|
|
151
|
+
|
|
152
|
+
- [モデルバージョン別仕様](./models.md)
|
|
153
|
+
- [タスクステータス取得](./task-status.md)
|
|
154
|
+
- [API 共通仕様](../overview.md)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Suno モデルバージョン別仕様
|
|
2
|
+
|
|
3
|
+
Suno API で使用可能なモデルバージョンとその仕様。
|
|
4
|
+
|
|
5
|
+
## 利用可能なモデル
|
|
6
|
+
|
|
7
|
+
| モデル | 説明 |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `V4` | 基本モデル |
|
|
10
|
+
| `V4_5` | V4 の改良版 |
|
|
11
|
+
| `V4_5PLUS` | V4.5 の高品質版 |
|
|
12
|
+
| `V4_5ALL` | V4.5 の全機能版 |
|
|
13
|
+
| `V5` | 最新モデル |
|
|
14
|
+
|
|
15
|
+
## 文字数制限
|
|
16
|
+
|
|
17
|
+
### prompt
|
|
18
|
+
|
|
19
|
+
| モデル | シンプルモード | カスタムモード |
|
|
20
|
+
|--------|----------------|----------------|
|
|
21
|
+
| V4 | 500 文字 | 3,000 文字 |
|
|
22
|
+
| V4_5 | 500 文字 | 5,000 文字 |
|
|
23
|
+
| V4_5PLUS | 500 文字 | 5,000 文字 |
|
|
24
|
+
| V4_5ALL | 500 文字 | 5,000 文字 |
|
|
25
|
+
| V5 | 500 文字 | 5,000 文字 |
|
|
26
|
+
|
|
27
|
+
### style(カスタムモード時)
|
|
28
|
+
|
|
29
|
+
| モデル | 最大文字数 |
|
|
30
|
+
|--------|-----------|
|
|
31
|
+
| V4 | 200 文字 |
|
|
32
|
+
| V4_5 | 1,000 文字 |
|
|
33
|
+
| V4_5PLUS | 1,000 文字 |
|
|
34
|
+
| V4_5ALL | 1,000 文字 |
|
|
35
|
+
| V5 | 1,000 文字 |
|
|
36
|
+
|
|
37
|
+
### title
|
|
38
|
+
|
|
39
|
+
全モデル共通: **最大 80 文字**
|
|
40
|
+
|
|
41
|
+
## モード別の動作
|
|
42
|
+
|
|
43
|
+
### シンプルモード (`customMode: false`)
|
|
44
|
+
|
|
45
|
+
- `prompt` のみで楽曲を生成
|
|
46
|
+
- AI が自動的にスタイルとタイトルを決定
|
|
47
|
+
- prompt の最大文字数: 500 文字
|
|
48
|
+
|
|
49
|
+
### カスタムモード (`customMode: true`)
|
|
50
|
+
|
|
51
|
+
- `style` と `title` が指定可能(必須)
|
|
52
|
+
- `prompt` にリリック構造を含められる(`[Verse]`, `[Chorus]` など)
|
|
53
|
+
- 詳細な音楽生成パラメータを制御可能
|
|
54
|
+
- `vocalGender`, `personaId` が有効になる
|
|
55
|
+
|
|
56
|
+
## コード参照
|
|
57
|
+
|
|
58
|
+
モデル定義は以下のファイルで管理されている:
|
|
59
|
+
|
|
60
|
+
- `lib/kie/models/suno_v4.rb`
|
|
61
|
+
- `lib/kie/models/suno_v4_5.rb`
|
|
62
|
+
- `lib/kie/models/suno_v4_5_plus.rb`
|
|
63
|
+
- `lib/kie/models/suno_v4_5_all.rb`
|
|
64
|
+
- `lib/kie/models/suno_v5.rb`
|
|
65
|
+
|
|
66
|
+
## Ruby クライアントでの使用
|
|
67
|
+
|
|
68
|
+
```ruby
|
|
69
|
+
# V4 モデル(基本)
|
|
70
|
+
task = client.generate(
|
|
71
|
+
model: "V4",
|
|
72
|
+
input: {
|
|
73
|
+
prompt: "A jazz song",
|
|
74
|
+
custom_mode: false,
|
|
75
|
+
instrumental: false
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# V5 モデル(最新)でカスタムモード
|
|
80
|
+
task = client.generate(
|
|
81
|
+
model: "V5",
|
|
82
|
+
input: {
|
|
83
|
+
prompt: "[Verse 1]\n長いリリック...\n[Chorus]\n...",
|
|
84
|
+
custom_mode: true,
|
|
85
|
+
instrumental: false,
|
|
86
|
+
style: "詳細なスタイル指定(最大1000文字)",
|
|
87
|
+
title: "楽曲タイトル"
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 関連ドキュメント
|
|
93
|
+
|
|
94
|
+
- [音楽生成 API](./generate.md)
|
|
95
|
+
- [タスクステータス取得](./task-status.md)
|