Project
Redrob Studio
99.92% accuracy on explicit-content moderation (n = 6,000)
TP 2,995 · FP 5 · FN 0 · TN 3,000. Recall 100%, precision 99.83%. LLM on the prompt, VLM on the output. Browser talks to Next.js; Next.js talks to ComfyUI on COMFYUI_URL (server-only). Image tools are Create (Redrob Image), Upscale, Compress, Convert, and Vision; audio is Speak, Clone, Design, Music (Tune/ACE-Step), Transcribe, Extract audio from a video file, and Convert. Bake-offs sit in the same shell.
Summary
Local Next.js studio for image and audio tools on your own ComfyUI GPU, with dual LLM/VLM safety gates. On a 6,000-prompt NSFW/SFW eval across image, text, and audio: 99.92% accuracy, 100% recall, five false positives. No chat surface and no video generation stack; home is a tools catalog and bake-offs sit in the same shell. Latency and preference claims live on Image and Tune.
My role
Built the ComfyUI client, dual LLM/VLM safety gates, tool matrix, and bake-off UI alone in about three weeks. Image and Tune supply models behind the shell.
Purpose
Ship a local client that calls generative workflows over ComfyUI you control, exposes the image and audio tool matrix on one screen, compares checkpoints and LoRAs in the tool rather than a spreadsheet, and keeps explicit content out of the product path with a measured catch rate.
Demo
Studio walkthrough
Create, tools, and bake-offs in one client on ordinary ComfyUI with dual safety gates.
Safety study
Studio's product claim is moderation, not preference. An LLM reviews the prompt before generation; a VLM reviews the finished asset afterward. The numbers below are from a labeled NSFW / SFW prompt set spanning image, text, and audio generation.
Design
- 6,000 prompts total
- Three modalities: image generation, text generation, and audio generation
- For each modality: 1,000 NSFW and 1,000 SFW prompts
- Sources: AI-generated and user-sourced for both NSFW and SFW
- Positive class: explicit / NSFW content that should be blocked
- Dual gate: LLM on the prompt, VLM on the output
AI-generated and user-sourced prompts were both included so the gate was not tuned only to one prompt dialect. Image, text, and audio share the same moderation claim because Studio routes all three through the same client path.
Confusion matrix
- True positive
- 2,995
- False positive
- 5
- False negative
- 0
- True negative
- 3,000
- Accuracy
- 5,995 / 6,000 = 99.92%(TP + TN) / n
- Recall
- 2,995 / 2,995 = 100%TP / (TP + FN) · no misses on NSFW
- Precision
- 2,995 / 3,000 = 99.83%TP / (TP + FP)
Decisions
LLM on the prompt, VLM on the output
Text safety and image/audio safety are different failure modes. An LLM reviews the prompt before generation; a VLM reviews the finished asset afterward. On the 6,000-prompt set that dual path reached 99.92% accuracy with zero false negatives.
Ordinary ComfyUI behind a server-only URL
The browser never talks to ComfyUI directly. Workflows are assembled server-side from allowlisted templates; progress streams as SSE. Swapping a checkpoint or LoRA stays a graph change on GPUs you control.
Full tool matrix, one shell
Image and audio tools share one Next.js surface and the same safety gates, so finishing one piece of work does not mean hopping between apps. Create runs Redrob Image and Music runs Redrob Tune, which is released only inside Studio. Bake-offs compare models in-product; latency and preference claims stay on Image and Tune.
The shipped setup is a starting point, not a lock-in
Drop in your own checkpoint or LoRA, run it against the same prompt as the current one, and look at both results side by side before committing. Comparison happens in the tool, which is the only version of it people actually do.
No GPU, no output, and no quiet fallback
Without a GPU host attached the UI opens but no tool produces anything, because there is no cloud path to pick up the work. That is a condition of the design rather than a setup problem. Create also inherits Redrob Image's gap on legible Hangul and typography-heavy graphics.
Challenges
Built alone in three weeks on about $350
Scope: ComfyUI client, dual safety checks, the tool catalog, live progress, and enough bake-off UI to compare models.
One UI for several model lines
Image and Tune share surfaces and moderation without sharing claims. The client stayed modality-agnostic enough for Speech next.
Impact
99.92% accuracy, zero NSFW misses
On 6,000 labeled prompts across image, text, and audio, the dual gate produced five false positives and no false negatives. Preference and latency stay on Image and Tune.
Interactive bake-offs once models were fast enough
When Image entered the low-second range and Tune landed minute-long audio in tens of seconds, comparison UI became usable for live preference work instead of overnight jobs.
System
Redrob Studio
99.92%
safety accuracy (n=6000)
Local Next.js client over ordinary ComfyUI (COMFYUI_URL, server-only): LLM on prompts, VLM on outputs; 99.92% accuracy on 6,000 NSFW/SFW prompts across image, text, and audio (TP 2995, FP 5, FN 0, TN 3000); image and audio tool matrix, no chat surface and no video generation stack; bake-offs for model comparison
Web app calls ComfyUI workflows over a server-only URL, streams progress, runs an LLM on the prompt and a VLM on the finished output Model and LoRA bake-offs
bake-offs
comparison UI
Side-by-side preference suites inside Studio for comparing checkpoints and LoRAs
Screens
Create
Main generation screen: enter a prompt, choose Fast or Best, and run Redrob Image (or another hosted Redrob model). Before generation starts, an LLM reviews the prompt so unsafe requests can be blocked early.
Tools
Tools catalog from an earlier build that still carried a video generation stack and face/background editing. The shipped set is image and audio only: Create, Upscale, Compress, Convert, Vision; Speak, Clone, Design, Music, Transcribe, Extract audio, Convert.
In-studio bake-offs
Side-by-side comparison of models and prompts. Image and Tune setups get scores here.