fix: restrict scale adjust mask failover
This commit is contained in:
parent
831ce10a5b
commit
fb9f0541fa
@ -5534,6 +5534,8 @@ export async function POST(request: NextRequest) {
|
||||
scaleAdjustPatchReference?.productLockMethod || null,
|
||||
scaleAdjustProductLockMaskEditApplied:
|
||||
useScaleAdjustProductLockMaskEdit,
|
||||
scaleAdjustRequiresProviderMaskInput:
|
||||
useScaleAdjustProductLockMaskEdit,
|
||||
scaleAdjustProductLockEditMaskUrl:
|
||||
scaleAdjustPatchReference?.productLockEditMaskUrl || null,
|
||||
scaleAdjustProductLockOverlayUrl:
|
||||
|
||||
@ -3421,6 +3421,19 @@ function isCanvasScaleAdjustEmergencyFalEditModel(item: CanvasModelWithProvider)
|
||||
);
|
||||
}
|
||||
|
||||
function isCanvasScaleAdjustProviderMaskEditModel(item: CanvasModelWithProvider) {
|
||||
if (getCanvasScaleAdjustModelFamily(item) !== "gpt-image-2") return false;
|
||||
if (item.provider.type === "openai-image") return true;
|
||||
if (item.provider.type !== "fal-image") return false;
|
||||
const modelId = String(item.model.modelId || "").trim().toLowerCase();
|
||||
return (
|
||||
modelId === "openai/gpt-image-2/edit" ||
|
||||
modelId === "fal-ai/gpt-image-2/edit" ||
|
||||
modelId.endsWith("/gpt-image-2/edit") ||
|
||||
modelId.includes("gpt-image-2/edit")
|
||||
);
|
||||
}
|
||||
|
||||
interface CanvasImageGenConfig {
|
||||
maxImages?: number;
|
||||
supports1K?: boolean;
|
||||
@ -3617,6 +3630,7 @@ function findCanvasFailoverModel(params: {
|
||||
failedModelRefs: string[];
|
||||
failedProviderTypes?: string[];
|
||||
preferLowCostSameNameProviders?: boolean;
|
||||
requiresProviderMaskInput?: boolean;
|
||||
requiresImageInput?: boolean;
|
||||
requiresTextToImage?: boolean;
|
||||
scaleAdjustModelFamily?: string | null;
|
||||
@ -3675,6 +3689,12 @@ function findCanvasFailoverModel(params: {
|
||||
}
|
||||
if (failedProviderTypes.has(item.provider.type)) return false;
|
||||
if (!item.model.supportsImageGen) return false;
|
||||
if (
|
||||
params.requiresProviderMaskInput &&
|
||||
!isCanvasScaleAdjustProviderMaskEditModel(item)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
params.requiresImageInput &&
|
||||
modelLacksReferenceImageInputSupport(item.model, item.provider)
|
||||
@ -3827,6 +3847,10 @@ export async function generateCanvasImage(
|
||||
typeof debugMeta?.scaleAdjustModelFamily === "string"
|
||||
? debugMeta.scaleAdjustModelFamily.trim()
|
||||
: "";
|
||||
const requiresProviderMaskInput = Boolean(
|
||||
debugMeta?.scaleAdjustProductLockMaskEditApplied &&
|
||||
debugMeta?.scaleAdjustProviderMaskImageUrl
|
||||
);
|
||||
const localEditComposite = normalizeLocalEditCompositeConfig(
|
||||
request.localEditComposite
|
||||
);
|
||||
@ -3886,6 +3910,7 @@ export async function generateCanvasImage(
|
||||
preferLowCostSameNameProviders: Boolean(
|
||||
debugMeta?.scaleAdjustPreferSameNameProviderFailover
|
||||
),
|
||||
requiresProviderMaskInput,
|
||||
requiresImageInput,
|
||||
scaleAdjustModelFamily,
|
||||
});
|
||||
@ -3928,6 +3953,7 @@ export async function generateCanvasImage(
|
||||
preferLowCostSameNameProviders: Boolean(
|
||||
debugMeta?.scaleAdjustPreferSameNameProviderFailover
|
||||
),
|
||||
requiresProviderMaskInput,
|
||||
requiresTextToImage,
|
||||
scaleAdjustModelFamily,
|
||||
});
|
||||
@ -4594,6 +4620,7 @@ export async function generateCanvasImage(
|
||||
preferLowCostSameNameProviders: Boolean(
|
||||
debugMeta?.scaleAdjustPreferSameNameProviderFailover
|
||||
),
|
||||
requiresProviderMaskInput,
|
||||
requiresImageInput: normalizedReferenceImages.length > 0,
|
||||
requiresTextToImage: normalizedReferenceImages.length === 0,
|
||||
scaleAdjustModelFamily,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user