magic_hour 0.19.0__py3-none-any.whl → 0.21.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.19.0"
8
+ MOCK_SERVER = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.21.0"
@@ -2,7 +2,7 @@
2
2
  ### create <a name="create"></a>
3
3
  AI GIFs
4
4
 
5
- Create an AI GIF. Each GIF costs 5 frames.
5
+ Create an AI GIF. Each GIF costs 25 frames.
6
6
 
7
7
  **API Endpoint**: `POST /v1/ai-gif-generator`
8
8
 
@@ -27,7 +27,7 @@ class AiGifGeneratorClient:
27
27
  """
28
28
  AI GIFs
29
29
 
30
- Create an AI GIF. Each GIF costs 5 frames.
30
+ Create an AI GIF. Each GIF costs 25 frames.
31
31
 
32
32
  POST /v1/ai-gif-generator
33
33
 
@@ -80,7 +80,7 @@ class AsyncAiGifGeneratorClient:
80
80
  """
81
81
  AI GIFs
82
82
 
83
- Create an AI GIF. Each GIF costs 5 frames.
83
+ Create an AI GIF. Each GIF costs 25 frames.
84
84
 
85
85
  POST /v1/ai-gif-generator
86
86
 
@@ -25,6 +25,8 @@ res = client.v1.ai_photo_editor.create(
25
25
  "prompt": "A photo portrait of a person wearing a hat",
26
26
  "prompt_strength": 3.75,
27
27
  "steps": 4,
28
+ "upscale_factor": 2,
29
+ "upscale_fidelity": 0.5,
28
30
  },
29
31
  name="Photo Editor image",
30
32
  )
@@ -47,6 +49,8 @@ res = await client.v1.ai_photo_editor.create(
47
49
  "prompt": "A photo portrait of a person wearing a hat",
48
50
  "prompt_strength": 3.75,
49
51
  "steps": 4,
52
+ "upscale_factor": 2,
53
+ "upscale_fidelity": 0.5,
50
54
  },
51
55
  name="Photo Editor image",
52
56
  )
@@ -65,6 +65,8 @@ class AiPhotoEditorClient:
65
65
  "prompt": "A photo portrait of a person wearing a hat",
66
66
  "prompt_strength": 3.75,
67
67
  "steps": 4,
68
+ "upscale_factor": 2,
69
+ "upscale_fidelity": 0.5,
68
70
  },
69
71
  name="Photo Editor image",
70
72
  )
@@ -144,6 +146,8 @@ class AsyncAiPhotoEditorClient:
144
146
  "prompt": "A photo portrait of a person wearing a hat",
145
147
  "prompt_strength": 3.75,
146
148
  "steps": 4,
149
+ "upscale_factor": 2,
150
+ "upscale_fidelity": 0.5,
147
151
  },
148
152
  name="Photo Editor image",
149
153
  )
