☰
AI同人绘图指南:用Stable Diffusion与LoRA实现小马宝莉角色固定生成
2026/10/14 6:41:05 网站建设 项目流程

「余晖烁烁/mlp」Can I get a kiss,sunset?这组标签最近在 AI 绘画社区里被反复提及。如果你关注过 My Little Pony(小马宝莉)同人创作,大概率见过这几张构图接近、角色表情带点互动感的图片:背景是暮色下的校园,角色是拥有火焰渐变鬃毛的独角兽,提示词里经常带一句 “Can I get a kiss, sunset?”。

这句话既不是官方台词,也不是某个固定模型自带的文本,而是一类提示词用法:用一句带角色互动暗示的句子,让 Stable Diffusion 模型在生成小马宝莉同人图时,同时控制角色、氛围和画面叙事。换句话说,这不是一个“软件项目”,而是一个围绕 Pony 系模型、LoRA 角色固定、提示词控制展开的 AI 同人绘图玩法。

这篇文章会把这类玩法拆开讲清楚:用什么模型出图、在哪个界面跑、显存要求大概在哪一档、提示词怎么写才稳定、能不能批量生成、能不能用 API 接进自己的工作流,以及最容易翻车的几个坑。如果你之前只是在线网站随机生成,没在本地部署过,这篇文章可以直接当入门手册看。

1. 核心能力速览

先给一张速览表,方便你判断这套玩法值不值得折腾。

能力项说明
项目类型基于 Stable Diffusion 系列的小马宝莉同人角色绘图,核心是 Pony 系模型 + 角色 LoRA + 提示词控制
主要功能文生图、图生图、角色一致性生成、风格化同人图、批量出图
常用界面Stable Diffusion WebUI(A1111)、ComfyUI、部分在线推理平台
推荐模型方向以 Pony Diffusion 系列为基础模型,搭配 Sunset Shimmer 角色 LoRA,具体版本需按本机测试
显存需求6GB 显存可以跑低分辨率测试;8GB 以上更稳;具体受模型版本、分辨率、步数影响
支持平台Windows / Linux,主要看显卡驱动和 PyTorch 环境
启动方式WebUI 一键脚本启动,或 ComfyUI 工作流导入,也可以命令行启动 API 服务
是否支持 API支持,WebUI 自带/sdapi/v1/txt2img这样的接口,ComfyUI 也有 API 接口
是否支持批量任务支持,WebUI 自带批量 count 出图,也能用脚本循环调用接口
适合场景MLP 同人创作、角色参考图生成、短视频配图、头像制作、二次元角色风格测试

需要提前说明一点:Pony 系模型和小马宝莉角色 LoRA 的版本很多,不同作者发布的底模和角色权重在画风、稳定性、显存占用上差异大。所以文章里涉及版本、参数的地方,我都尽量写通用方法,具体数值以你下载的模型为准。

2. 适用场景与使用边界

先说适合做什么。

最直接的应用是同人图生成。你不需要具备手绘能力,只需要一个写好的提示词、一个能跑 Pony 模型的 WebUI,就能在几分钟内得到一批角色构图草稿。对于写 MLP 同人小说、做语 C 角标、做粉丝视频封面的人来说,这个流程可以替代大部分找图、约稿前的草稿沟通。

其次是角色一致性测试。Sunset Shimmer 的外貌特征比较固定:金色带红色挑染的鬃毛、琥珀色眼睛、独角兽身份、常见于坎特拉高中的便服装扮。通过角色 LoRA 固定这些特征后,你可以批量生成同一个角色在不同场景、不同发型、不同表情下的图片,用于“角色设定集”或“多图连贯性”测试。

第三是构图探索。像 “Can I get a kiss, sunset?” 这种带互动语境的提示词,真正的作用是让模型朝“角色互动、靠近、亲密氛围”的方向去理解构图。相比只写 “Sunset Shimmer, solo, school yard, twilight”,加一句带动作暗示的短句,更容易出现一人一马靠近、表情交流、背景黄昏等画面元素。

需要避开的情况也很明确。

如果你要生成的角色明显涉及某个创作者的独家设定、未公开角色设定、或者直接使用官方动画截图做训练素材,需要注意合规风险。同人创作本身是灰色地带,但用于商业宣传、印刷售卖、付费订阅内容时,要考虑原角色版权和 LoRA 训练素材的授权问题。

另外,这类模型生成的角色本质上是“二创”,不要用同一套参数去生成现实人物脸,也不要生成任何可能被误认为真实未成年角色的内容。本地部署只是技术上可行,不等于使用上无边界。

3. 环境准备与前置条件

