Skip to content
@inlineresearch

Inline Research

Free and open source tools for AI filmmaking. Every render is kept as a take, so you never lose the good version.

Inline Research

Own diffusion engine · train LoRAs locally · runs on your GPU

We are a small research team working on local diffusion inference and fine tuning. We publish what comes out of it: the engine, the app, the LoRAs, the datasets, and the VRAM numbers we measured getting there.

Website Discord Hugging Face Civitai License GPL-3.0


What we build

Inline Studio, a free and open source canvas for AI filmmaking.

We built it after wasting too many afternoons hunting for the workflow and the assets that made a shot work. Now every shot keeps its own history. Each generation is a take you can go back to, the project saves itself as you go, and every image you make carries its whole graph inside it. Drop one back on the canvas and the pipeline comes back with it.

It all runs on your own machine: generating the shots, training your own look, and cutting the finished video. One command starts it. No account, no second service to keep running, and nothing leaves your computer unless you reach for a hosted model.

Inline Core is the engine underneath, written from scratch in Python. It runs Z-Image Turbo, Krea 2, FLUX.2 and MiniMax H3 locally from single model files, fits each one to the card it finds, and trains LoRAs for all four.

"This is the part of open source you can't fake. Someone wanted a tool that didn't exist, built it on us, and gave it to everyone."

Robin Huang, Cofounder, ComfyUI (original post)

Recent work

FLUX.2, the whole family behind one node. Reference images ride in the denoiser's token sequence, so "the character from image 1 wearing the jacket from image 2" is a real capability rather than a workaround. Wire one image to edit it, or several to compose from them, and the node numbers them so the prompt can address them by position. Pick klein 4B, klein 9B, either Base build, the KV variant or dev in the sidebar and the node reads steps and guidance off the checkpoint, so swapping a distilled build for its Base moves 4 steps at guidance 1.0 to 50 at guidance 4.0 with nothing to change by hand. klein 4B is Apache 2.0, renders 1024px in four steps, and peaks near 17.9GB at bf16.

MiniMax H3 open weights, running on your own hardware. The first video model in the engine, and the first that generates a soundtrack instead of a silent clip: one transformer denoises the video and its 32kHz stereo audio in a single pass, so a take is one MP4 with sound already in it. Four nodes, because the inputs genuinely differ: text to video, image to video, first and last frame, and reference to video with up to nine images, three clips and three audio tracks addressed by position.

Making it fit was the work. A 33B transformer runs beside a 32B conditioner, so the prompt is encoded first and the conditioner steps off the card before the denoise starts. The modulation weights, 40% of the transformer, are factorised at load and take it from 66.3GB to 40.3GB. Measured on a 45GB card, a 10 second clip at 960x544 takes about 7.2 minutes and peaks at 38.9GB of VRAM and 46.7GB of system RAM. Same model is an API node if that is out of reach.

LoRA training for MiniMax H3. H3 trains on still images against the undistilled FL2VA base, then the adapter loads into any of the four video nodes. It learns look, style, character and lighting, not motion or sound, since it never sees either. The frozen base is 4-bit always, 11.7GB after quantisation. It peaks at 20.6GB on a card that can hold the conditioner, and 12.7GB on one that cannot, because the conditioner spills to the CPU and the tallest phase stops being the caption pass. A 16GB card therefore trains H3 where a 24GB card is merely comfortable, measured on a Tesla T4.

ControlNet and Control Space. Steer a local render with pose, depth or edge maps, or skip the reference photo: Control Space is a 3D pose editor in a node. Pose your characters, frame a camera, render the scene as an OpenPose skeleton or a depth map, and wire it straight into a gen node.

Will it run on your machine?

Worth answering before you install anything.

Your hardware What you get
No GPU at all API Nodes reach hosted models, including H3. Nothing to download, works today.
8 to 16 GB Z-Image Turbo at 1024px in roughly 11.5GB. FLUX.2 klein 4B quantized. LoRA training for all four architectures at 512px.
24 GB FLUX.2 klein 4B resident at bf16, dev with a prequantized NF4 build, and comfortable LoRA training.
40 GB and up Krea 2 at full quality, MiniMax H3 video with sound, and training at 1024px.

Training is cheaper than generating, so a Krea 2 LoRA trains at 512px inside 12GB on a card that cannot generate with the model at all.

Train your own LoRA

Training is part of the app, not a separate toolchain you go and learn. The Trainer is a second canvas: a dataset node, a caption node, a Train LoRA node, a live loss graph and a resources readout, wired together. Press Start and watch it run. Hyperparameters sit in a side panel so the node itself stays a status surface, with a step counter, streaming logs and a progress bar.

The Inline Studio Trainer canvas, with a dataset node, a Train LoRA node running, live logs and a loss curve

Peak VRAM at 512px, rank 16, batch 1, gradient checkpointing on:

Architecture 512px peak Fits 16GB
FLUX.2 (klein Base 4B) ~8.6GB yes
Krea 2 (4-bit base) ~11.9GB yes
Z-Image ~13.4GB yes
MiniMax H3 (4-bit, video) ~20.6GB yes, slowly
  • Train on the base, generate on the fast checkpoint. The LoRA carries over unchanged, so you keep the 8-step render speed. If you only hold a Turbo checkpoint, a training adapter is fused in for the run and dropped when the LoRA is saved.
  • A LoRA trained at 512px applies at any generation resolution.
  • Captions are optional. Caption locally with the built-in captioner, edit by hand, or switch them off and rely on the trigger word, which works well for a single subject.
  • Stop and resume. Stopping flushes a checkpoint holding adapter weights, optimizer and RNG state, and step count, so resuming picks up at the exact step. Crashed runs recover on their own.
  • Straight into a render. The finished .safetensors lands in models/loras/ and appears in the LoRA loader node right away.

Nothing is downloaded behind your back. Training reuses the model files you already have, and if one is missing the run stops and names it.

Full walkthrough, with a worked example, measured VRAM numbers, and the settings we would start from.

Models and datasets

Trained on that canvas, published openly, dataset included so you can reproduce the run.

Everything else we publish lands on Hugging Face and Civitai.

Repositories

Repo What it is
Inline-Studio The app. Node canvas, take history, timeline, LoRA trainer, and the Inline Core engine that powers it. Start here.
Inline-Registry The published extension index the app's Available tab reads.
Inline-Studio-Extension-Guide The reference extension, for anyone writing custom nodes.

Releases and changelog: Inline-Studio/releases. Packages: inline-core and inline-studio-frontend on PyPI.

Get started

Contact

team@inlinestudio.art · Privacy policy

Inline Studio is licensed GPL-3.0. Copyright Inline Research.

Pinned Loading

  1. Inline-Studio Inline-Studio Public

    AI filmmaking on a node canvas. Generate locally on your own GPU with the Inline Core engine (Z-Image, Krea 2, FLUX.2, MiniMax H3), or use hosted models with no GPU. Train your own LoRAs locally on…

    Python 193 38

  2. Inline-Studio-Extension-Guide Inline-Studio-Extension-Guide Public

    A sample extension guide to build on top of Inline Studio. Copy it to build your own canvas nodes. Includes four working examples, declared model downloads & full authoring reference.

    Python

  3. Inline-Registry Inline-Registry Public

    Registry for published Inline Studio extension

    Python

Repositories

Showing 5 of 5 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…