@@ -19,7 +19,6 @@ client = Client(token=getenv("API_TOKEN"))
19
19
  res = client.v1.video_to_video.create(
20
20
  assets={"video_file_path": "api-assets/id/1234.mp4", "video_source": "file"},
21
21
  end_seconds=15.0,
22
- height=960,
23
22
  start_seconds=0.0,
24
23
  style={
25
24
  "art_style": "3D Render",
@@ -28,9 +27,10 @@ res = client.v1.video_to_video.create(
28
27
  "prompt_type": "append_default",
29
28
  "version": "default",
30
29
  },
31
- width=512,
32
30
  fps_resolution="HALF",
31
+ height=960,
33
32
  name="Video To Video video",
33
+ width=512,
34
34
  )
35
35
  ```
36
36
 
@@ -44,7 +44,6 @@ client = AsyncClient(token=getenv("API_TOKEN"))
44
44
  res = await client.v1.video_to_video.create(
45
45
  assets={"video_file_path": "api-assets/id/1234.mp4", "video_source": "file"},
46
46
  end_seconds=15.0,
47
- height=960,
48
47
  start_seconds=0.0,
49
48
  style={
50
49
  "art_style": "3D Render",
@@ -53,8 +52,9 @@ res = await client.v1.video_to_video.create(
53
52
  "prompt_type": "append_default",
54
53
  "version": "default",
55
54
  },
56
- width=512,
57
55
  fps_resolution="HALF",
56
+ height=960,
58
57
  name="Video To Video video",
58
+ width=512,
59
59
  )
60
60
  ```
@@ -21,17 +21,21 @@ class VideoToVideoClient:
21
21
  *,
22
22
  assets: params.V1VideoToVideoCreateBodyAssets,
23
23
  end_seconds: float,
24
- height: int,
25
24
  start_seconds: float,
26
25
  style: params.V1VideoToVideoCreateBodyStyle,
27
- width: int,
28
26
  fps_resolution: typing.Union[
29
27
  typing.Optional[typing_extensions.Literal["FULL", "HALF"]],
30
28
  type_utils.NotGiven,
31
29
  ] = type_utils.NOT_GIVEN,
30
+ height: typing.Union[
31
+ typing.Optional[int], type_utils.NotGiven
32
+ ] = type_utils.NOT_GIVEN,
32
33
  name: typing.Union[
33
34
  typing.Optional[str], type_utils.NotGiven
34
35
  ] = type_utils.NOT_GIVEN,
36
+ width: typing.Union[
37
+ typing.Optional[int], type_utils.NotGiven
38
+ ] = type_utils.NOT_GIVEN,
35
39
  request_options: typing.Optional[RequestOptions] = None,
36
40
  ) -> models.V1VideoToVideoCreateResponse:
37
41
  """
@@ -48,13 +52,27 @@ class VideoToVideoClient:
48
52
  fps_resolution: Determines whether the resulting video will have the same frame per second as the original video, or half.
49
53
  * `FULL` - the result video will have the same FPS as the input video
50
54
  * `HALF` - the result video will have half the FPS as the input video
55
+ height: Used to determine the dimensions of the output video.
56
+
57
+ * 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.
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.
51
63
  name: The name of video
64
+ width: Used to determine the dimensions of the output video.
65
+
66
+ * 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.
67
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
68
+
69
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
70
+
71
+ See our [pricing page](https://magichour.ai/pricing) for more details.
52
72
  assets: Provide the assets for video-to-video. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
53
73
  end_seconds: The end time of the input video in seconds
54
- height: The height of the final output video. Must be divisible by 64. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
55
74
  start_seconds: The start time of the input video in seconds
56
75
  style: V1VideoToVideoCreateBodyStyle
57
- width: The width of the final output video. Must be divisible by 64. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
58
76
  request_options: Additional options to customize the HTTP request
59
77
 
60
78
  Returns:
@@ -72,7 +90,6 @@ class VideoToVideoClient:
72
90
  "video_source": "file",
73
91
  },
74
92
  end_seconds=15.0,
75
- height=960,
76
93
  start_seconds=0.0,
77
94
  style={
78
95
  "art_style": "3D Render",
@@ -81,22 +98,23 @@ class VideoToVideoClient:
81
98
  "prompt_type": "append_default",
82
99
  "version": "default",
83
100
  },
84
- width=512,
85
101
  fps_resolution="HALF",
102
+ height=960,
86
103
  name="Video To Video video",
104
+ width=512,
87
105
  )
88
106
  ```
89
107
  """
90
108
  _json = to_encodable(
91
109
  item={
92
110
  "fps_resolution": fps_resolution,
111
+ "height": height,
93
112
  "name": name,
113
+ "width": width,
94
114
  "assets": assets,
95
115
  "end_seconds": end_seconds,
96
- "height": height,
97
116
  "start_seconds": start_seconds,
98
117
  "style": style,
99
- "width": width,
100
118
  },
101
119
  dump_with=params._SerializerV1VideoToVideoCreateBody,
102
120
  )
