Files
2026-08-11 09:53:42 -04:00

5.1 KiB
Raw Permalink Blame History

Side Cards — art direction

The approved visual reference is the J/Q/K of Hearts family in concepts/. Court figures are final raster illustrations generated locally with Draw Things; they are not hand-traced. tools/build_deck.py embeds each illustration inside a standalone SVG and adds dependable card geometry.

Look

  • Original Anglo-American court-card illustration
  • Crisp flat fills with strong black keylines
  • Traditional two-way composition
  • Ornate garments without photorealistic lighting or 3D rendering
  • Restrained red, black, gold, muted-blue and warm-skin palette
  • No generated rank letters, typography, logos or watermarks

Approximate palette sampled from the approved family:

Role Colour
Stock #fcfcfa
Keyline #0e0d0d
Red #a21b1e
Gold #b99a34
Muted blue #354c58
Skin #f0d2b6

These values guide generation; the raster art is not mechanically recoloured.

Court family

Rank Figure Prop
Jack young knave, shoulder-length hair upright halberd
Queen crowned queen stylized flower
King mature bearded king, crowned upright sword

Diamonds emphasize angular red-and-gold ornament. Clubs and Spades emphasize black and muted blue with red-and-gold accents. All twelve should feel related, but they do not need identical faces or frames.

Deterministic card elements

tools/build_deck.py, not the image model, owns:

  • corner rank indices
  • suit marks and number-card pip layouts
  • one continuous inner court frame
  • final 5:7 card geometry
  • the outer card edge

The outer card and artwork clip use a 24-unit circular radius on the 500 x 700 viewBox, equivalent to approximately 3.05 mm on a 63.5 x 88.9 mm poker card. The two-unit inset outline uses radius 22 so its curve remains concentric. The gallery expresses the same circular curve as 4.8% / 3.4286%; a single CSS percentage would create an elliptical radius on a 5:7 element.

Rank indices use Roboto Slab SemiBold, converted to SVG outlines during the build without synthetic horizontal distortion. This provides large, clear slab forms without depending on an installed font. Roboto Slab is distributed under Apache License 2.0; the local license copy is assets/fonts/RobotoSlab-Apache-2.0.txt.

Rank outlines share a font baseline at y=85 and are sized from cap height, rather than top-aligned or fitted around descenders. This lets Q retain its natural tail and weight without a synthetic outline. Single ranks have a 63-unit width allowance so the naturally wide A/K reach full cap height; the two-character 10 has 76 units so it also remains comparable.

Mini suits remain centred at y=127 and are optically scaled by silhouette (S 0.78, H 0.71, D 0.92, C 0.78), rather than being forced to one geometric scale. Their rendered footprints—not equal ink density—are checked as a group during the deck audit so dense marks are not made visually undersized.

The Heart is a purpose-drawn, classic silhouette with a pronounced cleft, distinct lobes, a near-square proportion, and a long sharp point. Number-card field pips are likewise optically balanced by suit (S 1.50, H 1.28, D 1.75, C 1.43). Ace and court marks have their own role-specific optical scales so each Ace carries comparable ink and the fuller Heart does not crowd a court figure.

The Club follows the familiar traditional card form rather than an equilateral trefoil: equal lower lobes sit wider and lower than the top lobe, a smaller central boss joins the three, and a short flared stem finishes the mark. Its required symmetry is bilateral, not three-fold rotational symmetry.

Generated suit pips are replaced with the correct SVG suit mark. Generated frame segments are locally inpainted out while the figure is extracted, then one continuous SVG frame is drawn behind the figure. The approved upper figure is rotated exactly 180 degrees for the lower end, with a symmetric blended join through the centre.

The assembly step also normalizes the generated figure envelope around the card centre using uniform scaling only: K♣/K♦ use 0.95 and K♥/K♠ use 0.97. Jacks and Queens remain at native scale. The resulting painted areas stay within roughly five percent without distorting faces or garments. Club and Spade field emblems receive a five-pixel optical shift away from the figure; their mirrored lower marks are derived from the same coordinates.

Generation settings

  • Model: qwen_image_2512_bf16_i8x.ckpt
  • Working size: 640×896
  • Sampler: DPMPP2MTrailing
  • Steps: 30
  • Guidance: 4.0
  • img2img strength: 0.68

The corresponding Heart card is the composition/style reference for every non-Heart court. Run tools/render_court.py --remaining to create missing renders without overwriting existing ones.

Output sizes

No smallest production size has been chosen. The SVG cards scale freely; court illustrations remain 640×896 raster artwork inside them. If a future use needs large-format print, upscale or regenerate the courts for that real requirement. Do not build alternate thumbnail art until the game actually needs it.

masters/queen-hearts.svg is an archived hand-vector experiment and is not part of the current deck pipeline.