Artgen
Artgen
Artgen
Artgen
文档ArtgenArtgen 使用文档
Artgen API 文档
API

Artgen API 文档

使用仪表盘 API 密钥,从你的服务器调用 Artgen:模型、风格、创作与转换。

请求发到 https://artgen.net,不是这个文档站。登录后在仪表盘 → API 密钥创建密钥,并且只在服务器端发送该密钥。

本文描述当前 HTTP 约定。modelId 和 styleId 必须来自实时目录,不要自行编造。

认证

POST /api/create 与 POST /api/convert 需要 API 密钥。GET /api/models 与 GET /api/styles 不需要。

用下面任一请求头发送密钥:

Authorization: Bearer $ARTGEN_API_KEY

或:

x-api-key: $ARTGEN_API_KEY

注意:

  • 登录 Cookie 不能认证 /api/create 或 /api/convert。
  • API 密钥 不能认证账号、仪表盘或后台接口。
  • 两个请求头同时出现时必须是同一把密钥。Authorization 格式错误(包括非 Bearer)、密钥含空白或逗号、或两把密钥不一致,都会被拒绝。
  • 把密钥放在服务器上。不要写进浏览器前端、公开仓库、提示词、URL、截图或日志。

在仪表盘 → API 密钥创建和管理:名称 1–32 个字符,有效期 30 / 90 / 365 天或永不过期(页面默认 90 天),完整密钥只在创建时显示一次,之后只保存哈希。可以重命名、停用、启用(未过期)或撤销。过期密钥不能再启用。「最近使用」表示最近一次认证成功,不表示出图成功。

GET /api/models

列出已发布模型。无需密钥。响应不缓存(Cache-Control: no-store)。

curl --silent --show-error --include --proto '=https' \
  'https://artgen.net/api/models'

必须拿到 HTTP 200 且为 JSON。不要加 -L 跟随重定向,也不要把 HTML 页面当成成功。

200

{
  "models": [
    {
      "id": "published-model-id",
      "name": "显示名称",
      "description": "公开描述",
      "supportsText": true,
      "supportsTransfer": false,
      "supportsInlineOutput": true,
      "sizes": [{ "value": "1024x1024", "label": "1:1" }],
      "maxPromptLength": 1600,
      "sourceImageMaxDimension": 511
    }
  ]
}
字段含义
id作为 modelId 发送。这是公开目录 id,不是供应商内部名称。
name、description展示信息。
supportsTextPOST /api/create 要求为 true。
supportsTransferPOST /api/convert 要求为 true。
supportsInlineOutput模型是否能返回满足 requireInlineOutput: true 的直接在响应里返回的图片数据。
sizes可用画布。请发送 value,不要发送 label。具体是边长还是宽高比取决于模型。
maxPromptLength用户 prompt 的最大长度。
sourceImageMaxDimension仅部分模型返回。若存在,转换参考图的两条边都不能超过该像素值。

500 — 目录加载失败时返回 { "error": "server_error" }。

GET /api/styles

返回目录中的全部风格。无需密钥。不分页。不包含内部提示词。响应不缓存(Cache-Control: no-store)。

curl --silent --show-error --include --proto '=https' \
  'https://artgen.net/api/styles'

可选查询参数:locale(en 或 zh-CN)。省略时默认为 en。其他值返回 400 { "error": "invalid_locale" }。

200

{
  "styles": [
    {
      "id": "style-id",
      "dimension": "2d",
      "name": "风格名称",
      "description": "公开描述"
    }
  ]
}
字段含义
id原样作为 styleId 传入,也可以省略 styleId。
dimension2d 或 3d。3d 是平面图的立体视觉效果,不是网格或三维文件导出。
name、description按 locale 本地化的名称与说明。

POST /api/create

按文字生成图片。服务端将 mode 设为 text。需要已发布且 supportsText 为 true 的模型。

请求头: Authorization: Bearer … 或 x-api-key,以及 Content-Type: application/json。

请求体字段(未知字段会被拒绝):

