Back to Case Studies

Generative AI Studio: FLUX.1 LoRA Training, ComfyUI, AI Video and Talking Heads

LoRA training on FLUX.1 with Ostris AI Toolkit and on SD 1.5/SDXL with kohya_ss, ComfyUI workflows, Wan 2.1 text-to-video and script-to-talking-head video, built and tested in a real product. 10 business problems it solves.

flux.1ai toolkitkohya_ssloracomfyuiwan 2.1text-to-videotalking head

Your brand needs product photos, a character or short videos that look the same every time, and stock AI tools keep drifting. I fix that by training a model on your own images (a LoRA), wiring it into ComfyUI or an API your team can call, and running it on GPUs you can afford. Everything on this page comes from a working product I built, FaceSearch, and its GPU engines.

FLUX.1LoRA training with Ostris AI Toolkit
126 sSD 1.5 LoRA, 150 steps, on a Kaggle T4
SDXLLoRA trained and verified on a 16 GB T4
81 framesWan 2.1 text-to-video, 832×480, on a T4
12.5 stalking-head video from a script: voice + lip sync
A100FLUX LoRA training in bf16 with AI Toolkit

Virtual try-on in action

Screen recordings of Outfit Studio: pick a garment photo and a person photo, the job goes through the queue to the try-on engine, and the finished image opens full size. Sped up 2x; the waiting time is real GPU inference.

Kids: a printed shirt and shorts set, and a one-piece outfit, put on children.
Bottoms: printed trousers on an adult model.
Bottoms: wide-leg jeans swapped onto a model wearing skinny jeans.

A promo video, ready for social

Made with the video engine on this page: a 30-second square (1:1) promo for my own studio: a hook, who is behind it, the numbers, and recent work as animated cards. The same approach turns any brand's copy and screenshots into feed-ready videos in 1:1, 9:16 or 16:9.

What I train and run

ToolWhat I use it forStatus
Ostris AI ToolkitLoRA training on FLUX.1 (dev config for 24 GB, quantised, low-VRAM mode), wrapped in a FastAPI engine with a job queueTrained FLUX.1 LoRAs
kohya_ss (sd-scripts)LoRA training on SD 1.5 and SDXL (Realistic Vision 5.1 and others), Colab and Kaggle notebooks, CLIP captionsVerified on Kaggle T4
ComfyUIGraphs with LoRA + IP-Adapter FaceID Plus V2 + OpenPose ControlNet; workflows run as durable API jobs from GoBuilt and tested
Ostris AI Toolkit on A100LoRA training on FLUX.2 klein 4B (Apache-2.0, safe to sell with) in bf16 on a Colab or rented A100; one training module shared by the API and the notebookTrained on A100
Wan 2.1 T2VText-to-video clips for marketing and B-rollVerified on Kaggle T4
Kokoro TTSVoice-overs in 5 voices (US and UK, male and female) for presenters and marketing videosVerified on Kaggle T4
LatentSync 1.5Lip sync for talking-head videos from a script and a consented presenterVerified on Kaggle T4
Marketing pipelineCase study in, storyboard, voice-over, captioned video in 1:1, 9:16 and 16:9, plus LinkedIn and Facebook post textUsed for my own promos
FLUX.2 klein 4B, Qwen-Image-EditImage editing and generated models for virtual try-on, chosen for commercial licencesWired in

AI Toolkit also trains LoRAs for FLUX.1 Kontext, SD 3.5, Wan 2.1/2.2 video, Qwen-Image, HiDream, Lumina 2 and Chroma. If your project needs one of those, I set it up on the same pipeline.

Where each job runs

GPUJobsWhy
A100 (Colab or rented)FLUX LoRA training with AI ToolkitFLUX needs about 24 GB and native bf16
T4, 16 GB (Kaggle, free tier)SD 1.5 and SDXL LoRA training with kohya_ss, Wan 2.1 video, voice and lip sync, virtual try-on testsCheap enough to test every engine end to end
Any CUDA hostThe same FastAPI engines in Docker, each behind its own tokenMove to a bigger GPU without changing the app