在开始之前,建议先按下面的清单检查一遍机器。

  • 操作系统:Windows 10/11 或 Linux(Ubuntu 20.04/22.04 较常见)。
  • GPU:NVIDIA 显卡优先,6GB 显存可以跑小分辨率测试;8GB 显存体验更好;12GB 以上可以比较宽松地跑 1024×1024 级别的图。AMD 显卡和老显卡也能跑,但踩坑概率高,不建议第一次就挑战。
  • 驱动:NVIDIA 驱动建议较新版本,CUDA 版本不必追求最新,关键是 PyTorch 版本和驱动能匹配。
  • Python:如果用 WebUI 整合包,很多时候自带 Python 环境,不需要手动装;如果是手动 clone 仓库,建议 Python 3.10 或 3.11。
  • 磁盘空间:模型文件占大头。Pony 底模文件通常 4GB 到 7GB,LoRA 文件通常 50MB 到 300MB,还要预留 PyTorch 缓存和输出目录。
  • 内存:16GB 内存起步,32GB 更宽裕,尤其是加载大模型再跑批量任务时。
  • 网络环境:需要能访问 Hugging Face、Civitai 或国内镜像源下载模型。遇到下载慢的情况,优先考虑国内镜像或代理下载后手动放置到 models 目录。

硬件确认无误后,再考虑部署方式。

如果你只是为了出图,不想处理代码问题,用整合包最省事。网上常见的 WebUI 整合包会把 Python、依赖、启动脚本、常用模型目录都整理好,解压后运行脚本就能启动。缺点是版本可能滞后,换模型时要自己搞清楚目录结构。

如果你想长期折腾、换模型方便、或者要接 API,建议手动部署 WebUI 或 ComfyUI。虽然安装依赖时会遇到一堆 Red Error,但一旦跑通,后续调整空间大得多。

4. 安装部署与启动方式

4.1 方案一:Stable Diffusion WebUI 手动部署

WebUI 是目前社区资料最多、最不容易卡死的方案。如果机器是 NVIDIA 显卡,按下面步骤走。

先确认显卡驱动能识别:

nvidia-smi

看到显卡型号和驱动版本就说明驱动没问题。接下来确认 Python 版本:

python --version

手动部署时,克隆官方仓库,建立虚拟环境,再安装对应依赖。核心命令模板如下:

# 克隆 stable-diffusion-webui 仓库,具体地址以官方仓库为准 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui # 创建并激活虚拟环境(Windows 用 venv 或直接使用整合包自带环境) python -m venv venv # Windows 下激活:venv\Scripts\activate # Linux 下激活:source venv/bin/activate # 安装 PyTorch,先按自己机器的 CUDA 版本到 PyTorch 官网选择安装命令 # 例如 CUDA 12.x 的安装方式: pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

安装完 PyTorch 后,再安装 WebUI 的依赖并启动:

# 安装 requirements pip install -r requirements.txt # Windows 启动脚本 webui.bat # Linux 启动脚本 ./webui.sh

启动完成后,终端会输出一个本地地址,默认是http://127.0.0.1:7860,用浏览器打开。

4.2 方案二:ComfyUI 工作流加载

ComfyUI 适合喜欢节点式工作流、或者想要更精细控制提示词和采样的用户。安装方式类似:

git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt python main.py

ComfyUI 启动后默认端口是 8188,浏览器访问http://127.0.0.1:8188即可。后续可以用别人做好的 Pony 工作流 JSON 文件直接拖入加载,把模型和 LoRA 路径改成自己的。

4.3 模型文件放哪里

Pony 底模型放到models/Stable-diffusion/目录。以 WebUI 为例:

stable-diffusion-webui/models/Stable-diffusion/ stable-diffusion-webui/models/Lora/

ComfyUI 的目录类似:

ComfyUI/models/checkpoints/ ComfyUI/models/loras/

如果模型文件是.safetensors格式,直接放进去。下载模型时,建议不要把大文件下载到系统盘,几百 GB 的模型堆积会拖慢系统。

4.4 启动后先做什么

打开 WebUI 页面后,先确认左上角模型下拉框能选到 Pony 模型,再确认设置里的显存优化选项,比如 “Optimized cross attention”、“Pad prompt tokens” 这类优化项根据需要开启。不要一上来就点 Generate,先做一次 512×512 的小图测试,确认出图正常,再往高分辨率试。

5. 功能测试与效果验证

下面用一组实际出图测试来演示整个验证流程。先说明一点:不同版本模型对提示词的响应差异比较大,同一个标签在不同模型下效果可能完全不同,所以下面的步骤更重要的是帮你找到判断标准,而不是追求一次成功。

