runapi-grok-imagine 0.2.13 → 0.2.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2abaf28bececdb68262f69df17c4f7ce6993e8b9c06cdbcdf0bd2a28d76f1a07
4
- data.tar.gz: 59af0fe8b7f046d2e7d4ce05ab3ae1f169feb8ffe737775c8e63f4655db6ad38
3
+ metadata.gz: 9977ae570c6a5ffe4608e156f1f8f752a5ef8f1ad3153eb9995d50d8544d072c
4
+ data.tar.gz: 6e860ff0abebbbc3afca07b44df6eeb24bbef7ca3138470d1fc13d3448bf0f5c
5
5
  SHA512:
6
- metadata.gz: a3bd1dc3ffdd14c1cffcbfb9685f3118fc63734d2e0491d8e9d31ad438e2a04b1b985eaf849931ab25b01e8064915bf822fbca2167fa664f5d5805fbf1fd3cec
7
- data.tar.gz: c59bab1a8968d004599a6ff0d89106f74647d04c811c7e578af2ac75f61af89a0255c6c212cb80cccbfc4e92a9d41bbfa78fe39e9f5f68956cad5ab912b4e3ca
6
+ metadata.gz: 88353615d590fe3779b74fd8d13afcc8fbe41037f390bbb4dd60c8a1de343af0d72179723886f0178adcca1f5755ce63b05209b145d44bd7f32676b45268fcf2
7
+ data.tar.gz: 745f3f6e1af60ef8a3d273cf09e87586028cfe7a6d1d257a6fe9cc064f86d0b2edcccf06cfc12dbe178b726d7234c4087dcb9bd09beae78a4beee7d6bd2bf0e8
@@ -18,6 +18,8 @@ module RunApi
18
18
  attr_reader :image_to_video
19
19
  # @return [Resources::TextToImage] Text-to-image generation operations.
20
20
  attr_reader :text_to_image
21
+ # @return [Resources::SegmentMap] Segmentation map generation operations.
22
+ attr_reader :segment_map
21
23
  # @return [Resources::EditImage] Prompt-guided image editing operations.
22
24
  attr_reader :edit_image
23
25
  # @return [Resources::Extensions] Extend a previously generated video.
@@ -31,6 +33,7 @@ module RunApi
31
33
  @text_to_video = Resources::TextToVideo.new(http)
32
34
  @image_to_video = Resources::ImageToVideo.new(http)
33
35
  @text_to_image = Resources::TextToImage.new(http)
36
+ @segment_map = Resources::SegmentMap.new(http)
34
37
  @edit_image = Resources::EditImage.new(http)
35
38
  @extensions = Resources::Extensions.new(http)
36
39
  @upscales = Resources::Upscales.new(http)
@@ -4,7 +4,7 @@ module RunApi
4
4
  module GrokImagine
5
5
  CONTRACT = {
6
6
  "edit-image" => {
7
- "models" => ["grok-imagine-edit-image"],
7
+ "models" => ["grok-imagine-edit-image", "grok-imagine-image-2-0"],
8
8
  "fields_by_model" => {
9
9
  "grok-imagine-edit-image" => {
10
10
  "model" => {
@@ -13,8 +13,33 @@ module RunApi
13
13
  "source_image_url" => {
14
14
  "required" => true
15
15
  }
16
+ },
17
+ "grok-imagine-image-2-0" => {
18
+ "mask_indices" => {
19
+ "min_items" => 1
20
+ },
21
+ "model" => {
22
+ "required" => true
23
+ },
24
+ "prompt" => {
25
+ "required" => true
26
+ },
27
+ "source_task_id" => {
28
+ "required" => true
29
+ }
16
30
  }
17
- }
31
+ },
32
+ "rules" => [{
33
+ "when" => {
34
+ "model" => "grok-imagine-edit-image"
35
+ },
36
+ "forbidden" => ["source_task_id", "mask_indices"]
37
+ }, {
38
+ "when" => {
39
+ "model" => "grok-imagine-image-2-0"
40
+ },
41
+ "forbidden" => ["source_image_url", "enable_safety_checker"]
42
+ }]
18
43
  },
19
44
  "extend" => {
20
45
  "models" => [],
@@ -146,9 +171,34 @@ module RunApi
146
171
  "forbidden" => ["source_task_id", "index", "motion_style", "enable_safety_checker"]
147
172
  }]
148
173
  },
