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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/add-model.md +155 -0
  3. data/.claude/commands/release.md +118 -0
  4. data/.claude/commands/update-model.md +177 -0
  5. data/CLAUDE.md +1 -0
  6. data/README.md +137 -2
  7. data/docs/api/INDEX.md +12 -0
  8. data/docs/api/general/INDEX.md +59 -0
  9. data/docs/api/general/flux-2-flex-image-to-image.md +257 -0
  10. data/docs/api/general/flux-2-flex-text-to-image.md +237 -0
  11. data/docs/api/general/flux-2-pro-image-to-image.md +257 -0
  12. data/docs/api/general/grok-imagine-image-to-image.md +232 -0
  13. data/docs/api/general/grok-imagine-image-to-video.md +257 -0
  14. data/docs/api/general/grok-imagine-text-to-image.md +237 -0
  15. data/docs/api/general/grok-imagine-text-to-video.md +245 -0
  16. data/docs/api/general/grok-imagine-upscale.md +217 -0
  17. data/docs/api/general/nano-banana-pro.md +275 -0
  18. data/docs/api/general/seedream-4-5-edit.md +252 -0
  19. data/docs/api/general/seedream-4-5-text-to-image.md +245 -0
  20. data/docs/api/overview.md +92 -0
  21. data/docs/api/suno/INDEX.md +44 -0
  22. data/docs/api/suno/generate.md +154 -0
  23. data/docs/api/suno/models.md +95 -0
  24. data/docs/api/suno/task-status.md +150 -0
  25. data/docs/development/INDEX.md +1 -0
  26. data/docs/development/adding-new-model.md +195 -0
  27. data/docs/development/technical-design.md +2 -8
  28. data/lib/kie/models/flux_2_flex_image_to_image.rb +16 -0
  29. data/lib/kie/models/flux_2_flex_text_to_image.rb +15 -0
  30. data/lib/kie/models/flux_2_pro_image_to_image.rb +16 -0
  31. data/lib/kie/models/grok_imagine_image_to_image.rb +15 -0
  32. data/lib/kie/models/grok_imagine_image_to_video.rb +19 -0
  33. data/lib/kie/models/grok_imagine_text_to_image.rb +14 -0
  34. data/lib/kie/models/grok_imagine_text_to_video.rb +15 -0
  35. data/lib/kie/models/grok_imagine_upscale.rb +12 -0
  36. data/lib/kie/models/seedream_4_5_edit.rb +16 -0
  37. data/lib/kie/models/seedream_4_5_text_to_image.rb +15 -0
  38. data/lib/kie/version.rb +1 -1
  39. data/lib/kie.rb +10 -0
  40. metadata +33 -1
