feat: enhance layer mask handling and opacity management
- Introduced `getLayerMask` utility to streamline layer mask retrieval. - Updated layer rendering logic to incorporate layer masks and opacity adjustments. - Added functionality to prevent dropping a group into its descendants. - Enhanced image texture rendering to support opacity parameters across various rendering functions. - Implemented group layer bounds application for better scaling and positioning. - Added tests to ensure correct behavior when handling layer masks and group layers. - Created new types for asset generation provenance to track generated assets more effectively.
This commit is contained in:
56
core/asset-provenance.ts
Normal file
56
core/asset-provenance.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
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" | "variant-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;
|
||||
Reference in New Issue
Block a user