5.1 基础文生图测试

测试目的:确认模型加载正常、提示词能生效、基础构图可用。

操作步骤:

  • 在 WebUI 的 txt2img 页签输入提示词。
  • 设置分辨率 512×768 或 768×512。
  • 采样步数 20 到 30。
  • 点击 Generate。

提示词示例:

sunset shimmer, mlp, pony, solo, twilight school yard, warm sunset lighting, asking for a kiss, close-up, soft shading, highly detailed

这里是把标题里的那句互动文本,“翻译”成 Stable Diffusion 更容易理解的画面标签。如果你用 Pony 系模型,很多情况下它也支持直接写自然语言,比如:

Can I get a kiss, sunset? Sunset Shimmer, worried but warm expression, golden mane, amber eyes, school hallway, afternoon light

建议两种都试,看哪种更贴合你下载的模型。

预期结果:生成一张包含独角兽角色、黄昏暖色调、表情偏向互动的图。如果角色脸部崩坏、鬃毛颜色不对、或者背景完全是乱的,先降低分辨率,减少采样步数到 20,再加负面提示词。

负面提示词可以这样写:

bad anatomy, bad hands, missing fingers, extra limbs, fused ears, low quality, jpeg artifacts, watermark, text, signature, blurry, out of frame

判断是否成功:角色能看出是 Sunset Shimmer,画面没有明显结构错误,背景色和环境光与 “黄昏” 关键词一致。

5.2 角色 LoRA 加载测试

测试目的:确认 LoRA 文件是否被正确识别,角色特征是否稳定。

操作步骤:

  • 点击 Show extra networks,找到 Lora 选项卡。
  • 点击你放置的 Sunset Shimmer LoRA,系统会把类似<lora:SunsetShimmer_v1:0.8>的文本自动填入提示词。
  • 调整权重,一般从 0.6 到 0.9 之间测试,太高容易过拟合,太低角色特征不明显。
  • 保持其他参数不变,重复出图。

预期结果:生成的角色鬃毛颜色、眼睛颜色、面部结构保持稳定,LoRA 权重越高,角色越像;但权重过高时可能出现颜色溢出或边缘纹理异常。

判断是否成功:连续生成 4 张图,至少 3 张能看出是同一个角色,而不是偶发性接近。

5.3 提示词改写效果对比

测试目的:验证 “Can I get a kiss, sunset?” 这类互动语句是否能给画面带来额外信息。

  • 第一组提示词只写角色特征和场景。
  • 第二组提示词在结尾加上这句互动短句。

对比两组图的构图。如果第二组出现更明显的靠近、脸颊接触、氛围变化,说明这种带场景叙事的提示词对你当前模型有效;如果两组几乎没有区别,说明模型对文本含义的解析有限,需要换成更结构化的标签式提示词。

这种对比测试非常值得做,因为不同底模对自然语言的理解能力差别很大。Pony 系模型普遍能理解画风词和角色词,但互动类文本不一定每次都生效。

5.4 分辨率与中段修正测试

从 512×768 提升到 768×1152,甚至 1024×1536。如果你直接生成高分辨率图,很容易出现崩手、崩脸、重复纹理。更稳妥的方法是先生成 512 到 768 分辨率的小图,再使用 “Extra” 或 “Hires. fix” 放大。

Hires. fix 开启 Upscaler: R-ESRGAN 4x+ Anime6B 或按本机可用模型选择 Denoising strength: 0.4 到 0.6

高分辨率测试时要注意显存占用。打开任务管理器或nvidia-smi,观察显存是否接近上限。如果爆显存,降低分辨率或减小 batch size。

5.5 图生图测试

图生图的一个典型用法是改变角色服装或背景。把一张已生成的图拖入 img2img,把提示词改成 “sports outfit, outdoor track field”,再把 Denoising strength 控制到 0.5 到 0.7,可以看到角色保持脸部特征的情况下,场景和服装发生迁移。

这个测试的价值在于:如果你要做一套角色设定图,不需要每次从零生成,而是基于一张满意的脸部参考图反复调整,效率和一致性会高很多。

6. 接口 API 与批量任务

如果你不只是想手动点 Generate,而是要批量出图、或者把出图接进自己的工具,WebUI 自带的 API 是最快的方式。

启动 WebUI 时加上--api参数:

# Windows 命令示例 webui.bat --api # Linux 命令示例 ./webui.sh --api

启动后,默认地址http://127.0.0.1:7860下就可以访问接口文档,常见路径是/docs。核心接口是/sdapi/v1/txt2img。

