利用Stable Diffusion实现同一构图、多种绘画风格批量生成图像,核心在于固定画面结构、主体位置与光影关系,仅替换风格描述词并保持提示词结构稳定。手动反复调整提示词效率极低,必须借助通配符、占位符或ControlNet配合固定参考图才能可靠复现构图。下面从四个关键环节详细拆解具体操作流程。

第一步:用ControlNet锁定原始构图
在WebUI界面中,首先切换到img2img标签页 → 点击“ControlNet”扩展区域右下角的“启用”开关 → 在ControlNet面板内,将“预处理器”设置为softedge或lineart(人物或建筑轮廓清晰时选用lineart;毛发、渐变较多时选用softedge)→ “模型”选择对应预处理器的ckpt,例如control_v11p_sd15_softedge → 上传一张构图明确的参考图(分辨率建议512×768或768×512)→ 勾选“启用”并确保“像素匹配”模式已开启。
这一步至关重要,不可跳过。如果不绑定ControlNet,即使提示词完全一致,SD也会因随机种子抖动导致人物偏移、视角倾斜、构图不稳定——ControlNet权重必须设为0.8~1.2之间,低于0.7构图容易漂移,高于1.3则线条可能生硬断裂。
第二步:构建可批量替换的提示词模板
在正向提示词框中输入基础结构描述,例如:masterpiece, best quality, 1girl, standing center, full body, white dress, soft sunlight from left, shallow depth of field, studio lighting → 将风格关键词单独提取出来,用双大括号包裹,写成:{style} → 整句变为:masterpiece, best quality, 1girl, standing center, full body, white dress, soft sunlight from left, shallow depth of field, studio lighting, {style}。
注意:{style}必须是独立词组,前后保留逗号分隔;不能写成“in {style} style”,否则替换后语法冗余容易触发负面权重异常。模板中所有非风格要素(人物姿态、镜头参数、光照方向)必须具体且无歧义,避免使用“beautiful”“elegant”等抽象词汇——它们会干扰构图稳定性。
第三步:用X/Y/Z Plot批量注入不同风格
点击下方“脚本”下拉菜单 → 选择X/Y/Z plot → X轴类型选择“Prompt S/R”(提示词查找替换)→ X值填写:{style}: oil painting, {style}: watercolor, {style}: pixel art, {style}: anime screentone, {style}: charcoal sketch → Y轴留空 → 采样方法选择DPM++ 2M Karras → 步数设为25~30 → 生成张数按需填写(例如5种风格就填5)→ 点击“生成”。
每种风格会独立渲染一张图像,全部基于同一ControlNet参考图和相同种子(默认启用“相同的种子用于所有批次”)。若某张图构图出现轻微偏移,说明该风格词与ControlNet存在冲突,比如“pixel art”可能触发网格化预处理误判,此时需要在对应替换项后添加, no grid, no dithering进行微调。
第四步:用Dynamic Prompts插件实现更灵活风格轮换
方法一:安装Dynamic Prompts插件后,在提示词框直接输入:masterpiece, best quality, 1girl, standing center, [oil painting|watercolor|anime screentone|charcoal sketch|cyberpunk digital painting] → 开启“动态提示词”开关 → 设置批次数为5 → 生成即可得到5种风格结果。
方法二:进入插件设置页 → 关闭“随机种子” → 开启“固定种子” → 在“变量列表”中新增一行:style = oil painting, watercolor, anime screentone, charcoal sketch, cyberpunk digital painting → 提示词中写入{style}即可自动轮换。
Dynamic Prompts对中文支持较弱,若提示词中含有中文风格词(如“水墨风”),必须改用UTF-8编码保存变量文件,否则会出现乱码导致出图失败——变量文件路径不能包含中文或空格,建议放在D:\sd\extensions\dynamic-prompts\variables下。
