magic_hour 0.33.1__py3-none-any.whl → 0.35.0__py3-none-any.whl

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.

Potentially problematic release.


This version of magic_hour might be problematic. Click here for more details.

Files changed (103) hide show
  1. magic_hour/environment.py +1 -1
  2. magic_hour/resources/v1/ai_clothes_changer/README.md +5 -5
  3. magic_hour/resources/v1/ai_clothes_changer/client.py +4 -4
  4. magic_hour/resources/v1/ai_face_editor/README.md +2 -2
  5. magic_hour/resources/v1/ai_face_editor/client.py +2 -2
  6. magic_hour/resources/v1/ai_gif_generator/README.md +2 -2
  7. magic_hour/resources/v1/ai_gif_generator/client.py +2 -2
  8. magic_hour/resources/v1/ai_headshot_generator/README.md +3 -3
  9. magic_hour/resources/v1/ai_headshot_generator/client.py +2 -2
  10. magic_hour/resources/v1/ai_image_editor/README.md +2 -2
  11. magic_hour/resources/v1/ai_image_editor/client.py +2 -2
  12. magic_hour/resources/v1/ai_image_generator/README.md +5 -5
  13. magic_hour/resources/v1/ai_image_generator/client.py +8 -8
  14. magic_hour/resources/v1/ai_image_upscaler/README.md +3 -3
  15. magic_hour/resources/v1/ai_image_upscaler/client.py +8 -4
  16. magic_hour/resources/v1/ai_meme_generator/README.md +1 -1
  17. magic_hour/resources/v1/ai_photo_editor/README.md +2 -2
  18. magic_hour/resources/v1/ai_photo_editor/client.py +2 -2
  19. magic_hour/resources/v1/ai_qr_code_generator/README.md +2 -2
  20. magic_hour/resources/v1/ai_qr_code_generator/client.py +2 -2
  21. magic_hour/resources/v1/ai_talking_photo/README.md +2 -2
  22. magic_hour/resources/v1/ai_talking_photo/client.py +2 -2
  23. magic_hour/resources/v1/animation/README.md +8 -8
  24. magic_hour/resources/v1/animation/client.py +8 -8
  25. magic_hour/resources/v1/auto_subtitle_generator/README.md +4 -4
  26. magic_hour/resources/v1/auto_subtitle_generator/client.py +6 -6
  27. magic_hour/resources/v1/face_detection/README.md +10 -6
  28. magic_hour/resources/v1/face_detection/client.py +12 -4
  29. magic_hour/resources/v1/face_swap/README.md +6 -10
  30. magic_hour/resources/v1/face_swap/client.py +26 -34
  31. magic_hour/resources/v1/face_swap_photo/README.md +2 -2
  32. magic_hour/resources/v1/face_swap_photo/client.py +2 -2
  33. magic_hour/resources/v1/files/upload_urls/README.md +7 -6
  34. magic_hour/resources/v1/files/upload_urls/client.py +14 -12
  35. magic_hour/resources/v1/image_background_remover/README.md +2 -2
  36. magic_hour/resources/v1/image_background_remover/client.py +2 -2
  37. magic_hour/resources/v1/image_projects/README.md +8 -8
  38. magic_hour/resources/v1/image_projects/client.py +10 -10
  39. magic_hour/resources/v1/image_to_video/README.md +7 -5
  40. magic_hour/resources/v1/image_to_video/client.py +34 -12
  41. magic_hour/resources/v1/lip_sync/README.md +6 -10
  42. magic_hour/resources/v1/lip_sync/client.py +26 -34
  43. magic_hour/resources/v1/photo_colorizer/README.md +2 -2
  44. magic_hour/resources/v1/photo_colorizer/client.py +2 -2
  45. magic_hour/resources/v1/text_to_video/README.md +6 -4
  46. magic_hour/resources/v1/text_to_video/client.py +18 -4
  47. magic_hour/resources/v1/video_projects/README.md +7 -7
  48. magic_hour/resources/v1/video_projects/client.py +8 -8
  49. magic_hour/resources/v1/video_to_video/README.md +11 -15
  50. magic_hour/resources/v1/video_to_video/client.py +30 -38
  51. magic_hour/types/models/v1_face_detection_create_response.py +1 -1
  52. magic_hour/types/models/v1_face_detection_get_response.py +1 -1
  53. magic_hour/types/models/v1_files_upload_urls_create_response.py +3 -0
  54. magic_hour/types/models/v1_video_projects_get_response.py +2 -2
  55. magic_hour/types/params/v1_ai_clothes_changer_create_body.py +1 -1
  56. magic_hour/types/params/v1_ai_clothes_changer_create_body_assets.py +15 -2
  57. magic_hour/types/params/v1_ai_face_editor_create_body.py +1 -1
  58. magic_hour/types/params/v1_ai_face_editor_create_body_assets.py +6 -1
  59. magic_hour/types/params/v1_ai_face_editor_create_body_style.py +44 -47
  60. magic_hour/types/params/v1_ai_gif_generator_create_body.py +1 -1
  61. magic_hour/types/params/v1_ai_headshot_generator_create_body.py +1 -1
  62. magic_hour/types/params/v1_ai_headshot_generator_create_body_assets.py +6 -1
  63. magic_hour/types/params/v1_ai_headshot_generator_create_body_style.py +1 -1
  64. magic_hour/types/params/v1_ai_image_editor_create_body.py +1 -1
  65. magic_hour/types/params/v1_ai_image_editor_create_body_assets.py +6 -1
  66. magic_hour/types/params/v1_ai_image_generator_create_body.py +8 -2
  67. magic_hour/types/params/v1_ai_image_generator_create_body_style.py +2 -2
  68. magic_hour/types/params/v1_ai_image_upscaler_create_body.py +4 -2
  69. magic_hour/types/params/v1_ai_image_upscaler_create_body_assets.py +6 -1
  70. magic_hour/types/params/v1_ai_photo_editor_create_body.py +1 -1
  71. magic_hour/types/params/v1_ai_photo_editor_create_body_assets.py +6 -1
  72. magic_hour/types/params/v1_ai_qr_code_generator_create_body.py +1 -1
  73. magic_hour/types/params/v1_ai_talking_photo_create_body.py +1 -1
  74. magic_hour/types/params/v1_ai_talking_photo_create_body_assets.py +12 -2
  75. magic_hour/types/params/v1_animation_create_body.py +2 -2
  76. magic_hour/types/params/v1_animation_create_body_assets.py +12 -2
  77. magic_hour/types/params/v1_animation_create_body_style.py +10 -7
  78. magic_hour/types/params/v1_auto_subtitle_generator_create_body.py +3 -3
  79. magic_hour/types/params/v1_auto_subtitle_generator_create_body_assets.py +6 -1
  80. magic_hour/types/params/v1_face_detection_create_body_assets.py +6 -1
  81. magic_hour/types/params/v1_face_swap_create_body.py +15 -17
  82. magic_hour/types/params/v1_face_swap_create_body_assets.py +12 -2
  83. magic_hour/types/params/v1_face_swap_create_body_assets_face_mappings_item.py +6 -1
  84. magic_hour/types/params/v1_face_swap_photo_create_body.py +1 -1
  85. magic_hour/types/params/v1_face_swap_photo_create_body_assets.py +12 -2
  86. magic_hour/types/params/v1_face_swap_photo_create_body_assets_face_mappings_item.py +6 -1
  87. magic_hour/types/params/v1_files_upload_urls_create_body.py +3 -0
  88. magic_hour/types/params/v1_files_upload_urls_create_body_items_item.py +2 -2
  89. magic_hour/types/params/v1_image_background_remover_create_body.py +1 -1
  90. magic_hour/types/params/v1_image_background_remover_create_body_assets.py +12 -2
  91. magic_hour/types/params/v1_image_to_video_create_body.py +18 -8
  92. magic_hour/types/params/v1_image_to_video_create_body_assets.py +6 -1
  93. magic_hour/types/params/v1_lip_sync_create_body.py +15 -17
  94. magic_hour/types/params/v1_lip_sync_create_body_assets.py +12 -2
  95. magic_hour/types/params/v1_photo_colorizer_create_body.py +1 -1
  96. magic_hour/types/params/v1_photo_colorizer_create_body_assets.py +6 -1
  97. magic_hour/types/params/v1_text_to_video_create_body.py +8 -2
  98. magic_hour/types/params/v1_video_to_video_create_body.py +15 -17
  99. magic_hour/types/params/v1_video_to_video_create_body_assets.py +6 -1
  100. {magic_hour-0.33.1.dist-info → magic_hour-0.35.0.dist-info}/METADATA +1 -1
  101. {magic_hour-0.33.1.dist-info → magic_hour-0.35.0.dist-info}/RECORD +103 -103
  102. {magic_hour-0.33.1.dist-info → magic_hour-0.35.0.dist-info}/LICENSE +0 -0
  103. {magic_hour-0.33.1.dist-info → magic_hour-0.35.0.dist-info}/WHEEL +0 -0
