runapi-seedance 0.2.13 → 0.2.14

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: f3dcc0a950a3026f93a84fd54d89c249abd48daaf512b5717213dc7583d150b7
4
- data.tar.gz: b3f45367f808443c589c7061474a1b39b8f69d0fb951f5d3e1cdda057098aaee
3
+ metadata.gz: 19fc812c328aa39916a08ed301d4baf382dcfa480d93f278f73e43a2f46ba379
4
+ data.tar.gz: bee0b1e06373bebd8431b8252007656afed60fc74c74290a3e14d091a1699f25
5
5
  SHA512:
6
- metadata.gz: c9ecdef4e9d3efe16eea3dfa32e06b4d55cf3573ddc94ed65cddedb8b5f92708f82965b34f42c189f14772f12db3c91fab5192107a07b41d1ff1c58576d963f2
7
- data.tar.gz: a04aa92421f36c6173fdfeeb775372c01b2a8d7e677ed0d4e17c926be50362c853f61a62a0bce552c6b4a5c29b90df74397555fe11d66327660e16b98dca9611
6
+ metadata.gz: f926bfc7eeea79a896963e4f7e7bf99e6b1b3ef519c6bf5c5d0a94363198f1a8b7d55d1778329e7589861f37b26deee343275b84083d5c17a9469bb21e7e0a4f
7
+ data.tar.gz: ce37731e9edf9f1d3456b5b3fa0e4a485bad10d624422a551e354d05893a53e4db331ed91ac4f2aa31b34b50eb337564faa75b29b8151f40ac394627801faa4d
@@ -4,7 +4,7 @@ module RunApi
4
4
  module Seedance
