
Character Portrait Relighting 是一个紧凑的 ComfyUI 工作流:输入一张人像,在保持角色身份一致的前提下,渲染不同的电影风格光照效果。它端到端只用三个节点:LoadImage 导入原始人像,GeminiImage2Node 通过外部 API 执行图像到图像的重新打光,SaveImage 写入结果。该工作流在 GeminiImage2Node 内配置为运行 Nano Banana Pro 模型,适合写实人像处理。
从技术上说,重新打光通过“上传的图像 + 描述光照布置的文本提示词”进行条件控制(例如:“相机左侧柔和主光、暖色轮廓光、低补光、胶片对比度”)。GeminiImage2Node 将图像与提示词发送到 API,并返回在输入约束下保留姿态与面部结构的重新打光结果。你可以通过提高图像到图像的保留程度(通常以 strength 或 guidance 形式暴露)来更严格地锁定身份。若要从同一张人像生成多种光照风格,可复制多个 GeminiImage2Node(每个使用不同的光照提示词),都从同一个 LoadImage 分流,并通过各自的 SaveImage 以不同标签保存。
API
通过代码使用此工作流
每个 Comfy 工作流都是一个 JSON 图。下面的内容就是此工作流的完整数据,ComfyUI 运行时也是如此——你可以从该 URL 获取、放入版本控制,或在 ComfyUI 中加载并逐节点运行。
使用 Comfy SDK 从 TypeScript 或 Python 运行。相同代码可用于 Comfy Cloud 或你自托管的 ComfyUI——只需更改基础 URL。
// Install (beta)
npm i @comfyorg/sdk
// Run "人物肖像重新打光" (TypeScript)
import { Comfy } from "@comfyorg/sdk";
const client = new Comfy({ apiKey: "comfyui-..." });
// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("template_character_portrait_relighting_api.json");
const asset = client.assets.fromFile("input.png");
wf.setInput("124", "image", asset); // LoadImage
const job = await client.run(wf);
await job.getOutputs("138")[0].toFile("output.png"); // SaveImageSDK 需要 API 格式的工作流:在 ComfyUI 中打开此工作流,使用 文件 → 导出工作流(API)。
常见问题













