10. ControlNet completo en backend y Flutter

10. ControlNet completo en backend y Flutter

Actualizado: 20 de febrero de 2026.

Este capítulo añade control estructural real al resultado IA mediante ControlNet.

Prerrequisitos

  1. Tener clonado o disponible codigo/ de esta serie.
  2. Contar con Firebase y Novita configurados para pruebas.
  3. Haber completado el capítulo anterior del curso.

Qué se implementó

  1. Nuevo campo en request backend: controlPreprocessor.
  2. Persistencia en Invitation: controlPreprocessor.
  3. NovitaService.StartGenerationAsync añade request.controlnet.units cuando hay imagen guía.
  4. UI Flutter con:
    • switch activar ControlNet
    • selector de imagen guía
    • controlModelId
    • controlStrength
    • controlPreprocessor

Payload de referencia

Cuando ControlNet está activo se añade a request:

  1. controlnet.units[0].model
  2. controlnet.units[0].weight
  3. controlnet.units[0].preprocessor
  4. controlnet.units[0].image (base64)

Flujo visual

flowchart LR
    A[Flutter Create Screen] --> B[controlImage + model + strength + preprocessor]
    B --> C[POST /api/invitations/create]
    C --> D[NovitaService StartGenerationAsync]
    D --> E[request.controlnet.units]
    E --> F[Novita async task]

Verificación de código

cd codigo
rg -n "controlPreprocessor|controlnet|controlImageUrl|controlStrength" backend app -S

Prueba manual recomendada

  1. Crea una invitación sin ControlNet.
  2. Crea otra con ControlNet (misma prompt/foto).
  3. Compara composición/pose entre ambos resultados.

Troubleshooting

  1. Resultado igual al baseline: controlStrength demasiado bajo.
  2. Error API: controlModelId inválido.
  3. Imagen guía no se aplica: controlImageUrl no subió correctamente.

FAQ corta

¿ControlNet reemplaza el prompt?

No, lo condiciona; el prompt sigue siendo clave.

¿Qué valor usar para controlStrength?

Empieza en 0.8 y ajusta según rigidez deseada.

¿Es obligatorio controlPreprocessor?

No, backend inferirá uno por defecto si no se envía.

Fuente verificada

  • Código del curso:
    • codigo/backend/InvitaIA.Api/Models/InvitationRequest.cs
    • codigo/backend/InvitaIA.Api/Services/NovitaService.cs
    • codigo/app/lib/screens/create_invitation_screen.dart
  • Documentación oficial Novita:

Share this content:

Curso Flutter y .NET 8 con Novita AI: índice completo paso a paso

. Listado, estado y detalle de invitaciones 1. LLM con Novita: img2prompt y adaptación de prompts

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.