@@ -119,17 +137,21 @@ class AsyncVideoToVideoClient:
119
137
  *,
120
138
  assets: params.V1VideoToVideoCreateBodyAssets,
121
139
  end_seconds: float,
122
- height: int,
123
140
  start_seconds: float,
124
141
  style: params.V1VideoToVideoCreateBodyStyle,
125
- width: int,
126
142
  fps_resolution: typing.Union[
127
143
  typing.Optional[typing_extensions.Literal["FULL", "HALF"]],
128
144
  type_utils.NotGiven,
129
145
  ] = type_utils.NOT_GIVEN,
146
+ height: typing.Union[
147
+ typing.Optional[int], type_utils.NotGiven
148
+ ] = type_utils.NOT_GIVEN,
130
149
  name: typing.Union[
131
150
  typing.Optional[str], type_utils.NotGiven
132
151
  ] = type_utils.NOT_GIVEN,
152
+ width: typing.Union[
153
+ typing.Optional[int], type_utils.NotGiven
154
+ ] = type_utils.NOT_GIVEN,
133
155
  request_options: typing.Optional[RequestOptions] = None,
134
156
  ) -> models.V1VideoToVideoCreateResponse:
135
157
  """
@@ -146,13 +168,27 @@ class AsyncVideoToVideoClient:
146
168
  fps_resolution: Determines whether the resulting video will have the same frame per second as the original video, or half.
147
169
  * `FULL` - the result video will have the same FPS as the input video
148
170
  * `HALF` - the result video will have half the FPS as the input video
171
+ height: Used to determine the dimensions of the output video.
172
+
173
+ * 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.
174
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
175
+
176
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
177
+
178
+ See our [pricing page](https://magichour.ai/pricing) for more details.
149
179
  name: The name of video
180
+ width: Used to determine the dimensions of the output video.
181
+
182
+ * 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.
183
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
184
+
185
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
186
+
187
+ See our [pricing page](https://magichour.ai/pricing) for more details.
150
188
  assets: Provide the assets for video-to-video. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
151
189
  end_seconds: The end time of the input video in seconds
152
- height: The height of the final output video. Must be divisible by 64. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
153
190
  start_seconds: The start time of the input video in seconds
154
191
  style: V1VideoToVideoCreateBodyStyle
155
- width: The width of the final output video. Must be divisible by 64. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
156
192
  request_options: Additional options to customize the HTTP request
157
193
 
158
194
  Returns:
@@ -170,7 +206,6 @@ class AsyncVideoToVideoClient:
170
206
  "video_source": "file",
171
207
  },
172
208
  end_seconds=15.0,
173
- height=960,
174
209
  start_seconds=0.0,
175
210
  style={
176
211
  "art_style": "3D Render",
@@ -179,22 +214,23 @@ class AsyncVideoToVideoClient:
179
214
  "prompt_type": "append_default",
180
215
  "version": "default",
181
216
  },
182
- width=512,
183
217
  fps_resolution="HALF",
218
+ height=960,
184
219
  name="Video To Video video",
220
+ width=512,
185
221
  )
186
222
  ```
187
223
  """
188
224
  _json = to_encodable(
189
225
  item={
190
226
  "fps_resolution": fps_resolution,
227
+ "height": height,
191
228
  "name": name,
229
+ "width": width,
192
230
  "assets": assets,
193
231
  "end_seconds": end_seconds,
194
- "height": height,
195
232
  "start_seconds": start_seconds,
196
233
  "style": style,
197
- "width": width,
198
234
  },
199
235
  dump_with=params._SerializerV1VideoToVideoCreateBody,
200
236
  )
@@ -38,6 +38,16 @@ class V1AiPhotoEditorCreateBodyStyle(typing_extensions.TypedDict):
38
38
  Number of iterations used to generate the output. Higher values improve quality and increase the strength of the prompt but increase processing time.