下面给一个 Python 调用示例,具体参数需要按你实际的接口和模型调整:

import requests import base64 import os import time url = "http://127.0.0.1:7860/sdapi/v1/txt2img" prompt = ( "sunset shimmer, mlp, pony, solo, twilight school yard, " "warm sunset lighting, asking for a kiss, close-up, " "<lora:SunsetShimmer_v1:0.8>" ) payload = { "prompt": prompt, "negative_prompt": "bad anatomy, bad hands, extra limbs, low quality, watermark", "steps": 25, "width": 768, "height": 768, "batch_size": 1, "n_iter": 1, "sampler_name": "DPM++ 2M Karras", "cfg_scale": 7, } response = requests.post(url, json=payload, timeout=120) if response.status_code == 200: data = response.json() os.makedirs("./outputs", exist_ok=True) for idx, img_b64 in enumerate(data.get("images", [])): img_bytes = base64.b64decode(img_b64) filepath = f"./outputs/sunset_{int(time.time())}_{idx}.png" with open(filepath, "wb") as f: f.write(img_bytes) print("saved:", filepath) else: print("error:", response.status_code, response.text)

批量任务最简单的方式是循环调用接口,把不同提示词写进一个列表:

prompts = [ "sunset shimmer, mlp, pony, school entrance, morning light, waving", "sunset shimmer, mlp, pony, library, candle light, reading", "sunset shimmer, mlp, pony, rainy street, umbrella, walking away", ] for idx, prompt in enumerate(prompts): payload["prompt"] = prompt resp = requests.post(url, json=payload, timeout=120) if resp.status_code == 200: img_data = resp.json()["images"][0] img_bytes = base64.b64decode(img_data) with open(f"./outputs/batch_{idx}.png", "wb") as f: f.write(img_bytes) print(f"batch {idx} done") else: print(f"batch {idx} failed", resp.status_code)

批量任务建议加time.sleep(0.5)或更长的间隔,避免接口连续请求带来的压力,尤其是显卡本来就吃紧的情况。把batch_size调成 4、n_iter调成 1 和batch_size调成 1、n_iter调成 4,显存占用和任务耗时完全不一样。显存小的情况下,建议小 batch 多轮次,出图结果都保存下来,再从里面挑图。

ComfyUI 也可以走 API,但请求结构和 WebUI 差别较大,需要在 ComfyUI 里使用 “Save (API format)” 导出工作流后,用/prompt接口提交。如果你第一次接入 API,建议先用 WebUI,资料多、踩坑少。

7. 资源占用与性能观察

跑 Pony 系模型时,资源占用主要看三块:显存、内存、磁盘读写。

显存是最容易出问题的点。6GB 显卡跑 512×512 通常问题不大,跑 768×768 就比较吃紧;加载 Pony 底模 + LoRA 后,再启用 Hires. fix,显存占用会显著上升。实际操作时,可以打开 Windows 任务管理器里的 “GPU 显存” 一栏,或者用命令行实时观察:

nvidia-smi -l 2

这个命令每 2 秒刷新一次,可以看到进程占用的显存大小、利用率、温度。如果显存占用长时间在 95% 以上,大概率离报错不远,可以从下面几个方向优化:

  • 降低分辨率,先出 512,再用图生图或 Hires. fix 放大。
  • 减小 batch size,一次只出一张。
  • 关闭 WebUI 里不必要的预览插件,部分插件会把中间步骤保存到显存。
  • 使用 xformers 或类似的显存优化选项,启动时加--xformers。
  • 如果显卡只有 4GB,建议直接考虑在线平台或 ComfyUI 的轻量量化模型。

内存方面,Windows 上如果机器是 16GB,运行 WebUI 再同时开浏览器、编辑器,内存占用经常会到 80% 以上。尽量关掉多余应用再跑批量任务。

磁盘方面,如果你做批量生成,输出目录会膨胀得很快。建议把输出目录单独放到空间充足的盘符,不要和系统盘混在一起。WebUI 的默认配置里可以在设置中修改输出目录,ComfyUI 则可以通过自定义输出节点路径来指定。

关于 CPU 推理,如果你的机器没有 NVIDIA 显卡,Pony 模型基本无法流畅运行。Stable Diffusion 支持 CPU 推理,但速度慢得多,一张 512×512 的图可能要几分钟到十几分钟,批量任务不现实。如果有集成显卡或者老显卡,性能通常也不理想,不如直接用在线服务。

8. 常见问题与排查方法

