/image/generate,并在同一响应中收到您的图像,可以是 JSON 中的 base64,或在 return_binary 为 true 时为原始二进制。
端点
第 1 步:发送生成请求
尺寸是模型专属的。某些模型接受显式的width 和 height;某些公开 aspect_ratio;分辨率分级模型公开 aspect_ratio 加上 resolution 值(如 1K、2K 或 4K)。
基于像素的尺寸示例:
images 数组包含 base64 编码的图像数据。解码第一项以保存或显示。timing.total 是完整的请求时长(毫秒)。
第 2 步:解码并保存图像
第 3 步:返回二进制而非 JSON(可选)
如果您希望响应体本身就是图像文件,请设置return_binary: true。当您希望直接流式传输或保存图像而不进行 base64 解码时,这非常有用。
return_binary 为 true 时,响应体根据您请求的 format 是原始 image/jpeg、image/png 或 image/webp 数据。
仅当
return_binary 为 false 时才支持 variants。第 4 步:列出可用图像风格(可选)
如果您想使用style_preset,请先从 /image/styles 获取可用风格:
data 内部,而不在顶层——请读取 response.data,而不是直接迭代响应对象。
然后将其中一个值传入您的生成请求:
请求参数
验证是模型专属的。在跨多个模型依赖某个参数之前,请查看图像模型和 Models API。
模型专属选项
高分辨率生成
某些图像模型支持aspect_ratio 但没有可选的 resolution 等级。例如,qwen-image-2 接受宽高比并映射到模型专属的输出尺寸:
aspect_ratio 加上 resolution 等级。例如,gpt-image-2、nano-banana-2 和 nano-banana-pro 支持 1K、2K 和 4K:
LoRA 强度
部分图像模型会应用附加 LoRA。lora_strength(integer,0 到 100)用于设置其应用强度,且仅对使用 LoRA 的模型生效。
API 不接受自定义 LoRA 文件,也没有端点可以列出模型所用的 LoRA。lora_strength 是唯一的 LoRA 控制项。
成人内容与安全模式
safe_mode 控制生成输出中的成人内容是否被模糊处理。默认为 true,因此被分类为成人内容的图像会以模糊形式返回,除非您发送 safe_mode: false:
safe_mode: false 搭配效果良好。定价页面上的示例包括 lustify-sdxl、lustify-v7 和 lustify-v8。请参阅图像模型和定价获取当前列表和各模型的费用。
对于编辑现有图像,默认的编辑模型是 firered-image-edit。内容政策因编辑模型而异;如果您需要无审查编辑,请通过图像编辑使用 qwen-edit-uncensored。
启用 safe_mode 且模型返回模糊或经过审核的输出时,如果您需要以编程方式检测,请检查响应头 x-venice-is-blurred 和 x-venice-is-content-violation。
正在使用第三方应用?除非该应用发送
safe_mode: false,或在 OpenAI 兼容端点上发送 moderation: "low"(见下文),否则成人图像将保持模糊。风格预设
如果所选模型支持,style_preset 让您可以在不重写整个 prompt 的情况下引导输出。您可以从图像风格获取有效的预设名称:
风格参考
style_references 比 style_preset 更进一步:它不使用命名预设,而是以一张或多张参考图像作为生成条件。每个条目包含 image 和可选的 strength:
是否支持因模型而异。请查看
GET /models?type=image:
- 仅在接受该字段的模型上,
model_spec.supportsStyleReferences为true。 model_spec.constraints.maxStyleReferences是该模型可接受的条目数量。model_spec.constraints.supportsStyleReferenceStrength表示strength是否有效。
style_references 会返回 400;超出该模型的数量上限,或发送损坏、无法访问或过大的参考图像,也会返回 400。某些模型会在基础图像价格之上,对每张返回的图像额外收取风格参考费用,例如 Krea v2 Large 和 Krea v2 Medium。该费用仅针对实际返回的图像收取。基础单张图像价格请参阅图像模型。
部分变体结果
当variants 大于 1 时,个别变体可能会被提供商的内容政策拒绝,而其余变体生成成功。在这种情况下,端点仍会返回 200,但图像数量少于您请求的数量:
- 当有一个或多个变体被省略时,JSON 响应体会包含
content_policy_violation_count,即被省略的变体数量。 x-venice-content-violation-count响应头携带相同的计数。x-venice-is-content-violation和x-venice-is-blurred描述的是实际返回的图像。
422 失败。不要假设 len(images) == variants;请将数组长度与 variants 进行比较,并在存在时检查 content_policy_violation_count。
OpenAI 兼容端点
如果您已在使用 OpenAI 图像 SDK 或现有的 DALL-E 集成,Venice 也支持POST /images/generations。它提供更简单的请求格式,但功能比 Venice 原生端点少。
请求:
size 仅适用于按像素尺寸设置的模型,即在 GET /models?type=image 返回的 model_spec.constraints 中 widthHeightDivisor 大于 1 的模型。大多数模型(包括 qwen-image-2)改为按宽高比和分辨率设置输出尺寸,并会忽略 size。
为兼容 SDK,部分 OpenAI 参数会被接受但被忽略(n 仅限为 1):
此路由不提供等级控制:没有
resolution 或 aspect_ratio 字段,quality 也无法提高或降低费用。对于分级的 GPT Image 模型,当您需要选择 quality、resolution 或 aspect_ratio 时,请使用原生 /image/generate 端点。
使用 OpenAI 兼容路由可加快迁移。当您需要 Venice 专属选项(如 cfg_scale、style_preset、style_references、variants 或二进制响应)时,请使用 /image/generate。
在 /images/generations 上控制成人内容模糊
OpenAI 兼容端点不接受 safe_mode。发送该参数会返回 400 及 Unrecognized key(s) in object: 'safe_mode'。请改用 OpenAI 风格的 moderation 参数:
safe_mode 仅在原生 POST /image/generate 端点上有效。moderation 仅在 OpenAI 兼容的 POST /images/generations 端点上有效。
透明度也遵循同样的区分:/image/generate 使用 transparent_background: true,而 /images/generations 使用 OpenAI 风格的 background: "transparent"。两者都要求 png 或 webp 输出格式,以及 supportsTransparentBackground: true 的模型。请参见透明背景图像。
Prompt 编写技巧
- 先写主体,然后添加媒介、灯光、构图和情绪。
- 把必须避免的细节放入
negative_prompt,而不是过载主 prompt。 - 迭代时重用
seed,以便在不完全改变构图的情况下比较 prompt 改动。 - 让尺寸感知模型。某些模型使用
width/height,某些使用aspect_ratio,分辨率分级模型使用aspect_ratio加resolution。 - 在探索阶段使用
variants,方向锁定后切回单一输出。
错误
启用
safe_mode(或 moderation 为 auto)时,如果您需要以编程方式检测审核结果,请检查响应头,例如 x-venice-is-blurred 和 x-venice-is-content-violation。