n8n-nodes-piapi 0.1.2 → 0.1.4
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.
- package/README.md +8 -1
 - package/dist/nodes/PiAPI/DiffRhythm/DiffRhythmAudioGeneration.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/DiffRhythm/DiffRhythmAudioGeneration.node.js +259 -0
 - package/dist/nodes/PiAPI/DiffRhythm/DiffRhythmAudioGeneration.node.js.map +1 -0
 - package/dist/nodes/PiAPI/{Skyreels/SkytreelsImageToVideo.node.d.ts → Faceswap/FaceswapImageToImage.node.d.ts} +1 -1
 - package/dist/nodes/PiAPI/Faceswap/FaceswapImageToImage.node.js +278 -0
 - package/dist/nodes/PiAPI/Faceswap/FaceswapImageToImage.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Faceswap/FaceswapVideoToVideo.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/Faceswap/FaceswapVideoToVideo.node.js +297 -0
 - package/dist/nodes/PiAPI/Faceswap/FaceswapVideoToVideo.node.js.map +1 -0
 - package/dist/nodes/PiAPI/FileUpload/FileUpload.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/FileUpload/FileUpload.node.js +215 -0
 - package/dist/nodes/PiAPI/FileUpload/FileUpload.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Flux/FluxTextToImage.node.js +20 -8
 - package/dist/nodes/PiAPI/Flux/FluxTextToImage.node.js.map +1 -1
 - package/dist/nodes/PiAPI/ImageUpscale/ImageUpscale.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/ImageUpscale/ImageUpscale.node.js +209 -0
 - package/dist/nodes/PiAPI/ImageUpscale/ImageUpscale.node.js.map +1 -0
 - package/dist/nodes/PiAPI/MMAudio/MMAudioVideoToAudio.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/MMAudio/MMAudioVideoToAudio.node.js +241 -0
 - package/dist/nodes/PiAPI/MMAudio/MMAudioVideoToAudio.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Midjourney/PiAPIMidjourney.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/Midjourney/PiAPIMidjourney.node.js +426 -0
 - package/dist/nodes/PiAPI/Midjourney/PiAPIMidjourney.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Qubico/QubicoSegment.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/Qubico/QubicoSegment.node.js +243 -0
 - package/dist/nodes/PiAPI/Qubico/QubicoSegment.node.js.map +1 -0
 - package/dist/nodes/PiAPI/RemoveBackground/RemoveBackground.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/RemoveBackground/RemoveBackground.node.js +188 -0
 - package/dist/nodes/PiAPI/RemoveBackground/RemoveBackground.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Skyreels/PiAPISkyreels.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/Skyreels/PiAPISkyreels.node.js +335 -0
 - package/dist/nodes/PiAPI/Skyreels/PiAPISkyreels.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Skyreels/SkyreelsImageToVideo.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/Skyreels/{SkytreelsImageToVideo.node.js → SkyreelsImageToVideo.node.js} +4 -4
 - package/dist/nodes/PiAPI/Skyreels/SkyreelsImageToVideo.node.js.map +1 -0
 - package/dist/nodes/PiAPI/Skyreels/index.d.ts +2 -2
 - package/dist/nodes/PiAPI/Skyreels/index.js +3 -3
 - package/dist/nodes/PiAPI/Skyreels/index.js.map +1 -1
 - package/dist/nodes/PiAPI/TTS/TextToSpeech.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/TTS/TextToSpeech.node.js +214 -0
 - package/dist/nodes/PiAPI/TTS/TextToSpeech.node.js.map +1 -0
 - package/dist/nodes/PiAPI/VideoUpscale/VideoUpscale.node.d.ts +5 -0
 - package/dist/nodes/PiAPI/VideoUpscale/VideoUpscale.node.js +194 -0
 - package/dist/nodes/PiAPI/VideoUpscale/VideoUpscale.node.js.map +1 -0
 - package/dist/nodes/PiAPI/shared/Interfaces.d.ts +179 -5
 - package/dist/package.json +14 -3
 - package/dist/tsconfig.tsbuildinfo +1 -1
 - package/package.json +14 -3
 - package/dist/nodes/PiAPI/Skyreels/SkytreelsImageToVideo.node.js.map +0 -1
 
| 
         @@ -0,0 +1,335 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
      
 3 
     | 
    
         
            +
            exports.PiAPISkyreels = void 0;
         
     | 
| 
      
 4 
     | 
    
         
            +
            const n8n_workflow_1 = require("n8n-workflow");
         
     | 
| 
      
 5 
     | 
    
         
            +
            const GenericFunctions_1 = require("../shared/GenericFunctions");
         
     | 
