Your Name 1912bcd25b
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
chore: sync all remaining local workspace changes
2026-05-08 11:26:57 +08:00

448 lines
16 KiB
JavaScript

/*
* Extracted from browser-delivered Turbopack chunk: cde068e14ffee6a8.f8b5a2ab76.js
* Module id: 772000
* For reading/searching only; this factory depends on the original Turbopack runtime.
*/
const moduleFactory = (e) => {
"use strict";
var t = e.i(197895),
i = e.i(876722),
n = e.i(469850),
r = e.i(459812);
function a(e, t = 400) {
let i = Math.round(e?.width ?? 0),
n = Math.round(e?.height ?? 0);
return {
displayW: t,
displayH: i && n ? Math.round((t * n) / i) : 0,
srcW: i,
srcH: n,
};
}
function o(e, t) {
return { x: 0, y: 0, w: e, h: t };
}
async function u(e, t) {
let i = await fetch(e),
n = await i.blob(),
r = n.type || "image/png",
a =
"image/png" === r
? ".png"
: "image/jpeg" === r
? ".jpg"
: "image/webp" === r
? ".webp"
: "";
return new File([n], `${t}-${Date.now()}${a}`, { type: r });
}
async function l(e, t, i, n) {
let r = document.createElement("canvas");
(r.width = i), (r.height = n);
let a = r.getContext("2d");
if (!a) throw Error("无法创建 canvas context");
let o = new Image();
(o.crossOrigin = "anonymous"),
await new Promise((t, i) => {
(o.onload = () => t()),
(o.onerror = () => i(Error("原图加载失败"))),
(o.src = e);
});
let u = new Image();
await new Promise((e, i) => {
(u.onload = () => e()),
(u.onerror = () => i(Error("遮罩加载失败"))),
(u.src = t);
}),
a.drawImage(o, 0, 0, i, n);
let l = document.createElement("canvas");
(l.width = i), (l.height = n);
let s = l.getContext("2d");
if (!s) throw Error("无法创建临时 canvas context");
s.drawImage(u, 0, 0, i, n);
let d = s.getImageData(0, 0, i, n).data,
c = a.getImageData(0, 0, i, n),
m = c.data;
for (let e = 0; e < d.length; e += 4)
d[e + 3] < 128 &&
((m[e] = 0), (m[e + 1] = 0), (m[e + 2] = 0), (m[e + 3] = 0));
return a.putImageData(c, 0, 0), r.toDataURL("image/png");
}
async function s(e, t, i, n) {
let r = Math.round(i + t.left + t.right),
a = Math.round(n + t.top + t.bottom);
if (r <= 0 || a <= 0) throw Error("扩图尺寸无效");
let o = document.createElement("canvas");
(o.width = r), (o.height = a);
let u = o.getContext("2d");
if (!u) throw Error("无法创建 canvas context");
(u.fillStyle = "#ffffff"), u.fillRect(0, 0, r, a);
let l = new Image();
return (
(l.crossOrigin = "anonymous"),
await new Promise((t, i) => {
(l.onload = () => t()),
(l.onerror = () => i(Error("原图加载失败"))),
(l.src = e);
}),
u.drawImage(l, Math.round(t.left), Math.round(t.top), i, n),
o.toDataURL("image/png")
);
}
e.s(
[
"compositeImageWithMask",
() => l,
"compositeOutpaintImage",
() => s,
"createDefaultCropRect",
() => o,
"dataUrlToFile",
() => u,
"getDisplayImageSize",
() => a,
],
772e3,
);
var d = e.i(505e3),
c = e.i(182004);
e.i(135623);
var m = e.i(168823),
f = e.i(295085);
e.i(954175);
var p = e.i(301710);
let g = new Set([24, 30, 60, 90, 120]);
function v(e) {
if (null != e) {
if ("number" == typeof e) return g.has(e) ? e : void 0;
if ("string" == typeof e) {
let t = parseInt(e.trim(), 10);
return Number.isFinite(t) && g.has(t) ? t : void 0;
}
}
}
async function h(e) {
let t = e.focusRegion;
if (
!t?.imageUrl ||
"number" != typeof t.relX ||
"number" != typeof t.relY ||
"number" != typeof t.width ||
"number" != typeof t.height
)
return e;
let i = (0, m.getCookie)(d.USER_TOKEN_COOKIE_KEY),
n = (0, m.getCookie)(d.USER_UUID_COOKIE_KEY);
if (!i || "string" != typeof i || !n || "string" != typeof n)
throw Error("请先登录");
let r = await (0, f.drawFocusRegionRedBox)(
t.imageUrl,
t.relX,
t.relY,
t.width,
t.height,
),
a = await u(r, "focus-region"),
o = await (0, p.uploadViaPreSign)(a, {
token: i,
uuid: n,
verify: !0,
onCalcHashEnd: () => void 0,
}),
l = (0, p.resolveUploadUrl)(o);
if (!l) throw Error("上传聚焦图片失败");
return { ...e, originImage: l, scene: "camera_focus" };
}
function $(e, a, o, u, l, s) {
let d = e.model || "",
c = l(a, d);
return {
params:
"enhanceVideo" === a || "enhanceImage" === a
? (function (e) {
if (!e) return {};
let t = e.model;
if ("topaz-video-upscaler" === t || "topazlabs" === t) {
let t = { ...e };
if (
("apf-2" === t.specifiedModel &&
(t.specifiedModel = "apo-8"),
null == t.fps && null != t.frameRate)
) {
let e = v(t.frameRate);
void 0 !== e && (t.fps = e);
}
if (
(delete t.frameRate,
delete t.frame_rate,
"prob-4" === t.specifiedModel)
)
delete t.fps;
else if (null != t.fps) {
let e = v(t.fps);
void 0 !== e ? (t.fps = e) : delete t.fps;
}
return t;
}
return { ...e };
})(e)
: (function (e, t, a) {
let o;
if (!e) return {};
let {
settings: u,
advancedSettings: l,
textList: s,
imageList: d,
videoList: c,
audioList: m,
mixedList: f,
fineTuneType: p,
fineTuneModels: g,
subjectList: v,
focusRegion: h,
cameraPresets: $,
image: y,
videoListV2: _,
audioListV2: b,
imageListOrder: x,
videoListOrder: k,
audioListOrder: I,
mixedListOrder: S,
...w
} = e;
u?.multi_shot !== !0 && delete w.multi_prompt;
let z = a?.properties?.portrait === !0,
Z = (e) =>
z && Array.isArray(e) && 0 !== e.length
? e.map((e) => {
if (!e || !e.assetId) return e;
let t = `asset://${e.assetId}`;
return { ...e, url: t, nodeId: t };
})
: e,
U = Z(d),
O = Z(c),
N = Z(m),
E = Z(f),
T = (e) =>
Array.isArray(e) && 0 !== e.length
? e.map((e) => e?.url).filter((e) => !!e)
: [],
D = {},
j = w.modeType;
if (
"video" === t &&
Array.isArray(v) &&
v.length > 0 &&
(0, n.getSubjectConfig)(
a ?? null,
"string" == typeof j ? j : "",
)
) {
let e = v.map((e) => e.klingId).filter(Boolean);
e.length > 0 && (D.elementList = e);
}
if (("image" === t || "video" === t) && p && g && g.length > 0)
if ("template" === p) {
if (
((D = { ...D, effects: g.map((e) => e.versionId) }),
g[0]?.templateInfo?.length)
) {
let e = g[0].templateInfo.find(
(e) => "template" === e.name,
)?.default;
e && (D.effectTemplateUuids = [e]);
}
} else
"lora" === p &&
"image" === t &&
(D = {
loraList: g.map((e) => ({
modelId: e.versionId,
modelType: e.modelType,
imageUrl: e.imageUrl,
weight: e.weight,
name: e.name,
})),
});
let P =
"mixed2video" === w.modeType &&
Array.isArray(E) &&
E.length > 0,
C = "video" === t && a?.properties?.digitalHuman === !0,
A = P ? [] : T(U),
L = P ? [] : T(O);
if ("video" === t && !P) {
let e = w.modeType;
C
? (L = [])
: "text2video" === e
? ((A = []), (L = []))
: e &&
[
"singleImage2video",
"frames2video",
"image2video",
].includes(e)
? (L = [])
: e && ["video2video"].includes(e) && (A = []);
}
let M = "image" === t && "camera_focus" === w.scene;
M && w.originImage && (A = [w.originImage]);
let R = C ? { ...w, modeType: "singleImage2video" } : w;
if (
"video" === t &&
a?.properties?.derivesDurationFromVideo === !0
) {
let e = 0;
if (Array.isArray(O))
for (let t of O)
null != t.durationSec &&
t.durationSec > e &&
(e = t.durationSec);
if (Array.isArray(E))
for (let t of E)
"video" === t.mediaType &&
null != t.durationSec &&
t.durationSec > e &&
(e = t.durationSec);
e > 0 && (o = { duration: Math.floor(e) });
}
let J = {
...R,
...(u ?? {}),
...(l ?? {}),
...D,
...(M ? { modeType: "image2image" } : {}),
textList: Array.isArray(s)
? s.flatMap((e) => e.content ?? [])
: [],
imageList: A,
videoList: L,
...(L.length > 0 ||
(P &&
Array.isArray(E) &&
E.some((e) => "video" === e.mediaType))
? {
videoListV2:
Array.isArray(O) && 0 !== O.length
? O.filter((e) => !!e?.url).map((e) => {
let t = { url: e.url };
return (
null != e.width && (t.width = e.width),
null != e.height && (t.height = e.height),
null != e.durationSec &&
(t.duration = parseFloat(
e.durationSec.toFixed(2),
)),
t
);
})
: [],
}
: {}),
audioList: P ? [] : T(N),
...(!P && Array.isArray(N) && N.length > 0
? {
audioListV2:
Array.isArray(N) && 0 !== N.length
? N.filter((e) => !!e?.url).map((e) => {
let t = { url: e.url };
return (
null != e.durationSec &&
(t.duration = parseFloat(
e.durationSec.toFixed(2),
)),
t
);
})
: [],
}
: {}),
...(P
? {
mixedList: E.map((e) => ({
url: e.url ?? "",
type: e.mediaType ?? "image",
})).filter((e) => !!e.url),
}
: {}),
...("video" === t &&
!(0, n.isVideoModeDeferringCameraPreset)(w.modeType) &&
Array.isArray($) &&
$.length > 0
? { cameraPresets: $.map((e) => e.prompt) }
: {}),
...o,
};
return (
"video" === t &&
(0, n.isVideoModeDeferringCameraPreset)(J.modeType) &&
("string" == typeof J.prompt &&
(J.prompt = (0, i.stripCameraPresetMentionTokens)(
J.prompt,
)),
Array.isArray(J.multi_prompt) &&
(J.multi_prompt = J.multi_prompt.map((e) => ({
...e,
prompt:
"string" == typeof e.prompt
? (0, i.stripCameraPresetMentionTokens)(e.prompt)
: e.prompt,
})))),
"video" === t &&
(0, r.stripVideoFlatParamsDisallowedBySchema)(
J,
a,
J.modeType,
),
J
);
})(e, a, c),
metadata: { node_id: o, project_id: u ?? "" },
provider: c?.modelVendor || "",
model: d,
taskType: s ?? a,
requestId: (0, t.v4)(),
};
}
function y(e) {
let t = e.data;
if (!t?.action) return null;
let i = t.generatorType === c.GeneratorType.ENHANCE;
switch (t.action) {
case c.NodeAction.TEXT_GENERATE:
return "text";
case c.NodeAction.IMAGE_GENERATE:
return i ? "enhanceImage" : "image";
case c.NodeAction.VIDEO_GENERATE:
return i ? "enhanceVideo" : "video";
case c.NodeAction.AUDIO_GENERATE:
return "audio";
case c.NodeAction.IMAGE_EDIT:
return "enhanceImage";
case c.NodeAction.VIDEO_EDIT:
return "enhanceVideo";
case c.NodeAction.SCRIPT_GENERATE:
return "text";
default:
return null;
}
}
e.s(
[
"buildRequestData",
() => $,
"getGeneratorTypeFromNode",
() => y,
"prepareImageParamsForFocusRegion",
() => h,
],
10036,
);
};
export default moduleFactory;