magic_hour 0.9.5__py3-none-any.whl → 0.44.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.
- magic_hour/README.md +34 -0
- magic_hour/__init__.py +1 -1
- magic_hour/client.py +8 -17
- magic_hour/environment.py +13 -1
- magic_hour/helpers/__init__.py +4 -0
- magic_hour/helpers/download.py +77 -0
- magic_hour/helpers/logger.py +8 -0
- magic_hour/resources/v1/README.md +32 -0
- magic_hour/resources/v1/ai_clothes_changer/README.md +94 -5
- magic_hour/resources/v1/ai_clothes_changer/client.py +161 -16
- magic_hour/resources/v1/ai_face_editor/README.md +195 -0
- magic_hour/resources/v1/ai_face_editor/__init__.py +4 -0
- magic_hour/resources/v1/ai_face_editor/client.py +324 -0
- magic_hour/resources/v1/ai_gif_generator/README.md +116 -0
- magic_hour/resources/v1/ai_gif_generator/__init__.py +4 -0
- magic_hour/resources/v1/ai_gif_generator/client.py +257 -0
- magic_hour/resources/v1/ai_headshot_generator/README.md +81 -3
- magic_hour/resources/v1/ai_headshot_generator/client.py +167 -18
- magic_hour/resources/v1/ai_image_editor/README.md +125 -0
- magic_hour/resources/v1/ai_image_editor/__init__.py +4 -0
- magic_hour/resources/v1/ai_image_editor/client.py +290 -0
- magic_hour/resources/v1/ai_image_generator/README.md +99 -5
- magic_hour/resources/v1/ai_image_generator/client.py +170 -24
- magic_hour/resources/v1/ai_image_upscaler/README.md +89 -3
- magic_hour/resources/v1/ai_image_upscaler/client.py +173 -20
- magic_hour/resources/v1/ai_meme_generator/README.md +129 -0
- magic_hour/resources/v1/ai_meme_generator/__init__.py +4 -0
- magic_hour/resources/v1/ai_meme_generator/client.py +253 -0
- magic_hour/resources/v1/ai_photo_editor/README.md +119 -4
- magic_hour/resources/v1/ai_photo_editor/client.py +199 -18
- magic_hour/resources/v1/ai_qr_code_generator/README.md +84 -3
- magic_hour/resources/v1/ai_qr_code_generator/client.py +140 -18
- magic_hour/resources/v1/ai_talking_photo/README.md +137 -0
- magic_hour/resources/v1/ai_talking_photo/__init__.py +4 -0
- magic_hour/resources/v1/ai_talking_photo/client.py +326 -0
- magic_hour/resources/v1/ai_voice_cloner/README.md +62 -0
- magic_hour/resources/v1/ai_voice_cloner/__init__.py +4 -0
- magic_hour/resources/v1/ai_voice_cloner/client.py +272 -0
- magic_hour/resources/v1/ai_voice_generator/README.md +112 -0
- magic_hour/resources/v1/ai_voice_generator/__init__.py +4 -0
- magic_hour/resources/v1/ai_voice_generator/client.py +241 -0
- magic_hour/resources/v1/animation/README.md +128 -6
- magic_hour/resources/v1/animation/client.py +247 -22
- magic_hour/resources/v1/audio_projects/README.md +135 -0
- magic_hour/resources/v1/audio_projects/__init__.py +12 -0
- magic_hour/resources/v1/audio_projects/client.py +310 -0
- magic_hour/resources/v1/audio_projects/client_test.py +520 -0
- magic_hour/resources/v1/auto_subtitle_generator/README.md +128 -0
- magic_hour/resources/v1/auto_subtitle_generator/__init__.py +4 -0
- magic_hour/resources/v1/auto_subtitle_generator/client.py +346 -0
- magic_hour/resources/v1/client.py +75 -1
- magic_hour/resources/v1/face_detection/README.md +157 -0
- magic_hour/resources/v1/face_detection/__init__.py +12 -0
- magic_hour/resources/v1/face_detection/client.py +380 -0
- magic_hour/resources/v1/face_swap/README.md +137 -9
- magic_hour/resources/v1/face_swap/client.py +329 -38
- magic_hour/resources/v1/face_swap_photo/README.md +118 -3
- magic_hour/resources/v1/face_swap_photo/client.py +199 -14
- magic_hour/resources/v1/files/README.md +39 -0
- magic_hour/resources/v1/files/client.py +351 -1
- magic_hour/resources/v1/files/client_test.py +414 -0
- magic_hour/resources/v1/files/upload_urls/README.md +38 -17
- magic_hour/resources/v1/files/upload_urls/client.py +38 -34
- magic_hour/resources/v1/image_background_remover/README.md +96 -5
- magic_hour/resources/v1/image_background_remover/client.py +151 -16
- magic_hour/resources/v1/image_projects/README.md +82 -10
- magic_hour/resources/v1/image_projects/__init__.py +10 -2
- magic_hour/resources/v1/image_projects/client.py +154 -16
- magic_hour/resources/v1/image_projects/client_test.py +527 -0
- magic_hour/resources/v1/image_to_video/README.md +96 -11
- magic_hour/resources/v1/image_to_video/client.py +282 -38
- magic_hour/resources/v1/lip_sync/README.md +112 -9
- magic_hour/resources/v1/lip_sync/client.py +288 -34
- magic_hour/resources/v1/photo_colorizer/README.md +107 -0
- magic_hour/resources/v1/photo_colorizer/__init__.py +4 -0
- magic_hour/resources/v1/photo_colorizer/client.py +248 -0
- magic_hour/resources/v1/text_to_video/README.md +96 -7
- magic_hour/resources/v1/text_to_video/client.py +204 -18
- magic_hour/resources/v1/video_projects/README.md +81 -9
- magic_hour/resources/v1/video_projects/__init__.py +10 -2
- magic_hour/resources/v1/video_projects/client.py +151 -14
- magic_hour/resources/v1/video_projects/client_test.py +527 -0
- magic_hour/resources/v1/video_to_video/README.md +119 -15
- magic_hour/resources/v1/video_to_video/client.py +299 -46
- magic_hour/types/models/__init__.py +92 -56
- magic_hour/types/models/v1_ai_clothes_changer_create_response.py +33 -0
- magic_hour/types/models/v1_ai_face_editor_create_response.py +33 -0
- magic_hour/types/models/v1_ai_gif_generator_create_response.py +33 -0
- magic_hour/types/models/v1_ai_headshot_generator_create_response.py +33 -0
- magic_hour/types/models/v1_ai_image_editor_create_response.py +33 -0
- magic_hour/types/models/v1_ai_image_generator_create_response.py +33 -0
- magic_hour/types/models/v1_ai_image_upscaler_create_response.py +33 -0
- magic_hour/types/models/v1_ai_meme_generator_create_response.py +33 -0
- magic_hour/types/models/v1_ai_photo_editor_create_response.py +33 -0
- magic_hour/types/models/v1_ai_qr_code_generator_create_response.py +33 -0
- magic_hour/types/models/v1_ai_talking_photo_create_response.py +35 -0
- magic_hour/types/models/v1_ai_voice_cloner_create_response.py +27 -0
- magic_hour/types/models/v1_ai_voice_generator_create_response.py +27 -0
- magic_hour/types/models/v1_animation_create_response.py +35 -0
- magic_hour/types/models/v1_audio_projects_get_response.py +72 -0
- magic_hour/types/models/v1_audio_projects_get_response_downloads_item.py +19 -0
- magic_hour/types/models/{get_v1_image_projects_id_response_error.py → v1_audio_projects_get_response_error.py} +2 -2
- magic_hour/types/models/v1_auto_subtitle_generator_create_response.py +35 -0
- magic_hour/types/models/v1_face_detection_create_response.py +25 -0
- magic_hour/types/models/v1_face_detection_get_response.py +45 -0
- magic_hour/types/models/v1_face_detection_get_response_faces_item.py +25 -0
- magic_hour/types/models/v1_face_swap_create_response.py +35 -0
- magic_hour/types/models/v1_face_swap_photo_create_response.py +33 -0
- magic_hour/types/models/v1_files_upload_urls_create_response.py +24 -0
- magic_hour/types/models/{post_v1_files_upload_urls_response_items_item.py → v1_files_upload_urls_create_response_items_item.py} +2 -2
- magic_hour/types/models/v1_image_background_remover_create_response.py +33 -0
- magic_hour/types/models/{get_v1_image_projects_id_response.py → v1_image_projects_get_response.py} +20 -18
- magic_hour/types/models/{get_v1_video_projects_id_response_downloads_item.py → v1_image_projects_get_response_downloads_item.py} +1 -1
- magic_hour/types/models/{get_v1_video_projects_id_response_error.py → v1_image_projects_get_response_error.py} +2 -2
- magic_hour/types/models/v1_image_to_video_create_response.py +35 -0
- magic_hour/types/models/v1_lip_sync_create_response.py +35 -0
- magic_hour/types/models/v1_photo_colorizer_create_response.py +33 -0
- magic_hour/types/models/v1_text_to_video_create_response.py +35 -0
- magic_hour/types/models/{get_v1_video_projects_id_response.py → v1_video_projects_get_response.py} +26 -23
- magic_hour/types/models/{get_v1_video_projects_id_response_download.py → v1_video_projects_get_response_download.py} +1 -1
- magic_hour/types/models/{get_v1_image_projects_id_response_downloads_item.py → v1_video_projects_get_response_downloads_item.py} +1 -1
- magic_hour/types/models/v1_video_projects_get_response_error.py +25 -0
- magic_hour/types/models/v1_video_to_video_create_response.py +35 -0
- magic_hour/types/params/__init__.py +422 -176
- magic_hour/types/params/v1_ai_clothes_changer_create_body.py +40 -0
- magic_hour/types/params/v1_ai_clothes_changer_create_body_assets.py +58 -0
- magic_hour/types/params/v1_ai_clothes_changer_generate_body_assets.py +33 -0
- magic_hour/types/params/v1_ai_face_editor_create_body.py +52 -0
- magic_hour/types/params/v1_ai_face_editor_create_body_assets.py +33 -0
- magic_hour/types/params/v1_ai_face_editor_create_body_style.py +137 -0
- magic_hour/types/params/v1_ai_face_editor_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_ai_gif_generator_create_body.py +47 -0
- magic_hour/types/params/{post_v1_ai_image_generator_body_style.py → v1_ai_gif_generator_create_body_style.py} +5 -5
- magic_hour/types/params/v1_ai_headshot_generator_create_body.py +49 -0
- magic_hour/types/params/v1_ai_headshot_generator_create_body_assets.py +33 -0
- magic_hour/types/params/v1_ai_headshot_generator_create_body_style.py +27 -0
- magic_hour/types/params/v1_ai_headshot_generator_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_ai_image_editor_create_body.py +49 -0
- magic_hour/types/params/v1_ai_image_editor_create_body_assets.py +47 -0
- magic_hour/types/params/v1_ai_image_editor_create_body_style.py +41 -0
- magic_hour/types/params/v1_ai_image_editor_generate_body_assets.py +28 -0
- magic_hour/types/params/{post_v1_ai_image_generator_body.py → v1_ai_image_generator_create_body.py} +17 -11
- magic_hour/types/params/v1_ai_image_generator_create_body_style.py +127 -0
- magic_hour/types/params/v1_ai_image_upscaler_create_body.py +59 -0
- magic_hour/types/params/v1_ai_image_upscaler_create_body_assets.py +33 -0
- magic_hour/types/params/{post_v1_ai_image_upscaler_body_style.py → v1_ai_image_upscaler_create_body_style.py} +4 -4
- magic_hour/types/params/v1_ai_image_upscaler_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_ai_meme_generator_create_body.py +37 -0
- magic_hour/types/params/v1_ai_meme_generator_create_body_style.py +73 -0
- magic_hour/types/params/{post_v1_ai_photo_editor_body.py → v1_ai_photo_editor_create_body.py} +15 -15
- magic_hour/types/params/v1_ai_photo_editor_create_body_assets.py +33 -0
- magic_hour/types/params/{post_v1_ai_photo_editor_body_style.py → v1_ai_photo_editor_create_body_style.py} +20 -4
- magic_hour/types/params/v1_ai_photo_editor_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_ai_qr_code_generator_create_body.py +45 -0
- magic_hour/types/params/{post_v1_ai_qr_code_generator_body_style.py → v1_ai_qr_code_generator_create_body_style.py} +4 -4
- magic_hour/types/params/v1_ai_talking_photo_create_body.py +68 -0
- magic_hour/types/params/v1_ai_talking_photo_create_body_assets.py +46 -0
- magic_hour/types/params/v1_ai_talking_photo_create_body_style.py +44 -0
- magic_hour/types/params/v1_ai_talking_photo_generate_body_assets.py +26 -0
- magic_hour/types/params/v1_ai_voice_cloner_create_body.py +49 -0
- magic_hour/types/params/v1_ai_voice_cloner_create_body_assets.py +33 -0
- magic_hour/types/params/v1_ai_voice_cloner_create_body_style.py +28 -0
- magic_hour/types/params/v1_ai_voice_cloner_generate_body_assets.py +28 -0
- magic_hour/types/params/v1_ai_voice_generator_create_body.py +40 -0
- magic_hour/types/params/v1_ai_voice_generator_create_body_style.py +440 -0
- magic_hour/types/params/{post_v1_animation_body.py → v1_animation_create_body.py} +16 -16
- magic_hour/types/params/{post_v1_animation_body_assets.py → v1_animation_create_body_assets.py} +15 -5
- magic_hour/types/params/{post_v1_animation_body_style.py → v1_animation_create_body_style.py} +13 -10
- magic_hour/types/params/v1_animation_generate_body_assets.py +39 -0
- magic_hour/types/params/v1_auto_subtitle_generator_create_body.py +78 -0
- magic_hour/types/params/v1_auto_subtitle_generator_create_body_assets.py +33 -0
- magic_hour/types/params/v1_auto_subtitle_generator_create_body_style.py +56 -0
- magic_hour/types/params/v1_auto_subtitle_generator_create_body_style_custom_config.py +86 -0
- magic_hour/types/params/v1_auto_subtitle_generator_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_face_detection_create_body.py +44 -0
- magic_hour/types/params/v1_face_detection_create_body_assets.py +33 -0
- magic_hour/types/params/v1_face_detection_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_face_swap_create_body.py +92 -0
- magic_hour/types/params/v1_face_swap_create_body_assets.py +91 -0
- magic_hour/types/params/v1_face_swap_create_body_assets_face_mappings_item.py +44 -0
- magic_hour/types/params/v1_face_swap_create_body_style.py +33 -0
- magic_hour/types/params/v1_face_swap_generate_body_assets.py +56 -0
- magic_hour/types/params/v1_face_swap_generate_body_assets_face_mappings_item.py +25 -0
- magic_hour/types/params/v1_face_swap_photo_create_body.py +40 -0
- magic_hour/types/params/v1_face_swap_photo_create_body_assets.py +76 -0
- magic_hour/types/params/v1_face_swap_photo_create_body_assets_face_mappings_item.py +44 -0
- magic_hour/types/params/v1_face_swap_photo_generate_body_assets.py +47 -0
- magic_hour/types/params/v1_face_swap_photo_generate_body_assets_face_mappings_item.py +25 -0
- magic_hour/types/params/v1_files_upload_urls_create_body.py +36 -0
- magic_hour/types/params/v1_files_upload_urls_create_body_items_item.py +38 -0
- magic_hour/types/params/v1_image_background_remover_create_body.py +40 -0
- magic_hour/types/params/v1_image_background_remover_create_body_assets.py +49 -0
- magic_hour/types/params/v1_image_background_remover_generate_body_assets.py +27 -0
- magic_hour/types/params/v1_image_to_video_create_body.py +101 -0
- magic_hour/types/params/v1_image_to_video_create_body_assets.py +33 -0
- magic_hour/types/params/v1_image_to_video_create_body_style.py +53 -0
- magic_hour/types/params/v1_image_to_video_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_lip_sync_create_body.py +100 -0
- magic_hour/types/params/{post_v1_lip_sync_body_assets.py → v1_lip_sync_create_body_assets.py} +15 -5
- magic_hour/types/params/v1_lip_sync_create_body_style.py +37 -0
- magic_hour/types/params/v1_lip_sync_generate_body_assets.py +36 -0
- magic_hour/types/params/v1_photo_colorizer_create_body.py +40 -0
- magic_hour/types/params/v1_photo_colorizer_create_body_assets.py +33 -0
- magic_hour/types/params/v1_photo_colorizer_generate_body_assets.py +17 -0
- magic_hour/types/params/v1_text_to_video_create_body.py +78 -0
- magic_hour/types/params/v1_text_to_video_create_body_style.py +43 -0
- magic_hour/types/params/v1_video_to_video_create_body.py +101 -0
- magic_hour/types/params/{post_v1_video_to_video_body_assets.py → v1_video_to_video_create_body_assets.py} +9 -4
- magic_hour/types/params/{post_v1_video_to_video_body_style.py → v1_video_to_video_create_body_style.py} +68 -26
- magic_hour/types/params/v1_video_to_video_generate_body_assets.py +27 -0
- magic_hour-0.44.0.dist-info/METADATA +328 -0
- magic_hour-0.44.0.dist-info/RECORD +231 -0
- magic_hour/core/__init__.py +0 -52
- magic_hour/core/api_error.py +0 -56
- magic_hour/core/auth.py +0 -314
- magic_hour/core/base_client.py +0 -618
- magic_hour/core/binary_response.py +0 -23
- magic_hour/core/query.py +0 -106
- magic_hour/core/request.py +0 -156
- magic_hour/core/response.py +0 -293
- magic_hour/core/type_utils.py +0 -28
- magic_hour/core/utils.py +0 -55
- magic_hour/types/models/post_v1_ai_clothes_changer_response.py +0 -25
- magic_hour/types/models/post_v1_ai_headshot_generator_response.py +0 -25
- magic_hour/types/models/post_v1_ai_image_generator_response.py +0 -25
- magic_hour/types/models/post_v1_ai_image_upscaler_response.py +0 -25
- magic_hour/types/models/post_v1_ai_photo_editor_response.py +0 -25
- magic_hour/types/models/post_v1_ai_qr_code_generator_response.py +0 -25
- magic_hour/types/models/post_v1_animation_response.py +0 -25
- magic_hour/types/models/post_v1_face_swap_photo_response.py +0 -25
- magic_hour/types/models/post_v1_face_swap_response.py +0 -25
- magic_hour/types/models/post_v1_files_upload_urls_response.py +0 -21
- magic_hour/types/models/post_v1_image_background_remover_response.py +0 -25
- magic_hour/types/models/post_v1_image_to_video_response.py +0 -25
- magic_hour/types/models/post_v1_lip_sync_response.py +0 -25
- magic_hour/types/models/post_v1_text_to_video_response.py +0 -25
- magic_hour/types/models/post_v1_video_to_video_response.py +0 -25
- magic_hour/types/params/post_v1_ai_clothes_changer_body.py +0 -40
- magic_hour/types/params/post_v1_ai_clothes_changer_body_assets.py +0 -45
- magic_hour/types/params/post_v1_ai_headshot_generator_body.py +0 -40
- magic_hour/types/params/post_v1_ai_headshot_generator_body_assets.py +0 -28
- magic_hour/types/params/post_v1_ai_image_upscaler_body.py +0 -57
- magic_hour/types/params/post_v1_ai_image_upscaler_body_assets.py +0 -28
- magic_hour/types/params/post_v1_ai_photo_editor_body_assets.py +0 -28
- magic_hour/types/params/post_v1_ai_qr_code_generator_body.py +0 -45
- magic_hour/types/params/post_v1_face_swap_body.py +0 -72
- magic_hour/types/params/post_v1_face_swap_body_assets.py +0 -52
- magic_hour/types/params/post_v1_face_swap_photo_body.py +0 -40
- magic_hour/types/params/post_v1_face_swap_photo_body_assets.py +0 -36
- magic_hour/types/params/post_v1_files_upload_urls_body.py +0 -31
- magic_hour/types/params/post_v1_files_upload_urls_body_items_item.py +0 -38
- magic_hour/types/params/post_v1_image_background_remover_body.py +0 -40
- magic_hour/types/params/post_v1_image_background_remover_body_assets.py +0 -28
- magic_hour/types/params/post_v1_image_to_video_body.py +0 -73
- magic_hour/types/params/post_v1_image_to_video_body_assets.py +0 -28
- magic_hour/types/params/post_v1_image_to_video_body_style.py +0 -37
- magic_hour/types/params/post_v1_lip_sync_body.py +0 -80
- magic_hour/types/params/post_v1_text_to_video_body.py +0 -57
- magic_hour/types/params/post_v1_text_to_video_body_style.py +0 -28
- magic_hour/types/params/post_v1_video_to_video_body.py +0 -93
- magic_hour-0.9.5.dist-info/METADATA +0 -133
- magic_hour-0.9.5.dist-info/RECORD +0 -132
- {magic_hour-0.9.5.dist-info → magic_hour-0.44.0.dist-info}/LICENSE +0 -0
- {magic_hour-0.9.5.dist-info → magic_hour-0.44.0.dist-info}/WHEEL +0 -0
|
@@ -3,9 +3,9 @@ import typing
|
|
|
3
3
|
import typing_extensions
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class
|
|
6
|
+
class V1VideoToVideoCreateBodyStyle(typing_extensions.TypedDict):
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
V1VideoToVideoCreateBodyStyle
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
art_style: typing_extensions.Required[
|
|
@@ -19,7 +19,9 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
19
19
|
"Avatar",
|
|
20
20
|
"Black Spiderman",
|
|
21
21
|
"Boba Fett",
|
|
22
|
+
"Bold Anime",
|
|
22
23
|
"Celestial Skin",
|
|
24
|
+
"Chinese Swordsmen",
|
|
23
25
|
"Clay",
|
|
24
26
|
"Comic",
|
|
25
27
|
"Cyberpunk",
|
|
@@ -29,6 +31,7 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
29
31
|
"Future Bot",
|
|
30
32
|
"Futuristic Fantasy",
|
|
31
33
|
"GTA",
|
|
34
|
+
"Ghibli Anime",
|
|
32
35
|
"Ghost",
|
|
33
36
|
"Gundam",
|
|
34
37
|
"Hologram",
|
|
@@ -41,21 +44,31 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
41
44
|
"Lego",
|
|
42
45
|
"Link",
|
|
43
46
|
"Marble",
|
|
47
|
+
"Mario",
|
|
44
48
|
"Master Chief",
|
|
45
49
|
"Mech",
|
|
46
50
|
"Minecraft",
|
|
51
|
+
"Mystique",
|
|
47
52
|
"Naruto",
|
|
48
53
|
"Neon Dream",
|
|
54
|
+
"No Art Style",
|
|
49
55
|
"Oil Painting",
|
|
50
56
|
"On Fire",
|
|
51
57
|
"Origami",
|
|
58
|
+
"Painterly Anime",
|
|
59
|
+
"Pixar",
|
|
52
60
|
"Pixel",
|
|
53
61
|
"Power Armor",
|
|
54
62
|
"Power Ranger",
|
|
63
|
+
"Radiant Anime",
|
|
64
|
+
"Realistic Anime",
|
|
65
|
+
"Realistic Pixar",
|
|
55
66
|
"Retro Anime",
|
|
56
67
|
"Retro Sci-Fi",
|
|
57
68
|
"Samurai",
|
|
58
69
|
"Samurai Bot",
|
|
70
|
+
"Sharp Anime",
|
|
71
|
+
"Soft Anime",
|
|
59
72
|
"Solid Snake",
|
|
60
73
|
"Spartan",
|
|
61
74
|
"Starfield",
|
|
@@ -63,33 +76,43 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
63
76
|
"Studio Ghibli",
|
|
64
77
|
"Sub-Zero",
|
|
65
78
|
"The Void",
|
|
79
|
+
"Tomb Raider",
|
|
66
80
|
"Underwater",
|
|
67
81
|
"Van Gogh",
|
|
68
82
|
"Viking",
|
|
69
83
|
"Watercolor",
|
|
84
|
+
"Western Anime",
|
|
70
85
|
"Wu Kong",
|
|
86
|
+
"Wuxia Anime",
|
|
71
87
|
"Zelda",
|
|
72
88
|
]
|
|
73
89
|
]
|
|
74
90
|
|
|
75
|
-
model: typing_extensions.
|
|
91
|
+
model: typing_extensions.NotRequired[
|
|
76
92
|
typing_extensions.Literal[
|
|
77
|
-
"
|
|
93
|
+
"3D Anime",
|
|
94
|
+
"Absolute Reality",
|
|
95
|
+
"Dreamshaper",
|
|
96
|
+
"Flat 2D Anime",
|
|
97
|
+
"Kaywaii",
|
|
98
|
+
"Soft Anime",
|
|
99
|
+
"Western Anime",
|
|
100
|
+
"default",
|
|
78
101
|
]
|
|
79
102
|
]
|
|
80
103
|
"""
|
|
81
|
-
* `Dreamshaper` - a good all-around model that works for both animations as well as realism.
|
|
82
|
-
* `Absolute Reality` - better at realism, but you'll often get similar results with Dreamshaper as well.
|
|
104
|
+
* `Dreamshaper` - a good all-around model that works for both animations as well as realism.
|
|
105
|
+
* `Absolute Reality` - better at realism, but you'll often get similar results with Dreamshaper as well.
|
|
83
106
|
* `Flat 2D Anime` - best for a flat illustration style that's common in most anime.
|
|
84
107
|
* `default` - use the default recommended model for the selected art style.
|
|
85
108
|
"""
|
|
86
109
|
|
|
87
|
-
prompt: typing_extensions.
|
|
110
|
+
prompt: typing_extensions.NotRequired[typing.Optional[str]]
|
|
88
111
|
"""
|
|
89
112
|
The prompt used for the video. Prompt is required if `prompt_type` is `custom` or `append_default`. If `prompt_type` is `default`, then the `prompt` value passed will be ignored.
|
|
90
113
|
"""
|
|
91
114
|
|
|
92
|
-
prompt_type: typing_extensions.
|
|
115
|
+
prompt_type: typing_extensions.NotRequired[
|
|
93
116
|
typing_extensions.Literal["append_default", "custom", "default"]
|
|
94
117
|
]
|
|
95
118
|
"""
|
|
@@ -98,7 +121,7 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
98
121
|
* `append_default` - Add the default recommended prompt to the end of the prompt passed in the API.
|
|
99
122
|
"""
|
|
100
123
|
|
|
101
|
-
version: typing_extensions.
|
|
124
|
+
version: typing_extensions.NotRequired[
|
|
102
125
|
typing_extensions.Literal["default", "v1", "v2"]
|
|
103
126
|
]
|
|
104
127
|
"""
|
|
@@ -108,9 +131,9 @@ class PostV1VideoToVideoBodyStyle(typing_extensions.TypedDict):
|
|
|
108
131
|
"""
|
|
109
132
|
|
|
110
133
|
|
|
111
|
-
class
|
|
134
|
+
class _SerializerV1VideoToVideoCreateBodyStyle(pydantic.BaseModel):
|
|
112
135
|
"""
|
|
113
|
-
Serializer for
|
|
136
|
+
Serializer for V1VideoToVideoCreateBodyStyle handling case conversions
|
|
114
137
|
and file omissions as dictated by the API
|
|
115
138
|
"""
|
|
116
139
|
|
|
@@ -128,7 +151,9 @@ class _SerializerPostV1VideoToVideoBodyStyle(pydantic.BaseModel):
|
|
|
128
151
|
"Avatar",
|
|
129
152
|
"Black Spiderman",
|
|
130
153
|
"Boba Fett",
|
|
154
|
+
"Bold Anime",
|
|
131
155
|
"Celestial Skin",
|
|
156
|
+
"Chinese Swordsmen",
|
|
132
157
|
"Clay",
|
|
133
158
|
"Comic",
|
|
134
159
|
"Cyberpunk",
|
|
@@ -138,6 +163,7 @@ class _SerializerPostV1VideoToVideoBodyStyle(pydantic.BaseModel):
|
|
|
138
163
|
"Future Bot",
|
|
139
164
|
"Futuristic Fantasy",
|
|
140
165
|
"GTA",
|
|
166
|
+
"Ghibli Anime",
|
|
141
167
|
"Ghost",
|
|
142
168
|
"Gundam",
|
|
143
169
|
"Hologram",
|
|
@@ -150,21 +176,31 @@ class _SerializerPostV1VideoToVideoBodyStyle(pydantic.BaseModel):
|
|
|
150
176
|
"Lego",
|
|
151
177
|
"Link",
|
|
152
178
|
"Marble",
|
|
179
|
+
"Mario",
|
|
153
180
|
"Master Chief",
|
|
154
181
|
"Mech",
|
|
155
182
|
"Minecraft",
|
|
183
|
+
"Mystique",
|
|
156
184
|
"Naruto",
|
|
157
185
|
"Neon Dream",
|
|
186
|
+
"No Art Style",
|
|
158
187
|
"Oil Painting",
|
|
159
188
|
"On Fire",
|
|
160
189
|
"Origami",
|
|
190
|
+
"Painterly Anime",
|
|
191
|
+
"Pixar",
|
|
161
192
|
"Pixel",
|
|
162
193
|
"Power Armor",
|
|
163
194
|
"Power Ranger",
|
|
195
|
+
"Radiant Anime",
|
|
196
|
+
"Realistic Anime",
|
|
197
|
+
"Realistic Pixar",
|
|
164
198
|
"Retro Anime",
|
|
165
199
|
"Retro Sci-Fi",
|
|
166
200
|
"Samurai",
|
|
167
201
|
"Samurai Bot",
|
|
202
|
+
"Sharp Anime",
|
|
203
|
+
"Soft Anime",
|
|
168
204
|
"Solid Snake",
|
|
169
205
|
"Spartan",
|
|
170
206
|
"Starfield",
|
|
@@ -172,28 +208,34 @@ class _SerializerPostV1VideoToVideoBodyStyle(pydantic.BaseModel):
|
|
|
172
208
|
"Studio Ghibli",
|
|
173
209
|
"Sub-Zero",
|
|
174
210
|
"The Void",
|
|
211
|
+
"Tomb Raider",
|
|
175
212
|
"Underwater",
|
|
176
213
|
"Van Gogh",
|
|
177
214
|
"Viking",
|
|
178
215
|
"Watercolor",
|
|
216
|
+
"Western Anime",
|
|
179
217
|
"Wu Kong",
|
|
218
|
+
"Wuxia Anime",
|
|
180
219
|
"Zelda",
|
|
181
220
|
] = pydantic.Field(
|
|
182
221
|
alias="art_style",
|
|
183
222
|
)
|
|
184
|
-
model:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
|
|
223
|
+
model: typing.Optional[
|
|
224
|
+
typing_extensions.Literal[
|
|
225
|
+
"3D Anime",
|
|
226
|
+
"Absolute Reality",
|
|
227
|
+
"Dreamshaper",
|
|
228
|
+
"Flat 2D Anime",
|
|
229
|
+
"Kaywaii",
|
|
230
|
+
"Soft Anime",
|
|
231
|
+
"Western Anime",
|
|
232
|
+
"default",
|
|
233
|
+
]
|
|
234
|
+
] = pydantic.Field(alias="model", default=None)
|
|
235
|
+
prompt: typing.Optional[str] = pydantic.Field(alias="prompt", default=None)
|
|
236
|
+
prompt_type: typing.Optional[
|
|
237
|
+
typing_extensions.Literal["append_default", "custom", "default"]
|
|
238
|
+
] = pydantic.Field(alias="prompt_type", default=None)
|
|
239
|
+
version: typing.Optional[typing_extensions.Literal["default", "v1", "v2"]] = (
|
|
240
|
+
pydantic.Field(alias="version", default=None)
|
|
199
241
|
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import pydantic
|
|
2
|
+
import typing
|
|
3
|
+
import typing_extensions
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class V1VideoToVideoGenerateBodyAssets(typing_extensions.TypedDict):
|
|
7
|
+
"""
|
|
8
|
+
Provide the assets for video-to-video. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
video_file_path: typing_extensions.NotRequired[str]
|
|
12
|
+
"""
|
|
13
|
+
Required if `video_source` is `file`. This value is either
|
|
14
|
+
- a direct URL to the video file
|
|
15
|
+
- a path to a local file
|
|
16
|
+
|
|
17
|
+
Note: if the path begins with `api-assets`, it will be assumed to already be uploaded to Magic Hour's storage, and will not be uploaded again.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
video_source: typing_extensions.Required[
|
|
21
|
+
typing_extensions.Literal["file", "youtube"]
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
youtube_url: typing_extensions.NotRequired[str]
|
|
25
|
+
"""
|
|
26
|
+
Using a youtube video as the input source. This field is required if `video_source` is `youtube`
|
|
27
|
+
"""
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: magic_hour
|
|
3
|
+
Version: 0.44.0
|
|
4
|
+
Summary: Python SDK for Magic Hour API
|
|
5
|
+
Requires-Python: >=3.8,<4.0
|
|
6
|
+
Classifier: Programming Language :: Python :: 3
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Requires-Dist: make-api-request (>=0.1.3,<0.2.0)
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
# Magic Hour Python SDK
|
|
17
|
+
|
|
18
|
+
[](https://pypi.org/project/magic_hour/)
|
|
19
|
+
|
|
20
|
+
The Magic Hour Python Library provides convenient access to the Magic Hour API. This library offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
|
|
21
|
+
|
|
22
|
+
## Documentation
|
|
23
|
+
|
|
24
|
+
For full documentation of all APIs, please visit https://docs.magichour.ai
|
|
25
|
+
|
|
26
|
+
If you have any questions, please reach out to us via [discord](https://discord.gg/JX5rgsZaJp).
|
|
27
|
+
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
pip install magic_hour
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Cookbook
|
|
35
|
+
|
|
36
|
+
For end-to-end examples demonstrating all available Magic Hour APIs, check out our interactive Google Colab cookbook:
|
|
37
|
+
|
|
38
|
+
- **Interactive Notebook**: [Magic Hour API Cookbook](https://colab.research.google.com/drive/1NTHL_lr_s-qBJ-mSecSXPzRLi9_V5JiU?usp=sharing)
|
|
39
|
+
|
|
40
|
+
The cookbook includes:
|
|
41
|
+
|
|
42
|
+
- Setup instructions
|
|
43
|
+
- Examples for all available APIs (image generation, face swap, lip sync, video generation, and more)
|
|
44
|
+
- Display helpers for previewing outputs
|
|
45
|
+
- Production-ready patterns and best practices
|
|
46
|
+
|
|
47
|
+
## Synchronous Client Usage
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from magic_hour import Client
|
|
51
|
+
|
|
52
|
+
# generate your API Key at https://magichour.ai/developer
|
|
53
|
+
client = Client(token="my api key")
|
|
54
|
+
|
|
55
|
+
response = client.v1.face_swap_photo.generate(
|
|
56
|
+
assets={
|
|
57
|
+
"face_swap_mode": "all-faces",
|
|
58
|
+
"source_file_path": "/path/to/source/image.png",
|
|
59
|
+
"target_file_path": "/path/to/target/image.png",
|
|
60
|
+
},
|
|
61
|
+
name="Face Swap image",
|
|
62
|
+
wait_for_completion=True,
|
|
63
|
+
download_outputs=True,
|
|
64
|
+
download_directory="./outputs/",
|
|
65
|
+
)
|
|
66
|
+
print(f"Project ID: {response.id}")
|
|
67
|
+
print(f"Status: {response.status}")
|
|
68
|
+
print(f"Downloaded files: {response.downloaded_paths}")
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Asynchronous Client Usage
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
from magic_hour import AsyncClient
|
|
75
|
+
|
|
76
|
+
# generate your API Key at https://magichour.ai/developer
|
|
77
|
+
client = AsyncClient(token="my api key")
|
|
78
|
+
|
|
79
|
+
response = await client.v1.face_swap_photo.generate(
|
|
80
|
+
assets={
|
|
81
|
+
"face_swap_mode": "all-faces",
|
|
82
|
+
"source_file_path": "/path/to/source/image.png",
|
|
83
|
+
"target_file_path": "/path/to/target/image.png",
|
|
84
|
+
},
|
|
85
|
+
name="Face Swap image",
|
|
86
|
+
wait_for_completion=True,
|
|
87
|
+
download_outputs=True,
|
|
88
|
+
download_directory="./outputs/",
|
|
89
|
+
)
|
|
90
|
+
print(f"Project ID: {response.id}")
|
|
91
|
+
print(f"Status: {response.status}")
|
|
92
|
+
print(f"Downloaded files: {response.downloaded_paths}")
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Client Functions
|
|
96
|
+
|
|
97
|
+
Most resources that generate media content support two methods:
|
|
98
|
+
|
|
99
|
+
- **`generate()`** - A high-level convenience method that handles the entire workflow
|
|
100
|
+
- **`create()`** - A low-level method that only initiates the generation process
|
|
101
|
+
|
|
102
|
+
### Generate Function
|
|
103
|
+
|
|
104
|
+
The `generate()` function provides a complete end-to-end solution:
|
|
105
|
+
|
|
106
|
+
- Uploads local file to Magic Hour storage
|
|
107
|
+
- Calls the API to start generation
|
|
108
|
+
- Automatically polls for completion
|
|
109
|
+
- Downloads generated files to your local machine
|
|
110
|
+
- Returns both API response data and local file paths
|
|
111
|
+
|
|
112
|
+
**Additional Parameters:**
|
|
113
|
+
|
|
114
|
+
- `wait_for_completion` (bool, default True): Whether to wait for the project to complete.
|
|
115
|
+
- `download_outputs` (bool, default True): Whether to download the generated files
|
|
116
|
+
- `download_directory` (str, optional): Directory to save downloaded files (defaults to current directory)
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
# Generate function - handles everything automatically
|
|
120
|
+
response = client.v1.ai_image_generator.generate(
|
|
121
|
+
style={"prompt": "A beautiful sunset over mountains"},
|
|
122
|
+
name="Sunset Image",
|
|
123
|
+
wait_for_completion=True, # Wait for status to be complete/error/canceled
|
|
124
|
+
download_outputs=True, # Download files automatically
|
|
125
|
+
download_directory="./outputs/" # Where to save files
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
# You get both the API response AND downloaded file paths
|
|
129
|
+
print(f"Project ID: {response.id}")
|
|
130
|
+
print(f"Status: {response.status}")
|
|
131
|
+
print(f"Downloaded files: {response.downloaded_paths}")
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Create Function
|
|
135
|
+
|
|
136
|
+
The `create()` function provides granular control:
|
|
137
|
+
|
|
138
|
+
- Only calls the API to start the generation process
|
|
139
|
+
- Returns immediately with a project ID and amount of credits used
|
|
140
|
+
- Requires manual status checking and file downloading
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
# Create function - only starts the process
|
|
144
|
+
create_response = client.v1.ai_image_generator.create(
|
|
145
|
+
style={"prompt": "A beautiful sunset over mountains"},
|
|
146
|
+
name="Sunset Image"
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# You get just the project ID and initial response
|
|
150
|
+
project_id = create_response.id
|
|
151
|
+
print(f"Started project: {project_id}")
|
|
152
|
+
|
|
153
|
+
# You must handle the rest:
|
|
154
|
+
# 1. Poll for completion. We provide a helper function to handle polling for you
|
|
155
|
+
result = client.v1.image_projects.check_status(
|
|
156
|
+
wait_for_completion=True,
|
|
157
|
+
download_outputs=False,
|
|
158
|
+
)
|
|
159
|
+
# 2. Download files using the download URLs
|
|
160
|
+
download_urls = result.downloads
|
|
161
|
+
# download the files using your preferred way
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Choosing Between Which Function to use
|
|
165
|
+
|
|
166
|
+
**Use `generate()` when:**
|
|
167
|
+
|
|
168
|
+
- You want a simple, one-call solution
|
|
169
|
+
- You're building a straightforward application
|
|
170
|
+
- You don't need custom polling or download logic
|
|
171
|
+
|
|
172
|
+
**Use `create()` when:**
|
|
173
|
+
|
|
174
|
+
- You need custom status checking logic
|
|
175
|
+
- You're integrating with existing job processing systems
|
|
176
|
+
- You want to separate generation initiation from completion handling
|
|
177
|
+
- You need fine-grained control over the entire workflow
|
|
178
|
+
|
|
179
|
+
## Module Documentation and Snippets
|
|
180
|
+
|
|
181
|
+
### [v1.ai_clothes_changer](magic_hour/resources/v1/ai_clothes_changer/README.md)
|
|
182
|
+
|
|
183
|
+
- [create](magic_hour/resources/v1/ai_clothes_changer/README.md#create) - AI Clothes Changer
|
|
184
|
+
- [generate](magic_hour/resources/v1/ai_clothes_changer/README.md#generate) - AI Clothes Changer Generate Workflow
|
|
185
|
+
|
|
186
|
+
### [v1.ai_face_editor](magic_hour/resources/v1/ai_face_editor/README.md)
|
|
187
|
+
|
|
188
|
+
- [create](magic_hour/resources/v1/ai_face_editor/README.md#create) - AI Face Editor
|
|
189
|
+
- [generate](magic_hour/resources/v1/ai_face_editor/README.md#generate) - Ai Face Editor Generate Workflow
|
|
190
|
+
|
|
191
|
+
### [v1.ai_gif_generator](magic_hour/resources/v1/ai_gif_generator/README.md)
|
|
192
|
+
|
|
193
|
+
- [create](magic_hour/resources/v1/ai_gif_generator/README.md#create) - AI GIF Generator
|
|
194
|
+
- [generate](magic_hour/resources/v1/ai_gif_generator/README.md#generate) - Ai Gif Generator Generate Workflow
|
|
195
|
+
|
|
196
|
+
### [v1.ai_headshot_generator](magic_hour/resources/v1/ai_headshot_generator/README.md)
|
|
197
|
+
|
|
198
|
+
- [create](magic_hour/resources/v1/ai_headshot_generator/README.md#create) - AI Headshot Generator
|
|
199
|
+
- [generate](magic_hour/resources/v1/ai_headshot_generator/README.md#generate) - Ai Headshot Generator Generate Workflow
|
|
200
|
+
|
|
201
|
+
### [v1.ai_image_editor](magic_hour/resources/v1/ai_image_editor/README.md)
|
|
202
|
+
|
|
203
|
+
- [create](magic_hour/resources/v1/ai_image_editor/README.md#create) - AI Image Editor
|
|
204
|
+
- [generate](magic_hour/resources/v1/ai_image_editor/README.md#generate) - Ai Image Editor Generate Workflow
|
|
205
|
+
|
|
206
|
+
### [v1.ai_image_generator](magic_hour/resources/v1/ai_image_generator/README.md)
|
|
207
|
+
|
|
208
|
+
- [create](magic_hour/resources/v1/ai_image_generator/README.md#create) - AI Image Generator
|
|
209
|
+
- [generate](magic_hour/resources/v1/ai_image_generator/README.md#generate) - Ai Image Generator Generate Workflow
|
|
210
|
+
|
|
211
|
+
### [v1.ai_image_upscaler](magic_hour/resources/v1/ai_image_upscaler/README.md)
|
|
212
|
+
|
|
213
|
+
- [create](magic_hour/resources/v1/ai_image_upscaler/README.md#create) - AI Image Upscaler
|
|
214
|
+
- [generate](magic_hour/resources/v1/ai_image_upscaler/README.md#generate) - Ai Image Upscaler Generate Workflow
|
|
215
|
+
|
|
216
|
+
### [v1.ai_meme_generator](magic_hour/resources/v1/ai_meme_generator/README.md)
|
|
217
|
+
|
|
218
|
+
- [create](magic_hour/resources/v1/ai_meme_generator/README.md#create) - AI Meme Generator
|
|
219
|
+
- [generate](magic_hour/resources/v1/ai_meme_generator/README.md#generate) - Ai Meme Generator Generate Workflow
|
|
220
|
+
|
|
221
|
+
### [v1.ai_photo_editor](magic_hour/resources/v1/ai_photo_editor/README.md)
|
|
222
|
+
|
|
223
|
+
- [create](magic_hour/resources/v1/ai_photo_editor/README.md#create) - AI Photo Editor
|
|
224
|
+
- [generate](magic_hour/resources/v1/ai_photo_editor/README.md#generate) - Ai Photo Editor Generate Workflow
|
|
225
|
+
|
|
226
|
+
### [v1.ai_qr_code_generator](magic_hour/resources/v1/ai_qr_code_generator/README.md)
|
|
227
|
+
|
|
228
|
+
- [create](magic_hour/resources/v1/ai_qr_code_generator/README.md#create) - AI QR Code Generator
|
|
229
|
+
- [generate](magic_hour/resources/v1/ai_qr_code_generator/README.md#generate) - Ai Qr Code Generator Generate Workflow
|
|
230
|
+
|
|
231
|
+
### [v1.ai_talking_photo](magic_hour/resources/v1/ai_talking_photo/README.md)
|
|
232
|
+
|
|
233
|
+
- [create](magic_hour/resources/v1/ai_talking_photo/README.md#create) - AI Talking Photo
|
|
234
|
+
- [generate](magic_hour/resources/v1/ai_talking_photo/README.md#generate) - Ai Talking Photo Generate Workflow
|
|
235
|
+
|
|
236
|
+
### [v1.ai_voice_cloner](magic_hour/resources/v1/ai_voice_cloner/README.md)
|
|
237
|
+
|
|
238
|
+
- [create](magic_hour/resources/v1/ai_voice_cloner/README.md#create) - AI Voice Cloner
|
|
239
|
+
|
|
240
|
+
### [v1.ai_voice_generator](magic_hour/resources/v1/ai_voice_generator/README.md)
|
|
241
|
+
|
|
242
|
+
- [create](magic_hour/resources/v1/ai_voice_generator/README.md#create) - AI Voice Generator
|
|
243
|
+
- [generate](magic_hour/resources/v1/ai_voice_generator/README.md#generate) - Ai Talking Photo Generate Workflow
|
|
244
|
+
|
|
245
|
+
### [v1.animation](magic_hour/resources/v1/animation/README.md)
|
|
246
|
+
|
|
247
|
+
- [create](magic_hour/resources/v1/animation/README.md#create) - Animation
|
|
248
|
+
- [generate](magic_hour/resources/v1/animation/README.md#generate) - Animation Generate Workflow
|
|
249
|
+
|
|
250
|
+
### [v1.audio_projects](magic_hour/resources/v1/audio_projects/README.md)
|
|
251
|
+
|
|
252
|
+
- [check-result](magic_hour/resources/v1/audio_projects/README.md#check-result) - Check results
|
|
253
|
+
- [delete](magic_hour/resources/v1/audio_projects/README.md#delete) - Delete audio
|
|
254
|
+
- [get](magic_hour/resources/v1/audio_projects/README.md#get) - Get audio details
|
|
255
|
+
|
|
256
|
+
### [v1.auto_subtitle_generator](magic_hour/resources/v1/auto_subtitle_generator/README.md)
|
|
257
|
+
|
|
258
|
+
- [create](magic_hour/resources/v1/auto_subtitle_generator/README.md#create) - Auto Subtitle Generator
|
|
259
|
+
- [generate](magic_hour/resources/v1/auto_subtitle_generator/README.md#generate) - Auto Subtitle Generator Generate Workflow
|
|
260
|
+
|
|
261
|
+
### [v1.face_detection](magic_hour/resources/v1/face_detection/README.md)
|
|
262
|
+
|
|
263
|
+
- [create](magic_hour/resources/v1/face_detection/README.md#create) - Face Detection
|
|
264
|
+
- [generate](magic_hour/resources/v1/face_detection/README.md#generate) - Face Detection Generate Workflow
|
|
265
|
+
- [get](magic_hour/resources/v1/face_detection/README.md#get) - Get face detection details
|
|
266
|
+
|
|
267
|
+
### [v1.face_swap](magic_hour/resources/v1/face_swap/README.md)
|
|
268
|
+
|
|
269
|
+
- [create](magic_hour/resources/v1/face_swap/README.md#create) - Face Swap Video
|
|
270
|
+
- [generate](magic_hour/resources/v1/face_swap/README.md#generate) - Face Swap Generate Workflow
|
|
271
|
+
|
|
272
|
+
### [v1.face_swap_photo](magic_hour/resources/v1/face_swap_photo/README.md)
|
|
273
|
+
|
|
274
|
+
- [create](magic_hour/resources/v1/face_swap_photo/README.md#create) - Face Swap Photo
|
|
275
|
+
- [generate](magic_hour/resources/v1/face_swap_photo/README.md#generate) - Face Swap Photo Generate Workflow
|
|
276
|
+
|
|
277
|
+
### [v1.files](magic_hour/resources/v1/files/README.md)
|
|
278
|
+
|
|
279
|
+
- [upload-file](magic_hour/resources/v1/files/README.md#upload-file) - Upload File
|
|
280
|
+
|
|
281
|
+
### [v1.files.upload_urls](magic_hour/resources/v1/files/upload_urls/README.md)
|
|
282
|
+
|
|
283
|
+
- [create](magic_hour/resources/v1/files/upload_urls/README.md#create) - Generate asset upload urls
|
|
284
|
+
|
|
285
|
+
### [v1.image_background_remover](magic_hour/resources/v1/image_background_remover/README.md)
|
|
286
|
+
|
|
287
|
+
- [create](magic_hour/resources/v1/image_background_remover/README.md#create) - Image Background Remover
|
|
288
|
+
- [generate](magic_hour/resources/v1/image_background_remover/README.md#generate) - Image Background Remover Generate Workflow
|
|
289
|
+
|
|
290
|
+
### [v1.image_projects](magic_hour/resources/v1/image_projects/README.md)
|
|
291
|
+
|
|
292
|
+
- [check-result](magic_hour/resources/v1/image_projects/README.md#check-result) - Check results
|
|
293
|
+
- [delete](magic_hour/resources/v1/image_projects/README.md#delete) - Delete image
|
|
294
|
+
- [get](magic_hour/resources/v1/image_projects/README.md#get) - Get image details
|
|
295
|
+
|
|
296
|
+
### [v1.image_to_video](magic_hour/resources/v1/image_to_video/README.md)
|
|
297
|
+
|
|
298
|
+
- [create](magic_hour/resources/v1/image_to_video/README.md#create) - Image-to-Video
|
|
299
|
+
- [generate](magic_hour/resources/v1/image_to_video/README.md#generate) - Image To Video Generate Workflow
|
|
300
|
+
|
|
301
|
+
### [v1.lip_sync](magic_hour/resources/v1/lip_sync/README.md)
|
|
302
|
+
|
|
303
|
+
- [create](magic_hour/resources/v1/lip_sync/README.md#create) - Lip Sync
|
|
304
|
+
- [generate](magic_hour/resources/v1/lip_sync/README.md#generate) - Lip Sync Generate Workflow
|
|
305
|
+
|
|
306
|
+
### [v1.photo_colorizer](magic_hour/resources/v1/photo_colorizer/README.md)
|
|
307
|
+
|
|
308
|
+
- [create](magic_hour/resources/v1/photo_colorizer/README.md#create) - Photo Colorizer
|
|
309
|
+
- [generate](magic_hour/resources/v1/photo_colorizer/README.md#generate) - Photo Colorizer Generate Workflow
|
|
310
|
+
|
|
311
|
+
### [v1.text_to_video](magic_hour/resources/v1/text_to_video/README.md)
|
|
312
|
+
|
|
313
|
+
- [create](magic_hour/resources/v1/text_to_video/README.md#create) - Text-to-Video
|
|
314
|
+
- [generate](magic_hour/resources/v1/text_to_video/README.md#generate) - Text To Video Generate Workflow
|
|
315
|
+
|
|
316
|
+
### [v1.video_projects](magic_hour/resources/v1/video_projects/README.md)
|
|
317
|
+
|
|
318
|
+
- [check-result](magic_hour/resources/v1/video_projects/README.md#check-result) - Check results
|
|
319
|
+
- [delete](magic_hour/resources/v1/video_projects/README.md#delete) - Delete video
|
|
320
|
+
- [get](magic_hour/resources/v1/video_projects/README.md#get) - Get video details
|
|
321
|
+
|
|
322
|
+
### [v1.video_to_video](magic_hour/resources/v1/video_to_video/README.md)
|
|
323
|
+
|
|
324
|
+
- [create](magic_hour/resources/v1/video_to_video/README.md#create) - Video-to-Video
|
|
325
|
+
- [generate](magic_hour/resources/v1/video_to_video/README.md#generate) - Video To Video Generate Workflow
|
|
326
|
+
|
|
327
|
+
<!-- MODULE DOCS END -->
|
|
328
|
+
|