| 
      
 6 
     | 
    
         
            +
            class PiAPISkyreels {
         
     | 
| 
      
 7 
     | 
    
         
            +
                constructor() {
         
     | 
| 
      
 8 
     | 
    
         
            +
                    this.description = {
         
     | 
| 
      
 9 
     | 
    
         
            +
                        displayName: 'PiAPI Skyreels',
         
     | 
| 
      
 10 
     | 
    
         
            +
                        name: 'piAPISkyreels',
         
     | 
| 
      
 11 
     | 
    
         
            +
                        icon: 'file:../piapi.svg',
         
     | 
| 
      
 12 
     | 
    
         
            +
                        group: ['transform'],
         
     | 
| 
      
 13 
     | 
    
         
            +
                        version: 1,
         
     | 
| 
      
 14 
     | 
    
         
            +
                        description: 'Create videos from images using Skyreels (ONLY works with human subjects)',
         
     | 
| 
      
 15 
     | 
    
         
            +
                        defaults: {
         
     | 
| 
      
 16 
     | 
    
         
            +
                            name: 'PiAPI Skyreels',
         
     | 
| 
      
 17 
     | 
    
         
            +
                        },
         
     | 
| 
      
 18 
     | 
    
         
            +
                        inputs: ["main"],
         
     | 
| 
      
 19 
     | 
    
         
            +
                        outputs: ["main"],
         
     | 
| 
      
 20 
     | 
    
         
            +
                        credentials: [
         
     | 
| 
      
 21 
     | 
    
         
            +
                            {
         
     | 
| 
      
 22 
     | 
    
         
            +
                                name: 'piAPIApi',
         
     | 
| 
      
 23 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 24 
     | 
    
         
            +
                            },
         
     | 
| 
      
 25 
     | 
    
         
            +
                        ],
         
     | 
| 
      
 26 
     | 
    
         
            +
                        properties: [
         
     | 
| 
      
 27 
     | 
    
         
            +
                            {
         
     | 
| 
      
 28 
     | 
    
         
            +
                                displayName: 'Important Image Requirements',
         
     | 
| 
      
 29 
     | 
    
         
            +
                                name: 'imageRequirements',
         
     | 
| 
      
 30 
     | 
    
         
            +
                                type: 'notice',
         
     | 
| 
      
 31 
     | 
    
         
            +
                                default: '⚠️ This model ONLY works properly with human faces and subjects. Animals, objects, and landscapes will likely fail. For best results, provide clear images of people with good lighting and minimal background distractions.',
         
     | 
| 
      
 32 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 33 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 34 
     | 
    
         
            +
                                        operation: ['imageToVideo'],
         
     | 
| 
      
 35 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 36 
     | 
    
         
            +
                                },
         
     | 
| 
      
 37 
     | 
    
         
            +
                            },
         
     | 
| 
      
 38 
     | 
    
         
            +
                            {
         
     | 
| 
      
 39 
     | 
    
         
            +
                                displayName: 'Operation',
         
     | 
| 
      
 40 
     | 
    
         
            +
                                name: 'operation',
         
     | 
| 
      
 41 
     | 
    
         
            +
                                type: 'options',
         
     | 
| 
      
 42 
     | 
    
         
            +
                                noDataExpression: true,
         
     | 
| 
      
 43 
     | 
    
         
            +
                                options: [
         
     | 
| 
      
 44 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 45 
     | 
    
         
            +
                                        name: 'Image to Video',
         
     | 
| 
      
 46 
     | 
    
         
            +
                                        value: 'imageToVideo',
         
     | 
| 
      
 47 
     | 
    
         
            +
                                        description: 'Convert a static image to video',
         
     | 
| 
      
 48 
     | 
    
         
            +
                                        action: 'Convert a static image to video',
         
     | 
| 
      
 49 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 50 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 51 
     | 
    
         
            +
                                default: 'imageToVideo',
         
     | 
| 
      
 52 
     | 
    
         
            +
                            },
         
     | 
| 
      
 53 
     | 
    
         
            +
                            {
         
     | 
| 
      
 54 
     | 
    
         
            +
                                displayName: 'Image Source',
         
     | 
| 
      
 55 
     | 
    
         
            +
                                name: 'imageSource',
         
     | 
| 
      
 56 
     | 
    
         
            +
                                type: 'options',
         
     | 
| 
      
 57 
     | 
    
         
            +
                                options: [
         
     | 
| 
      
 58 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 59 
     | 
    
         
            +
                                        name: 'URL',
         
     | 
| 
      
 60 
     | 
    
         
            +
                                        value: 'url',
         
     | 
| 
      
 61 
     | 
    
         
            +
                                        description: 'Use an image URL',
         
     | 
| 
      
 62 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 63 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 64 
     | 
    
         
            +
                                        name: 'Binary Data',
         
     | 
| 
      
 65 
     | 
    
         
            +
                                        value: 'binaryData',
         
     | 
| 
      
 66 
     | 
    
         
            +
                                        description: 'Use binary data from previous node',
         
     | 
| 
      
 67 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 68 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 69 
     | 
    
         
            +
                                default: 'url',
         
     | 
| 
      
 70 
     | 
    
         
            +
                                description: 'The source of the image',
         
     | 
| 
      
 71 
     | 
    
         
            +
                            },
         
     | 
| 
      
 72 
     | 
    
         
            +
                            {
         
     | 
| 
      
 73 
     | 
    
         
            +
                                displayName: 'Image URL',
         
     | 
| 
      
 74 
     | 
    
         
            +
                                name: 'imageUrl',
         
     | 
| 
      
 75 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 76 
     | 
    
         
            +
                                default: '',
         
     | 
| 
      
 77 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 78 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 79 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 80 
     | 
    
         
            +
                                        imageSource: ['url'],
         
     | 
| 
      
 81 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 82 
     | 
    
         
            +
                                },
         
     | 
| 
      
 83 
     | 
    
         
            +
                                description: 'URL of the image to use',
         
     | 
| 
      
 84 
     | 
    
         
            +
                            },
         
     | 
| 
      
 85 
     | 
    
         
            +
                            {
         
     | 
| 
      
 86 
     | 
    
         
            +
                                displayName: 'Binary Property',
         
     | 
| 
      
 87 
     | 
    
         
            +
                                name: 'binaryPropertyName',
         
     | 
| 
      
 88 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 89 
     | 
    
         
            +
                                default: 'data',
         
     | 
| 
      
 90 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 91 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 92 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 93 
     | 
    
         
            +
                                        imageSource: ['binaryData'],
         
     | 
| 
      
 94 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 95 
     | 
    
         
            +
                                },
         
     | 
| 
      
 96 
     | 
    
         
            +
                                description: 'Name of the binary property containing the image data',
         
     | 
| 
      
 97 
     | 
    
         
            +
                            },
         
     | 
| 
      
 98 
     | 
    
         
            +
                            {
         
     | 
| 
      
 99 
     | 
    
         
            +
                                displayName: 'Prompt',
         
     | 
| 
      
 100 
     | 
    
         
            +
                                name: 'prompt',
         
     | 
| 
      
 101 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 102 
     | 
    
         
            +
                                default: 'FPS-24, a person with natural movements and facial expressions',
         
     | 
| 
      
 103 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 104 
     | 
    
         
            +
                                description: 'Description to guide the video generation process',
         
     | 
| 
      
 105 
     | 
    
         
            +
                            },
         
     | 
| 
      
 106 
     | 
    
         
            +
                            {
         
     | 
| 
      
 107 
     | 
    
         
            +
                                displayName: 'Negative Prompt',
         
     | 
| 
      
 108 
     | 
    
         
            +
                                name: 'negativePrompt',
         
     | 
| 
      
 109 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 110 
     | 
    
         
            +
                                default: 'chaotic, distortion, morphing',
         
     | 
| 
      
 111 
     | 
    
         
            +
                                description: 'What to exclude from the video generation',
         
     | 
| 
      
 112 
     | 
    
         
            +
                            },
         
     | 
| 
      
 113 
     | 
    
         
            +
                            {
         
     | 
| 
      
 114 
     | 
    
         
            +
                                displayName: 'Aspect Ratio',
         
     | 
| 
      
 115 
     | 
    
         
            +
                                name: 'aspectRatio',
         
     | 
| 
      
 116 
     | 
    
         
            +
                                type: 'options',
         
     | 
| 
      
 117 
     | 
    
         
            +
                                options: [
         
     | 
| 
      
 118 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 119 
     | 
    
         
            +
                                        name: 'Landscape (16:9)',
         
     | 
| 
      
 120 
     | 
    
         
            +
                                        value: '16:9',
         
     | 
| 
      
 121 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 122 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 123 
     | 
    
         
            +
                                        name: 'Portrait (9:16)',
         
     | 
| 
      
 124 
     | 
    
         
            +
                                        value: '9:16',
         
     | 
| 
      
 125 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 126 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 127 
     | 
    
         
            +
                                        name: 'Square (1:1)',
         
     | 
| 
      
 128 
     | 
    
         
            +
                                        value: '1:1',
         
     | 
| 
      
 129 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 130 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 131 
     | 
    
         
            +
                                default: '16:9',
         
     | 
| 
      
 132 
     | 
    
         
            +
                                description: 'The aspect ratio of the generated video',
         
     | 
| 
      
 133 
     | 
    
         
            +
                            },
         
     | 
| 
      
 134 
     | 
    
         
            +
                            {
         
     | 
| 
      
 135 
     | 
    
         
            +
                                displayName: 'Guidance Scale',
         
     | 
| 
      
 136 
     | 
    
         
            +
                                name: 'guidanceScale',
         
     | 
| 
      
 137 
     | 
    
         
            +
                                type: 'number',
         
     | 
| 
      
 138 
     | 
    
         
            +
                                typeOptions: {
         
     | 
| 
      
 139 
     | 
    
         
            +
                                    minValue: 0.1,
         
     | 
| 
      
 140 
     | 
    
         
            +
                                    maxValue: 10,
         
     | 
| 
      
 141 
     | 
    
         
            +
                                },
         
     | 
| 
      
 142 
     | 
    
         
            +
                                default: 3.5,
         
     | 
| 
      
 143 
     | 
    
         
            +
                                description: 'Controls how closely the video adheres to your prompt',
         
     | 
| 
      
 144 
     | 
    
         
            +
                            },
         
     | 
| 
      
 145 
     | 
    
         
            +
                            {
         
     | 
| 
      
 146 
     | 
    
         
            +
                                displayName: 'Wait For Task Completion',
         
     | 
| 
      
 147 
     | 
    
         
            +
                                name: 'waitForTaskCompletion',
         
     | 
| 
      
 148 
     | 
    
         
            +
                                type: 'boolean',
         
     | 
| 
      
 149 
     | 
    
         
            +
                                default: false,
         
     | 
| 
      
 150 
     | 
    
         
            +
                                description: 'Whether to wait for the task to complete before returning',
         
     | 
| 
      
 151 
     | 
    
         
            +
                            },
         
     | 
| 
      
 152 
     | 
    
         
            +
                            {
         
     | 
| 
      
 153 
     | 
    
         
            +
                                displayName: 'Maximum Retry Count',
         
     | 
| 
      
 154 
     | 
    
         
            +
                                name: 'maxRetries',
         
     | 
| 
      
 155 
     | 
    
         
            +
                                type: 'number',
         
     | 
| 
      
 156 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 157 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 158 
     | 
    
         
            +
                                        waitForTaskCompletion: [true],
         
     | 
| 
      
 159 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 160 
     | 
    
         
            +
                                },
         
     | 
| 
      
 161 
     | 
    
         
            +
                                default: 20,
         
     | 
| 
      
 162 
     | 
    
         
            +
                                description: 'Maximum number of times to check for task completion (with 3-second intervals)',
         
     | 
| 
      
 163 
     | 
    
         
            +
                            },
         
     | 
| 
      
 164 
     | 
    
         
            +
                            {
         
     | 
| 
      
 165 
     | 
    
         
            +
                                displayName: 'Return Only Video URL',
         
     | 
| 
      
 166 
     | 
    
         
            +
                                name: 'returnOnlyVideoUrl',
         
     | 
| 
      
 167 
     | 
    
         
            +
                                type: 'boolean',
         
     | 
| 
      
 168 
     | 
    
         
            +
                                default: false,
         
     | 
| 
      
 169 
     | 
    
         
            +
                                description: 'Whether to return only the video URL instead of the full task data',
         
     | 
| 
      
 170 
     | 
    
         
            +
                            },
         
     | 
| 
      
 171 
     | 
    
         
            +
                            {
         
     | 
| 
      
 172 
     | 
    
         
            +
                                displayName: 'Return Binary Data',
         
     | 
| 
      
 173 
     | 
    
         
            +
                                name: 'returnBinaryData',
         
     | 
| 
      
 174 
     | 
    
         
            +
                                type: 'boolean',
         
     | 
| 
      
 175 
     | 
    
         
            +
                                default: false,
         
     | 
| 
      
 176 
     | 
    
         
            +
                                description: 'Whether to return the video as binary data',
         
     | 
| 
      
 177 
     | 
    
         
            +
                            },
         
     | 
| 
      
 178 
     | 
    
         
            +
                            {
         
     | 
| 
      
 179 
     | 
    
         
            +
                                displayName: 'Binary Property (For Output)',
         
     | 
| 
      
 180 
     | 
    
         
            +
                                name: 'binaryPropertyOutput',
         
     | 
| 
      
 181 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 182 
     | 
    
         
            +
                                default: 'data',
         
     | 
| 
      
 183 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 184 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 185 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 186 
     | 
    
         
            +
                                        returnBinaryData: [true],
         
     | 
| 
      
 187 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 188 
     | 
    
         
            +
                                },
         
     | 
| 
      
 189 
     | 
    
         
            +
                                description: 'Name of the binary property to which to write the video data',
         
     | 
| 
      
 190 
     | 
    
         
            +
                            },
         
     | 
| 
      
 191 
     | 
    
         
            +
                        ],
         
     | 
| 
      
 192 
     | 
    
         
            +
                    };
         
     | 
