From b1a026bdd15687d24af0fe9376d229beb9265094 Mon Sep 17 00:00:00 2001 From: Enrico Ros Date: Sat, 26 Jul 2025 11:05:34 -0700 Subject: [PATCH] Prodia: remove for now as the API keeps changing and is not a good default for our users - may put this back anytime (#786) --- README.md | 2 +- docs/README.md | 2 +- docs/environment-variables.md | 4 ---- docs/k8s/env-secret.yaml | 3 --- src/apps/chat/components/message/ChatMessage.tsx | 2 +- src/apps/draw/create/ZeroDrawConfig.tsx | 2 +- src/apps/news/news.data.tsx | 1 - src/common/chat-overlay/ConversationHandler.ts | 2 +- src/common/components/useCapabilities.ts | 2 +- src/modules/backend/backend.router.ts | 1 - src/modules/backend/store-backend-capabilities.ts | 2 -- src/modules/t2i/T2ISettings.tsx | 2 +- src/modules/t2i/t2i.client.ts | 4 +++- src/modules/t2i/t2i.server.ts | 1 - src/server/env.ts | 3 --- 15 files changed, 10 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 1c6a0aef5..2d01836a4 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ You can easily configure 100s of AI models in big-AGI: | Local Servers | [LM Studio](https://lmstudio.ai/) | | Multimodal services | [Azure](https://azure.microsoft.com/en-us/products/ai-services/openai-service) · [Anthropic](https://anthropic.com) · [Google Gemini](https://ai.google.dev/) · [OpenAI](https://platform.openai.com/docs/overview) | | Language services | [Alibaba](https://www.alibabacloud.com/en/product/modelstudio) · [DeepSeek](https://deepseek.com) · [Groq](https://wow.groq.com/) · [Mistral](https://mistral.ai/) · [OpenRouter](https://openrouter.ai/) · [Perplexity](https://www.perplexity.ai/) · [Together AI](https://www.together.ai/) | -| Image services | [Prodia](https://prodia.com/) (SDXL) | +| Image services | OpenAI, ... | | Speech services | [ElevenLabs](https://elevenlabs.io) (Voice synthesis / cloning) | Add extra functionality with these integrations: diff --git a/docs/README.md b/docs/README.md index f8bb6e3b4..049808820 100644 --- a/docs/README.md +++ b/docs/README.md @@ -40,7 +40,7 @@ How to set up AI models and features in big-AGI. - **Enhanced AI Features**: - **[Web Browsing](config-feature-browse.md)**: Enable web page download through third-party services or your own cloud - **Web Search**: Google Search API (see '[Environment Variables](environment-variables.md)') - - **Image Generation**: GPT Image (gpt-image-1), DALL·E 3 and 2, or Prodia API for Stable Diffusion XL + - **Image Generation**: GPT Image (gpt-image-1), DALL·E 3 and 2 - **Voice Synthesis**: ElevenLabs API for voice generation ## Deployment & Customization diff --git a/docs/environment-variables.md b/docs/environment-variables.md index e28019d58..cfb53e8ca 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -56,8 +56,6 @@ GOOGLE_CSE_ID= ELEVENLABS_API_KEY= ELEVENLABS_API_HOST= ELEVENLABS_VOICE_ID= -# Text-To-Image: Prodia -PRODIA_API_KEY= # Backend HTTP Basic Authentication (see `deploy-authentication.md` for turning on authentication) HTTP_BASIC_AUTH_USERNAME= @@ -133,8 +131,6 @@ Enable the app to Talk, Draw, and Google things up. | `ELEVENLABS_API_KEY` | ElevenLabs API Key - used for calls, etc. | | `ELEVENLABS_API_HOST` | Custom host for ElevenLabs | | `ELEVENLABS_VOICE_ID` | Default voice ID for ElevenLabs | -| **Text-To-Image** | [Prodia](https://prodia.com/) is a reliable image generation service | -| `PRODIA_API_KEY` | Prodia API Key - used with '/imagine ...' | | **Google Custom Search** | [Google Programmable Search Engine](https://programmablesearchengine.google.com/about/) produces links to pages | | `GOOGLE_CLOUD_API_KEY` | Google Cloud API Key, used with the '/react' command - [Link to GCP](https://console.cloud.google.com/apis/credentials) | | `GOOGLE_CSE_ID` | Google Custom/Programmable Search Engine ID - [Link to PSE](https://programmablesearchengine.google.com/) | diff --git a/docs/k8s/env-secret.yaml b/docs/k8s/env-secret.yaml index 8d113a143..07619969a 100644 --- a/docs/k8s/env-secret.yaml +++ b/docs/k8s/env-secret.yaml @@ -46,6 +46,3 @@ stringData: ELEVENLABS_API_KEY: "" ELEVENLABS_API_HOST: "" ELEVENLABS_VOICE_ID: "" - - # Text-To-Image: Prodia - PRODIA_API_KEY: "" diff --git a/src/apps/chat/components/message/ChatMessage.tsx b/src/apps/chat/components/message/ChatMessage.tsx index c144841c9..22f758d44 100644 --- a/src/apps/chat/components/message/ChatMessage.tsx +++ b/src/apps/chat/components/message/ChatMessage.tsx @@ -226,7 +226,7 @@ export function ChatMessage(props: { const handleHighlightSelText = useSelHighlighterMemo(messageId, selText, contentFragments, fromAssistant, props.onMessageFragmentReplace); const textSubject = selText ? selText : fragmentFlattenedText; - const isSpecialT2I = textSubject.startsWith('https://images.prodia.xyz/') || textSubject.startsWith('/draw ') || textSubject.startsWith('/imagine ') || textSubject.startsWith('/img '); + const isSpecialT2I = textSubject.startsWith('/draw ') || textSubject.startsWith('/imagine ') || textSubject.startsWith('/img '); const couldDiagram = textSubject.length >= 100 && !isSpecialT2I; const couldImagine = textSubject.length >= 3 && !isSpecialT2I; const couldSpeak = couldImagine; diff --git a/src/apps/draw/create/ZeroDrawConfig.tsx b/src/apps/draw/create/ZeroDrawConfig.tsx index 706893d93..ddde0baae 100644 --- a/src/apps/draw/create/ZeroDrawConfig.tsx +++ b/src/apps/draw/create/ZeroDrawConfig.tsx @@ -20,7 +20,7 @@ export function ZeroDrawConfig() { AI Text-to-Image does not seem available.
- Please configure one service, such as an OpenAI LLM service, or the Prodia service. + Please configure one service, such as an OpenAI LLM service.
diff --git a/src/apps/news/news.data.tsx b/src/apps/news/news.data.tsx index bac278777..2b8cc8add 100644 --- a/src/apps/news/news.data.tsx +++ b/src/apps/news/news.data.tsx @@ -278,7 +278,6 @@ export const NewsItems: NewsItem[] = [ { text: <>Text Tools including highlight differences }, { text: <>Mermaid Diagramming Rendering }, { text: <>OpenAI 1106 Chat Models }, - { text: <>SDXL support with Prodia }, { text: <>Cloudflare OpenAI API Gateway }, { text: <>Helicone for Anthropic }, ], diff --git a/src/common/chat-overlay/ConversationHandler.ts b/src/common/chat-overlay/ConversationHandler.ts index e296dd3eb..b33e0b613 100644 --- a/src/common/chat-overlay/ConversationHandler.ts +++ b/src/common/chat-overlay/ConversationHandler.ts @@ -138,7 +138,7 @@ export class ConversationHandler { /** * @param text assistant text - * @param generatorName LlmId or string, such as 'DALL·E' | 'Prodia' | 'react-...' | 'web' + * @param generatorName LlmId or string, such as 'GPT Image' | 'DALL·E' | 'react-...' | 'web' */ messageAppendAssistantText(text: string, generatorName: Extract['name']): void { const message = createDMessageTextContent('assistant', text); diff --git a/src/common/components/useCapabilities.ts b/src/common/components/useCapabilities.ts index b2014d4b0..64320a5a9 100644 --- a/src/common/components/useCapabilities.ts +++ b/src/common/components/useCapabilities.ts @@ -40,7 +40,7 @@ export interface TextToImageProvider { vendor: TextToImageVendor; // UI attributes label: string; // e.g. 'OpenAI #2' - painter: string; // e.g. 'GPT Image', 'DALL·E' or 'Prodia' + painter: string; // e.g. 'GPT Image', 'DALL·E', 'Grok', ... description: string; configured: boolean; } diff --git a/src/modules/backend/backend.router.ts b/src/modules/backend/backend.router.ts index 83beff34c..8bea7e078 100644 --- a/src/modules/backend/backend.router.ts +++ b/src/modules/backend/backend.router.ts @@ -68,7 +68,6 @@ export const backendRouter = createTRPCRouter({ hasDB: (!!env.MDB_URI) || (!!env.POSTGRES_PRISMA_URL && !!env.POSTGRES_URL_NON_POOLING), hasBrowsing: !!env.PUPPETEER_WSS_ENDPOINT, hasGoogleCustomSearch: !!env.GOOGLE_CSE_ID && !!env.GOOGLE_CLOUD_API_KEY, - hasImagingProdia: !!env.PRODIA_API_KEY, hasVoiceElevenLabs: !!env.ELEVENLABS_API_KEY, // hashes hashLlmReconfig: generateLlmEnvConfigHash(env), diff --git a/src/modules/backend/store-backend-capabilities.ts b/src/modules/backend/store-backend-capabilities.ts index d454ea66c..e0f904da3 100644 --- a/src/modules/backend/store-backend-capabilities.ts +++ b/src/modules/backend/store-backend-capabilities.ts @@ -28,7 +28,6 @@ export interface BackendCapabilities { hasDB: boolean; hasBrowsing: boolean; hasGoogleCustomSearch: boolean; - hasImagingProdia: boolean; hasVoiceElevenLabs: boolean; // hashes hashLlmReconfig: string; @@ -68,7 +67,6 @@ const useBackendCapabilitiesStore = create()( hasDB: false, hasBrowsing: false, hasGoogleCustomSearch: false, - hasImagingProdia: false, hasVoiceElevenLabs: false, hashLlmReconfig: '', build: undefined, diff --git a/src/modules/t2i/T2ISettings.tsx b/src/modules/t2i/T2ISettings.tsx index d42cb0305..505d2dfb7 100644 --- a/src/modules/t2i/T2ISettings.tsx +++ b/src/modules/t2i/T2ISettings.tsx @@ -38,7 +38,7 @@ export function T2ISettings() { There are no configured services for text-to-image generation. - Please configure one service, such as an OpenAI LLM service, or the Prodia service below. + Please configure one service, such as an OpenAI LLM service, below. ) : ( diff --git a/src/modules/t2i/t2i.client.ts b/src/modules/t2i/t2i.client.ts index 5e223cc6f..e65ece7cc 100644 --- a/src/modules/t2i/t2i.client.ts +++ b/src/modules/t2i/t2i.client.ts @@ -2,7 +2,6 @@ import * as React from 'react'; import type { AixParts_InlineImagePart } from '~/modules/aix/server/api/aix.wiretypes'; import type { ModelVendorId } from '~/modules/llms/vendors/vendors.registry'; -import { getBackendCapabilities } from '~/modules/backend/store-backend-capabilities'; import { resolveDalleModelId, useDalleStore } from '~/modules/t2i/dalle/store-module-dalle'; import { addDBImageAsset, DBlobDBScopeId } from '~/common/stores/blob/dblobs-portability'; @@ -251,6 +250,9 @@ function _getTextToImageProviders(llmsModelServices: T2ILlmsModelServices[]) { } } + // Insert other services here if needed (non-LLM/Service based) + // ... (e.g. we used to have Prodia here) + // Sort providers by vendor priority (then by label for deterministic ordering) return providers.sort((a, b) => { const priorityA = T2I_VENDOR_PRIORITIES[a.vendor] ?? 999; diff --git a/src/modules/t2i/t2i.server.ts b/src/modules/t2i/t2i.server.ts index 2adb57c1a..aff8d137a 100644 --- a/src/modules/t2i/t2i.server.ts +++ b/src/modules/t2i/t2i.server.ts @@ -58,7 +58,6 @@ export function getImageInformationFromBytes(arrayBuffer: ArrayBuffer): { width: /** * Low-level function to extract the dimensions of a PNG image from its bytes. - * Used by Prodia to qualify the generated PNG. */ export function getPngDimensionsFromBytes(arrayBuffer: ArrayBuffer) { const dataView = new DataView(arrayBuffer); diff --git a/src/server/env.ts b/src/server/env.ts index 1b9c72c67..3a2190c15 100644 --- a/src/server/env.ts +++ b/src/server/env.ts @@ -86,9 +86,6 @@ export const env = createEnv({ ELEVENLABS_API_HOST: z.url().optional(), ELEVENLABS_VOICE_ID: z.string().optional(), - // Text-To-Image: Prodia - PRODIA_API_KEY: z.string().optional(), - // Backend: HTTP Basic Authentication HTTP_BASIC_AUTH_USERNAME: z.string().optional(),