@agentdao/core
Version:
Core functionality, skills, and ready-made UI components for AgentDAO - Web3 subscriptions, content generation, social media, help support, live chat, RSS fetching, web search, and agent pricing integration
105 lines (104 loc) • 2.85 kB
TypeScript
export interface ImageGenerationConfig {
agentId: string;
agentName: string;
domain: string;
ai: {
provider: 'openai' | 'midjourney' | 'stable-diffusion';
model: string;
apiKey: string;
maxTokens?: number;
temperature?: number;
};
image: {
defaultSize?: '256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792';
defaultStyle?: 'vivid' | 'natural';
maxImages?: number;
quality?: 'standard' | 'hd';
};
integration?: {
webhooks?: {
enabled: boolean;
url: string;
};
};
analytics?: {
enabled: boolean;
tracking: string[];
};
}
export interface ImageGenerationRequest {
prompt: string;
size?: '256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792';
style?: 'vivid' | 'natural';
quality?: 'standard' | 'hd';
numImages?: number;
negativePrompt?: string;
seed?: number;
}
export interface GeneratedImage {
id: string;
url: string;
prompt: string;
size: string;
style: string;
quality: string;
createdAt: Date;
metadata: {
model: string;
provider: string;
seed?: number;
negativePrompt?: string;
};
}
export declare class ImageGenerationSkill {
private config;
constructor(config: ImageGenerationConfig);
/**
* Generate images using AI
*/
generateImages(request: ImageGenerationRequest): Promise<GeneratedImage[]>;
/**
* Generate variations of an existing image
*/
generateVariations(imageUrl: string, options?: {
size?: '256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792';
numVariations?: number;
}): Promise<GeneratedImage[]>;
/**
* Edit an existing image using AI
*/
editImage(imageUrl: string, prompt: string, options?: {
size?: '256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792';
mask?: string;
}): Promise<GeneratedImage>;
/**
* Generate images in different styles
*/
generateStyledImages(prompt: string, styles: string[], options?: {
size?: '256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792';
}): Promise<GeneratedImage[]>;
/**
* Get available image generation models
*/
getAvailableModels(): Promise<Array<{
id: string;
name: string;
provider: string;
capabilities: string[];
maxSize: string;
}>>;
/**
* Track image generation analytics
*/
private trackGeneration;
/**
* Get usage statistics
*/
getUsageStats(): Promise<{
totalGenerations: number;
totalImages: number;
averageImagesPerGeneration: number;
mostUsedSize: string;
mostUsedStyle: string;
}>;
}