feat: sd setting

This commit is contained in:
Dogtiti 2024-07-23 22:44:09 +08:00
parent 908ee0060f
commit 3935c725c9
6 changed files with 71 additions and 5 deletions

View File

@ -65,6 +65,7 @@ import {
ServiceProvider, ServiceProvider,
SlotID, SlotID,
UPDATE_URL, UPDATE_URL,
Stability,
} from "../constant"; } from "../constant";
import { Prompt, SearchService, usePromptStore } from "../store/prompt"; import { Prompt, SearchService, usePromptStore } from "../store/prompt";
import { ErrorBoundary } from "./error"; import { ErrorBoundary } from "./error";
@ -1041,6 +1042,45 @@ export function Settings() {
</> </>
); );
const stabilityConfigComponent = accessStore.provider ===
ServiceProvider.Stability && (
<>
<ListItem
title={Locale.Settings.Access.Stability.Endpoint.Title}
subTitle={
Locale.Settings.Access.Stability.Endpoint.SubTitle +
Stability.ExampleEndpoint
}
>
<input
type="text"
value={accessStore.stabilityUrl}
placeholder={Stability.ExampleEndpoint}
onChange={(e) =>
accessStore.update(
(access) => (access.stabilityUrl = e.currentTarget.value),
)
}
></input>
</ListItem>
<ListItem
title={Locale.Settings.Access.Stability.ApiKey.Title}
subTitle={Locale.Settings.Access.Stability.ApiKey.SubTitle}
>
<PasswordInput
value={accessStore.stabilityApiKey}
type="text"
placeholder={Locale.Settings.Access.Stability.ApiKey.Placeholder}
onChange={(e) => {
accessStore.update(
(access) => (access.stabilityApiKey = e.currentTarget.value),
);
}}
/>
</ListItem>
</>
);
return ( return (
<ErrorBoundary> <ErrorBoundary>
<div className="window-header" data-tauri-drag-region> <div className="window-header" data-tauri-drag-region>
@ -1324,6 +1364,7 @@ export function Settings() {
{baiduConfigComponent} {baiduConfigComponent}
{byteDanceConfigComponent} {byteDanceConfigComponent}
{alibabaConfigComponent} {alibabaConfigComponent}
{stabilityConfigComponent}
</> </>
)} )}
</> </>

View File

@ -116,8 +116,9 @@ export enum ModelProvider {
Qwen = "Qwen", Qwen = "Qwen",
} }
export const StabilityPath = { export const Stability = {
GeneratePath: "v2beta/stable-image/generate", GeneratePath: "v2beta/stable-image/generate",
ExampleEndpoint: "https://api.stability.ai",
}; };
export const Anthropic = { export const Anthropic = {

View File

@ -389,6 +389,17 @@ const cn = {
SubTitle: "样例:", SubTitle: "样例:",
}, },
}, },
Stability: {
ApiKey: {
Title: "接口密钥",
SubTitle: "使用自定义 Stability API Key",
Placeholder: "Stability API Key",
},
Endpoint: {
Title: "接口地址",
SubTitle: "样例:",
},
},
CustomModel: { CustomModel: {
Title: "自定义模型名", Title: "自定义模型名",
SubTitle: "增加自定义模型可选项,使用英文逗号隔开", SubTitle: "增加自定义模型可选项,使用英文逗号隔开",

View File

@ -372,6 +372,17 @@ const en: LocaleType = {
SubTitle: "Example: ", 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: { CustomModel: {
Title: "Custom Models", Title: "Custom Models",
SubTitle: "Custom model options, seperated by comma", SubTitle: "Custom model options, seperated by comma",

View File

@ -39,8 +39,6 @@ const DEFAULT_ALIBABA_URL = isApp
? DEFAULT_API_HOST + "/api/proxy/alibaba" ? DEFAULT_API_HOST + "/api/proxy/alibaba"
: ApiPath.Alibaba; : ApiPath.Alibaba;
console.log("DEFAULT_ANTHROPIC_URL", DEFAULT_ANTHROPIC_URL);
const DEFAULT_ACCESS_STATE = { const DEFAULT_ACCESS_STATE = {
accessCode: "", accessCode: "",
useCustomConfig: false, useCustomConfig: false,
@ -80,6 +78,10 @@ const DEFAULT_ACCESS_STATE = {
alibabaUrl: DEFAULT_ALIBABA_URL, alibabaUrl: DEFAULT_ALIBABA_URL,
alibabaApiKey: "", alibabaApiKey: "",
//stability
stabilityUrl: "",
stabilityApiKey: "",
// server config // server config
needCode: true, needCode: true,
hideUserApiKey: false, hideUserApiKey: false,

View File

@ -1,4 +1,4 @@
import { StabilityPath, StoreKey } from "@/app/constant"; import { Stability, StoreKey } from "@/app/constant";
import { getHeaders } from "@/app/client/api"; import { getHeaders } from "@/app/client/api";
import { createPersistStore } from "@/app/utils/store"; import { createPersistStore } from "@/app/utils/store";
import { nanoid } from "nanoid"; import { nanoid } from "nanoid";
@ -63,7 +63,7 @@ export const useSdStore = createPersistStore<
} }
const headers = getHeaders(); const headers = getHeaders();
delete headers["Content-Type"]; delete headers["Content-Type"];
fetch(`/api/stability/${StabilityPath.GeneratePath}/${data.model}`, { fetch(`/api/stability/${Stability.GeneratePath}/${data.model}`, {
method: "POST", method: "POST",
headers: { headers: {
...headers, ...headers,