{
  "ok": true,
  "engines": [
    {
      "id": "cartesia",
      "label": "Cartesia TTS",
      "group": "audio",
      "compute": "api",
      "needs": [
        "text"
      ],
      "desc": "Voz via API Cartesia (sem GPU)."
    },
    {
      "id": "kokoro",
      "label": "Kokoro TTS",
      "group": "audio",
      "compute": "cpu",
      "needs": [
        "text",
        "voice"
      ],
      "desc": "TTS local/pod CPU — todas as vozes Kokoro."
    },
    {
      "id": "f5_tts",
      "label": "F5-TTS",
      "group": "audio",
      "compute": "gpu",
      "needs": [
        "text",
        "ref_audio"
      ],
      "desc": "Clonagem de voz F5-TTS."
    },
    {
      "id": "latentsync",
      "label": "LatentSync",
      "group": "avatar",
      "compute": "gpu",
      "needs": [
        "video",
        "audio"
      ],
      "desc": "Lip-sync vídeo + áudio."
    },
    {
      "id": "liveportrait",
      "label": "LivePortrait",
      "group": "avatar",
      "compute": "gpu",
      "needs": [
        "image",
        "driving"
      ],
      "desc": "Animação facial imagem + driving video."
    },
    {
      "id": "musetalk",
      "label": "MuseTalk",
      "group": "avatar",
      "compute": "gpu",
      "needs": [
        "video",
        "audio"
      ],
      "desc": "Talking-head MuseTalk."
    },
    {
      "id": "sadtalker",
      "label": "SadTalker",
      "group": "avatar",
      "compute": "gpu",
      "needs": [
        "image",
        "audio"
      ],
      "desc": "Imagem + áudio → talking head."
    },
    {
      "id": "mimicmotion",
      "label": "MimicMotion",
      "group": "motion",
      "compute": "gpu",
      "needs": [
        "image",
        "video"
      ],
      "desc": "Transferência de movimento."
    },
    {
      "id": "musepose",
      "label": "MusePose",
      "group": "motion",
      "compute": "gpu",
      "needs": [
        "image",
        "pose"
      ],
      "desc": "Pose-driven animation."
    },
    {
      "id": "tps_motion",
      "label": "TPS-Motion",
      "group": "motion",
      "compute": "gpu",
      "needs": [
        "image",
        "video"
      ],
      "desc": "Motion transfer TPS."
    },
    {
      "id": "comfyui",
      "label": "ComfyUI",
      "group": "generate",
      "compute": "gpu",
      "needs": [
        "workflow"
      ],
      "desc": "Workflow ComfyUI completo (nodes/LoRAs/checkpoints)."
    },
    {
      "id": "ffmpeg_edit",
      "label": "Edição rápida (CPU)",
      "group": "edit",
      "compute": "cpu",
      "needs": [
        "video"
      ],
      "desc": "Corte, concat, reencode leve — CPU barata."
    },
    {
      "id": "render",
      "label": "Render vídeo",
      "group": "edit",
      "compute": "gpu",
      "needs": [
        "project"
      ],
      "desc": "Render pesado ( Remotion / encode alta qualidade )."
    },
    {
      "id": "pipeline_full",
      "label": "Pipeline completo",
      "group": "avatar",
      "compute": "gpu",
      "needs": [
        "image",
        "text"
      ],
      "desc": "TTS → LatentSync → LivePortrait (todas as etapas)."
    }
  ],
  "groups": {
    "audio": [
      {
        "id": "cartesia",
        "label": "Cartesia TTS",
        "group": "audio",
        "compute": "api",
        "needs": [
          "text"
        ],
        "desc": "Voz via API Cartesia (sem GPU)."
      },
      {
        "id": "kokoro",
        "label": "Kokoro TTS",
        "group": "audio",
        "compute": "cpu",
        "needs": [
          "text",
          "voice"
        ],
        "desc": "TTS local/pod CPU — todas as vozes Kokoro."
      },
      {
        "id": "f5_tts",
        "label": "F5-TTS",
        "group": "audio",
        "compute": "gpu",
        "needs": [
          "text",
          "ref_audio"
        ],
        "desc": "Clonagem de voz F5-TTS."
      }
    ],
    "avatar": [
      {
        "id": "latentsync",
        "label": "LatentSync",
        "group": "avatar",
        "compute": "gpu",
        "needs": [
          "video",
          "audio"
        ],
        "desc": "Lip-sync vídeo + áudio."
      },
      {
        "id": "liveportrait",
        "label": "LivePortrait",
        "group": "avatar",
        "compute": "gpu",
        "needs": [
          "image",
          "driving"
        ],
        "desc": "Animação facial imagem + driving video."
      },
      {
        "id": "musetalk",
        "label": "MuseTalk",
        "group": "avatar",
        "compute": "gpu",
        "needs": [
          "video",
          "audio"
        ],
        "desc": "Talking-head MuseTalk."
      },
      {
        "id": "sadtalker",
        "label": "SadTalker",
        "group": "avatar",
        "compute": "gpu",
        "needs": [
          "image",
          "audio"
        ],
        "desc": "Imagem + áudio → talking head."
      },
      {
        "id": "pipeline_full",
        "label": "Pipeline completo",
        "group": "avatar",
        "compute": "gpu",
        "needs": [
          "image",
          "text"
        ],
        "desc": "TTS → LatentSync → LivePortrait (todas as etapas)."
      }
    ],
    "motion": [
      {
        "id": "mimicmotion",
        "label": "MimicMotion",
        "group": "motion",
        "compute": "gpu",
        "needs": [
          "image",
          "video"
        ],
        "desc": "Transferência de movimento."
      },
      {
        "id": "musepose",
        "label": "MusePose",
        "group": "motion",
        "compute": "gpu",
        "needs": [
          "image",
          "pose"
        ],
        "desc": "Pose-driven animation."
      },
      {
        "id": "tps_motion",
        "label": "TPS-Motion",
        "group": "motion",
        "compute": "gpu",
        "needs": [
          "image",
          "video"
        ],
        "desc": "Motion transfer TPS."
      }
    ],
    "generate": [
      {
        "id": "comfyui",
        "label": "ComfyUI",
        "group": "generate",
        "compute": "gpu",
        "needs": [
          "workflow"
        ],
        "desc": "Workflow ComfyUI completo (nodes/LoRAs/checkpoints)."
      }
    ],
    "edit": [
      {
        "id": "ffmpeg_edit",
        "label": "Edição rápida (CPU)",
        "group": "edit",
        "compute": "cpu",
        "needs": [
          "video"
        ],
        "desc": "Corte, concat, reencode leve — CPU barata."
      },
      {
        "id": "render",
        "label": "Render vídeo",
        "group": "edit",
        "compute": "gpu",
        "needs": [
          "project"
        ],
        "desc": "Render pesado ( Remotion / encode alta qualidade )."
      }
    ]
  }
}