magic_hour 0.13.0__py3-none-any.whl → 0.15.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.

magic_hour/environment.py CHANGED
@@ -5,4 +5,4 @@ class Environment(enum.Enum):
5
5
  """Pre-defined base URLs for the API"""
6
6
 
7
7
  ENVIRONMENT = "https://api.magichour.ai"
8
- MOCK_SERVER = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.13.0"
8
+ MOCK_SERVER = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.15.0"
@@ -23,10 +23,10 @@ res = client.v1.face_swap.create(
23
23
  "video_source": "file",
24
24
  },
25
25
  end_seconds=15.0,
26
- height=960,
27
26
  start_seconds=0.0,
28
- width=512,
27
+ height=960,
29
28
  name="Face Swap video",
29
+ width=512,
30
30
  )
31
31
  ```
32
32
 
@@ -44,9 +44,9 @@ res = await client.v1.face_swap.create(
44
44
  "video_source": "file",
45
45
  },
46
46
  end_seconds=15.0,
47
- height=960,
48
47
  start_seconds=0.0,
49
- width=512,
48
+ height=960,
50
49
  name="Face Swap video",
50
+ width=512,
51
51
  )
52
52
  ```
@@ -20,12 +20,16 @@ class FaceSwapClient:
20
20
  *,
21
21
  assets: params.V1FaceSwapCreateBodyAssets,
22
22
  end_seconds: float,
23
- height: int,
24
23
  start_seconds: float,
25
- width: int,
24
+ height: typing.Union[
25
+ typing.Optional[int], type_utils.NotGiven
26
+ ] = type_utils.NOT_GIVEN,
26
27
  name: typing.Union[
27
28
  typing.Optional[str], type_utils.NotGiven
28
29
  ] = type_utils.NOT_GIVEN,
30
+ width: typing.Union[
31
+ typing.Optional[int], type_utils.NotGiven
32
+ ] = type_utils.NOT_GIVEN,
29
33
  request_options: typing.Optional[RequestOptions] = None,
30
34
  ) -> models.V1FaceSwapCreateResponse:
31
35
  """
@@ -39,12 +43,26 @@ class FaceSwapClient:
39
43
  POST /v1/face-swap
40
44
 
41
45
  Args:
46
+ height: Used to determine the dimensions of the output video.
47
+
48
+ * 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.
49
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
50
+
51
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
52
+
53
+ See our [pricing page](https://magichour.ai/pricing) for more details.
42
54
  name: The name of video
55
+ width: 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.
59
+
60
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
61
+
62
+ See our [pricing page](https://magichour.ai/pricing) for more details.
43
63
  assets: Provide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
44
64
  end_seconds: The end time of the input video in seconds
45
- height: The height of the final output video. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
46
65
  start_seconds: The start time of the input video in seconds
47
- width: The width of the final output video. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
48
66
  request_options: Additional options to customize the HTTP request
49
67
 
50
68
  Returns:
@@ -63,21 +81,21 @@ class FaceSwapClient:
63
81
  "video_source": "file",
64
82
  },
65
83
  end_seconds=15.0,
66
- height=960,
67
84
  start_seconds=0.0,
68
- width=512,
85
+ height=960,
69
86
  name="Face Swap video",
87
+ width=512,
70
88
  )
71
89
  ```
72
90
  """
73
91
  _json = to_encodable(
74
92
  item={
93
+ "height": height,
75
94
  "name": name,
95
+ "width": width,
76
96
  "assets": assets,
77
97
  "end_seconds": end_seconds,
78
- "height": height,
79
98
  "start_seconds": start_seconds,
80
- "width": width,
81
99
  },
82
100
  dump_with=params._SerializerV1FaceSwapCreateBody,
83
101
  )
@@ -100,12 +118,16 @@ class AsyncFaceSwapClient:
100
118
  *,
101
119
  assets: params.V1FaceSwapCreateBodyAssets,
102
120
  end_seconds: float,
103
- height: int,
104
121
  start_seconds: float,