@@ -24,7 +24,7 @@ class V1AnimationCreateBody(typing_extensions.TypedDict):
24
24
 
25
25
  end_seconds: typing_extensions.Required[float]
26
26
  """
27
- The end time of the input video in seconds
27
+ This value determines the duration of the output video.
28
28
  """
29
29
 
30
30
  fps: typing_extensions.Required[float]
@@ -39,7 +39,7 @@ class V1AnimationCreateBody(typing_extensions.TypedDict):
39
39
 
40
40
  name: typing_extensions.NotRequired[str]
41
41
  """
42
- The name of video
42
+ The name of video. This value is mainly used for your own identification of the video.
43
43
  """
44
44
 
45
45
  style: typing_extensions.Required[V1AnimationCreateBodyStyle]
@@ -10,7 +10,12 @@ class V1AnimationCreateBodyAssets(typing_extensions.TypedDict):
10
10
 
11
11
  audio_file_path: typing_extensions.NotRequired[str]
12
12
  """
13
- The path of the input audio. This field is required if `audio_source` is `file`. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
13
+ The path of the input audio. This field is required if `audio_source` is `file`. This value is either
14
+ - a direct URL to the video file
15
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
16
+
17
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
18
+
14
19
  """
15
20
 
16
21
  audio_source: typing_extensions.Required[
@@ -22,7 +27,12 @@ class V1AnimationCreateBodyAssets(typing_extensions.TypedDict):
22
27
 
23
28
  image_file_path: typing_extensions.NotRequired[str]
24
29
  """
25
- An initial image to use a the first frame of the video. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
30
+ An initial image to use a the first frame of the video. This value is either
31
+ - a direct URL to the video file
32
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
33
+
34
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
35
+
26
36
  """
27
37
 
28
38
  youtube_url: typing_extensions.NotRequired[str]
@@ -60,7 +60,7 @@ class V1AnimationCreateBodyStyle(typing_extensions.TypedDict):
60
60
  ]
