magic_hour 0.13.0__tar.gz → 0.15.0__tar.gz
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-0.13.0 → magic_hour-0.15.0}/PKG-INFO +1 -1
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/environment.py +1 -1
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap/client.py +52 -16
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_to_video/README.md +2 -2
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_to_video/client.py +4 -4
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/text_to_video/README.md +2 -2
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/text_to_video/client.py +2 -2
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_projects_get_response.py +1 -1
- magic_hour-0.15.0/magic_hour/types/params/v1_face_swap_create_body.py +82 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_image_to_video_create_body.py +3 -0
- magic_hour-0.15.0/magic_hour/types/params/v1_image_to_video_create_body_style.py +46 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_text_to_video_create_body_style.py +12 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/pyproject.toml +1 -1
- magic_hour-0.13.0/magic_hour/types/params/v1_face_swap_create_body.py +0 -72
- magic_hour-0.13.0/magic_hour/types/params/v1_image_to_video_create_body_style.py +0 -37
- {magic_hour-0.13.0 → magic_hour-0.15.0}/LICENSE +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/api_error.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/auth.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/base_client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/binary_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/query.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/request.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/type_utils.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/core/utils.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_upscaler/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_upscaler/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_upscaler/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_meme_generator/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_meme_generator/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_meme_generator/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_photo_editor/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_photo_editor/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_photo_editor/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_talking_photo/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_talking_photo/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_talking_photo/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/animation/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/animation/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/animation/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap/README.md +4 -4
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap_photo/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap_photo/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/face_swap_photo/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/upload_urls/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/upload_urls/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/upload_urls/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_projects/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_projects/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_projects/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_to_video/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/lip_sync/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/lip_sync/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/lip_sync/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/text_to_video/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_projects/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_projects/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_projects/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_to_video/README.md +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_to_video/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/video_to_video/client.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_clothes_changer_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_headshot_generator_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_image_generator_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_image_upscaler_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_meme_generator_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_photo_editor_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_qr_code_generator_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_ai_talking_photo_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_animation_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_face_swap_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_face_swap_photo_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_files_upload_urls_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_files_upload_urls_create_response_items_item.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_background_remover_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_projects_get_response_downloads_item.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_projects_get_response_error.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_to_video_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_lip_sync_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_text_to_video_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_projects_get_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_projects_get_response_download.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_projects_get_response_downloads_item.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_projects_get_response_error.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_to_video_create_response.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/__init__.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_clothes_changer_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_clothes_changer_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_headshot_generator_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_headshot_generator_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_headshot_generator_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_generator_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_generator_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_upscaler_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_upscaler_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_upscaler_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_meme_generator_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_meme_generator_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_photo_editor_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_photo_editor_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_photo_editor_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_qr_code_generator_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_qr_code_generator_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_talking_photo_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_talking_photo_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_animation_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_animation_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_animation_create_body_style.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_face_swap_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_face_swap_photo_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_face_swap_photo_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_files_upload_urls_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_files_upload_urls_create_body_items_item.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_image_background_remover_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_image_background_remover_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_image_to_video_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_lip_sync_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_lip_sync_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_text_to_video_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_video_to_video_create_body.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_video_to_video_create_body_assets.py +0 -0
- {magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_video_to_video_create_body_style.py +0 -0
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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": "
|
|
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": "
|
|
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:
|
|
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": "
|
|
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:
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
127
|
+
style={"prompt": "a dog running"},
|
|
128
128
|
name="Text To Video video",
|
|
129
129
|
)
|
|
130
130
|
```
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_projects_get_response.py
RENAMED
|
@@ -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
|
"""
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import pydantic
|
|
2
|
+
import typing
|
|
3
|
+
import typing_extensions
|
|
4
|
+
|
|
5
|
+
from .v1_face_swap_create_body_assets import (
|
|
6
|
+
V1FaceSwapCreateBodyAssets,
|
|
7
|
+
_SerializerV1FaceSwapCreateBodyAssets,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class V1FaceSwapCreateBody(typing_extensions.TypedDict):
|
|
12
|
+
"""
|
|
13
|
+
V1FaceSwapCreateBody
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
assets: typing_extensions.Required[V1FaceSwapCreateBodyAssets]
|
|
17
|
+
"""
|
|
18
|
+
Provide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
end_seconds: typing_extensions.Required[float]
|
|
22
|
+
"""
|
|
23
|
+
The end time of the input video in seconds
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
height: typing_extensions.NotRequired[int]
|
|
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.
|
|
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.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
name: typing_extensions.NotRequired[str]
|
|
39
|
+
"""
|
|
40
|
+
The name of video
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
start_seconds: typing_extensions.Required[float]
|
|
44
|
+
"""
|
|
45
|
+
The start time of the input video in seconds
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
width: typing_extensions.NotRequired[int]
|
|
49
|
+
"""
|
|
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.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class _SerializerV1FaceSwapCreateBody(pydantic.BaseModel):
|
|
62
|
+
"""
|
|
63
|
+
Serializer for V1FaceSwapCreateBody handling case conversions
|
|
64
|
+
and file omissions as dictated by the API
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
model_config = pydantic.ConfigDict(
|
|
68
|
+
populate_by_name=True,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
assets: _SerializerV1FaceSwapCreateBodyAssets = pydantic.Field(
|
|
72
|
+
alias="assets",
|
|
73
|
+
)
|
|
74
|
+
end_seconds: float = pydantic.Field(
|
|
75
|
+
alias="end_seconds",
|
|
76
|
+
)
|
|
77
|
+
height: typing.Optional[int] = pydantic.Field(alias="height", default=None)
|
|
78
|
+
name: typing.Optional[str] = pydantic.Field(alias="name", default=None)
|
|
79
|
+
start_seconds: float = pydantic.Field(
|
|
80
|
+
alias="start_seconds",
|
|
81
|
+
)
|
|
82
|
+
width: typing.Optional[int] = pydantic.Field(alias="width", default=None)
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_image_to_video_create_body.py
RENAMED
|
@@ -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
|
"""
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import pydantic
|
|
2
|
+
import typing
|
|
3
|
+
import typing_extensions
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class V1ImageToVideoCreateBodyStyle(typing_extensions.TypedDict):
|
|
7
|
+
"""
|
|
8
|
+
Attributed used to dictate the style of the output
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
high_quality: typing_extensions.NotRequired[bool]
|
|
12
|
+
"""
|
|
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
|
+
"""
|
|
15
|
+
|
|
16
|
+
prompt: typing_extensions.NotRequired[str]
|
|
17
|
+
"""
|
|
18
|
+
The prompt used for the video.
|
|
19
|
+
"""
|
|
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
|
+
|
|
29
|
+
|
|
30
|
+
class _SerializerV1ImageToVideoCreateBodyStyle(pydantic.BaseModel):
|
|
31
|
+
"""
|
|
32
|
+
Serializer for V1ImageToVideoCreateBodyStyle handling case conversions
|
|
33
|
+
and file omissions as dictated by the API
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
model_config = pydantic.ConfigDict(
|
|
37
|
+
populate_by_name=True,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
high_quality: typing.Optional[bool] = pydantic.Field(
|
|
41
|
+
alias="high_quality", default=None
|
|
42
|
+
)
|
|
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)
|
|
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,72 +0,0 @@
|
|
|
1
|
-
import pydantic
|
|
2
|
-
import typing
|
|
3
|
-
import typing_extensions
|
|
4
|
-
|
|
5
|
-
from .v1_face_swap_create_body_assets import (
|
|
6
|
-
V1FaceSwapCreateBodyAssets,
|
|
7
|
-
_SerializerV1FaceSwapCreateBodyAssets,
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class V1FaceSwapCreateBody(typing_extensions.TypedDict):
|
|
12
|
-
"""
|
|
13
|
-
V1FaceSwapCreateBody
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
assets: typing_extensions.Required[V1FaceSwapCreateBodyAssets]
|
|
17
|
-
"""
|
|
18
|
-
Provide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
end_seconds: typing_extensions.Required[float]
|
|
22
|
-
"""
|
|
23
|
-
The end time of the input video in seconds
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
height: typing_extensions.Required[int]
|
|
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
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
name: typing_extensions.NotRequired[str]
|
|
32
|
-
"""
|
|
33
|
-
The name of video
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
start_seconds: typing_extensions.Required[float]
|
|
37
|
-
"""
|
|
38
|
-
The start time of the input video in seconds
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
width: typing_extensions.Required[int]
|
|
42
|
-
"""
|
|
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
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class _SerializerV1FaceSwapCreateBody(pydantic.BaseModel):
|
|
48
|
-
"""
|
|
49
|
-
Serializer for V1FaceSwapCreateBody handling case conversions
|
|
50
|
-
and file omissions as dictated by the API
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
model_config = pydantic.ConfigDict(
|
|
54
|
-
populate_by_name=True,
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
assets: _SerializerV1FaceSwapCreateBodyAssets = pydantic.Field(
|
|
58
|
-
alias="assets",
|
|
59
|
-
)
|
|
60
|
-
end_seconds: float = pydantic.Field(
|
|
61
|
-
alias="end_seconds",
|
|
62
|
-
)
|
|
63
|
-
height: int = pydantic.Field(
|
|
64
|
-
alias="height",
|
|
65
|
-
)
|
|
66
|
-
name: typing.Optional[str] = pydantic.Field(alias="name", default=None)
|
|
67
|
-
start_seconds: float = pydantic.Field(
|
|
68
|
-
alias="start_seconds",
|
|
69
|
-
)
|
|
70
|
-
width: int = pydantic.Field(
|
|
71
|
-
alias="width",
|
|
72
|
-
)
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import pydantic
|
|
2
|
-
import typing
|
|
3
|
-
import typing_extensions
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class V1ImageToVideoCreateBodyStyle(typing_extensions.TypedDict):
|
|
7
|
-
"""
|
|
8
|
-
V1ImageToVideoCreateBodyStyle
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
high_quality: typing_extensions.NotRequired[bool]
|
|
12
|
-
"""
|
|
13
|
-
High Quality mode enhances detail, sharpness, and realism, making it ideal for portraits, animals, and intricate landscapes.
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
prompt: typing_extensions.Required[typing.Optional[str]]
|
|
17
|
-
"""
|
|
18
|
-
The prompt used for the video.
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class _SerializerV1ImageToVideoCreateBodyStyle(pydantic.BaseModel):
|
|
23
|
-
"""
|
|
24
|
-
Serializer for V1ImageToVideoCreateBodyStyle handling case conversions
|
|
25
|
-
and file omissions as dictated by the API
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
model_config = pydantic.ConfigDict(
|
|
29
|
-
populate_by_name=True,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
high_quality: typing.Optional[bool] = pydantic.Field(
|
|
33
|
-
alias="high_quality", default=None
|
|
34
|
-
)
|
|
35
|
-
prompt: typing.Optional[str] = pydantic.Field(
|
|
36
|
-
alias="prompt",
|
|
37
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/README.md
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/__init__.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_clothes_changer/client.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/README.md
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/__init__.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_headshot_generator/client.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/README.md
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/__init__.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_generator/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_image_upscaler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_meme_generator/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/README.md
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/__init__.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_qr_code_generator/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/ai_talking_photo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
-
|
|
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
|
-
|
|
48
|
+
height=960,
|
|
50
49
|
name="Face Swap video",
|
|
50
|
+
width=512,
|
|
51
51
|
)
|
|
52
52
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/files/upload_urls/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/README.md
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/__init__.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/resources/v1/image_background_remover/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_animation_create_response.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_face_swap_create_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_image_to_video_create_response.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_lip_sync_create_response.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_text_to_video_create_response.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_projects_get_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/models/v1_video_to_video_create_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_clothes_changer_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_generator_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_image_upscaler_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_meme_generator_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_photo_editor_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_ai_talking_photo_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_animation_create_body_assets.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_animation_create_body_style.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_face_swap_create_body_assets.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_face_swap_photo_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_files_upload_urls_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_lip_sync_create_body_assets.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_text_to_video_create_body.py
RENAMED
|
File without changes
|
{magic_hour-0.13.0 → magic_hour-0.15.0}/magic_hour/types/params/v1_video_to_video_create_body.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|