39
39
  """
40
40
 
41
+ upscale_factor: typing_extensions.NotRequired[int]
42
+ """
43
+ The multiplier applied to an image's original dimensions during the upscaling process. For example, a scale of 2 doubles the width and height (e.g., from 512x512 to 1024x1024).
44
+ """
45
+
46
+ upscale_fidelity: typing_extensions.NotRequired[float]
47
+ """
48
+ Upscale fidelity refers to the level of quality desired in the generated image. Fidelity value of 1 means more details.
49
+ """
50
+
41
51
 
42
52
  class _SerializerV1AiPhotoEditorCreateBodyStyle(pydantic.BaseModel):
43
53
  """
@@ -65,3 +75,9 @@ class _SerializerV1AiPhotoEditorCreateBodyStyle(pydantic.BaseModel):
65
75
  alias="prompt_strength",
66
76
  )
67
77
  steps: typing.Optional[int] = pydantic.Field(alias="steps", default=None)
78
+ upscale_factor: typing.Optional[int] = pydantic.Field(
79
+ alias="upscale_factor", default=None
80
+ )
81
+ upscale_fidelity: typing.Optional[float] = pydantic.Field(
82
+ alias="upscale_fidelity", default=None
83
+ )
@@ -36,9 +36,16 @@ class V1VideoToVideoCreateBody(typing_extensions.TypedDict):
36
36
  * `HALF` - the result video will have half the FPS as the input video
37
37
  """
38
38
 
39
- height: typing_extensions.Required[int]
39
+ height: typing_extensions.NotRequired[int]
40
40
  """
