Bladeren bron

feat: sd setting

Dogtiti 1 jaar geleden
bovenliggende
commit
3935c725c9
6 gewijzigde bestanden met toevoegingen van 71 en 5 verwijderingen
  1. 41 0
      app/components/settings.tsx
  2. 2 1
      app/constant.ts
  3. 11 0
      app/locales/cn.ts
  4. 11 0
      app/locales/en.ts
  5. 4 2
      app/store/access.ts
  6. 2 2
      app/store/sd.ts

+ 41 - 0
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 && (
+    <>
+      <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 (
     <ErrorBoundary>
       <div className="window-header" data-tauri-drag-region>
@@ -1324,6 +1364,7 @@ export function Settings() {
                   {baiduConfigComponent}
                   {byteDanceConfigComponent}
                   {alibabaConfigComponent}
+                  {stabilityConfigComponent}
                 </>
               )}
             </>

+ 2 - 1
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 = {

+ 11 - 0
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: "增加自定义模型可选项,使用英文逗号隔开",

+ 11 - 0
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",

+ 4 - 2
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,

+ 2 - 2
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,