问题现象可能原因排查方式解决方案
启动后页面打不开端口被占用或服务未启动查看终端日志,执行netstat -ano | findstr 7860换端口启动,例如webui.bat --port 7861
提示词里写 LoRA 但没生效LoRA 文件没放在模型目录或文件名识别错误检查 Lora 选项卡里能否看到模型文件把 LoRA 文件放入正确目录,重启 WebUI
出图人物五官崩坏分辨率过高、步数不足、模型不支持该画风观察角色脸部细节,检查生成日志降低分辨率,增加步数到 25 以上,切换采样器
出图鬃毛颜色对不上角色LoRA 权重太低,或基础模型和 LoRA 不匹配对比不同权重下的角色颜色提高 LoRA 权重到 0.8 左右,确认基础模型是 Pony 系
显存不足报错图尺寸太大、batch 太大查看nvidia-smi显存占用降低分辨率,关闭 Hires. fix,减小 batch size
下载模型非常慢网络问题查看下载工具速度使用国内镜像、网盘转存或手动下载后放到模型目录
批量任务中途卡住显存溢出或接口异常查看终端输出,检查任务日志减小 batch size,增加任务间隔,重启服务
生成图片颜色过曝或过灰CFG 值太高或太低调整 CFG 范围从 6 到 8 之间测试,不同模型差异很大
显卡型号太老无法运行驱动或 PyTorch 版本不匹配查看nvidia-smi和 Python 库版本更新驱动,或安装对应 CUDA 版本的 PyTorch

还有一个经常被忽略的问题:模型文件下载不完整。.safetensors文件如果没下载完,WebUI 在加载时会报错或者加载后生成全黑图。遇到这种情况,先检查文件大小是否和发布页标注一致。

9. 最佳实践与使用建议

第一,第一次测试不要直接开高分辨率。先 512×512、步数 20、batch size 1,跑通流程再逐步加压。如果你一上来就 1024×1536 加 Hires. fix,爆显存概率极高,而且出问题后很难判断是哪一步导致。

第二,把提示词模板化。不同模型对提示词格式的接受度不同,你可以在测试时保存 2 到 3 套提示词模板:一套是纯标签式,一套是混合了自然语言的句子,一套是带 LoRA 和负面提示词的完整模板。后续换模型时,直接在模板上增删。

第三,目录管理要清晰。建议建立这样的结构:

./outputs/ prompts/ seed_test/ lora_test/ final/

不同测试目的的结果分开存放,否则几小时后你会发现茫茫多的图片文件,根本分不清哪张用的什么参数。WebUI 默认输出文件名里会带 seed、prompt 信息,也可以通过脚本在保存图片时把提示词写进文件名。

第四,用固定种子做对比测试。在txt2img界面固定 Seed,这样你改一个参数(比如 LoRA 权重)后,生成结果的可比性更高。否则每次出图都是随机采样,你根本判断不出是参数变化导致的差异,还是随机因素导致的差异。

第五,注意版权与授权。小马宝莉的角色版权属于孩之宝,Sunset Shimmer 是官方动画角色。个人同人创作通常没问题,但如果你要在视频平台做商业推广、制成周边售卖、或者投喂到商业化生成服务,需要格外谨慎。同理,你在 Civitai 下载 LoRA 时,要注意作者是否声明了禁止商用、禁止二次分发等条款。

第六,涉及脸部生成、声音、真实人物形象时,本地部署只是工具有效性,不等于使用合规。生成小马宝莉这类动画角色二创图相对风险低,但一旦把同一套流程迁移到现实人物生成,授权和隐私问题会立刻放大。原则上不要用其他人的照片、视频画面、私密素材做训练或推理。

10. 总结与下一步

“Can I get a kiss, sunset?” 本质上是一个提示词层面的测试入口。通过它,你可以快速检验自己的 Pony 模型、Sunset Shimmer LoRA、环境配置、出图流程是否正常。它不复杂,但刚好覆盖了 AI 同人绘图里最核心的几个环节:模型选择、LoRA 加载、提示词控制、批量测试和接口调用。

最值得先做的事只有一件:跑通本地 WebUI,把一张 Sunset Shimmer 的角色图生成出来。确认这一步没问题后,再往多提示词、批量任务、图生图方向延伸。最容易翻车的点,还是高分辨率下的显存和 LoRA 权重调整,建议把这两项作为第一轮测试的重点。

如果你想进一步扩展,下一步可以尝试把多张 Sunset 角色图接入动画短片生成流程,用图生视频模型生成短视频素材;也可以把这一套提示词模板接进自动化任务,每天定时生成一组角色参考图。不过在那之前,先把 512×512 的单张出图稳定性打磨好,远比追求花哨功能有用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询