Browse Source

清洗旧字段

feature/071
yun 2 weeks ago
parent
commit
a8e40369eb
  1. 2
      src/components/nodes/nodeHeaderMedia.ts
  2. 3
      src/store/execution/generate3dExecutor.ts
  3. 27
      src/utils/__tests__/composerPricing.test.ts
  4. 24
      src/utils/__tests__/generationConfig.test.ts

2
src/components/nodes/nodeHeaderMedia.ts

@ -95,7 +95,7 @@ export function getNodeHeaderMediaMeta(
return { return {
kind: "video", kind: "video",
name: data.outputVideoRef || item?.id || fallbackTitle, name: data.outputVideoRef || item?.id || fallbackTitle,
dimensions: data.resolution, dimensions: undefined,
}; };
} }

3
src/store/execution/generate3dExecutor.ts

@ -108,12 +108,9 @@ export async function executeGenerate3D(
const generationConfig: GenerationNodeConfig = { const generationConfig: GenerationNodeConfig = {
prompt: promptText || "", prompt: promptText || "",
aspectRatio: "16:9",
resolution: "",
selectedModel: modelToUse, selectedModel: modelToUse,
inputImages: images, inputImages: images,
imageCount: 1, imageCount: 1,
durationSeconds: 0,
referenceSubjectList: nodeData.referenceSubjectList ?? [], referenceSubjectList: nodeData.referenceSubjectList ?? [],
parameters: parametersOverride ?? nodeData.parameters ?? {}, parameters: parametersOverride ?? nodeData.parameters ?? {},
extraTaskParams: nodeData.extraTaskParams ?? {}, extraTaskParams: nodeData.extraTaskParams ?? {},

27
src/utils/__tests__/composerPricing.test.ts

@ -21,14 +21,12 @@ function model(overrides: Partial<SelectedModel> = {}): SelectedModel {
function draft(overrides: Partial<GenerationNodeConfig> = {}): GenerationNodeConfig { function draft(overrides: Partial<GenerationNodeConfig> = {}): GenerationNodeConfig {
return { return {
prompt: "prompt", prompt: "prompt",
aspectRatio: "16:9",
resolution: "1080p",
selectedModel: model(), selectedModel: model(),
inputImages: [], inputImages: [],
imageCount: 1, imageCount: 1,
durationSeconds: 6, referenceSubjectList: [],
soundEnabled: true,
parameters: {}, parameters: {},
extraTaskParams: {},
...overrides, ...overrides,
}; };
} }
@ -39,20 +37,17 @@ describe("composerPricing", () => {
selectedModel: model({ selectedModel: model({
modelId: "123", modelId: "123",
displayName: "Token billed video", displayName: "Token billed video",
metadata: { billingMethod: 2,
billingMethod: 2, aiModelCode: "video-code",
aiModelCode: "video-code", aiModelCodeAlias: "video-alias",
aiModelCodeAlias: "video-alias",
},
}), }),
resolution: "", parameters: { duration: 8 },
durationSeconds: 8,
}), "video", 12); }), "video", 12);
expect(payload).toEqual({ expect(payload).toEqual({
model_name: "video-alias", model_name: "video-alias",
estimation_type: "auto", estimation_type: "auto",
parameters: {}, parameters: { duration: 8 },
imageCount: 1, imageCount: 1,
input_video_duration_seconds: 12, input_video_duration_seconds: 12,
}); });
@ -67,22 +62,22 @@ describe("composerPricing", () => {
it("uses PopiServer estimate only for billingMethod 2 or Seedance models", () => { it("uses PopiServer estimate only for billingMethod 2 or Seedance models", () => {
expect(buildPopiserverPointsEstimatePayload(draft({ expect(buildPopiserverPointsEstimatePayload(draft({
selectedModel: model({ metadata: { billingMethod: 2 } }), selectedModel: model({ billingMethod: 2 }),
}), "image", 0)).not.toBeNull(); }), "image", 0)).not.toBeNull();
expect(buildPopiserverPointsEstimatePayload(draft({ expect(buildPopiserverPointsEstimatePayload(draft({
selectedModel: model({ metadata: { billingMethod: 1 } }), selectedModel: model({ billingMethod: 1 }),
}), "image", 0)).toBeNull(); }), "image", 0)).toBeNull();
expect(buildPopiserverPointsEstimatePayload(draft({ expect(buildPopiserverPointsEstimatePayload(draft({
selectedModel: model({ selectedModel: model({
displayName: "Seedance Pro", displayName: "Seedance Pro",
metadata: { billingMethod: 1 }, billingMethod: 1,
}), }),
}), "video", 0)).not.toBeNull(); }), "video", 0)).not.toBeNull();
}); });
it("builds unified PopiServer quote requests", () => { it("builds unified PopiServer quote requests", () => {
const pointsPayload = buildPopiserverPointsEstimatePayload(draft({ const pointsPayload = buildPopiserverPointsEstimatePayload(draft({
selectedModel: model({ metadata: { billingMethod: 2 } }), selectedModel: model({ billingMethod: 2 }),
}), "image", 0); }), "image", 0);
const taskPricePayload = { aiModelId: 32 }; const taskPricePayload = { aiModelId: 32 };

24
src/utils/__tests__/generationConfig.test.ts

@ -18,18 +18,24 @@ describe("generationConfig", () => {
it("reads video generation config from node fields", () => { it("reads video generation config from node fields", () => {
const data = { const data = {
inputPrompt: "legacy prompt", inputPrompt: "legacy prompt",
inputImages: [],
outputVideo: null,
selectedModel: { selectedModel: {
...defaultModel, ...defaultModel,
metadata: { aiModelId: 42 }, aiModelId: 42,
}, },
parameters: { resolution: "720p" }, parameters: { resolution: "720p" },
status: "idle",
error: null,
videoHistory: [],
selectedVideoHistoryIndex: 0,
} as GenerateVideoNodeData; } as GenerateVideoNodeData;
const config = readVideoGenerationConfig(data, defaultModel); const config = readVideoGenerationConfig(data, defaultModel);
expect(config.prompt).toBe("legacy prompt"); expect(config.prompt).toBe("legacy prompt");
expect(config.parameters).toEqual({ resolution: "720p" }); expect(config.parameters).toEqual({ resolution: "720p" });
expect(config.selectedModel.metadata).toEqual({ aiModelId: 42 }); expect(config.selectedModel.aiModelId).toBe(42);
}); });
it("creates video node data with clean stored parameters", () => { it("creates video node data with clean stored parameters", () => {
@ -85,21 +91,21 @@ describe("generationConfig", () => {
modelId: "37", modelId: "37",
displayName: "Popi Video", displayName: "Popi Video",
capabilities: ["text-to-video"], capabilities: ["text-to-video"],
metadata: { billingMethod: 1,
billingMethod: 1, aiModelId: 37,
aiModelId: 37, type: 2,
type: 2, subType: 203,
subType: 203, aiModelCode: "seedance",
aiModelCode: "seedance",
},
}, },
inputImages: [], inputImages: [],
imageCount: 4, imageCount: 4,
referenceSubjectList: [],
parameters: { parameters: {
resolution: "720p", resolution: "720p",
duration: 4, duration: 4,
videoRatio: 20, videoRatio: 20,
}, },
extraTaskParams: {},
}, },
"video" "video"
) )

Loading…
Cancel
Save