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:
syntaxbullet
2026-07-10 23:15:02 +02:00
parent 41bbd1e16b
commit 5e4b548ad4
80 changed files with 2114 additions and 1954 deletions

View File

@@ -1,5 +1,5 @@
import type { Rect, Size } from "./geometry";
import type { AssetId, LayerId } from "./id";
import type { AssetId, GenerationCandidateId, LayerId } from "./id";
export type GeneratedAssetMode = "text-to-image" | "image-to-image" | "inpaint" | "outpaint";
@@ -7,7 +7,7 @@ export type GeneratedAssetAcceptance = "layer" | "replacement";
export type AssetGenerationProvenance = {
kind: "generated";
candidateId: string;
candidateId: GenerationCandidateId;
mode: GeneratedAssetMode;
acceptance: GeneratedAssetAcceptance;
prompt: string;

View File

@@ -1,4 +1,9 @@
export type DocumentId = string;
export type ArtboardId = string;
export type LayerId = string;
export type AssetId = string;
declare const idBrand: unique symbol;
type OpaqueId<Brand extends string> = string & { readonly [idBrand]?: Brand };
export type DocumentId = OpaqueId<"DocumentId">;
export type ArtboardId = OpaqueId<"ArtboardId">;
export type LayerId = OpaqueId<"LayerId">;
export type AssetId = OpaqueId<"AssetId">;
export type GenerationCandidateId = OpaqueId<"GenerationCandidateId">;
export type GenerationJobId = OpaqueId<"GenerationJobId">;

View File

@@ -13,7 +13,7 @@ export type {
Transform,
Vec2D,
} from "./geometry";
export type { ArtboardId, AssetId, DocumentId, LayerId } from "./id";
export type { ArtboardId, AssetId, DocumentId, GenerationCandidateId, GenerationJobId, LayerId } from "./id";
export type { ImageLayer } from "./image-layer";
export type { Layer } from "./layer";
export type { LayerMask } from "./layer-mask";