forge/backend/list_models.py
DJP d7852fc399 feat: Complete Veo support and UI enhancements
- Backend:
  - Implemented robust Veo video generation including 'lastFrame' and 'referenceImages' support
  - Fixed video URI extraction with recursive search for API response stability
  - Implemented direct HTTP video download to resolve SDK method missing errors
- Frontend (Video Generator):
  - Updated validation to allow Text-to-Video for Veo without requiring a first frame
  - Fixed job state clearing to prevent UI from showing previous completion status
- Frontend (My Files & Library):
  - Moved batch actions toolbar to bottom-left to prevent blocking pagination
  - Added 'Deselect All' button to batch actions toolbar
  - Added file type indicators to asset cards
- Components:
  - Added 'Clear Finished' button to Active Jobs tracker
  - Updated Asset Library modal toolbar positioning
2025-12-11 15:43:55 -05:00

39 lines
1.2 KiB
Python

import httpx
import asyncio
import os
import sys
# Add current directory to path to find app module if needed
sys.path.append(os.getcwd())
try:
from app.config import settings
api_key = settings.google_api_key
except ImportError:
# Try reading .env manually if app config fails
print("Could not import settings, checking env...")
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("GOOGLE_API_KEY")
if not api_key:
print("No API Key found")
sys.exit(1)
async def check_models():
url = f"https://generativelanguage.googleapis.com/v1beta/models?key={api_key}"
async with httpx.AsyncClient() as client:
resp = await client.get(url)
if resp.status_code != 200:
print(f"Error: {resp.status_code} {resp.text}")
return
data = resp.json()
print(f"Found {len(data.get('models', []))} models.")
for m in data.get('models', []):
if 'veo' in m['name'].lower() or 'video' in m['name'].lower():
print(f"Model: {m['name']}")
print(f" - Methods: {m.get('supportedGenerationMethods')}")
if __name__ == "__main__":
asyncio.run(check_models())