# web.rest.aiImage 库模块帮助文档

[文生图与图像编辑](https://www.aardio.com/zh-cn/docs/library/web/rest/aiImage/index.html) [通用范例](https://www.aardio.com/zh-cn/docs/examples/AI/image/aiImage-simple.html) [原图编辑范例](https://www.aardio.com/zh-cn/docs/examples/AI/image/aiImage-edit.html) [调用 GPT Image - 图标界面](https://www.aardio.com/zh-cn/docs/examples/AI/image/aiImage.html)

## web.rest 成员列表 <a id="web.rest" href="#web.rest">&#x23;</a>

### web.rest.aiImage <a id="web.rest.aiImage" href="#web.rest.aiImage">&#x23;</a>
文生图 / 图像编辑轻量适配器：OpenAI / OpenRouter / Google / 魔搭 / fal.ai；未知 URL 默认 OpenAI。  

可兼容 web.rest.aiChat.settingForm 生成的配置文件。  
web.rest.aiChat.settingForm 构造参数应指定 protocols 字段为可选的图像接口协议数组。

### web.rest.aiImage() <a id="web.rest.aiImage" href="#web.rest.aiImage">&#x23;</a>
[返回对象:webRestAiImageObject](#webRestAiImageObject)

### web.rest.aiImage(config) <a id="web.rest.aiImage" href="#web.rest.aiImage">&#x23;</a>
创建客户端。config 必须含 url；除完整 fal.run 模型端点外通常须指定 model。可选 key、proxy、protocol、size、quality、outputFormat、background、extraParameters、extraHeaders、timeoutMs。  
size: 终一使用格式 "widthxheight"，例如 "1024x1024"。  
quality:"auto"(默认),"low", "medium", "high", "xhigh", "max"  
protocol: auto(默认),openai,openrouter,google,modelscope,fal  
URL 包含 openai 时固定为 openai；未知 URL 默认 openai。  
fal 可将 url 指定为完整 fal.run 模型端点。  
使用完调用 close()。

## webRestAiImageObject 成员列表 <a id="webRestAiImageObject" href="#webRestAiImageObject">&#x23;</a>

### webRestAiImageObject._http <a id="webRestAiImageObject._http" href="#webRestAiImageObject._http">&#x23;</a>
inet.http客户端，用于执行 http 请求  

[返回对象:inetHttpObject](https://www.aardio.com/zh-cn/docs/library-reference/inet/http.html#inetHttpObject)

### webRestAiImageObject._protocol <a id="webRestAiImageObject._protocol" href="#webRestAiImageObject._protocol">&#x23;</a>
只读。  
当前实际使用接口协议名：openai,openrouter,google,modelscope,fal。

### webRestAiImageObject.close() <a id="webRestAiImageObject.close" href="#webRestAiImageObject.close">&#x23;</a>
关闭对象释放资源

### webRestAiImageObject.config <a id="webRestAiImageObject.config" href="#webRestAiImageObject.config">&#x23;</a>
API 配置表，构造时浅复制传入的配置。  
quality 会纠正为受支持的值；不保证逐字段照原样保留错误配置。

### webRestAiImageObject.defaultHeaders <a id="webRestAiImageObject.defaultHeaders" href="#webRestAiImageObject.defaultHeaders">&#x23;</a>
替换所有请求默认添加的HTTP头  
请求结束时不会清空此属性  
该值可以是一个字符串,也可以是键值对组成的table对象

### webRestAiImageObject.downloadHttp <a id="webRestAiImageObject.downloadHttp" href="#webRestAiImageObject.downloadHttp">&#x23;</a>
独立的无 API 授权图像下载客户端，可单独调用 setTimeouts 设置下载超时。  

[返回对象:webRestClientObject](https://www.aardio.com/zh-cn/docs/library-reference/web/rest/client.html#webRestClientObject)

### webRestAiImageObject.edit(prompt,original,opts) <a id="webRestAiImageObject.edit" href="#webRestAiImageObject.edit">&#x23;</a>
兼容入口，等价于把 original 放入 opts.originalImage 后调用 generate。  
推荐直接使用 generate(prompt,{originalImage=原图;savePath=保存路径})。  
original 不能省略；支持的原图类型与 generate 相同。

### webRestAiImageObject.extraHeaders <a id="webRestAiImageObject.extraHeaders" href="#webRestAiImageObject.extraHeaders">&#x23;</a>
设置每次请求都附加的 HTTP 请求头，可在构造参数表中指定初始值。  
此属性值可以是 web.joinHeaders 函数支持的字符串、表（数组、键值对）

### webRestAiImageObject.extraParameters <a id="webRestAiImageObject.extraParameters" href="#webRestAiImageObject.extraParameters">&#x23;</a>
继承的 REST 客户端默认附加参数表。  
generate 会合并此表、config.extraParameters、opts.extraParameters，后者优先。  
合并后的生成数量仍须为 1；Google 的 generationConfig / imageConfig 分层合并，数组整体替换。

### webRestAiImageObject.extraUrlParameters <a id="webRestAiImageObject.extraUrlParameters" href="#webRestAiImageObject.extraUrlParameters">&#x23;</a>
指定附加到所有请求 URL 的默认参数。  
该值可以是一个表或字符串。  
表参数使用 inet.url.stringifyParameters 转换为字符串。  
表中的值如果是函数则每次请求都调用该函数取值

### webRestAiImageObject.generate(prompt,opts) <a id="webRestAiImageObject.generate" href="#webRestAiImageObject.generate">&#x23;</a>
文生图或编辑原图，同步返回一张本地 PNG/JPEG/WebP 文件路径；失败返回 null,错误信息。  
opts 可传保存路径，或 {originalImage,savePath,size,quality,outputFormat,background,extraParameters}。  
originalImage 非 null 时编辑原图，可为 HTTP(S) URL、本地文件路径、Base64 Data URL、PNG/JPEG/WebP/GIF buffer、gdip.bitmap，或上述图像组成的数组（魔搭最多 3 张）。  
不传 originalImage 时文生图。省略 savePath 时创建临时文件，由调用方负责清理。  
quality 的错误值会就地纠正；outputFormat 的 jpg 会规范为 jpeg。  
原图和结果只做文件头检查，不解码像素验证完整性；远程 URL 除 Google 外直接交给服务端读取。  
魔搭任务在内部等待；fal 暂不支持通用 originalImage。

### webRestAiImageObject.get(网址,参数表) <a id="webRestAiImageObject.get" href="#webRestAiImageObject.get">&#x23;</a>
使用该GET方法提交请求,获取资源  
请求参数将会自动转换为URL附加参数,  
请求参数可以指定表或字符串,如果是表请求前会转换为字符串  
成功返回数据,失败返回空值,错误信息,错误代码

### webRestAiImageObject.lastImage <a id="webRestAiImageObject.lastImage" href="#webRestAiImageObject.lastImage">&#x23;</a>
最近成功图像信息 {path,format,protocol,sourceUrl,revisedPrompt}。  
format 是按实际文件头识别的扩展名 png/jpg/webp。

### webRestAiImageObject.lastRequestUrl <a id="webRestAiImageObject.lastRequestUrl" href="#webRestAiImageObject.lastRequestUrl">&#x23;</a>
获取最后一次请求的 URL。  
允许的 beforeRequestHeaders 事件中修改此属性以改变请求地址。

### webRestAiImageObject.lastResponse() <a id="webRestAiImageObject.lastResponse" href="#webRestAiImageObject.lastResponse">&#x23;</a>
获取最后一次服务器返回的数据，流式调用时此函数返回值无意义。  
如果控制台已打开或在开发环境中导入 console 库则在控制台输出数据  
下载文件时该值为空

### webRestAiImageObject.lastResponseError() <a id="webRestAiImageObject.lastResponseError" href="#webRestAiImageObject.lastResponseError">&#x23;</a>
返回服务器最后一次返回的错误响应，并转换为错误对象。  
与调用 API 时转换响应数据一样，支持相同的服务器响应格式 。  
如果错误来自本地（lastStatusCode 属性为 null）则此函数返回 null 。  
如果最后一次发生请求成功，则此函数返回 null 。  

如果在参数 @1 中指定返回字段，且错误对象包含该字段则使用直接下标获取并返回字段值。  
获取字段失败返回 null 而非抛出异常

### webRestAiImageObject.lastResponseObject() <a id="webRestAiImageObject.lastResponseObject" href="#webRestAiImageObject.lastResponseObject">&#x23;</a>
获取最后一次 API 请求返回并解析的对象。  
魔搭异步请求时为最后一次任务查询结果；独立图片下载不会覆盖此结果。

### webRestAiImageObject.lastResponseString() <a id="webRestAiImageObject.lastResponseString" href="#webRestAiImageObject.lastResponseString">&#x23;</a>
获取最后一次服务器返回的原始数据，流式调用时此函数返回值无意义。  
请求失败，或者下载文件时此属性值为空

### webRestAiImageObject.lastStatusCode <a id="webRestAiImageObject.lastStatusCode" href="#webRestAiImageObject.lastStatusCode">&#x23;</a>
获取最近一次请求返回的HTTP状态码  
100 ~ 101 为信息提示  
200 ~ 206 表示请求成功  
300 ~ 305 表示重定向  
400 ~ 415 表求客户端请求出错  
500 ~ 505 表示服务端错误

### webRestAiImageObject.lastStatusMessage() <a id="webRestAiImageObject.lastStatusMessage" href="#webRestAiImageObject.lastStatusMessage">&#x23;</a>
获取最近返回的HTTP状态码文本描述  
第二个返回值为状态码

### webRestAiImageObject.ok() <a id="webRestAiImageObject.ok" href="#webRestAiImageObject.ok">&#x23;</a>
最后一次请求是否成功  
服务器应答并且状态码为2XX该函数返回真

### webRestAiImageObject.post(网址,参数表) <a id="webRestAiImageObject.post" href="#webRestAiImageObject.post">&#x23;</a>
使用该POST方法提交请求,新增或修改资源  
请求参数可以指定表或字符串,如果是表请求前会转换为字符串  
成功返回数据,失败返回空值,错误信息,错误代码

### webRestAiImageObject.referer <a id="webRestAiImageObject.referer" href="#webRestAiImageObject.referer">&#x23;</a>
引用页地址。  
如果此属性指定了一个值，则每次请求都会使用该引用页。  
如果不指定，每次请求都会自动设置上次请求的网址为引用页。  
这个属性不像 inet.http 对象的 referer 属性那样每次请求结束都会清空。

### webRestAiImageObject.setHeaders <a id="webRestAiImageObject.setHeaders" href="#webRestAiImageObject.setHeaders">&#x23;</a>
设置所有请求默认添加的HTTP头

### webRestAiImageObject.setHeaders(headers) <a id="webRestAiImageObject.setHeaders" href="#webRestAiImageObject.setHeaders">&#x23;</a>
参数 @headers 必须指定一个表中,  
用该表中的键值对更新 defaultHeaders 属性中的键值  
如果addHeaders的原属性值不是一个表,则先清空该属性

### webRestAiImageObject.setTimeouts(连接超时,请求超时,接收超时) <a id="webRestAiImageObject.setTimeouts" href="#webRestAiImageObject.setTimeouts">&#x23;</a>
设置 API 请求的超时，单位毫秒。默认 15000,300000,300000。  
图片下载使用独立 downloadHttp 客户端，其默认超时为 15000,60000,60000。  
config.timeoutMs 单独限制魔搭任务轮询等待，不是包含提交与下载的总超时，也不会中断正在执行的 HTTP 请求。
