feat: add ComfyUI integration for image generation and management
- Implemented ComfyGenerateRequest type and associated functions for generating images using various architectures and modes. - Added functions for listing generation options and handling image uploads. - Created workflows for different generation modes including SDXL, Z-Image, Z-Image Turbo, and Anima. - Introduced GenerationJobStatus component to display the status of ongoing generation jobs. - Developed MaskControls for managing mask operations and displaying mask analysis. - Created palette items for tool selection, layer management, and generation settings.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { createInitialAppState } from "@editor/initial-state";
|
||||
import { generationStartJobCommand, generationSucceedJobCommand } from "./generation";
|
||||
import { createAppStore } from "@editor/store";
|
||||
import { documentAddArtboardCommand } from "./document";
|
||||
import { historyCommands } from "./history";
|
||||
@@ -7,7 +8,7 @@ import { commandIds } from "./ids";
|
||||
import { createCommandRegistry } from "./registry";
|
||||
import { transformCommands } from "./transform";
|
||||
|
||||
const registry = createCommandRegistry([documentAddArtboardCommand, ...historyCommands, ...transformCommands]);
|
||||
const registry = createCommandRegistry([documentAddArtboardCommand, generationStartJobCommand, generationSucceedJobCommand, ...historyCommands, ...transformCommands]);
|
||||
|
||||
describe("history commands", () => {
|
||||
test("records document changes and undoes/redoes them", () => {
|
||||
@@ -97,6 +98,17 @@ describe("history commands", () => {
|
||||
expect(store.getState().document.artboards[0]?.bounds).toEqual({ x: 0, y: 0, w: 100, h: 80 });
|
||||
expect(store.getState().history.past).toHaveLength(0);
|
||||
});
|
||||
|
||||
test("does not rewind generation job lifecycle during document undo", () => {
|
||||
const store = createAppStore(createInitialAppState("Test"), registry);
|
||||
store.dispatch(commandIds.documentAddArtboard, { id: "a1", name: "Artboard", bounds: { x: 0, y: 0, w: 100, h: 100 } });
|
||||
store.dispatch(commandIds.generationStartJob, { jobId: "job-1", kind: "generate", label: "Generating", startedAt: 100 });
|
||||
store.dispatch(commandIds.generationSucceedJob, { jobId: "job-1", finishedAt: 150 });
|
||||
|
||||
store.dispatch(commandIds.historyUndo, undefined);
|
||||
|
||||
expect(store.getState().editor.generation.jobs[0]?.status).toBe("succeeded");
|
||||
});
|
||||
});
|
||||
|
||||
function artboardState() {
|
||||
|
||||
Reference in New Issue
Block a user