Skip to content

Commit fbfaddd

Browse files
magic-hour-sdk-bot[bot]sdk-github-actions[bot]davidhu2000
authored
feat: add voice cloner API (#130)
Co-authored-by: sdk-github-actions[bot] <sdk-github-actions[bot]@users.noreply.github.com> Co-authored-by: David Hu <davidhu314@gmail.com>
1 parent 882139b commit fbfaddd

File tree

47 files changed

+1242
-568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1242
-568
lines changed

.prettierignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
README.md

.sdk.json

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"id": "b502eefd-759e-4a98-a74c-bbb3116b8593",
2+
"id": "e5c69478-9633-4833-9e69-48a4deff0956",
33
"tracked_paths": [
44
{
55
"editable": true,
@@ -225,6 +225,22 @@
225225
"editable": true,
226226
"path": "src/resources/v1/ai-talking-photo/resource-client.ts"
227227
},
228+
{
229+
"editable": true,
230+
"path": "src/resources/v1/ai-voice-cloner/README.md"
231+
},
232+
{
233+
"editable": true,
234+
"path": "src/resources/v1/ai-voice-cloner/index.ts"
235+
},
236+
{
237+
"editable": false,
238+
"path": "src/resources/v1/ai-voice-cloner/request-types.ts"
239+
},
240+
{
241+
"editable": true,
242+
"path": "src/resources/v1/ai-voice-cloner/resource-client.ts"
243+
},
228244
{
229245
"editable": true,
230246
"path": "src/resources/v1/ai-voice-generator/README.md"
@@ -705,6 +721,22 @@
705721
"editable": false,
706722
"path": "src/types/v1-ai-talking-photo-create-response.ts"
707723
},
724+
{
725+
"editable": false,
726+
"path": "src/types/v1-ai-voice-cloner-create-body-assets.ts"
727+
},
728+
{
729+
"editable": false,
730+
"path": "src/types/v1-ai-voice-cloner-create-body-style.ts"
731+
},
732+
{
733+
"editable": false,
734+
"path": "src/types/v1-ai-voice-cloner-create-body.ts"
735+
},
736+
{
737+
"editable": false,
738+
"path": "src/types/v1-ai-voice-cloner-create-response.ts"
739+
},
708740
{
709741
"editable": false,
710742
"path": "src/types/v1-ai-voice-generator-create-body-style-voice-name-enum.ts"
@@ -1105,6 +1137,10 @@
11051137
"editable": false,
11061138
"path": "test/v1-ai-talking-photo.test.ts"
11071139
},
1140+
{
1141+
"editable": false,
1142+
"path": "test/v1-ai-voice-cloner.test.ts"
1143+
},
11081144
{
11091145
"editable": false,
11101146
"path": "test/v1-ai-voice-generator.test.ts"

README.md

Lines changed: 82 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ const res = await client.v1.faceSwapPhoto.generate(
3838
},
3939
);
4040

41-
console.log(`Project ID: ${response.id}`)
42-
console.log(`Status: ${response.status}`)
43-
console.log(`Downloaded files: ${response.downloaded_paths}`)
41+
console.log(`Project ID: ${response.id}`);
42+
console.log(`Status: ${response.status}`);
43+
console.log(`Downloaded files: ${response.downloaded_paths}`);
4444
```
4545

4646
## Client Functions
@@ -77,10 +77,10 @@ const response = await client.v1.faceSwapPhoto.generate(
7777
name: "Face Swap image",
7878
},
7979
{
80-
waitForCompletion: true, // Wait for status to be complete/error/canceled
81-
downloadOutputs: true, // Download files automatically
82-
downloadDirectory: "./outputs/" // Where to save files
83-
}
80+
waitForCompletion: true, // Wait for status to be complete/error/canceled
81+
downloadOutputs: true, // Download files automatically
82+
downloadDirectory: "./outputs/", // Where to save files
83+
},
8484
);
8585

8686
// You get both the API response AND downloaded file paths
@@ -99,8 +99,12 @@ The `create()` function provides granular control:
9999

100100
```ts
101101
// upload the files to Magic Hour's storage or you can use direct URLs
102-
const sourceFilePath = await client.v1.files.uploadFile("/path/to/source/image.png")
103-
const targetFilePath = await client.v1.files.uploadFile("/path/to/target/image.png")
102+
const sourceFilePath = await client.v1.files.uploadFile(
103+
"/path/to/source/image.png",
104+
);
105+
const targetFilePath = await client.v1.files.uploadFile(
106+
"/path/to/target/image.png",
107+
);
104108

105109
// Create function - only starts the process
106110
const createResponse = await client.v1.faceSwapPhoto.create({
@@ -109,7 +113,7 @@ const createResponse = await client.v1.faceSwapPhoto.create({
109113
sourceFilePath: sourceFilePath,
110114
targetFilePath: targetFilePath,
111115
},
112-
name: "Face Swap image"
116+
name: "Face Swap image",
113117
});
114118

115119
// You get just the project ID and initial response
@@ -151,14 +155,12 @@ The Magic Hour SDK includes the `ApiError` class, which includes the request and
151155

152156
```ts
153157
try {
154-
await client.v1.imageToVideo.generate(
155-
{
156-
assets: {
157-
imageFilePath: "/Users/dhu/Desktop/test-files/suit.jpg",
158-
},
159-
endSeconds: 0,
158+
await client.v1.imageToVideo.generate({
159+
assets: {
160+
imageFilePath: "/Users/dhu/Desktop/test-files/suit.jpg",
160161
},
161-
);
162+
endSeconds: 0,
163+
});
162164
} catch (error) {
163165
if (error instanceof ApiError) {
164166
console.error(`API Error: ${error.message}`); // API Error: 400 was returned from post /v1/image-to-video
@@ -199,148 +201,151 @@ Valid values are: `none`, `error`, `warn`, `info`, `debug` (case insensitive). I
199201

200202
## Module Documentation and Snippets
201203

202-
### [v1](src/resources/v1/README.md)
203-
204-
205204
### [v1.aiClothesChanger](src/resources/v1/ai-clothes-changer/README.md)
206205

207-
* [create](src/resources/v1/ai-clothes-changer/README.md#create) - AI Clothes Changer
208-
* [generate](src/resources/v1/ai-clothes-changer/README.md#generate) - AI Clothes Changer Generate Workflow
206+
- [create](src/resources/v1/ai-clothes-changer/README.md#create) - AI Clothes Changer
207+
- [generate](src/resources/v1/ai-clothes-changer/README.md#generate) - AI Clothes Changer Generate Workflow
209208

210209
### [v1.aiFaceEditor](src/resources/v1/ai-face-editor/README.md)
211210

212-
* [create](src/resources/v1/ai-face-editor/README.md#create) - AI Face Editor
213-
* [generate](src/resources/v1/ai-face-editor/README.md#generate) - AI Face Editor Generate Workflow
211+
- [create](src/resources/v1/ai-face-editor/README.md#create) - AI Face Editor
212+
- [generate](src/resources/v1/ai-face-editor/README.md#generate) - AI Face Editor Generate Workflow
214213

215214
### [v1.aiGifGenerator](src/resources/v1/ai-gif-generator/README.md)
216215

217-
* [create](src/resources/v1/ai-gif-generator/README.md#create) - AI GIFs
218-
* [generate](src/resources/v1/ai-gif-generator/README.md#generate) - AI Gif Generator Generate Workflow
216+
- [create](src/resources/v1/ai-gif-generator/README.md#create) - AI GIF Generator
217+
- [generate](src/resources/v1/ai-gif-generator/README.md#generate) - AI Gif Generator Generate Workflow
219218

220219
### [v1.aiHeadshotGenerator](src/resources/v1/ai-headshot-generator/README.md)
221220

222-
* [create](src/resources/v1/ai-headshot-generator/README.md#create) - AI Headshots
223-
* [generate](src/resources/v1/ai-headshot-generator/README.md#generate) - AI Headshot Generator Generate Workflow
221+
- [create](src/resources/v1/ai-headshot-generator/README.md#create) - AI Headshot Generator
222+
- [generate](src/resources/v1/ai-headshot-generator/README.md#generate) - AI Headshot Generator Generate Workflow
224223

225224
### [v1.aiImageEditor](src/resources/v1/ai-image-editor/README.md)
226225

227-
* [create](src/resources/v1/ai-image-editor/README.md#create) - AI Image Editor
228-
* [generate](src/resources/v1/ai-image-editor/README.md#generate) - AI Image Editor Generate Workflow
226+
- [create](src/resources/v1/ai-image-editor/README.md#create) - AI Image Editor
227+
- [generate](src/resources/v1/ai-image-editor/README.md#generate) - AI Image Editor Generate Workflow
229228

230229
### [v1.aiImageGenerator](src/resources/v1/ai-image-generator/README.md)
231230

232-
* [create](src/resources/v1/ai-image-generator/README.md#create) - AI Images
233-
* [generate](src/resources/v1/ai-image-generator/README.md#generate) - AI Image Generator Generate Workflow
231+
- [create](src/resources/v1/ai-image-generator/README.md#create) - AI Image Generator
232+
- [generate](src/resources/v1/ai-image-generator/README.md#generate) - AI Image Generator Generate Workflow
234233

235234
### [v1.aiImageUpscaler](src/resources/v1/ai-image-upscaler/README.md)
236235

237-
* [create](src/resources/v1/ai-image-upscaler/README.md#create) - AI Image Upscaler
238-
* [generate](src/resources/v1/ai-image-upscaler/README.md#generate) - AI Image Upscaler Generate Workflow
236+
- [create](src/resources/v1/ai-image-upscaler/README.md#create) - AI Image Upscaler
237+
- [generate](src/resources/v1/ai-image-upscaler/README.md#generate) - AI Image Upscaler Generate Workflow
239238

240239
### [v1.aiMemeGenerator](src/resources/v1/ai-meme-generator/README.md)
241240

242-
* [create](src/resources/v1/ai-meme-generator/README.md#create) - AI Meme Generator
243-
* [generate](src/resources/v1/ai-meme-generator/README.md#generate) - AI Meme Generator Generate Workflow
241+
- [create](src/resources/v1/ai-meme-generator/README.md#create) - AI Meme Generator
242+
- [generate](src/resources/v1/ai-meme-generator/README.md#generate) - AI Meme Generator Generate Workflow
244243

245244
### [v1.aiPhotoEditor](src/resources/v1/ai-photo-editor/README.md)
246245

247-
* [create](src/resources/v1/ai-photo-editor/README.md#create) - AI Photo Editor
248-
* [generate](src/resources/v1/ai-photo-editor/README.md#generate) - AI Photo Editor Generate Workflow
246+
- [create](src/resources/v1/ai-photo-editor/README.md#create) - AI Photo Editor
247+
- [generate](src/resources/v1/ai-photo-editor/README.md#generate) - AI Photo Editor Generate Workflow
249248

250249
### [v1.aiQrCodeGenerator](src/resources/v1/ai-qr-code-generator/README.md)
251250

252-
* [create](src/resources/v1/ai-qr-code-generator/README.md#create) - AI QR Code
253-
* [generate](src/resources/v1/ai-qr-code-generator/README.md#generate) - AI Qr Code Generator Generate Workflow
251+
- [create](src/resources/v1/ai-qr-code-generator/README.md#create) - AI QR Code Generator
252+
- [generate](src/resources/v1/ai-qr-code-generator/README.md#generate) - AI Qr Code Generator Generate Workflow
254253

255254
### [v1.aiTalkingPhoto](src/resources/v1/ai-talking-photo/README.md)
256255

257-
* [create](src/resources/v1/ai-talking-photo/README.md#create) - AI Talking Photo
258-
* [generate](src/resources/v1/ai-talking-photo/README.md#generate) - AI Talking Photo Generate Workflow
256+
- [create](src/resources/v1/ai-talking-photo/README.md#create) - AI Talking Photo
257+
- [generate](src/resources/v1/ai-talking-photo/README.md#generate) - AI Talking Photo Generate Workflow
258+
259+
### [v1.aiVoiceCloner](src/resources/v1/ai-voice-cloner/README.md)
260+
261+
- [create](src/resources/v1/ai-voice-cloner/README.md#create) - AI Voice Cloner
262+
- [generate](src/resources/v1/ai-voice-cloner/README.md#generate) - AI Voice Cloner Workflow
259263

260264
### [v1.aiVoiceGenerator](src/resources/v1/ai-voice-generator/README.md)
261265

262-
* [create](src/resources/v1/ai-voice-generator/README.md#create) - AI Voice Generator
263-
* [generate](src/resources/v1/ai-voice-generator/README.md#generate) - AI Voice Generator Generate Workflow
266+
- [create](src/resources/v1/ai-voice-generator/README.md#create) - AI Voice Generator
267+
- [generate](src/resources/v1/ai-voice-generator/README.md#generate) - AI Voice Generate Workflow
264268

265269
### [v1.animation](src/resources/v1/animation/README.md)
266270

267-
* [create](src/resources/v1/animation/README.md#create) - Animation
268-
* [generate](src/resources/v1/animation/README.md#generate) - Animation Generate Workflow
271+
- [create](src/resources/v1/animation/README.md#create) - Animation
272+
- [generate](src/resources/v1/animation/README.md#generate) - Animation Generate Workflow
269273

270274
### [v1.audioProjects](src/resources/v1/audio-projects/README.md)
271275

272-
* [delete](src/resources/v1/audio-projects/README.md#delete) - Delete audio
273-
* [get](src/resources/v1/audio-projects/README.md#get) - Get audio details
276+
- [check-result](src/resources/v1/audio-projects/README.md#check-result) - Check results
277+
- [delete](src/resources/v1/audio-projects/README.md#delete) - Delete audio
278+
- [get](src/resources/v1/audio-projects/README.md#get) - Get audio details
274279

275280
### [v1.autoSubtitleGenerator](src/resources/v1/auto-subtitle-generator/README.md)
276281

277-
* [create](src/resources/v1/auto-subtitle-generator/README.md#create) - Auto Subtitle Generator
278-
* [generate](src/resources/v1/auto-subtitle-generator/README.md#generate) - Auto Subtitle Generator Generate Workflow
282+
- [create](src/resources/v1/auto-subtitle-generator/README.md#create) - Auto Subtitle Generator
283+
- [generate](src/resources/v1/auto-subtitle-generator/README.md#generate) - Auto Subtitle Generator Generate Workflow
279284

280285
### [v1.faceDetection](src/resources/v1/face-detection/README.md)
281286

282-
* [create](src/resources/v1/face-detection/README.md#create) - Face Detection
283-
* [generate](src/resources/v1/face-detection/README.md#generate) - Face Detection Generate Workflow
284-
* [get](src/resources/v1/face-detection/README.md#get) - Get face detection details
287+
- [create](src/resources/v1/face-detection/README.md#create) - Face Detection
288+
- [generate](src/resources/v1/face-detection/README.md#generate) - Face Detection Generate Workflow
289+
- [get](src/resources/v1/face-detection/README.md#get) - Get face detection details
285290

286291
### [v1.faceSwap](src/resources/v1/face-swap/README.md)
287292

288-
* [create](src/resources/v1/face-swap/README.md#create) - Face Swap video
289-
* [generate](src/resources/v1/face-swap/README.md#generate) - Face Swap Generate Workflow
293+
- [create](src/resources/v1/face-swap/README.md#create) - Face Swap Video
294+
- [generate](src/resources/v1/face-swap/README.md#generate) - Face Swap Generate Workflow
290295

291296
### [v1.faceSwapPhoto](src/resources/v1/face-swap-photo/README.md)
292297

293-
* [create](src/resources/v1/face-swap-photo/README.md#create) - Face Swap Photo
294-
* [generate](src/resources/v1/face-swap-photo/README.md#generate) - Face Swap Photo Generate Workflow
298+
- [create](src/resources/v1/face-swap-photo/README.md#create) - Face Swap Photo
299+
- [generate](src/resources/v1/face-swap-photo/README.md#generate) - Face Swap Photo Generate Workflow
295300

296301
### [v1.files](src/resources/v1/files/README.md)
297302

298-
* [upload-file](src/resources/v1/files/README.md#upload-file) - Upload File
303+
- [upload-file](src/resources/v1/files/README.md#upload-file) - Upload File
299304

300305
### [v1.files.uploadUrls](src/resources/v1/files/upload-urls/README.md)
301306

302-
* [create](src/resources/v1/files/upload-urls/README.md#create) - Generate asset upload urls
307+
- [create](src/resources/v1/files/upload-urls/README.md#create) - Generate asset upload urls
303308

304309
### [v1.imageBackgroundRemover](src/resources/v1/image-background-remover/README.md)
305310

306-
* [create](src/resources/v1/image-background-remover/README.md#create) - Image Background Remover
307-
* [generate](src/resources/v1/image-background-remover/README.md#generate) - Image Background Remover Generate Workflow
311+
- [create](src/resources/v1/image-background-remover/README.md#create) - Image Background Remover
312+
- [generate](src/resources/v1/image-background-remover/README.md#generate) - Image Background Remover Generate Workflow
308313

309314
### [v1.imageProjects](src/resources/v1/image-projects/README.md)
310315

311-
* [check-result](src/resources/v1/image-projects/README.md#check-result) - Check results
312-
* [delete](src/resources/v1/image-projects/README.md#delete) - Delete image
313-
* [get](src/resources/v1/image-projects/README.md#get) - Get image details
316+
- [check-result](src/resources/v1/image-projects/README.md#check-result) - Check results
317+
- [delete](src/resources/v1/image-projects/README.md#delete) - Delete image
318+
- [get](src/resources/v1/image-projects/README.md#get) - Get image details
314319

315320
### [v1.imageToVideo](src/resources/v1/image-to-video/README.md)
316321

317-
* [create](src/resources/v1/image-to-video/README.md#create) - Image-to-Video
318-
* [generate](src/resources/v1/image-to-video/README.md#generate) - Image To Video Generate Workflow
322+
- [create](src/resources/v1/image-to-video/README.md#create) - Image-to-Video
323+
- [generate](src/resources/v1/image-to-video/README.md#generate) - Image To Video Generate Workflow
319324

320325
### [v1.lipSync](src/resources/v1/lip-sync/README.md)
321326

322-
* [create](src/resources/v1/lip-sync/README.md#create) - Lip Sync
323-
* [generate](src/resources/v1/lip-sync/README.md#generate) - Lip Sync Generate Workflow
327+
- [create](src/resources/v1/lip-sync/README.md#create) - Lip Sync
328+
- [generate](src/resources/v1/lip-sync/README.md#generate) - Lip Sync Generate Workflow
324329

325330
### [v1.photoColorizer](src/resources/v1/photo-colorizer/README.md)
326331

327-
* [create](src/resources/v1/photo-colorizer/README.md#create) - Photo Colorizer
328-
* [generate](src/resources/v1/photo-colorizer/README.md#generate) - Photo Colorizer Generate Workflow
332+
- [create](src/resources/v1/photo-colorizer/README.md#create) - Photo Colorizer
333+
- [generate](src/resources/v1/photo-colorizer/README.md#generate) - Photo Colorizer Generate Workflow
329334

330335
### [v1.textToVideo](src/resources/v1/text-to-video/README.md)
331336

332-
* [create](src/resources/v1/text-to-video/README.md#create) - Text-to-Video
333-
* [generate](src/resources/v1/text-to-video/README.md#generate) - Text To Video Generate Workflow
337+
- [create](src/resources/v1/text-to-video/README.md#create) - Text-to-Video
338+
- [generate](src/resources/v1/text-to-video/README.md#generate) - Text To Video Generate Workflow
334339

335340
### [v1.videoProjects](src/resources/v1/video-projects/README.md)
336341

337-
* [check-result](src/resources/v1/video-projects/README.md#check-result) - Check results
338-
* [delete](src/resources/v1/video-projects/README.md#delete) - Delete video
339-
* [get](src/resources/v1/video-projects/README.md#get) - Get video details
342+
- [check-result](src/resources/v1/video-projects/README.md#check-result) - Check results
343+
- [delete](src/resources/v1/video-projects/README.md#delete) - Delete video
344+
- [get](src/resources/v1/video-projects/README.md#get) - Get video details
340345

341346
### [v1.videoToVideo](src/resources/v1/video-to-video/README.md)
342347

343-
* [create](src/resources/v1/video-to-video/README.md#create) - Video-to-Video
344-
* [generate](src/resources/v1/video-to-video/README.md#generate) - Video To Video Generate Workflow
348+
- [create](src/resources/v1/video-to-video/README.md#create) - Video-to-Video
349+
- [generate](src/resources/v1/video-to-video/README.md#generate) - Video To Video Generate Workflow
345350

346351
<!-- MODULE DOCS END -->

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "magic-hour",
3-
"version": "0.43.1",
3+
"version": "0.44.0",
44
"main": "./dist/index.js",
55
"types": "./dist/index.d.ts",
66
"exports": {

src/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Base Client
22

33
## Submodules
4+
45
- [ai-clothes-changer](resources/v1/ai-clothes-changer/README.md) - ai-clothes-changer
56
- [ai-face-editor](resources/v1/ai-face-editor/README.md) - ai-face-editor
67
- [ai-gif-generator](resources/v1/ai-gif-generator/README.md) - ai-gif-generator
@@ -12,6 +13,7 @@
1213
- [ai-photo-editor](resources/v1/ai-photo-editor/README.md) - ai-photo-editor
1314
- [ai-qr-code-generator](resources/v1/ai-qr-code-generator/README.md) - ai-qr-code-generator
1415
- [ai-talking-photo](resources/v1/ai-talking-photo/README.md) - ai-talking-photo
16+
- [ai-voice-cloner](resources/v1/ai-voice-cloner/README.md) - ai-voice-cloner
1517
- [ai-voice-generator](resources/v1/ai-voice-generator/README.md) - ai-voice-generator
1618
- [animation](resources/v1/animation/README.md) - animation
1719
- [audio-projects](resources/v1/audio-projects/README.md) - audio-projects
@@ -30,4 +32,3 @@
3032
- [video-projects](resources/v1/video-projects/README.md) - video-projects
3133
- [video-to-video](resources/v1/video-to-video/README.md) - video-to-video
3234
- [v1](resources/v1/README.md) - v1
33-

src/environment.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export enum Environment {
22
Environment = "https://api.magichour.ai",
3-
MockServer = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.42.2",
3+
MockServer = "https://api.sideko.dev/v1/mock/magichour/magic-hour/0.43.1",
44
}

0 commit comments

Comments
 (0)