Floyo = hosted ComfyUI REST API (api.floyo.ai, Bearer FLOYO_KEY): upload → POST /runs → poll → download MP4. Maps 1:1 onto the Replicate provider pattern.
Milestone 1 — one real clip end-to-end (de-risker, build first)
Phase 2 — widen the pipeline
Notes
Lip-sync = workflow templates (no separate engine). Faceswap = plate convention (no engine). Needs ffmpeg/ffprobe.
Part of epic #268 (value-first retirement). Pattern: lib/providers/replicate_provider.py + lib/video_jobs.py. Dry-run-first; --execute operator-only spend. Audit: meta/audits/2026-06-28-alex-samuel-consolidation-audit.md.
Floyo = hosted ComfyUI REST API (
api.floyo.ai, BearerFLOYO_KEY): upload → POST /runs → poll → download MP4. Maps 1:1 onto the Replicate provider pattern.Milestone 1 — one real clip end-to-end (de-risker, build first)
lib/providers/floyo_provider.py(upload/run/poll/download, dry-run gated,FLOYO_KEY) + testslib/floyo_jobs.py(plan + manifest + cost) for one workflow:wan22_endframe(start_image + end_image → clip, no audio);generate.py floyo+rafiki_floyo_*MCP +config/pricing.json+.env.example--executerun → an Andromeda clip produced via Rafiki and viewable. Acceptance gate for M1.Phase 2 — widen the pipeline
infinitetalk/multitalktemplates) + inputmapssource/→swapped/)ingest_clips.py: match/mux/provenance) + testskeyframes.json→rafiki_generate) + testsNotes
Lip-sync = workflow templates (no separate engine). Faceswap = plate convention (no engine). Needs
ffmpeg/ffprobe.Part of epic #268 (value-first retirement). Pattern:
lib/providers/replicate_provider.py+lib/video_jobs.py. Dry-run-first;--executeoperator-only spend. Audit:meta/audits/2026-06-28-alex-samuel-consolidation-audit.md.