---
title: The custom scoring rubric — Riverflow 2.5 Pro | Runware Docs
url: https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric
description: How to use scoringPrompt and scoringRubric on Sourceful Riverflow 2.5 Pro to drive different production workflows from the same brand inputs.
---
### [Introduction](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#introduction)

Image models are usually optimised for general-audience appeal. That works for one-off illustrations, but production creative is a different problem. The same brief and the same product assets can produce a wholesale catalog packshot, an editorial magazine spread, an Instagram Story, an email header, an outdoor billboard, or a lifestyle shot for a paid social ad. Each one is a different right answer for a different downstream job. **A prompt alone cannot decide between them.**

Riverflow 2.5 Pro lets you **encode that downstream context directly in the request**. Alongside the `positivePrompt`, you supply a `scoringPrompt` (a free-text framing of what you are judging for) and an optional `scoringRubric` (a structured set of weighted dimensions the internal judge scores each candidate against). After every edit the model performs, the judge scores the candidate against your rubric and either accepts the result or sends the candidate back for another iteration.

![A 16:9 brand creative showing the Acre Pantry granola bar family staged for a food magazine editorial spread, with warm directional natural light, a linen-draped wooden surface, a ceramic mug of coffee, scattered oats, and fresh berries arranged around the three bars](https://runware.ai/docs/assets/output-judges-editorial.C8QnBYgx_26xOjq.jpg)

*Hero example: the Acre Pantry family creative scored through an editorial food magazine rubric*

This guide walks through the request shape, then exercises the rubric across three distinct production patterns (a judge swap, a channel kit, and a packshot-to-lifestyle transformation), then breaks down the anatomy of a rubric dimension and the mechanics of writing strong dimensions.

### [Request shape](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#request-shape)

The call takes the source references, a `positivePrompt`, and a `settings` block that carries the `scoringPrompt` and the optional `scoringRubric`. The example below is one of the rubrics used in the judge-swap demo further down the guide.

**Request**:

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "model": "sourceful:riverflow-2.5@pro",
    "positivePrompt": "Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards.",
    "width": 1280,
    "height": 720,
    "inputs": {
      "referenceImages": [
        "https://example.com/ref-bar-cacao.jpg",
        "https://example.com/ref-bar-almond.jpg",
        "https://example.com/ref-bar-berry.jpg",
        "https://example.com/ref-logo.jpg"
      ]
    },
    "settings": {
      "thinkingLevel": "high",
      "scoringPrompt": "Score this image as a clean product catalog packshot for B2B retail buyers and e-commerce listings. The packshot must read clearly at thumbnail size and survive professional approval by a packaging stakeholder.",
      "scoringRubric": [
        {
          "key": "packDominance",
          "label": "Pack dominance",
          "description": "All three bar wrappers face front-on to the camera and the ACRE PANTRY wordmark plus each flavor name are clearly readable. The three bars together fill at least 60% of the frame area. No bars are partially cropped, rotated away from camera, or hidden.",
          "weight": 0.4,
          "passingScore": 0.7
        },
        {
          "key": "studioPurity",
          "label": "Studio purity",
          "description": "The frame contains ONLY the three bars and a pure white or near-white seamless studio background. NO food ingredients (no nuts, no berries, no chocolate, no oats, no honey). NO fabric or linen. NO plants or eucalyptus. NO ceramic mugs or bowls. NO scattered crumbs. NO atmospheric lighting. NO surface textures or wood grain. Any extra element in the frame is a scoring failure.",
          "weight": 0.4
        },
        {
          "key": "catalogConservatism",
          "label": "Catalog conservatism",
          "description": "Calm even three-point studio lighting, conservative front-on crops, no creative angles or dramatic shadows. Composition reads as approval-ready for a retail buyer rather than as a stylised concept piece.",
          "weight": 0.2
        }
      ]
    }
  }
]
```

**Response**:

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "imageUUID": "f1e2d3c4-b5a6-7890-1234-567890abcdef",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/f1e2d3c4-b5a6-7890-1234-567890abcdef.jpg",
    "seed": 837412938
  }
]
```

A few notes on the shape:

- The `scoringPrompt` is a **free-text framing line for the judge**. The `scoringRubric` is the **structured breakdown into weighted dimensions**. Each is independently valid. Sending `scoringPrompt` alone is the lightweight pattern when you want one quality preference without designing a full rubric. Sending both is the production shape when the judge needs both an overall framing and weighted criteria.
- The rubric is independent from the `positivePrompt`. The generator is not asked to think about catalog conservatism. The **judge** is asked to score for it after each candidate and reject results that fall short.
- `thinkingLevel` controls how many **edit-and-judge cycles** the model is allowed before settling. The rubric only does real work when the model has the budget to iterate against it.

