mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-05 15:20:40 +08:00
Google's TTS and Imagen tools advertised service-account auth
(GOOGLE_APPLICATION_CREDENTIALS) but only ever authenticated with an API
key string, so users with a service-account JSON could not use either tool.
google_tts.get_status() also over-reported availability when the JSON was
set, then failed at execute() — a silent-availability bug.
Separately, both hand-rolled _load_dotenv parsers kept inline comments as
values, so after `cp .env.example .env` every keyed tool falsely reported
"available" with no real credentials.
Changes:
- Add tools/google_credentials.py: lazy google-auth Bearer-token helper.
- google_tts: authenticate via Cloud TTS Bearer token when only a service
account is configured; make get_status() honest.
- google_imagen: route service-account auth to Vertex AI
({location}-aiplatform.googleapis.com) with project/location resolution,
alongside the existing AI Studio API-key path.
- Fix both _load_dotenv parsers to strip inline comments (quote-aware).
- Add google-auth to requirements; document the new env vars in .env.example.
- .gitignore: never commit GCP service-account key files.
Verified locally with a real service account: TTS produced a valid MP3 and
Imagen produced a valid 1408x768 PNG via Vertex AI. Existing test suite
passes (2 unrelated pre-existing failures only).
Closes #131
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
2.5 KiB
Plaintext
46 lines
2.5 KiB
Plaintext
# OpenMontage - Environment Variables
|
|
# Copy this to .env and fill in your keys
|
|
|
|
# --- Image + video gateway ---
|
|
FAL_KEY= # FLUX images, Google Veo video, Kling video, MiniMax video, Recraft images
|
|
# Get one at https://fal.ai/dashboard/keys
|
|
|
|
# --- Google (one key unlocks image gen + TTS) ---
|
|
GOOGLE_API_KEY= # Google Imagen images, Google Cloud TTS (700+ voices, 50+ languages)
|
|
# Get one at https://aistudio.google.com/apikey
|
|
# Alternative to the API key: service-account JSON auth.
|
|
# TTS uses Cloud Text-to-Speech; Imagen routes to Vertex AI.
|
|
GOOGLE_APPLICATION_CREDENTIALS= # path to a service-account JSON key file
|
|
GOOGLE_CLOUD_PROJECT= # GCP project id (required for Imagen via Vertex AI)
|
|
GOOGLE_CLOUD_LOCATION= # Vertex AI region, default us-central1
|
|
|
|
# --- Voice ---
|
|
ELEVENLABS_API_KEY= # TTS narration, music generation, sound effects
|
|
OPENAI_API_KEY= # OpenAI TTS fallback and DALL-E image generation
|
|
XAI_API_KEY= # Grok image generation/editing and Grok video generation
|
|
DOUBAO_SPEECH_API_KEY= # Volcengine Doubao Speech TTS (new console API Key)
|
|
DOUBAO_SPEECH_VOICE_TYPE= # Default Doubao speaker/voice type, e.g. zh_female_vv_uranus_bigtts
|
|
# Piper local voices do not require env vars; install `piper-tts` via pip
|
|
|
|
# --- Music ---
|
|
SUNO_API_KEY= # Suno AI music generation (full songs, instrumentals, any genre)
|
|
|
|
# --- Video Generation ---
|
|
HEYGEN_API_KEY= # HeyGen API (VEO, Sora, Runway, Kling, Seedance via single key)
|
|
RUNWAY_API_KEY= # Runway Gen-4 (direct API, alternative to fal.ai routing)
|
|
VIDEO_GEN_LOCAL_ENABLED= # Set to "true" for local video gen (needs GPU + diffusers)
|
|
VIDEO_GEN_LOCAL_MODEL= # Local model: wan2.1-1.3b, wan2.1-14b, hunyuan-1.5, ltx2-local, cogvideo-5b
|
|
MODAL_LTX2_ENDPOINT_URL= # Modal self-hosted LTX-2 endpoint (optional)
|
|
|
|
# --- Stock Media ---
|
|
PEXELS_API_KEY= # Pexels stock footage/images (free)
|
|
PIXABAY_API_KEY= # Pixabay stock footage/images (free)
|
|
UNSPLASH_ACCESS_KEY= # Unsplash stock images (free developer key)
|
|
|
|
# --- Analysis ---
|
|
HF_TOKEN= # HuggingFace token — enables speaker diarization in transcriber
|
|
|
|
# --- Avatar (local installs) ---
|
|
# WAV2LIP_PATH= # Path to cloned Wav2Lip repo (for lip sync)
|
|
# SADTALKER_PATH= # Path to cloned SadTalker repo (for talking head avatars)
|