Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ These descriptions are based on the current public Kie.ai model pages and live p
- What it does: creates videos from text or images, supports 3 to 15 second generations, std/pro/4K generation modes, multi-shot prompting, stronger scene consistency, and native audio generation
- Who it is by: Kling AI on Kie.ai

### Kling 3.0 Turbo Image to Video

- Good at: faster, lower-cost image-to-video generation when 720p or 1080p output is enough
- What it does: animates one or more source images using `kling/v3-turbo-image-to-video`, 3 to 15 second duration, and 720p/1080p resolution controls
- Who it is by: Kling AI on Kie.ai

### Kling 3.0 Motion Control

- Good at: transferring motion or performance from a reference video onto a subject or scene defined by an image
Expand Down Expand Up @@ -165,14 +171,16 @@ Use one model’s output as another model’s input:

### 5. Multimodal reference video

Use `seedance-2.0` or `seedance-2.0-fast` when you need richer video guidance:
Use `seedance-2.0`, `seedance-2.0-fast`, or `seedance-2.0-mini` when you need richer video guidance:
- plain text-to-video with no media
- one first-frame image
- first+last-frame image guidance
- multimodal reference video with reference images, videos, and audio

`seedance-2.0-fast` uses the same request shape with the lower-cost
`bytedance/seedance-2-fast` provider model and supports `480p` and `720p`.
`seedance-2.0-mini` uses the same request shape with the lower-cost
`bytedance/seedance-2-mini` provider model and supports `480p` and `720p`.
Use `seedance-2.0` when `1080p` output is required.

Seedance uses role-aware media references in the runtime request model:
Expand Down
9 changes: 9 additions & 0 deletions docs/LLM_START_HERE.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,15 @@ Use:

This proves your API key is loaded and the system can talk to Kie.ai.

Seedance 2.0 variants currently share the same multimodal request shape:
- `seedance-2.0` -> `bytedance/seedance-2`, supports `480p`, `720p`, and `1080p`
- `seedance-2.0-fast` -> `bytedance/seedance-2-fast`, supports `480p` and `720p`
- `seedance-2.0-mini` -> `bytedance/seedance-2-mini`, supports `480p` and `720p`

Kling 3.0 Turbo Image to Video is separate from base Kling 3.0:
- `kling-3.0-turbo-i2v` -> `kling/v3-turbo-image-to-video`, supports `720p` and `1080p`
- It uses `prompt`, `image_urls`, `duration`, and `resolution`; it does not use base Kling 3.0 `mode`, `sound`, or `multi_shots` options.

### Test 2: Nano Banana Prompt-Only