### [Three judges, one prompt](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#three-judges-one-prompt)

The first production pattern is the headline one: same brief, same references, three different judging criteria. This is where the rubric concept lands clearest, because the *only* thing changing across the three calls is what the judge is rewarding.

The four supplied references are three bar wrappers and the brand logo card. They stay constant across all three calls below.

![Flat-lay product photograph of the Acre Pantry Cacao Crunch granola bar in a flow-wrap pillow pouch, kraft cream paper with ACRE PANTRY wordmark, CACAO CRUNCH flavor name, cacao bean illustration, and chocolate brown accent stripe](https://runware.ai/docs/assets/ref-bar-cacao.DfrTLTvY_Z2kBwYa.jpg)

*Cacao Crunch*

![Flat-lay product photograph of the Acre Pantry Honey Almond granola bar in a flow-wrap pillow pouch, kraft cream paper with ACRE PANTRY wordmark, HONEY ALMOND flavor name, almond illustration, and amber gold accent stripe](https://runware.ai/docs/assets/ref-bar-almond._Gn07BVU_Z1ONJI9.jpg)

*Honey Almond*

![Flat-lay product photograph of the Acre Pantry Wild Berry granola bar in a flow-wrap pillow pouch, kraft cream paper with ACRE PANTRY wordmark, WILD BERRY flavor name, berry sprig illustration, and berry purple accent stripe](https://runware.ai/docs/assets/ref-bar-berry.BC5GKQvL_O9oBu.jpg)

*Wild Berry*

![Flat-lay photograph of an Acre Pantry brand logo card on cream kraft paper](https://runware.ai/docs/assets/ref-logo.BVV0I0g5_Z12DcAt.jpg)

*Logo card*

The shared `positivePrompt` sent on all three calls is intentionally open-ended:

```text
Generate a marketing image for Acre Pantry, an artisan small-batch
granola bar brand, featuring their three granola bar SKUs (Cacao
Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper
references and the brand logo card. The composition may feature one
bar as a hero, two bars together, or all three of the SKUs depending
on what the scoring rubric rewards.
```

The prompt deliberately gives the model permission to use one bar, two bars, or all three. **The rubric decides which.**

![A clean studio packshot of the three Acre Pantry bars on a pure white seamless background with calm even lighting, no props, no food ingredients, no atmospheric staging](https://runware.ai/docs/assets/output-judges-studio.Bi83RmIv_Z1OXKPO.jpg)

*Studio packshot rubric: all three bars dominant, pure white background, zero props*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a clean product catalog packshot for B2B retail buyers and e-commerce listings. The packshot must read clearly at thumbnail size and survive professional approval by a packaging stakeholder.",
  "scoringRubric": [
    { "key": "packDominance", "label": "Pack dominance", "description": "All three bar wrappers face front-on to the camera and the ACRE PANTRY wordmark plus each flavor name are clearly readable. The three bars together fill at least 60% of the frame area. No bars are partially cropped, rotated away from camera, or hidden.", "weight": 0.4, "passingScore": 0.7 },
    { "key": "studioPurity", "label": "Studio purity", "description": "The frame contains ONLY the three bars and a pure white or near-white seamless studio background. NO food ingredients (no nuts, no berries, no chocolate, no oats, no honey). NO fabric or linen. NO plants or eucalyptus. NO ceramic mugs or bowls. NO scattered crumbs. NO atmospheric lighting. NO surface textures or wood grain. Any extra element in the frame is a scoring failure.", "weight": 0.4 },
    { "key": "catalogConservatism", "label": "Catalog conservatism", "description": "Calm even three-point studio lighting, conservative front-on crops, no creative angles or dramatic shadows. Composition reads as approval-ready for a retail buyer rather than as a stylised concept piece.", "weight": 0.2 }
  ]
}
```

![An editorial food magazine spread of the Acre Pantry bars on a linen-draped wooden surface with warm directional natural light, a ceramic mug of coffee, scattered oats, fresh berries, and a small bowl of cacao nibs](https://runware.ai/docs/assets/output-judges-editorial.C8QnBYgx_26xOjq.jpg)

*Editorial magazine rubric: props are required, bars smaller, atmospheric mood*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a premium food magazine editorial spread, photographed by an established food stylist for a slow-living lifestyle publication.",
  "scoringRubric": [
    { "key": "editorialMood", "label": "Editorial mood", "description": "Warm directional natural light from one side of the frame with soft fill on the other side. Slightly desaturated film-like colour palette. Reads as a working food photographer's editorial spread, not a packshot or an obvious ad. Atmosphere over literal product display.", "weight": 0.4 },
    { "key": "propsEssential", "label": "Props are essential", "description": "Considered editorial props are integral to the composition. The frame MUST include at least one natural-material surface (linen, weathered oak, ceramic slab, or stone), AND at least two consumable cues from this set: a ceramic mug of coffee or tea, scattered loose oats, a small bowl of fresh berries, a small dish of cacao nibs or chopped nuts, a folded linen napkin. An empty frame with only bars on a surface is a scoring failure.", "weight": 0.4 },
    { "key": "magazineCrop", "label": "Magazine crop", "description": "Off-centre composition with editorial sensibility. The bars may be smaller than the surrounding prop scene, partially out of frame, or shown from a three-quarter angle. The image earns its place on a magazine page rather than dominating it the way an ad would.", "weight": 0.2 }
  ]
}
```

![An outdoor poster composition with one Acre Pantry bar oversized as a single hero element on one side of the frame and the other half of the frame left as a flat solid copy zone ready for a tagline overlay](https://runware.ai/docs/assets/output-judges-poster.Yoku8gbz_2rreHk.jpg)

*Poster rubric: one bar as oversized hero, half the frame is a flat copy zone*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a poster designed for an outdoor billboard or a subway placement. It must read clearly from fifteen meters away and leave generous copy space for a tagline overlay.",
  "scoringRubric": [
    { "key": "singleHero", "label": "Single hero", "description": "ONE bar (not all three together) dominates the frame as an oversized hero element on one side of the composition. The other two flavors of the family may appear smaller in supporting positions or be omitted entirely. No competing focal points.", "weight": 0.4, "passingScore": 0.6 },
    { "key": "massiveCopyZone", "label": "Massive copy zone", "description": "At least HALF of the frame, along one edge, is unbroken solid copy space (a flat colour field) ready for a tagline overlay in HTML. NO props, NO food ingredients, NO fabric, NO secondary elements in that copy zone. The zone must be a single uniform colour, not a textured background.", "weight": 0.4 },
    { "key": "distanceImpact", "label": "Distance impact", "description": "Bold simple shapes, very high contrast between the hero bar and the background, no fine details that would disappear when viewed from a distance. The image reads at a small thumbnail preview just as clearly as at full size.", "weight": 0.2 }
  ]
}
```

The same generation brief produces three visually distinct outputs because each rubric **explicitly forbids what the other rubrics reward**. The studio rubric forbids the props that the editorial rubric requires. The editorial rubric allows the bars to shrink, which the studio rubric forbids. The poster rubric forbids three bars where the others want them, and reserves half the frame as a flat copy zone where the others would put atmosphere.

> [!NOTE]
> Sharp rubrics describe **what should not appear** as clearly as what should. A judge that only knows what the rubric wants will default to the model's general-audience taste for everything else. A judge that knows what the rubric forbids has clear ground to reject candidates on.

### [Channel-kit production](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#channel-kit-production)

The second production pattern is the **channel kit**: one product set, multiple deliverables sized and styled for different distribution channels. The same shared `positivePrompt` and references go into each call, but the request changes **two things at once**: the aspect ratio of the output, and a format-specific rubric that knows what that channel's deliverable needs to do.

Three channels rendered from the same Acre Pantry inputs:

![A square 1:1 product tile of the three Acre Pantry bars laid out for an e-commerce product grid with the bars dominating the frame and a clean pale background](https://runware.ai/docs/assets/output-kit-thumbnail.B5soUy1a_Z1iHj6s.jpg)

*1:1 catalog thumbnail (1024×1024): bars dominate, plain background, reads at 200px*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a square product tile for an e-commerce product grid. The tile must work at 200×200 pixel thumbnail size and convey the product instantly to a shopper scanning the grid.",
  "scoringRubric": [
    { "key": "thumbnailLegibility", "label": "Thumbnail legibility", "description": "All three bars fill at least 70% of the square frame, the three flavors are visually distinguishable from one another by their accent stripe colours, and the ACRE PANTRY wordmark is readable when the image is rendered at 200×200 pixels in a product grid.", "weight": 0.5, "passingScore": 0.7 },
    { "key": "gridConsistency", "label": "Grid consistency", "description": "Plain pale neutral background with no atmospheric props. No food ingredients in the frame. Reads cleanly alongside other product tiles in a grid layout without competing for attention against neighbouring tiles.", "weight": 0.3 },
    { "key": "instantProductHook", "label": "Instant product hook", "description": "Within half a second of seeing the tile, a viewer should know this is granola bars and recognise the three flavor variants at a glance. No ambiguity about what the product is.", "weight": 0.2 }
  ]
}
```

![A vertical 9:16 Instagram Story frame of the Acre Pantry bars stacked or staggered vertically with high contrast, vivid color, and bars positioned in the central thumb-zone for mobile viewing](https://runware.ai/docs/assets/output-kit-story.BK7c_YMl_Z1KANcH.jpg)

*9:16 social story (720×1280): vertical energy, scroll-stop hook, central thumb-zone*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as the first frame of a vertical 9:16 social story for Instagram Story or TikTok. It must stop the scroll within the first half second on a mobile device and clearly identify the product.",
  "scoringRubric": [
    { "key": "verticalEnergy", "label": "Vertical energy", "description": "Tall portrait composition that fills the 9:16 frame with confident visual interest. Bars positioned vertically (stacked or staggered) to use the tall format rather than ignoring it. The product is positioned in the central thumb-zone of the screen.", "weight": 0.4, "passingScore": 0.6 },
    { "key": "scrollStopHook", "label": "Scroll-stop hook", "description": "High contrast between subject and background, vivid colour energy, a dynamic angle, or unexpected staging that arrests the eye mid-scroll. The frame must feel like an ad worth tapping on, not a static catalogue still.", "weight": 0.4 },
    { "key": "mobileSafeZone", "label": "Mobile safe zone", "description": "Critical product elements (wordmark, flavor names) are positioned in the central two thirds of the vertical frame, away from the top and bottom edges where mobile UI overlays (profile pic, sticker tray, CTA button) typically sit.", "weight": 0.2 }
  ]
}
```

![A 16:9 wide banner of the Acre Pantry bars anchored on one side of the frame with the other side left as generous negative copy space for an email subject line and CTA overlay](https://runware.ai/docs/assets/output-kit-banner.DFy2UMFu_1H6zO2.jpg)

*16:9 email banner (1280×720): hero on one side, copy headroom on the other*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a wide brand banner for an email newsletter header or a paid display ad placement. It must read at a glance and leave generous copy headroom along one side for the email subject line and CTA.",
  "scoringRubric": [
    { "key": "heroAnchor", "label": "Hero anchor", "description": "One bar or one tight cluster of bars anchors one side of the wide 16:9 frame as a clear visual focal point. The other side of the frame is intentionally empty for copy overlay.", "weight": 0.4 },
    { "key": "copyHeadroom", "label": "Copy headroom", "description": "At least one-third of the wide frame is unbroken negative space along one edge, ready for an email subject line, body copy, and CTA button overlay. No competing elements in that zone.", "weight": 0.4 },
    { "key": "wideLegibility", "label": "Wide legibility", "description": "Bold simple shapes that read clearly when the banner is shown as a small email preview thumbnail. No fine details that would disappear at preview size.", "weight": 0.2 }
  ]
}
```

The same product family, the same brand inputs, the same `positivePrompt`. What differs is the aspect ratio plus a rubric that knows what that channel's job is. The 1:1 thumbnail rubric understands that a product tile lives next to other product tiles in a grid. The 9:16 rubric understands that the top and bottom of a mobile frame get eaten by UI. The 16:9 rubric understands that an email banner exists to host a subject line. Each format gets the framing it actually needs.

This is the rubric pattern that scales to real production: one set of brand inputs, a library of rubrics per channel, one call per deliverable.

### [Packshot to lifestyle](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#packshot-to-lifestyle)

The third production pattern is **image-to-image transformation**: send a single-SKU packshot reference, and the rubric decides what context that packshot gets transplanted into. Real brand teams pair specific SKUs with specific lifestyle contexts. The three calls below each send a different bar paired with the lifestyle direction that fits its narrative best: Honey Almond onto the trail, Wild Berry onto the Sunday morning counter, Cacao Crunch into the post-workout gym.

![The Acre Pantry Honey Almond bar resting on a sun-warmed granite rock outdoors with a hiking pack strap visible and pine forest in soft focus background, captured in bright midday natural light with a slight athletic grit](https://runware.ai/docs/assets/output-lifestyle-trail.ritPgzG__Z1Qexp5.jpg)

*Trail rest rubric, Honey Almond: outdoor context, natural daylight, athletic grit*

> **Prompt**: Generate a single-product lifestyle creative for Acre Pantry, an artisan small-batch granola bar brand, transforming the supplied Honey Almond bar packshot reference into a contextual scene. The bar is the hero of the frame. Preserve the bar wrapper accurately, with the ACRE PANTRY wordmark, the HONEY ALMOND flavor name, the almond illustration, and the warm honey amber gold accent stripe all faithfully reproduced. Do not invent additional bar elements, prices, or claims.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a single-product lifestyle creative for an outdoor or hiking apparel brand collaboration. The bar should feel like a snack that an actual hiker would eat at a trail rest stop on a sunny midday hike.",
  "scoringRubric": [
    { "key": "outdoorContext", "label": "Outdoor context", "description": "Natural outdoor daylight (bright midday sun or warm golden hour). Setting suggests outdoor activity through real surface and prop choices: a sun-warmed granite rock, a piece of weathered timber, a hiking pack strap or carabiner, low foothills or pine forest in soft focus in the background. No indoor cues, no kitchen surfaces, no ceramic mugs.", "weight": 0.4 },
    { "key": "barFidelity", "label": "Bar fidelity", "description": "The Acre Pantry Honey Almond bar wrapper from the supplied reference is reproduced accurately with the ACRE PANTRY wordmark, the HONEY ALMOND flavor name, the almond illustration, and the warm honey amber gold accent stripe all intact. No invented wrapper details or colours.", "weight": 0.4, "passingScore": 0.7 },
    { "key": "athleticGrit", "label": "Athletic grit", "description": "Composition carries slight grit: a touch of dust on a surface, a worn texture, a weathered material, an authentically used outdoor object. Not over-polished or sterile. Feels like a real snack moment, not a recreated studio shoot.", "weight": 0.2 }
  ]
}
```

![The Acre Pantry Wild Berry bar on an oak kitchen counter with soft side window light, a ceramic mug of coffee with rising steam, the corner of a folded newspaper, a small dish of berries, and scattered crumbs from a pastry](https://runware.ai/docs/assets/output-lifestyle-morning.CgBO264P_Z2lqQMW.jpg)

*Sunday morning rubric, Wild Berry: indoor kitchen context, soft window light, calm ritual*

> **Prompt**: Generate a single-product lifestyle creative for Acre Pantry, an artisan small-batch granola bar brand, transforming the supplied Wild Berry bar packshot reference into a contextual scene. The bar is the hero of the frame. Preserve the bar wrapper accurately, with the ACRE PANTRY wordmark, the WILD BERRY flavor name, the berry sprig illustration, and the deep berry purple accent stripe all faithfully reproduced. Do not invent additional bar elements, prices, or claims.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a single-product lifestyle creative for a slow-Sunday morning lifestyle brand. The bar should feel like part of a quiet weekend kitchen ritual with coffee and the morning paper.",
  "scoringRubric": [
    { "key": "kitchenContext", "label": "Kitchen context", "description": "Soft window light from the side, indoor warm color palette. Surfaces of natural ceramic, oak, or linen. Setting suggests a slow Sunday-morning kitchen counter, breakfast nook, or marble island. No outdoor cues, no rocks, no hiking gear, no dust.", "weight": 0.4 },
    { "key": "barFidelity", "label": "Bar fidelity", "description": "The Acre Pantry Wild Berry bar wrapper from the supplied reference is reproduced accurately with the ACRE PANTRY wordmark, the WILD BERRY flavor name, the berry sprig illustration, and the deep berry purple accent stripe all intact. No invented wrapper details or colours.", "weight": 0.4, "passingScore": 0.7 },
    { "key": "calmRitual", "label": "Calm ritual", "description": "Composition implies a slow morning ritual rather than a quick weekday snack: steam from a ceramic mug of coffee, the corner of a folded newspaper, scattered crumbs from a pastry, a small dish of berries. A weekend morning, not a Tuesday rush.", "weight": 0.2 }
  ]
}
```

![The Cacao Crunch bar in an indoor gym or training studio context with a cold sweating water bottle, a damp gym towel, weight plates or dumbbells in soft focus, and an in-the-moment post-workout recovery feel](https://runware.ai/docs/assets/output-lifestyle-training.DeLyaoHy_zk7J2.jpg)

*Post-training rubric, Cacao Crunch: indoor gym context, recovery energy, mid-workout grit*

> **Prompt**: Generate a single-product lifestyle creative for Acre Pantry, an artisan small-batch granola bar brand, transforming the supplied Cacao Crunch bar packshot reference into a contextual scene. The bar is the hero of the frame. Preserve the bar wrapper accurately, with the ACRE PANTRY wordmark, the CACAO CRUNCH flavor name, the cacao bean illustration, and the deep chocolate brown accent stripe all faithfully reproduced. Do not invent additional bar elements, prices, or claims.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a single-product lifestyle creative for an athletic or performance nutrition brand collaboration. The bar should feel like a recovery snack eaten immediately after a hard workout.",
  "scoringRubric": [
    { "key": "athleticContext", "label": "Athletic context", "description": "Indoor gym, training studio, or immediately-after-exercise setting. Real fitness equipment visible: a cold sweating water bottle, a damp gym towel, weight plates, dumbbells, a yoga mat, running shoes, or athletic apparel in soft focus. NO outdoor wilderness (no granite rocks, no foothills, no pine trees). NO slow morning rituals (no coffee mug, no newspaper, no pastry crumbs).", "weight": 0.4 },
    { "key": "barFidelity", "label": "Bar fidelity", "description": "The Acre Pantry Cacao Crunch bar wrapper from the supplied reference is reproduced accurately with the ACRE PANTRY wordmark, the CACAO CRUNCH flavor name, the cacao bean illustration, and the deep chocolate brown accent stripe all intact. No invented wrapper details or colours.", "weight": 0.4, "passingScore": 0.7 },
    { "key": "recoveryEnergy", "label": "Recovery energy", "description": "The composition implies a moment of immediate post-workout recovery, not a posed still-life. Condensation on a cold water bottle, a damp towel mid-grip, slightly disheveled equipment, in-the-moment feel rather than carefully styled.", "weight": 0.2 }
  ]
}
```

All three lifestyle rubrics share a `barFidelity` dimension with `passingScore: 0.7` because **every version needs the wrapper to render accurately**. That is a non-negotiable for brand work, which is exactly the case `passingScore` exists to enforce. The other two dimensions per rubric are the ones that differentiate the lifestyle direction, and each direction's context dimension explicitly forbids the cues the other two use.

This pattern is what the rubric enables for brand teams that need to atomise a single packshot into many in-context shots for a campaign launch, social calendar, or retailer-specific collaboration.

### [Anatomy of a rubric dimension](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#anatomy-of-a-rubric-dimension)

A `scoringRubric` is an array of one to eight dimensions. Each dimension has four required fields and two optional ones that tighten the judging behaviour:

- `key` (lowercase, alphanumeric, max 40 chars): machine-readable ID for the dimension. Appears in logs and judge output.
- `label` (max 80 chars): short human-readable name for the dimension.
- `description` (max 1000 chars): the actual judging criteria. The model uses this text to decide what to look for in each candidate. **The load-bearing field.**
- `weight` (positive number): relative importance. Weights are normalised internally, so `0.5 / 0.3 / 0.2` and `5 / 3 / 2` produce the same behaviour.
- `passingScore` (optional, 0 to 1): minimum score this dimension must reach for the candidate to be accepted. Use for non-negotiables.
- `scoreGuidance` (optional, up to 5 entries): score anchors that define what numeric scores mean. Each entry has a `score` (0 to 1) and a `description`. Anchors give the judge a consistent vocabulary across runs.

The three demos above each lean on a different combination. The **studio packshot** and **catalog thumbnail** rubrics use `passingScore` on their pack-clarity dimension as a hard floor. The **trail rest** and **Sunday morning** rubrics use `passingScore` on their `barFidelity` dimension because a misrendered wrapper kills the creative even if the lifestyle reads. The other dimensions in each rubric lean on weight alone.

> [!NOTE]
> Weights are normalised internally, but **descriptions are not**. A weak description gets effectively downweighted by the judge even when its numeric `weight` is high, because the judge has nothing concrete to score. Put the writing budget on `description`, not on tweaking weight numbers.

### [The description carries the rubric](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#the-description-carries-the-rubric)

The most common rubric pitfall is writing descriptions that sound like the rubric author's feelings rather than observable criteria the judge can score. To isolate the description as the variable, the next demo holds the `scoringPrompt`, the `positivePrompt`, the references, and `thinkingLevel` all constant. Only the rubric **descriptions** change between the two calls.

On the left, three vague dimensions ("looks good", "brand feel", "clean") that any image could plausibly satisfy. On the right, the studio packshot rubric from the judge-swap demo above, with descriptions written as observable specs ("the frame contains ONLY the three bars and a pure white seamless studio background", "no food ingredients", "no fabric", "no plants").

![A creative of the Acre Pantry bars generated with vague feelings-based rubric dimensions, settling on the model's default tasteful product photography style](https://runware.ai/docs/assets/output-desc-weak.CjOV6x1J_Z1KdNdx.jpg)

*Weak descriptions: the judge has nothing concrete to enforce*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a clean product catalog packshot for B2B retail buyers and e-commerce listings.",
  "scoringRubric": [
    { "key": "looksGood", "label": "Looks good", "description": "The image should look good and feel professional.", "weight": 0.5 },
    { "key": "brandFeel", "label": "Brand feel", "description": "The image should reflect the brand well.", "weight": 0.3 },
    { "key": "clean", "label": "Clean", "description": "The image should be clean and not too busy.", "weight": 0.2 }
  ]
}
```

![The same brief scored through observable spec-based descriptions: bars on a pure white seamless background with no props, no food ingredients, and no atmospheric elements](https://runware.ai/docs/assets/output-judges-studio.Bi83RmIv_Z1OXKPO.jpg)

*Strong descriptions: the judge has observable spec to enforce*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a clean product catalog packshot for B2B retail buyers and e-commerce listings. The packshot must read clearly at thumbnail size and survive professional approval by a packaging stakeholder.",
  "scoringRubric": [
    { "key": "packDominance", "label": "Pack dominance", "description": "All three bar wrappers face front-on to the camera and the ACRE PANTRY wordmark plus each flavor name are clearly readable. The three bars together fill at least 60% of the frame area. No bars are partially cropped, rotated away from camera, or hidden.", "weight": 0.4, "passingScore": 0.7 },
    { "key": "studioPurity", "label": "Studio purity", "description": "The frame contains ONLY the three bars and a pure white or near-white seamless studio background. NO food ingredients (no nuts, no berries, no chocolate, no oats, no honey). NO fabric or linen. NO plants or eucalyptus. NO ceramic mugs or bowls. NO scattered crumbs. NO atmospheric lighting. NO surface textures or wood grain. Any extra element in the frame is a scoring failure.", "weight": 0.4 },
    { "key": "catalogConservatism", "label": "Catalog conservatism", "description": "Calm even three-point studio lighting, conservative front-on crops, no creative angles or dramatic shadows. Composition reads as approval-ready for a retail buyer rather than as a stylised concept piece.", "weight": 0.2 }
  ]
}
```

The weak rubric is technically valid. The judge accepts it. But "looks good" and "feels professional" are not observable spec, so the judge has nothing concrete to score against and falls back to the model's default sense of visual appeal. The rubric is present in the request but **is not actually steering anything**.

Write descriptions like a creative reviewer would write notes to a designer. **State what should be in the frame, what should be visually dominant, and what should not appear.** Adjectives without referents give the judge nothing to work with.

### [Pairing with thinking level](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#pairing-with-thinking-level)

The rubric only does real work when the model has the budget to iterate against it. `thinkingLevel` is that budget knob. On `low`, the model takes one or two edit-and-judge passes and settles. On `high` or `xhigh`, it iterates until the candidate actually clears the rubric or until budget runs out.

Both outputs below use the editorial magazine rubric from the judge-swap demo. The only thing that changes is `thinkingLevel`.

![A creative generated with the editorial rubric at thinkingLevel low, where the model accepts an early candidate before the props-required dimension has had time to fully land](https://runware.ai/docs/assets/output-thinking-low.CPwdFfbs_2bSrKI.jpg)

*thinkingLevel: low, accepts an early candidate*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "low",
  "scoringPrompt": "Score this image as a premium food magazine editorial spread, photographed by an established food stylist for a slow-living lifestyle publication.",
  "scoringRubric": [
    { "key": "editorialMood", "label": "Editorial mood", "description": "Warm directional natural light from one side of the frame with soft fill on the other side. Slightly desaturated film-like colour palette. Reads as a working food photographer's editorial spread, not a packshot or an obvious ad. Atmosphere over literal product display.", "weight": 0.4 },
    { "key": "propsEssential", "label": "Props are essential", "description": "Considered editorial props are integral to the composition. The frame MUST include at least one natural-material surface (linen, weathered oak, ceramic slab, or stone), AND at least two consumable cues from this set: a ceramic mug of coffee or tea, scattered loose oats, a small bowl of fresh berries, a small dish of cacao nibs or chopped nuts, a folded linen napkin. An empty frame with only bars on a surface is a scoring failure.", "weight": 0.4 },
    { "key": "magazineCrop", "label": "Magazine crop", "description": "Off-centre composition with editorial sensibility. The bars may be smaller than the surrounding prop scene, partially out of frame, or shown from a three-quarter angle. The image earns its place on a magazine page rather than dominating it the way an ad would.", "weight": 0.2 }
  ]
}
```

![The same brief and the same rubric at thinkingLevel high, where the model iterates until both the editorial mood and the props-required dimensions clear](https://runware.ai/docs/assets/output-judges-editorial.C8QnBYgx_26xOjq.jpg)

*thinkingLevel: high, iterates until the rubric clears*

> **Prompt**: Generate a marketing image for Acre Pantry, an artisan small-batch granola bar brand, featuring their three granola bar SKUs (Cacao Crunch, Honey Almond, Wild Berry). Use the supplied bar wrapper references and the brand logo card. The composition may feature one bar as a hero, two bars together, or all three of the SKUs depending on what the scoring rubric rewards. Preserve any bar wrapper rendered in the image accurately, with the ACRE PANTRY wordmark, the flavor name, the small flavor illustration, and the flavor accent colour stripe all faithfully reproduced. Do not invent additional SKUs, prices, claims, or copy that did not appear on the supplied references.

```json
{
  "thinkingLevel": "high",
  "scoringPrompt": "Score this image as a premium food magazine editorial spread, photographed by an established food stylist for a slow-living lifestyle publication.",
  "scoringRubric": [
    { "key": "editorialMood", "label": "Editorial mood", "description": "Warm directional natural light from one side of the frame with soft fill on the other side. Slightly desaturated film-like colour palette. Reads as a working food photographer's editorial spread, not a packshot or an obvious ad. Atmosphere over literal product display.", "weight": 0.4 },
    { "key": "propsEssential", "label": "Props are essential", "description": "Considered editorial props are integral to the composition. The frame MUST include at least one natural-material surface (linen, weathered oak, ceramic slab, or stone), AND at least two consumable cues from this set: a ceramic mug of coffee or tea, scattered loose oats, a small bowl of fresh berries, a small dish of cacao nibs or chopped nuts, a folded linen napkin. An empty frame with only bars on a surface is a scoring failure.", "weight": 0.4 },
    { "key": "magazineCrop", "label": "Magazine crop", "description": "Off-centre composition with editorial sensibility. The bars may be smaller than the surrounding prop scene, partially out of frame, or shown from a three-quarter angle. The image earns its place on a magazine page rather than dominating it the way an ad would.", "weight": 0.2 }
  ]
}
```

Treat `thinkingLevel` and `scoringRubric` as **one tuning surface**. Sending a detailed rubric on `low` mostly wastes the rubric, because the model accepts an early candidate before the rubric has time to land. Sending no rubric on `xhigh` mostly wastes the budget, because the model burns its thinking allowance chasing its own default judge with no extra guidance. Match the budget to the work the rubric is doing.

> [!NOTE]
> `low` and `medium` are reasonable defaults for ideation and exploration. `high` is the sweet spot when the rubric is doing real work. `xhigh` is for production runs where outputs need to clear a strict rubric repeatedly and you accept the longer thinking time and higher cost.

### [Tips](https://runware.ai/docs/models/sourceful-riverflow-2-5-pro/guides/scoring-rubric#tips)

1. **Write descriptions like product specs, not feelings.** State what should be in the frame, what should be dominant, and what should not appear. The judge can score "the frame contains ONLY the three bars and a pure white seamless studio background, no food ingredients, no fabric". It cannot reliably score "looks good".
2. **Sharp rubrics explicitly forbid what other rubrics reward.** Studio purity forbids the props that editorial mood requires. Massive copy zone forbids the secondary elements that thumbnail legibility uses. Without explicit exclusions the model defaults to its general-audience taste and the rubrics converge.
3. **The lightweight pattern is one framing line, no rubric.** When you want one quality preference (for example, "reward outputs that read as approachable rather than aspirational") without designing a structured rubric, send only `scoringPrompt`. Add `scoringRubric` when the judge needs weighted dimensions to score against.
4. **Weights apportion attention, they do not add or drop dimensions.** If a dimension does not belong in the rubric, remove it. If it belongs but matters less, lower its `weight`. Weights are normalised internally, so only the relative values matter.
5. **Set a hard floor when a dimension is non-negotiable.** Pack fidelity, brand wordmark legibility, no fabricated SKUs. Use `passingScore` rather than just weighting the dimension high. The judge will reject candidates that miss the floor regardless of how well the rest of the rubric scores.
6. **Lock the scoring scale with anchors.** Without anchors, "0.6" on one run is not the same "0.6" on the next. With `scoreGuidance` describing what each score actually means, the judge has a consistent vocabulary across runs of the same rubric.
7. **Match the thinking budget to how much the rubric matters.** A `thinkingLevel` of low or medium is good for ideation. High or xhigh give the model the budget to actually iterate against the rubric until it scores well, which is when the rubric is doing real work.
8. **Build a rubric library, not a one-off.** The channel-kit pattern in this guide implies a real production workflow: one rubric per channel, one set of brand inputs, one call per deliverable. Naming and reusing rubrics is what lets a brand team scale this from a demo into a launch process.