@@ -0,0 +1,150 @@
1
+ # Suno タスクステータス API
2
+
3
+ 音楽生成タスクのステータスと結果を取得する API。
4
+
5
+ ## エンドポイント
6
+
7
+ ```
8
+ GET /api/v1/generate/{taskId}
9
+ ```
10
+
11
+ ## パスパラメータ
12
+
13
+ | パラメータ | 型 | 説明 |
14
+ |-----------|-----|------|
15
+ | `taskId` | string | 音楽生成タスクの一意識別子 |
16
+
17
+ ## レスポンス
18
+
19
+ ### 成功時
20
+
21
+ ```json
22
+ {
23
+ "code": 200,
24
+ "msg": "success",
25
+ "data": {
26
+ "taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
27
+ "parentMusicId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
28
+ "param": "{\"model\":\"V4_5\",\"prompt\":\"...\"}",
29
+ "status": "SUCCESS",
30
+ "type": "chirp-v4",
31
+ "operationType": "generate",
32
+ "response": {
33
+ "sunoData": [
34
+ {
35
+ "audioUrl": "https://...",
36
+ "streamAudioUrl": "https://...",
37
+ "imageUrl": "https://...",
38
+ "prompt": "A happy pop song",
39
+ "modelName": "V4_5",
40
+ "title": "Summer Days",
41
+ "tags": "pop, happy",
42
+ "createTime": 1704067200000,
43
+ "duration": 180.5
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### エラー時
52
+
53
+ ```json
54
+ {
55
+ "code": 200,
56
+ "msg": "success",
57
+ "data": {
58
+ "taskId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
59
+ "status": "GENERATE_AUDIO_FAILED",
60
+ "errorCode": 408,
61
+ "errorMessage": "Generation timeout"
62
+ }
63
+ }
64
+ ```
65
+
66
+ ## タスクステータス
67
+
68
+ | ステータス | 説明 | 終了状態 |
69
+ |-----------|------|----------|
70
+ | `PENDING` | 処理待ち | No |
71
+ | `TEXT_SUCCESS` | テキスト処理完了 | No |
72
+ | `FIRST_SUCCESS` | 最初の生成完了 | No |
73
+ | `SUCCESS` | 生成完了 | Yes (成功) |
74
+ | `CREATE_TASK_FAILED` | タスク作成失敗 | Yes (失敗) |
75
+ | `GENERATE_AUDIO_FAILED` | 音声生成失敗 | Yes (失敗) |
76
+ | `CALLBACK_EXCEPTION` | コールバック例外 | Yes (失敗) |
77
+ | `SENSITIVE_WORD_ERROR` | 禁止ワード検出 | Yes (失敗) |
78
+
79
+ ## レスポンスフィールド
80
+
81
+ ### メインフィールド
82
+
83
+ | フィールド | 型 | 説明 |
84
+ |-----------|-----|------|
85
+ | `taskId` | string | タスク ID |
86
+ | `parentMusicId` | string | 拡張元の音楽 ID(extend 操作時) |
87
+ | `param` | string | 生成に使用したパラメータ(JSON 文字列) |
88
+ | `status` | string | タスクステータス |
89
+ | `type` | string | タスクタイプ(`chirp-v3-5`, `chirp-v4`) |
90
+ | `operationType` | string | 操作タイプ |
91
+ | `errorCode` | integer | エラーコード(失敗時) |
92
+ | `errorMessage` | string | エラーメッセージ(失敗時) |
93
+
94
+ ### operationType
95
+
96
+ | 値 | 説明 |
97
+ |----|------|
98
+ | `generate` | 新規生成 |
99
+ | `extend` | 楽曲の延長 |
100
+ | `upload_cover` | カバー画像アップロード |
101
+ | `upload_extend` | 拡張用アップロード |
102
+
103
+ ### sunoData フィールド
104
+
105
+ | フィールド | 型 | 説明 |
106
+ |-----------|-----|------|
107
+ | `audioUrl` | string | 音声ファイル URL |
108
+ | `streamAudioUrl` | string | ストリーミング用 URL |
109
+ | `imageUrl` | string | カバー画像 URL |
110
+ | `prompt` | string | 使用したプロンプト |
111
+ | `modelName` | string | モデル名 |
112
+ | `title` | string | 楽曲タイトル |
113
+ | `tags` | string | 音楽のタグ |
114
+ | `createTime` | integer | 作成日時(Unix ミリ秒) |
115
+ | `duration` | number | 楽曲の長さ(秒) |
116
+
117
+ ## Ruby クライアントでの使用
118
+
119
+ ```ruby
120
+ client = Kie::Client.new(api_key: "your-api-key")
121
+
122
+ # 生成タスクを作成
123
+ task = client.generate(
124
+ model: "V4_5",
125
+ input: {
126
+ prompt: "A happy pop song",
127
+ custom_mode: false,
128
+ instrumental: false
129
+ }
130
+ )
131
+
132
+ # ステータスを確認
133
+ status = task.status # => "PENDING"
134
+
135
+ # 完了まで待機(ポーリング)
136
+ result = task.wait
137
+
138
+ # 結果を取得
139
+ if result["status"] == "SUCCESS"
140
+ audio_url = result.dig("response", "sunoData", 0, "audioUrl")
141
+ puts "Generated: #{audio_url}"
142
+ else
143
+ puts "Failed: #{result['errorMessage']}"
144
+ end
145
+ ```
146
+
147
+ ## 関連ドキュメント
148
+
149
+ - [音楽生成 API](./generate.md)
150
+ - [API 共通仕様](../overview.md)
@@ -1,3 +1,4 @@
1
1
  # Development Documents
2
2
 
3
3
  - `technical-design.md`: アーキテクチャ、技術設計、開発環境
4
+ - `adding-new-model.md`: 新モデル追加時の変更対象ファイルと手順
@@ -0,0 +1,195 @@
1
+ # 新モデル追加ガイド
2
+
3
+ このドキュメントでは、Kie.ai Ruby Client に新しいモデルを追加する際に変更が必要なファイルと手順を説明します。
4
+
5
+ ## 変更対象ファイル一覧
6
+
7
+ ### 1. コード変更(必須)
8
+
9
+ | ファイル | 変更内容 |
10
+ |:---------|:---------|
11
+ | `lib/kie/models/<model_name>.rb` | モデル定義ファイルの新規作成 |
12
+ | `lib/kie.rb` | require 文の追加 |
13
+
14
+ ### 2. テスト変更(必須)
15
+
16
+ | ファイル | 変更内容 |
17
+ |:---------|:---------|
18
+ | `spec/kie/models/<model_name>_spec.rb` | モデルスペックの新規作成 |
19
+ | `spec/integration/model_routing_spec.rb` | ルーティングテストへの追加 |
20
+
21
+ ### 3. ドキュメント変更(必須)
22
+
23
+ | ファイル | 変更内容 |
24
+ |:---------|:---------|
25
+ | `README.md` | Supported Models テーブルへの追加 |
26
+ | `docs/api/<category>/<model>.md` | API 仕様ドキュメントの新規作成 |
27
+ | `docs/api/<category>/INDEX.md` | INDEX への参照追加 |
28
+
29
+ ## 詳細手順
30
+
31
+ ### Step 1: モデル定義ファイルの作成
32
+
33
+ `lib/kie/models/<model_name>.rb` を作成します。
34
+
35
+ **Suno モデルの場合:**
36
+
37
+ ```ruby
38
+ # frozen_string_literal: true
39
+
40
+ Kie::ModelRegistry.register(
41
+ Kie::ModelDefinition.new(
42
+ name: "<MODEL_NAME>",
43
+ category: :suno,
44
+ input_constraints: {
45
+ prompt: { type: :string, max_length: 3000, max_length_non_custom: 500 },
46
+ style: { type: :string, max_length: 200 },
47
+ title: { type: :string, max_length: 80 }
48
+ },
49
+ parameters: {}
50
+ )
51
+ )
52
+ ```
53
+
54
+ **General モデルの場合:**
55
+
56
+ ```ruby
57
+ # frozen_string_literal: true
58
+
59
+ Kie::ModelRegistry.register(
60
+ Kie::ModelDefinition.new(
61
+ name: "<model-name>",
62
+ category: :general,
63
+ input_constraints: {
64
+ prompt: { type: :string, max_length: 20_000, required: true },
65
+ images: { type: :array, max_items: 8, max_file_size: 30_000_000, formats: %w[jpeg png webp], required: false }
66
+ },
67
+ parameters: {
68
+ aspect_ratio: { type: :enum, values: %w[1:1 16:9], default: "1:1" },
69
+ resolution: { type: :enum, values: %w[1K 2K 4K], default: "1K" },
70
+ output_format: { type: :enum, values: %w[png jpg], default: "png" }
71
+ }
72
+ )
73
+ )
74
+ ```
75
+
76
+ ### Step 2: lib/kie.rb への require 追加
77
+
78
+ `lib/kie.rb` の末尾にある「Model definitions」セクションに追加します。
79
+
80
+ ```ruby
81
+ # Model definitions
82
+ require_relative "kie/models/nano_banana_pro"
83
+ require_relative "kie/models/suno_v4"
84
+ # ... 既存のモデル ...
85
+ require_relative "kie/models/<model_name>" # ← 追加
86
+ ```
87
+
88
+ ### Step 3: モデルスペックの作成
89
+
90
+ `spec/kie/models/<model_name>_spec.rb` を作成します。
91
+
92
+ ```ruby
93
+ # frozen_string_literal: true
94
+
95
+ RSpec.describe "<MODEL_NAME> model definition" do
96
+ subject(:definition) { Kie::ModelRegistry.find("<MODEL_NAME>") }
97
+
98
+ it "is registered in ModelRegistry" do
99
+ expect(Kie::ModelRegistry.registered?("<MODEL_NAME>")).to be true
100
+ end
101
+
102
+ describe "basic attributes" do
103
+ it "has correct name" do
104
+ expect(definition.name).to eq("<MODEL_NAME>")
105
+ end
106
+
107
+ it "has correct category" do
108
+ expect(definition.category).to eq(:<category>) # :suno or :general
109
+ end
110
+ end
111
+
112
+ describe "input constraints" do
113
+ # モデル固有の制約をテスト
114
+ end
115
+ end
116
+ ```
117
+
118
+ ### Step 4: ルーティングテストへの追加
119
+
120
+ `spec/integration/model_routing_spec.rb` の `expected_models` ハッシュに追加します。
121
+
122
+ ```ruby
123
+ let(:expected_models) do
124
+ {
125
+ "nano-banana-pro" => :general,
126
+ "V4" => :suno,
127
+ # ... 既存のモデル ...
128
+ "<MODEL_NAME>" => :<category> # ← 追加
129
+ }
130
+ end
131
+ ```
132
+
133
+ Suno モデルの場合は `shared_examples` のコンテキストも追加します。
134
+
135
+ ```ruby
136
+ context "with <MODEL_NAME> model" do
137
+ include_examples "suno model routing", "<MODEL_NAME>"
138
+ end
139
+ ```
140
+
141
+ ### Step 5: README の更新
142
+
143
+ `README.md` の Supported Models セクションに追加します。
144
+
145
+ **Suno モデルの場合:**
146
+
147
+ ```markdown
148
+ ### Suno Models (Music Generation)
149
+
150
+ | Model | Description |
151
+ |:------|:------------|
152
+ | `V4` | Suno V4 |
153
+ | ... |
154
+ | `<MODEL_NAME>` | <Description> | <!-- 追加 -->
155
+ ```
156
+
157
+ **General モデルの場合:**
158
+
159
+ ```markdown
160
+ ### General Models (Image Generation)
161
+
162
+ | Model | Description |
163
+ |:------|:------------|
164
+ | `nano-banana-pro` | High-quality image generation |
165
+ | `<model-name>` | <Description> | <!-- 追加 -->
166
+ ```
167
+
168
+ ### Step 6: API ドキュメントの作成
169
+
170
+ `docs/api/<category>/<model>.md` を作成し、`docs/api/<category>/INDEX.md` に参照を追加します。
171
+
172
+ ## チェックリスト
173
+
174
+ 新モデル追加時は以下を確認してください:
175
+
176
+ ### コード
177
+
178
+ - [ ] `lib/kie/models/<model_name>.rb` - モデル定義作成
179
+ - [ ] `lib/kie.rb` - require 追加
180
+
181
+ ### テスト
182
+
183
+ - [ ] `spec/kie/models/<model_name>_spec.rb` - スペック作成
184
+ - [ ] `spec/integration/model_routing_spec.rb` - ルーティングテスト追加
185
+
186
+ ### ドキュメント
187
+
188
+ - [ ] `README.md` - Supported Models 更新
189
+ - [ ] `docs/api/<category>/<model>.md` - API 仕様作成
190
+ - [ ] `docs/api/<category>/INDEX.md` - INDEX 更新
191
+
192
+ ### 検証
193
+
194
+ - [ ] 全テスト通過確認: `bundle exec rspec`
195
+ - [ ] Lint 通過確認: `bundle exec rubocop`
@@ -67,11 +67,5 @@ GitHub Actions による自動化:
67
67
  - SimpleCov によるカバレッジ測定
68
68
 
69
69
  ### 拡張方法
70
- 新モデル追加は定義ファイルの編集のみ:
71
- ```yaml
72
- model_name: "new-model"
73
- format_type: "Standard"
74
- validations:
75
- input_length: 1000
76
- aspect_ratios: ["16:9", "1:1"]
77
- ```
70
+
71
+ 新モデルを追加する際の詳細な手順は [adding-new-model.md](./adding-new-model.md) を参照してください。
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "flux-2/flex-image-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: true },
9
+ input_urls: { type: :array, max_items: 8, max_file_size: 10_000_000, formats: %w[jpeg png webp], required: true }
10
+ },
11
+ parameters: {
12
+ aspect_ratio: { type: :enum, values: %w[1:1 4:3 3:4 16:9 9:16 3:2 2:3 auto], default: "1:1" },
13
+ resolution: { type: :enum, values: %w[1K 2K], default: "1K" }
14
+ }
15
+ )
16
+ )
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "flux-2/flex-text-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: true }
9
+ },
10
+ parameters: {
11
+ aspect_ratio: { type: :enum, values: %w[1:1 4:3 3:4 16:9 9:16 3:2 2:3 auto], default: "1:1" },
12
+ resolution: { type: :enum, values: %w[1K 2K], default: "1K" }
13
+ }
14
+ )
15
+ )
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "flux-2/pro-image-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: true },
9
+ input_urls: { type: :array, max_items: 8, max_file_size: 10_000_000, formats: %w[jpeg png webp], required: true }
10
+ },
11
+ parameters: {
12
+ aspect_ratio: { type: :enum, values: %w[1:1 4:3 3:4 16:9 9:16 3:2 2:3 auto], default: "4:3" },
13
+ resolution: { type: :enum, values: %w[1K 2K], default: "1K" }
14
+ }
15
+ )
16
+ )
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "grok-imagine/image-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 390_000, required: false },
9
+ image_urls: {
10
+ type: :array, max_items: 1, max_file_size: 10_000_000, formats: %w[jpeg png webp], required: true
11
+ }
12
+ },
13
+ parameters: {}
14
+ )
15
+ )
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "grok-imagine/image-to-video",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: false },
9
+ image_urls: {
10
+ type: :array, max_items: 1, max_file_size: 10_000_000, formats: %w[jpeg png webp], required: false
11
+ },
12
+ task_id: { type: :string, max_length: 100, required: false },
13
+ index: { type: :number, min: 0, max: 5, required: false }
14
+ },
15
+ parameters: {
16
+ mode: { type: :enum, values: %w[fun normal spicy], default: "normal" }
17
+ }
18
+ )
19
+ )
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "grok-imagine/text-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: true }
9
+ },
10
+ parameters: {
11
+ aspect_ratio: { type: :enum, values: %w[2:3 3:2 1:1 9:16 16:9], default: "3:2" }
12
+ }
13
+ )
14
+ )
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "grok-imagine/text-to-video",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 5_000, required: true }
9
+ },
10
+ parameters: {
11
+ aspect_ratio: { type: :enum, values: %w[2:3 3:2 1:1 9:16 16:9], default: "2:3" },
12
+ mode: { type: :enum, values: %w[fun normal spicy], default: "normal" }
13
+ }
14
+ )
15
+ )
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "grok-imagine/upscale",
6
+ category: :general,
7
+ input_constraints: {
8
+ task_id: { type: :string, max_length: 100, required: true }
9
+ },
10
+ parameters: {}
11
+ )
12
+ )
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "seedream/4.5-edit",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 3_000, required: true },
9
+ image_urls: { type: :array, max_file_size: 10_000_000, formats: %w[jpeg png webp], required: true }
10
+ },
11
+ parameters: {
12
+ aspect_ratio: { type: :enum, values: %w[1:1 4:3 3:4 16:9 9:16 2:3 3:2 21:9], default: "1:1" },
13
+ quality: { type: :enum, values: %w[basic high], default: "basic" }
14
+ }
15
+ )
16
+ )
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ Kie::ModelRegistry.register(
4
+ Kie::ModelDefinition.new(
5
+ name: "seedream/4.5-text-to-image",
6
+ category: :general,
7
+ input_constraints: {
8
+ prompt: { type: :string, max_length: 3_000, required: true }
9
+ },
10
+ parameters: {
11
+ aspect_ratio: { type: :enum, values: %w[1:1 4:3 3:4 16:9 9:16 2:3 3:2 21:9], default: "1:1" },
12
+ quality: { type: :enum, values: %w[basic high], default: "basic" }
13
+ }
14
+ )
15
+ )
data/lib/kie/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kie
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/kie.rb CHANGED
@@ -24,3 +24,13 @@ require_relative "kie/models/suno_v4_5"
24
24
  require_relative "kie/models/suno_v4_5_plus"
25
25
  require_relative "kie/models/suno_v4_5_all"
26
26
  require_relative "kie/models/suno_v5"
27
+ require_relative "kie/models/seedream_4_5_edit"
28
+ require_relative "kie/models/seedream_4_5_text_to_image"
29
+ require_relative "kie/models/flux_2_pro_image_to_image"
30
+ require_relative "kie/models/flux_2_flex_image_to_image"
31
+ require_relative "kie/models/flux_2_flex_text_to_image"
32
+ require_relative "kie/models/grok_imagine_image_to_video"
33
+ require_relative "kie/models/grok_imagine_text_to_video"
34
+ require_relative "kie/models/grok_imagine_image_to_image"
35
+ require_relative "kie/models/grok_imagine_text_to_image"
36
+ require_relative "kie/models/grok_imagine_upscale"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kie-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sho DOUHASHI
@@ -32,10 +32,13 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - ".claude/agents/project-environment-setup.md"
35
+ - ".claude/commands/add-model.md"
36
+ - ".claude/commands/release.md"
35
37
  - ".claude/commands/soba/implement.md"
36
38
  - ".claude/commands/soba/plan.md"
37
39
  - ".claude/commands/soba/review.md"
38
40
  - ".claude/commands/soba/revise.md"
41
+ - ".claude/commands/update-model.md"
39
42
  - ".devcontainer/LICENSE"
40
43
  - ".devcontainer/README.md"
41
44
  - ".devcontainer/bin/devcontainer-common.sh"
@@ -55,9 +58,28 @@ files:
55
58
  - LICENSE
56
59
  - README.md
57
60
  - Rakefile
61
+ - docs/api/INDEX.md
62
+ - docs/api/general/INDEX.md
63
+ - docs/api/general/flux-2-flex-image-to-image.md
64
+ - docs/api/general/flux-2-flex-text-to-image.md
65
+ - docs/api/general/flux-2-pro-image-to-image.md
66
+ - docs/api/general/grok-imagine-image-to-image.md
67
+ - docs/api/general/grok-imagine-image-to-video.md
68
+ - docs/api/general/grok-imagine-text-to-image.md
69
+ - docs/api/general/grok-imagine-text-to-video.md
70
+ - docs/api/general/grok-imagine-upscale.md
71
+ - docs/api/general/nano-banana-pro.md
72
+ - docs/api/general/seedream-4-5-edit.md
73
+ - docs/api/general/seedream-4-5-text-to-image.md
74
+ - docs/api/overview.md
75
+ - docs/api/suno/INDEX.md
76
+ - docs/api/suno/generate.md
77
+ - docs/api/suno/models.md
78
+ - docs/api/suno/task-status.md
58
79
  - docs/business/INDEX.md
59
80
  - docs/business/overview.md
60
81
  - docs/development/INDEX.md
82
+ - docs/development/adding-new-model.md
61
83
  - docs/development/technical-design.md
62
84
  - docs/document_system.md
63
85
  - lefthook.yml
@@ -69,7 +91,17 @@ files:
69
91
  - lib/kie/middleware/raise_error.rb
70
92
  - lib/kie/model_definition.rb
71
93
  - lib/kie/model_registry.rb
94
+ - lib/kie/models/flux_2_flex_image_to_image.rb
95
+ - lib/kie/models/flux_2_flex_text_to_image.rb
96
+ - lib/kie/models/flux_2_pro_image_to_image.rb
97
+ - lib/kie/models/grok_imagine_image_to_image.rb
98
+ - lib/kie/models/grok_imagine_image_to_video.rb
99
+ - lib/kie/models/grok_imagine_text_to_image.rb
100
+ - lib/kie/models/grok_imagine_text_to_video.rb
101
+ - lib/kie/models/grok_imagine_upscale.rb
72
102
  - lib/kie/models/nano_banana_pro.rb
103
+ - lib/kie/models/seedream_4_5_edit.rb
104
+ - lib/kie/models/seedream_4_5_text_to_image.rb
73
105
  - lib/kie/models/suno_v4.rb
74
106
  - lib/kie/models/suno_v4_5.rb
75
107
  - lib/kie/models/suno_v4_5_all.rb