skills/image-generation-workflow-engine/SKILL.md
Build image generation pipelines with Stable Diffusion, FLUX, ControlNet, LoRA, and ComfyUI workflows. Activate on: image generation pipeline, ComfyUI workflow, ControlNet, LoRA training, diffusion model. NOT for: video generation (ai-video-production-master), image classification (computer-vision-pipeline).
npx skillsauth add curiositech/windags-skills image-generation-workflow-engineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build production image generation pipelines with FLUX, Stable Diffusion 3.5, ControlNet, LoRA, and ComfyUI for automated creative workflows.
Activate on: "image generation pipeline", "ComfyUI workflow", "ControlNet conditioning", "LoRA training", "FLUX generation", "Stable Diffusion pipeline", "batch image generation", "img2img workflow", "inpainting pipeline"
NOT for: Video generation from images (ai-video-production-master), image classification or object detection (computer-vision-pipeline), or multimodal search embeddings (multimodal-embedding-generator)
| Domain | Technologies | Notes | |--------|-------------|-------| | Models | FLUX.1-dev/schnell, SD 3.5, SDXL, Kandinsky 3 | FLUX is 2025-2026 standard for quality | | Conditioning | ControlNet (canny, depth, pose, segmentation), IP-Adapter | Structural and style guidance | | Fine-Tuning | LoRA, DreamBooth, textual inversion | Custom concepts in 20 min on consumer GPU | | Workflows | ComfyUI, diffusers (Python), A1111 | ComfyUI for complex multi-step; diffusers for code | | APIs | Replicate, fal.ai, Together AI, HF Inference | Managed GPU, pay-per-image | | Local | qwen-image-mps (Apple Silicon), CUDA, ROCm | M4 Max: FLUX.1-schnell in 4-8 sec/image |
[Load Checkpoint] ──→ [CLIP Text Encode] ──→ [KSampler] ──→ [VAE Decode] ──→ [Save Image]
│ │ │
FLUX.1-dev positive + negative steps: 20-30
or SD 3.5 prompts with weights cfg: 3.5-7.5
scheduler: euler
│
[ControlNet Apply] (optional)
│
canny/depth/pose
from reference image
ComfyUI workflows are JSON-serializable. Store them in version control:
workflows/
├── txt2img-flux-base.json # Basic FLUX text-to-image
├── controlnet-canny-sd35.json # Canny edge guided generation
├── lora-character-flux.json # Character LoRA application
├── inpaint-background-swap.json # Background replacement
└── batch-product-shots.json # Automated product photography
# FLUX.1-dev with ControlNet conditioning
from diffusers import FluxPipeline, FluxControlNetPipeline
from diffusers.utils import load_image
import torch
# Basic text-to-image
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16
).to("cuda")
image = pipe(
prompt="A cozy library with warm lighting, bookshelves floor to ceiling",
num_inference_steps=28,
guidance_scale=3.5,
width=1024, height=1024,
).images[0]
# Batch generation with parameter sweep
params = [
{"guidance_scale": 3.0, "num_inference_steps": 20},
{"guidance_scale": 3.5, "num_inference_steps": 28},
{"guidance_scale": 4.0, "num_inference_steps": 35},
]
for i, p in enumerate(params):
img = pipe(prompt=prompt, **p).images[0]
img.save(f"output/sweep_{i}_cfg{p['guidance_scale']}.png")
Training:
20-50 images of concept ──→ [kohya_ss / ai-toolkit] ──→ LoRA weights (.safetensors)
│
captioned with BLIP/Florence2
trained 1000-3000 steps
rank 16-32, alpha = rank
Application:
[Base Model] + [LoRA weights @ strength 0.6-0.9] ──→ [Generate with trigger word]
File organization:
loras/
├── character-alice-v2.safetensors # trigger: "alice_character"
├── style-watercolor-v1.safetensors # trigger: "watercolor_style"
└── product-shoe-v3.safetensors # trigger: "brandx_shoe"
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.