👩🦱超写实人物提示词@炮老师的小课堂
The node that makes an LLM shoot your portrait session on paper first
- 🖼️ 原照片
- 🎨 风格参考图
- 📝 选中人物提示词
- 🚫 选中负面提示词
- 🧩 批量人物提示词
- 🧩 批量负面提示词
- 📋 完整拍摄方案JSON
- 🔎 参考图摄影分析
- ✅ 提示词质检报告
- 📄 LLM完整响应
- ℹ️ 处理信息
You do not have a prompt-writing problem. You have a "blank box, no idea what a real photographer would say" problem. This node - 👩🦱超写实人物提示词@炮老师的小课堂 (DapaoPortraitPhotographyPromptNode) - is a prompt director, not an image generator. Feed it a rough idea ("老城区的女店主, 雨后," whatever), and it asks a cloud LLM to write you a full structured portrait prompt plus negative prompt plus a shooting card, the way a photo director would brief a set. It never renders a pixel itself. That framing saves you most of the confusion: wire its outputs into your actual image node and stop expecting pictures here.
The twist that makes it worth the setup: it ships a built-in "生命感" (life-feel) photography skill with real scene and action pools, and it runs in three modes you pick under 🎬 运行模式. A upgrades an existing portrait (原照片) while locking identity - same face, better everything. B writes original shots from nothing, no photo needed. C retakes your photo as an "atmosphere big shot." There's also an auto mode that picks A if you fed it an image, B if you didn't. That split is the node's whole personality: preserve who someone is, or invent a fresh subject, never muddle the two.
How it works
Mechanically it's an API-wrapper node with an LLM inside - the graph-bolted-on language-model pattern, just not local. You paste a 🔑 API密钥 from api.dapaoai.com, pick a 🤖 LLM模型 from a catalogue that mixes gpt/claude/gemini/deepseek names (default gemini-3.7-flash), and the node calls the relay's /v1/chat/completions endpoint asking for one JSON object back: a shot list where every entry bundles positive_prompt, negative_prompt, and a structured shooting_card covering scene, light direction, lens choice, color, hair, wardrobe, emotion, even the one optical effect. The Chinese UI is intimidating until you realize the defaults are sane. Two settings actually matter:
- 📝 人像需求 - your brief. Write it in whatever language; vague is fine, it's a starting point.
- 🎨 目标图像模型 - this decides the prompt dialect, since "GPT Image 2", "Banana / Gemini Image", "FLUX / Stable Diffusion" and "Midjourney" all want different syntax. Same LLM behind it, different writing style.
Flip ⚙️ 展开摄影参数 and you get the fun part: per-slot dropdowns for 场景, 光线 (summer noon vs. 伦勃朗), 景别, 机位, 色彩关系, 发型, 服装. Leave it off and the model picks. 🔢 方案数量 lets one LLM call plan up to 12 shots for a series; 🎯 选中方案 says which one lands on the first two outputs, while the list outputs always carry everything.
Inputs, outputs, and wiring
Optional image inputs: 🖼️ 原照片 (batch, auto-downscaled to a 2048px PNG before upload) and 🎨 风格参考图 - which only borrows photography language, never the face or composition. Two tooltips worth trusting: the 🎲 随机种 only controls ComfyUI's cache, it is not sent to the LLM, and 🚫 出错时跳过 keeps a bad item in a list/batch run from killing the whole queue.
Nine STRING outputs, but you live in the first two: 📝 选中人物提示词 and 🚫 选中负面提示词. Run those into a CLIP Text Encode for local FLUX/SD, or into the prompt field of an image-API node. 📋 完整拍摄方案JSON is the whole shot list if you're scripting; ✅ 提示词质检报告 is the model checking its own homework.
Install
Same story as the rest of this pack: ComfyUI Manager → search dapaoAPI → install → restart. Or manually:
cd ComfyUI/custom_nodes/
git clone https://github.com/paolaoshi/ComfyUI-dapaoAPI
cd ComfyUI-dapaoAPI
pip install -r requirements.txt # requests, Pillow; torch/numpy come with ComfyUI
No models to download - inference happens on the author's relay. You do need an account: register at api.dapaoai.com, buy a redemption code in the wallet, and apply for an API key in the default group, then paste it into the node.
Where people get burned
- It returns only text. If nothing appears, you forgot to wire the prompt output into an image node. The most common complaint, and it's a feature.
- Every run is a paid LLM call. Plan-count of 12 is one chunky request; still, test with 1 before batching.
- Chinese-only labels. Set 🌐 输出语言 to English (recommended) for prompts that behave in your downstream.
- It's a third-party relay, so your prompt and reference photos leave your machine by design - the standing caveat for every API-wrapper node. Use a key you can afford to see leak: this is arbitrary custom-node Python holding a credential, the exact shape the ecosystem got burned by once. Read it before you trust it.
Inputs (36)
| Name | Type | Default | Description |
|---|---|---|---|
| 🔑 API密钥 | STRING | — | |
| 🤖 LLM模型 | COMBO | gemini-3.7-flash | 14 options: gpt-5.5, gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, claude-fable-5, claude-opus-4-8, +8 |
| 📝 人像需求 | STRING | — | |
| 🎬 运行模式 | COMBO | 4 options: 自动识别(有原图用A,无原图用B), A|普通照片升级, B|原创生命感样片, C|普通照片变氛围感大片 | |
| 🧩 创作任务 | COMBO | 5 options: 完整摄影提示词与拍摄方案, 优化已有提示词, 参考图摄影语言分析与原创转译, 图像编辑指令, 成组样片与作品集规划 | |
| 🔢 方案数量 | INT | 11–12 | 一次LLM请求规划多条提示词;与上游列表并发独立。原图批次较多时自动至少每图一条。 |
| 🎯 选中方案 | INT | 11–12 | 前两个STRING输出选择第几条;批量输出始终包含全部方案。 |
| 📐 画幅比例 | COMBO | 9 options: 3:4, 2:3, 4:5, 9:16, 1:1, 4:3, +3 | |
| 🎨 目标图像模型 | COMBO | 5 options: 通用图像模型, GPT Image 2, Banana / Gemini Image, FLUX / Stable Diffusion, Midjourney | |
| 🌐 输出语言 | COMBO | 3 options: 英文(推荐), 简体中文, 中英双份 | |
| ⚙️ 展开摄影参数 | BOOLEAN | false | — |
| 👤 人物年龄 | COMBO | 7 options: 自动选择, 儿童(自然健康、年龄适宜), 青年, 中年, 老人(时髦有态度), 多年龄混合, +1 | |
| 🧑 人物设定 | COMBO | 7 options: 自动选择, 女性, 男性, 中年女性, 劳动者/店主, 家庭/多人, +1 | |
| 🌏 人物地域 | COMBO | 3 options: 中国/东亚(默认), 沿用原图, 自定义(在补充约束填写) | |
| 🎬 场景 | COMBO | 40 options: 自动选择, 雨后公交站, 便利店冷柜, 老电影院门口, 游泳池边, 阳台浇花, +34 | |
| 🏃 动作与事件 | COMBO | 32 options: 自动选择, 回头时被风吹乱头发, 弯腰躲过镜头, 被水花溅到, 咬下一口水果, 跑过镜头, +26 | |
| 📸 景别 | COMBO | 6 options: 自动分配(50%特写/30%中近景/15%特殊中景/5%远景), 24–35mm近距离特写, 中近景(脸、手与动作), 特殊中景, 大景小人, 自定义(在补充约束填写) | |
| 🧭 机位与裁切 | COMBO | 7 options: 自动选择, 亲密平视、大胆裁切, 低机位仰拍, 贴地广角, 轻微倾斜地平线, 非中心构图、局部出画, +1 | |
| 🌿 前景 | COMBO | 8 options: 自动选择, 手与道具, 花草叶片, 风中布料, 玻璃与水滴, 水花, +2 | |
| 🎨 色彩关系 | COMBO | 14 options: 自动选择, 蓝+橙+白, 深绿+橙黄+肤色, 蓝+红+暖肤色, 黄+红+天蓝, 青绿+粉红+暖白, +8 | |
| 💡 光线 | COMBO | 12 options: 真实硬光优先, 夏季正午, 下午直射阳光, 逆光, 侧逆光, 电影侧光/伦勃朗光, +6 | |
| 🔮 主光学效果 | COMBO | 7 options: 自动选择, 焦散光影, 局部柔光与高光溢出, 边缘色散, 外围轻微旋焦, 动态甩拍/局部运动模糊, +1 | |
| ✨ 辅助光学效果 | COMBO | 8 options: 自动(B优先明确边缘色散), 红青边缘色散, 蓝紫边缘色散, 轻微局部柔光, 轻微旋焦, 前景运动模糊, +2 | |
| 💫 情绪状态 | COMBO | 8 options: 自动选择, 松弛自然, 偶然幽默, 笑场/眯眼, 自信有态度, 疑惑/倔强/发呆, +2 | |
| 💇 发型 | COMBO | 10 options: 自动选择, 半扎, 低马尾, 松散辫子, 微乱盘发, 自然披发, +4 | |
| 👗 服装造型 | COMBO | 8 options: 自动选择, 设计感连衣裙, 彩色围巾/头巾/披肩, 印花刺绣与轻薄面料, 结构感衬衫/罩衫, 现代地域生活服装, +2 | |
| 🏮 民俗文化风格 | COMBO | 2 options: 关闭(默认), 开启(在补充约束指定文化) | |
| 🌡️ 温度 | FLOAT | 0.700–2 | — |
| 📝 最大输出令牌 | INT | 81921024–65536 | — |
| 🎲 随机种 | INT | 00–18446744073709550000 | 控制ComfyUI缓存,不发送到LLM。 |
| ⌛ 请求超时 | INT | 30030–1200 | — |
| 🖼️ 原照片opt | IMAGE | A/C需要保留人物的原照,支持IMAGE批次;逐张缩放至最长边2048并编码PNG。 | |
| 🎨 风格参考图opt | IMAGE | 只提取摄影语言,不复制脸、场景或构图。支持IMAGE批次。 | |
| 🔗 外部人像需求opt | STRING | — | |
| ➕ 补充约束opt | STRING | — | |
| 🚫 出错时跳过opt | BOOLEAN | false | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| 📝 选中人物提示词 | STRING | — |
| 🚫 选中负面提示词 | STRING | — |
| 🧩 批量人物提示词 | STRING | — |
| 🧩 批量负面提示词 | STRING | — |
| 📋 完整拍摄方案JSON | STRING | — |
| 🔎 参考图摄影分析 | STRING | — |
| ✅ 提示词质检报告 | STRING | — |
| 📄 LLM完整响应 | STRING | — |
| ℹ️ 处理信息 | STRING | — |