105
- width: int,
122
+ height: typing.Union[
123
+ typing.Optional[int], type_utils.NotGiven
124
+ ] = type_utils.NOT_GIVEN,
106
125
  name: typing.Union[
107
126
  typing.Optional[str], type_utils.NotGiven
108
127
  ] = type_utils.NOT_GIVEN,
128
+ width: typing.Union[
129
+ typing.Optional[int], type_utils.NotGiven
130
+ ] = type_utils.NOT_GIVEN,
109
131
  request_options: typing.Optional[RequestOptions] = None,
110
132
  ) -> models.V1FaceSwapCreateResponse:
111
133
  """
@@ -119,12 +141,26 @@ class AsyncFaceSwapClient:
119
141
  POST /v1/face-swap
120
142
 
121
143
  Args:
144
+ height: Used to determine the dimensions of the output video.
145
+
146
+ * 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.
147
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
148
+
149
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
150
+
151
+ See our [pricing page](https://magichour.ai/pricing) for more details.
122
152
  name: The name of video
153
+ width: Used to determine the dimensions of the output video.
154
+
155
+ * 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.
156
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
157
+
158
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
159
+
160
+ See our [pricing page](https://magichour.ai/pricing) for more details.
123
161
  assets: Provide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
124
162
  end_seconds: The end time of the input video in seconds
125
- height: The height of the final output video. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
126
163
  start_seconds: The start time of the input video in seconds
127
- width: The width of the final output video. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
128
164
  request_options: Additional options to customize the HTTP request
129
165
 
130
166
  Returns:
@@ -143,21 +179,21 @@ class AsyncFaceSwapClient:
143
179
  "video_source": "file",
144
180
  },
145
181
  end_seconds=15.0,
146
- height=960,
147
182
  start_seconds=0.0,
148
- width=512,
183
+ height=960,
149
184
  name="Face Swap video",
185
+ width=512,
150
186
  )
151
187
  ```
152
188
  """
153
189
  _json = to_encodable(
154
190
  item={
191
+ "height": height,
155
192
  "name": name,
193
+ "width": width,
156
194
  "assets": assets,
157
195
  "end_seconds": end_seconds,
158
- "height": height,
159
196
  "start_seconds": start_seconds,
160
- "width": width,
161
197
  },
162
198
  dump_with=params._SerializerV1FaceSwapCreateBody,
163
199
  )
@@ -20,7 +20,7 @@ res = client.v1.image_to_video.create(
20
20
  assets={"image_file_path": "api-assets/id/1234.png"},
21
21
  end_seconds=5.0,
22
22
  height=960,
23
- style={"prompt": "string"},
23
+ style={"prompt": "a dog running"},
24
24
  width=512,
25
25
  name="Image To Video video",
26
26
  )
@@ -37,7 +37,7 @@ res = await client.v1.image_to_video.create(
37
37
  assets={"image_file_path": "api-assets/id/1234.png"},
38
38
  end_seconds=5.0,
39
39
  height=960,
40
- style={"prompt": "string"},
40
+ style={"prompt": "a dog running"},
41
41
  width=512,
42
42
  name="Image To Video video",
43
43
  )
@@ -43,7 +43,7 @@ class ImageToVideoClient:
43
43
  assets: Provide the assets for image-to-video.
44
44
  end_seconds: The total duration of the output video in seconds.
45
45
  height: The height of the input video. This value will help determine the final orientation of the output video. The output video resolution may not match the input.
46
- style: V1ImageToVideoCreateBodyStyle
46
+ style: Attributed used to dictate the style of the output
47
47
  width: The width of the input video. This value will help determine the final orientation of the output video. The output video resolution may not match the input.
48
48
  request_options: Additional options to customize the HTTP request
49
49
 
@@ -60,7 +60,7 @@ class ImageToVideoClient:
60
60
  assets={"image_file_path": "api-assets/id/1234.png"},
61
61
  end_seconds=5.0,
62
62
  height=960,
63
- style={"prompt": "string"},
63
+ style={"prompt": "a dog running"},
64
64
  width=512,
65
65
  name="Image To Video video",
66
66
  )
