From 4154486169bb6b7f4ffa9444ce3d9137cbd90e0e Mon Sep 17 00:00:00 2001 From: shrimbly Date: Fri, 27 Feb 2026 23:16:39 +1300 Subject: [PATCH] feat: enable Gemini in video node's provider list Add geminiApiKey to useProviderApiKeys hook. Update GenerateVideoNode to include Gemini as a provider when API key is configured, and pass the X-Gemini-API-Key header when fetching models. Co-Authored-By: Claude Opus 4.6 --- src/components/nodes/GenerateVideoNode.tsx | 15 +++++++++++---- src/store/workflowStore.ts | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/nodes/GenerateVideoNode.tsx b/src/components/nodes/GenerateVideoNode.tsx index c9f8f2a5..dbcd2d86 100644 --- a/src/components/nodes/GenerateVideoNode.tsx +++ b/src/components/nodes/GenerateVideoNode.tsx @@ -25,7 +25,7 @@ export function GenerateVideoNode({ id, data, selected }: NodeProps state.updateNodeData); // Use stable selector for API keys to prevent unnecessary re-fetches - const { replicateApiKey, falApiKey, kieApiKey, replicateEnabled, kieEnabled } = useProviderApiKeys(); + const { geminiApiKey, replicateApiKey, falApiKey, kieApiKey, replicateEnabled, kieEnabled } = useProviderApiKeys(); const generationsPath = useWorkflowStore((state) => state.generationsPath); const [externalModels, setExternalModels] = useState([]); const [isLoadingModels, setIsLoadingModels] = useState(false); @@ -37,9 +37,13 @@ export function GenerateVideoNode({ id, data, selected }: NodeProps { const providers: { id: ProviderType; name: string }[] = []; + // Gemini available when API key is configured (settings or env var) + if (geminiApiKey) { + providers.push({ id: "gemini", name: "Gemini" }); + } // fal.ai is always available (works without key but rate limited) providers.push({ id: "fal", name: "fal.ai" }); // Add Replicate if configured @@ -51,7 +55,7 @@ export function GenerateVideoNode({ id, data, selected }: NodeProps { @@ -60,6 +64,9 @@ export function GenerateVideoNode({ id, data, selected }: NodeProps { fetchModels(); diff --git a/src/store/workflowStore.ts b/src/store/workflowStore.ts index 58ac2cf1..b119ecc7 100644 --- a/src/store/workflowStore.ts +++ b/src/store/workflowStore.ts @@ -2136,6 +2136,7 @@ export const useWorkflowStore = create()(workflowStoreImpl); export function useProviderApiKeys() { return useWorkflowStore( useShallow((state) => ({ + geminiApiKey: state.providerSettings.providers.gemini?.apiKey ?? null, replicateApiKey: state.providerSettings.providers.replicate?.apiKey ?? null, falApiKey: state.providerSettings.providers.fal?.apiKey ?? null, kieApiKey: state.providerSettings.providers.kie?.apiKey ?? null,