@smythos/sdk
Version:
84 lines (70 loc) • 2.6 kB
text/typescript
//!!! DO NOT EDIT THIS FILE, IT IS AUTO-GENERATED !!!//
import { Agent } from '../../Agent/Agent.class';
import { createSafeAccessor } from '../utils';
import { ComponentWrapper } from '../ComponentWrapper.class';
import { InputSettings, ComponentInput } from '../../types/SDKTypes';
export interface TImageGeneratorSettings {
name?: string;
model: string;
/** Prompt */
prompt?: string;
sizeDalle2?: '256x256' | '512x512' | '1024x1024';
sizeDalle3?: '1024x1024' | '1792x1024' | '1024x1792';
quality?: 'standard' | 'hd' | 'auto' | 'high' | 'medium' | 'low';
style?: 'vivid' | 'natural';
isRawInputPrompt?: boolean;
/** Negative Prompt */
negativePrompt?: string;
width?: number;
height?: number;
outputFormat?: 'PNG' | 'JPEG' | 'WEBP' | 'auto' | 'jpeg' | 'png' | 'webp';
/** Size */
size?: string;
/** Aspect Ratio */
aspectRatio?: '1:1' | '3:4' | '4:3' | '9:16' | '16:9';
/** Person Generation */
personGeneration?: 'dont_allow' | 'allow_adult' | 'allow_all';
}
export type TImageGeneratorInputs = {
[key: string]: InputSettings;
};
export type TImageGeneratorOutputs = {
[key: string]: any;
};
export function ImageGenerator(settings?: TImageGeneratorSettings, agent?: Agent) {
//const { name, ...settingsWithoutName } = settings || {};
const dataObject: any = {
name: /*settings?.name || */'ImageGenerator',
settings: {
//...settingsWithoutName
...settings
}
};
const component = new ComponentWrapper(dataObject, agent);
if (agent) {
(agent.structure.components as ComponentWrapper[]).push(component);
agent.sync();
}
const _out: TImageGeneratorOutputs = createSafeAccessor({
// No outputs defined
}, component, '');
const _in: { [key: string]: ComponentInput } = {
// No inputs defined
};
dataObject.outputs = _out;
dataObject.inputs = _in;
component.inputs(_in);
const wrapper = {
/** Component outputs - access via .out.OutputName */
out: _out,
/**
* Create or Connect the component inputs
* if the input does not exist, it will be created
* @examples
* - component.in({ Input: source.out.data })
* - component.in({ Input: { type: 'string', source:source.out.data } })
*/
in: component.inputs.bind(component) as (inputs: TImageGeneratorInputs) => void,
};
return wrapper;
}