Skills

Built for how we work.

Claude Code skills written for this studio's own workflow, not generic add-ons. Each one is a standing set of instructions Claude follows for a specific recurring job across this workspace.

ya-google-lee

A male model in a silver suit and call-centre headset, in a server room, holding a keyboard out to the camera. Caption: you don't think I know what a ya-google-lee is?

De-Google a Vite / React / Firebase app

Takes an app built on Google's stack — Gemini, Firebase, AI Studio's key picker — and makes it run without requiring any of it. The governing rule: replace the transport, keep the call sites, so every function keeps its name and signature and only what happens inside it changes. What cannot be ported (Veo, live web grounding) keeps its export and throws an explanation instead of silently stubbing out. Used to port ArtPix AI off a hard Gemini/Firebase dependency onto local ComfyUI, NVIDIA NIM and other engines, with Gemini kept as one optional choice among several.

Use when: de-Googling, unbundling, self-hosting, making a provider-agnostic build, or taking an AI Studio / Firebase Studio export standalone.

GitHub ↗

Diagnose and repair this machine's connection

netfix

A technician in a hi-vis vest and a gold paper crown kneeling at a wall-mounted router, a long ethernet cable trailing away down the hallway.

Diagnoses and repairs this machine's Wi-Fi/internet connection, and re-establishes Remote Control after a drop. Checks whether the local network watchdog is installed and what it has been catching, and can trigger the registered fix task without needing elevation.

Use when: the connection dropped, a session went offline, "netfix", "fix my internet", "why did it disconnect", or checking the network watchdog.

Wire every model provider into an app, fast

modelload

A switchboard operator at a wall of patch cables with one bright magenta cable plugged in firmly while the rest stay dim.

Adds the full multi-provider model layer to an app in one pass — local ComfyUI, Ollama, LM Studio, NVIDIA NIM, Hugging Face, and Gemini kept as one optional engine rather than the default. Same rules as ya-google-lee: every function keeps its name and signature, the engine the user picked is the one that answers, and anything not actually working yet keeps its card and throws an explanation instead of faking it. Built from the engine layer in ArtPix AI's services/engine/, and meant to be reused on every app the studio touches next.

Use when: an app needs to run on whatever provider the user actually has instead of one hard-coded API, or adding a new studio/app to the ecosystem.

Turn a still into a seamless looping video

seamless-loop-video

A man in a charcoal suit walking calmly on a treadmill in an empty marble gallery, a silk scarf floating behind him, the scene endless.

Turns a still image into a seamlessly looping ambient video for a web header or background, using MiniMax H3 in the local ComfyUI. Written after several loops came back with no motion or a visible cut — it covers the settings that actually produce movement (pinning last_frame back to the source stops the model from moving at all), closes the loop with real frames (a bridge take or a cut point) rather than a crossfade, which ghosts on directional motion, and the three measurement bugs that reject a perfectly good loop.

Use when: a looping background/hero video, "make this image move," or a generated loop that visibly jumps or barely moves.

GitHub ↗

Keep a git repo from bloating

repo-slim

A man in a suit sitting on an overstuffed suitcase to get it closed, with a tidy carry-on bag standing beside it.

Stops a repo's build output from being committed alongside real source changes, which is what quietly grows a `.git` folder into the hundreds of megabytes and eventually trips GitHub's large-file warning. Adds the generated paths to .gitignore, untracks them, and checks that no hand-written file got caught in the same sweep — a git glob like site/*.html matches recursively and can untrack a folder of real templates by accident. A second, optional pass can purge old bulky files from history with git-filter-repo, but only on request: it force-pushes and rewrites every commit hash, so it stays off by default and always asks first.

Use when: a push warns about a large file, a repo's .git folder is unexpectedly huge, or committing every change keeps re-adding the same build artifacts.

GitHub ↗

Make a background image or video actually readable

background-contrast

A model in a white shirt squinting at a light meter in front of a huge mural, with fogged plexiglass sheets leaning between them.

Default opacity and scrim values for pages and app UI that sit on a photographic or video background, carrying the one trap that has cost this studio twice: opacities compound, they don't add, so a "reasonable" panel over a "reasonable" scrim can still leave artwork at 2-7% visible. Covers checking contrast at both extremes of the backdrop, not just one — and the harder lesson from rebuilding bashme's dark mode: a "no opacity" report isn't always the palette's fault. A stray CSS-specificity bug painting a stuck overlay looks identical to a real contrast failure, and no token-pair check can tell them apart.

Use when: a background image reads as washed out or barely visible, text over artwork needs contrast, or panels and sidebars need to read against a busy backdrop.

GitHub ↗

Make a custom ComfyUI node's UI actually show

comfy-mcp-fixes

A mechanic with a flashlight inspecting a tangled patch panel of glowing violet and cyan cables, one cable in the wrong socket.

Gotchas collected while building a custom ComfyUI node with a web UI and driving it from an agent. A pack's JavaScript only loads if its __init__.py exports WEB_DIRECTORY. A DOM widget has to come from node.addDOMWidget: the other route returns a widget with a null element and never throws, so a try/catch fallback never fires. restart_comfyui cannot restart a server comfy-cli did not launch, and a leftover comfy-cli server can block ComfyUI Desktop from updating at all.

Use when: a custom node's widget or overlay is missing or empty, restart_comfyui says no_background_server, or a comfy-cli server is stopping Desktop from updating.

GitHub ↗

Find out which model folder ComfyUI is really using

comfy-duplicate-model-roots

A library hall with one shelf full of glowing books and one empty, and a librarian holding two index cards that point different ways.

Several ComfyUI launchers and package managers keep their own model-root list on top of extra_model_paths.yaml, and nothing warns you when the two disagree. The symptoms are slow startup, a model or LoRA browser that shows a handful of files instead of the whole library, or files with no previews. This skill finds the duplicate, empty or conflicting roots and fixes them, confirmed on ComfyUI Desktop.

Use when: ComfyUI is slow to start, a model browser shows far fewer files than exist, previews are missing, or models moved to a new drive and some "disappeared".

GitHub ↗

This list is deliberately short — it's the skills built specifically for this studio's own workflow, not the much larger set of general-purpose skills bundled with Claude Code itself.

New · from Violet Diffusion

ViolART OS

The operating system for artists. Every creative app we make on one account, one local model engine, and one library of images and LoRAs.

ArtPix AIVioliVision AIGenFixPortrAIt StudioLoumiNova AICCO Studio
See ViolART OS →