30 lines
1005 B
TypeScript
30 lines
1005 B
TypeScript
export function canvasGenerationCount(value: unknown) {
|
|
const count = Number.parseInt(String(value), 10);
|
|
return [1, 2, 4].includes(count) ? count : 1;
|
|
}
|
|
export function canvasImageRequest(
|
|
settings: { model?: string; ratio: string; resolution: string; count: string },
|
|
references: string[],
|
|
wide = false,
|
|
) {
|
|
const images = [...new Set(references.map((url) => url.trim()).filter(Boolean))].slice(0, 12);
|
|
return {
|
|
model: settings.model,
|
|
aspectRatio: wide ? "16:9" : settings.ratio,
|
|
imageSize: settings.resolution,
|
|
imageCount: wide ? 1 : canvasGenerationCount(settings.count),
|
|
referenceImage: images[0],
|
|
referenceImages: images.slice(1),
|
|
};
|
|
}
|
|
export function canvasImageResultUrls(response: {
|
|
success: boolean;
|
|
data?: { images?: Array<{ originalUrl?: string; thumbnailUrl?: string }> };
|
|
}) {
|
|
return response.success
|
|
? (response.data?.images || [])
|
|
.map((image) => image.originalUrl || image.thumbnailUrl || "")
|
|
.filter(Boolean)
|
|
: [];
|
|
}
|