List of feature releases in 2024
image_file_path
and video_file_path
in the following APIs:file_path
inputs:GET /v1/video-projects/:id
, the expiration time is increased from 1 hour to 24 hours.The GET /v1/image-projects/:id
was already returning 24 hours expiration, so this change make both of these APIs have matching behavior..downloads
key to GET /v1/video-projects/:id
GET /v1/video-projects/:id
, we added .downloads
key to return a list of output urls. This make video and image project response have matching behavior so it’s easier to work with both APIs..download
key is still part of the response to ensure backwards compatibility.POST /v1/video-to-video
height
and width
of the API call are both above 64.Originally, this was not validated at the API level, and the video will fail to render. Now, you will get a validation error for invalid height/width in the request body.For example, passing height: 32
will return in the following 400 response:error
key to the GET /v1/image-projects/:id
and GET /v1/video-projects/:id
APIs to give you deeper visibility into what happened.unknown_error
as the code, please reach out to our team at support@magichour.ai to debug further.audio_file_path
, image_file_path
, or video_file_path
points to a file that does not exist in our storage, we previously returns the errorAsset path api-assets/id/video.mp4 is invalidThis error is not very actionable. The new error is now:
file path ’ api-assets/id/video.mp4’ does not exist. Please make sure that the value matches the ‘items.[].file_path’ from the /v1/files/upload-urls API and the files are uploaded by sending a PUT request to the upload url.
max_fps_limit
to POST /v1/lip-sync
max_fps_limit
means you limit the maximum of cost of the video.For example, if the original video has an FPS of 60 with a duration of 10 seconds, generation would previously cost 600 frames. Now, you can pass "max_fps_limit": 24
and only be charged 240 frames.If the video fps is lower than the max_fps_limit
set, we will deduct frames based on the actual
FPS of the videoYou can see more details in the API ReferenceFPS | Previous | New |
---|---|---|
24 | minutes | minutes |
30 | minutes | minutes |
60 | minutes | minutes |
name
Actually Optional in APIsname
field in APIs are nullable
, when it should be optional
. Before this change, even if you didn’t want to add a name for a particular render, you still need to pass in the key with a null
value.name
completely.image.started
image.completed
image.errored
high_quality
Param to Image-to-Video APIHigh Quality
mode to Image-to-Video. “High Quality” is better at detail preservation, ideal for humans and complex images.High Quality
checkbox..webm
Video.webm
files in our web app without having to convert to a supported format..gif
For Face Swap.gif
files for face swap mode, both in the web UI and APIAI Headshot Generator
to our dashboard!Try it now: AI Headshot GeneratorURL
limitation to our QR code generator. You can now use any text!Try it now: AI QR Code Upscalervideo.started
, video.completed
, and video.errored
events. This is a more efficient way to check whether a video ahs completed as compared to polling GET /v1/video-projects/:id
.Get more details in our webhook overview~90s -> ~30s. 3x faster! 🚀
Pro
or Business
subscription to access the API.Pro
or Business
subscription to access the API.Business
subscription. But we plan to open up the API to more users.As part of the initial launch, you can upload assets to our storage and create face swap videos.Delete Account
.Dreamshaper
and Realistic
AI models to use when generating your video.FPS | Previous | New |
---|---|---|
24 | minutes | minutes |
30 | minutes | minutes |
60 | minutes | minutes |