File size: 3,990 Bytes
a91de1e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | _id: replicate
author: Anton Breslavskii | https://github.com/breslavsky
description: Provides features to use AI models from Replicate AI
readme: ""
title: Replicate AI
url: https://huggingface.co/PiperMy/Node-Packages/resolve/main/replicate.yaml
version: 5
nodes:
generate_on_flux_replicate:
_id: generate_on_flux_replicate
arrange:
x: 300
y: 120
category:
id: generate_images
title: en=Generate images;ru=Генерация изображений
costs: |-
const COST_PER_IMAGE = 0.01;
(() => {
const { imagesCount } = inputs;
return imagesCount * COST_PER_IMAGE;
})()
environment:
REPLICATE_TOKEN:
title: Replicate token
description: Go to [Replicate](https://replicate.com/account/api-tokens) to take a keys
type: string
scope: global
inputs:
prompt:
order: 1
title: en=Prompt;ru=Подсказка
type: string
required: true
multiline: true
default: walking cat at the moon
imagesCount:
order: 2
title: en=Images count;ru=Кол-во
type: integer
required: true
min: 1
max: 4
step: 1
default: 1
aspectRatio:
order: 3
title: en=Aspect ratio;ru=Размер
type: string
default: 1:1
enum:
- 1:1
- 21:9
- 16:9
- 3:2
- 2:3
- 4:5
- 5:4
- 3:4
- 4:3
- 9:21
- 9:16
outputs:
images:
title: Images
type: image[]
image1:
title: Image 1
type: image
image2:
title: Image 2
type: image
image3:
title: Image 3
type: image
image4:
title: Image 4
type: image
package: replicate
script: |
(async () => {
const REPLICATE_TOKEN = env?.variables?.get('REPLICATE_TOKEN');
if(!REPLICATE_TOKEN) {
error.fatal('Please, set your API token for Replicate AI');
}
const { prompt, imagesCount, aspectRatio } = inputs;
if(!state) {
const {data: {id: task}} = await httpClient({
method: 'post',
url: 'https://api.replicate.com/v1/models/black-forest-labs/flux-schnell/predictions',
data: {
input: {
prompt,
num_outputs: imagesCount,
aspect_ratio: aspectRatio
}
},
headers: {
'Authorization': `Bearer ${REPLICATE_TOKEN}`,
'Content-Type': 'application/json',
'Prefer': 'wait',
}
});
return repeat({state: {task}, delay: 2000});
} else {
const { task } = state;
const { data } = await httpClient({
method: 'get',
url: `https://api.replicate.com/v1/predictions/${task}`,
headers: {
'Authorization': `Bearer ${REPLICATE_TOKEN}`,
'Content-Type': 'application/json'
}
});
const { status, error } = data;
switch(status) {
case 'processing':
return repeat({state: {task}, delay: 3000});
case 'failed':
error.fatal(error);
case 'succeeded':
const { output: images } = data;
const [image1, image2, image3, image4] = images;
return next({outputs: {images, image1, image2, image3, image4}});
}
}
})();
source: catalog
title: en=Generate on Flux;ru=Генерация Flux
version: 5
|