字段必填规则
modelId是GET /api/models 中的已发布 id。
prompt是去空白后非空,长度不超过该模型的 maxPromptLength。
styleId否必须是 GET /api/styles 中的 id。
size否所选模型 sizes[].value。省略时使用 label 为 1:1 的尺寸;若没有该尺寸,请求无效。
mode否若传入必须是 text,冲突则拒绝。
requireInlineOutput否布尔值。仅当模型 supportsInlineOutput 为真时可以传 true。
sourceImage否创作接口不能传参考图,传入会被拒绝。
curl --silent --show-error --include --proto '=https' \
  --request POST \
  --header "Authorization: Bearer $ARTGEN_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"modelId":"id-from-models","prompt":"A quiet mountain lake at sunrise, watercolor"}' \
  'https://artgen.net/api/create'

POST /api/convert

按参考图转换。服务端将 mode 设为 transfer。需要已发布且 supportsTransfer 为 true 的模型。

请求头: 与创作接口相同。

请求体字段(未知字段会被拒绝):

字段必填规则
modelId是GET /api/models 中 supportsTransfer 为真的已发布 id。
prompt是与创作接口相同。
sourceImage是PNG、JPEG 或 WebP 的 base64 data URL(data:image/png;base64,…、data:image/jpeg;base64,… 或 data:image/webp;base64,…)。解码后不超过 5 MiB(5,242,880 字节),字节内容必须与声明类型一致。不接受远程图片 URL 或 multipart 上传。若模型返回了 sourceImageMaxDimension,参考图两条边都不能超过该值。
styleId否GET /api/styles 中的 id。
size否默认规则与创作接口相同(label 为 1:1)。
mode否若传入必须是 transfer。
requireInlineOutput否与创作接口相同。
curl --silent --show-error --include --proto '=https' \
  --request POST \
  --header "Authorization: Bearer $ARTGEN_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"modelId":"id-from-models","prompt":"A quiet mountain lake at sunrise, watercolor","sourceImage":"data:image/png;base64,..."}' \
  'https://artgen.net/api/convert'

成功响应

创作与转换成功时形状相同。仅当模型返回宽高时才包含 width 和 height。

{
  "success": true,
  "requestId": "uuid",
  "data": {
    "imageUrl": "data:image/jpeg;base64,...",
    "model": "显示名称",
    "modelId": "published-model-id"
  }
}

imageUrl 可能是 base64 data URL,也可能是 HTTPS 图片地址,请当作私密内容处理。生成响应带有 X-Request-Id(与 requestId 相同)和 Cache-Control: no-store。

没有幂等键、任务 id 或状态查询接口。每一次 POST 都是新请求。requestId 只用于排查,不能用来去重重试。

错误

创作与转换的错误体是 { "error": "<code>", "requestId": "<uuid>" },并带 X-Request-Id 与 Cache-Control: no-store。目录接口错误只有 { "error": "<code>" }。

HTTPerror何时出现
400invalid_requestJSON 无效、未知字段、mode 不匹配、prompt 缺失或为空、modelId / styleId / size 无效、模型不支持该接口、转换参考图不是允许的 data URL、requireInlineOutput 不被该模型支持,或组合后的提示词被模型拒绝。
400invalid_localeGET /api/styles 的 locale 不是 en 或 zh-CN。
401unauthorized密钥缺失、格式错误、两套凭据不一致、未知、已停用、已撤销、已过期,或所属用户不存在。
403forbidden密钥所属用户被封禁(且封禁未到期),或邮箱未验证。
402insufficient_credits账号无法执行此请求。
429rate_limited密钥被限流,或其配置的用量已用尽。
503provider_unavailable所选模型的上游不可用或未配置。
502generation_failed请求已被接受,但上游调用失败。
500generation_failed生成过程中的未预期错误。
500server_errorGET /api/models 无法加载目录。

向支持求助时请提供 HTTP 状态码和 requestId。不要发送 API 密钥、提示词、原始请求体或原始图片。

接下来

  • 创建密钥:仪表盘 → API 密钥
  • 模型说明:怎么选模型

格式与下载

Artgen 支持上传和下载哪些格式:PNG、JPEG、WebP、字符画 TXT、上传上限、稳定转换缩放,以及结果在哪里下载。

AI 图像模型怎么选

在 Artgen 上该用哪个 AI 图像模型?先分清文生图和改图,再对比 FLUX.1 [schnell] 与 FLUX.2 [klein] 4B 的能力。

On this page

认证GET /api/modelsGET /api/stylesPOST /api/createPOST /api/convert成功响应错误接下来