import styles from "./sd-panel.module.scss"; import React, { useState } from "react"; import { Select } from "@/app/components/ui-lib"; import { IconButton } from "@/app/components/button"; import locales from "@/app/locales"; const sdCommonParams = (model: string, data: any) => { return [ { name: locales.SdPanel.Prompt, value: "prompt", type: "textarea", placeholder: locales.SdPanel.PleaseInput(locales.SdPanel.Prompt), required: true, }, { name: locales.SdPanel.NegativePrompt, value: "negative_prompt", type: "textarea", placeholder: locales.SdPanel.PleaseInput(locales.SdPanel.NegativePrompt), }, { name: locales.SdPanel.AspectRatio, value: "aspect_ratio", type: "select", default: "1:1", options: [ { name: "1:1", value: "1:1" }, { name: "2:2", value: "2:2" }, ], }, { name: locales.SdPanel.ImageStyle, value: "style", type: "select", default: "3d", support: ["core"], options: [{ name: "3D", value: "3d" }], }, { name: "Seed", value: "seed", type: "number", default: 0 }, { name: locales.SdPanel.OutFormat, value: "output_format", type: "select", default: 0, options: [ { name: "PNG", value: "png" }, { name: "JPEG", value: "jpeg" }, { name: "WebP", value: "webp" }, ], }, ].filter((item) => { return !(item.support && !item.support.includes(model)); }); }; const models = [ { name: "Stable Image Ultra", value: "ultra", params: (data: any) => sdCommonParams("ultra", data), }, { name: "Stable Image Core", value: "core", params: (data: any) => sdCommonParams("core", data), }, { name: "Stable Diffusion 3", value: "sd3", params: (data: any) => { return sdCommonParams("sd3", data); }, }, ]; export function ControlParamItem(props: { title: string; subTitle?: string; children?: JSX.Element | JSX.Element[]; className?: string; }) { return (