5
5
  CONTRACT = {
6
6
  "text-to-video" => {
7
- "models" => ["seedance-1.5-pro", "seedance-2-mini", "seedance-2.0", "seedance-2.0-fast", "seedance-v1-pro", "seedance-v1-pro-fast"],
7
+ "models" => ["seedance-1.5-pro", "seedance-2-mini", "seedance-2.0", "seedance-2.0-fast", "seedance-2.5", "seedance-v1-pro", "seedance-v1-pro-fast"],
8
8
  "fields_by_model" => {
9
9
  "seedance-1.5-pro" => {
10
10
  "aspect_ratio" => {
@@ -94,6 +94,39 @@ module RunApi
94
94
  "max_items" => 3
95
95
  }
96
96
  },
97
+ "seedance-2.5" => {
98
+ "aspect_ratio" => {
99
+ "enum" => ["1:1", "4:3", "3:4", "16:9", "9:16", "21:9", "auto"]
100
+ },
101
+ "duration_seconds" => {
102
+ "enum" => [-1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
103
+ "type" => "integer"
104
+ },
105
+ "model" => {
106
+ "required" => true
107
+ },
108
+ "output_format" => {
109
+ "enum" => ["mp4", "mov"]
110
+ },
111
+ "output_resolution" => {
112
+ "enum" => ["480p", "720p"]
113
+ },
114
+ "prompt" => {
115
+ "required" => true,
116
+ "min" => 3,
117
+ "max" => 30000,
118
+ "length" => true
119
+ },
120
+ "reference_audio_urls" => {
121
+ "max_items" => 10
122
+ },
123
+ "reference_image_urls" => {
124
+ "max_items" => 30
125
+ },
126
+ "reference_video_urls" => {
127
+ "max_items" => 10
128
+ }
129
+ },
97
130
  "seedance-v1-pro" => {
98
131
  "aspect_ratio" => {
99
132
  "enum" => ["1:1", "4:3", "3:4", "16:9", "9:16", "21:9"]
@@ -130,35 +163,57 @@ module RunApi
130
163
  }
131
164
  },
132
165
  "rules" => [{
166
+ "when" => {
167
+ "model" => "seedance-2.5",
168
+ "first_frame_image_url" => {
169
+ "present" => true
170
+ }
171
+ },
172
+ "forbidden" => ["reference_image_urls", "reference_video_urls", "reference_audio_urls"]
173
+ }, {
174
+ "when" => {
175
+ "model" => "seedance-2.5",
176
+ "last_frame_image_url" => {
177
+ "present" => true
178
+ }
179
+ },
180
+ "required" => ["first_frame_image_url"],
181
+ "forbidden" => ["reference_image_urls", "reference_video_urls", "reference_audio_urls"]
182
+ }, {
133
183
  "when" => {
134
184
  "model" => "seedance-1.5-pro"
135
185
  },
136
- "forbidden" => ["first_frame_image_url", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search"]
186
+ "forbidden" => ["first_frame_image_url", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search", "return_last_frame", "output_format"]
137
187
  }, {
138
188
  "when" => {
139
189
  "model" => "seedance-2-mini"
140
190
  },
141
- "forbidden" => ["source_image_urls", "lock_camera", "seed", "enable_safety_checker"]
191
+ "forbidden" => ["source_image_urls", "lock_camera", "seed", "enable_safety_checker", "return_last_frame", "output_format"]
142
192
  }, {
143
193
  "when" => {
144
194
  "model" => "seedance-2.0"
145
195
  },
146
- "forbidden" => ["source_image_urls", "lock_camera", "seed"]
196
+ "forbidden" => ["source_image_urls", "lock_camera", "seed", "return_last_frame", "output_format"]
147
197
  }, {
148
198
  "when" => {
149
199
  "model" => "seedance-2.0-fast"
150
200
  },
201
+ "forbidden" => ["source_image_urls", "lock_camera", "seed", "return_last_frame", "output_format"]
202
+ }, {
203
+ "when" => {
204
+ "model" => "seedance-2.5"
205
+ },
151
206
  "forbidden" => ["source_image_urls", "lock_camera", "seed"]
152
207
  }, {
153
208
  "when" => {
154
209
  "model" => "seedance-v1-pro"
155
210
  },
156
- "forbidden" => ["source_image_urls", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search", "generate_audio"]
211
+ "forbidden" => ["source_image_urls", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search", "generate_audio", "return_last_frame", "output_format"]
157
212
  }, {
158
213
  "when" => {
159
214
  "model" => "seedance-v1-pro-fast"
160
215
  },
161
- "forbidden" => ["aspect_ratio", "source_image_urls", "lock_camera", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search", "generate_audio"]
216
+ "forbidden" => ["aspect_ratio", "source_image_urls", "lock_camera", "last_frame_image_url", "reference_image_urls", "reference_video_urls", "reference_audio_urls", "web_search", "generate_audio", "return_last_frame", "output_format"]
162
217
  }]
163
218
  }
164
219
  }.freeze
@@ -53,13 +53,15 @@ module RunApi
53
53
  validate_contract!(CONTRACT["text-to-video"], params)
54
54
 
55
55
  model = param(params, :model)
56
- max_prompt = case model
57
- when "seedance-1.5-pro" then Types::PROMPT_MAX_LENGTH_1_5
58
- when *Types::V1_MODELS then Types::PROMPT_MAX_LENGTH_V1
59
- else Types::PROMPT_MAX_LENGTH_2
60
- end
61
- unless prompt.length.between?(Types::PROMPT_MIN_LENGTH, max_prompt)
62
- raise Core::ValidationError, "prompt length must be between #{Types::PROMPT_MIN_LENGTH} and #{max_prompt} characters"
56
+ unless model == "seedance-2.5"
57
+ max_prompt = case model
58
+ when "seedance-1.5-pro" then Types::PROMPT_MAX_LENGTH_1_5
59
+ when *Types::V1_MODELS then Types::PROMPT_MAX_LENGTH_V1
60
+ else Types::PROMPT_MAX_LENGTH_2
61
+ end
62
+ unless prompt.length.between?(Types::PROMPT_MIN_LENGTH, max_prompt)
63
+ raise Core::ValidationError, "prompt length must be between #{Types::PROMPT_MIN_LENGTH} and #{max_prompt} characters"
64
+ end
63
65
  end
64
66
 
65
67
  case model
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runapi-seedance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
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.0
18
+ version: 0.3.5
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.0
25
+ version: 0.3.5
26
26
  description: The Seedance Ruby SDK is the language-specific package for Seedance on
27
27
  RunAPI. Use this package for video generation, animation, and video editing workflows
28
28
  when your application needs request bodies, task status lookup, and consistent RunAPI