diff --git a/app/components/settings.tsx b/app/components/settings.tsx index e95722f1d..bde3a792a 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -65,6 +65,7 @@ import { ServiceProvider, SlotID, UPDATE_URL, + Stability, } from "../constant"; import { Prompt, SearchService, usePromptStore } from "../store/prompt"; import { ErrorBoundary } from "./error"; @@ -1041,6 +1042,45 @@ export function Settings() { ); + const stabilityConfigComponent = accessStore.provider === + ServiceProvider.Stability && ( + <> + + + accessStore.update( + (access) => (access.stabilityUrl = e.currentTarget.value), + ) + } + > + + + { + accessStore.update( + (access) => (access.stabilityApiKey = e.currentTarget.value), + ); + }} + /> + + + ); + return (
@@ -1324,6 +1364,7 @@ export function Settings() { {baiduConfigComponent} {byteDanceConfigComponent} {alibabaConfigComponent} + {stabilityConfigComponent} )} diff --git a/app/constant.ts b/app/constant.ts index 1065aa14a..e5da3b9e1 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -116,8 +116,9 @@ export enum ModelProvider { Qwen = "Qwen", } -export const StabilityPath = { +export const Stability = { GeneratePath: "v2beta/stable-image/generate", + ExampleEndpoint: "https://api.stability.ai", }; export const Anthropic = { diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 6370cf76f..795c04de0 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -389,6 +389,17 @@ const cn = { SubTitle: "样例:", }, }, + Stability: { + ApiKey: { + Title: "接口密钥", + SubTitle: "使用自定义 Stability API Key", + Placeholder: "Stability API Key", + }, + Endpoint: { + Title: "接口地址", + SubTitle: "样例:", + }, + }, CustomModel: { Title: "自定义模型名", SubTitle: "增加自定义模型可选项,使用英文逗号隔开", diff --git a/app/locales/en.ts b/app/locales/en.ts index 24784946c..432785173 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -372,6 +372,17 @@ const en: LocaleType = { SubTitle: "Example: ", }, }, + Stability: { + ApiKey: { + Title: "Stability API Key", + SubTitle: "Use a custom Stability API Key", + Placeholder: "Stability API Key", + }, + Endpoint: { + Title: "Endpoint Address", + SubTitle: "Example: ", + }, + }, CustomModel: { Title: "Custom Models", SubTitle: "Custom model options, seperated by comma", diff --git a/app/store/access.ts b/app/store/access.ts index 24d7e175a..a81fbd987 100644 --- a/app/store/access.ts +++ b/app/store/access.ts @@ -39,8 +39,6 @@ const DEFAULT_ALIBABA_URL = isApp ? DEFAULT_API_HOST + "/api/proxy/alibaba" : ApiPath.Alibaba; -console.log("DEFAULT_ANTHROPIC_URL", DEFAULT_ANTHROPIC_URL); - const DEFAULT_ACCESS_STATE = { accessCode: "", useCustomConfig: false, @@ -80,6 +78,10 @@ const DEFAULT_ACCESS_STATE = { alibabaUrl: DEFAULT_ALIBABA_URL, alibabaApiKey: "", + //stability + stabilityUrl: "", + stabilityApiKey: "", + // server config needCode: true, hideUserApiKey: false, diff --git a/app/store/sd.ts b/app/store/sd.ts index 4c8162b52..3c47ca57b 100644 --- a/app/store/sd.ts +++ b/app/store/sd.ts @@ -1,4 +1,4 @@ -import { StabilityPath, StoreKey } from "@/app/constant"; +import { Stability, StoreKey } from "@/app/constant"; import { getHeaders } from "@/app/client/api"; import { createPersistStore } from "@/app/utils/store"; import { nanoid } from "nanoid"; @@ -63,7 +63,7 @@ export const useSdStore = createPersistStore< } const headers = getHeaders(); delete headers["Content-Type"]; - fetch(`/api/stability/${StabilityPath.GeneratePath}/${data.model}`, { + fetch(`/api/stability/${Stability.GeneratePath}/${data.model}`, { method: "POST", headers: { ...headers,