Skip to content
Esc
navigateopen⌘Jpreview
On this page

Text to SVG

Generate SVG graphics from text prompts with optional reference images.

Generate one or more SVGs from a text prompt and optional reference images via POST /v1/svgs/generations.

Examples below use arrow-1.1. To discover model IDs available to your organization, call GET /v1/models. Arrow 1.1 is the general-purpose release model; Arrow 1.1 Max is the higher-fidelity variant for detail-sensitive work.

Set stream: true to receive reasoning, draft, and content Server-Sent Events while the SVG is being produced.

Examples

Elegant calligraphic script

Calligraphy
Japanese crane illustration
Illustration
Heraldic lion crest
Logo

Calligraphy

Prompt: “Elegant calligraphic script in a flowing hand-lettered style, single continuous stroke”

import { QuiverAI } from "@quiverai/sdk";

const client = new QuiverAI({
  bearerAuth: process.env["QUIVERAI_API_KEY"],
});

const result = await client.createSVGs.generateSVG({
  model: "arrow-1.1",
  prompt: "Elegant calligraphic script in a flowing hand-lettered style, single continuous stroke",
});
curl --request POST \
  --url https://api.quiver.ai/v1/svgs/generations \
  --header 'Authorization: Bearer <QUIVERAI_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "arrow-1.1",
    "prompt": "Elegant calligraphic script in a flowing hand-lettered style, single continuous stroke"
  }'

Illustration

Prompt: “Japanese crane in traditional woodblock illustration style with warm earth tones”

const result = await client.createSVGs.generateSVG({
  model: "arrow-1.1",
  prompt: "Japanese crane in traditional woodblock illustration style with warm earth tones",
  instructions: "Use a warm muted palette with detailed feather work",
});

Prompt: “Heraldic lion crest with ornate medieval style details and gold gradient accents”

const result = await client.createSVGs.generateSVG({
  model: "arrow-1.1",
  prompt: "Heraldic lion crest with ornate medieval style details and gold gradient accents",
});

Choosing a model

  • Use arrow-1.1 for most text-to-SVG generation. It improves prompt following, structure, and cost efficiency over Arrow 1.0 while keeping outputs clean and editable.
  • Use arrow-1.1-max when output quality is the priority. It is better suited to dense illustrations, logos with tight geometry, technical diagrams, and other compositions where precision matters more than speed.

Writing prompts

Include these elements for the best results:

  • Subject: What is in the image? Be specific. For example, “a logo for an eco-friendly coffee company”.
  • Style: What is the overall aesthetic? For example, “line art”, “hand drawn”, “duotone”, or “flat monochrome icon”.
  • Color palette: Which colors should be used? For example, “background: #e9edc9 and logo in #fb8500”.
  • Composition: Include framing details like “centered icon” or “wide horizontal logo”.
  • Text integration: Clearly state what text should appear and how. For example, “The headline ‘URBAN EXPLORER’ in bold white sans-serif at the top”.

You can also use the instructions parameter to provide separate style or formatting guidance without mixing it into the prompt.

Reference images

Reference images can be provided as { url: "..." }, { base64: "..." }, or URL string shorthand. Direct base64 image payloads can be PNG, JPEG, WebP, GIF, or SVG. Decoded image inputs must be no larger than 12,582,912 bytes, 4096 x 4096 pixels, or 16,777,216 total pixels.

Image URLs must use HTTP or HTTPS, resolve to a public network target, and return an image content type. The API follows up to 3 redirects and applies the same decoded image limits after fetching.

Parameters

Parameter Type Default Description
model string Required. Model identifier (for example, arrow-1.1 or arrow-1.1-max).
prompt string Required. Text description of the desired SVG.
instructions string Additional style or formatting guidance, separate from the prompt.
references array Reference images, provided by URL or base64, to guide generation. Arrow 1.1 supports up to 4 references; Arrow 1.1 Max supports up to 16.
n integer 1 Number of outputs to generate (1 to 16).
stream boolean false When true, returns a Server-Sent Events stream with progressive rendering phases (reasoning, draft, content).
temperature number 1 Controls randomness (0 to 2). Lower values produce more deterministic output; higher values increase variety.
top_p number 1 Nucleus sampling (0 to 1). Limits token selection to the smallest set whose cumulative probability exceeds this value. Lower values make output more focused.
presence_penalty number 0 Penalizes tokens already present in prior output (-2 to 2). Positive values encourage the model to explore new patterns.
max_output_tokens integer Upper bound for output token count (1 to 65536).

Was this page helpful?