41
- The height of the final output video. Must be divisible by 64. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
41
+ Used to determine the dimensions of the output video.
42
+
43
+ * 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.
44
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
45
+
46
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
47
+
48
+ See our [pricing page](https://magichour.ai/pricing) for more details.
42
49
  """
43
50
 
44
51
  name: typing_extensions.NotRequired[str]
@@ -53,9 +60,16 @@ class V1VideoToVideoCreateBody(typing_extensions.TypedDict):
53
60
 
54
61
  style: typing_extensions.Required[V1VideoToVideoCreateBodyStyle]
55
62
 
56
- width: typing_extensions.Required[int]
63
+ width: typing_extensions.NotRequired[int]
57
64
  """
58
- The width of the final output video. Must be divisible by 64. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
65
+ Used to determine the dimensions of the output video.
66
+
67
+ * 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.
68
+ * If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.
69
+
70
+ Note: if the video's original resolution is less than the maximum, the video will not be resized.
71
+
72
+ See our [pricing page](https://magichour.ai/pricing) for more details.
59
73
  """
60
74
 
61
75
 
@@ -78,9 +92,7 @@ class _SerializerV1VideoToVideoCreateBody(pydantic.BaseModel):
78
92
  fps_resolution: typing.Optional[typing_extensions.Literal["FULL", "HALF"]] = (
79
93
  pydantic.Field(alias="fps_resolution", default=None)
80
94
  )
81
- height: int = pydantic.Field(
82
- alias="height",
83
- )
95
+ height: typing.Optional[int] = pydantic.Field(alias="height", default=None)
84
96
  name: typing.Optional[str] = pydantic.Field(alias="name", default=None)
85
97
  start_seconds: float = pydantic.Field(
86
98
  alias="start_seconds",
@@ -88,6 +100,4 @@ class _SerializerV1VideoToVideoCreateBody(pydantic.BaseModel):
88
100
  style: _SerializerV1VideoToVideoCreateBodyStyle = pydantic.Field(
89
101
  alias="style",
90
102
  )
91
- width: int = pydantic.Field(
92
- alias="width",
93
- )
103
+ width: typing.Optional[int] = pydantic.Field(alias="width", default=None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: magic_hour
3
- Version: 0.19.0
3
+ Version: 0.21.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=_ikn8iZ2fU9Ubqnt7M9hdEnXGV6AAFHJYmDKBtxEY4I,52
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=ftSIikX25smGGgd-4zhB_YaihTypOrpHoZnLahAO5_s,213
13
+ magic_hour/environment.py,sha256=HK5djIaAV8tl6fY2AAiv4u0Cj3gVEPVsBm7gT0yyxHs,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
@@ -18,9 +18,9 @@ magic_hour/resources/v1/ai_clothes_changer/client.py,sha256=gnhqocjO0GjoGM6dFOKk
18
18
  magic_hour/resources/v1/ai_face_editor/README.md,sha256=nhTRDxHPVqkd22FNZcZbtpEBqcV-t8-MavSqfuPh00w,1811
19
19
  magic_hour/resources/v1/ai_face_editor/__init__.py,sha256=RY8GBMQcqsDFbFcUuK-4LPvablq-U9XmSSlQk4HLKmM,126
20
20
  magic_hour/resources/v1/ai_face_editor/client.py,sha256=N5toTWe-Ag2iAhwk-CbWQxGnK6fZ2uHAFEKx15SPl-I,5315
21
- magic_hour/resources/v1/ai_gif_generator/README.md,sha256=C_Kmd_gPva1vOU_XMqZ2zy0FKP2kKYiTX9fHCNB8tfI,650
21
+ magic_hour/resources/v1/ai_gif_generator/README.md,sha256=jjNjYamGve_wv4NsD7ehn9lr3ztpqggViUoOhXNHb9k,651
22
22
  magic_hour/resources/v1/ai_gif_generator/__init__.py,sha256=SG_WmxUnpQWlfNQoHfdXPEGQEPC0WZPgom8ATaR9jiY,134
23
- magic_hour/resources/v1/ai_gif_generator/client.py,sha256=kQ3iCwCRtVIWu19Bn4Qwm3NHHdeKPPWfE4QAe2D7JVA,3487
23
+ magic_hour/resources/v1/ai_gif_generator/client.py,sha256=uIt2HfyTNtGqn-funDkcGV0lXZtWdMJKS7Jhv99phPo,3489
24
24
  magic_hour/resources/v1/ai_headshot_generator/README.md,sha256=CWihzwUuDVoLBItSDJKGBW1EQthz2REmkLkaaA68yao,705
25
25
  magic_hour/resources/v1/ai_headshot_generator/__init__.py,sha256=4WZ3jfrL2yPhQaPalMJrUEykwUoF3KBtop2VJEij-0s,154
26
26
  magic_hour/resources/v1/ai_headshot_generator/client.py,sha256=PoRzXFJCIyGA4PDOZyK6rQ1PHE6EUXSE7ilu_N9RTEc,4159
@@ -33,9 +33,9 @@ magic_hour/resources/v1/ai_image_upscaler/client.py,sha256=h06UydWxHm2axdCK7fnEN
33
33
  magic_hour/resources/v1/ai_meme_generator/README.md,sha256=apoW6OAAuK6DJh43ZZt1SwGsjawkVl-IQTiqqMNrDOA,864
34
34
  magic_hour/resources/v1/ai_meme_generator/__init__.py,sha256=x4vtin1KKvoA-va7vhaQ91c__M2z3PmDySLX7yJpRDA,138
35
35
  magic_hour/resources/v1/ai_meme_generator/client.py,sha256=koIrShmzJ5duMoNFe28gli9temiSReKTDv24s2CcB9g,3831
36
- magic_hour/resources/v1/ai_photo_editor/README.md,sha256=H5mahQ4cU15c_ISYSxIwBCx4pROxUtaOSseZCq2ZcF4,1434
36
+ magic_hour/resources/v1/ai_photo_editor/README.md,sha256=6vDvDeZt0wncUhkW9z_4jLru2pZKVNoMZ3Nqb2_WESk,1558
37
37
  magic_hour/resources/v1/ai_photo_editor/__init__.py,sha256=RPG6WaL2KN_DmgrtxImA_jNnEDMm-Ku2o2m2EnNwxts,130
38
- magic_hour/resources/v1/ai_photo_editor/client.py,sha256=oNXR7XhA_pzUpUJ6n0aDJ3mWo8mIyqL-kXFv8GBGCZ0,6233
38
+ magic_hour/resources/v1/ai_photo_editor/client.py,sha256=OvpEVE5elMZGsnD7x9mtLoFWJ_p7ZiHvjOEKBfSyX40,6389
39
39
  magic_hour/resources/v1/ai_qr_code_generator/README.md,sha256=w6IE0mm_D-PnW-bDsIu9k8oPePekZ2TuW3gOFhi95_w,734
40
40
  magic_hour/resources/v1/ai_qr_code_generator/__init__.py,sha256=HnSTg7tB8M5LibZoCDRdE5Q71efmiqZIkNEve5SO1Mg,146
41
41
  magic_hour/resources/v1/ai_qr_code_generator/client.py,sha256=jeqU-1cDWHTpYrfeEq-ABIQqC-jO2elusrfo69Q6pDI,3849
@@ -78,9 +78,9 @@ magic_hour/resources/v1/text_to_video/client.py,sha256=HFFj6a9VaYEzEsa--5lI8HhsS
78
78
  magic_hour/resources/v1/video_projects/README.md,sha256=8z3EpBwXMR1nZL-ba34DAkoCfRZ0S2CyMaYCwLBYCEo,1589
79
79
  magic_hour/resources/v1/video_projects/__init__.py,sha256=1aj_tE-GAf8BuQ76RQvjGVn8Y39CjdAJDlcsCPucX0w,130
80
80
  magic_hour/resources/v1/video_projects/client.py,sha256=JvhYhf3phYkdVj8VpWxvxF8qWBRU-WaZYi-8lhVgpSQ,5511
81
- magic_hour/resources/v1/video_to_video/README.md,sha256=yOIRj1EPTVl8rl15SPWhpc2PZi1ddKGMix8WbaxlXzQ,1630
81
+ magic_hour/resources/v1/video_to_video/README.md,sha256=--Z-JVvJ-412coXNU1F1a2Iq2IgR96QTbxQ31ryN8AE,1630
82
82
  magic_hour/resources/v1/video_to_video/__init__.py,sha256=1SHaRLlsrlBkdxxKBYgdbHrGATlRvqlXc22RpjjHaOA,126
83
- magic_hour/resources/v1/video_to_video/client.py,sha256=dYb2zi8MMhm1YUBFxGhFno4ikbMEjcLrs3JofapyP-s,8368
83
+ magic_hour/resources/v1/video_to_video/client.py,sha256=WFmYL3ZBLyKLDBOOOc9tJigtwviI6JLjbH7yJSsiIyM,10404
84
84
  magic_hour/types/models/__init__.py,sha256=Zv5G1HTpnPT94bSWyVhAxrijRGsInkXbBaifvaJxsr8,3423
85
85
  magic_hour/types/models/v1_ai_clothes_changer_create_response.py,sha256=gpPZLGvSukhBSK2LzTckn4HFcNDseP_XtfwasxzE2uc,625
86
86
  magic_hour/types/models/v1_ai_face_editor_create_response.py,sha256=mjeIlBOfcvHy9WrtOh0ZKFwrYZbA3gUY46fQ-fIGHuI,621
@@ -130,7 +130,7 @@ magic_hour/types/params/v1_ai_meme_generator_create_body.py,sha256=aYbnLZcqeIL4v
130
130
  magic_hour/types/params/v1_ai_meme_generator_create_body_style.py,sha256=olHEhM1LlYDjqcRYXglayUfxklnVBThCv86QP9s28no,1822
131
131
  magic_hour/types/params/v1_ai_photo_editor_create_body.py,sha256=KrlvaPla47WKbH79y_NWruDNEcF4Xl4l3_zw7MqrkF0,1940
132
132
  magic_hour/types/params/v1_ai_photo_editor_create_body_assets.py,sha256=xoDh4VwV-VapU8zUYV6Xnq5LDeE7z-OxNmsmlMlfre0,841
133
- magic_hour/types/params/v1_ai_photo_editor_create_body_style.py,sha256=VPBkdZRjQ7rAFLBcwWt7I-sWmD_oApCa0gyMM0P2-DQ,2073
133
+ magic_hour/types/params/v1_ai_photo_editor_create_body_style.py,sha256=EGPcoSjCDffoTbY3QB-85HVJ97p9swcZkMsYdW_O2JE,2752
134
134
  magic_hour/types/params/v1_ai_qr_code_generator_create_body.py,sha256=_O1654Mbl77SGi9lH4FmKkTwtCXCArH9BeSlgTuLyT0,1109
135
135
  magic_hour/types/params/v1_ai_qr_code_generator_create_body_style.py,sha256=i3ldwmoQPEnrw654PNIARmpsX-kUHZqaT8wjcc22JoA,839
136
136
  magic_hour/types/params/v1_ai_talking_photo_create_body.py,sha256=YOIaCrhespIr0Ue6cOF4R2bg00BGZXQeJwP7RwhJhRI,1408
@@ -155,10 +155,10 @@ magic_hour/types/params/v1_photo_colorizer_create_body.py,sha256=z6ARPEh1m3UL137
155
155
  magic_hour/types/params/v1_photo_colorizer_create_body_assets.py,sha256=fMC-R5V3gcd-S0LjxNViwtKiLvsxCwEFES31BLWYFp4,859
156
156
  magic_hour/types/params/v1_text_to_video_create_body.py,sha256=ax7CQZQ7keVjOWIsYFTQ9lb_PhhwvfMBXzHWX4x1nB8,1436
157
157
  magic_hour/types/params/v1_text_to_video_create_body_style.py,sha256=9NTboy7J4efsA8tVub2uOZpmgriiggfOyf5uAodBN3o,1065
158
- magic_hour/types/params/v1_video_to_video_create_body.py,sha256=iOb3qGXySlI4unyWPAXDmiLMUSHH6ymuDHeiwpmhKeE,2942
158
+ magic_hour/types/params/v1_video_to_video_create_body.py,sha256=Pgok6GUVHrpW6H3rwdVFA3O5YJvjgviCZkmmHddOSWo,3802
159
159
  magic_hour/types/params/v1_video_to_video_create_body_assets.py,sha256=_-6iA5d8ndka6iJWyWvlJwzRkQcmurJE6hkg-fDwBmQ,1531
160
160
  magic_hour/types/params/v1_video_to_video_create_body_style.py,sha256=2jgpJ3A8LNXksTPQ5pp1tWXtd753zBuhBjA22qqCsTE,5697
161
- magic_hour-0.19.0.dist-info/LICENSE,sha256=F3fxj7JXPgB2K0uj8YXRsVss4u-Dgt_-U3V4VXsivNI,1070
162
- magic_hour-0.19.0.dist-info/METADATA,sha256=3odRlp7YmOHingY8iZV0Qr4TM_w8xmrN6lyFHftpb1M,5483
163
- magic_hour-0.19.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
164
- magic_hour-0.19.0.dist-info/RECORD,,
161
+ magic_hour-0.21.0.dist-info/LICENSE,sha256=F3fxj7JXPgB2K0uj8YXRsVss4u-Dgt_-U3V4VXsivNI,1070
162
+ magic_hour-0.21.0.dist-info/METADATA,sha256=0hzEUp1XwY7bEE3NPBcQW4480kDU8b3bfCm-DoXlsek,5483
163
+ magic_hour-0.21.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
164
+ magic_hour-0.21.0.dist-info/RECORD,,