Files
Xyc2016-Comfyui_Fd_Nodes/image-generation-node-usage.md

1388 lines
25 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 图片生成节点调用说明
本文档说明 ComfyUI 自定义节点中“生成图片 / 图生图”相关节点的使用方式,以及这些节点背后的后端调用链路。
文档绝对路径:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/image-generation-node-usage.md
```
## 1. 推荐使用方式
日常业务优先使用下面两类节点:
```text
知衣/图生图:
知衣-图生图
知衣-图生图-combo
知衣-AiStudio图生图-combo
GPT Image:
FD GPT Multi Image
FD GPT Image Combo
```
如果只是“1 组图片 + 1 条 prompt 生成多张图”,使用:
```text
知衣-图生图
```
如果有多组图片和多条 prompt,需要批量并发生成,使用:
```text
fd-输入参数组合 -> 知衣-图生图-combo
```
如果要走 AiStudio publish 渠道,使用:
```text
fd-输入参数组合 -> 知衣-AiStudio图生图-combo
```
如果明确要走 GPT Image edits 接口,使用:
```text
FD GPT Multi Image
```
或批量组合:
```text
fd-输入参数组合 -> FD GPT Image Combo
```
## 2. 关键文件绝对路径
节点注册入口:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/nodes.py
```
知衣图生图节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/zhiyi_image_to_image_node.py
```
知衣图生图 combo 节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/zhiyi_image_to_image_combo_node.py
```
图片组合节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/zhiyi_image_combo_node.py
```
AiStudio 图生图 combo 节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/aistudio_image_combo_node.py
```
Gemini 图片服务封装:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/gemini_service.py
```
LiteLLM Gemini 图片调用:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/litellm_gemini_image.py
```
GPT Image 节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/gpt_image_node.py
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/gpt_multi_image_node.py
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/gpt_image_combo_node.py
```
GPT Image 请求封装:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/gpt_image_request.py
```
旧 Gemini 节点:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/old_gemini_api_node.py
```
配置文件:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/config.py
```
## 3. 节点选择
### 3.1 知衣-图生图
节点类:
```text
ZhiYiImageToImageNode
```
显示名:
```text
知衣-图生图
```
分类:
```text
知衣/图生图
```
适合场景:
```text
最多 6 张输入图 + 1 条 prompt 或 prompt_list,生成一批图片。
```
主要输入:
```text
image_1 必填,主输入图
prompt 必填,默认提示词
model 必填,模型/渠道
aspect_ratio 必填,输出比例
image_size 必填,输出尺寸
batch_size 必填,每条 prompt 生成几张
seed_mode 必填,随机种子 / 固定种子
seed 必填,固定种子模式下使用
node_switch 可选,1 表示跳过节点
out_request_id 可选,透传给后端的请求 ID
prompt_list 可选,LIST,每条 prompt 都会生成 batch_size 张
image_2 - image_6 可选,额外参考图
system_prompt 可选,会拼到 prompt 前面
```
输出:
```text
image IMAGE,成功图片会 cat 成 batch 输出
seed INT,本次使用的基础 seed
```
调用链路:
```text
ComfyUI IMAGE tensor
-> 选择模型渠道
-> 如果是 LiteLLM Gemini 渠道:图片转 base64,直接请求 LiteLLM chat/completions
-> 否则:图片上传 OSS,拿到 image_url_list
-> 调用 Gemini 图片服务
-> 下载 result_image_url
-> 转成 ComfyUI IMAGE tensor
```
### 3.2 fd-输入参数组合
节点类:
```text
ZhiYiImageComboNode
```
显示名:
```text
fd-输入参数组合
```
分类:
```text
知衣/工具
```
作用:
```text
把最多 6 张图片和一组 prompt 打包成 ZHIYI_COMBO,供 combo 生成节点批量使用。
```
主要输入:
```text
image_1 必填
prompt 必填
image_2 - image_6 可选
prompt_list 可选,LIST
```
输出结构:
```json
{
"images": ["ComfyUI IMAGE tensor 列表"],
"prompt": "原始 prompt",
"prompts": ["有效 prompt 列表"]
}
```
### 3.3 知衣-图生图-combo
节点类:
```text
ZhiYiImageToImageComboNode
```
显示名:
```text
知衣-图生图-combo
```
分类:
```text
知衣/图生图
```
适合场景:
```text
多个 ZHIYI_COMBO 并发生成,每个 combo 可以有多张图和多条 prompt。
```
主要输入:
```text
model 必填
aspect_ratio 必填
image_size 必填
batch_size 必填,每条 prompt 生成几张
max_concurrency 必填,同时请求数上限
seed_mode 必填
seed 必填
out_request_id 可选
combo_1 - combo_8 可选,至少连接一个
system_prompt 可选
```
输出:
```text
image IMAGE list,OUTPUT_IS_LIST=True,每个成功请求输出一张
seed INT
log STRING,包含成功/失败统计和后端 URL
```
调用链路:
```text
ZHIYI_COMBO
-> 展开 combo.images 中的 batch 图片
-> 对 combo.prompts 逐条生成任务
-> 每条 prompt 乘以 batch_size
-> 根据 model 判断走 LiteLLM 还是 Gemini 图片服务
-> 并发请求
-> 输出成功图片列表和日志
```
### 3.4 知衣-AiStudio图生图-combo
节点类:
```text
ZhiYiAiStudioImageComboNode
```
显示名:
```text
知衣-AiStudio图生图-combo
```
分类:
```text
知衣/图生图
```
适合场景:
```text
需要走内部 AiStudio publish 测试渠道生成图片。
```
调用链路:
```text
ZHIYI_COMBO
-> 展开图片
-> 图片上传 OSS
-> 组装 publish payload
-> POST FD_AISTUDIO_PUBLISH_URL
-> 从响应 data.url 读取结果图 URL
-> 下载结果图
-> 输出 IMAGE list、seed、log
```
请求体形状:
```json
{
"type": "AiStudio",
"payload": {
"prompt": "system_prompt 和 prompt 拼接后的文本",
"image": ["https://oss/path/input.png"],
"image_size": "4K",
"aspect_ratio": "1:1"
},
"timeout": 300000
}
```
注意:
```text
model、seed、out_request_id 目前只是为了兼容旧 UI,AiStudio publish 接口当前不传这些字段。
```
更详细说明见:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/aistudio-node-usage.md
```
### 3.5 FD GPT Multi Image
节点类:
```text
FD_GPTMultiImage
```
显示名:
```text
FD GPT Multi Image
```
分类:
```text
GPT Image
```
适合场景:
```text
最多 6 张图片,直接调用 GPT Image edits API 进行图生图。
```
调用链路:
```text
ComfyUI IMAGE tensor
-> 图片压缩到不超过 4096 * 4096 总像素
-> multipart/form-data 上传到 {FD_LITELLM_BASE_URL}/v1/images/edits
-> 解析返回的 url 或 b64_json
-> 转成 ComfyUI IMAGE
```
请求地址:
```text
{FD_LITELLM_BASE_URL}/v1/images/edits
```
请求方式:
```text
POST multipart/form-data
Authorization: Bearer {FD_LITELLM_API_KEY}
```
表单字段:
```text
model gpt-image-2
prompt prompt 文本
size 根据 image_size + aspect_ratio 映射出的尺寸,例如 2048x2048
user out_request_id
quality medium
image 多个 multipart 文件字段
```
### 3.6 FD GPT Image Combo
节点类:
```text
FD_GPTImageComboNode
```
显示名:
```text
FD GPT Image Combo
```
分类:
```text
GPT Image
```
适合场景:
```text
用 ZHIYI_COMBO 批量调用 GPT Image edits API。
```
调用链路和 `FD GPT Multi Image` 一致,只是输入来自 `fd-输入参数组合`,并支持:
```text
combo_1 - combo_8
batch_size
max_concurrency
system_prompt
```
输出:
```text
image IMAGE list
seed INT
log STRING
```
### 3.7 FD GTP Image
节点类:
```text
FD_GTPImage
```
显示名:
```text
FD GTP Image
```
分类:
```text
image/generation
```
这是底层 GPT Image edits API 节点,适合简单直接调用,不支持 combo。
主要输入:
```text
out_request_id
prompt
model=gpt-image-2
resolution=1K/2K/4K
images
aspect_ratio
```
输出:
```text
IMAGE
STRING revised_prompt 或 message
STRING result_url
```
### 3.8 FD Gemini Image
节点类:
```text
FD_GeminiImage
```
显示名:
```text
FD Gemini Image
```
分类:
```text
image/generation
```
这是旧 Gemini 图片节点,直接调用 `FD_GEMINI_URL`。
调用链路:
```text
ComfyUI IMAGE tensor
-> 图片压缩到不超过 3072 * 3072 总像素
-> 上传到 OSS
-> POST FD_GEMINI_URL
-> 后端返回 result_image_url
-> 下载结果图
```
请求体形状:
```json
{
"out_request_id": "default",
"prompt": "生成提示词",
"model": "google/gemini-3-pro-image-preview",
"aspect_ratio": "1:1",
"resolution": "2K",
"image_url_list": ["https://oss/path/input.png"]
}
```
返回体期望:
```json
{
"result_image_url": "https://oss/path/output.png",
"message": "文本消息",
"cost_time": 12.3
}
```
## 4. 模型和渠道
知衣图生图节点支持的常见 model:
```text
google/gemini-3-pro-image-preview
google/gemini-3.1-flash-image-preview
google/gemini-2.5-flash-image-preview
google/gemini-3-pro-image-preview-official
gemini-3-pro-image-preview
batch/gemini-3-pro-image-preview
gemini-3.1-flash-image-preview
gemini-2.5-flash-image-preview
gemini-3-pro-image-preview-official
gemini-3-pro-image-preview-aistudio
gemini-3-pro-image-preview-siphonlab
gemini-nano-banana-2.1
gemini-nano-banana-2.1-siphonlab
gemini-nano-banana-2.1-wdcloud
gemini-nano-banana-2.1-vip
```
模型名归一化规则在:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/gemini_service.py
```
部分模型会走 LiteLLM Gemini 图片调用,判断逻辑在:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/litellm_gemini_image.py
```
当前 LiteLLM Gemini 渠道模型包括:
```text
gemini-3-pro-image-preview-siphonlab
```
新模型 `gemini-nano-banana-2.1` 走非 LiteLLM 的 Gemini image-server。它支持 `1K`、`2K`、`4K`;节点中的 `720P` 会映射为 `1K`,`1080P` 会映射为 `2K`。编辑场景默认开启色彩偏移修正,关闭时会显式传 `enable_color_bias_correction: false`。显式渠道模型 `-siphonlab` / `-wdcloud` / `-vip` 锁定服务端渠道(逆向渠道稳定性弱于官方,建议仅测试或容量兜底使用);裸名按上游公共入口权重分流,带 `google/` 前缀的变体原样透传。
这类 LiteLLM 模型不上传 OSS 给 Gemini 图片服务,而是把图片转 base64,组装成多模态 messages 后请求:
```text
{FD_LITELLM_BASE_URL}/v1/chat/completions
```
非 LiteLLM Gemini 渠道会走:
```text
FD_GEMINI_URL
```
并使用 `image_url_list` 传 OSS 图片 URL。
## 5. 环境变量
### 5.1 Gemini 图片服务
```text
FD_GEMINI_URL
```
用途:
```text
旧 Gemini 节点、知衣图生图非 LiteLLM Gemini 渠道的服务地址。
```
### 5.2 LiteLLM / OpenAI 兼容服务
```text
FD_LITELLM_BASE_URL
FD_LITELLM_API_KEY
```
用途:
```text
GPT Image edits API
Seedream images/generations API
LiteLLM Gemini chat/completions 图片生成渠道
```
### 5.3 OSS 上传
```text
FD_OSS_ACCESS_KEY_ID
FD_OSS_ACCESS_KEY_SECRET
FD_OSS_BUCKET_NAME
FD_OSS_ENDPOINT
FD_OSS_URL_PREFIX
```
用途:
```text
Gemini 图片服务、AiStudio、Flux2Klein、Z-Image-Turbo、Seedream 需要先把输入图片上传 OSS。
```
不同节点使用的 OSS 路径前缀:
```text
FD_OSS_URL_PATH_PREFIX_GEMINI 默认 devops/comfyui/segment_img
FD_OSS_URL_PATH_PREFIX_BEFORE_GEN 默认 devops/comfyui/segment_img
FD_OSS_URL_PATH_PREFIX_FLUX 默认 devops/comfyui/segment_img
```
### 5.4 AiStudio publish
```text
FD_AISTUDIO_PUBLISH_URL
```
默认值:
```text
http://121.40.67.98:2003/api/tasks/publish
```
### 5.5 Flux2Klein
```text
FD_FLUX2KLEIN_URL
FD_FLUX2KLEIN_USERNAME
FD_FLUX2KLEIN_PASSWORD
```
### 5.6 Z-Image-Turbo
```text
FD_Z_IMAGE_TURBO_URL
FD_Z_IMAGE_TURBO_USERNAME
FD_Z_IMAGE_TURBO_PASSWORD
```
### 5.7 Webhook
```text
FD_GEN_IMAGE_NOTIFICATION_WEBHOOK_URL
FD_GEMINI_WEBHOOK_URL
```
用途:
```text
发送请求摘要、完整响应摘要等通知。未配置时不会发送。
```
## 6. 后端调用方式汇总
### 6.1 知衣图生图非 LiteLLM Gemini 渠道
请求地址:
```text
FD_GEMINI_URL
```
请求方式:
```text
POST application/json
```
请求体:
```json
{
"out_request_id": "req-001",
"prompt": "生成提示词",
"model": "google/gemini-3-pro-image-preview",
"aspect_ratio": "1:1",
"resolution": "4K",
"image_url_list": [
"https://oss/path/input-1.png",
"https://oss/path/input-2.png"
]
}
```
响应体:
```json
{
"result_image_url": "https://oss/path/result.png",
"message": "生成说明",
"cost_time": 20.5
}
```
节点随后会下载 `result_image_url`,转成 ComfyUI `IMAGE` 输出。
### 6.2 LiteLLM Gemini 图片渠道
请求地址:
```text
{FD_LITELLM_BASE_URL}/v1/chat/completions
```
请求方式:
```text
POST application/json
Authorization: Bearer {FD_LITELLM_API_KEY}
```
请求特点:
```text
输入图不会先传 OSS,而是转 base64 放进 messages。
model 使用节点选择的 aistudio / siphonlab 渠道模型。
aspect_ratio、image_size、seed、out_request_id 会一起传入调用封装。
```
实现文件:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/litellm_gemini_image.py
```
### 6.3 GPT Image edits
请求地址:
```text
{FD_LITELLM_BASE_URL}/v1/images/edits
```
请求方式:
```text
POST multipart/form-data
Authorization: Bearer {FD_LITELLM_API_KEY}
```
表单字段:
```text
model gpt-image-2
prompt 生成提示词
size 1024x1024 / 2048x2048 / 2880x2880 等
quality medium
user out_request_id,可选
image 一个或多个 PNG 文件
```
响应支持两种图片形式:
```text
data[0].url
data[0].b64_json
```
节点优先下载 `data[0].url`;如果没有 URL,则解码 `b64_json`。
超时/失败策略:
```text
主模型 gpt-image-2 最多尝试 3 次。
如果发生 TIMEOUT,或主模型多次失败,会 fallback 到 gpt-image-2-azure。
fallback 请求会额外带 n 字段。
```
### 6.4 AiStudio publish
请求地址:
```text
FD_AISTUDIO_PUBLISH_URL
```
请求方式:
```text
POST application/json
```
请求体:
```json
{
"type": "AiStudio",
"payload": {
"prompt": "生成提示词",
"image": ["https://oss/path/input.png"],
"image_size": "4K",
"aspect_ratio": "1:1"
},
"timeout": 300000
}
```
响应体要求:
```json
{
"success": true,
"taskId": "task-id",
"data": {
"url": "https://oss/path/result.png"
}
}
```
### 6.5 Flux2Klein
节点类:
```text
FD_Flux2KleinGenImage
```
显示名:
```text
FD Flux2Klein Gen Image
```
请求地址:
```text
service_url 输入项,默认 FD_FLUX2KLEIN_URL
```
认证:
```text
HTTP Basic Auth:
FD_FLUX2KLEIN_USERNAME
FD_FLUX2KLEIN_PASSWORD
```
请求体:
```json
{
"out_request_id": "req-001",
"prompt": "生成提示词",
"seed": 0,
"ratio": "1:1",
"size": "2K",
"images": ["https://oss/path/input.png"]
}
```
响应体要求:
```json
{
"urls": ["https://oss/path/result.png"],
"status": "success",
"cost_time": 45.2
}
```
当前节点只取 `urls[0]`。
### 6.6 Z-Image-Turbo
节点类:
```text
FD_ZImageTurboGenImage
```
显示名:
```text
FD Z-Image-Turbo Gen Image
```
请求地址:
```text
FD_Z_IMAGE_TURBO_URL
```
认证:
```text
HTTP Basic Auth:
FD_Z_IMAGE_TURBO_USERNAME
FD_Z_IMAGE_TURBO_PASSWORD
```
请求体:
```json
{
"out_request_id": "req-001",
"prompt": "生成提示词",
"seed": 42,
"ratio": "1:1",
"size": "1K",
"strength": 0.25,
"guidance_scale": 0.0,
"num_inference_steps": 9,
"num_images": 1,
"images": ["https://oss/path/input.png"]
}
```
响应体要求:
```json
{
"urls": ["https://oss/path/result.png"]
}
```
输出:
```text
IMAGE
STRING result_url
```
### 6.7 Seedream
节点类:
```text
FD_SeedreamImage
```
显示名:
```text
FD Seedream Image
```
默认调用 image-server 统一接口(`FD_SEEDREAM_BACKEND=image_generation`,默认值),不再直连 LiteLLM:
- 文生图:`POST {FD_IMAGE_GENERATE_URL}`(默认 `http://image-generation.online-server-gray.svc.cluster.local/image/generate`,可从 `FD_GEMINI_URL` / `FD_GPT_IMAGE_EDIT_URL` 推导)
- 图生图:输入图降采样(≤4096×4096 像素)上传 OSS 后 `POST {FD_GPT_IMAGE_EDIT_URL}`(默认 .../image/edit),channel 区分模型
请求体(文生图):
```json
{
"channel": "doubao-seedream-5.0-pro",
"prompt": "生成提示词",
"size": "4K",
"ratio": "3:4",
"resize": true
}
```
请求体(图生图):
```json
{
"channel": "doubao-seedream-5.0-lite",
"prompt": "编辑提示词",
"size": "2K",
"ratio": "9:21",
"resize": true,
"image_url_list": ["https://oss/path/input.png"]
}
```
响应体要求:
```json
{
"status": true,
"result_image_url": "https://oss/path/result.png"
}
```
参数说明:
- `size`:`1K`/`2K`/`3K`/`4K`,默认 `2K`。image-server 仅支持 1K/2K/4K,节点将 `3K` 映射为 `2K` 请求并记录 warning(豆包 Pro/Lite 均无 3K 档)
- `ratio`:`1:1`、`2:3`、`3:2`、`3:4`、`4:3`、`4:5`、`5:4`、`16:9`、`9:16`、`21:9`、`9:21`
- `resize`:固定 `true`。Pro + 4K 由 image-server 按同一比例请求上游 2K 并超分到长边 4096(解决 Pro 不支持 3K/4K 的 400 问题)
- `output_format` 参数保留兼容,image-server 路径不上送
- `model` 参数(`doubao-seedream-5.0-pro` / `doubao-seedream-5.0-lite` / `doubao-seedream-5.0-flash`)作为 `channel` 透传;显式 channel 失败不跨模型回退。flash 参数与分辨率语义与 pro 完全一致,仅速度更快
回退开关:`FD_SEEDREAM_BACKEND=litellm` 时走旧直连 `{FD_LITELLM_BASE_URL}/v1/images/generations`(像素换算、行为同旧版,仅紧急回退用)。
## 7. 图片处理规则
### 7.1 输入图片转 OSS URL
大部分非 GPT Image edits 节点会执行:
```text
ComfyUI IMAGE tensor
-> numpy uint8
-> PNG bytes
-> md5 命名
-> 上传 OSS
-> 得到公网/内网可访问 URL
```
Gemini 图片服务默认路径:
```text
{FD_OSS_URL_PATH_PREFIX_GEMINI}/{md5}.png
```
AiStudio / Seedream 默认路径:
```text
{FD_OSS_URL_PATH_PREFIX_BEFORE_GEN}/{md5}.png
```
Flux2Klein / Z-Image-Turbo 默认路径:
```text
{FD_OSS_URL_PATH_PREFIX_FLUX}/{md5}.png
```
### 7.2 输入图片降采样
不同节点为了控制请求大小,会做不同程度的降采样:
```text
FD_GeminiImage: 总像素不超过 3072 * 3072
ZhiYiImageToImageNode: Gemini service client 内部总像素不超过 3072 * 3072
FD_GTPImage: 总像素不超过 4096 * 4096
FD_GPTMultiImage: 总像素不超过 4096 * 4096
FD_GPTImageComboNode: 总像素不超过 4096 * 4096
FD_Flux2KleinGenImage: 总像素不超过 2048 * 2048
FD_SeedreamImage: 图生图总像素不超过 4096 * 4096(image-server 路径,seedream client 内降采样)
```
### 7.3 输出图片
所有图片生成节点最终都会:
```text
下载后端返回的结果图 URL
-> PIL Image RGB
-> numpy float32 / 255.0
-> torch.Tensor
-> ComfyUI IMAGE
```
## 8. 尺寸和比例
### 8.1 Gemini / 知衣图生图
`image_size` 常用选项:
```text
4K
2K
1080P
720P
```
`aspect_ratio` 常用选项:
```text
""
1:1
2:3
3:2
3:4
4:3
4:5
5:4
16:9
9:16
21:9
```
combo 节点额外支持:
```text
1:4
1:8
4:1
8:1
```
### 8.2 GPT Image
GPT Image 节点会把 `image_size + aspect_ratio` 映射为具体像素尺寸。
映射函数:
```text
/Users/chenjunhong/Documents/web_project/Comfyui_Fd_Nodes/src/Comfyui_Fd_Nodes/utils/gpt_image_size.py
```
示例:
```text
1K + 1:1 -> 1024x1024
2K + 1:1 -> 2048x2048
4K + 1:1 -> 2880x2880
1K + 3:4 -> 768x1024
2K + 3:4 -> 1536x2048
4K + 3:4 -> 2160x2880
1K + 9:16 -> 720x1280
2K + 9:16 -> 1152x2048
4K + 9:16 -> 2160x3840
```
## 9. 并发和 batch 规则
### 9.1 单节点 batch
`知衣-图生图` 和 `FD GPT Multi Image` 的任务数:
```text
有效 prompt 数量 * batch_size
```
如果没有 `prompt_list`,有效 prompt 数量为 1。
### 9.2 combo batch
`知衣-图生图-combo`、`知衣-AiStudio图生图-combo`、`FD GPT Image Combo` 的任务数:
```text
所有 combo 的有效 prompt 数量之和 * batch_size
```
`max_concurrency` 控制同时请求数上限。
### 9.3 seed 规则
随机种子模式:
```text
每个请求随机生成 seed。
```
固定种子模式:
```text
以输入 seed 为基础,按任务顺序递增。
```
注意:
```text
目前部分后端不一定真正使用 seed。seed 字段更多是为了日志追踪和兼容 UI。
```
## 10. 常见接线示例
### 10.1 单组图生图
```text
Load Image
-> 知衣-图生图.image_1
设置:
prompt = 生成提示词
model = google/gemini-3-pro-image-preview
image_size = 2K 或 4K
aspect_ratio = 1:1 / 3:4 / 9:16
batch_size = 1
```
### 10.2 多组图片批量生成
```text
Load Image A + prompt A
-> fd-输入参数组合.combo
-> 知衣-图生图-combo.combo_1
Load Image B + prompt B
-> fd-输入参数组合.combo
-> 知衣-图生图-combo.combo_2
知衣-图生图-combo:
batch_size = 1 或更多
max_concurrency = 8 / 16
```
### 10.3 AiStudio 批量生成
```text
Load Image
-> fd-输入参数组合
-> 知衣-AiStudio图生图-combo
```
要求:
```text
FD_AISTUDIO_PUBLISH_URL 已配置或使用默认值。
OSS 参数完整。
```
### 10.4 GPT Image 图生图
```text
Load Image
-> FD GPT Multi Image.image_1
设置:
model = gpt-image-2
image_size = 2K / 4K
aspect_ratio = 1:1 / 3:4 / 9:16
```
要求:
```text
FD_LITELLM_BASE_URL
FD_LITELLM_API_KEY
```
## 11. 常见错误
### 11.1 未配置 OSS
错误示例:
```text
未配置 OSS 上传参数: FD_OSS_ACCESS_KEY_ID, ...
```
原因:
```text
节点需要先把输入图上传 OSS,但 OSS 环境变量不完整。
```
影响节点:
```text
知衣-图生图
知衣-图生图-combo
知衣-AiStudio图生图-combo
FD Gemini Image
FD Flux2Klein Gen Image
FD Z-Image-Turbo Gen Image
FD Seedream Image
```
GPT Image edits 节点不需要 OSS 上传输入图,因为它走 multipart/form-data。
### 11.2 未配置 LiteLLM
错误示例:
```text
未配置 base_url,请在环境变量 FD_LITELLM_BASE_URL 中设置
未配置 api_key,请在环境变量 FD_LITELLM_API_KEY 中设置
```
影响节点:
```text
FD GTP Image
FD GPT Multi Image
FD GPT Image Combo
FD Seedream Image
LiteLLM Gemini 图片渠道
```
### 11.3 没有输入图片
错误示例:
```text
未提供图片
未提供任何组合输入,请连接至少一个 combo
所有组合均无有效图片
```
处理方式:
```text
确认 image_1 或 combo_1 已连接。
确认 combo 内至少有一张有效 IMAGE。
```
### 11.4 后端没有返回图片 URL
错误示例:
```text
响应缺少 data.url
响应缺少 result_image_url
GPT Image API returned no usable image payload
```
处理方式:
```text
检查后端响应格式是否符合对应节点的期望。
检查生成服务是否成功完成任务。
```
### 11.5 TIMEOUT
原因:
```text
后端生成耗时过长、网络超时、模型服务繁忙。
```
GPT Image edits 节点会尝试 fallback:
```text
gpt-image-2 -> gpt-image-2-azure
```
其他节点一般会直接抛出归一化后的错误。
## 12. 给调用方的最小说明
如果只需要告诉别人怎么用,给这段即可:
```text
1. 单组图生图用“知衣-图生图”。
2. 多组批量用“fd-输入参数组合”打包图片和 prompt,再接“知衣-图生图-combo”。
3. AiStudio 渠道用“fd-输入参数组合”接“知衣-AiStudio图生图-combo”。
4. GPT Image 渠道用“FD GPT Multi Image”;批量用“fd-输入参数组合”接“FD GPT Image Combo”。
5. Gemini 普通渠道会先上传图片到 OSS,然后 POST FD_GEMINI_URL。
6. GPT Image 渠道直接 multipart POST {FD_LITELLM_BASE_URL}/v1/images/edits。
7. AiStudio 渠道会上传 OSS 后 POST FD_AISTUDIO_PUBLISH_URL,读取响应 data.url。
8. 必须配置对应环境变量:OSS、FD_GEMINI_URL、FD_LITELLM_BASE_URL、FD_LITELLM_API_KEY、FD_AISTUDIO_PUBLISH_URL 等。
```