57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import type { Rect, Size } from "./geometry";
|
|
import type { AssetId, LayerId } from "./id";
|
|
|
|
export type GeneratedAssetMode = "text-to-image" | "image-to-image" | "inpaint" | "outpaint";
|
|
|
|
export type GeneratedAssetAcceptance = "layer" | "replacement";
|
|
|
|
export type AssetGenerationProvenance = {
|
|
kind: "generated";
|
|
candidateId: string;
|
|
mode: GeneratedAssetMode;
|
|
acceptance: GeneratedAssetAcceptance;
|
|
prompt: string;
|
|
negativePrompt: string;
|
|
seed: number;
|
|
outputSize: Size;
|
|
settings: {
|
|
architecture: string;
|
|
model: string;
|
|
textEncoder: string;
|
|
vae: string;
|
|
strength: number;
|
|
steps: number;
|
|
cfg: number;
|
|
sampler: string;
|
|
scheduler: string;
|
|
width: number;
|
|
height: number;
|
|
};
|
|
inpaint?: {
|
|
targetLayerId: LayerId;
|
|
maskLayerId: LayerId;
|
|
sourceAssetId: AssetId;
|
|
maskAssetId: AssetId;
|
|
crop: {
|
|
assetBounds: Rect;
|
|
documentBounds: Rect;
|
|
padding: number;
|
|
maskedAreaOnly: boolean;
|
|
};
|
|
mask: {
|
|
polarity: "hidden" | "revealed";
|
|
activeBounds: Rect;
|
|
};
|
|
backend: {
|
|
growMaskBy: number;
|
|
maskedContent: string;
|
|
maskBlur: number;
|
|
maskFeather: number;
|
|
maskExpand: number;
|
|
cropPadding: number;
|
|
};
|
|
};
|
|
};
|
|
|
|
export type AssetProvenance = AssetGenerationProvenance;
|