Download example_usage.py from Ntdeseb/ntia: direct link, hf CLI and curl.
- Browser
- Download file 9.14 kB
-
https://huggingface.co/spaces/Ntdeseb/ntia/resolve/main/example_usage.py
- Command line
-
hf download hf://spaces/Ntdeseb/ntia/example_usage.py
-
curl -L -o example_usage.py https://huggingface.co/spaces/Ntdeseb/ntia/resolve/main/example_usage.py
9.14 kB
| #!/usr/bin/env python3 | |
| """ | |
| Ejemplo de uso de NTIA Assistant Enhanced con espacios de Hugging Face | |
| Este script demuestra cómo usar la nueva funcionalidad de integración | |
| """ | |
| import sys | |
| import os | |
| import time | |
| from typing import Dict, Any | |
| # Agregar el directorio actual al path | |
| sys.path.append(os.path.dirname(os.path.abspath(__file__))) | |
| try: | |
| from hf_spaces_config import get_hf_spaces_manager, generate_video_with_space, list_available_spaces | |
| print("✅ Módulos importados correctamente") | |
| except ImportError as e: | |
| print(f"❌ Error importando módulos: {e}") | |
| sys.exit(1) | |
| def example_basic_usage(): | |
| """Ejemplo básico de uso de espacios de HF""" | |
| print("\n🎯 EJEMPLO 1: Uso Básico") | |
| print("=" * 50) | |
| # Obtener el gestor de espacios | |
| manager = get_hf_spaces_manager() | |
| # Listar espacios disponibles | |
| print("📋 Espacios disponibles:") | |
| status = list_available_spaces() | |
| for space_name, space_status in status.items(): | |
| if space_status["status"] == "online": | |
| print(f" ✅ {space_name}: {space_status['message']}") | |
| else: | |
| print(f" ❌ {space_name}: {space_status['message']}") | |
| # Mostrar espacios habilitados | |
| enabled_spaces = manager.get_enabled_spaces() | |
| print(f"\n🎬 Espacios habilitados para video: {len(enabled_spaces)}") | |
| for space_name in enabled_spaces.keys(): | |
| print(f" • {space_name}") | |
| def example_video_generation(): | |
| """Ejemplo de generación de video con espacios de HF""" | |
| print("\n🎬 EJEMPLO 2: Generación de Video") | |
| print("=" * 50) | |
| # Prompt de ejemplo | |
| prompt = "Un gato espacial explorando la galaxia con estrellas brillantes" | |
| print(f"📝 Prompt: {prompt}") | |
| print("🎯 Generando video con diferentes espacios...") | |
| # Parámetros de generación | |
| params = { | |
| "num_frames": 16, | |
| "num_inference_steps": 20 | |
| } | |
| # Intentar con diferentes espacios | |
| spaces_to_try = ["NTIA-VEO3-Free", "NTIA-animated"] | |
| for space_name in spaces_to_try: | |
| print(f"\n🌐 Probando {space_name}...") | |
| try: | |
| # Verificar estado del espacio | |
| status = manager.check_space_status(space_name) | |
| if status["status"] != "online": | |
| print(f" ❌ {space_name} no está disponible: {status['message']}") | |
| continue | |
| print(f" ✅ {space_name} está en línea") | |
| print(f" 📤 Enviando solicitud...") | |
| # NOTA: Comentado para evitar llamadas reales durante la demostración | |
| # result = generate_video_with_space(space_name, prompt, **params) | |
| # print(f" 🎬 Video generado exitosamente") | |
| # print(f" 📊 Resultado: {result}") | |
| # Simular resultado | |
| print(f" 🎬 Video generado exitosamente (simulado)") | |
| print(f" 📊 Tipo: {manager.spaces_config[space_name]['type']}") | |
| print(f" ⏱️ Tiempo estimado: {manager.spaces_config[space_name]['timeout']}s") | |
| except Exception as e: | |
| print(f" ❌ Error con {space_name}: {e}") | |
| def example_advanced_configuration(): | |
| """Ejemplo de configuración avanzada""" | |
| print("\n⚙️ EJEMPLO 3: Configuración Avanzada") | |
| print("=" * 50) | |
| manager = get_hf_spaces_manager() | |
| # Mostrar configuración actual | |
| print("📊 Configuración actual de espacios:") | |
| for space_name, config in manager.spaces_config.items(): | |
| print(f"\n 🔧 {space_name}:") | |
| print(f" 📝 Tipo: {config['type']}") | |
| print(f" ⏱️ Timeout: {config['timeout']}s") | |
| print(f" 🔄 Reintentos: {config['retries']}") | |
| print(f" 📍 Estado: {'✅ Habilitado' if config['enabled'] else '❌ Deshabilitado'}") | |
| # Ejemplo de habilitar/deshabilitar espacios | |
| print(f"\n🔄 Ejemplo de gestión de espacios:") | |
| # Habilitar un espacio (si estaba deshabilitado) | |
| if manager.enable_space("NTIA-LivePortrait"): | |
| print(" ✅ NTIA-LivePortrait habilitado") | |
| else: | |
| print(" ℹ️ NTIA-LivePortrait ya estaba habilitado o no existe") | |
| # Deshabilitar un espacio temporalmente | |
| if manager.disable_space("NTIA-VEO3-Free"): | |
| print(" ⏸️ NTIA-VEO3-Free deshabilitado temporalmente") | |
| # Rehabilitar | |
| if manager.enable_space("NTIA-VEO3-Free"): | |
| print(" ✅ NTIA-VEO3-Free rehabilitado") | |
| def example_payload_customization(): | |
| """Ejemplo de personalización de payloads""" | |
| print("\n📦 EJEMPLO 4: Personalización de Payloads") | |
| print("=" * 50) | |
| manager = get_hf_spaces_manager() | |
| # Prompt de ejemplo | |
| prompt = "Un dragón volando sobre montañas nevadas al atardecer" | |
| # Diferentes configuraciones para diferentes tipos de espacios | |
| configurations = { | |
| "NTIA-VEO3-Free": { | |
| "num_frames": 24, | |
| "num_inference_steps": 30, | |
| "height": 512, | |
| "width": 512 | |
| }, | |
| "NTIA-animated": { | |
| "num_inference_steps": 25, | |
| "guidance_scale": 8.5 | |
| }, | |
| "NTIA-stable-video-diffusion": { | |
| "num_frames": 20, | |
| "num_inference_steps": 35, | |
| "guidance_scale": 9.0 | |
| } | |
| } | |
| print(f"📝 Prompt: {prompt}") | |
| print("🔧 Generando payloads personalizados...") | |
| for space_name, params in configurations.items(): | |
| if space_name in manager.spaces_config: | |
| config = manager.spaces_config[space_name] | |
| if config["enabled"]: | |
| print(f"\n 📦 {space_name} ({config['type']}):") | |
| try: | |
| payload = manager._prepare_payload(space_name, prompt, **params) | |
| print(f" ✅ Payload generado:") | |
| for key, value in payload.items(): | |
| print(f" {key}: {value}") | |
| except Exception as e: | |
| print(f" ❌ Error generando payload: {e}") | |
| def example_error_handling(): | |
| """Ejemplo de manejo de errores""" | |
| print("\n🚨 EJEMPLO 5: Manejo de Errores") | |
| print("=" * 50) | |
| manager = get_hf_spaces_manager() | |
| # Simular diferentes tipos de errores | |
| error_scenarios = [ | |
| { | |
| "space": "NTIA-VEO3-Free", | |
| "prompt": "Un gato bailando", | |
| "params": {"num_frames": 1000}, # Valor inválido | |
| "description": "Parámetros inválidos" | |
| }, | |
| { | |
| "space": "Espacio-Inexistente", | |
| "prompt": "Test", | |
| "params": {}, | |
| "description": "Espacio que no existe" | |
| }, | |
| { | |
| "space": "NTIA-LivePortrait", | |
| "prompt": "Test", | |
| "params": {}, | |
| "description": "Espacio deshabilitado" | |
| } | |
| ] | |
| for scenario in error_scenarios: | |
| print(f"\n🔍 Probando: {scenario['description']}") | |
| print(f" 📍 Espacio: {scenario['space']}") | |
| try: | |
| # Verificar si el espacio existe | |
| if scenario['space'] not in manager.spaces_config: | |
| print(f" ❌ Error: Espacio '{scenario['space']}' no encontrado") | |
| continue | |
| # Verificar si está habilitado | |
| config = manager.spaces_config[scenario['space']] | |
| if not config['enabled']: | |
| print(f" ❌ Error: Espacio '{scenario['space']}' está deshabilitado") | |
| continue | |
| # Intentar generar payload | |
| payload = manager._prepare_payload( | |
| scenario['space'], | |
| scenario['prompt'], | |
| **scenario['params'] | |
| ) | |
| print(f" ✅ Payload generado exitosamente") | |
| except ValueError as e: | |
| print(f" ❌ Error de validación: {e}") | |
| except Exception as e: | |
| print(f" ❌ Error inesperado: {e}") | |
| def main(): | |
| """Función principal del ejemplo""" | |
| print("🚀 NTIA Assistant Enhanced - Ejemplos de Uso") | |
| print("=" * 60) | |
| try: | |
| # Ejecutar ejemplos | |
| example_basic_usage() | |
| example_video_generation() | |
| example_advanced_configuration() | |
| example_payload_customization() | |
| example_error_handling() | |
| print("\n" + "=" * 60) | |
| print("🎉 ¡Ejemplos completados exitosamente!") | |
| print("\n💡 Próximos pasos:") | |
| print(" 1. Ejecuta 'python app_enhanced.py' para usar la interfaz web") | |
| print(" 2. Prueba generar videos con diferentes espacios") | |
| print(" 3. Personaliza la configuración según tus necesidades") | |
| print(" 4. Consulta README_ENHANCED.md para más información") | |
| return 0 | |
| except KeyboardInterrupt: | |
| print("\n⏹️ Ejemplos interrumpidos por el usuario.") | |
| return 1 | |
| except Exception as e: | |
| print(f"\n❌ Error inesperado: {e}") | |
| return 1 | |
| if __name__ == "__main__": | |
| exit_code = main() | |
| sys.exit(exit_code) |