- 0. Curso Flutter + .NET 8 + Novita AI: índice completo
- 1. Arquitectura Flutter + backend .NET 8 con Novita AI
- 2. Configurar entorno .NET 8 + Flutter + Firebase + Novita AI
- 3. Backend .NET 8: Auth Firebase y esqueleto API
- 4. Integrar Novita AI: text-to-image e image-to-image en .NET 8
- 5. Webhook Novita y procesamiento asíncrono
- 6. Firestore, modelos y endpoints de dominio
- 7. Flutter: login Google y configuración API
- 8. Flutter: subida de imagen y creación de invitaciones
- 9. Listado, estado y detalle de invitaciones
- 10. ControlNet completo en backend y Flutter
- 11. LLM con Novita: img2prompt y adaptación de prompts
- 12. Despliegue, checklist final y publicación WordPress
- Bonus 01: vídeo con FFmpeg y flujo opcional
- Bonus 02: importador de modelos Novita a Firestore
- Bonus 03: Prompt Generator y administración básica
Actualizado: 20 de febrero de 2026.
Aquí consolidamos el dominio de invitaciones y modelos IA sobre Firestore.
Prerrequisitos
- Tener clonado o disponible
codigo/de esta serie. - Contar con Firebase y Novita configurados para pruebas.
- Haber completado el capítulo anterior del curso.
Modelo principal: Invitation
Archivo:
codigo/backend/InvitaIA.Api/Models/Invitation.cs
Campos clave:
id,status,taskIdpreviewUrl,finalUrlmodelBaseId,loraIdcontrolImageUrl,controlModelId,controlStrength,controlPreprocessor
Request principal: InvitationRequest
Archivo:
codigo/backend/InvitaIA.Api/Models/InvitationRequest.cs
Reglas:
formatyorientationrequeridos.- Debe haber
modelBaseIdoloraId. - Se admite
photoUrlopromptocontrolImageUrl.
Persistencia en Firestore
Implementación en:
codigo/backend/InvitaIA.Api/Services/FirebaseService.cs
Estructura:
users/{uid}/public_invitations/{invitationId}public_invitations/{invitationId}(copia pública)novita_models/*settings/*
Endpoints de dominio
POST /api/invitations/createGET /api/invitationsGET /api/invitations/{id}POST /api/invitations/{id}/orientationGET /api/models/baseGET /api/models/loraGET /api/models/lora/{baseModel}
Verificación rápida
cd codigo/backend
rg -n "class Invitation|class InvitationRequest|Route\(\"api/" InvitaIA.Api -S
Troubleshooting
- Firestore sin documentos: revisa credenciales de Admin SDK.
- 400 en
create: valida payload mínimo requerido. - No aparecen modelos: revisa colección
novita_models.
FAQ corta
¿Por qué guardar también en public_invitations raíz?
Para consultas globales y feed público sin hacer collectionGroup complejo en cliente.
¿Dónde se controla si una invitación es pública?
En campo isPublic y endpoint PUT /api/invitations/{id}/public.
¿ControlNet se persiste?
Sí, con campos dedicados en Invitation.
Fuente verificada
- Código del curso:
codigo/backend/InvitaIA.Api/Models/Invitation.cscodigo/backend/InvitaIA.Api/Models/InvitationRequest.cscodigo/backend/InvitaIA.Api/Services/FirebaseService.cscodigo/backend/InvitaIA.Api/Controllers/ModelsController.cs
Share this content: