How mherick/open-generative-ai works
Open Generative AI is a multi-studio generative-media application with hosted web and Electron desktop entry points. The principal workflow is selecting a studio, configuring a generation, submitting it through the MuAPI-facing client/API, and receiving generated media. The README also identifies workflow, agent, clipping, marketing, and other specialized studios. The graph includes the documented studio surface and the sampled desktop local-inference path; implementation details for unsampled studio internals are limited to what the tree and README support.
Main entry points: page.js Web app routes · muapi.js Studio API client · route.js App API proxy · localInferenceClient.js Local inference client
Components 26
Studio experience
- Web app routes
app/studio/[[...slug]]/page.js - Desktop shell
src/main.js - Image studio
packages/studio/src/components/ImageStudio.jsx - Video studio
packages/studio/src/components/VideoStudio.jsx - Audio studio
packages/studio/src/components/AudioStudio.jsx - Lip sync studio
packages/studio/src/components/LipSyncStudio.jsx - Cinema studio
packages/studio/src/components/CinemaStudio.jsx - Workflow studio
packages/studio/src/components/WorkflowStudio.jsx - Agent studios
packages/studio/src/components/AgentStudio.jsx - Specialized studios
packages/studio/src/components/ClippingStudio.jsx - Workflow pages
app/workflow/[id]/page.js - Agent pages
app/agents/[agent_id]/page.js
Generation services
- Studio API client
packages/studio/src/muapi.js - App API proxy
app/api/app/[[...path]]/route.js - Workflow API proxy
app/api/workflow/[[...path]]/route.js - Agent API proxy
app/api/agents/[[...path]]/route.js - Binary upload proxy
app/api/upload-binary/route.js
Desktop local AI
- Local model manager
src/components/LocalModelManager.js - Local inference client
src/lib/localInferenceClient.js - Electron IPC host
electron/main.js - Local inference providers
electron/lib/localInference.js - Wan2GP provider
electron/lib/wan2gpProvider.js
Other components
- User
- MuAPI service
- Wan2GP server
- S3 upload storage
Connections 33
- User → Web app routes: opens studio
- User → Desktop shell: opens desktop
- Web app routes → Image studio: selects studio
- Web app routes → Video studio: selects studio
- Web app routes → Audio studio: selects studio
- Web app routes → Lip sync studio: selects studio
- Web app routes → Cinema studio: selects studio
- Web app routes → Workflow studio: selects studio
- Web app routes → Agent studios: selects studio
- Web app routes → Specialized studios: selects studio
- User → Workflow pages: opens workflow
- User → Agent pages: opens agent
- Image studio → Studio API client: submits generation
- Video studio → Studio API client: submits generation
- Audio studio → Studio API client: submits generation
- Lip sync studio → Studio API client: submits generation
- Cinema studio → Studio API client: submits generation
- Studio API client → App API proxy: requests API
- App API proxy → MuAPI service: forwards request
- Workflow pages → Workflow API proxy: requests workflow
- Workflow studio → Workflow API proxy: requests workflow
- Workflow API proxy → MuAPI service: forwards request
- Agent pages → Agent API proxy: requests agent
- Agent studios → Agent API proxy: requests agent
- Agent API proxy → MuAPI service: forwards request
- Local model manager → Local inference client: manages models
- Local inference client → Electron IPC host: invokes IPC
- Electron IPC host → Local inference providers: registers handlers
- Electron IPC host → Wan2GP provider: registers handlers
- Local inference client → Wan2GP provider: dispatches generation
- Wan2GP provider → Wan2GP server: uploads and generates
- App API proxy → Binary upload proxy: redirects binary upload
- Binary upload proxy → S3 upload storage: posts file