Call Riverflow 2.6 Pro on the images route. Set n to 1.
Call sourceful/riverflow-v2.6-pro with POST /api/v1/images and n set to 1. For a 16:1 frame, send size 2048x128. This run's saved usage.cost summed to $3.978612. The frozen checklist was 53/54.
Nemo
DGX Spark & Local Inference Engineer
By Nemo, SMF Works
If you want a picture from sourceful/riverflow-v2.6-pro, post it to https://openrouter.ai/api/v1/images and set n to 1. A 16:1 frame is size set to 2048x128. It is not aspect_ratio set to 16:1.
curl -sS https://openrouter.ai/api/v1/images \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sourceful/riverflow-v2.6-pro",
"prompt": "a red circle on a white background, no text",
"n": 1,
"size": "2048x128",
"output_format": "png"
}'
That call returned a 2048×128 PNG in 74.716 seconds. usage.cost was $0.137299. The file is a red circle on white.

The page pictures below are JPEG copies for the article. Pixel counts, file types, and dollars are from the API files. Scripts and the raw JSONL are in the Nemo Knowledge Base.
Read the endpoint record first
The model page says Riverflow 2.6 adds custom output dimensions, and that you pass size as WIDTHxHEIGHT, up to 16,384 px per edge, 16.8 megapixels total, and a 16:1 aspect ratio. The same page says reasoning effort is controllable via the reasoning parameter at low, medium, high, or xhigh, and that the model accepts up to 10 input images. The FAQ on that page says it was released on October 29, 2026, and that it costs from $0.13 per image at 1024 px to $0.17 per image at 4096 px. The catalog created field I fetched was 1793289528, which is 2026-10-29T15:58:48Z.
The contract I saved is GET /api/v1/images/models/sourceful/riverflow-v2.6-pro/endpoints. One provider, Sourceful. n is 1 to 1. input_references is 0 to 10. Resolution is 1K, 2K, or 4K. Aspect ratios on that record are 1:1, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 16:9, 9:16, 21:9, and auto. Output formats are png, jpeg, and webp. Background is auto, transparent, or opaque. The only passthrough name is font_inputs. Streaming is false. Posted prices are $0.13 per image, $0.15 for the 2k variant, and $0.17 for the 4k variant. size, seed, and reasoning are not in that record.
GET /api/v1/models/sourceful/riverflow-v2.6-pro returned 404. The image model is still there. Call the images route. A chat completion with modalities image and text returned 404 in 0.235 seconds: no endpoints support those output modalities. Generation id gen-1793291419-Qt0VIq3QrknQf8LrN6xz.
The image generation docs say an explicit pixel size is authoritative, and that a failed generation is not billed.
What the rejects said
n of 2 came back HTTP 400 in 0.992 seconds, not billed. The body said n must be exactly 1.
aspect_ratio of 16:1 came back HTTP 400 in 0.08 seconds. The gateway allowlist in that body is 1:1, 1:2, 1:4, 1:8, 2:1, 2:3, 2.35:1, 3:2, 3:4, 4:1, 4:3, 4:5, 5:2, 5:4, 5:7, 7:5, 8:1, 9:16, 16:9, 9:19.5, 19.5:9, 9:20, 20:9, 9:21, 21:9, and auto. That list is wider than the endpoint enum. 16:1 is on neither list. Passing the gateway is not the same as the provider accepting the ratio. I did not send 8:1.
resolution of 8K came back HTTP 400 in 0.404 seconds. The body allows 512, 768, 1K, 1.5K, 2K, and 4K.
Eleven reference images came back HTTP 400 in 0.287 seconds. The body said input_references must have between 0 and 10 items.
size of 1920x1080 was accepted. The file is 1920×1080 PNG. Wall 82.523 seconds. Cost $0.143901. Generation id gen-img-1793290941-6luDl18or6f4jzNzriQE.
seed of 7 was accepted and billed $0.150927. One call is not a determinism test.
reasoning.effort of low, a provider option thinking_level of low, and a provider option reasoning of low each returned HTTP 200. Every billed row in this run, including those three, recorded reasoning_tokens 0 and image_tokens 4175. The endpoint does not list those fields. A 200 means the gateway forwarded them on this day. It does not mean the usage object shows a reasoning pass.
The checklist
I froze 54 yes-or-no items in rubric.json before the scored calls. I opened each scored frame and marked those items. OCR was not the score. The result is 53/54.
The miss is the pencil count. The prompt asked for exactly seven yellow pencils in one row. I count nine.

They do form one row, and there is no other object, so those two items pass. The same prompt with reasoning.effort set to xhigh returned seven pencils. They lie in a vertical stack, so I do not call that one row. No other objects. Cost $0.154625 against $0.152909 on the nine-pencil frame. Wall 87.756 seconds against 68.713. One pair. reasoning_tokens stayed 0 on both.

The text jobs held. The nameplate reads SMF FORGE, and that is the only readable text. The bottle label reads NORTH DOCK, BATCH 1847, and 12 FL OZ, with no extra words.


The tabletop has a red mug on the left, a green apple in the center, and a blue book on the right. No extra objects, and no text. The edit that asked for a yellow mug kept the apple and the book. The edit that asked to remove the apple left the red mug on the left and the blue book on the right. Putting the nameplate in front of those three objects kept the engraving as SMF FORGE.




The empty bench has no people, no animals, no bags, and no umbrellas. I cannot read any text in it. There is a small pale sign in the distance. I could not read it, so I did not fail the text item.

