Skip to main content
Glama
veniceai

Venice MCP Server

Official
by veniceai

Venice Image Generate

venice_image_generate

Generate custom AI images from text prompts by choosing models, dimensions, style presets, and NSFW settings.

Instructions

Generate an image. Supports Flux 2 Pro/Max, Lustify SDXL, Anime (WAI), Qwen Image, GPT Image, Nano Banana Pro and others. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key.

Input Schema

NameRequiredDescriptionDefault
seedNo
modelNoDefaults to flux-2-pro.
stepsNo
widthNo
formatNo
heightNo
promptYes
qualityNoModel-specific quality tier; may change pricing.
variantsNoNumber of images. Only supported with non-binary responses.
safe_modeNo
resolutionNoModel-specific resolution tier such as "1K", "2K", or "4K"; the API validates supported values.
aspect_ratioNoModel-specific aspect ratio such as "1:1" or "16:9"; the API validates supported values.
style_presetNoSee venice://styles.
enhance_promptNoRewrite the prompt before generation. Adds up to ~30 seconds and a charge when applied.
negative_promptNo
style_referencesNoModel-specific style references. Check the model maxStyleReferences capability.
enable_web_searchNoAllow supported models to use web search; additional credits may apply.
disable_prompt_optimization_thinkingNoSkip prompt-optimization thinking on supported models.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.3.0
    • addedInput schema / properties / aspect_ratio
      Added value: +{
      +  "description": "Model-specific aspect ratio such as \"1:1\" or \"16:9\"; the API validates supported values.",
      +  "type": "string"
      +}
    • addedInput schema / properties / disable_prompt_optimization_thinking
      Added value: +{
      +  "description": "Skip prompt-optimization thinking on supported models.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / enable_web_search
      Added value: +{
      +  "description": "Allow supported models to use web search; additional credits may apply.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / enhance_prompt
      Added value: +{
      +  "description": "Rewrite the prompt before generation. Adds up to ~30 seconds and a charge when applied.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / format
      Added value: +{
      +  "enum": [
      +    "jpeg",
      +    "png",
      +    "webp"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "description": "Model-specific quality tier; may change pricing.",
      +  "enum": [
      +    "low",
      +    "medium",
      +    "high"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / resolution
      Added value: +{
      +  "description": "Model-specific resolution tier such as \"1K\", \"2K\", or \"4K\"; the API validates supported values.",
      +  "type": "string"
      +}
    • addedInput schema / properties / style_references
      Added value: +{
      +  "description": "Model-specific style references. Check the model maxStyleReferences capability.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "image": {
      +        "description": "Style image URL, data URI, or raw base64 (under 8MB).",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "strength": {
      +        "maximum": 1,
      +        "minimum": 0.1,
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "image"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / variants
      Added value: +{
      +  "description": "Number of images. Only supported with non-binary responses.",
      +  "maximum": 4,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only establish the write/non-idempotent/non-destructive profile, so the description carries real additional weight: it discloses the uncensored NSFW policy and the fact that authentication can be satisfied via an x402 wallet without a Venice account. It stops short of 5 because it says nothing about cost, latency, rate limits, or what the response looks like (URL vs binary).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first two words, and the follow-on sentences each add distinct information (capabilities, content policy, auth). The model roster is long but earns its place as the only enumeration of valid model values available to the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter generation tool with no output schema and only 56% schema coverage, the description leaves meaningful gaps: the return shape is never stated (though the 'variants' schema hint about non-binary responses is uncovered), and most optional parameters receive no narrative framing. Auth and content-policy coverage are the bright spots.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 56%, and the description meaningfully compensates for the most important gap by supplying concrete model identifiers (Flux 2 Pro/Max, Lustify SDXL, Anime WAI, Qwen Image, GPT Image, Nano Banana Pro) where the schema only says 'Defaults to flux-2-pro.' The remaining parameters (quality, variants, aspect_ratio, style_references, enhance_prompt) are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate an image') and follows with the supported model roster, so an agent knows exactly what capability this exposes. It does not explicitly contrast itself with the closely related siblings venice_image_edit or venice_image_multi_edit, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description covers prerequisites rather than selection criteria: it names the two auth paths (x402 wallet with no Venice account, or API key) and notes NSFW is permitted where the model allows. It never says when to prefer this over venice_image_edit, venice_image_upscale, or the video/music generators, leaving the agent to infer from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.