
这次我们来看的并不是一个新模型而是一条把「果宝特攻 OC 镜像宇宙」这类同人原创角色设定批量落地的 AI 生图工作流。目标很具体本地部署一套绘图服务把原创角色“修罗椰子尊”的形象稳定下来再批量产出不同场景、不同姿态、不同系列编号的立绘同时把显存占用、启动方式、API 接口和失败排查都跑通。先说结论这套流程不绑定某个专属软件而是用 Stable Diffusion WebUI / ComfyUI 动漫风格 checkpoint 角色 LoRA 固定 seed 的组合来实现批量化的立绘产出。它同时覆盖文生图、图生图、角色一致性控制、接口调用与批量任务适合正在做同人 OC 系列图集、或者想把自己的原创角色做成稳定素材库的创作者。显存要求需要按实际模型和分辨率来判断。只出 512 到 768 分辨率的常见动漫立绘8G 显存更容易流畅尝试如果要跑长图、叠加多组 ControlNet 或者高并发批量建议准备更充足的显存。如果只有 CPU也能跑但速度会明显下降。下面这套部署和验证流程针对的就是“能不能在本地跑起来、怎么验证效果、批量任务怎么接”这三个核心问题。1. 核心能力速览能力项说明工具类型AI 生图本地部署工作流以「果宝特攻 OC 镜像宇宙」角色立绘批量制作为案例推荐组合Stable Diffusion WebUI 或 ComfyUI 动漫风格 checkpoint 角色 LoRA ControlNet主要功能文生图、图生图、角色一致性控制、批量立绘生成、HTTP API 调用推荐硬件最好有 NVIDIA 显卡显存大小按模型和分辨率确定8G 起步更稳妥显存占用不确定需按实际模型、分辨率、步数和 batch size 测试支持平台Windows / Linux 较常见macOS 可用但速度与兼容性需实测启动方式命令行启动 WebUI 或 ComfyUI浏览器访问操作界面接口能力以对应工具的 HTTP API 为准本文给出通用调用模板批量任务支持可通过配置文件、Python 脚本或 WebUI 批量队列实现适合场景同人 OC 系列图集、角色设定图、批量素材生产、IP 周边物料预研这张表的意义是帮你先确认工作量如果你只想生成几张概念图直接用 WebUI 手动跑就行如果你要做完整的“镜像宇宙”系列比如同一角色在不同世界编号下的变体那就必须把批量脚本和角色一致性方案一起搭好。需要特别说明的是本文所有命令和 API 示例都是通用模板。实际项目里的模型文件、端口、路径和参数要按你本机部署的版本替换不要直接当作某个成品软件的一键包来使用。2. 创作需求拆解与合规边界2.1 把“镜像宇宙05-修罗椰子尊”拆成可生成的要素“果宝特攻 OC”本质上是一个同人原创角色项目。“OC”指 Original Character也就是创作者在既有世界观下设计的原创角色。“镜像宇宙05”可以理解成一个平行世界编号意味着同一角色在不同宇宙设定里可以有不同的外观、气质和战斗风格。而“修罗椰子尊”是这个角色在该世界线下的称号或形态名。要把这个设定转成 AI 可执行的内容需要先拆成几个固定要素角色基础外貌发色、瞳色、脸型、体格。服饰与武器标志性服装配色、配饰、武器形状。世界观标签镜像宇宙、修罗形态、椰子元素。动作与构图立绘姿势、镜头景别、是否带场景特效。这些要素越明确提示词越稳定角色形象就越不容易跑偏。建议先手写一份角色设定卡再把它转换成 JSON 配置最后把 JSON 作为批量生成的输入文件。2.2 同人创作与 AI 生图的合规边界先讲清楚一个很容易被忽略的问题同人 OC 创作本身是以第三方动画 IP 为背景的二次创作个人学习、自娱自乐通常没问题但一旦涉及商用、售卖、公开发布大量衍生内容就要谨慎处理版权授权问题。不要直接拿《果宝特攻》的原始角色模型、截图、官方美术素材去训练或生成也不要宣称 AI 生成图是官方设定图。同时要提醒三点生成出来的图片可能存在版权归属争议尤其是使用了在线模型或他人训练的风格模型时商用前必须先确认模型许可协议。不能使用 AI 生成涉及现实人物肖像、隐私、他人形象的内容避免侵犯肖像权和名誉权。涉及角色形象、声音、同人剧本再创作时必须尊重原作 IP 的版权边界不传播低俗、敏感、误导性内容。本文给出的技术流程只面向学习和技术验证最终发布或商用前需要人工复核授权情况。3. 环境准备与前置条件3.1 硬件与系统建议本地部署 AI 生图服务优先推荐 NVIDIA 显卡因为 CUDA 生态最成熟。没有 NVIDIA 显卡也不是完全不能跑但会遇到驱动不匹配、推理慢、部分模型不支持等问题。建议按以下顺序检查机器检查项说明操作系统Windows 10/11 或常见 Linux 发行版macOS 也能跑但兼容性需实测显卡驱动NVIDIA 驱动建议更新到较新版本并保证 CUDA 可用GPU 显存8G 起步更稳妥只跑 512 分辨率小图可以更低跑 768 以上建议更充足内存16G 以上批量任务和加载大模型时更安心磁盘空间至少预留 30G 以上模型文件、临时输出、Python 环境都会占空间Python建议 3.10 或 3.11常见 WebUI 和 ComfyUI 版本兼容性较好3.2 依赖安装前的通用检查清单不要一上来就装环境先做四步检查# 检查显卡与驱动 nvidia-smi # 检查 Python 版本 python --version # 检查 Git 是否可用 git --version # 检查磁盘空间 df -h如果nvidia-smi能正常显示显卡型号和驱动版本说明 CUDA 驱动层面基本没问题。如果提示找不到命令要么显卡驱动没装好要么需要在系统环境变量里配置路径。依赖安装失败是最常见的坑。先确认 PyTorch 版本和 CUDA 版本对应关系再继续装其他依赖。不要盲目照抄网上的安装命令因为不同的显卡驱动、Python 版本和操作系统会导致完全不同的结果。4. 本地部署与启动方式4.1 方案一Stable Diffusion WebUIStable Diffusion WebUI 适合大多数用户界面完整操作直观也很方便做单张测试和批量出图。以常见部署方式为例# 拉取代码 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui # Windows 下一般直接运行 webui.bat webui.bat # Linux 下运行 ./webui.sh第一次启动会创建 Python 虚拟环境并下载依赖耗时较长。启动后浏览器访问http://127.0.0.1:7860看到页面就说明 WebUI 已经跑起来了。模型文件通常放在models/Stable-diffusion目录下LoRA 模型放在models/LoraVAE 文件放在models/VAE。下载到的模型名称要和 checkpoint 选择器里的名字对应否则会报“模型文件缺失”或“无法找到 checkpoint”。4.2 方案二ComfyUIComfyUI 以节点化工作流著称更适合做复杂的批量流程和流程复用。启动方式如下# 拉取代码 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 安装 Python 依赖 pip install -r requirements.txt # 启动服务 python main.py --listen 127.0.0.1 --port 8188启动后访问http://127.0.0.1:8188。ComfyUI 的模型目录结构和 WebUI 有些差异通常也是把 checkpoint 放到models/checkpointsLoRA 放到models/loras。4.3 启动后的第一眼检查启动日志里重点看三件事是否出现“Running on local URL”之类的说明确认服务地址。是否出现模型加载成功提示确认 checkpoint 被正确识别。是否出现端口占用报错如果 7860 或 8188 被占用就换一个端口重新启动。# 更换端口示例 python main.py --listen 127.0.0.1 --port 9999如果页面打不开先看命令行窗口有没有报错再看端口是否被占用。不要反复双击启动脚本这样容易产生多个残留进程造成显存占用和端口冲突。5. 角色形象一致性测试与效果验证5.1 先写一份角色设定模板一致性是 AI 生图做系列作品时最大的痛点。同一个角色在不同批次里经常变成完全不同的脸更别提服装、发色和武器。解决办法就是先把设定固定成可复用的模板。下面是一份角色设定的 JSON 示例{ project: 果宝特攻OC镜像宇宙, universe_no: 05, character: 修罗椰子尊, appearance: { hair: 银白色长发, eyes: 金色竖瞳, outfit: 红白配色战斗服, weapon: 椰子形法杖, mark: 额前月牙标记 }, scene: 镜像宇宙入口破碎空间背景, style_tags: anime style, 3d animation style, dynamic pose, detailed background, negative_prompt: blurry, low quality, extra fingers, deformed face, bad anatomy }这份 JSON 是后续提示词组装的基准。每次生成前把appearance里的关键描述拼到正向提示词里把negative_prompt固定不变能明显降低角色漂移概率。5.2 测试矩阵设计第一次测试不要追求数量而是先把角色稳定住。建议按下面的矩阵逐项验证测试用例输入要点预期结果判断标准基础立绘设定卡 站立姿势角色五官稳定、服装配色一致脸部无明显变形武器特征清晰半身像设定卡 特写镜头表情和发型符合设定眼睛颜色正确头发走向自然战斗姿态设定卡 动态姿势动作合理衣服和武器不穿模双手结构正常武器细节不崩坏背景变化设定卡 换背景关键词角色不变背景改变主体与背景分离干净光影一致同角色多姿态相同正面词 不同动作词多张图看起来是同一个人五官、发型、配色跨图一致测试时先固定 seed。seed 是随机数种子固定后同样的提示词和参数能重现类似构图调试角色一致性时非常有用。先跑出能用的 seed再逐步放开变化。5.3 用图生图和控制网络进一步锁角色如果纯文生图效果不稳定可以先把一张满意的人设图作为参考图做图生图局部修改。更进阶的做法是使用 ControlNet用 OpenPose 控制姿势用 Depth 或 Canny 控制构图让不同宇宙编号下的角色保持结构一致。这只是稳定角色的两个手段不是必须一开始就全部上。第一次先跑最简单的文生图确认模型风格合适后再考虑 LoRA 与 ControlNet。5.4 角色专属 LoRA 训练方向如果同一个角色要反复出现在几十张图里最推荐的做法是为角色训练一个专属 LoRA。当前主流做法是收集十几到几十张同一角色、不同角度的清晰素材做裁剪和打标再用 LoRA 训练脚本微调。训练完成后把这个 LoRA 名称写进提示词模板角色辨识度会大幅提升。注意不要拿单张图片硬训也不要让素材背景过于杂乱。LoRA 需要足够多的角度和表情变化否则很容易过拟合到某一张图上。6. 批量生成与接口 API 调用示例6.1 用配置文件组织批量任务批量生成“镜像宇宙”系列时不建议逐条手写提示词。更合理的方式是维护一个批量任务列表让脚本自动逐条读取并调用生图接口。任务配置示例[ { task_id: universe_05_001, character: 修罗椰子尊, prompt: silver long hair, golden eyes, red-white combat suit, coconut scepter, standing pose, anime style, 3d animation style, negative_prompt: blurry, low quality, extra fingers, width: 768, height: 768, seed: 20240501 }, { task_id: universe_05_002, character: 修罗椰子尊, prompt: silver long hair, golden eyes, red-white combat suit, coconut scepter, battle pose, dynamic lighting, anime style, 3d animation style, negative_prompt: blurry, low quality, extra fingers, width: 768, height: 768, seed: 20240502 } ]把任务清单和输出目录放在一起脚本只负责“读配置、调接口、写文件、记日志”。后续想新增宇宙编号只需要复制一个新的任务块替换场景关键词和编号即可。6.2 Stable Diffusion WebUI API 调用示例Stable Diffusion WebUI 启动后默认自带 HTTP API 接口。下面这段 Python 脚本演示如何调用文生图接口并保存图片。import requests import base64 import json api_url http://127.0.0.1:7860/sdapi/v1/txt2img payload { prompt: silver long hair, golden eyes, red-white combat suit, coconut scepter, standing pose, anime style, 3d animation style, negative_prompt: blurry, low quality, extra fingers, deformed, steps: 24, width: 768, height: 768, batch_size: 1, seed: -1, sampler_name: Euler a } resp requests.post(api_url, jsonpayload, timeout300) resp.raise_for_status() images resp.json().get(images, []) for idx, img_b64 in enumerate(images): img_data base64.b64decode(img_b64) with open(foutput_universe_05_{idx}.png, wb) as f: f.write(img_data) print(f生成完成共保存 {len(images)} 张图片)请求参数中的seed: -1表示随机种子可以让脚本每次生成不同构图。需要复现某张满意图时把返回结果里的info字段解析出来提取你想要的 seed 和参数再照搬回去。注意端口要与启动时保持一致。ComfyUI 有自己的 API 格式与 WebUI 不同调用前先查对应版本的接口文档不要直接照抄上面的 API 路径。6.3 批量任务的重试与日志批量任务最常见的现象是跑到一半某张图失败。建议在脚本里加两个机制失败重试单张图超时或接口报错时先记录错误等待 2 到 5 秒后重试 2 到 3 次。日志记录每张图保存后把 task_id、seed、耗时、输出文件名写入日志方便事后排查。不要为了省时间把 batch_size 调得很大。先单张跑通稳定后再提高并发数。一次开启太多任务显存耗尽的概率会直线上升。7. 资源占用与性能观察7.1 怎么看显存占用生成过程中在命令行里运行nvidia-smi可以实时看到 GPU 占用、显存使用和进程列表。也可以加一个循环把监控结果写入文件方便对比不同参数下的显存变化。# 每 1 秒刷新一次 GPU 状态 nvidia-smi -l 1对于一张 512 分辨率的普通动漫立绘显存占用相对可控。一旦把分辨率提到 768 以上、增加 ControlNet 或同时跑多张图显存占用会明显上升。具体数字必须以你的显卡和模型实测为准。7.2 影响性能的关键因素影响因素影响方向降低开销手段分辨率分辨率越高显存占用和耗时越大先 512稳定后再逐步提高采样步数步数越多越慢但不一定更精细常见 20 到 30 步按效果调整batch size一次生成多张会成倍增加显存批量任务用单张循环更稳ControlNet多组控制网络会明显增加显存布线时只保留必要控制条件负面提示词长度影响较小但过长会干扰采样保持简洁列出高频坏点即可LoRA 权重权重过高易崩图过低角色不稳定按模型实际表现调整7.3 在显存紧张时怎么降档如果显存不足优先做这几件事把分辨率降到 512或者启用高清修复分块重绘。关掉多余的后台程序减少显存共享压力。在 WebUI 启动参数里使用--medvram或--lowvram让模型分块加载。换用显式支持半精度推理的模型降低模型权重占用。强制单 batch 生成不要让一次任务跑多张图。CPU 推理也能跑但出图时间会成倍增加。如果机器是 CPU 跑图建议把分辨率保持在小尺寸并关闭 ControlNet 等重计算模块减少等待时间。8. 常见问题与排查方法问题现象可能原因排查方式解决方案启动后页面打不开服务未启动或端口被占用查看启动日志检查端口是否被监听更换端口或重启服务依赖安装失败Python 版本不匹配、网络原因、CUDA 版本不对查看 pip 报错日志确认版本对应关系使用匹配的 Python 版本检查 PyTorch 安装源模型文件加载不到checkpoint 放错目录或文件名不匹配检查模型目录结构刷新 WebUI 模型列表把模型放到正确目录重启服务显存不足分辨率、batch 或模型权重过大用 nvidia-smi 观察显存峰值降低分辨率关闭冗余模型增加启动降显存参数角色形象漂移seed 不固定、提示词不完整、缺少参考模型固定 seed检查提示词要素是否齐全建统一人设 JSON采用参考图或 LoRA 锁定角色图片脸部崩坏采样器或模型风格不匹配负面提示词不足对比不同采样器和步数补充负面提示词切换到更合适的动漫模型API 调用失败端口不对、请求格式错误、服务未启动用 curl 自测接口地址检查启动日志确认接口路径与请求字段批量任务卡住显存耗尽、单张超时、死循环查看脚本日志检查进程是否还存活加超时与重试降低并发数单张逐步排查排查时先看日志再看资源最后看参数。不要一报错就删环境重装很多问题只是目录、端口或模型版本不一致导致的。9. 最佳实践、版权复核与下一步9.1 推荐目录结构批量项目建议按以下方式组织文件避免后期整理图集和排查问题时找不到素材project/ ├── config/ │ └── tasks.json ├── models/ │ ├── checkpoints/ │ ├── loras/ │ └── vae/ ├── inputs/ │ └── reference_images/ ├── outputs/ │ ├── universe_05/ │ └── universe_06/ ├── scripts/ │ └── batch_generate.py └── logs/ └── generate_log.csv模型文件、输入素材、输出结果和建议分开存放。脚本只负责读取配置和写结果不要在脚本里硬编码太多路径。9.2 发布前必须做的人工复核AI 生成图片不代表可以直接当成成品发布。至少要人工检查这几项角色五官是否有明显畸变。画面文字、符号是否存在错误或误导。素材是否涉及未经授权的第三方角色、商标、肖像。同人作品是否遵循原作 IP 的非商用和署名规范。是否标记为 AI 辅助生成避免产生误导。这套流程最值得先验证的地方就是把“修罗椰子尊”的设定卡转成固定 seed 和固定提示词后能不能连续生成一批形象一致的基础立绘。最容易踩的坑是一开始就上高分辨率、大 batch、多 ControlNet结果显存不够又没固定 seed失败后很难判断问题出在参数还是硬件。建议从 512 分辨率加单张生成开始确认单张效果稳定后再扩大批量。后续可以继续做的方向是训练角色专属 LoRA把工作流搬进 ComfyUI 并导出可复用模板再把 HTTP API 接到自己的素材管理工具里。建议先把这份流程收藏真正开始部署时可以照着逐步验证。