Voice and marketing video

The promo above was made with this video engine. Its marketing module reads a case-study page, cuts it into short beats using only sentences from the page, voices each beat with Kokoro, cuts every shot to the length of its own audio so words and picture stay in sync, burns in captions because feeds play muted, and renders 1:1, 9:16 and 16:9 versions. It also writes the LinkedIn and Facebook post and hashtags. Posting stays manual, so a person approves every word.

10 problems this solves

1

Product photos without a photo shoot

Problem: every new product or season needs a new shoot.

What I build: a LoRA trained on 15 to 30 product photos (FLUX.1 or SDXL), then a ComfyUI graph that puts the product in any scene, light or angle.

Built on: the FaceSearch LoRA pipeline.

2

The same brand character in every campaign

Problem: AI images change the mascot or model's face on every image.

What I build: a character LoRA plus IP-Adapter FaceID and an OpenPose ControlNet, so identity and pose are both controlled.

Built on: ComfyUI consistent-face workflows.

3

AI headshots and avatars inside your app

Problem: users want professional photos of themselves without a photographer.

What I build: upload a few selfies, a personal LoRA trains in the background, and the user gets styled headshots. Training jobs are queued and tracked.

Built on: FaceSearch.

4

Virtual try-on for a fashion store

Problem: shoppers can't see how a garment looks on a person, and returns cost money.

What I build: garment photo + person photo in, try-on image out, with a provider router that falls back when one model fails.

Built on: FaceSearch Outfit Studio (demos on the case study).

5

Short marketing clips from a text prompt

Problem: social media needs fresh B-roll every week, and stock footage looks like stock.

What I build: a text-to-video engine (Wan 2.1) behind an API, prompts saved as templates, clips queued and stored.

Built on: the video engine above, verified on a T4.

6

A spokesperson video from a script

Problem: recording a founder or presenter for every update is slow.

What I build: type the script, pick a voice, get a lip-synced talking-head video. Only faces with recorded consent are accepted.

Built on: the talking-head engine above.

7

Blog posts and case studies turned into videos

Problem: good written content never reaches video platforms.

What I build: a pipeline that cuts a page into short beats, voices them, adds the page's images and renders a captioned video in 9:16, 1:1 or 16:9 plus post text. It only reuses sentences from the page, so it never makes claims you didn't approve.

Built on: the marketing module of the same video engine.

8

A ComfyUI workflow your app can call

Problem: the designer's ComfyUI graph works on one PC and nowhere else.

What I build: the graph becomes an API with a job queue, retries and stored results, so your web or mobile app can use it.

Built on: genflow, durable ComfyUI jobs in Go.

9

GPU costs that don't eat the margin

Problem: a GPU server running all month for a few jobs a day.

What I build: engines that run on rented GPUs, Colab or Kaggle only when there is work, each behind its own token, with training and generation queued.

Built on: the FaceSearch GPU engines, tested end to end on Kaggle.

10

Models you can legally sell with

Problem: many open models are free to try but not licensed for commercial use.

What I build: a licence check of every model and every hidden dependency before launch. In FaceSearch this found a non-commercial human-parser inside a "free" try-on model, so paying traffic goes to licensed providers.

Built on: the FaceSearch licence review.

A note on FLUX.1: FLUX.1 [dev] gives the best quality, but its weights have a non-commercial licence. For a product you sell, I plan around FLUX.1 [schnell], FLUX.2 klein 4B or SDXL, or a commercial licence from the model's maker. I tell you which one before any training starts.

How a project runs

  1. You send 10 to 30 sample images and the shots or clips you need.
  2. I pick the model and check its licence, and tell you the GPU cost per image or clip.
  3. First LoRA and test outputs in a few days, so you judge real results before the full build.
  4. Delivery: a ComfyUI graph, an API, or a page inside your app, with a short guide for your team.

Want the same for your brand?

Send 10 sample images and the shots or clips you need. I will reply with the model, its licence, the GPU cost per image and a first test.