Regenerate all guide demos with the bilinear palette wash; update wording to match
The nearest->bilinear wash fix (5f61727) changes what palette-wash recipes
render, so every wash-affected demo is re-rendered through the live V10
nodes on the same seeds: the palette sphere is now a smooth gradient, the
toward-lamp an organic rose/sage piece, the final-only timing lamp a clean
two-tone split. Guide prose that described the old mosaic aesthetic is
reworded to describe the new renders, the V10 paper's treatment row and the
V9 paper's wash pseudocode now document the bilinear upsample (with a note
on why nearest was wrong), and the focus-validation reference images join
the recipe-lab refs.
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 276 KiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 366 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 348 KiB |
@@ -271,7 +271,7 @@
|
||||
"timing": "final details only",
|
||||
"output": "demos/timing-style-final-only.png",
|
||||
"workflow": "demos/timing-style-final-only.workflow.json",
|
||||
"lesson": "Same seed, same card, opposite timing: the prompt owns the early composition and the source arrives in the detail passes - its mosaic finish lands crisply on the prompt's lamp."
|
||||
"lesson": "Same seed, same card, opposite timing: the prompt owns the early composition and the source arrives in the detail passes - its rose-and-sage palette lands as a crisp two-tone finish on the prompt's lamp."
|
||||
},
|
||||
{
|
||||
"slug": "counter-example-baseline",
|
||||
|
||||
|
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 394 KiB |
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 365 KiB After Width: | Height: | Size: 372 KiB |
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 363 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 269 KiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 399 KiB |
@@ -143,7 +143,7 @@ studies — this is the pack's hard guarantee layer. Pipeline order:
|
||||
| `grayscale` | color drop | palette |
|
||||
| `soft blur` | box blur k=5 | micro-texture |
|
||||
| `strong blur` | box blur k=13 | words, texture patterns |
|
||||
| `palette wash` | adaptive color grid (2–10 cells/side, `side//48`), blended 85/15 with the mean color, then blur k=9 | **everything except color relationships** |
|
||||
| `palette wash` | adaptive coarse color field: pooled to 2–10 cells/side (`side//48`), bilinearly upscaled into smooth gradients, blended 85/15 with the mean color, then blur k=9 | **everything except color relationships** |
|
||||
| `color wash` | box blur k=31 | structure, keeps soft color fields |
|
||||
| `grayscale blur` | gray + blur k=13 | palette + detail (keeps shapes) |
|
||||
| `shape wash` | gray + blur k=25 | everything except broad silhouette |
|
||||
|
||||
@@ -695,7 +695,8 @@ layers: [0.25, 0.35, 0.45, 0.6, 0.8,
|
||||
Same prompt (<code>a sculptural table lamp in a clean studio product
|
||||
photo, no readable text</code>), same seed (972106); the only change
|
||||
is the style card and its direction. Pulled toward at 0.65, the
|
||||
source's pastel mosaic palette lands all over the lamp. Pushed away
|
||||
source's pastel palette takes over the lamp - a rose shade, a sage
|
||||
base, a rounder and softer art direction. Pushed away
|
||||
at 0.40, the same card scrubs in the opposite direction - the lamp
|
||||
comes out plainer and warmer-neutral than even the prompt-only
|
||||
baseline, because the stack is actively steering out of the source's
|
||||
@@ -761,8 +762,9 @@ layers: [0.25, 0.35, 0.45, 0.6, 0.8,
|
||||
source guide composition and broad color fields, then the prompt's
|
||||
finish passes smooth the surfaces into a classic soft-graded shade.
|
||||
Final-only is the mirror image: the prompt owns the early
|
||||
composition and the source arrives in the detail passes, laying its
|
||||
crisp mosaic finish onto the prompt's lamp.
|
||||
composition and the source arrives in the detail passes, landing its
|
||||
rose-and-sage palette as a crisp two-tone finish on the prompt's
|
||||
lamp.
|
||||
</p>
|
||||
<div class="three" style="margin-top: 12px;">
|
||||
<figure>
|
||||
|
||||
@@ -537,7 +537,8 @@ same seed (`972106`); the only change is the style card and its direction:
|
||||
| Step 3 card | `suggest the visual style`, `away from this image`, strength `0.40` |
|
||||
| Demo files | [step 1](assets/krea-v10/demos/counter-example-baseline.png), [step 2](assets/krea-v10/demos/counter-example-toward.png), [step 3](assets/krea-v10/demos/counter-example-away.png) + `.workflow.json` beside each |
|
||||
|
||||
Pulled toward, the source's pastel mosaic palette lands all over the lamp.
|
||||
Pulled toward, the source's pastel palette takes over the lamp - a rose
|
||||
shade, a sage base, a rounder and softer art direction.
|
||||
Pushed away, the same card scrubs the result in the opposite direction - the
|
||||
lamp comes out plainer and warmer-neutral than even the prompt-only baseline,
|
||||
because the stack is actively steering out of the source's palette and
|
||||
@@ -593,8 +594,9 @@ widget really moves is *how* the look lands: early-only lets the source
|
||||
guide the composition and broad color fields, then the prompt's own finish
|
||||
passes smooth the surfaces - the shade comes out a classic soft-graded cone.
|
||||
Final-only is the mirror image: the prompt owns the early composition and
|
||||
the source arrives in the detail passes, laying its crisp mosaic finish onto
|
||||
the prompt's lamp. One widget, two clearly different pictures.
|
||||
the source arrives in the detail passes, landing its rose-and-sage palette
|
||||
as a crisp two-tone finish on the prompt's lamp. One widget, two clearly
|
||||
different pictures.
|
||||
|
||||
## Manual Layer Dials
|
||||
|
||||
@@ -635,7 +637,8 @@ The six-card showcase, rendered both ways on the same seed:
|
||||
|
||||
With six active cards the gentle budget trims the loudest pulls: the balanced
|
||||
render keeps the same mug-on-desk composition while the ensemble blends a
|
||||
touch more evenly (note the calmer lid and the desk items settling in). With
|
||||
touch more evenly (the balanced mug comes out slightly lighter, with a
|
||||
simpler lid and softer shadows). With
|
||||
stacks this size the difference is deliberately subtle - balance is a
|
||||
graceful-degradation guard, not a look control.
|
||||
|
||||
|
||||
@@ -539,12 +539,12 @@ The most surgical filter (`palette_wash_samples`): keep palette and coarse color
|
||||
```text
|
||||
1. grid_h = clamp(height // 48, 2, 10); grid_w = clamp(width // 48, 2, 10)
|
||||
2. palette = adaptive_avg_pool2d(image, (grid_h, grid_w)) # per-cell mean color
|
||||
3. palette = nearest-upsample back to full size # blocky color map
|
||||
3. palette = bilinear-upsample back to full size # smooth color gradient
|
||||
4. palette = 0.85 * palette + 0.15 * mean_color(image) # pull toward global average
|
||||
5. return box_blur(palette, k=9) # soften cell edges
|
||||
5. return box_blur(palette, k=9) # soften remaining structure
|
||||
```
|
||||
|
||||
At the style recipe's default study side (384) the grid is 8×8 to 10×10 cells, so at most about 100 color samples survive from the entire image. No subject, no texture, no glyphs, and the style-gentle recipe pairs this with detail 0.05. Step 4's pull toward the global mean (15%) tames outlier cells. Step 5 removes the hard cell borders that would otherwise read as a checkerboard *composition* cue.
|
||||
At the style recipe's default study side (384) the grid is 8×8 to 10×10 cells, so at most about 100 color samples survive from the entire image. No subject, no texture, no glyphs, and the style-gentle recipe pairs this with detail 0.05. Step 4's pull toward the global mean (15%) tames outlier cells. Step 3's bilinear upsample matters: an earlier nearest-neighbor version left hard cell borders that the encoder read as a literal *composition* cue - subjects came back as pixel-art mosaics. Smooth gradients plus the step 5 blur carry the same palette with no geometry to imitate.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ DEMOS = [
|
||||
refs=["krea-reference-examples/slot2_style_reference.png"],
|
||||
prompt="a modern table lamp in a clean studio product photo, no readable text",
|
||||
seed=972105, strengths=[0.75], timing="final details only",
|
||||
lesson="Same seed, same card, opposite timing: the prompt owns the early composition and the source arrives in the detail passes - its mosaic finish lands crisply on the prompt's lamp."),
|
||||
lesson="Same seed, same card, opposite timing: the prompt owns the early composition and the source arrives in the detail passes - its rose-and-sage palette lands as a crisp two-tone finish on the prompt's lamp."),
|
||||
dict(slug="counter-example-baseline", title="Counter-example journey: prompt only", recipe="(no cards)",
|
||||
refs=[], prompt="a sculptural table lamp in a clean studio product photo, no readable text",
|
||||
seed=972106, strengths=[],
|
||||
|
||||
|
After Width: | Height: | Size: 433 KiB |
|
After Width: | Height: | Size: 367 KiB |