Import external canvas outputs
This commit is contained in:
@@ -475,6 +475,10 @@ function normalizeExternalResolution(value: unknown) {
|
||||
return '1080P';
|
||||
}
|
||||
|
||||
function firstExternalImageArray(...values: unknown[]) {
|
||||
return values.find((value): value is unknown[] => Array.isArray(value) && value.length > 0) || [];
|
||||
}
|
||||
|
||||
function convertExternalCanvasProject(value: unknown, assetMap?: ExternalAssetMap): CanvasProjectState {
|
||||
const input = asRecord(value);
|
||||
const view = asRecord(input.view || input.viewport);
|
||||
@@ -512,7 +516,26 @@ function convertExternalCanvasProject(value: unknown, assetMap?: ExternalAssetMa
|
||||
}
|
||||
const contentUrl = resolveExternalAssetUrl(node.content || node.imageUrl || node.url || node.src || data.imageUrl || data.url || settings.imageUrl || settings.url, assetMap);
|
||||
const thumbnailUrl = resolveExternalAssetUrl(node.thumbnailUrl || node.thumbnail || data.thumbnailUrl || settings.thumbnailUrl || settings.thumbnail, assetMap);
|
||||
const generatedImages = Array.isArray(settings.generatedImages) ? settings.generatedImages : [];
|
||||
const generatedImages = firstExternalImageArray(
|
||||
settings.generatedImages,
|
||||
settings.outputImages,
|
||||
settings.outputs,
|
||||
settings.results,
|
||||
settings.images,
|
||||
settings.generated,
|
||||
data.generatedImages,
|
||||
data.outputImages,
|
||||
data.outputs,
|
||||
data.results,
|
||||
data.images,
|
||||
data.generated,
|
||||
node.generatedImages,
|
||||
node.outputImages,
|
||||
node.outputs,
|
||||
node.results,
|
||||
node.images,
|
||||
node.generated,
|
||||
);
|
||||
const outputImages = generatedImages
|
||||
.map((item) => {
|
||||
if (typeof item === 'string') return resolveExternalAssetUrl(item, assetMap);
|
||||
@@ -523,6 +546,7 @@ function convertExternalCanvasProject(value: unknown, assetMap?: ExternalAssetMa
|
||||
.filter(Boolean);
|
||||
const imageUrl = outputImages[0] || contentUrl || thumbnailUrl;
|
||||
const prompt = firstString(node.prompt, settings.prompt, data.prompt);
|
||||
const negativePrompt = firstString(node.negativePrompt, node.negative_prompt, settings.negativePrompt, settings.negative_prompt, data.negativePrompt, data.negative_prompt);
|
||||
const ratio = normalizeExternalRatio(settings.ratio);
|
||||
const resolution = normalizeExternalResolution(settings.ratio || settings.previewSize || settings.previewActualSize);
|
||||
return {
|
||||
@@ -535,6 +559,7 @@ function convertExternalCanvasProject(value: unknown, assetMap?: ExternalAssetMa
|
||||
zIndex: index + 1,
|
||||
title,
|
||||
prompt,
|
||||
negativePrompt: negativePrompt || undefined,
|
||||
imageUrl: type === 'image' ? imageUrl : undefined,
|
||||
referenceImage: type === 'img2img' ? imageUrl || undefined : undefined,
|
||||
outputImages: outputImages.length > 0 ? outputImages : imageUrl ? [imageUrl] : undefined,
|
||||
|
||||
Reference in New Issue
Block a user