@@ -119,7 +119,7 @@ class AsyncImageToVideoClient:
119
119
  assets: Provide the assets for image-to-video.
120
120
  end_seconds: The total duration of the output video in seconds.
121
121
  height: The height of the input video. This value will help determine the final orientation of the output video. The output video resolution may not match the input.
122
- style: V1ImageToVideoCreateBodyStyle
122
+ style: Attributed used to dictate the style of the output
123
123
  width: The width of the input video. This value will help determine the final orientation of the output video. The output video resolution may not match the input.
124
124
  request_options: Additional options to customize the HTTP request
125
125
 
@@ -136,7 +136,7 @@ class AsyncImageToVideoClient:
136
136
  assets={"image_file_path": "api-assets/id/1234.png"},
137
137
  end_seconds=5.0,
138
138
  height=960,
139
- style={"prompt": "string"},
139
+ style={"prompt": "a dog running"},
140
140
  width=512,
141
141
  name="Image To Video video",
142
142
  )
@@ -19,7 +19,7 @@ client = Client(token=getenv("API_TOKEN"))
19
19
  res = client.v1.text_to_video.create(
20
20
  end_seconds=5.0,
21
21
  orientation="landscape",
22
- style={"prompt": "string"},
22
+ style={"prompt": "a dog running"},
23
23
  name="Text To Video video",
24
24
  )
25
25
  ```
@@ -34,7 +34,7 @@ client = AsyncClient(token=getenv("API_TOKEN"))
34
34
  res = await client.v1.text_to_video.create(
35
35
  end_seconds=5.0,
36
36
  orientation="landscape",
37
- style={"prompt": "string"},
37
+ style={"prompt": "a dog running"},
38
38
  name="Text To Video video",
39
39
  )
40
40
  ```
@@ -56,7 +56,7 @@ class TextToVideoClient:
56
56
  client.v1.text_to_video.create(
57
57
  end_seconds=5.0,
58
58
  orientation="landscape",
59
- style={"prompt": "string"},
59
+ style={"prompt": "a dog running"},
60
60
  name="Text To Video video",
61
61
  )
62
62
  ```
@@ -124,7 +124,7 @@ class AsyncTextToVideoClient:
124
124
  await client.v1.text_to_video.create(
125
125
  end_seconds=5.0,
126
126
  orientation="landscape",
127
- style={"prompt": "string"},
127
+ style={"prompt": "a dog running"},
128
128
  name="Text To Video video",
129
129
  )
130
130
  ```
@@ -72,5 +72,5 @@ class V1ImageProjectsGetResponse(pydantic.BaseModel):
72
72
  alias="type",
73
73
  )
74
74
  """
75
- The type of the image project. Possible values are AI_HEADSHOT, AI_IMAGE, IMAGE_UPSCALER, FACE_SWAP, PHOTO_EDITOR, QR_CODE, BACKGROUND_REMOVER, CLOTHES_CHANGER, AI_MEME, FACE_EDITOR
75
+ The type of the image project. Possible values are AI_HEADSHOT, AI_IMAGE, IMAGE_UPSCALER, FACE_SWAP, PHOTO_EDITOR, QR_CODE, BACKGROUND_REMOVER, CLOTHES_CHANGER, AI_MEME, FACE_EDITOR, PHOTO_COLORIZER
76
76
  """
@@ -23,9 +23,16 @@ class V1FaceSwapCreateBody(typing_extensions.TypedDict):
23
23
  The end time of the input video in seconds
24
24
  """
25
25
 
26
- height: typing_extensions.Required[int]
26
+ height: typing_extensions.NotRequired[int]
27
27
  """
