Repository Analysis

Anil-matcha/Open-Generative-AI

Open-source alternative to AI video platforms — Free AI image & video generation studio with 200+ models (Flux, Midjourney, Kling, Sora, Veo). No content filters. Self-hosted, MIT licensed.

10.5 Low AI signal View on GitHub
10.5
Adjusted Score
10.5
Raw Score
100%
Time Factor
2026-05-26
Last Push
17,516
Stars
JavaScript
Language
56,960
Lines of Code
104
Files
195
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 1MEDIUM 184LOW 10

Pattern Findings

195 matches across 5 categories. Click a row to expand file-level details.

Decorative Section Separators184 hits · 582 pts
SeverityFileLineSnippet
MEDIUMscripts/test_minimax_provider.js21// ── 1. Model registration check ──────────────────────────────────────────────
MEDIUMscripts/test_minimax_provider.js89// ── 2. models_dump.json check ─────────────────────────────────────────────────
MEDIUMscripts/test_minimax_provider.js103// ── 3. Live API smoke test (optional) ────────────────────────────────────────
MEDIUMpackages/studio/src/models.js7895// ─── Video-to-Video models ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/models.js7939// ─── LipSync / Speech-to-Video models ────────────────────────────────────────
MEDIUMpackages/studio/src/models.js7943 // ── Image + Audio → Video ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/models.js8017 // ── Video + Audio → Video ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/models.js8087// ── Audio Models ──────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx763 // ── Prompt / upload state ───────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx767 // ── UI state ────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx773 // ── Canvas / history state ──────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx782 // ── Refs ────────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx787 // ── Close dropdown on outside click ─────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx19// ─── helpers ────────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx38// ─── UploadButton (inline picker) ───────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx607// ─── ModelDropdown ────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx697// ─── SimpleDropdown ───────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx738// ─── Main Component ───────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx749 // ── Model / mode state ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx799 // ── Persistence: Load ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx822 // ── Adjust height on load ────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx830 // ── Persistence: Save ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx904 // ── Handle Dropped Files ────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx915 // ── Derived: current model lists & helpers ───────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx930 // ── Textarea auto-resize ─────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx939 // ── Upload picker callbacks ──────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx976 // ── Model selection ──────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx997 // ── History helpers ──────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx1009 // ── View state ─────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx1027 // ── Generation ───────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ImageStudio.jsx1111 // ── Render ───────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx484 // ── Mode & model state ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx490 // ── Generation state ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx497 // ── History state ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx504 // ── Initialize params when model changes ──────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx519 // ── Persistence: Load ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx537 // ── Persistence: Save ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx557 // ── Handle Dropped Files ────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/AudioStudio.jsx595 // ── History helpers ─────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx98 // ── Clipping Parameters State ───────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx116 // ── Generation State ─────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx123 // ── Output State ─────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx128 // ── History State ────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx171 // ── Load Persistent State from localStorage ──────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx189 // ── Save Persistent State to localStorage ───────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx209 // ── Handle Dropped Files ────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx245 // ── Highlight Seeking Helper ─────────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx261 // ── Copy Link & Download Helpers ─────────────────────────────────────────
MEDIUMpackages/studio/src/components/ClippingStudio.jsx321 // ── Dispatch Run / Call submitAndPoll ────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx357 // ── Prompt ──────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx360 // ── Generation / UI state ───────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx367 // ── History ─────────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx373 // ── Dropdown state ──────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx378 // ── Video ref for result ────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx382 // ── Persistence: Load ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx327 // ── Mode & model state ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx339 // ── Upload state ────────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx416 // ── Persistence: Save ────────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx453 // ── Derived model info ──────────────────────────────────────────────────
MEDIUMpackages/studio/src/components/LipSyncStudio.jsx459 // ── Sync model when mode changes ────────────────────────────────────────
124 more matches not shown…
Hyper-Verbose Identifiers7 hits · 7 pts
SeverityFileLineSnippet
LOWscripts/test_minimax_provider.js118async function testMiniMaxImageGeneration() {
LOWpackages/studio/src/muapi.js141export async function generateMarketingStudioAd(apiKey, params) {
LOWelectron/lib/localInferenceAssets.js3function pickBinaryAssetForPlatform({ platform, arch, zipNames }) {
LOWelectron/lib/localInferenceAssets.js41function getBundledBinaryResourceDir({ resourcesPath, platform, arch }) {
LOWelectron/lib/localInferenceRuntime.js31function formatStartupProgressMessage(elapsedMs) {
LOWelectron/lib/localInferenceRuntime.js75function parseGenerationProgressChunk(chunk, state = { tail: '', lastStep: 0, lastTotalSteps: 0 }) {
LOWelectron/lib/localInference.js188function ensureBundledBinaryInstalled() {
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippet
HIGHpackages/studio/src/components/AppsStudio.jsx103 { thumbnail: "https://cdn.muapi.ai/apps/Social_Post.webp", name: "Social Post", description: "AI-generated social medi
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippet
LOWsrc/lib/muapi.js72 // Step 1: Submit the task
LOWsrc/lib/muapi.js101 // Step 2: Poll for results
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippet
LOWsrc/lib/models.js1// Single source of truth lives in the studio workspace package.