Magic Hour Changelog: 2024
November 2024
Added `max_fps_limit` to `POST /v1/lip-sync`
Added max_fps_limit to POST /v1/lip-sync
This was a feature requested by one of our API users, who wanted reduce frame usage while using APIs. Allowing to set a 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 video
You can see more details in the API Reference
Longer Videos for Face Swap and Lip Sync
We updated the maximum frames for Face Swap Video and Lip Sync from 6,000 to 20,000 frames.
Now you can generate videos that are 3.3x longer! 📈
The table summaries the length of video you can generate for a few common video FPS:
| FPS | Previous | New | | :-- | :---------------------------------------------- | :----------------------------------------------- | | 24 | {Math.floor(6000 / 24 / 60 / 0.1) / 10} minutes | {Math.floor(20000 / 24 / 60 / 0.1) / 10} minutes | | 30 | {Math.floor(6000 / 30 / 60 / 0.1) / 10} minutes | {Math.floor(20000 / 30 / 60 / 0.1) / 10} minutes | | 60 | {Math.floor(6000 / 60 / 60 / 0.1) / 10} minutes | {Math.floor(20000 / 60 / 60 / 0.1) / 10} minutes |
Select Events for Webhook
We added the ability to select specific events to send to your webhook event.

You can create your webhook by going to the Developer Hub
Make `name` Actually Optional in APIs
Make name Actually Optional in APIs
Currently, the name 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": null
}After this change, you can leave off name completely.
New AI Image APIs
Added the following AI image tools to our API:
All of our SDKs are updated with the new endpoints
First AI Image APIs and Webhook Events
We have added our first set of APIs for image modes:
Also introduced 3 additional webhook events
image.startedimage.completedimage.errored
Documentation Improvements
We reorganized our API docs to combine all video and image modes under one tag.
Webhook Documentation is split into its own documentation.
Added `high_quality` Param to Image-to-Video API
Added high_quality Param to Image-to-Video API
Added High Quality mode to Image-to-Video. "High Quality" is better at detail preservation, ideal for humans and complex images.
Watch the before-and-after video
To use high quality mode, simply check High Quality checkbox.
Added Support for `.webm` Video
Added Support for .webm Video
Now you can use .webm files in our web app without having to convert to a supported format.
Added Support for `.gif` For Face Swap
Added Support for .gif For Face Swap
Ever saw a funny gif and wanted to put yourself in the scene? Now you can! We added support to allow .gif files for face swap mode, both in the web UI and API
Delete Generated Images on Account Deletion
When you request to delete your account, we remove all personal data, delete your information from Stripe, and erase all generated videos. We discovered that generated images were not included in this process. This has now been fixed—going forward, and we have reviewed and deleted any remaining images for previously deleted accounts.
Allow Custom Prompt for AI Image Upscaler
Now you can have more control over the upscaled image. We enabled custom prompt for "Creative" style.