Use:
Expand Down
117 changes: 117 additions & 0 deletions specs/models/kling_2_6_motion.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
key: kling-2.6-motion
label: Kling 2.6 Motion Control
family: market
provider_model: kling-2.6/motion-control
task_modes:
- motion_control
inputs:
image:
required_min: 1
required_max: 1
video:
required_min: 1
required_max: 1
audio:
required_min: 0
required_max: 0
input_constraints:
image_formats: [jpg, jpeg, png]
image_max_mb: 10
image_min_dimension_px: 300
image_aspect_ratio_min: 0.4
image_aspect_ratio_max: 2.5
video_formats: [mp4, mov, quicktime, mkv, matroska, x-matroska]
video_max_mb: 100
video_duration_min_seconds: 3
video_duration_max_seconds: 30
video_min_dimension_px: 300
video_aspect_ratio_min: 0.4
video_aspect_ratio_max: 2.5
options:
character_orientation:
type: enum
allowed: [image, video]
default: null
required: true
notes: "'image' keeps the image orientation and caps driving-video duration at 10s; 'video' follows the video orientation and allows up to 30s."
mode:
type: enum
allowed: ['720p', '1080p']
default: null
required: true
value_aliases:
std: '720p'
pro: '1080p'
notes: "The live page expected fields list uses 720p and 1080p, while the help text still mentions std/pro naming."
prompt:
required: false
max_chars: 2500
enhancement_supported: true
enhancement_default_policy: ask
default_profile_key: kling_2_6_motion_control_v1
defaults: {}
transport:
endpoint_family: market
create_path: /api/v1/jobs/createTask
status_path: /api/v1/jobs/recordInfo
callback_supported: true
verification:
verified_from:
- live_page_api_surface
- docs_kie_primary
- site_pricing_page_api
verified_on: '2026-06-19'
verification_notes:
- Verified provider model string and request example from https://docs.kie.ai/market/kling/motion-control.
- The docs request shape uses prompt, input_urls, video_urls, mode, and character_orientation.
- The live https://kie.ai/kling-2.6-motion-control page expected fields list shows prompt, input_urls, video_urls, character_orientation, and mode.
- The live page marks input_urls, video_urls, character_orientation, and mode as required.
- The live page supports JPEG, PNG, and JPG reference images up to 10MB, greater than 300px, with aspect ratio 2:5 to 5:2.
- The live page supports MP4, QuickTime, and X-Matroska videos up to 100MB and one file; help text names .mp4 and .mov.
- The live page states character_orientation=image allows max 10s driving video and character_orientation=video allows max 30s.
- Site pricing rows observed 11 credits / $0.055 per second for 720p and 18 credits / $0.09 per second for 1080p.
field_provenance:
key: inferred
label: inferred
family: inferred
provider_model: verified_docs
task_modes: inferred
inputs.image.required_min: verified_live
inputs.image.required_max: verified_live
inputs.video.required_min: verified_live
inputs.video.required_max: verified_live
inputs.audio.required_min: inferred
inputs.audio.required_max: inferred
input_constraints.image_formats: verified_live
input_constraints.image_max_mb: verified_live
input_constraints.image_min_dimension_px: verified_live
input_constraints.image_aspect_ratio_min: verified_live
input_constraints.image_aspect_ratio_max: verified_live
input_constraints.video_formats: verified_live
input_constraints.video_max_mb: verified_live
input_constraints.video_duration_min_seconds: verified_live
input_constraints.video_duration_max_seconds: verified_live
input_constraints.video_min_dimension_px: verified_live
input_constraints.video_aspect_ratio_min: verified_live
input_constraints.video_aspect_ratio_max: verified_live
options.character_orientation.type: inferred
options.character_orientation.allowed: verified_live
options.character_orientation.default: unknown
options.character_orientation.required: verified_live
options.character_orientation.notes: verified_live
options.mode.type: inferred
options.mode.allowed: verified_live
options.mode.default: unknown
options.mode.required: verified_live
options.mode.value_aliases: inferred
options.mode.notes: verified_live
prompt.required: verified_live
prompt.max_chars: verified_live
prompt.enhancement_supported: inferred
prompt.enhancement_default_policy: inferred
prompt.default_profile_key: inferred
defaults: inferred
transport.endpoint_family: inferred
transport.create_path: verified_docs
transport.status_path: verified_docs
transport.callback_supported: verified_docs
96 changes: 96 additions & 0 deletions specs/models/kling_3_0_turbo_i2v.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
key: kling-3.0-turbo-i2v
label: Kling 3.0 Turbo Image to Video
family: market
provider_model: kling/v3-turbo-image-to-video
task_modes:
- image_to_video
inputs:
image:
required_min: 1
video:
required_min: 0
required_max: 0
audio:
required_min: 0
required_max: 0
input_constraints:
image_formats: [jpeg, jpg, png]
image_max_mb: 10
options:
duration:
type: int_range
min: 3
max: 15
default: 5
required: true
label: Duration
help_text: "Video length in seconds. Kling 3.0 Turbo Image to Video supports 3s through 15s generations."
ui_group: generation
ui_order: 10
resolution:
type: enum
allowed: [720p, 1080p]
default: 720p
required: true
prompt:
required: true
max_chars: 2500
enhancement_supported: true
enhancement_default_policy: ask
default_profile_key: kling_3_0_turbo_i2v_v1
default_profile_keys_by_input_pattern:
single_image: kling_3_0_turbo_i2v_v1
first_last_frames: kling_3_0_turbo_i2v_v1
defaults: {}
transport:
endpoint_family: market
create_path: /api/v1/jobs/createTask
status_path: /api/v1/jobs/recordInfo
callback_supported: true
verification:
verified_from:
- user_supplied_docs
- live_page_api_surface
- site_pricing_api
verified_on: '2026-06-26'
verification_notes:
- Verified against the user-supplied V3 Turbo Image To Video API documentation and https://kie.ai/kling-3-0-turbo on 2026-06-26.
- The live page identifies two flavors, kling/v3-turbo-image-to-video and kling/v3-turbo-text-to-video; this spec intentionally onboards image-to-video only.
- The createTask payload uses provider model kling/v3-turbo-image-to-video with input.prompt, input.image_urls, input.duration, and input.resolution.
- The docs list image/jpeg and image/png inputs up to 10MB, duration 3 through 15 seconds, and resolutions 720p and 1080p.
- The docs say image_urls supports multiple files but do not publish a maximum image count, so the SDK enforces the required minimum only.
- KIE's public pricing API publishes separate Turbo image-to-video rows for 720P and 1080P per-second pricing.
field_provenance:
key: inferred
label: inferred
family: inferred
provider_model: verified_docs
task_modes: inferred
inputs.image.required_min: verified_docs
inputs.image.required_max: unknown
inputs.video.required_min: inferred
inputs.video.required_max: inferred
inputs.audio.required_min: inferred
inputs.audio.required_max: inferred
input_constraints.image_formats: verified_docs
input_constraints.image_max_mb: verified_docs
options.duration.type: inferred
options.duration.min: verified_docs
options.duration.max: verified_docs
options.duration.default: verified_docs
options.duration.required: verified_docs
options.resolution.type: inferred
options.resolution.allowed: verified_docs
options.resolution.default: verified_docs
options.resolution.required: verified_docs
prompt.required: verified_docs
prompt.max_chars: verified_docs
prompt.enhancement_supported: inferred
prompt.enhancement_default_policy: inferred
prompt.default_profile_key: inferred
prompt.default_profile_keys_by_input_pattern: inferred
defaults: inferred
transport.endpoint_family: inferred
transport.create_path: verified_docs
transport.status_path: verified_docs
transport.callback_supported: verified_docs
118 changes: 118 additions & 0 deletions specs/models/seedance_2_0_mini.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
key: seedance-2.0-mini
label: Seedance 2.0 Mini
family: market
provider_model: bytedance/seedance-2-mini
task_modes:
- text_to_video
- reference_to_video
inputs:
image:
required_min: 0
required_max: 9
video:
required_min: 0
required_max: 3
audio:
required_min: 0
required_max: 3
input_constraints:
image_formats: [jpg, jpeg, png, webp, bmp, gif]
image_max_mb: 30
video_duration_max_seconds: 15
options:
return_last_frame:
type: bool
default: false
generate_audio:
type: bool
default: false
resolution:
type: enum
allowed: [480p, 720p]
default: 720p
aspect_ratio:
type: enum
allowed: ['16:9', '4:3', '1:1', '3:4', '9:16', '21:9', adaptive]
default: '16:9'
duration:
type: int_range
min: 4
max: 15
required: true
label: Duration
help_text: "Video length in seconds. Seedance 2.0 Mini supports 4s through 15s generations."
ui_group: generation
ui_order: 10
web_search:
type: bool
default: false
prompt:
required: true
max_chars: null
enhancement_supported: true
enhancement_default_policy: ask
default_profile_key: seedance_2_0_t2v_v1
default_profile_keys_by_input_pattern:
prompt_only: seedance_2_0_t2v_v1
single_image: seedance_2_0_first_frame_v1
first_last_frames: seedance_2_0_first_last_frame_v1
multimodal_reference: seedance_2_0_multimodal_reference_v1
defaults: {}
transport:
endpoint_family: market
create_path: /api/v1/jobs/createTask
status_path: /api/v1/jobs/recordInfo
callback_supported: true
verification:
verified_from:
- live_page_api_surface
- docs_kie_primary
- site_pricing_api
verified_on: '2026-06-26'
verification_notes:
- Verified against https://kie.ai/seedance-2-0-mini and https://docs.kie.ai/market/bytedance/seedance-2-mini on 2026-06-26.
- The live page identifies the provider model as bytedance/seedance-2-mini and uses the same createTask endpoint as the existing Seedance 2.0 models.
- The live page and docs expose the same Seedance multimodal request shape used by Standard and Fast, including first_frame_url, last_frame_url, reference_image_urls, reference_video_urls, reference_audio_urls, generate_audio, resolution, aspect_ratio, duration, and web_search.
- The live page exposes nsfw_checker, but this SDK intentionally leaves it unavailable so the checker remains disabled by default.
- The live pricing API publishes Mini rows for 480p and 720p, with separate no-video-input and with-video-input per-second pricing.
field_provenance:
key: inferred
label: inferred
family: inferred
provider_model: verified_live
task_modes: inferred
inputs.image.required_min: inferred
inputs.image.required_max: verified_docs
inputs.video.required_min: inferred
inputs.video.required_max: verified_docs
inputs.audio.required_min: inferred
inputs.audio.required_max: verified_docs
input_constraints.image_formats: verified_docs
input_constraints.image_max_mb: verified_docs
input_constraints.video_duration_max_seconds: verified_docs
options.return_last_frame.type: verified_docs
options.return_last_frame.default: inferred
options.generate_audio.type: verified_live
options.generate_audio.default: inferred
options.resolution.type: verified_live
options.resolution.allowed: verified_live
options.resolution.default: inferred
options.aspect_ratio.type: verified_live
options.aspect_ratio.allowed: verified_live
options.aspect_ratio.default: inferred
options.duration.type: verified_live
options.duration.min: verified_docs
options.duration.max: verified_live
options.duration.required: inferred
options.web_search.type: verified_live
options.web_search.default: inferred
prompt.required: verified_live
prompt.max_chars: unknown
prompt.enhancement_supported: inferred
prompt.enhancement_default_policy: inferred
prompt.default_profile_key: inferred
prompt.default_profile_keys_by_input_pattern: inferred
transport.endpoint_family: inferred
transport.create_path: verified_docs
transport.status_path: verified_docs
transport.callback_supported: verified_docs
Loading
Loading