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 +1 -1
- magic_hour/resources/v1/ai_gif_generator/README.md +1 -1
- magic_hour/resources/v1/ai_gif_generator/client.py +2 -2
- magic_hour/resources/v1/ai_photo_editor/README.md +4 -0
- magic_hour/resources/v1/ai_photo_editor/client.py +4 -0
- magic_hour/resources/v1/video_to_video/README.md +4 -4
- magic_hour/resources/v1/video_to_video/client.py +52 -16
- magic_hour/types/params/v1_ai_photo_editor_create_body_style.py +16 -0
- magic_hour/types/params/v1_video_to_video_create_body.py +20 -10
- {magic_hour-0.19.0.dist-info → magic_hour-0.21.0.dist-info}/METADATA +1 -1
- {magic_hour-0.19.0.dist-info → magic_hour-0.21.0.dist-info}/RECORD +13 -13
- {magic_hour-0.19.0.dist-info → magic_hour-0.21.0.dist-info}/LICENSE +0 -0
- {magic_hour-0.19.0.dist-info → magic_hour-0.21.0.dist-info}/WHEEL +0 -0
magic_hour/environment.py
CHANGED
|
@@ -27,7 +27,7 @@ class AiGifGeneratorClient:
|
|
|
27
27
|
"""
|
|
28
28
|
AI GIFs
|
|
29
29
|
|
|
30
|
-
Create an AI GIF. Each GIF costs
|
|
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
|
|
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.
|
|
39
|
+
height: typing_extensions.NotRequired[int]
|
|
40
40
|
"""
|
|
41
|
-
|
|
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.
|
|
63
|
+
width: typing_extensions.NotRequired[int]
|
|
57
64
|
"""
|
|
58
|
-
|
|
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)
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
162
|
-
magic_hour-0.
|
|
163
|
-
magic_hour-0.
|
|
164
|
-
magic_hour-0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|