@telepat/rilo 0.1.6 → 0.1.8
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.de.md +101 -0
- package/README.md +68 -191
- package/README.zh-CN.md +101 -0
- package/package.json +3 -2
- package/src/api/firebaseFunction.js +1 -1
- package/src/cli/index.js +2 -2
- package/src/config/env.js +6 -4
- package/src/config/models.js +38 -14
- package/src/config/settingsSchema.js +10 -1
- package/src/images/limnModelCatalog.js +39 -0
- package/src/pipeline/orchestrator.js +44 -15
- package/src/steps/generateKeyframes.js +60 -34
- package/src/store/projectStore.js +18 -5
- package/frontend/dist/talefire-logo-dark.svg +0 -34
- package/frontend/dist/talefire-logo-light.svg +0 -36
- package/models/black-forest-labs__flux-2-pro.json +0 -78
- package/models/black-forest-labs__flux-schnell.json +0 -95
- package/models/bytedance__seedream-4.json +0 -71
- package/models/google__nano-banana-pro.json +0 -92
- package/models/prunaai__z-image-turbo.json +0 -107
- package/src/steps/textToImageAdapters.js +0 -87
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelId": "black-forest-labs/flux-schnell",
|
|
3
|
-
"provider": "replicate",
|
|
4
|
-
"displayName": "FLUX Schnell",
|
|
5
|
-
"category": "image-generation",
|
|
6
|
-
"pricingSourceUrl": "https://replicate.com/black-forest-labs/flux-schnell",
|
|
7
|
-
"pricingNotes": "Replicate pricing: $3 per 1000 output images.",
|
|
8
|
-
"pricing": {
|
|
9
|
-
"usdPerSecond": null,
|
|
10
|
-
"usdPer1kInputTokens": null,
|
|
11
|
-
"usdPer1kOutputTokens": null
|
|
12
|
-
},
|
|
13
|
-
"pricingRules": {
|
|
14
|
-
"basis": "output_image_count",
|
|
15
|
-
"usdPerImage": 0.003
|
|
16
|
-
},
|
|
17
|
-
"inputOptions": {
|
|
18
|
-
"userConfigurable": [
|
|
19
|
-
"num_outputs",
|
|
20
|
-
"num_inference_steps",
|
|
21
|
-
"seed",
|
|
22
|
-
"output_format",
|
|
23
|
-
"output_quality",
|
|
24
|
-
"disable_safety_checker",
|
|
25
|
-
"go_fast",
|
|
26
|
-
"megapixels"
|
|
27
|
-
],
|
|
28
|
-
"pipelineManaged": [
|
|
29
|
-
"prompt",
|
|
30
|
-
"aspect_ratio"
|
|
31
|
-
],
|
|
32
|
-
"fields": {
|
|
33
|
-
"num_outputs": {
|
|
34
|
-
"type": "integer",
|
|
35
|
-
"default": 1,
|
|
36
|
-
"minimum": 1,
|
|
37
|
-
"maximum": 4
|
|
38
|
-
},
|
|
39
|
-
"num_inference_steps": {
|
|
40
|
-
"type": "integer",
|
|
41
|
-
"default": 4,
|
|
42
|
-
"minimum": 1,
|
|
43
|
-
"maximum": 4
|
|
44
|
-
},
|
|
45
|
-
"seed": {
|
|
46
|
-
"type": "integer",
|
|
47
|
-
"nullable": true
|
|
48
|
-
},
|
|
49
|
-
"output_format": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"default": "webp",
|
|
52
|
-
"enum": [
|
|
53
|
-
"webp",
|
|
54
|
-
"jpg",
|
|
55
|
-
"png"
|
|
56
|
-
]
|
|
57
|
-
},
|
|
58
|
-
"output_quality": {
|
|
59
|
-
"type": "integer",
|
|
60
|
-
"default": 80,
|
|
61
|
-
"minimum": 0,
|
|
62
|
-
"maximum": 100
|
|
63
|
-
},
|
|
64
|
-
"disable_safety_checker": {
|
|
65
|
-
"type": "boolean",
|
|
66
|
-
"default": false
|
|
67
|
-
},
|
|
68
|
-
"go_fast": {
|
|
69
|
-
"type": "boolean",
|
|
70
|
-
"default": true
|
|
71
|
-
},
|
|
72
|
-
"megapixels": {
|
|
73
|
-
"type": "string",
|
|
74
|
-
"default": "1",
|
|
75
|
-
"allowAnyString": true,
|
|
76
|
-
"recommendedValues": [
|
|
77
|
-
"1"
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
|
-
"prompt": {
|
|
81
|
-
"type": "string",
|
|
82
|
-
"required": true
|
|
83
|
-
},
|
|
84
|
-
"aspect_ratio": {
|
|
85
|
-
"type": "string",
|
|
86
|
-
"required": true,
|
|
87
|
-
"enum": [
|
|
88
|
-
"1:1",
|
|
89
|
-
"16:9",
|
|
90
|
-
"9:16"
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelId": "bytedance/seedream-4",
|
|
3
|
-
"provider": "replicate",
|
|
4
|
-
"displayName": "Seedream 4",
|
|
5
|
-
"category": "image-generation",
|
|
6
|
-
"pricingSourceUrl": "https://replicate.com/bytedance/seedream-4",
|
|
7
|
-
"pricingNotes": "Replicate pricing: $0.03 per output image.",
|
|
8
|
-
"pricing": {
|
|
9
|
-
"usdPerSecond": null,
|
|
10
|
-
"usdPer1kInputTokens": null,
|
|
11
|
-
"usdPer1kOutputTokens": null
|
|
12
|
-
},
|
|
13
|
-
"pricingRules": {
|
|
14
|
-
"basis": "output_image_count",
|
|
15
|
-
"usdPerImage": 0.03
|
|
16
|
-
},
|
|
17
|
-
"inputOptions": {
|
|
18
|
-
"userConfigurable": [
|
|
19
|
-
"size",
|
|
20
|
-
"sequential_image_generation",
|
|
21
|
-
"max_images",
|
|
22
|
-
"enhance_prompt"
|
|
23
|
-
],
|
|
24
|
-
"pipelineManaged": [
|
|
25
|
-
"prompt",
|
|
26
|
-
"aspect_ratio"
|
|
27
|
-
],
|
|
28
|
-
"fields": {
|
|
29
|
-
"size": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"default": "2K",
|
|
32
|
-
"enum": [
|
|
33
|
-
"1K",
|
|
34
|
-
"2K",
|
|
35
|
-
"4K"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"sequential_image_generation": {
|
|
39
|
-
"type": "string",
|
|
40
|
-
"default": "disabled",
|
|
41
|
-
"enum": [
|
|
42
|
-
"disabled",
|
|
43
|
-
"auto"
|
|
44
|
-
]
|
|
45
|
-
},
|
|
46
|
-
"max_images": {
|
|
47
|
-
"type": "integer",
|
|
48
|
-
"default": 1,
|
|
49
|
-
"minimum": 1,
|
|
50
|
-
"maximum": 15
|
|
51
|
-
},
|
|
52
|
-
"enhance_prompt": {
|
|
53
|
-
"type": "boolean",
|
|
54
|
-
"default": true
|
|
55
|
-
},
|
|
56
|
-
"prompt": {
|
|
57
|
-
"type": "string",
|
|
58
|
-
"required": true
|
|
59
|
-
},
|
|
60
|
-
"aspect_ratio": {
|
|
61
|
-
"type": "string",
|
|
62
|
-
"required": true,
|
|
63
|
-
"enum": [
|
|
64
|
-
"1:1",
|
|
65
|
-
"16:9",
|
|
66
|
-
"9:16"
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelId": "google/nano-banana-pro",
|
|
3
|
-
"provider": "replicate",
|
|
4
|
-
"displayName": "Nano Banana Pro",
|
|
5
|
-
"category": "image-generation",
|
|
6
|
-
"pricingSourceUrl": "https://replicate.com/google/nano-banana-pro",
|
|
7
|
-
"pricingNotes": "Replicate pricing by target resolution: 1K/2K=$0.15 per output image, 4K=$0.30 per output image, fallback tier=$0.035 per output image.",
|
|
8
|
-
"pricing": {
|
|
9
|
-
"usdPerSecond": null,
|
|
10
|
-
"usdPer1kInputTokens": null,
|
|
11
|
-
"usdPer1kOutputTokens": null
|
|
12
|
-
},
|
|
13
|
-
"pricingRules": {
|
|
14
|
-
"basis": "output_image_resolution",
|
|
15
|
-
"tiers": [
|
|
16
|
-
{
|
|
17
|
-
"resolution": "1K",
|
|
18
|
-
"usdPerImage": 0.15
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"resolution": "2K",
|
|
22
|
-
"usdPerImage": 0.15
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"resolution": "4K",
|
|
26
|
-
"usdPerImage": 0.3
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"resolution": "fallback",
|
|
30
|
-
"usdPerImage": 0.035
|
|
31
|
-
}
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
"inputOptions": {
|
|
35
|
-
"userConfigurable": [
|
|
36
|
-
"resolution",
|
|
37
|
-
"output_format",
|
|
38
|
-
"safety_filter_level",
|
|
39
|
-
"allow_fallback_model"
|
|
40
|
-
],
|
|
41
|
-
"pipelineManaged": [
|
|
42
|
-
"prompt",
|
|
43
|
-
"aspect_ratio"
|
|
44
|
-
],
|
|
45
|
-
"fields": {
|
|
46
|
-
"resolution": {
|
|
47
|
-
"type": "string",
|
|
48
|
-
"default": "2K",
|
|
49
|
-
"enum": [
|
|
50
|
-
"1K",
|
|
51
|
-
"2K",
|
|
52
|
-
"4K"
|
|
53
|
-
]
|
|
54
|
-
},
|
|
55
|
-
"output_format": {
|
|
56
|
-
"type": "string",
|
|
57
|
-
"default": "jpg",
|
|
58
|
-
"enum": [
|
|
59
|
-
"jpg",
|
|
60
|
-
"png",
|
|
61
|
-
"webp"
|
|
62
|
-
]
|
|
63
|
-
},
|
|
64
|
-
"safety_filter_level": {
|
|
65
|
-
"type": "string",
|
|
66
|
-
"default": "block_only_high",
|
|
67
|
-
"enum": [
|
|
68
|
-
"block_low_and_above",
|
|
69
|
-
"block_medium_and_above",
|
|
70
|
-
"block_only_high"
|
|
71
|
-
]
|
|
72
|
-
},
|
|
73
|
-
"allow_fallback_model": {
|
|
74
|
-
"type": "boolean",
|
|
75
|
-
"default": false
|
|
76
|
-
},
|
|
77
|
-
"prompt": {
|
|
78
|
-
"type": "string",
|
|
79
|
-
"required": true
|
|
80
|
-
},
|
|
81
|
-
"aspect_ratio": {
|
|
82
|
-
"type": "string",
|
|
83
|
-
"required": true,
|
|
84
|
-
"enum": [
|
|
85
|
-
"1:1",
|
|
86
|
-
"16:9",
|
|
87
|
-
"9:16"
|
|
88
|
-
]
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelId": "prunaai/z-image-turbo",
|
|
3
|
-
"provider": "replicate",
|
|
4
|
-
"displayName": "Z Image Turbo",
|
|
5
|
-
"category": "image-generation",
|
|
6
|
-
"pricingSourceUrl": "https://replicate.com/prunaai/z-image-turbo",
|
|
7
|
-
"pricingNotes": "Replicate pricing is tiered by output image resolution (megapixels).",
|
|
8
|
-
"pricing": {
|
|
9
|
-
"usdPerSecond": null,
|
|
10
|
-
"usdPer1kInputTokens": null,
|
|
11
|
-
"usdPer1kOutputTokens": null
|
|
12
|
-
},
|
|
13
|
-
"pricingRules": {
|
|
14
|
-
"basis": "output_image_megapixels",
|
|
15
|
-
"tiers": [
|
|
16
|
-
{
|
|
17
|
-
"maxMegapixels": 0.5,
|
|
18
|
-
"usdPerImage": 0.0025
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"maxMegapixels": 1,
|
|
22
|
-
"usdPerImage": 0.005
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"maxMegapixels": 2,
|
|
26
|
-
"usdPerImage": 0.01
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"maxMegapixels": 3,
|
|
30
|
-
"usdPerImage": 0.015
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"maxMegapixels": 4,
|
|
34
|
-
"usdPerImage": 0.02
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"inputOptions": {
|
|
39
|
-
"userConfigurable": [
|
|
40
|
-
"num_inference_steps",
|
|
41
|
-
"guidance_scale",
|
|
42
|
-
"seed",
|
|
43
|
-
"go_fast",
|
|
44
|
-
"output_format",
|
|
45
|
-
"output_quality"
|
|
46
|
-
],
|
|
47
|
-
"pipelineManaged": [
|
|
48
|
-
"prompt",
|
|
49
|
-
"width",
|
|
50
|
-
"height"
|
|
51
|
-
],
|
|
52
|
-
"fields": {
|
|
53
|
-
"num_inference_steps": {
|
|
54
|
-
"type": "integer",
|
|
55
|
-
"default": 8,
|
|
56
|
-
"minimum": 1,
|
|
57
|
-
"maximum": 50
|
|
58
|
-
},
|
|
59
|
-
"guidance_scale": {
|
|
60
|
-
"type": "number",
|
|
61
|
-
"default": 0,
|
|
62
|
-
"minimum": 0,
|
|
63
|
-
"maximum": 20
|
|
64
|
-
},
|
|
65
|
-
"seed": {
|
|
66
|
-
"type": "integer",
|
|
67
|
-
"nullable": true
|
|
68
|
-
},
|
|
69
|
-
"go_fast": {
|
|
70
|
-
"type": "boolean",
|
|
71
|
-
"default": false
|
|
72
|
-
},
|
|
73
|
-
"output_format": {
|
|
74
|
-
"type": "string",
|
|
75
|
-
"default": "jpg",
|
|
76
|
-
"enum": [
|
|
77
|
-
"jpg",
|
|
78
|
-
"jpeg",
|
|
79
|
-
"png",
|
|
80
|
-
"webp"
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
"output_quality": {
|
|
84
|
-
"type": "integer",
|
|
85
|
-
"default": 80,
|
|
86
|
-
"minimum": 0,
|
|
87
|
-
"maximum": 100
|
|
88
|
-
},
|
|
89
|
-
"prompt": {
|
|
90
|
-
"type": "string",
|
|
91
|
-
"required": true
|
|
92
|
-
},
|
|
93
|
-
"width": {
|
|
94
|
-
"type": "integer",
|
|
95
|
-
"required": true,
|
|
96
|
-
"minimum": 64,
|
|
97
|
-
"maximum": 2048
|
|
98
|
-
},
|
|
99
|
-
"height": {
|
|
100
|
-
"type": "integer",
|
|
101
|
-
"required": true,
|
|
102
|
-
"minimum": 64,
|
|
103
|
-
"maximum": 2048
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { MODELS } from '../config/models.js';
|
|
2
|
-
|
|
3
|
-
function normalizeModelOptions(candidate) {
|
|
4
|
-
if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) {
|
|
5
|
-
return {};
|
|
6
|
-
}
|
|
7
|
-
return candidate;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
function buildCommonPrompt(promptText, tone, index) {
|
|
11
|
-
return `Cinematic documentary style, coherent character continuity, shot ${index + 1}, tone ${tone}. ${promptText}`;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function buildPrunaInput({ promptText, tone, index, width, height, modelOptions }) {
|
|
15
|
-
return {
|
|
16
|
-
...normalizeModelOptions(modelOptions),
|
|
17
|
-
prompt: buildCommonPrompt(promptText, tone, index),
|
|
18
|
-
width,
|
|
19
|
-
height
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function buildFluxInput({ promptText, tone, index, width, height, modelOptions }) {
|
|
24
|
-
return {
|
|
25
|
-
...normalizeModelOptions(modelOptions),
|
|
26
|
-
prompt: buildCommonPrompt(promptText, tone, index),
|
|
27
|
-
aspect_ratio: 'custom',
|
|
28
|
-
width,
|
|
29
|
-
height
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function buildFluxSchnellInput({ promptText, tone, index, aspectRatio, modelOptions }) {
|
|
34
|
-
return {
|
|
35
|
-
...normalizeModelOptions(modelOptions),
|
|
36
|
-
prompt: buildCommonPrompt(promptText, tone, index),
|
|
37
|
-
aspect_ratio: aspectRatio
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function buildNanoBananaProInput({ promptText, tone, index, aspectRatio, modelOptions }) {
|
|
42
|
-
return {
|
|
43
|
-
...normalizeModelOptions(modelOptions),
|
|
44
|
-
prompt: buildCommonPrompt(promptText, tone, index),
|
|
45
|
-
aspect_ratio: aspectRatio
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function buildSeedream4Input({ promptText, tone, index, aspectRatio, modelOptions }) {
|
|
50
|
-
return {
|
|
51
|
-
...normalizeModelOptions(modelOptions),
|
|
52
|
-
prompt: buildCommonPrompt(promptText, tone, index),
|
|
53
|
-
aspect_ratio: aspectRatio
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const TEXT_TO_IMAGE_ADAPTERS = {
|
|
58
|
-
[MODELS.keyframe]: {
|
|
59
|
-
modelId: MODELS.keyframe,
|
|
60
|
-
buildInput: buildPrunaInput
|
|
61
|
-
},
|
|
62
|
-
[MODELS.flux]: {
|
|
63
|
-
modelId: MODELS.flux,
|
|
64
|
-
buildInput: buildFluxInput
|
|
65
|
-
},
|
|
66
|
-
[MODELS.fluxSchnell]: {
|
|
67
|
-
modelId: MODELS.fluxSchnell,
|
|
68
|
-
buildInput: buildFluxSchnellInput
|
|
69
|
-
},
|
|
70
|
-
[MODELS.nanoBananaPro]: {
|
|
71
|
-
modelId: MODELS.nanoBananaPro,
|
|
72
|
-
buildInput: buildNanoBananaProInput
|
|
73
|
-
},
|
|
74
|
-
[MODELS.seedream4]: {
|
|
75
|
-
modelId: MODELS.seedream4,
|
|
76
|
-
buildInput: buildSeedream4Input
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
const DEFAULT_TEXT_TO_IMAGE_ADAPTER = {
|
|
81
|
-
modelId: null,
|
|
82
|
-
buildInput: buildPrunaInput
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
export function resolveTextToImageAdapter(modelId) {
|
|
86
|
-
return TEXT_TO_IMAGE_ADAPTERS[modelId] || DEFAULT_TEXT_TO_IMAGE_ADAPTER;
|
|
87
|
-
}
|