61
61
  ]
62
62
  """
63
- The art style of the final output video
63
+ The art style used to create the output video
64
64
  """
65
65
 
66
66
  art_style_custom: typing_extensions.NotRequired[str]
@@ -124,8 +124,11 @@ class V1AnimationCreateBodyStyle(typing_extensions.TypedDict):
124
124
  "Zoom Out - Audio Sync",
125
125
  ]
126
126
  ]
127
+ """
128
+ The camera effect used to create the output video
129
+ """
127
130
 
128
- prompt: typing_extensions.Required[typing.Optional[str]]
131
+ prompt: typing_extensions.NotRequired[str]
129
132
  """
130
133
  The prompt used for the video. Prompt is required if `prompt_type` is `custom`. Otherwise this value is ignored
131
134
  """
@@ -135,14 +138,16 @@ class V1AnimationCreateBodyStyle(typing_extensions.TypedDict):
135
138
  ]
136
139
  """
137
140
 
138
- * `custom` - use your own prompt for the video.
141
+ * `custom` - Use your own prompt for the video.
139
142
  * `use_lyrics` - Use the lyrics of the audio to create the prompt. If this option is selected, then `assets.audio_source` must be `file` or `youtube`.
140
143
  * `ai_choose` - Let AI write the prompt. If this option is selected, then `assets.audio_source` must be `file` or `youtube`.
141
144
  """