174
+ "segment-map" => {
175
+ "models" => ["grok-imagine-image-2-0"],
176
+ "fields_by_model" => {
177
+ "grok-imagine-image-2-0" => {
178
+ "model" => {
179
+ "required" => true
180
+ },
181
+ "source_task_id" => {
182
+ "required" => true
183
+ }
184
+ }
185
+ }
186
+ },
149
187
  "text-to-image" => {
150
- "models" => ["grok-imagine-text-to-image"],
188
+ "models" => ["grok-imagine-image-2-0", "grok-imagine-text-to-image"],
151
189
  "fields_by_model" => {
190
+ "grok-imagine-image-2-0" => {
191
+ "aspect_ratio" => {
192
+ "enum" => ["1:1", "2:3", "3:2", "16:9", "9:16"],
193
+ "required" => true
194
+ },
195
+ "model" => {
196
+ "required" => true
197
+ },
198
+ "prompt" => {
199
+ "required" => true
200
+ }
201
+ },
152
202
  "grok-imagine-text-to-image" => {
153
203
  "aspect_ratio" => {
154
204
  "enum" => ["2:3", "3:2", "1:1", "16:9", "9:16"]
@@ -162,7 +212,13 @@ module RunApi
162
212
  "length" => true
163
213
  }
164
214
  }
165
- }
215
+ },
216
+ "rules" => [{
217
+ "when" => {
218
+ "model" => "grok-imagine-image-2-0"
219
+ },
220
+ "forbidden" => ["enable_safety_checker", "enable_pro"]
221
+ }]
166
222
  },
167
223
  "text-to-video" => {
168
224
  "models" => ["grok-imagine-text-to-video", "grok-imagine-video-1.5-fast", "grok-imagine-video-1.5-preview"],
@@ -35,7 +35,6 @@ module RunApi
35
35
 
36
36
  def validate_params!(params)
37
37
  validate_contract!(CONTRACT["edit-image"], params)
38
- raise Core::ValidationError, "source_image_url is required" unless param(params, :source_image_url)
39
38
  end
40
39
  end
41
40
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RunApi
4
+ module GrokImagine
5
+ module Resources
6
+ # Produces an editable segmentation map from an Image 2.0 text-to-image task.
7
+ class SegmentMap
8
+ include RunApi::Core::ResourceHelpers
9
+
10
+ ENDPOINT = "/api/v1/grok_imagine/segment_map"
11
+
12
+ RESPONSE_CLASS = Types::SegmentMapTaskResponse
13
+ COMPLETED_RESPONSE_CLASS = Types::CompletedSegmentMapTaskResponse
14
+
15
+ def initialize(http)
16
+ @http = http
17
+ end
18
+
19
+ def run(options: nil, **params)
20
+ task = create(options: options, **params)
21
+ poll_until_complete { get(task.id, options: options) }
22
+ end
23
+
24
+ def create(options: nil, **params)
25
+ params = compact_params(params)
26
+ validate_params!(params)
27
+ request(:post, ENDPOINT, body: params, options: options)
28
+ end
29
+
30
+ def get(id, options: nil)
31
+ request(:get, "#{ENDPOINT}/#{id}", options: options)
32
+ end
33
+
34
+ private
35
+
36
+ def validate_params!(params)
37
+ validate_contract!(CONTRACT["segment-map"], params)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -37,6 +37,21 @@ module RunApi
37
37
  class CompletedImageTaskResponse < ImageTaskResponse
38
38
  required :images, [-> { MediaUrl }]
39
39
  end
40
+
41
+ class Segment < RunApi::Core::BaseModel
42
+ required :url, String
43
+ optional :name, String
44
+ optional :index, Integer
45
+ end
46
+
47
+ class SegmentMapTaskResponse < AsyncTaskResponse
48
+ optional :segments, [-> { Segment }]
49
+ optional :error, String
50
+ end
51
+
52
+ class CompletedSegmentMapTaskResponse < SegmentMapTaskResponse
53
+ required :segments, [-> { Segment }]
54
+ end
40
55
  end
41
56
  end
42
57
  end
@@ -6,6 +6,7 @@ require_relative "grok_imagine/contract_gen"
6
6
  require_relative "grok_imagine/resources/text_to_video"
7
7
  require_relative "grok_imagine/resources/image_to_video"
8
8
  require_relative "grok_imagine/resources/text_to_image"
9
+ require_relative "grok_imagine/resources/segment_map"
9
10
  require_relative "grok_imagine/resources/edit_image"
10
11
  require_relative "grok_imagine/resources/extensions"
11
12
  require_relative "grok_imagine/resources/upscales"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runapi-grok-imagine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - RunAPI
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.3.3
18
+ version: 0.4.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.3.3
25
+ version: 0.4.0
26
26
  description: The Grok Imagine Ruby SDK is the language-specific package for Grok Imagine
27
27
  on RunAPI. Use this package for image and video generation, image editing, and creative
28
28
  production workflows when your application needs request bodies, task status lookup,
@@ -43,6 +43,7 @@ files:
43
43
  - lib/runapi/grok_imagine/resources/edit_image.rb
44
44
  - lib/runapi/grok_imagine/resources/extensions.rb
45
45
  - lib/runapi/grok_imagine/resources/image_to_video.rb
46
+ - lib/runapi/grok_imagine/resources/segment_map.rb
46
47
  - lib/runapi/grok_imagine/resources/text_to_image.rb
47
48
  - lib/runapi/grok_imagine/resources/text_to_video.rb
48
49
  - lib/runapi/grok_imagine/resources/upscales.rb