From 3da0d59a77d412b745061deb4042a7aad1b0036b Mon Sep 17 00:00:00 2001 From: "sdk-github-actions[bot]" Date: Sat, 5 Sep 2026 20:51:53 +0000 Subject: [PATCH] chore(release): auto --- .sdk.json | 2 +- magic_hour/environment.py | 2 +- magic_hour/resources/v1/ai_clothes_changer/README.md | 2 +- magic_hour/resources/v1/ai_face_editor/README.md | 2 +- magic_hour/resources/v1/ai_gif_generator/README.md | 2 +- magic_hour/resources/v1/ai_headshot_generator/README.md | 2 +- magic_hour/resources/v1/ai_image_editor/README.md | 2 +- magic_hour/resources/v1/ai_image_generator/README.md | 2 +- magic_hour/resources/v1/ai_image_upscaler/README.md | 2 +- magic_hour/resources/v1/ai_meme_generator/README.md | 2 +- magic_hour/resources/v1/ai_qr_code_generator/README.md | 2 +- magic_hour/resources/v1/ai_talking_photo/README.md | 2 +- magic_hour/resources/v1/ai_video_editor/README.md | 2 +- magic_hour/resources/v1/animation/README.md | 2 +- magic_hour/resources/v1/audio_to_video/README.md | 2 +- magic_hour/resources/v1/auto_subtitle_generator/README.md | 2 +- magic_hour/resources/v1/body_swap/README.md | 2 +- magic_hour/resources/v1/character_replace/README.md | 2 +- magic_hour/resources/v1/face_swap/README.md | 2 +- magic_hour/resources/v1/face_swap_photo/README.md | 2 +- magic_hour/resources/v1/head_swap/README.md | 2 +- magic_hour/resources/v1/image_background_remover/README.md | 2 +- magic_hour/resources/v1/image_projects/README.md | 2 +- magic_hour/resources/v1/image_to_video/README.md | 4 ++-- magic_hour/resources/v1/image_to_video/client.py | 4 ++-- magic_hour/resources/v1/lip_sync/README.md | 2 +- magic_hour/resources/v1/photo_colorizer/README.md | 2 +- magic_hour/resources/v1/text_to_video/README.md | 6 ++---- magic_hour/resources/v1/text_to_video/client.py | 6 ++---- magic_hour/resources/v1/video_projects/README.md | 2 +- magic_hour/resources/v1/video_to_video/README.md | 2 +- magic_hour/types/models/v1_image_projects_get_response.py | 2 +- magic_hour/types/models/v1_video_projects_get_response.py | 2 +- magic_hour/types/params/v1_image_to_video_create_body.py | 2 +- magic_hour/types/params/v1_text_to_video_create_body.py | 2 +- pyproject.toml | 2 +- 36 files changed, 40 insertions(+), 44 deletions(-) diff --git a/.sdk.json b/.sdk.json index 6f52820..06035a1 100644 --- a/.sdk.json +++ b/.sdk.json @@ -1,5 +1,5 @@ { - "id": "af1b921e-f170-4783-b220-c2ba014393a3", + "id": "3d6cb3a1-0777-4d71-9f1d-ee4c757afc03", "tracked_paths": [ { "editable": true, diff --git a/magic_hour/environment.py b/magic_hour/environment.py index 749df99..6d788b6 100644 --- a/magic_hour/environment.py +++ b/magic_hour/environment.py @@ -6,7 +6,7 @@ class Environment(enum.Enum): """Pre-defined base URLs for the API""" ENVIRONMENT = "https://api.magichour.ai" - MOCK_SERVER = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.78.0" + MOCK_SERVER = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.78.1" def _get_base_url( diff --git a/magic_hour/resources/v1/ai_clothes_changer/README.md b/magic_hour/resources/v1/ai_clothes_changer/README.md index 2852a28..fec4ba7 100644 --- a/magic_hour/resources/v1/ai_clothes_changer/README.md +++ b/magic_hour/resources/v1/ai_clothes_changer/README.md @@ -125,5 +125,5 @@ res = await client.v1.ai_clothes_changer.create( ##### Example ```python -{"credits_charged": 25, "frame_cost": 25, "id": "cuid-example"} +{"credits_charged": 25, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_face_editor/README.md b/magic_hour/resources/v1/ai_face_editor/README.md index df0d5a0..f2dc8f8 100644 --- a/magic_hour/resources/v1/ai_face_editor/README.md +++ b/magic_hour/resources/v1/ai_face_editor/README.md @@ -191,5 +191,5 @@ res = await client.v1.ai_face_editor.create( ##### Example ```python -{"credits_charged": 1, "frame_cost": 1, "id": "cuid-example"} +{"credits_charged": 1, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_gif_generator/README.md b/magic_hour/resources/v1/ai_gif_generator/README.md index 07d3d40..2f61d3a 100644 --- a/magic_hour/resources/v1/ai_gif_generator/README.md +++ b/magic_hour/resources/v1/ai_gif_generator/README.md @@ -112,5 +112,5 @@ res = await client.v1.ai_gif_generator.create( ##### Example ```python -{"credits_charged": 50, "frame_cost": 50, "id": "cuid-example"} +{"credits_charged": 50, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_headshot_generator/README.md b/magic_hour/resources/v1/ai_headshot_generator/README.md index cf1aa21..27df458 100644 --- a/magic_hour/resources/v1/ai_headshot_generator/README.md +++ b/magic_hour/resources/v1/ai_headshot_generator/README.md @@ -105,5 +105,5 @@ res = await client.v1.ai_headshot_generator.create( ##### Example ```python -{"credits_charged": 50, "frame_cost": 50, "id": "cuid-example"} +{"credits_charged": 50, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_image_editor/README.md b/magic_hour/resources/v1/ai_image_editor/README.md index f3ee448..9d8d47e 100644 --- a/magic_hour/resources/v1/ai_image_editor/README.md +++ b/magic_hour/resources/v1/ai_image_editor/README.md @@ -127,5 +127,5 @@ res = await client.v1.ai_image_editor.create( ##### Example ```python -{"credits_charged": 50, "frame_cost": 50, "id": "cuid-example"} +{"credits_charged": 50, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_image_generator/README.md b/magic_hour/resources/v1/ai_image_generator/README.md index f9e38b0..19edbff 100644 --- a/magic_hour/resources/v1/ai_image_generator/README.md +++ b/magic_hour/resources/v1/ai_image_generator/README.md @@ -131,5 +131,5 @@ res = await client.v1.ai_image_generator.create( ##### Example ```python -{"credits_charged": 5, "frame_cost": 5, "id": "cuid-example"} +{"credits_charged": 5, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_image_upscaler/README.md b/magic_hour/resources/v1/ai_image_upscaler/README.md index 604cc75..f245a7c 100644 --- a/magic_hour/resources/v1/ai_image_upscaler/README.md +++ b/magic_hour/resources/v1/ai_image_upscaler/README.md @@ -118,5 +118,5 @@ res = await client.v1.ai_image_upscaler.create( ##### Example ```python -{"credits_charged": 50, "frame_cost": 50, "id": "cuid-example"} +{"credits_charged": 50, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_meme_generator/README.md b/magic_hour/resources/v1/ai_meme_generator/README.md index b8cda58..1406727 100644 --- a/magic_hour/resources/v1/ai_meme_generator/README.md +++ b/magic_hour/resources/v1/ai_meme_generator/README.md @@ -125,5 +125,5 @@ res = await client.v1.ai_meme_generator.create( ##### Example ```python -{"credits_charged": 10, "frame_cost": 10, "id": "cuid-example"} +{"credits_charged": 10, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_qr_code_generator/README.md b/magic_hour/resources/v1/ai_qr_code_generator/README.md index af11c34..0414597 100644 --- a/magic_hour/resources/v1/ai_qr_code_generator/README.md +++ b/magic_hour/resources/v1/ai_qr_code_generator/README.md @@ -112,5 +112,5 @@ res = await client.v1.ai_qr_code_generator.create( ##### Example ```python -{"credits_charged": 0, "frame_cost": 0, "id": "cuid-example"} +{"credits_charged": 0, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_talking_photo/README.md b/magic_hour/resources/v1/ai_talking_photo/README.md index 2b97990..35baa45 100644 --- a/magic_hour/resources/v1/ai_talking_photo/README.md +++ b/magic_hour/resources/v1/ai_talking_photo/README.md @@ -137,5 +137,5 @@ res = await client.v1.ai_talking_photo.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/ai_video_editor/README.md b/magic_hour/resources/v1/ai_video_editor/README.md index a6a1021..b699677 100644 --- a/magic_hour/resources/v1/ai_video_editor/README.md +++ b/magic_hour/resources/v1/ai_video_editor/README.md @@ -153,5 +153,5 @@ res = await client.v1.ai_video_editor.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/animation/README.md b/magic_hour/resources/v1/animation/README.md index 328932a..c791498 100644 --- a/magic_hour/resources/v1/animation/README.md +++ b/magic_hour/resources/v1/animation/README.md @@ -181,5 +181,5 @@ res = await client.v1.animation.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/audio_to_video/README.md b/magic_hour/resources/v1/audio_to_video/README.md index 920a028..331eaa5 100644 --- a/magic_hour/resources/v1/audio_to_video/README.md +++ b/magic_hour/resources/v1/audio_to_video/README.md @@ -163,5 +163,5 @@ res = await client.v1.audio_to_video.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/auto_subtitle_generator/README.md b/magic_hour/resources/v1/auto_subtitle_generator/README.md index 4322578..fc5623c 100644 --- a/magic_hour/resources/v1/auto_subtitle_generator/README.md +++ b/magic_hour/resources/v1/auto_subtitle_generator/README.md @@ -124,5 +124,5 @@ res = await client.v1.auto_subtitle_generator.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/body_swap/README.md b/magic_hour/resources/v1/body_swap/README.md index 22a83d4..bbc02c8 100644 --- a/magic_hour/resources/v1/body_swap/README.md +++ b/magic_hour/resources/v1/body_swap/README.md @@ -125,5 +125,5 @@ res = await client.v1.body_swap.create( ##### Example ```python -{"credits_charged": 50, "frame_cost": 50, "id": "cuid-example"} +{"credits_charged": 50, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/character_replace/README.md b/magic_hour/resources/v1/character_replace/README.md index d34e84c..9a0dc42 100644 --- a/magic_hour/resources/v1/character_replace/README.md +++ b/magic_hour/resources/v1/character_replace/README.md @@ -171,5 +171,5 @@ res = await client.v1.character_replace.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/face_swap/README.md b/magic_hour/resources/v1/face_swap/README.md index e9443ca..0c8ab76 100644 --- a/magic_hour/resources/v1/face_swap/README.md +++ b/magic_hour/resources/v1/face_swap/README.md @@ -198,5 +198,5 @@ res = await client.v1.face_swap.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/face_swap_photo/README.md b/magic_hour/resources/v1/face_swap_photo/README.md index 3968fa7..3d558d2 100644 --- a/magic_hour/resources/v1/face_swap_photo/README.md +++ b/magic_hour/resources/v1/face_swap_photo/README.md @@ -150,5 +150,5 @@ res = await client.v1.face_swap_photo.create( ##### Example ```python -{"credits_charged": 10, "frame_cost": 10, "id": "cuid-example"} +{"credits_charged": 10, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/head_swap/README.md b/magic_hour/resources/v1/head_swap/README.md index 4731f9b..89b19b6 100644 --- a/magic_hour/resources/v1/head_swap/README.md +++ b/magic_hour/resources/v1/head_swap/README.md @@ -125,5 +125,5 @@ res = await client.v1.head_swap.create( ##### Example ```python -{"credits_charged": 10, "frame_cost": 10, "id": "cuid-example"} +{"credits_charged": 10, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/image_background_remover/README.md b/magic_hour/resources/v1/image_background_remover/README.md index eb1afb5..28b4e60 100644 --- a/magic_hour/resources/v1/image_background_remover/README.md +++ b/magic_hour/resources/v1/image_background_remover/README.md @@ -120,5 +120,5 @@ res = await client.v1.image_background_remover.create( ##### Example ```python -{"credits_charged": 5, "frame_cost": 5, "id": "cuid-example"} +{"credits_charged": 5, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/image_projects/README.md b/magic_hour/resources/v1/image_projects/README.md index e695080..0f4a0df 100644 --- a/magic_hour/resources/v1/image_projects/README.md +++ b/magic_hour/resources/v1/image_projects/README.md @@ -131,5 +131,5 @@ res = await client.v1.image_projects.get(id="cuid-example") ##### Example ```python -{"created_at": "1970-01-01T00:00:00", "credits_charged": 5, "downloads": [{"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.png"}], "enabled": True, "error": {"code": "no_source_face", "message": "Please use an image with a detectable face"}, "id": "cuid-example", "image_count": 1, "name": "Example Name", "status": "complete", "total_frame_cost": 5, "type_": "AI_IMAGE"} +{"created_at": "1970-01-01T00:00:00", "credits_charged": 5, "downloads": [{"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.png"}], "enabled": True, "error": {"code": "no_source_face", "message": "Please use an image with a detectable face"}, "id": "cuid-example", "image_count": 1, "name": "Example Name", "status": "complete", "total_frame_cost": 123, "type_": "AI_IMAGE"} ``` diff --git a/magic_hour/resources/v1/image_to_video/README.md b/magic_hour/resources/v1/image_to_video/README.md index 5438430..306df42 100644 --- a/magic_hour/resources/v1/image_to_video/README.md +++ b/magic_hour/resources/v1/image_to_video/README.md @@ -102,7 +102,7 @@ For detailed examples, see the [product page](https://magichour.ai/products/imag | `end_seconds` | ✓ | ✗ | The total duration of the output video in seconds. Supported durations depend on the chosen model: * **`gemini-omni-1.1`**: 3, 4, 5, 6, 7, 8, 9, 10 * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`ltx-2.5`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 * **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12 * **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.5`**: 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 * **`sora-2`**: 4, 8, 12, 24, 36, 48, 60 * **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15 | `5.0` | | `audio` | ✗ | ✗ | Whether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled * **`ltx-2.3`**: Toggle-able: no additional credits for audio * **`ltx-2.5`**: Toggle-able: no additional credits for audio * **`minimax-h3`**: Toggle-able: no additional credits for audio * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled * **`seedance-2.0`**: Toggle-able: no additional credits for audio * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio * **`seedance-2.5`**: Toggle-able: no additional credits for audio * **`sora-2`**: Toggle-able: no additional credits for audio * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled * **`wan-2.2`**: Not supported | `True` | | `height` | ✗ | ✓ | `height` is deprecated and no longer influences the output video's resolution. This field is retained only for backward compatibility and will be removed in a future release. | `123` | -| `model` | ✗ | ✗ | The AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`. | `"kling-3.0"` | +| `model` | ✗ | ✗ | The AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`. | `"kling-3.0"` | | `name` | ✗ | ✗ | Give your video a custom name for easy identification. | `"My Image To Video video"` | | `resolution` | ✗ | ✗ | Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * **`kling-3.0`**: Supports 720p, 1080p, 4k. * **`ltx-2.3`**: Supports 480p, 720p, 1080p. * **`ltx-2.5`**: Supports 480p, 720p, 1080p. * **`minimax-h3`**: Supports 480p, 720p, 1080p. * **`seedance-1.5`**: Supports 480p, 720p, 1080p. * **`seedance-2.0`**: Supports 480p, 720p. * **`seedance-2.0-mini`**: Supports 480p, 720p. * **`seedance-2.5`**: Supports 480p, 720p. * **`sora-2`**: Supports 720p. * **`veo3.1`**: Supports 720p, 1080p. * **`veo3.1-lite`**: Supports 720p, 1080p. * **`wan-2.2`**: Supports 480p, 720p, 1080p. | `"720p"` | | `style` | ✗ | ✗ | Attributed used to dictate the style of the output | `{"prompt": "a dog running"}` | @@ -160,5 +160,5 @@ res = await client.v1.image_to_video.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/image_to_video/client.py b/magic_hour/resources/v1/image_to_video/client.py index 3352011..1f67405 100644 --- a/magic_hour/resources/v1/image_to_video/client.py +++ b/magic_hour/resources/v1/image_to_video/client.py @@ -240,7 +240,7 @@ def create( This field is retained only for backward compatibility and will be removed in a future release. model: The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. @@ -564,7 +564,7 @@ async def create( This field is retained only for backward compatibility and will be removed in a future release. model: The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. diff --git a/magic_hour/resources/v1/lip_sync/README.md b/magic_hour/resources/v1/lip_sync/README.md index 1da5af2..0650ad0 100644 --- a/magic_hour/resources/v1/lip_sync/README.md +++ b/magic_hour/resources/v1/lip_sync/README.md @@ -175,5 +175,5 @@ res = await client.v1.lip_sync.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/photo_colorizer/README.md b/magic_hour/resources/v1/photo_colorizer/README.md index 34a815c..33cb39e 100644 --- a/magic_hour/resources/v1/photo_colorizer/README.md +++ b/magic_hour/resources/v1/photo_colorizer/README.md @@ -105,5 +105,5 @@ res = await client.v1.photo_colorizer.create( ##### Example ```python -{"credits_charged": 10, "frame_cost": 10, "id": "cuid-example"} +{"credits_charged": 10, "frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/text_to_video/README.md b/magic_hour/resources/v1/text_to_video/README.md index 637133a..254f2e2 100644 --- a/magic_hour/resources/v1/text_to_video/README.md +++ b/magic_hour/resources/v1/text_to_video/README.md @@ -104,7 +104,7 @@ For detailed examples, see the [product page](https://magichour.ai/products/text | `└─ quality_mode` | ✗ | ✓ | DEPRECATED: Please use `resolution` field instead. For backward compatibility: * `quick` maps to 720p resolution * `studio` maps to 1080p resolution This field will be removed in a future version. Use the `resolution` field to directly to specify the resolution. | `"quick"` | | `aspect_ratio` | ✗ | ✗ | Determines the aspect ratio of the output video. * **`gemini-omni-1.1`**: Supports 16:9, 9:16. * **`kling-2.6`**: Supports 9:16, 16:9, 1:1. * **`kling-3.0`**: Supports 9:16, 16:9, 1:1. * **`ltx-2.3`**: Supports 9:16, 16:9, 1:1. * **`ltx-2.5`**: Supports 9:16, 16:9, 1:1. * **`minimax-h3`**: Supports 16:9, 9:16, 1:1. * **`seedance-1.5`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.0`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.0-mini`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.5`**: Supports 9:16, 16:9, 1:1. * **`sora-2`**: Supports 9:16, 16:9. * **`veo3.1`**: Supports 9:16, 16:9. * **`veo3.1-lite`**: Supports 9:16, 16:9. * **`wan-2.2`**: Supports 9:16, 16:9, 1:1. | `"16:9"` | | `audio` | ✗ | ✗ | Whether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled * **`ltx-2.3`**: Toggle-able: no additional credits for audio * **`ltx-2.5`**: Toggle-able: no additional credits for audio * **`minimax-h3`**: Toggle-able: no additional credits for audio * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled * **`seedance-2.0`**: Toggle-able: no additional credits for audio * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio * **`seedance-2.5`**: Toggle-able: no additional credits for audio * **`sora-2`**: Toggle-able: no additional credits for audio * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled * **`wan-2.2`**: Not supported | `True` | -| `model` | ✗ | ✗ | The AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`. | `"kling-3.0"` | +| `model` | ✗ | ✗ | The AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`. | `"kling-3.0"` | | `name` | ✗ | ✗ | Give your video a custom name for easy identification. | `"My Text To Video video"` | | `orientation` | ✗ | ✓ | Deprecated. Use `aspect_ratio` instead. | `"landscape"` | | `resolution` | ✗ | ✗ | Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * **`kling-3.0`**: Supports 720p, 1080p, 4k. * **`ltx-2.3`**: Supports 480p, 720p, 1080p. * **`ltx-2.5`**: Supports 480p, 720p, 1080p. * **`minimax-h3`**: Supports 480p, 720p, 1080p. * **`seedance-1.5`**: Supports 480p, 720p, 1080p. * **`seedance-2.0`**: Supports 480p, 720p. * **`seedance-2.0-mini`**: Supports 480p, 720p. * **`seedance-2.5`**: Supports 480p, 720p. * **`sora-2`**: Supports 720p. * **`veo3.1`**: Supports 720p, 1080p. * **`veo3.1-lite`**: Supports 720p, 1080p. * **`wan-2.2`**: Supports 480p, 720p, 1080p. | `"720p"` | @@ -123,7 +123,6 @@ res = client.v1.text_to_video.create( audio=True, model="kling-3.0", name="My Text To Video video", - orientation="landscape", resolution="720p", ) ``` @@ -142,7 +141,6 @@ res = await client.v1.text_to_video.create( audio=True, model="kling-3.0", name="My Text To Video video", - orientation="landscape", resolution="720p", ) ``` @@ -156,5 +154,5 @@ res = await client.v1.text_to_video.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/resources/v1/text_to_video/client.py b/magic_hour/resources/v1/text_to_video/client.py index 35cc3f5..8f97d34 100644 --- a/magic_hour/resources/v1/text_to_video/client.py +++ b/magic_hour/resources/v1/text_to_video/client.py @@ -247,7 +247,7 @@ def create( model: The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. @@ -319,7 +319,6 @@ def create( audio=True, model="kling-3.0", name="My Text To Video video", - orientation="landscape", resolution="720p", ) ``` @@ -569,7 +568,7 @@ async def create( model: The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. @@ -641,7 +640,6 @@ async def create( audio=True, model="kling-3.0", name="My Text To Video video", - orientation="landscape", resolution="720p", ) ``` diff --git a/magic_hour/resources/v1/video_projects/README.md b/magic_hour/resources/v1/video_projects/README.md index 8429973..14e9cb3 100644 --- a/magic_hour/resources/v1/video_projects/README.md +++ b/magic_hour/resources/v1/video_projects/README.md @@ -131,5 +131,5 @@ res = await client.v1.video_projects.get(id="cuid-example") ##### Example ```python -{"created_at": "1970-01-01T00:00:00", "credits_charged": 450, "download": {"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.mp4"}, "downloads": [{"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.mp4"}], "enabled": True, "end_seconds": 15.0, "error": {"code": "no_source_face", "message": "Please use an image with a detectable face"}, "fps": 30.0, "height": 960, "id": "cuid-example", "name": "Example Name", "start_seconds": 0.0, "status": "complete", "total_frame_cost": 450, "type_": "FACE_SWAP", "width": 512} +{"created_at": "1970-01-01T00:00:00", "credits_charged": 450, "download": {"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.mp4"}, "downloads": [{"expires_at": "2024-10-19T05:16:19.027Z", "url": "https://videos.magichour.ai/id/output.mp4"}], "enabled": True, "end_seconds": 15.0, "error": {"code": "no_source_face", "message": "Please use an image with a detectable face"}, "fps": 30.0, "height": 960, "id": "cuid-example", "name": "Example Name", "start_seconds": 0.0, "status": "complete", "total_frame_cost": 123, "type_": "FACE_SWAP", "width": 512} ``` diff --git a/magic_hour/resources/v1/video_to_video/README.md b/magic_hour/resources/v1/video_to_video/README.md index 3d7e1b5..9b4f52a 100644 --- a/magic_hour/resources/v1/video_to_video/README.md +++ b/magic_hour/resources/v1/video_to_video/README.md @@ -182,5 +182,5 @@ res = await client.v1.video_to_video.create( ##### Example ```python -{"credits_charged": 450, "estimated_frame_cost": 450, "id": "cuid-example"} +{"credits_charged": 450, "estimated_frame_cost": 123, "id": "cuid-example"} ``` diff --git a/magic_hour/types/models/v1_image_projects_get_response.py b/magic_hour/types/models/v1_image_projects_get_response.py index 31c5c45..6d92c51 100644 --- a/magic_hour/types/models/v1_image_projects_get_response.py +++ b/magic_hour/types/models/v1_image_projects_get_response.py @@ -89,5 +89,5 @@ class V1ImageProjectsGetResponse(pydantic.BaseModel): alias="type", ) """ - The type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_SWAP, IMAGE_UPSCALER, IMAGE_ENHANCER, AI_GIF, QR_CODE, PHOTO_EDITOR, PHOTO_COLORIZER, HEAD_SWAP, BODY_SWAP, STORYBOARD, IMAGE_EXPANDER + The type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_SWAP, IMAGE_UPSCALER, IMAGE_ENHANCER, AI_GIF, QR_CODE, PHOTO_EDITOR, PHOTO_COLORIZER, IMAGE_COLOR_GRADER, HEAD_SWAP, BODY_SWAP, STORYBOARD, IMAGE_EXPANDER """ diff --git a/magic_hour/types/models/v1_video_projects_get_response.py b/magic_hour/types/models/v1_video_projects_get_response.py index 9e17313..709a95a 100644 --- a/magic_hour/types/models/v1_video_projects_get_response.py +++ b/magic_hour/types/models/v1_video_projects_get_response.py @@ -116,7 +116,7 @@ class V1VideoProjectsGetResponse(pydantic.BaseModel): alias="type", ) """ - The type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, CHARACTER_REPLACE, VIDEO_COLORIZER, VIDEO_TRANSLATOR, MUSIC_VIDEO, EXTEND, AUDIO_TO_VIDEO, VIDEO_EXPANDER, UGC_AD + The type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, CHARACTER_REPLACE, VIDEO_COLORIZER, VIDEO_COLOR_GRADER, VIDEO_TRANSLATOR, MUSIC_VIDEO, EXTEND, AUDIO_TO_VIDEO, VIDEO_EXPANDER, UGC_AD """ width: int = pydantic.Field( alias="width", diff --git a/magic_hour/types/params/v1_image_to_video_create_body.py b/magic_hour/types/params/v1_image_to_video_create_body.py index bc5c2de..32b26be 100644 --- a/magic_hour/types/params/v1_image_to_video_create_body.py +++ b/magic_hour/types/params/v1_image_to_video_create_body.py @@ -100,7 +100,7 @@ class V1ImageToVideoCreateBody(typing_extensions.TypedDict): """ The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. diff --git a/magic_hour/types/params/v1_text_to_video_create_body.py b/magic_hour/types/params/v1_text_to_video_create_body.py index 4a51fa0..64c3c13 100644 --- a/magic_hour/types/params/v1_text_to_video_create_body.py +++ b/magic_hour/types/params/v1_text_to_video_create_body.py @@ -107,7 +107,7 @@ class V1TextToVideoCreateBody(typing_extensions.TypedDict): """ The AI model to use for video generation. - * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. + * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. diff --git a/pyproject.toml b/pyproject.toml index 29b5682..2e59375 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "magic_hour" -version = "0.78.0" +version = "0.78.1" description = "Python SDK for Magic Hour API" readme = "README.md" authors = []