142
145
 
143
146
  transition_speed: typing_extensions.Required[int]
144
147
  """
145
- Change determines how quickly the video's content changes across frames. Higher = more rapid transitions. Lower = more stable visual experience.
148
+ Change determines how quickly the video's content changes across frames.
149
+ * Higher = more rapid transitions.
150
+ * Lower = more stable visual experience.
146
151
  """
147
152
 
148
153
 
@@ -266,9 +271,7 @@ class _SerializerV1AnimationCreateBodyStyle(pydantic.BaseModel):
266
271
  ] = pydantic.Field(
267
272
  alias="camera_effect",
268
273
  )
269
- prompt: typing.Optional[str] = pydantic.Field(
270
- alias="prompt",
271
- )
274
+ prompt: typing.Optional[str] = pydantic.Field(alias="prompt", default=None)
272
275
  prompt_type: typing_extensions.Literal["ai_choose", "custom", "use_lyrics"] = (
273
276
  pydantic.Field(
274
277
  alias="prompt_type",
@@ -24,17 +24,17 @@ class V1AutoSubtitleGeneratorCreateBody(typing_extensions.TypedDict):
24
24
 
25
25
  end_seconds: typing_extensions.Required[float]
26
26
  """
27
- The end time of the input video in seconds
27
+ The end time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.1, and more than the start_seconds.
28
28
  """
29
29
 
30
30
  name: typing_extensions.NotRequired[str]
31
31
  """
32
- The name of video
32
+ The name of video. This value is mainly used for your own identification of the video.
33
33
  """
34
34
 
35
35
  start_seconds: typing_extensions.Required[float]
36
36
  """
37
- The start time of the input video in seconds
37
+ The start time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.
38
38
  """
39
39
 
40
40
  style: typing_extensions.Required[V1AutoSubtitleGeneratorCreateBodyStyle]
@@ -9,7 +9,12 @@ class V1AutoSubtitleGeneratorCreateBodyAssets(typing_extensions.TypedDict):
9
9
 
10
10
  video_file_path: typing_extensions.Required[str]
11
11
  """
12
- This is the video used to add subtitles. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ This is the video used to add subtitles. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
 
@@ -9,7 +9,12 @@ class V1FaceDetectionCreateBodyAssets(typing_extensions.TypedDict):
9
9
 
10
10
  target_file_path: typing_extensions.Required[str]
11
11
  """
12
- This is the image or video where the face will be detected. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ This is the image or video where the face will be detected. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
 
@@ -20,41 +20,39 @@ class V1FaceSwapCreateBody(typing_extensions.TypedDict):
20
20
 
21
21
  end_seconds: typing_extensions.Required[float]
22
22
  """
23
- The end time of the input video in seconds
23
+ The end time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.1, and more than the start_seconds.
24
24
  """
25
25
 
26
- height: typing_extensions.NotRequired[int]
26
+ height: typing_extensions.NotRequired[typing.Optional[int]]
27
27
  """
28
- Used to determine the dimensions of the output video.
29
-
30
- * If height is provided, width will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
31
- * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
28
+ `height` is deprecated and no longer influences the output video's resolution.
32
29
 
33
- Note: if the video's original resolution is less than the maximum, the video will not be resized.
30
+ Output resolution is determined by the **minimum** of:
31
+ - The resolution of the input video
32
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
34
33
 
35
- See our [pricing page](https://magichour.ai/pricing) for more details.
34
+ This field is retained only for backward compatibility and will be removed in a future release.
36
35
  """
37
36
 
38
37
  name: typing_extensions.NotRequired[str]
39
38
  """
40
- The name of video
39
+ The name of video. This value is mainly used for your own identification of the video.
41
40
  """
42
41
 
43
42
  start_seconds: typing_extensions.Required[float]
44
43
  """
45
- The start time of the input video in seconds
44
+ The start time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.
46
45
  """
47
46
 
48
- width: typing_extensions.NotRequired[int]
47
+ width: typing_extensions.NotRequired[typing.Optional[int]]
49
48
  """
50
- Used to determine the dimensions of the output video.
51
-
52
- * If width is provided, height will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
53
- * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
49
+ `width` is deprecated and no longer influences the output video's resolution.
54
50
 
55
- Note: if the video's original resolution is less than the maximum, the video will not be resized.
51
+ Output resolution is determined by the **minimum** of:
52
+ - The resolution of the input video
53
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
56
54
 
57
- See our [pricing page](https://magichour.ai/pricing) for more details.
55
+ This field is retained only for backward compatibility and will be removed in a future release.
58
56
  """
59
57
 
60
58
 
@@ -33,12 +33,22 @@ class V1FaceSwapCreateBodyAssets(typing_extensions.TypedDict):
33
33
  """
34
34
  The path of the input image with the face to be swapped. The value is required if `face_swap_mode` is `all-faces`.
35
35
 
36
- This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
36
+ This value is either
37
+ - a direct URL to the video file
38
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
39
+
40
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
41
+
37
42
  """
38
43
 
39
44
  video_file_path: typing_extensions.NotRequired[str]
40
45
  """
41
- The path of the input video. This field is required if `video_source` is `file`. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
46
+ Required if `video_source` is `file`. This value is either
47
+ - a direct URL to the video file
48
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
49
+
50
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
51
+
42
52
  """
43
53
 
44
54
  video_source: typing_extensions.Required[
@@ -9,7 +9,12 @@ class V1FaceSwapCreateBodyAssetsFaceMappingsItem(typing_extensions.TypedDict):
9
9
 
10
10
  new_face: typing_extensions.Required[str]
11
11
  """
12
- The face image that will be used to replace the face in the `original_face`. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ The face image that will be used to replace the face in the `original_face`. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
  original_face: typing_extensions.Required[str]
@@ -20,7 +20,7 @@ class V1FaceSwapPhotoCreateBody(typing_extensions.TypedDict):
20
20
 
21
21
  name: typing_extensions.NotRequired[str]
22
22
  """
23
- The name of image
23
+ The name of image. This value is mainly used for your own identification of the image.
24
24
  """
25
25
 
26
26
 
@@ -33,12 +33,22 @@ class V1FaceSwapPhotoCreateBodyAssets(typing_extensions.TypedDict):
33
33
  """
34
34
  This is the image from which the face is extracted. The value is required if `face_swap_mode` is `all-faces`.
35
35
 
36
- This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
36
+ This value is either
37
+ - a direct URL to the video file
38
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
39
+
40
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
41
+
37
42
  """
38
43
 
39
44
  target_file_path: typing_extensions.Required[str]
40
45
  """
41
- This is the image where the face from the source image will be placed. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
46
+ This is the image where the face from the source image will be placed. This value is either
47
+ - a direct URL to the video file
48
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
49
+
50
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
51
+
42
52
  """
43
53
 
44
54
 
@@ -9,7 +9,12 @@ class V1FaceSwapPhotoCreateBodyAssetsFaceMappingsItem(typing_extensions.TypedDic
9
9
 
10
10
  new_face: typing_extensions.Required[str]
11
11
  """
12
- The face image that will be used to replace the face in the `original_face`. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ The face image that will be used to replace the face in the `original_face`. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
  original_face: typing_extensions.Required[str]
@@ -14,6 +14,9 @@ class V1FilesUploadUrlsCreateBody(typing_extensions.TypedDict):
14
14
  """
15
15
 
16
16
  items: typing_extensions.Required[typing.List[V1FilesUploadUrlsCreateBodyItemsItem]]
17
+ """
18
+ The list of assets to upload. The response array will match the order of items in the request body.
19
+ """
17
20
 
18
21
 
19
22
  class _SerializerV1FilesUploadUrlsCreateBody(pydantic.BaseModel):
@@ -9,14 +9,14 @@ class V1FilesUploadUrlsCreateBodyItemsItem(typing_extensions.TypedDict):
9
9
 
10
10
  extension: typing_extensions.Required[str]
11
11
  """
12
- the extension of the file to upload. Do not include the dot (.) before the extension.
12
+ The extension of the file to upload. Do not include the dot (.) before the extension. Possible extensions are mp4,m4v,mov,webm,mp3,mpeg,wav,aac,aiff,flac,png,jpg,jpeg,webp,avif,jp2,tiff,bmp
13
13
  """
14
14
 
15
15
  type_: typing_extensions.Required[
16
16
  typing_extensions.Literal["audio", "image", "video"]
17
17
  ]
18
18
  """
19
- The type of asset to upload
19
+ The type of asset to upload. Possible types are video, audio, image
20
20
  """
21
21
 
22
22
 
@@ -20,7 +20,7 @@ class V1ImageBackgroundRemoverCreateBody(typing_extensions.TypedDict):
20
20
 
21
21
  name: typing_extensions.NotRequired[str]
22
22
  """
23
- The name of image
23
+ The name of image. This value is mainly used for your own identification of the image.
24
24
  """
25
25
 
26
26
 
@@ -12,12 +12,22 @@ class V1ImageBackgroundRemoverCreateBodyAssets(typing_extensions.TypedDict):
12
12
  """
13
13
  The image used as the new background for the image_file_path. This image will be resized to match the image in image_file_path. Please make sure the resolution between the images are similar.
14
14
 
15
- This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
15
+ This value is either
16
+ - a direct URL to the video file
17
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
18
+
19
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
20
+
16
21
  """
17
22
 
18
23
  image_file_path: typing_extensions.Required[str]
19
24
  """
20
- The image to remove the background. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
25
+ The image to remove the background. This value is either
26
+ - a direct URL to the video file
27
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
28
+
29
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
30
+
21
31
  """
22
32
 
23
33
 
@@ -27,16 +27,20 @@ class V1ImageToVideoCreateBody(typing_extensions.TypedDict):
27
27
  The total duration of the output video in seconds.
28
28
  """
29
29
 
30
- height: typing_extensions.NotRequired[int]
30
+ height: typing_extensions.NotRequired[typing.Optional[int]]
31
31
  """
32
- This field does not affect the output video's resolution. The video's orientation will match that of the input image.
32
+ `height` is deprecated and no longer influences the output video's resolution.
33
33
 
34
- It is retained solely for backward compatibility and will be deprecated in the future.
34
+ Output resolution is determined by the **minimum** of:
35
+ - The resolution of the input video
36
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
37
+
38
+ This field is retained only for backward compatibility and will be removed in a future release.
35
39
  """
36
40
 
37
41
  name: typing_extensions.NotRequired[str]
38
42
  """
39
- The name of video
43
+ The name of video. This value is mainly used for your own identification of the video.
40
44
  """
41
45
 
42
46
  resolution: typing_extensions.NotRequired[
@@ -45,10 +49,12 @@ class V1ImageToVideoCreateBody(typing_extensions.TypedDict):
45
49
  """
46
50
  Controls the output video resolution. Defaults to `720p` if not specified.
47
51
 
52
+ 480p and 720p are available on Creator, Pro, or Business tiers. However, 1080p require Pro or Business tier.
53
+
48
54
  **Options:**
49
55
  - `480p` - Supports only 5 or 10 second videos. Output: 24fps. Cost: 120 credits per 5 seconds.
50
56
  - `720p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 300 credits per 5 seconds.
51
- - `1080p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 600 credits per 5 seconds. **Requires** `pro` or `business` tier.
57
+ - `1080p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 600 credits per 5 seconds.
52
58
  """
53
59
 
54
60
  style: typing_extensions.NotRequired[V1ImageToVideoCreateBodyStyle]
@@ -56,11 +62,15 @@ class V1ImageToVideoCreateBody(typing_extensions.TypedDict):
56
62
  Attributed used to dictate the style of the output
57
63
  """
58
64
 
59
- width: typing_extensions.NotRequired[int]
65
+ width: typing_extensions.NotRequired[typing.Optional[int]]
60
66
  """
61
- This field does not affect the output video's resolution. The video's orientation will match that of the input image.
67
+ `width` is deprecated and no longer influences the output video's resolution.
68
+
69
+ Output resolution is determined by the **minimum** of:
70
+ - The resolution of the input video
71
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
62
72
 
63
- It is retained solely for backward compatibility and will be deprecated in the future.
73
+ This field is retained only for backward compatibility and will be removed in a future release.
64
74
  """
65
75
 
66
76
 
@@ -9,7 +9,12 @@ class V1ImageToVideoCreateBodyAssets(typing_extensions.TypedDict):
9
9
 
10
10
  image_file_path: typing_extensions.Required[str]
11
11
  """
12
- The path of the image file. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ The path of the image file. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
 
@@ -20,19 +20,18 @@ class V1LipSyncCreateBody(typing_extensions.TypedDict):
20
20
 
21
21
  end_seconds: typing_extensions.Required[float]
22
22
  """
23
- The end time of the input video in seconds
23
+ The end time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.1, and more than the start_seconds.
24
24
  """
25
25
 
26
- height: typing_extensions.NotRequired[int]
26
+ height: typing_extensions.NotRequired[typing.Optional[int]]
27
27
  """
28
- Used to determine the dimensions of the output video.
29
-
30
- * If height is provided, width will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
31
- * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
28
+ `height` is deprecated and no longer influences the output video's resolution.
32
29
 
33
- Note: if the video's original resolution is less than the maximum, the video will not be resized.
30
+ Output resolution is determined by the **minimum** of:
31
+ - The resolution of the input video
32
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
34
33
 
35
- See our [pricing page](https://magichour.ai/pricing) for more details.
34
+ This field is retained only for backward compatibility and will be removed in a future release.
36
35
  """
37
36
 
38
37
  max_fps_limit: typing_extensions.NotRequired[float]
@@ -42,24 +41,23 @@ class V1LipSyncCreateBody(typing_extensions.TypedDict):
42
41
 
43
42
  name: typing_extensions.NotRequired[str]
44
43
  """
45
- The name of video
44
+ The name of video. This value is mainly used for your own identification of the video.
46
45
  """
47
46
 
48
47
  start_seconds: typing_extensions.Required[float]
49
48
  """
50
- The start time of the input video in seconds
49
+ The start time of the input video in seconds. This value is used to trim the input video. The value must be greater than 0.
51
50
  """
52
51
 
53
- width: typing_extensions.NotRequired[int]
52
+ width: typing_extensions.NotRequired[typing.Optional[int]]
54
53
  """
55
- Used to determine the dimensions of the output video.
56
-
57
- * If width is provided, height will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
58
- * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
54
+ `width` is deprecated and no longer influences the output video's resolution.
59
55
 
60
- Note: if the video's original resolution is less than the maximum, the video will not be resized.
56
+ Output resolution is determined by the **minimum** of:
57
+ - The resolution of the input video
58
+ - The maximum resolution allowed by your subscription tier. See our [pricing page](https://magichour.ai/pricing) for more details.
61
59
 
62
- See our [pricing page](https://magichour.ai/pricing) for more details.
60
+ This field is retained only for backward compatibility and will be removed in a future release.
63
61
  """
64
62
 
65
63
 
@@ -10,12 +10,22 @@ class V1LipSyncCreateBodyAssets(typing_extensions.TypedDict):
10
10
 
11
11
  audio_file_path: typing_extensions.Required[str]
12
12
  """
13
- The path of the audio file. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
13
+ The path of the audio file. This value is either
14
+ - a direct URL to the video file
15
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
16
+
17
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
18
+
14
19
  """
15
20
 
16
21
  video_file_path: typing_extensions.NotRequired[str]
17
22
  """
18
- The path of the input video. This field is required if `video_source` is `file`. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
23
+ Required if `video_source` is `file`. This value is either
24
+ - a direct URL to the video file
25
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
26
+
27
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
28
+
19
29
  """
20
30
 
21
31
  video_source: typing_extensions.Required[
@@ -20,7 +20,7 @@ class V1PhotoColorizerCreateBody(typing_extensions.TypedDict):
20
20
 
21
21
  name: typing_extensions.NotRequired[str]
22
22
  """
23
- The name of image
23
+ The name of image. This value is mainly used for your own identification of the image.
24
24
  """
25
25
 
26
26
 
@@ -9,7 +9,12 @@ class V1PhotoColorizerCreateBodyAssets(typing_extensions.TypedDict):
9
9
 
10
10
  image_file_path: typing_extensions.Required[str]
11
11
  """
12
- The image used to generate the colorized image. This value can be either the `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls), or the url of the file.
12
+ The image used to generate the colorized image. This value is either
13
+ - a direct URL to the video file
14
+ - `file_path` field from the response of the [upload urls API](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls).
15
+
16
+ Please refer to the [Input File documentation](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls#input-file) to learn more.
17
+
13
18
  """
14
19
 
15
20
 
@@ -16,11 +16,15 @@ class V1TextToVideoCreateBody(typing_extensions.TypedDict):
16
16
  end_seconds: typing_extensions.Required[float]
17
17
  """
18
18
  The total duration of the output video in seconds.
19
+
20
+ The value must be greater than or equal to 5 seconds and less than or equal to 60 seconds.
21
+
22
+ Note: For 480p resolution, the value must be either 5 or 10.
19
23
  """
20
24
 
21
25
  name: typing_extensions.NotRequired[str]
22
26
  """
23
- The name of video
27
+ The name of video. This value is mainly used for your own identification of the video.
24
28
  """
25
29
 
26
30
  orientation: typing_extensions.Required[
@@ -36,10 +40,12 @@ class V1TextToVideoCreateBody(typing_extensions.TypedDict):
36
40
  """
37
41
  Controls the output video resolution. Defaults to `720p` if not specified.
38
42
 
43
+ 480p and 720p are available on Creator, Pro, or Business tiers. However, 1080p require Pro or Business tier.
44
+
39
45
  **Options:**
40
46
  - `480p` - Supports only 5 or 10 second videos. Output: 24fps. Cost: 120 credits per 5 seconds.
41
47
  - `720p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 300 credits per 5 seconds.
42
- - `1080p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 600 credits per 5 seconds. **Requires** `pro` or `business` tier.
48
+ - `1080p` - Supports videos between 5-60 seconds. Output: 30fps. Cost: 600 credits per 5 seconds.
43
49
  """
44
50
 
45
51
  style: typing_extensions.Required[V1TextToVideoCreateBodyStyle]