28
- The height of the final output video. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
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.
32
+
33
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
34
+
35
+ See our [pricing page](https://magichour.ai/pricing) for more details.
29
36
  """
30
37
 
31
38
  name: typing_extensions.NotRequired[str]
@@ -38,9 +45,16 @@ class V1FaceSwapCreateBody(typing_extensions.TypedDict):
38
45
  The start time of the input video in seconds
39
46
  """
40
47
 
41
- width: typing_extensions.Required[int]
48
+ width: typing_extensions.NotRequired[int]
42
49
  """
43
- The width of the final output video. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
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.
54
+
55
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
56
+
57
+ See our [pricing page](https://magichour.ai/pricing) for more details.
44
58
  """
45
59
 
46
60
 
@@ -60,13 +74,9 @@ class _SerializerV1FaceSwapCreateBody(pydantic.BaseModel):
60
74
  end_seconds: float = pydantic.Field(
61
75
  alias="end_seconds",
62
76
  )
63
- height: int = pydantic.Field(
64
- alias="height",
65
- )
77
+ height: typing.Optional[int] = pydantic.Field(alias="height", default=None)
66
78
  name: typing.Optional[str] = pydantic.Field(alias="name", default=None)
67
79
  start_seconds: float = pydantic.Field(
68
80
  alias="start_seconds",
69
81
  )
70
- width: int = pydantic.Field(
71
- alias="width",
72
- )
82
+ width: typing.Optional[int] = pydantic.Field(alias="width", default=None)
@@ -38,6 +38,9 @@ class V1ImageToVideoCreateBody(typing_extensions.TypedDict):
38
38
  """
39
39
 
40
40
  style: typing_extensions.Required[V1ImageToVideoCreateBodyStyle]
41
+ """
42
+ Attributed used to dictate the style of the output
43
+ """
41
44
 
42
45
  width: typing_extensions.Required[int]
43
46
  """
@@ -5,19 +5,27 @@ import typing_extensions
5
5
 
6
6
  class V1ImageToVideoCreateBodyStyle(typing_extensions.TypedDict):
7
7
  """
8
- V1ImageToVideoCreateBodyStyle
8
+ Attributed used to dictate the style of the output
9
9
  """
10
10
 
11
11
  high_quality: typing_extensions.NotRequired[bool]
12
12
  """
13
- High Quality mode enhances detail, sharpness, and realism, making it ideal for portraits, animals, and intricate landscapes.
13
+ Deprecated: Please use `quality_mode` instead. For backward compatibility, setting `high_quality: true` and `quality_mode: quick` will map to `quality_mode: studio`. Note: `quality_mode: studio` offers the same quality as `high_quality: true`.
14
14
  """
15
15
 
16
- prompt: typing_extensions.Required[typing.Optional[str]]
16
+ prompt: typing_extensions.NotRequired[str]
17
17
  """
18
18
  The prompt used for the video.
19
19
  """
20
20
 
21
+ quality_mode: typing_extensions.NotRequired[
22
+ typing_extensions.Literal["quick", "studio"]
23
+ ]
24
+ """
25
+ * `quick` - Fastest option for rapid results. Takes ~3 minutes per 5s of video.
26
+ * `studio` - Polished visuals with longer runtime. Takes ~8.5 minutes per 5s of video.
27
+ """
28
+
21
29
 
22
30
  class _SerializerV1ImageToVideoCreateBodyStyle(pydantic.BaseModel):
23
31
  """
@@ -32,6 +40,7 @@ class _SerializerV1ImageToVideoCreateBodyStyle(pydantic.BaseModel):
32
40
  high_quality: typing.Optional[bool] = pydantic.Field(
33
41
  alias="high_quality", default=None
34
42
  )
35
- prompt: typing.Optional[str] = pydantic.Field(
36
- alias="prompt",
43
+ prompt: typing.Optional[str] = pydantic.Field(alias="prompt", default=None)
44
+ quality_mode: typing.Optional[typing_extensions.Literal["quick", "studio"]] = (
45
+ pydantic.Field(alias="quality_mode", default=None)
37
46
  )
@@ -1,4 +1,5 @@
1
1
  import pydantic
2
+ import typing
2
3
  import typing_extensions
3
4
 
4
5
 
@@ -12,6 +13,14 @@ class V1TextToVideoCreateBodyStyle(typing_extensions.TypedDict):
12
13
  The prompt used for the video.
13
14
  """
14
15
 
16
+ quality_mode: typing_extensions.NotRequired[
17
+ typing_extensions.Literal["quick", "studio"]
18
+ ]
19
+ """
20
+ * `quick` - Fastest option for rapid results. Takes ~3 minutes per 5s of video.
21
+ * `studio` - Polished visuals with longer runtime. Takes ~8.5 minutes per 5s of video.
22
+ """
23
+
15
24
 
16
25
  class _SerializerV1TextToVideoCreateBodyStyle(pydantic.BaseModel):
17
26
  """
@@ -26,3 +35,6 @@ class _SerializerV1TextToVideoCreateBodyStyle(pydantic.BaseModel):
26
35
  prompt: str = pydantic.Field(
27
36
  alias="prompt",
28
37
  )
38
+ quality_mode: typing.Optional[typing_extensions.Literal["quick", "studio"]] = (
39
+ pydantic.Field(alias="quality_mode", default=None)
40
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: magic_hour
3
- Version: 0.13.0
3
+ Version: 0.15.0
4
4
  Summary: Python SDK for Magic Hour API
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -10,7 +10,7 @@ magic_hour/core/request.py,sha256=lyHrh2VWY238D7JPbgZJlodTqBlHSmQn4fBJiBfE1Es,50
10
10
  magic_hour/core/response.py,sha256=Sl7nPL2axmz7em_6d9TkFSnQQKUpalWaVWbPPWoXJgM,10180
11
11
  magic_hour/core/type_utils.py,sha256=4bU9WXnMXJ6YTtuqOMiB8t6Xw0RlfVWJ-IDBONlqEtQ,461
12
12
  magic_hour/core/utils.py,sha256=34SiC1vw2A0TkYHONgMA_d09soIIYiiBWRXCZGdwGIk,1669
13
- magic_hour/environment.py,sha256=wxyHsFbQ9oSIG4MwFfxS4WabwDFblI5OSZ30kEt_uuo,213
13
+ magic_hour/environment.py,sha256=_uag_rbbVmwykIg00RAOUAJnraLbBtFWIbdvLs9ytxw,213
14
14
  magic_hour/resources/v1/__init__.py,sha256=Aj0sjVcoijjQyieNBxv2_uewPYC2vO2UG-ehoBgCz5E,86
15
15
  magic_hour/resources/v1/ai_clothes_changer/README.md,sha256=KQTvbttct5GcdOJW3NG5gCsWF6G2qlwIoBjBd92TjUs,977
16
16
  magic_hour/resources/v1/ai_clothes_changer/__init__.py,sha256=6W_Y2HxG2sDOBiJyzngK3Q2S3xfQgpK-j8xFRmBAhbQ,142
@@ -40,9 +40,9 @@ magic_hour/resources/v1/animation/README.md,sha256=uIVfUwD7iAOe2eJDgrxj4UyYmq9R3
40
40
  magic_hour/resources/v1/animation/__init__.py,sha256=M6KUe6TEZl_DAdyn1HFQ2kHYanZo6xy3mvUdCN264hQ,114
41
41
  magic_hour/resources/v1/animation/client.py,sha256=YYjggl_hszTW-Sn9SFs3m7bz7PvtRTruhHSSnrkkD9c,6401
42
42
  magic_hour/resources/v1/client.py,sha256=ml5WQYIOi5GMw6fAa1e1JXJaRoA19U5ZYBcPoERILGM,5782
43
- magic_hour/resources/v1/face_swap/README.md,sha256=7b6OeNBhMHJkxaQ7NFEuGUtgDUHOkpasXlU05KE5jkQ,1306
43
+ magic_hour/resources/v1/face_swap/README.md,sha256=g5e_eZu3OsrIuc6ISpXbliIX1uVeYX7MwOfdw74dIoI,1306
44
44
  magic_hour/resources/v1/face_swap/__init__.py,sha256=lyg5uAHyYHEUVAiAZtP3zwjGCEGqq8IWbQKexVdhr00,110
45
- magic_hour/resources/v1/face_swap/client.py,sha256=yhBmF1CrYZQfd4W_oerU96W7z-2oza_D83aqliEOsxY,6383
45
+ magic_hour/resources/v1/face_swap/client.py,sha256=-BpJae7J4PZPUG45BMA3HBB2XhrbHpgWqwwyaDFH88A,8519
46
46
  magic_hour/resources/v1/face_swap_photo/README.md,sha256=9iGINuGkWn60ZaZgZ4xz0Iho0lvfE-e_YVEA2vId6QU,964
47
47
  magic_hour/resources/v1/face_swap_photo/__init__.py,sha256=NZEplYX5kDPL_0qY0Q5tuxhDevipN0otByTYKMmF_1k,130
48
48
  magic_hour/resources/v1/face_swap_photo/client.py,sha256=wRkC3o5fJoATrCYvnlw4PfVoSXU_fPDyKtzBozn01Rk,4027
@@ -57,15 +57,15 @@ magic_hour/resources/v1/image_background_remover/client.py,sha256=xhinD3VIPOFamp
57
57
  magic_hour/resources/v1/image_projects/README.md,sha256=-mcL1vJbk9PI3bT1VAmq7XWl7hruM73PbCURdndz-f4,1589
58
58
  magic_hour/resources/v1/image_projects/__init__.py,sha256=oBlV4e5IVYe8SclhoEy2VOYB53kKP2DORXwcztAwU3E,130
59
59
  magic_hour/resources/v1/image_projects/client.py,sha256=FbqvgvoLFcAjBtqgGtQZMNT8jG5f2bJH7Poxod446sw,5527
60
- magic_hour/resources/v1/image_to_video/README.md,sha256=0yCC0Xc1nU9llXJkWHd0P4METjeu4Ri9K2wpsZLOzeY,1166
60
+ magic_hour/resources/v1/image_to_video/README.md,sha256=RHo1mqVzymPELMVroYrJN_F4VGzuWuTSufa94iKWcFw,1180
61
61
  magic_hour/resources/v1/image_to_video/__init__.py,sha256=tY_ABo6evwKQBRSq-M84lNX-pXqmxoozukmrO6NhCgA,126
62
- magic_hour/resources/v1/image_to_video/client.py,sha256=ETKE0ODjwGor_niYt3A5Y24GSF479UgVmiqzjPNVUjE,5987
62
+ magic_hour/resources/v1/image_to_video/client.py,sha256=m512tJStl0prro97wyIetZ9jWqbVxI83HslnbBBu6Vs,6043
63
63
  magic_hour/resources/v1/lip_sync/README.md,sha256=uNZzAXARbUTmq9CcM3uYFhtfpJbM6xICqxkE6woL0BU,1350
64
64
  magic_hour/resources/v1/lip_sync/__init__.py,sha256=MlKUAoHNSKcuNzVyqNfLnLtD_PsqEn3l1TtVpPC1JqQ,106
65
65
  magic_hour/resources/v1/lip_sync/client.py,sha256=jVP-RrJSKJSdhLp-FZLnMWWhmxdA45upCzPfiSUV6ao,7339
66
- magic_hour/resources/v1/text_to_video/README.md,sha256=Ug9HDXxOE0L_4sY6M4vmP041m8mPCxpabM4QbQoGMjY,1038
66
+ magic_hour/resources/v1/text_to_video/README.md,sha256=ecMH9s8N7DrIL_DkDvrCElbvRGnNxNMvSoX8uHMxyP4,1052
67
67
  magic_hour/resources/v1/text_to_video/__init__.py,sha256=F18iHSi9tuYSdgpatznBzb7lbSySNpK-82w96-Om_k4,122
68
- magic_hour/resources/v1/text_to_video/client.py,sha256=vtF-noowrL4Fw4516Qz-jegxm_iNEGKhvVDuPK8V_GI,5014
68
+ magic_hour/resources/v1/text_to_video/client.py,sha256=HFFj6a9VaYEzEsa--5lI8HhsS9az-mpDtpIgjV_Nf6M,5028
69
69
  magic_hour/resources/v1/video_projects/README.md,sha256=8z3EpBwXMR1nZL-ba34DAkoCfRZ0S2CyMaYCwLBYCEo,1589
70
70
  magic_hour/resources/v1/video_projects/__init__.py,sha256=1aj_tE-GAf8BuQ76RQvjGVn8Y39CjdAJDlcsCPucX0w,130
71
71
  magic_hour/resources/v1/video_projects/client.py,sha256=JvhYhf3phYkdVj8VpWxvxF8qWBRU-WaZYi-8lhVgpSQ,5511
@@ -87,7 +87,7 @@ magic_hour/types/models/v1_face_swap_photo_create_response.py,sha256=d68oxwceXya
87
87
  magic_hour/types/models/v1_files_upload_urls_create_response.py,sha256=ecdnxoo-ZBTa2kAusHq4nyz6RdugzyN7w4oazJt5ri0,460
88
88
  magic_hour/types/models/v1_files_upload_urls_create_response_items_item.py,sha256=AjW1Myj-dB10IdM3zTMEsXouY3tnx8vdN5CW3HLQX_M,799
89
89
  magic_hour/types/models/v1_image_background_remover_create_response.py,sha256=jK_RVF3V0VSZn70FzsEjCrA_SEbpvcDdxy1RSlvsygw,631
90
- magic_hour/types/models/v1_image_projects_get_response.py,sha256=ZAQjaYY3xw2qZS85L2jUPk8QIk8ZOY7SYtx48QpnQOA,2124
90
+ magic_hour/types/models/v1_image_projects_get_response.py,sha256=FEt7O6Z_C2pDzFnjkBciC2Cq6A9OfRsq-u8db4JTEqY,2141
91
91
  magic_hour/types/models/v1_image_projects_get_response_downloads_item.py,sha256=kC0UhiMug52kxN6Ib1H_u_JQGUbeRc91gjuVaXYaM-c,410
92
92
  magic_hour/types/models/v1_image_projects_get_response_error.py,sha256=R1qg-aIt63h6Q7bQ4AvgeC0lbUg5u35rwFXFvU_gvZs,568
93
93
  magic_hour/types/models/v1_image_to_video_create_response.py,sha256=9I3MptKUR2gdQW6SbGSZr5Usdte9PRSniq-pjwJySk4,736
@@ -121,7 +121,7 @@ magic_hour/types/params/v1_ai_talking_photo_create_body_assets.py,sha256=_xNq6uV
121
121
  magic_hour/types/params/v1_animation_create_body.py,sha256=QB0zxAhNDV8BEd6vuTAUoZaF2E0PNKwfzV7OrsdueGk,2221
122
122
  magic_hour/types/params/v1_animation_create_body_assets.py,sha256=Iot5sbRKLlXCHZS1X5tGICSRKOneBcqaDijYm5_BaUA,1965
123
123
  magic_hour/types/params/v1_animation_create_body_style.py,sha256=1ujex1BXQq70rp10Pxs8wkb6pkM7fP6fojTW5ATdXyo,8045
124
- magic_hour/types/params/v1_face_swap_create_body.py,sha256=c4unmCpqQl0ZoW08u5ts1WqgacSkalwPZIHFIiASTcU,2013
124
+ magic_hour/types/params/v1_face_swap_create_body.py,sha256=ZLxWHSs5NHHeBxBAE-8AEgUwEpEhpYQC4fW9dkmDXxQ,2923
125
125
  magic_hour/types/params/v1_face_swap_create_body_assets.py,sha256=CYcleQ4o_YLxRjRiVRwB-L_Cr0WTjsb6417uwdT0fas,1888
126
126
  magic_hour/types/params/v1_face_swap_photo_create_body.py,sha256=OYsrz7d7i7eg28bR_YS5ucl6k_bMhmNrOt2dF7MYdM4,979
127
127
  magic_hour/types/params/v1_face_swap_photo_create_body_assets.py,sha256=6UV78qJPwT9fgZ-26Zfko8alO4QlN88l5u7gm82Rz60,1279
@@ -129,17 +129,17 @@ magic_hour/types/params/v1_files_upload_urls_create_body.py,sha256=X6-ZcUqVVTM3w
129
129
  magic_hour/types/params/v1_files_upload_urls_create_body_items_item.py,sha256=I26O2Jx5_uhsCOrQCL_-wPeenu0rzhNwCDy0AEI6YuQ,962
130
130
  magic_hour/types/params/v1_image_background_remover_create_body.py,sha256=l3sb8UTXjie3gMd4ZJhHik-N1o3zaVzsZ7xDaS_uTG4,1063
131
131
  magic_hour/types/params/v1_image_background_remover_create_body_assets.py,sha256=aw9P_bdBTi8YMvgJxH8G0adwn1YswQzvtc0LgNAPQ8s,873
132
- magic_hour/types/params/v1_image_to_video_create_body.py,sha256=EooTD50DPBCAYcQCVcDeN8jHIju9cXKLh0g8RbZHDJg,2042
132
+ magic_hour/types/params/v1_image_to_video_create_body.py,sha256=jU1k75k6Q30RC1Hf41h2_e2fhQbSydiCKhF_ESTTZKc,2113
133
133
  magic_hour/types/params/v1_image_to_video_create_body_assets.py,sha256=J39Jv5Bv9bjMaskHzMfbO5VE6QWh-saN3eWOUPRtuRk,830
134
- magic_hour/types/params/v1_image_to_video_create_body_style.py,sha256=H9z0vGz6ke8SVz7i22rNFa28UXSzja3sTo9iIjwJO_A,960
134
+ magic_hour/types/params/v1_image_to_video_create_body_style.py,sha256=Q7KKr3i0ed7pj2HtwYW0dHQgY-Jjh9xTxUKxGYcBnU0,1535
135
135
  magic_hour/types/params/v1_lip_sync_create_body.py,sha256=U5mk_4Oy_e3NyfQIt-Av_FDvt4EYed10hvZZ6tMcEP4,2448
136
136
  magic_hour/types/params/v1_lip_sync_create_body_assets.py,sha256=UypixyrVpyyv2nysMgXFj1iyvALCE0D4WRy1D3XEWuI,1883
137
137
  magic_hour/types/params/v1_text_to_video_create_body.py,sha256=ax7CQZQ7keVjOWIsYFTQ9lb_PhhwvfMBXzHWX4x1nB8,1436
138
- magic_hour/types/params/v1_text_to_video_create_body_style.py,sha256=rMzJdsin-C9hdbMOt6VqGySTTClcVbICqwlw2OZQiW0,601
138
+ magic_hour/types/params/v1_text_to_video_create_body_style.py,sha256=9NTboy7J4efsA8tVub2uOZpmgriiggfOyf5uAodBN3o,1065
139
139
  magic_hour/types/params/v1_video_to_video_create_body.py,sha256=iOb3qGXySlI4unyWPAXDmiLMUSHH6ymuDHeiwpmhKeE,2942
140
140
  magic_hour/types/params/v1_video_to_video_create_body_assets.py,sha256=_-6iA5d8ndka6iJWyWvlJwzRkQcmurJE6hkg-fDwBmQ,1531
141
141
  magic_hour/types/params/v1_video_to_video_create_body_style.py,sha256=2jgpJ3A8LNXksTPQ5pp1tWXtd753zBuhBjA22qqCsTE,5697
142
- magic_hour-0.13.0.dist-info/LICENSE,sha256=F3fxj7JXPgB2K0uj8YXRsVss4u-Dgt_-U3V4VXsivNI,1070
143
- magic_hour-0.13.0.dist-info/METADATA,sha256=SQdefD2XUvX0Qu5rbIlUuk_lJxNnlH6sGcxq1Gneo8A,4997
144
- magic_hour-0.13.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
145
- magic_hour-0.13.0.dist-info/RECORD,,
142
+ magic_hour-0.15.0.dist-info/LICENSE,sha256=F3fxj7JXPgB2K0uj8YXRsVss4u-Dgt_-U3V4VXsivNI,1070
143
+ magic_hour-0.15.0.dist-info/METADATA,sha256=oS15F_OGakNy_WYZGGfdOZYQGyl8w_22MQf4R_RD-0w,4997
144
+ magic_hour-0.15.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
145
+ magic_hour-0.15.0.dist-info/RECORD,,