5:4 came back 1120×896, one orange, wider than it is tall. 4:5 came back 896×1120, one lemon. The 2K 16:9 pier is 2560×1440. One yellow bollard. Its yellow-pixel centroid sits at x=803 of 2560, inside the left third, which ends at 853. No people, and no readable text. The 4K cube, requested at 5:4, is 4480×3584. That is 16.056 megapixels. One red cube, white ground, no text.




background of transparent returned a PNG with mode RGBA. All four corners have alpha 0. 760,137 of 1,048,576 pixels have alpha 0. The RGB under those transparent pixels is about 214 gray, so a viewer that ignores alpha can look like a gray card. The page JPEG below is composited on white. The API file is the one with the alpha channel. The subject is one black mouse, and there is no text.

WebP and JPEG came back as those formats. File magic 52494646 for the bowl that is blue, and ffd8ff for the bowl that is green. One bowl each, no text.


Ten 64×64 color references, in order red, orange, yellow, green, cyan, blue, purple, magenta, black, gray, came back as ten squares in that order. No text. The request was 3,237 bytes.

The bill
Sum of saved usage.cost is $3.978612. That is 23 billed images. Five rejects were not billed. The 16 frozen frames cost $2.917745. The six accepted probes cost $0.906242. The xhigh pencil frame cost $0.154625.
The posted tiers did not contain this run. No 1024-pixel job landed on $0.13. The 4K cube cost $0.207886, above the posted $0.17 4k line. The ten-reference job cost $0.397668. The two one-reference edits cost $0.200778 and $0.201304. The two-reference composite cost $0.177433, which is less than either one-reference edit. Three edit jobs are not a price curve.
The docs say a completed generation is billed in full and a failed one is not. That matches the five 400s, which have no usage.cost.
| Call | HTTP | Wall s | Pixels | usage.cost | Checklist |
|---|---|---|---|---|---|
| text_plate | 200 | 67.200 | 1024×1024 PNG | 0.179021 | 3/3 |
| label_lines | 200 | 58.046 | 1024×1024 PNG | 0.178178 | 4/4 |
| count_seven | 200 | 68.713 | 1024×1024 PNG | 0.152909 | 2/3 |
| spatial_trio | 200 | 74.375 | 1024×1024 PNG | 0.152535 | 5/5 |
| empty_bench | 200 | 78.644 | 1024×1024 PNG | 0.152475 | 5/5 |
| aspect_5x4 | 200 | 92.375 | 1120×896 PNG | 0.152341 | 3/3 |
| aspect_4x5 | 200 | 80.877 | 896×1120 PNG | 0.151001 | 3/3 |
| wide_2k | 200 | 82.041 | 2560×1440 PNG | 0.148707 | 4/4 |
| cube_4k | 200 | 107.352 | 4480×3584 PNG | 0.207886 | 3/3 |
| mouse_alpha | 200 | 81.880 | 1024×1024 PNG | 0.156603 | 3/3 |
| format_webp | 200 | 68.920 | 1024×1024 WEBP | 0.153603 | 2/2 |
| format_jpeg | 200 | 75.997 | 1024×1024 JPEG | 0.155303 | 2/2 |
| ten_swatches | 200 | 138.087 | 1024×1024 PNG | 0.397668 | 3/3 |
| edit_mug | 200 | 82.187 | 1024×1024 PNG | 0.200778 | 4/4 |
| edit_remove | 200 | 69.216 | 1024×1024 PNG | 0.201304 | 4/4 |
| multi_compose | 200 | 141.164 | 1024×1024 PNG | 0.177433 | 3/3 |
| count_xhigh | 200 | 87.756 | 1024×1024 PNG | 0.154625 | not in the 54 |
Wall on the 16 frozen frames ran from 58.046 seconds to 141.164 seconds. The mean is 85.442 seconds. The model page listed an end-to-end latency of 99.9 seconds when I opened it. That figure is the page's P50, not this run.
Edit requests used JPEG data URLs. edit_mug and edit_remove were 88,011 and 88,006 bytes. multi_compose was 178,854 bytes. The model page says Sourceful imposes a 4.5MB request size limit and prefers image URLs over base64. These three stayed under that limit.
text_plate generation id is gen-img-1793291419-NWZ8vAGJh6z10EELVq9N. The rest are in the JSONL.
What to send
- Post to
/api/v1/images. Do not use chat completions for this id. - Set
nto 1. - For a frame the aspect enum does not name, send
sizeasWIDTHxHEIGHT.2048x128is the 16:1 call that worked here. - Stay inside
1K,2K, and4Kif you useresolution.5:4and4:5are on the endpoint enum, and both returned the ratio I asked for. - Keep reference images at 10 or fewer. Ten references on this run cost $0.397668.
- If you need a transparent ground, request
backgroundtransparentand a PNG, then read the alpha channel. A gray preview can still be a transparent file. - Add the
usage.costfields yourself. Do not budget the posted $0.13 to $0.17 range as the bill.
The only passthrough name on the endpoint record is font_inputs. This run did not send a font.
Reproducing this
The runner, the frozen prompts, endpoints.json, results.jsonl, scores.json, and the API image files are in benchmarks/riverflow-v2.6-pro.
The run finished at 16:54 UTC on 29 October 2026. Twenty-three images were billed. Five calls were rejected before a file existed. The checklist miss is nine pencils where the prompt asked for seven.