Skip to content

KerroKapple/InkFrame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

182 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 InkFrame

English | 中文

Local-first AI filmmaking workstation — wire text, image, and video AI into one node canvas, on your own machine.

License: MIT Platform Flutter Status Stars

InkFrame is a desktop workstation for AI-driven filmmaking. A node-based canvas lets you chain prompt → image → video through real providers — DashScope (Wanx), Kling, Gemini, and more (9 built-in) — while every project file and API key stays on your disk. No cloud account, no upload, no SaaS lock-in.

InkFrame node canvas — prompt, provider config and a generated cinematic still

Generating an image on the canvas: submit, live queue progress, result lands on the node

✨ Why InkFrame

  • 🔒 Local-first by design — projects live in an embedded PostgreSQL on your machine; keys go to the OS Keychain / Credential Manager, never a plaintext .env.
  • 🕸️ Node canvas — compose shots visually: drop text / image / video nodes, wire them, and watch generation flow through the graph with live job progress.
  • 🔌 Multi-provider — mix and match image/video models from different vendors in one project. Adding a new one is a single file (see docs/PROVIDER-API.md).
  • 🖥️ One codebase, two desktops — macOS + Windows from a single Dart/Flutter source, frameless "Amber Noir" UI.
  • 🧪 Quota-safe dev — built-in fake providers run the whole app and exercise the canvas without burning a single API credit.

🔄 How it works

flowchart LR
    A["📝 Text / Prompt node"] --> B["🖼️ Image node<br/>(Wanx · Gemini)"]
    B --> C["🎞️ Video node<br/>(Kling · Wanx i2v)"]
    C --> D["📦 Storyboard / Export"]
    subgraph Local["🔒 Your machine"]
      DB[("Embedded<br/>PostgreSQL")]
      KEY["🔑 OS Keychain"]
    end
    B -.persist.-> DB
    C -.persist.-> DB
    B -.auth.-> KEY
    C -.auth.-> KEY
Loading

Build a shot graph on the canvas, hit generate, and InkFrame runs the jobs through your configured providers — caching results and project state locally as it goes.

🎨 Providers

Provider Type Status
Wanx (DashScope) image · i2v · r2v · t2v ✅ Implemented
Kling V3 / V3 Omni video ✅ Implemented
Gemini Image image ✅ Implemented
OpenAI GPT-Image (gpt-image-1) image ✅ Implemented
Stability Stable Image Core image ✅ Implemented
OpenAI-compatible custom endpoint (custom_providers.json) image ✅ Implemented
Stable Diffusion (local ComfyUI) image 🟢 Help wanted
OpenAI DALL·E 3 (dedicated integration) image 🟢 Help wanted
Runway Gen-3 / Gen-4 video 🟢 Help wanted
Midjourney · Pika · Luma image/video 🟢 Help wanted

Want to add one? It's the lowest-effort way to contribute — see docs/PROVIDER-API.md and the Help Wanted list.

🚀 Get started

Requirements: Flutter ≥ 3.41, Dart ≥ 3.11, PostgreSQL 17 binaries on disk. macOS also needs Xcode 16 + CocoaPods.

git clone https://github.com/KerroKapple/InkFrame.git
cd InkFrame
flutter pub get

# Run with fake providers — no API keys, no quota burn
INKFRAME_PG_BIN=/opt/homebrew/opt/postgresql@17/bin \
INKFRAME_FAKE_PROVIDERS=1 \
flutter run -d macos

For real generation, drop INKFRAME_FAKE_PROVIDERS and add keys in Settings → Providers. Keys go to Keychain / Credential Manager.

flutter analyze              # 0 warnings (CI uses --fatal-infos)
flutter test                 # full suite
flutter test --tags pg       # real-PG integration tests (need TEST_PG_URL; auto-skipped otherwise)

Environment variables, key storage, and data-directory layout: see docs/ARCHITECTURE.md.

🧱 Tech stack

Flutter (desktop) · Riverpod (state + DI) · Freezed (immutable models) · embedded PostgreSQL via postgres · dio (provider HTTP) · flutter_secure_storage (keys) · media_kit (video playback + frame extraction) · window_manager (frameless chrome).

📍 Status

Alpha (v0.1.0-alpha.9). Single Dart codebase shipping on macOS + Windows. M1 ("usable") and M2 ("what creators need" — character consistency, batch variants, prompt presets, cost estimation) are complete with CI fully green; M3 first slices are in progress across four tracks (shot storyboarding, custom providers, asset gallery, video export). Remaining beta gaps are tracked in docs/BOARD.md. See ROADMAP.md for what's shipped and what's next.

📚 Documentation

🤝 Contributing

Maintainer-welcomed directions live in ROADMAP.md — providers, canvas UX, i18n, and test infra. Please open an issue or post in Discussions to align scope before writing a large PR. First time? Look for the good first issue label.

🐞 Reporting bugs

Open a GitHub issue or start a Discussion.

📄 License

MIT

About

Local-first AI filmmaking workstation — Flutter Desktop with a node-based canvas wiring multiple AI image/video providers. macOS + Windows. 本地优先的 AI 影视创作工作站。

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

27 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors