Compare AI Image Generation Models
Promptfoo example comparing QuiverAI's Arrow SVG models across text-to-SVG, image vectorization, and a GPT Image-2 pipeline, LLM-judged.
Why it matters
Evaluate and compare the performance of QuiverAI's Arrow models for text-to-SVG generation and image vectorization. Utilize an LLM-as-judge rubric for objective quality assessment across multiple workflows.
Outcomes
What it gets done
Compare Arrow 1.1 and Arrow 1.1 Max models.
Evaluate text-to-SVG generation.
Assess image-to-SVG vectorization.
Run a chained GPT Image-2 to QuiverAI pipeline.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/pfoo-provider-quiverai | bash Steps
Steps in the chain
Overview
Provider Quiverai
A promptfoo example comparing QuiverAI's Arrow SVG generation and vectorization models, plus a chained GPT Image-2-to-QuiverAI pipeline, all scored with a custom SVG-aware LLM rubric and validated via is-xml. Use it as a reference for comparing QuiverAI Arrow model quality or building a raster-to-vector pipeline with GPT Image-2, tracking credit cost per result and expecting slower runs from the chained pipeline suite.
What it does
This promptfoo example compares QuiverAI's Arrow models - Arrow 1.1 and Arrow 1.1 Max - across three workflows: text-to-SVG generation, image-to-SVG vectorization, and a chained GPT Image-2 -> QuiverAI vectorize pipeline. Every workflow is scored with an LLM-as-judge rubric so quality can be compared side-by-side.
export QUIVERAI_API_KEY=your-api-key
export OPENAI_API_KEY=your-openai-key # Required for the pipeline + llm-rubric grader
npx promptfoo@latest init --example provider-quiverai
The generation suite (npx promptfoo@latest eval) compares Arrow 1.1, Arrow 1.1 Max, and an Arrow 1.1 variant using instructions style guidance side-by-side. The vectorize suite (-c promptfooconfig.vectorize.yaml) converts raster reference images into SVGs with both Arrow models to compare fidelity, using repo-hosted fixture images to keep the walkthrough stable against third-party image-host changes. The pipeline suite (-c promptfooconfig.pipeline.yaml) chains OpenAI's gpt-image-2 (high-quality raster generation) with the QuiverAI vectorize endpoint to produce a coherent icon set, implemented as a custom JS provider in pipeline-provider.js that hits both APIs serially per call, so it runs slower wall-clock than a single-provider eval. A May 2026 live cost reference: the raster step (gpt-image-2) bills at OpenAI's image pricing, the arrow-1.1 vectorize step costs 15 credits, and arrow-1.1-max costs 20 credits - credits flow through to result.metadata.credits for eval budgeting, and current pricing can be checked via GET /v1/models' pricing_credits field since QuiverAI prices are model- and operation-specific.
It demonstrates is-xml assertions to validate SVG structure, a custom llm-rubric with a custom rubricPrompt tailored for SVG-specific evaluation, and streaming enabled by default for faster generation. Common configuration options: for generation, instructions (style guidance separate from the prompt), references (reference images as a URL string, { url }, or { base64 }), and n (1-16 outputs per request); for vectorization, image (override the image input), auto_crop (crop to the dominant subject before vectorizing), and target_size (square resize target, 128-4096px); and shared across both, temperature (0-2, default 1), max_output_tokens (1-131,072), and stream (set false to enable response caching).
When to use - and when NOT to
Use it as a reference for comparing QuiverAI's Arrow models on text-to-SVG generation or image vectorization quality, or for building a raster-then-vectorize pipeline chaining GPT Image-2 with QuiverAI, with LLM-judged SVG-specific scoring via is-xml and a custom rubric.
It requires both QUIVERAI_API_KEY and OPENAI_API_KEY (the latter needed for both the pipeline step and the llm-rubric grader). The pipeline suite runs noticeably slower than the single-provider suites since each call hits two APIs serially - budget wall-clock time accordingly, and track result.metadata.credits to budget QuiverAI usage cost.
Inputs and outputs
Input is text prompts (for generation) or raster reference images (for vectorization or the pipeline), plus the QUIVERAI_API_KEY and OPENAI_API_KEY environment variables. Output is generated or vectorized SVGs, validated for structure via is-xml and scored via a custom SVG-specific llm-rubric, with credit-cost metadata attached per result for budgeting.
Integrations
Integrates QuiverAI's Arrow 1.1/Arrow 1.1 Max generate and vectorize endpoints with OpenAI's gpt-image-2 model via a custom JS provider, evaluated through promptfoo's is-xml and llm-rubric assertions.
Who it's for
Developers comparing SVG generation/vectorization quality across QuiverAI's Arrow models, or building a raster-to-vector pipeline combining GPT Image-2 with QuiverAI, who need LLM-judged, SVG-aware evaluation and cost tracking.
Source README
provider-quiverai (QuiverAI SVG Generation, Vectorization & Pipelines)
Compare QuiverAI's Arrow models - including Arrow 1.1 and Arrow 1.1 Max - across three workflows: text-to-SVG generation, image-to-SVG vectorization, and a chained GPT Image-2 → QuiverAI vectorize pipeline. Every workflow is scored with an LLM-as-judge rubric so you can compare quality side-by-side.
Setup
export QUIVERAI_API_KEY=your-api-key
export OPENAI_API_KEY=your-openai-key # Required for the pipeline + llm-rubric grader
npx promptfoo@latest init --example provider-quiverai
Run the generation suite
npx promptfoo@latest eval
This compares Arrow 1.1, Arrow 1.1 Max, and an Arrow 1.1 variant with instructions style guidance side-by-side.
Run the vectorize suite
npx promptfoo@latest eval -c promptfooconfig.vectorize.yaml
Converts raster reference images into SVGs with both Arrow 1.1 and Arrow 1.1 Max so you can compare fidelity.
The sample inputs are repo-hosted fixtures, which keeps the walkthrough stable
when third-party image hosts change behavior.
Run the GPT Image-2 → QuiverAI pipeline
npx promptfoo@latest eval -c promptfooconfig.pipeline.yaml
Chains OpenAI gpt-image-2 (high-quality raster) with the QuiverAI vectorize endpoint to produce a coherent red-panda icon set. The pipeline is a custom JS provider in pipeline-provider.js; each call hits both APIs serially, so expect longer wall-clock times than a single-provider eval.
Example live cost reference from the May 2026 verification run:
| Step | Model | Credits / cost |
|---|---|---|
| Raster step | gpt-image-2 |
OpenAI image pricing |
| Vectorize step | arrow-1.1 |
15 credits |
| Vectorize step | arrow-1.1-max |
20 credits |
Credits flow through to result.metadata.credits so you can budget evals. CheckGET /v1/models for the current pricing_credits; QuiverAI prices are
model- and operation-specific.
What This Example Shows
- Generation: text → SVG with three side-by-side providers
- Vectorization: image → SVG with the
quiverai:vectorize:<model>route - Pipeline: a custom JS provider that chains GPT Image-2 + QuiverAI vectorize
is-xmlto validate SVG structurellm-rubricwith a customrubricPromptfor SVG-specific evaluation- Streaming on by default for faster generation
Common Configuration Options
| Option | Endpoint | Description |
|---|---|---|
instructions |
generate | Style guidance separate from the prompt |
references |
generate | Reference images: URL string, { url }, or { base64 } |
n |
generate | Number of outputs per request (1-16) |
image |
vectorize | Override image input from prompt ({ url } or { base64 }) |
auto_crop |
vectorize | Crop to the dominant subject before vectorization |
target_size |
vectorize | Square resize target in pixels (128-4096) |
temperature |
both | Randomness (0-2, default 1) |
max_output_tokens |
both | Output token cap (1-131,072) |
stream |
both | Set false to enable response caching |
Learn More
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.