Illustration Generation (Quiver Arrow)
Prompt-to-SVG via Quiver's Arrow 1.1 model. Black-box generation, paid per call.
When to use this vs scientific-drawing
| Task |
Use |
| Logo, icon, decorative illustration, stylized graphic |
illustration-gen |
| Architecture/ERD/flowchart, math diagram, plot, technical figure |
scientific-drawing |
| Anything where you'll edit control points, replay deterministically, or version-control the source |
scientific-drawing |
Arrow generates non-deterministically and costs credits per call. The output is editable SVG, but you can't re-derive it from source — re-prompting gives a different result.
Setup (one-time)
# Get a key at app.quiver.ai \u2192 API keys, then:
export QUIVERAI_API_KEY=qvr_...
Add the export to ~/.zshrc (or ~/.config/zsh/.env) for persistence.
Usage
uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py "a minimalist fox logo" -o fox.svg
Flags:
| Flag |
Default |
Notes |
-o, --output |
illustration-<ts>.svg |
With --n>1, becomes <stem>_<i>.svg |
-m, --model |
arrow-1.1 |
Use arrow-1.1-max for detailed assets (higher cost) |
-i, --instructions |
none |
Refinements: palette, line weight, style constraints |
-n, --n |
1 |
Number of variants |
Examples:
# Single output
uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \
"isometric server rack with cables" -o rack.svg
# Higher-quality model with style instructions
uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \
"abstract geometric crest" \
-m arrow-1.1-max \
-i "two-color flat fill, no gradients, thick strokes" \
-o crest.svg
# Multiple variants for selection
uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \
"lab notebook icon" -n 4 -o notebook.svg
# \u2192 notebook_0.svg, notebook_1.svg, notebook_2.svg, notebook_3.svg
API contract
- Endpoint:
POST https://api.quiver.ai/v1/svgs/generations
- Auth:
Authorization: Bearer $QUIVERAI_API_KEY
- Models:
arrow-1.1, arrow-1.1-max
- Response:
{id, created, data: [{svg, mime_type}], credits}
Pricing: prepaid credits (see quiver.ai/pricing). Script prints credits charged on each call.
Troubleshooting
| Problem |
Fix |
QUIVERAI_API_KEY not set |
Export the key (see Setup) |
HTTP 401 |
Key invalid or revoked — regenerate at app.quiver.ai |
HTTP 402 |
Out of credits — top up at quiver.ai/pricing |
HTTP 429 |
Rate-limited — back off and retry |
| Non-SVG response |
Check the printed payload; report upstream if persistent |
$ARGUMENTS
1---2name: illustration-gen3description: Use when: paid Quiver Arrow SVG logo/icon from prompt. NOT precise technical diagrams (/scientific-drawing).4---56# Illustration Generation (Quiver Arrow)78Prompt-to-SVG via Quiver's Arrow 1.1 model. Black-box generation, paid per call.910## When to use this vs scientific-drawing1112| Task | Use |13|------|-----|14| Logo, icon, decorative illustration, stylized graphic | **illustration-gen** |15| Architecture/ERD/flowchart, math diagram, plot, technical figure | **scientific-drawing** |16| Anything where you'll edit control points, replay deterministically, or version-control the source | **scientific-drawing** |1718Arrow generates non-deterministically and costs credits per call. The output is editable SVG, but you can't re-derive it from source — re-prompting gives a different result.1920## Setup (one-time)2122```bash23# Get a key at app.quiver.ai \u2192 API keys, then:24export QUIVERAI_API_KEY=qvr_...25```2627Add the export to `~/.zshrc` (or `~/.config/zsh/.env`) for persistence.2829## Usage3031```bash32uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py "a minimalist fox logo" -o fox.svg33```3435Flags:3637| Flag | Default | Notes |38|------|---------|-------|39| `-o, --output` | `illustration-<ts>.svg` | With `--n>1`, becomes `<stem>_<i>.svg` |40| `-m, --model` | `arrow-1.1` | Use `arrow-1.1-max` for detailed assets (higher cost) |41| `-i, --instructions` | none | Refinements: palette, line weight, style constraints |42| `-n, --n` | 1 | Number of variants |4344Examples:4546```bash47# Single output48uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \49 "isometric server rack with cables" -o rack.svg5051# Higher-quality model with style instructions52uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \53 "abstract geometric crest" \54 -m arrow-1.1-max \55 -i "two-color flat fill, no gradients, thick strokes" \56 -o crest.svg5758# Multiple variants for selection59uv run python3 ~/Projects/skills/illustration-gen/scripts/generate.py \60 "lab notebook icon" -n 4 -o notebook.svg61# \u2192 notebook_0.svg, notebook_1.svg, notebook_2.svg, notebook_3.svg62```6364## API contract6566- Endpoint: `POST https://api.quiver.ai/v1/svgs/generations`67- Auth: `Authorization: Bearer $QUIVERAI_API_KEY`68- Models: `arrow-1.1`, `arrow-1.1-max`69- Response: `{id, created, data: [{svg, mime_type}], credits}`7071Pricing: prepaid credits (see quiver.ai/pricing). Script prints credits charged on each call.7273## Troubleshooting7475| Problem | Fix |76|---------|-----|77| `QUIVERAI_API_KEY not set` | Export the key (see Setup) |78| `HTTP 401` | Key invalid or revoked — regenerate at app.quiver.ai |79| `HTTP 402` | Out of credits — top up at quiver.ai/pricing |80| `HTTP 429` | Rate-limited — back off and retry |81| Non-SVG response | Check the printed payload; report upstream if persistent |8283$ARGUMENTS