| 
      
 193 
     | 
    
         
            +
                }
         
     | 
| 
      
 194 
     | 
    
         
            +
                async execute() {
         
     | 
| 
      
 195 
     | 
    
         
            +
                    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
         
     | 
| 
      
 196 
     | 
    
         
            +
                    const items = this.getInputData();
         
     | 
| 
      
 197 
     | 
    
         
            +
                    const returnData = [];
         
     | 
| 
      
 198 
     | 
    
         
            +
                    for (let i = 0; i < items.length; i++) {
         
     | 
| 
      
 199 
     | 
    
         
            +
                        try {
         
     | 
| 
      
 200 
     | 
    
         
            +
                            const operation = this.getNodeParameter('operation', i);
         
     | 
| 
      
 201 
     | 
    
         
            +
                            if (operation === 'imageToVideo') {
         
     | 
| 
      
 202 
     | 
    
         
            +
                                const imageSource = this.getNodeParameter('imageSource', i);
         
     | 
| 
      
 203 
     | 
    
         
            +
                                let imageUrl = '';
         
     | 
| 
      
 204 
     | 
    
         
            +
                                if (imageSource === 'url') {
         
     | 
| 
      
 205 
     | 
    
         
            +
                                    imageUrl = this.getNodeParameter('imageUrl', i);
         
     | 
| 
      
 206 
     | 
    
         
            +
                                }
         
     | 
| 
      
 207 
     | 
    
         
            +
                                else {
         
     | 
| 
      
 208 
     | 
    
         
            +
                                    const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i);
         
     | 
| 
      
 209 
     | 
    
         
            +
                                    const binaryData = this.helpers.assertBinaryData(i, binaryPropertyName);
         
     | 
| 
      
 210 
     | 
    
         
            +
                                    if (binaryData.mimeType && !binaryData.mimeType.includes('image/')) {
         
     | 
| 
      
 211 
     | 
    
         
            +
                                        throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The provided binary data is not an image', { itemIndex: i });
         
     | 
| 
      
 212 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 213 
     | 
    
         
            +
                                    const dataBuffer = await this.helpers.getBinaryDataBuffer(i, binaryPropertyName);
         
     | 
| 
      
 214 
     | 
    
         
            +
                                    const base64Image = dataBuffer.toString('base64');
         
     | 
| 
      
 215 
     | 
    
         
            +
                                    const mimeType = binaryData.mimeType || 'image/jpeg';
         
     | 
| 
      
 216 
     | 
    
         
            +
                                    imageUrl = `data:${mimeType};base64,${base64Image}`;
         
     | 
| 
      
 217 
     | 
    
         
            +
                                }
         
     | 
| 
      
 218 
     | 
    
         
            +
                                const prompt = this.getNodeParameter('prompt', i);
         
     | 
| 
      
 219 
     | 
    
         
            +
                                const negativePrompt = this.getNodeParameter('negativePrompt', i, '');
         
     | 
| 
      
 220 
     | 
    
         
            +
                                const aspectRatio = this.getNodeParameter('aspectRatio', i);
         
     | 
| 
      
 221 
     | 
    
         
            +
                                const guidanceScale = this.getNodeParameter('guidanceScale', i);
         
     | 
| 
      
 222 
     | 
    
         
            +
                                const waitForTaskCompletion = this.getNodeParameter('waitForTaskCompletion', i, true);
         
     | 
| 
      
 223 
     | 
    
         
            +
                                const maxRetries = waitForTaskCompletion ? this.getNodeParameter('maxRetries', i, 20) : 0;
         
     | 
| 
      
 224 
     | 
    
         
            +
                                const returnOnlyVideoUrl = this.getNodeParameter('returnOnlyVideoUrl', i, false);
         
     | 
| 
      
 225 
     | 
    
         
            +
                                const returnBinaryData = this.getNodeParameter('returnBinaryData', i, false);
         
     | 
| 
      
 226 
     | 
    
         
            +
                                const binaryPropertyOutput = returnBinaryData
         
     | 
| 
      
 227 
     | 
    
         
            +
                                    ? this.getNodeParameter('binaryPropertyOutput', i)
         
     | 
| 
      
 228 
     | 
    
         
            +
                                    : '';
         
     | 
| 
      
 229 
     | 
    
         
            +
                                const requestBody = {
         
     | 
| 
      
 230 
     | 
    
         
            +
                                    model: 'Qubico/skyreels',
         
     | 
| 
      
 231 
     | 
    
         
            +
                                    task_type: 'img2video',
         
     | 
| 
      
 232 
     | 
    
         
            +
                                    input: {
         
     | 
| 
      
 233 
     | 
    
         
            +
                                        prompt,
         
     | 
| 
      
 234 
     | 
    
         
            +
                                        image: imageUrl,
         
     | 
| 
      
 235 
     | 
    
         
            +
                                        aspect_ratio: aspectRatio,
         
     | 
| 
      
 236 
     | 
    
         
            +
                                        guidance_scale: guidanceScale,
         
     | 
| 
      
 237 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 238 
     | 
    
         
            +
                                };
         
     | 
| 
      
 239 
     | 
    
         
            +
                                if (negativePrompt) {
         
     | 
| 
      
 240 
     | 
    
         
            +
                                    requestBody.input.negative_prompt = negativePrompt;
         
     | 
| 
      
 241 
     | 
    
         
            +
                                }
         
     | 
| 
      
 242 
     | 
    
         
            +
                                const response = await GenericFunctions_1.piApiRequest.call(this, 'POST', '/api/v1/task', requestBody);
         
     | 
| 
      
 243 
     | 
    
         
            +
                                let taskResponse = response;
         
     | 
| 
      
 244 
     | 
    
         
            +
                                if (waitForTaskCompletion) {
         
     | 
| 
      
 245 
     | 
    
         
            +
                                    const taskId = (_a = response.data) === null || _a === void 0 ? void 0 : _a.task_id;
         
     | 
| 
      
 246 
     | 
    
         
            +
                                    if (!taskId) {
         
     | 
| 
      
 247 
     | 
    
         
            +
                                        throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No task ID returned from API');
         
     | 
| 
      
 248 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 249 
     | 
    
         
            +
                                    taskResponse = await GenericFunctions_1.waitForTaskCompletion.call(this, taskId, maxRetries);
         
     | 
| 
      
 250 
     | 
    
         
            +
                                }
         
     | 
| 
      
 251 
     | 
    
         
            +
                                if (returnOnlyVideoUrl) {
         
     | 
| 
      
 252 
     | 
    
         
            +
                                    const videoUrl = (_c = (_b = taskResponse.data) === null || _b === void 0 ? void 0 : _b.output) === null || _c === void 0 ? void 0 : _c.video_url;
         
     | 
| 
      
 253 
     | 
    
         
            +
                                    if (videoUrl) {
         
     | 
| 
      
 254 
     | 
    
         
            +
                                        returnData.push({
         
     | 
| 
      
 255 
     | 
    
         
            +
                                            json: {
         
     | 
| 
      
 256 
     | 
    
         
            +
                                                videoUrl,
         
     | 
| 
      
 257 
     | 
    
         
            +
                                                taskId: (_d = taskResponse.data) === null || _d === void 0 ? void 0 : _d.task_id,
         
     | 
| 
      
 258 
     | 
    
         
            +
                                                status: (_e = taskResponse.data) === null || _e === void 0 ? void 0 : _e.status,
         
     | 
| 
      
 259 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 260 
     | 
    
         
            +
                                        });
         
     | 
| 
      
 261 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 262 
     | 
    
         
            +
                                    else {
         
     | 
| 
      
 263 
     | 
    
         
            +
                                        returnData.push({
         
     | 
| 
      
 264 
     | 
    
         
            +
                                            json: {
         
     | 
| 
      
 265 
     | 
    
         
            +
                                                error: 'Video URL not available',
         
     | 
| 
      
 266 
     | 
    
         
            +
                                                taskId: (_f = taskResponse.data) === null || _f === void 0 ? void 0 : _f.task_id,
         
     | 
| 
      
 267 
     | 
    
         
            +
                                                status: (_g = taskResponse.data) === null || _g === void 0 ? void 0 : _g.status,
         
     | 
| 
      
 268 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 269 
     | 
    
         
            +
                                        });
         
     | 
| 
      
 270 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 271 
     | 
    
         
            +
                                }
         
     | 
| 
      
 272 
     | 
    
         
            +
                                else if (returnBinaryData && waitForTaskCompletion) {
         
     | 
| 
      
 273 
     | 
    
         
            +
                                    const videoUrl = (_j = (_h = taskResponse.data) === null || _h === void 0 ? void 0 : _h.output) === null || _j === void 0 ? void 0 : _j.video_url;
         
     | 
| 
      
 274 
     | 
    
         
            +
                                    if (videoUrl) {
         
     | 
| 
      
 275 
     | 
    
         
            +
                                        const videoData = await this.helpers.request({
         
     | 
| 
      
 276 
     | 
    
         
            +
                                            method: 'GET',
         
     | 
| 
      
 277 
     | 
    
         
            +
                                            url: videoUrl,
         
     | 
| 
      
 278 
     | 
    
         
            +
                                            encoding: null,
         
     | 
| 
      
 279 
     | 
    
         
            +
                                            resolveWithFullResponse: true,
         
     | 
| 
      
 280 
     | 
    
         
            +
                                        });
         
     | 
| 
      
 281 
     | 
    
         
            +
                                        const newItem = {
         
     | 
| 
      
 282 
     | 
    
         
            +
                                            json: taskResponse.data,
         
     | 
| 
      
 283 
     | 
    
         
            +
                                            binary: {},
         
     | 
| 
      
 284 
     | 
    
         
            +
                                        };
         
     | 
| 
      
 285 
     | 
    
         
            +
                                        if (newItem.binary) {
         
     | 
| 
      
 286 
     | 
    
         
            +
                                            newItem.binary[binaryPropertyOutput] = await this.helpers.prepareBinaryData(Buffer.from(videoData.body), videoUrl.split('/').pop() || 'video.mp4', videoData.headers['content-type']);
         
     | 
| 
      
 287 
     | 
    
         
            +
                                        }
         
     | 
| 
      
 288 
     | 
    
         
            +
                                        returnData.push(newItem);
         
     | 
| 
      
 289 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 290 
     | 
    
         
            +
                                    else {
         
     | 
| 
      
 291 
     | 
    
         
            +
                                        returnData.push({
         
     | 
| 
      
 292 
     | 
    
         
            +
                                            json: {
         
     | 
| 
      
 293 
     | 
    
         
            +
                                                error: 'Video URL not available',
         
     | 
| 
      
 294 
     | 
    
         
            +
                                                ...taskResponse.data,
         
     | 
| 
      
 295 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 296 
     | 
    
         
            +
                                        });
         
     | 
| 
      
 297 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 298 
     | 
    
         
            +
                                }
         
     | 
| 
      
 299 
     | 
    
         
            +
                                else {
         
     | 
| 
      
 300 
     | 
    
         
            +
                                    returnData.push({
         
     | 
| 
      
 301 
     | 
    
         
            +
                                        json: taskResponse.data,
         
     | 
| 
      
 302 
     | 
    
         
            +
                                    });
         
     | 
| 
      
 303 
     | 
    
         
            +
                                }
         
     | 
| 
      
 304 
     | 
    
         
            +
                            }
         
     | 
| 
      
 305 
     | 
    
         
            +
                        }
         
     | 
| 
      
 306 
     | 
    
         
            +
                        catch (error) {
         
     | 
| 
      
 307 
     | 
    
         
            +
                            if (error.message && (error.message.includes('failed to get valid image') || error.message.includes('invalid request'))) {
         
     | 
| 
      
 308 
     | 
    
         
            +
                                const errorMessage = 'The API could not process the provided image. Skyreels ONLY works with human faces and subjects. Animals, objects, and landscapes will likely fail. Please provide a clear image of a person with good lighting and minimal background distractions.';
         
     | 
| 
      
 309 
     | 
    
         
            +
                                if (this.continueOnFail()) {
         
     | 
| 
      
 310 
     | 
    
         
            +
                                    returnData.push({
         
     | 
| 
      
 311 
     | 
    
         
            +
                                        json: {
         
     | 
| 
      
 312 
     | 
    
         
            +
                                            error: errorMessage,
         
     | 
| 
      
 313 
     | 
    
         
            +
                                            details: error.message,
         
     | 
| 
      
 314 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 315 
     | 
    
         
            +
                                    });
         
     | 
| 
      
 316 
     | 
    
         
            +
                                    continue;
         
     | 
| 
      
 317 
     | 
    
         
            +
                                }
         
     | 
| 
      
 318 
     | 
    
         
            +
                                throw new n8n_workflow_1.NodeOperationError(this.getNode(), errorMessage);
         
     | 
| 
      
 319 
     | 
    
         
            +
                            }
         
     | 
| 
      
 320 
     | 
    
         
            +
                            if (this.continueOnFail()) {
         
     | 
| 
      
 321 
     | 
    
         
            +
                                returnData.push({
         
     | 
| 
      
 322 
     | 
    
         
            +
                                    json: {
         
     | 
| 
      
 323 
     | 
    
         
            +
                                        error: error.message,
         
     | 
| 
      
 324 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 325 
     | 
    
         
            +
                                });
         
     | 
| 
      
 326 
     | 
    
         
            +
                                continue;
         
     | 
| 
      
 327 
     | 
    
         
            +
                            }
         
     | 
| 
      
 328 
     | 
    
         
            +
                            throw error;
         
     | 
| 
      
 329 
     | 
    
         
            +
                        }
         
     | 
| 
      
 330 
     | 
    
         
            +
                    }
         
     | 
| 
      
 331 
     | 
    
         
            +
                    return [returnData];
         
     | 
| 
      
 332 
     | 
    
         
            +
                }
         
     | 
| 
      
 333 
     | 
    
         
            +
            }
         
     | 
| 
      
 334 
     | 
    
         
            +
            exports.PiAPISkyreels = PiAPISkyreels;
         
     | 
| 
      
 335 
     | 
    
         
            +
            //# sourceMappingURL=PiAPISkyreels.node.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"PiAPISkyreels.node.js","sourceRoot":"","sources":["../../../../nodes/PiAPI/Skyreels/PiAPISkyreels.node.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -0,0 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export declare class SkyreelsImageToVideo implements INodeType {
         
     | 
| 
      
 3 
     | 
    
         
            +
                description: INodeTypeDescription;
         
     | 
| 
      
 4 
     | 
    
         
            +
                execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
         
     | 
| 
      
 5 
     | 
    
         
            +
            }
         
     | 
    
        package/dist/nodes/PiAPI/Skyreels/{SkytreelsImageToVideo.node.js → SkyreelsImageToVideo.node.js}
    RENAMED
    
    | 
         @@ -1,8 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use strict";
         
     | 
| 
       2 
2 
     | 
    
         
             
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       3 
     | 
    
         
            -
            exports. 
     | 
| 
      
 3 
     | 
    
         
            +
            exports.SkyreelsImageToVideo = void 0;
         
     | 
| 
       4 
4 
     | 
    
         
             
            const GenericFunctions_1 = require("../shared/GenericFunctions");
         
     | 
| 
       5 
     | 
    
         
            -
            class  
     | 
| 
      
 5 
     | 
    
         
            +
            class SkyreelsImageToVideo {
         
     | 
| 
       6 
6 
     | 
    
         
             
                constructor() {
         
     | 
| 
       7 
7 
     | 
    
         
             
                    this.description = {
         
     | 
| 
       8 
8 
     | 
    
         
             
                        displayName: 'PiAPI Skyreels Image to Video',
         
     | 
| 
         @@ -238,5 +238,5 @@ class SkytreelsImageToVideo { 
     | 
|
| 
       238 
238 
     | 
    
         
             
                    return [returnData];
         
     | 
| 
       239 
239 
     | 
    
         
             
                }
         
     | 
| 
       240 
240 
     | 
    
         
             
            }
         
     | 
| 
       241 
     | 
    
         
            -
            exports. 
     | 
| 
       242 
     | 
    
         
            -
            //# sourceMappingURL= 
     | 
| 
      
 241 
     | 
    
         
            +
            exports.SkyreelsImageToVideo = SkyreelsImageToVideo;
         
     | 
| 
      
 242 
     | 
    
         
            +
            //# sourceMappingURL=SkyreelsImageToVideo.node.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"SkyreelsImageToVideo.node.js","sourceRoot":"","sources":["../../../../nodes/PiAPI/Skyreels/SkyreelsImageToVideo.node.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -1,2 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import {  
     | 
| 
       2 
     | 
    
         
            -
            export {  
     | 
| 
      
 1 
     | 
    
         
            +
            import { SkyreelsImageToVideo } from './SkyreelsImageToVideo.node';
         
     | 
| 
      
 2 
     | 
    
         
            +
            export { SkyreelsImageToVideo, };
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use strict";
         
     | 
| 
       2 
2 
     | 
    
         
             
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       3 
     | 
    
         
            -
            exports. 
     | 
| 
       4 
     | 
    
         
            -
            const  
     | 
| 
       5 
     | 
    
         
            -
            Object.defineProperty(exports, " 
     | 
| 
      
 3 
     | 
    
         
            +
            exports.SkyreelsImageToVideo = void 0;
         
     | 
| 
      
 4 
     | 
    
         
            +
            const SkyreelsImageToVideo_node_1 = require("./SkyreelsImageToVideo.node");
         
     | 
| 
      
 5 
     | 
    
         
            +
            Object.defineProperty(exports, "SkyreelsImageToVideo", { enumerable: true, get: function () { return SkyreelsImageToVideo_node_1.SkyreelsImageToVideo; } });
         
     | 
| 
       6 
6 
     | 
    
         
             
            //# sourceMappingURL=index.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/PiAPI/Skyreels/index.ts"],"names":[],"mappings":";;;AAAA, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/PiAPI/Skyreels/index.ts"],"names":[],"mappings":";;;AAAA,2EAAmE;AAG/D,qGAHK,gDAAoB,OAGL"}
         
     | 
| 
         @@ -0,0 +1,214 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
      
 3 
     | 
    
         
            +
            exports.TextToSpeech = void 0;
         
     | 
| 
      
 4 
     | 
    
         
            +
            const n8n_workflow_1 = require("n8n-workflow");
         
     | 
| 
      
 5 
     | 
    
         
            +
            const GenericFunctions_1 = require("../shared/GenericFunctions");
         
     | 
| 
      
 6 
     | 
    
         
            +
            class TextToSpeech {
         
     | 
| 
      
 7 
     | 
    
         
            +
                constructor() {
         
     | 
| 
      
 8 
     | 
    
         
            +
                    this.description = {
         
     | 
| 
      
 9 
     | 
    
         
            +
                        displayName: 'PiAPI Text to Speech',
         
     | 
| 
      
 10 
     | 
    
         
            +
                        name: 'textToSpeech',
         
     | 
| 
      
 11 
     | 
    
         
            +
                        icon: 'file:../piapi.svg',
         
     | 
| 
      
 12 
     | 
    
         
            +
                        group: ['transform'],
         
     | 
| 
      
 13 
     | 
    
         
            +
                        version: 1,
         
     | 
| 
      
 14 
     | 
    
         
            +
                        description: 'Generate speech audio from text using PiAPI TTS',
         
     | 
| 
      
 15 
     | 
    
         
            +
                        defaults: {
         
     | 
| 
      
 16 
     | 
    
         
            +
                            name: 'Text to Speech',
         
     | 
| 
      
 17 
     | 
    
         
            +
                        },
         
     | 
| 
      
 18 
     | 
    
         
            +
                        inputs: ["main"],
         
     | 
| 
      
 19 
     | 
    
         
            +
                        outputs: ["main"],
         
     | 
| 
      
 20 
     | 
    
         
            +
                        credentials: [
         
     | 
| 
      
 21 
     | 
    
         
            +
                            {
         
     | 
| 
      
 22 
     | 
    
         
            +
                                name: 'piAPIApi',
         
     | 
| 
      
 23 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 24 
     | 
    
         
            +
                            },
         
     | 
| 
      
 25 
     | 
    
         
            +
                        ],
         
     | 
| 
      
 26 
     | 
    
         
            +
                        properties: [
         
     | 
| 
      
 27 
     | 
    
         
            +
                            {
         
     | 
| 
      
 28 
     | 
    
         
            +
                                displayName: 'Text',
         
     | 
| 
      
 29 
     | 
    
         
            +
                                name: 'text',
         
     | 
| 
      
 30 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 31 
     | 
    
         
            +
                                typeOptions: {
         
     | 
| 
      
 32 
     | 
    
         
            +
                                    rows: 4,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                },
         
     | 
| 
      
 34 
     | 
    
         
            +
                                default: '',
         
     | 
| 
      
 35 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 36 
     | 
    
         
            +
                                description: 'Text to be converted to speech',
         
     | 
| 
      
 37 
     | 
    
         
            +
                            },
         
     | 
| 
      
 38 
     | 
    
         
            +
                            {
         
     | 
| 
      
 39 
     | 
    
         
            +
                                displayName: 'Reference Audio Input Method',
         
     | 
| 
      
 40 
     | 
    
         
            +
                                name: 'refAudioInputMethod',
         
     | 
| 
      
 41 
     | 
    
         
            +
                                type: 'options',
         
     | 
| 
      
 42 
     | 
    
         
            +
                                options: [
         
     | 
| 
      
 43 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 44 
     | 
    
         
            +
                                        name: 'URL',
         
     | 
| 
      
 45 
     | 
    
         
            +
                                        value: 'url',
         
     | 
| 
      
 46 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 47 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 48 
     | 
    
         
            +
                                        name: 'Binary Data',
         
     | 
| 
      
 49 
     | 
    
         
            +
                                        value: 'binaryData',
         
     | 
| 
      
 50 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 51 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 52 
     | 
    
         
            +
                                default: 'url',
         
     | 
| 
      
 53 
     | 
    
         
            +
                                description: 'Method to input the reference audio data',
         
     | 
| 
      
 54 
     | 
    
         
            +
                            },
         
     | 
| 
      
 55 
     | 
    
         
            +
                            {
         
     | 
| 
      
 56 
     | 
    
         
            +
                                displayName: 'Reference Audio Binary Property',
         
     | 
| 
      
 57 
     | 
    
         
            +
                                name: 'refAudioBinaryPropertyName',
         
     | 
| 
      
 58 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 59 
     | 
    
         
            +
                                default: 'data',
         
     | 
| 
      
 60 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 61 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 62 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 63 
     | 
    
         
            +
                                        refAudioInputMethod: ['binaryData'],
         
     | 
| 
      
 64 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 65 
     | 
    
         
            +
                                },
         
     | 
| 
      
 66 
     | 
    
         
            +
                                description: 'Name of the binary property containing the reference audio data',
         
     | 
| 
      
 67 
     | 
    
         
            +
                            },
         
     | 
| 
      
 68 
     | 
    
         
            +
                            {
         
     | 
| 
      
 69 
     | 
    
         
            +
                                displayName: 'Reference Audio URL',
         
     | 
| 
      
 70 
     | 
    
         
            +
                                name: 'refAudioUrl',
         
     | 
| 
      
 71 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 72 
     | 
    
         
            +
                                default: '',
         
     | 
| 
      
 73 
     | 
    
         
            +
                                required: true,
         
     | 
| 
      
 74 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 75 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 76 
     | 
    
         
            +
                                        refAudioInputMethod: ['url'],
         
     | 
| 
      
 77 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 78 
     | 
    
         
            +
                                },
         
     | 
| 
      
 79 
     | 
    
         
            +
                                description: 'URL of the reference audio for voice cloning',
         
     | 
| 
      
 80 
     | 
    
         
            +
                            },
         
     | 
| 
      
 81 
     | 
    
         
            +
                            {
         
     | 
| 
      
 82 
     | 
    
         
            +
                                displayName: 'Include Reference Text',
         
     | 
| 
      
 83 
     | 
    
         
            +
                                name: 'includeRefText',
         
     | 
| 
      
 84 
     | 
    
         
            +
                                type: 'boolean',
         
     | 
| 
      
 85 
     | 
    
         
            +
                                default: false,
         
     | 
| 
      
 86 
     | 
    
         
            +
                                description: 'Whether to include text corresponding to the reference audio',
         
     | 
| 
      
 87 
     | 
    
         
            +
                            },
         
     | 
| 
      
 88 
     | 
    
         
            +
                            {
         
     | 
| 
      
 89 
     | 
    
         
            +
                                displayName: 'Reference Text',
         
     | 
| 
      
 90 
     | 
    
         
            +
                                name: 'refText',
         
     | 
| 
      
 91 
     | 
    
         
            +
                                type: 'string',
         
     | 
| 
      
 92 
     | 
    
         
            +
                                typeOptions: {
         
     | 
| 
      
 93 
     | 
    
         
            +
                                    rows: 2,
         
     | 
| 
      
 94 
     | 
    
         
            +
                                },
         
     | 
| 
      
 95 
     | 
    
         
            +
                                default: '',
         
     | 
| 
      
 96 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 97 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 98 
     | 
    
         
            +
                                        includeRefText: [true],
         
     | 
| 
      
 99 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 100 
     | 
    
         
            +
                                },
         
     | 
| 
      
 101 
     | 
    
         
            +
                                description: 'Text corresponding to the reference audio (can improve voice cloning quality)',
         
     | 
| 
      
 102 
     | 
    
         
            +
                            },
         
     | 
| 
      
 103 
     | 
    
         
            +
                            {
         
     | 
| 
      
 104 
     | 
    
         
            +
                                displayName: 'Wait For Completion',
         
     | 
| 
      
 105 
     | 
    
         
            +
                                name: 'waitForCompletion',
         
     | 
| 
      
 106 
     | 
    
         
            +
                                type: 'boolean',
         
     | 
| 
      
 107 
     | 
    
         
            +
                                default: false,
         
     | 
| 
      
 108 
     | 
    
         
            +
                                description: 'Whether to wait for the speech generation process to complete before continuing',
         
     | 
| 
      
 109 
     | 
    
         
            +
                            },
         
     | 
| 
      
 110 
     | 
    
         
            +
                            {
         
     | 
| 
      
 111 
     | 
    
         
            +
                                displayName: 'Max Retries',
         
     | 
| 
      
 112 
     | 
    
         
            +
                                name: 'maxRetries',
         
     | 
| 
      
 113 
     | 
    
         
            +
                                type: 'number',
         
     | 
| 
      
 114 
     | 
    
         
            +
                                default: 20,
         
     | 
| 
      
 115 
     | 
    
         
            +
                                description: 'Maximum number of retries to check task status',
         
     | 
| 
      
 116 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 117 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 118 
     | 
    
         
            +
                                        waitForCompletion: [true],
         
     | 
| 
      
 119 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 120 
     | 
    
         
            +
                                },
         
     | 
| 
      
 121 
     | 
    
         
            +
                            },
         
     | 
| 
      
 122 
     | 
    
         
            +
                            {
         
     | 
| 
      
 123 
     | 
    
         
            +
                                displayName: 'Retry Interval',
         
     | 
| 
      
 124 
     | 
    
         
            +
                                name: 'retryInterval',
         
     | 
| 
      
 125 
     | 
    
         
            +
                                type: 'number',
         
     | 
| 
      
 126 
     | 
    
         
            +
                                default: 3000,
         
     | 
| 
      
 127 
     | 
    
         
            +
                                description: 'Interval between retries in milliseconds',
         
     | 
| 
      
 128 
     | 
    
         
            +
                                displayOptions: {
         
     | 
| 
      
 129 
     | 
    
         
            +
                                    show: {
         
     | 
| 
      
 130 
     | 
    
         
            +
                                        waitForCompletion: [true],
         
     | 
| 
      
 131 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 132 
     | 
    
         
            +
                                },
         
     | 
| 
      
 133 
     | 
    
         
            +
                            },
         
     | 
| 
      
 134 
     | 
    
         
            +
                        ],
         
     | 
| 
      
 135 
     | 
    
         
            +
                    };
         
     | 
| 
      
 136 
     | 
    
         
            +
                }
         
     | 
| 
      
 137 
     | 
    
         
            +
                async execute() {
         
     | 
| 
      
 138 
     | 
    
         
            +
                    var _a, _b;
         
     | 
| 
      
 139 
     | 
    
         
            +
                    const items = this.getInputData();
         
     | 
| 
      
 140 
     | 
    
         
            +
                    const returnData = [];
         
     | 
| 
      
 141 
     | 
    
         
            +
                    for (let i = 0; i < items.length; i++) {
         
     | 
| 
      
 142 
     | 
    
         
            +
                        try {
         
     | 
| 
      
 143 
     | 
    
         
            +
                            const text = this.getNodeParameter('text', i);
         
     | 
| 
      
 144 
     | 
    
         
            +
                            const refAudioInputMethod = this.getNodeParameter('refAudioInputMethod', i);
         
     | 
| 
      
 145 
     | 
    
         
            +
                            const includeRefText = this.getNodeParameter('includeRefText', i, false);
         
     | 
| 
      
 146 
     | 
    
         
            +
                            const waitForCompletion = this.getNodeParameter('waitForCompletion', i, false);
         
     | 
| 
      
 147 
     | 
    
         
            +
                            let refAudioData;
         
     | 
| 
      
 148 
     | 
    
         
            +
                            if (refAudioInputMethod === 'url') {
         
     | 
| 
      
 149 
     | 
    
         
            +
                                refAudioData = this.getNodeParameter('refAudioUrl', i);
         
     | 
| 
      
 150 
     | 
    
         
            +
                            }
         
     | 
| 
      
 151 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 152 
     | 
    
         
            +
                                const refAudioBinaryPropertyName = this.getNodeParameter('refAudioBinaryPropertyName', i);
         
     | 
| 
      
 153 
     | 
    
         
            +
                                const refAudioBinaryData = this.helpers.assertBinaryData(i, refAudioBinaryPropertyName);
         
     | 
| 
      
 154 
     | 
    
         
            +
                                if (refAudioBinaryData.mimeType && !refAudioBinaryData.mimeType.includes('audio')) {
         
     | 
| 
      
 155 
     | 
    
         
            +
                                    throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The provided binary data is not an audio file', { itemIndex: i });
         
     | 
| 
      
 156 
     | 
    
         
            +
                                }
         
     | 
| 
      
 157 
     | 
    
         
            +
                                const base64String = Buffer.from(await this.helpers.getBinaryDataBuffer(i, refAudioBinaryPropertyName)).toString('base64');
         
     | 
| 
      
 158 
     | 
    
         
            +
                                refAudioData = `data:${refAudioBinaryData.mimeType};base64,${base64String}`;
         
     | 
| 
      
 159 
     | 
    
         
            +
                            }
         
     | 
| 
      
 160 
     | 
    
         
            +
                            const requestBody = {
         
     | 
| 
      
 161 
     | 
    
         
            +
                                model: 'Qubico/tts',
         
     | 
| 
      
 162 
     | 
    
         
            +
                                task_type: 'zero-shot',
         
     | 
| 
      
 163 
     | 
    
         
            +
                                input: {
         
     | 
| 
      
 164 
     | 
    
         
            +
                                    gen_text: text,
         
     | 
| 
      
 165 
     | 
    
         
            +
                                    ref_audio: refAudioData,
         
     | 
| 
      
 166 
     | 
    
         
            +
                                },
         
     | 
| 
      
 167 
     | 
    
         
            +
                                config: {
         
     | 
| 
      
 168 
     | 
    
         
            +
                                    service_mode: 'public',
         
     | 
| 
      
 169 
     | 
    
         
            +
                                },
         
     | 
| 
      
 170 
     | 
    
         
            +
                            };
         
     | 
| 
      
 171 
     | 
    
         
            +
                            if (includeRefText) {
         
     | 
| 
      
 172 
     | 
    
         
            +
                                const refText = this.getNodeParameter('refText', i, '');
         
     | 
| 
      
 173 
     | 
    
         
            +
                                if (refText) {
         
     | 
| 
      
 174 
     | 
    
         
            +
                                    requestBody.input.ref_text = refText;
         
     | 
| 
      
 175 
     | 
    
         
            +
                                }
         
     | 
| 
      
 176 
     | 
    
         
            +
                            }
         
     | 
| 
      
 177 
     | 
    
         
            +
                            const response = await GenericFunctions_1.piApiRequest.call(this, 'POST', '/api/v1/task', requestBody);
         
     | 
| 
      
 178 
     | 
    
         
            +
                            const taskId = (_a = response.data) === null || _a === void 0 ? void 0 : _a.task_id;
         
     | 
| 
      
 179 
     | 
    
         
            +
                            if (!taskId) {
         
     | 
| 
      
 180 
     | 
    
         
            +
                                throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Failed to get a valid task ID from the API');
         
     | 
| 
      
 181 
     | 
    
         
            +
                            }
         
     | 
| 
      
 182 
     | 
    
         
            +
                            let executionData;
         
     | 
| 
      
 183 
     | 
    
         
            +
                            if (waitForCompletion) {
         
     | 
| 
      
 184 
     | 
    
         
            +
                                const maxRetries = this.getNodeParameter('maxRetries', i, 20);
         
     | 
| 
      
 185 
     | 
    
         
            +
                                const retryInterval = this.getNodeParameter('retryInterval', i, 3000);
         
     | 
| 
      
 186 
     | 
    
         
            +
                                executionData = await GenericFunctions_1.waitForTaskCompletion.call(this, taskId, maxRetries, retryInterval);
         
     | 
| 
      
 187 
     | 
    
         
            +
                            }
         
     | 
| 
      
 188 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 189 
     | 
    
         
            +
                                executionData = {
         
     | 
| 
      
 190 
     | 
    
         
            +
                                    task_id: taskId,
         
     | 
| 
      
 191 
     | 
    
         
            +
                                    status: ((_b = response.data) === null || _b === void 0 ? void 0 : _b.status) || 'pending',
         
     | 
| 
      
 192 
     | 
    
         
            +
                                };
         
     | 
| 
      
 193 
     | 
    
         
            +
                            }
         
     | 
| 
      
 194 
     | 
    
         
            +
                            returnData.push({
         
     | 
| 
      
 195 
     | 
    
         
            +
                                json: executionData,
         
     | 
| 
      
 196 
     | 
    
         
            +
                            });
         
     | 
| 
      
 197 
     | 
    
         
            +
                        }
         
     | 
| 
      
 198 
     | 
    
         
            +
                        catch (error) {
         
     | 
| 
      
 199 
     | 
    
         
            +
                            if (this.continueOnFail()) {
         
     | 
| 
      
 200 
     | 
    
         
            +
                                returnData.push({
         
     | 
| 
      
 201 
     | 
    
         
            +
                                    json: {
         
     | 
| 
      
 202 
     | 
    
         
            +
                                        error: error.message,
         
     | 
| 
      
 203 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 204 
     | 
    
         
            +
                                });
         
     | 
| 
      
 205 
     | 
    
         
            +
                                continue;
         
     | 
| 
      
 206 
     | 
    
         
            +
                            }
         
     | 
| 
      
 207 
     | 
    
         
            +
                            throw error;
         
     | 
| 
      
 208 
     | 
    
         
            +
                        }
         
     | 
| 
      
 209 
     | 
    
         
            +
                    }
         
     | 
| 
      
 210 
     | 
    
         
            +
                    return [returnData];
         
     | 
| 
      
 211 
     | 
    
         
            +
                }
         
     | 
| 
      
 212 
     | 
    
         
            +
            }
         
     | 
| 
      
 213 
     | 
    
         
            +
            exports.TextToSpeech = TextToSpeech;
         
     | 
| 
      
 214 
     | 
    
         
            +
            //# sourceMappingURL=TextToSpeech.node.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"TextToSpeech.node.js","sourceRoot":"","sources":["../../../../nodes/PiAPI/TTS/TextToSpeech.node.ts"],"names":[],"mappings":"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"}
         
     |