When to Use
Use whenever "looks/feels right" is the success criterion and there's no cheap numeric metric — animation easing/timing, zoom/camera feel, color grade, layout/spacing, design params, render/encoder settings, prompt params. Use the automated counterpart to lookdev when there's no human to sit the loop.
Source: connerkward/lookdev-auto-skill (MIT).
Visual eval loop — let a vision/video model tune what only an eye can judge
When the target is "does this LOOK/FEEL right" (not a number you can minimize), a
vision model (image) or video-understanding model (motion/timing) can be the judge in
a tight optimize loop. Worked reference: the screenstudio-alternative skill (iteration.py)
(tuned zoom-animation feel via fal-ai/video-understanding).
The loop
- Render N labeled variants into ONE artifact. Vary the parameter(s) across a
small spread. Annotate each variant's params ON the artifact (burn the label in:
"A · 2.2Hz · ζ0.5"). Images → a labeled grid/contact sheet. Video/motion → a
labeled sequence (label card or burned-in overlay before/over each clip) so the
model can compare temporally.
- One model call, structured output. Send the single artifact with an explicit
rubric (define what "good" means — and what "too much"/"too little" look like).
Ask for per-variant ratings + concrete suggested new values as JSON:
{"ratings":{"A":n,...},"best_so_far":"X","suggest":[[p1,p2],...]}.
- Coarse → fine. Round 1 = wide spread to locate the region. Round 2 = render the
model's suggestions (+ carry the current best) into one artifact; ask it to pick
the single best. Usually converges in 2 rounds.
- Stop when sufficient — best rates high and suggestions cluster. Apply the winner.
Token / quality / step reductions (do these)
- One artifact per round, not one call per variant. The biggest saver — a 6-variant
round is 1 upload + 1 inference, not 6. Montage/grid beats a loop of single calls.
- Burn params onto the artifact. The model sees label+result together → no separate
"variant A used X" context to carry → fewer tokens, fewer mistakes.
- Structured JSON out + parse. No re-asking, no free-text wrangling. Prompt "return
ONLY JSON"; regex the first
{...}.
- Short representative sample. Tune on a 3-5s clip / one frame / one component, not
the whole asset. Cheaper render, smaller upload, faster inference. Apply the found
params to the full render once.
- Cap variants at ~5-6. More doesn't improve the model's discrimination and multiplies
render + token cost. Wide-but-sparse round 1, narrow round 2.
- Calibration anchors. Include one deliberately-bad and one safe-default variant as
fixed anchors each round — gives the model a reference scale and exposes when its
"best" is worse than the safe default (catch a bad recommendation early).
- Independent rubric, stated up front. Define "good" concretely in the prompt
(smooth, subtle settle, not bouncy, not sluggish). Don't ask "which do you like" —
that lets it echo your framing. A held-out criterion keeps the judge honest
(see verify-outputs-rule: the check must be independent of what you tuned).
- Reuse renders across rounds. Carry the round-1 winner's clip into round 2 instead
of re-rendering it.
- Early-exit. If round-1 top ≥9/10 and the three suggestions are within a small delta,
skip round 2.
- Cheapest judge that can see the failure. Frames-through an image VLM can judge
spatial things (layout, color, crop); only reach for a true video model when the
thing being judged is temporal (easing, timing, motion smoothness) — those are
invisible in stills.
When NOT to use it
- A real numeric metric exists and correlates with quality → optimize that directly;
don't pay a model per step.
- The judgment is subjective-to-the-user (their taste, brand) → show them the variants
and let them pick; a model's "best" isn't their best. (This is why the screen-studio
spring auto-tune was dropped — the model's pick didn't match the owner's eye.)
- One or two variants → just look yourself.
Caveats (learned)
- The model's pick is an opinion, not ground truth — anchor it, and sanity-check the
winner against the safe default yourself before committing.
- Vision/video models perceive gross differences well, fine ones poorly — keep variant
spacing perceptible; near-identical variants get noise-rated.
Limitations
- Model ratings are probabilistic aesthetic judgments, not objective truth; keep a human review step for brand-critical or subjective work.
- Automated rounds can become expensive or slow when renders are heavy or many variants are explored.
- This skill needs screenshots, frames, or clips that expose the quality difference; it is weak for subtle motion, audio, copy nuance, or user-preference calls.
1---2name: lookdev-auto3description: Automated visual tuning: a vision or video model rates rendered variants in a loop. Render several labeled variants into one artifact, ask the model to rate them and suggest better values, render the suggestions, ask it to pick the best, repeat un...4license: MIT5---67## When to Use89Use whenever "looks/feels right" is the success criterion and there's no cheap numeric metric — animation easing/timing, zoom/camera feel, color grade, layout/spacing, design params, render/encoder settings, prompt params. Use the automated counterpart to lookdev when there's no human to sit the loop.1011_Source: [connerkward/lookdev-auto-skill](https://github.com/connerkward/lookdev-auto-skill) (MIT)._1213# Visual eval loop — let a vision/video model tune what only an eye can judge1415When the target is "does this LOOK/FEEL right" (not a number you can minimize), a16vision model (image) or video-understanding model (motion/timing) can be the judge in17a tight optimize loop. Worked reference: the `screenstudio-alternative` skill (`iteration.py`)18(tuned zoom-animation feel via `fal-ai/video-understanding`).1920## The loop21221. **Render N labeled variants into ONE artifact.** Vary the parameter(s) across a23 small spread. **Annotate each variant's params ON the artifact** (burn the label in:24 "A · 2.2Hz · ζ0.5"). Images → a labeled grid/contact sheet. Video/motion → a25 labeled *sequence* (label card or burned-in overlay before/over each clip) so the26 model can compare temporally.272. **One model call, structured output.** Send the single artifact with an explicit28 rubric (define what "good" means — and what "too much"/"too little" look like).29 Ask for **per-variant ratings + concrete suggested new values as JSON**:30 `{"ratings":{"A":n,...},"best_so_far":"X","suggest":[[p1,p2],...]}`.313. **Coarse → fine.** Round 1 = wide spread to locate the region. Round 2 = render the32 model's suggestions (+ carry the current best) into one artifact; ask it to **pick33 the single best**. Usually converges in **2 rounds**.344. **Stop when sufficient** — best rates high and suggestions cluster. Apply the winner.3536## Token / quality / step reductions (do these)3738- **One artifact per round, not one call per variant.** The biggest saver — a 6-variant39 round is 1 upload + 1 inference, not 6. Montage/grid beats a loop of single calls.40- **Burn params onto the artifact.** The model sees label+result together → no separate41 "variant A used X" context to carry → fewer tokens, fewer mistakes.42- **Structured JSON out + parse.** No re-asking, no free-text wrangling. Prompt "return43 ONLY JSON"; regex the first `{...}`.44- **Short representative sample.** Tune on a 3-5s clip / one frame / one component, not45 the whole asset. Cheaper render, smaller upload, faster inference. Apply the found46 params to the full render once.47- **Cap variants at ~5-6.** More doesn't improve the model's discrimination and multiplies48 render + token cost. Wide-but-sparse round 1, narrow round 2.49- **Calibration anchors.** Include one deliberately-bad and one safe-default variant as50 fixed anchors each round — gives the model a reference scale and exposes when its51 "best" is worse than the safe default (catch a bad recommendation early).52- **Independent rubric, stated up front.** Define "good" concretely in the prompt53 (smooth, subtle settle, not bouncy, not sluggish). Don't ask "which do you like" —54 that lets it echo your framing. A held-out criterion keeps the judge honest55 (see verify-outputs-rule: the check must be independent of what you tuned).56- **Reuse renders across rounds.** Carry the round-1 winner's clip into round 2 instead57 of re-rendering it.58- **Early-exit.** If round-1 top ≥9/10 and the three suggestions are within a small delta,59 skip round 2.60- **Cheapest judge that can see the failure.** Frames-through an image VLM can judge61 spatial things (layout, color, crop); only reach for a true *video* model when the62 thing being judged is **temporal** (easing, timing, motion smoothness) — those are63 invisible in stills.6465## When NOT to use it6667- A real numeric metric exists and correlates with quality → optimize that directly;68 don't pay a model per step.69- The judgment is subjective-to-the-user (their taste, brand) → show them the variants70 and let them pick; a model's "best" isn't their best. (This is why the screen-studio71 spring auto-tune was dropped — the model's pick didn't match the owner's eye.)72- One or two variants → just look yourself.7374## Caveats (learned)7576- The model's pick is an *opinion*, not ground truth — anchor it, and sanity-check the77 winner against the safe default yourself before committing.78- Vision/video models perceive gross differences well, fine ones poorly — keep variant79 spacing perceptible; near-identical variants get noise-rated.8081## Limitations8283- Model ratings are probabilistic aesthetic judgments, not objective truth; keep a human review step for brand-critical or subjective work.84- Automated rounds can become expensive or slow when renders are heavy or many variants are explored.85- This skill needs screenshots, frames, or clips that expose the quality difference; it is weak for subtle motion, audio, copy nuance, or user-preference calls.