assetmax
Version:
Manifest-driven asset management system with contract-based generation
63 lines (62 loc) • 1.59 kB
TypeScript
/**
* Universal Image Generator - Handles all supported models through a unified interface
*/
import { ModelConfig, ModelName } from './model-registry';
export interface GenerationOptions {
prompt: string;
model: ModelName;
aspectRatio?: string;
width?: number;
height?: number;
seed?: number;
outputFormat?: string;
style?: string;
guidance?: number;
steps?: number;
[key: string]: unknown;
}
export interface GenerationResult {
url: string;
model: ModelName;
cost: number;
metadata: {
prompt: string;
aspectRatio?: string;
seed?: number;
[key: string]: unknown;
};
}
export declare class UniversalImageGenerator {
private client;
constructor(apiToken?: string);
/**
* Generate image using specified model
*/
generate(options: GenerationOptions): Promise<GenerationResult>;
/**
* Prepare model-specific input parameters
*/
private prepareModelInput;
private prepareFluxInput;
private prepareGoogleInput;
private prepareByteDanceInput;
private prepareIdeogramInput;
private prepareRecraftInput;
private prepareStabilityInput;
/**
* Extract image URL from model output
*/
private extractImageUrl;
/**
* Get model information
*/
getModelInfo(modelName: ModelName): ModelConfig;
/**
* List all available models
*/
listModels(): ModelConfig[];
/**
* Check if model is available (has required API token)
*/
isModelAvailable(modelName: ModelName): boolean;
}