ArtGen 分册 · 古典艺术绘画与 AI 生成(国风/古典风格方向 · CPU 服务器部署)¶
版本基线: 出图引擎见
AppDocs\ImageGen\README.md(ComfyUI v0.44.0 / GPL-3.0,--cpu模式);本册聚焦"古典风格"资产:GuoFeng3(xiaolxl,SD1.5 底模 0.9B,HF 模型卡 CC BY-NC-SA 4.0 非商用,2023-01-28 发布,后续 3.1/3.2 微调版同库)· 国风插画 LoRA(Civitai 120206,SDXL,CreativeML OpenRAIL++-M,2024-10 更新,触发词guofeng/chinese style)· Chinese gongbi painting(Civitai 2730484,SDXL LoRA,OpenRAIL++-M,2026-06-25 发布)· Chinese ink painting - liujiyou(Civitai 701264,SDXL LoRA,OpenRAIL++-M,2024-08-30 发布,2026-08 更新)· 墨心 MoXin(Civitai 12597,SD1.5 水墨 LoRA)· ControlNet 1.1(lllyasviel/ControlNet-v1-1,control_v11p_sd15_*系列;代码 Apache-2.0,权重许可未核实)· IP-Adapter(tencent-ailab/IP-Adapter,Apache-2.0,22M 参数;上游仓库 2024-01 后无新提交,ComfyUI 侧用cubiq/ComfyUI_IPAdapter_plus)· WikiArt 数据集(80,020 图 / 1,119 艺术家 / 27 风格,仅限非商业研究)(核对日期 2026-11-11,来源:官网/GitHub/HuggingFace/Civitai)宿主机约束(必读): Windows Server 2022,2×Xeon Gold 6138(40 核 80 线程)、256GB 内存、F 盘 895G / 剩余 862G。无独立 GPU,纯 CPU 推理。服务以 Docker 容器优先部署,产物只存
F:\EricLiu\下;模型权重统一放F:\EricLiu\labs\models\。业务目标: 在纯 CPU 条件下做"古典风格"图像的验证级/课件级产出(国画、工笔、年画、古典插画),并为青少年编程教学提供可调用的出图服务接口。
1. 选型对比("古典风格"维度)¶
1.1 底模 / 风格大模型¶
| 名称 | 底模/参数 | 体积 | 许可证 | CPU 可行性 | 适用范围 | 限制 |
|---|---|---|---|---|---|---|
| SD 1.5(见 ImageGen 分册) | 0.98B | ≈4GB | CreativeML OpenRAIL-M(可商用,附使用限制) | ✅ 512px/20 步 ≈ 1~2 分钟/张 | 古典风格主力底座:LoRA/ControlNet 生态最全(国风 LoRA 多数是 SD1.5) | 画质与解剖结构老;1024px 需 hires-fix(CPU 上翻倍耗时) |
| SDXL 1.0 | 3.5B | ≈6.9GB | CreativeML OpenRAIL++-M | ⚠️ 1024px/25 步 ≈ 5~15 分钟/张 | 古典插画、工笔细节、需要 1024 构图时 | CPU 慢;LoRA/ControlNet 体积与算力都更大 |
| SD-Turbo | 同 SD1.5 | ≈2.5GB | Stability 非商业许可 | ✅ 512px/1~4 步 ≈ 10~60 秒/张 | 冒烟测试、课堂演示、prompt 试错 | 非商用;cfg=1.0 且步数 ≤4,否则过饱和/坏图 |
| SDXL-Turbo | 同 SDXL | ≈6.9GB | Stability 非商业许可 | ⚠️ 1024px/1~4 步,分钟级 | SDXL 风格快速试错 | 非商用;尺寸必须 1024×1024 整倍数 |
| GuoFeng3(国风3) | SD1.5 微调,0.9B | ≈1.6GB(fp16)/≈2.4GB 运行 | ⚠️ CC BY-NC-SA 4.0(非商用,衍生同许可) | ✅ 512~768px 可用(SD1.5 量级) | 中国华丽古风、2.5D 古风人物、场景;水墨倾向 | ① 非商用;② 部分国内平台另标"可商用",与 HF 模型卡冲突,商用前须向作者书面确认,默认按非商用;③ 人物/大头照据作者自述二代(Gf_style2)更好 |
| FLUX.1(dev/schnell) | 12B | 17~23.8GB | dev 非商用 / schnell Apache-2.0 | ❌ 纯 CPU 小时级,不可行(见 ImageGen 分册结论) | 追求最高画质、文字渲染 | 本机直接回避;需要时走云 GPU API |
1.2 古典风格 LoRA(生态现状)¶
LoRA 生态集中在 Civitai(模型社区,需账号;下载前必须看该模型页的 License 与"训练数据说明")。下表为已核实存在的代表项,不是穷举;同风格还有大量作者自训版本,许可与数据来源差异极大。
| 名称 | 底模 | 体积 | 许可(模型页标注) | 触发词/用法 | 适用范围 | 限制 |
|---|---|---|---|---|---|---|
| 国风插画(chinese style illustration) Civitai 120206 | SDXL 1.0 | ≈325MB | OpenRAIL++-M | (guofeng)(Chinese style) |
国风插画、海报级构图 | 2023-08 首发、2024-10 更新;训练集仅约 50 张,题材偏窄(人物/插画) |
| 古风 LoRA XL(GuFengXLLora) Civitai 189882 | SDXL 1.0 | ≈971MB | OpenRAIL++-M | traditional chinese ink painting、black and white ink painting;权重 0.5~1 |
水墨、古风人物/柳岸场景 | 作者建议 clip skip=2;权重 >1 易糊 |
| guofeng Civitai 66715 | SD 1.5 | ≈36MB | OpenRAIL-M | 单词 guofeng |
古风人物(轻量,叠加方便) | 体积极小,风格较弱,需配合底模(Counterfeit/chilloutmix) |
| 墨心 MoXin Civitai 12597 | SD 1.5 | — | 模型页标注(下载前自查) | shuimobysim 等;CFG 1~3 写意 / 3~7 渐工笔 |
大写意水墨、山水花鸟 | 需配国风底模(如 GuoFeng3.2);CFG 是风格开关 |
| Chinese gongbi painting Civitai 2730484 | SDXL 1.0 | ≈435MB | OpenRAIL++-M | traditional chinese gongbi painting, zeshan style, ink wash texture, meticulous line work, rice paper texture |
工笔(山海经异兽题材) | 训练集以异兽为主,只当风格 LoRA 用,物象准确性靠其它 LoRA/ControlNet 补 |
| Chinese ink painting - liujiyou Civitai 701264 | SDXL 1.0 | ≈218MB | OpenRAIL++-M | 风格 LoRA(作者首作) | 刘继卣式工笔/插画水墨 | 单一艺术家风格,版权与风格模仿风险最高(§6) |
| Fusion gongbi painting Civitai 153283 | SDXL | — | 模型页标注(自查) | xdgbtyle(可省略);权重 0.7~1 |
现代融合工笔、国风人物海报 | 2023 年老模型;建议配 dreamshaperXL 类底模 |
LoRA 通用事实: ① 体积小(数十 MB~1GB),CPU 上额外开销约 5~15%(只多一次低秩前向);② 必须与底模同代(SD1.5 LoRA 不能用于 SDXL,反之亦然),装错会报 size mismatch 或静默出废图;③ 触发词不写 = 大概率不生效。
1.3 控制工具(构图/线描/风格参考)¶
| 工具 | 版本/系列 | 许可证 | CPU 开销 | 适用 | 限制 |
|---|---|---|---|---|---|
| ControlNet 1.1(lllyasviel) | control_v11p_sd15_canny/lineart/scribble/depth/softedge、control_v11p_sdxl_* |
代码 Apache-2.0;模型权重许可未在模型卡明确单一许可 → 未核实 | ⚠️ 额外一份 UNet 前向,单图 +40~80% 耗时 | 线描控制(工笔白描最有用:lineart/softedge)、构图锁定(depth/canny) |
权重体积 700MB~1.4GB/个;SD1.5 与 SDXL 版本不通用;CPU 上叠 2 个以上基本不可用 |
| 预处理器(annotators) | comfyui_controlnet_aux 提供的 lineart/hed/mlsd/openpose 等 |
GPL-3.0(节点包,需自查) | 低(CPU 可跑,秒级) | 把线稿/照片转成 ControlNet 条件图 | 单独装节点包;与 ComfyUI 版本需对齐 |
| IP-Adapter | ip-adapter_sd15 / ip-adapter-plus_sd15 / ip-adapter-plus-face_sd15 / SDXL 版 |
Apache-2.0(tencent-ailab/IP-Adapter) | 低(22M 适配器,+10~20%) | 用一张参考图锁风格/题材("给我这种宋画气质"),不必训练 LoRA | ① 上游仓库 2024-01 后无新提交(≈2 年停滞),但 ComfyUI 插件 cubiq/ComfyUI_IPAdapter_plus 仍活跃;② 必须配套 CLIP Vision(CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors);③ CPU 上风格迁移效果明显但细节会"照片化" |
| Annotino | — | — | — | — | ❌ 未核实存在:检索未发现同名公开项目/模型,疑为 Annotator(ControlNet 预处理器) 或 AnimateDiff(视频生成) 的误记。本册按"预处理器(controlnet_aux)"处理;如需视频动态效果另立专题,不在本册范围 |
1.4 数据集与素材源¶
| 来源 | 规模 | 许可 | 用途 | 限制 |
|---|---|---|---|---|
WikiArt(cs-chan/ArtGAN 分发版 / archive.org 镜像) |
80,020 图 / 1,119 艺术家 / 27 风格(另一 refine 版 25.4GB) | 仅限非商业研究;图片来自 wikiart.org,须遵守其条款 | 风格分类研究、风格 LoRA 实验(研究) | ① 不可商用、不可再分发;② 不含中国画专项标注(风格体系是西方美术史分类);③ 原站对在版权作品走 fair-use 低分辨率,训练用途法律风险由使用者承担 |
| 博物馆开放数据(故宫博物院数字文物库 / 台北故宫开放资料 / The Met Open Access 等) | 各馆自定 | 逐馆、逐条自查(The Met Open Access 多为 CC0;其余馆条款不一,未逐条核实) | 公有领域古画高清图 → 训练素材、风格参考 | ① 下载即受该馆条款约束(署名/禁止商用/禁止再分发各不相同);② "文物照片"可能另有摄影版权;③ 需建"素材-来源-许可"台账 |
| 自建小样本集(自摄/自制线稿/团队原创) | 20~50 张起 | 自有 | 风格 LoRA 训练(需 GPU,本机不做)、IP-Adapter 参考图 | 本机无 GPU,只做推理侧参考图,不训练 |
1.5 工作流资源平台¶
| 平台 | 性质 | 是否开源仓库 | 用法 | 注意 |
|---|---|---|---|---|
| OpenArt(openart.ai) | 商业社区平台,工作流分享量最大(数千条) | ❌ 非开源仓库(平台服务,账号制) | 找 SDXL/风格化工作流作参考,对照节点结构 | ① 平台条款与模型许可各自独立,不要把平台当代码仓库引用;② 下载的 workflow 常依赖私有节点/收费模型 |
| Civitai | 模型 + 工作流社区 | ❌ 平台(模型由个人上传) | 下 LoRA/Checkpoint、看示例图内嵌元数据反推 prompt | 需账号;部分模型登录可见;每个模型许可单独看 |
ComfyUI-Manager(ltdrdata/ComfyUI-Manager) |
节点/模型管理器 | ✅ 开源(GitHub) | 一键装缺失节点,排障必备 | 会自动装依赖,生产环境建议锁定版本 |
| GitHub 工作流集合(各作者仓库) | 代码仓库 | ✅ 视仓库许可 | 可版本化、可 code review 的工作流 | 质量参差,需自行验证节点来源 |
限制与回避(选型前先看这条): - 回避 FLUX 本地出图:12B 模型在 40 核 Xeon 上是小时级/张,无实操价值(ImageGen 分册已定论)。 - 回避 GuoFeng3 商用:HF 模型卡明确 CC BY-NC-SA 4.0;国内平台标注"可商用"与之冲突,默认按非商用,商用须作者书面许可。 - 回避直接用 WikiArt 训练并商用:许可仅限非商业研究,且不可再分发;产出用于商业项目即违约。 - 回避模仿在世/近现代具体艺术家(如 liujiyou LoRA 这类"某画家风格"):肖像权之外还有风格模仿与不正当竞争风险,教学场景尤其要讲清。 - 回避在 CPU 上叠加 ControlNet×2 + IP-Adapter + SDXL:单图会到 20 分钟以上,交互不可用;CPU 路线只保留"1 个控制分支"。 - 回避把 OpenArt/Civitai 当"开源项目"引用:它们是平台/社区,条款与开源许可无关。
推荐结论(本机纯 CPU):
- 首选 = SD-Turbo(512px,1~4 步)做全部实验与课堂演示 + SD1.5 + 国风 LoRA(guofeng / 墨心)做风格验证。理由:10~60 秒/张可交互;LoRA 体积小、叠加开销低;SD1.5 生态的国风资产最全。
- 增强 = SDXL + 国风插画 / 工笔 LoRA(1024px,5~15 分钟/张):只在"要交作业级成品"时后台跑,一晚批量 10~20 张可控。
- 控制首选 = ControlNet lineart/softedge(单分支) 做白描/线稿控制;IP-Adapter 作"风格参考"轻量替代微调。
- 回避 = GuoFeng3 商用、FLUX 本地跑、WikiArt 商用训练、CPU 上多控制分支叠加、把平台当开源仓库。
2. CPU 实验路径(小分辨率 + SD-Turbo 先行)¶
2.1 环境与落盘¶
# 引擎安装见 ImageGen 分册 §2.1;本册只加"古典风格资产"
# 权重统一落 F 盘(ComfyUI 按子目录识别)
F:\EricLiu\labs\models\imagegen\checkpoints\ # sd-turbo / sd-v1-5 / sdxl base
F:\EricLiu\labs\models\imagegen\loras\ # 国风/工笔/水墨 LoRA
F:\EricLiu\labs\models\imagegen\controlnet\ # control_v11p_sd15_lineart 等
F:\EricLiu\labs\models\imagegen\ipadapter\ # ip-adapter-plus_sd15.safetensors
F:\EricLiu\labs\models\imagegen\clip_vision\ # CLIP-ViT-H-14-laion2B-s32b-b79K.safetensors
F:\EricLiu\outputs\artgen\ # 出图产物(按日期/实验分子目录)
F:\EricLiu\AppDocs\ArtGen\workflows\ # 工作流 JSON(API Format)
命名规范:<风格>_<底模>_<来源ID>.safetensors,例:gongbi_sdxl_civitai2730484.safetensors、guofeng3_sd15_hf.safetensors。改名会让工作流找不到模型,导入后统一按此规则重命名一次并固定。
2.2 三档耗时预算(估算,上线前用真实样本实测)¶
| 档位 | 配置 | 分辨率/步数 | 单张耗时(估算) | 用途 |
|---|---|---|---|---|
| S(冒烟) | SD-Turbo + 国风 LoRA(可选) | 512×512 / 1~4 步,cfg=1.0 | 10~60 秒 | prompt 试错、课堂演示、构图探索 |
| M(验证) | SD1.5 + 国风/水墨 LoRA + 单 ControlNet | 512×768 / 20~25 步 | 2~5 分钟 | 风格对比实验、课件插图 |
| L(成品) | SDXL + 工笔/国风 LoRA(±IP-Adapter) | 1024×1024 / 25~30 步 | 5~15 分钟(叠 ControlNet 再 ×1.5) | 作业级成品、展板 |
CPU 线程:OMP_NUM_THREADS=16~32(留核给系统与其它容器);批量任务串行排队,不要开并发(40 核也扛不住两个 SDXL 同时跑)。
2.3 最小工作流(txt2img + LoRA,API Format 关键节点)¶
CheckpointLoaderSimple(sd-turbo) → LoraLoader(guofeng, strength 0.6)
→ CLIPTextEncode(正) / CLIPTextEncode(负) → EmptyLatentImage(512×512)
→ KSampler(steps=4, cfg=1.0, sampler=euler_ancestral, seed=fixed)
→ VAEDecode → SaveImage
提交与取图(与 ImageGen 分册 §3.2 同一套 API,仅改节点参数):
import json, time, urllib.request
HOST = "http://127.0.0.1:8188"
wf = json.load(open(r"F:\EricLiu\AppDocs\ArtGen\workflows\t2i_turbo_lora.json", encoding="utf-8"))
wf["6"]["inputs"]["text"] = ("ink wash painting, misty shan shui landscape, sparse brushstrokes, "
"rice paper texture, huge negative space, seal stamp, masterpiece")
wf["7"]["inputs"]["text"] = "photo, 3d render, text, watermark, blurry, oversaturated"
wf["10"]["inputs"]["lora_name"] = "guofeng_sd15_civitai66715.safetensors"
wf["10"]["inputs"]["strength_model"] = 0.6
wf["3"]["inputs"]["seed"] = 12345
wf["3"]["inputs"]["steps"] = 4
wf["3"]["inputs"]["cfg"] = 1.0
req = urllib.request.Request(f"{HOST}/prompt",
data=json.dumps({"prompt": wf}).encode(),
headers={"Content-Type": "application/json"})
pid = json.loads(urllib.request.urlopen(req).read())["prompt_id"]
while True: # CPU 出图分钟级,轮询 3~5 秒
h = json.loads(urllib.request.urlopen(f"{HOST}/history/{pid}").read())
if pid in h and h[pid].get("outputs"):
for node in h[pid]["outputs"].values():
for img in node.get("images", []):
url = f"{HOST}/view?filename={img['filename']}&subfolder={img['subfolder']}&type={img['type']}"
urllib.request.urlretrieve(url, rf"F:\EricLiu\outputs\artgen\{img['filename']}")
break
time.sleep(4)
节点 ID(
"3"/"6"/"7"/"10")随工作流而异,必须从界面 "Save (API Format)" 导出的 JSON 里读实际 id,不要照抄。
3. 风格生成实验设计¶
3.1 三类风格的语言锚点(SD1.5/SDXL 的 CLIP 不认中文,必须英文 tag)¶
| 风格 | 核心 prompt(正向) | 负向 | 关键参数 | 失败的典型表现 |
|---|---|---|---|---|
| 水墨/写意 | ink wash painting, shan shui landscape, misty mountains, sparse brushstrokes, wet ink diffusion, rice paper texture, monochrome, large negative space, red seal stamp |
photo, 3d, oil painting, thick paint, saturated colors, text |
墨心 LoRA weight 0.7~0.85,CFG 1~3 更写意 | 出成"黑白照片"或"油画"——缺 rice paper texture/ink wash 双锚点 |
| 工笔 | gongbi painting, meticulous fine line work, mineral pigments (azurite/malachite), silk ground, flat perspective, peony and bird, ultra fine detail, even lighting |
rough brush, sketch, impasto, photo, blurry lines |
+ ControlNet lineart(白描稿)权重 0.6~0.8;SDXL 1024 |
线条糊、失去"界画"平整感——需 lineart 控制而非纯 prompt |
| 年画(木版) | Chinese new year woodblock print, nianhua, bold black outlines, flat mineral colors, symmetrical composition, auspicious motifs (fish, lotus, door god), carved texture, handmade paper |
3d, gradient shading, photorealistic, western cartoon |
高对比、低步数即可(20 步);SD1.5 512×768 | 变成"国潮海报"——缺 woodblock/carved texture;不要指望模型写"福"字,文字后期排版 |
通用负向模板(三类共用,按需删减):
lowres, worst quality, low quality, jpeg artifacts, watermark, signature, text, extra limbs, bad anatomy, deformed hands, plastic skin, oversaturated
3.2 实验矩阵(建议一次跑完,便于对比)¶
| 变量 | 取值 | 观察指标 |
|---|---|---|
| 底模 | SD-Turbo / SD1.5 / SDXL | 风格像不像、耗时、坏图率 |
| LoRA | 无 / 国风插画 / 工笔 / 水墨 | 触发词是否生效(同 seed 对比) |
| LoRA 权重 | 0.4 / 0.6 / 0.8 / 1.0 | 过拟合(构图僵化)出现的临界点 |
| 控制 | 无 / lineart / softedge / canny | 线稿保真度 vs 风格自由度 |
| 负向 | 无 / 标准负向 | 坏手坏脸比例 |
固定 seed + 固定 prompt,每次只改一个变量;每组 ≥4 张,人工 1~5 分打分(像不像该风格 / 构图可用性 / 瑕疵),结果回填 F:\EricLiu\outputs\artgen\eval-<日期>.csv。
3.3 风格资产的可商用性分层(决定产出能去哪)¶
| 层级 | 组成 | 产出可用范围 |
|---|---|---|
| A 干净 | SD1.5/SDXL 官方权重(OpenRAIL)+ OpenRAIL 系 LoRA + 自有/公有领域参考图 | 可商用(仍须遵守 OpenRAIL 使用限制:不得用于违法、虚假信息等) |
| B 受限 | + IP-Adapter(Apache-2.0,但参考图版权自负) | 可商用,前提参考图权利清晰 |
| C 非商用 | + GuoFeng3 / Turbo 系 / WikiArt 训练产物 | 仅内部研究、教学演示、草稿;不得交付客户/售卖 |
| D 高风险 | + 模仿在世/近现代具体画家的 LoRA | 建议整体回避,仅作课堂"风格分析"讨论,不发布 |
4. 与青少年编程 / 教学的结合点(对接 YouthCoding 分册)¶
定位:AI 出图作为"程序输出",让学生用 Scratch/Python 控制它——教学重点在"调用 API、参数、队列、错误处理",不是调 prompt 艺术。
4.1 课堂架构(教师机单点出图,学生只调接口)¶
学生端(浏览器/Scratch)→ 教师机 Nginx(内网 :8080) → ComfyUI(127.0.0.1:8188)
↑
出图队列(串行,Redis/SQLite 即可)+ 结果缓存
硬性约束: - ComfyUI 只绑 127.0.0.1,学生访问走教师机反代;不要暴露 8188。 - 必须串行队列:40 核 CPU 上 SDXL 并发会互相拖死;1 个 worker,按提交顺序出图,前端显示"前面还有 N 位"。 - 课堂用 S 档(SD-Turbo 512px,10~60 秒);20 人班一轮约 5~15 分钟,务必配"课前三张预生成样图"兜底。 - 出图内容受 §6 守则约束(教师端加关键词黑名单 + 人工抽检)。
4.2 Python 路径(最简,适合 5~8 年级以上)¶
# student_client.py —— 学生只需改 theme 与 seed
import json, time, urllib.request, urllib.parse
API = "http://10.0.0.20:8080" # 教师机内网地址
theme = "江南水乡,小桥流水,水墨风格"
def draw(theme: str, seed: int = 42) -> str:
body = json.dumps({"theme": theme, "seed": seed,
"style": "ink", "size": 512}).encode()
req = urllib.request.Request(f"{API}/draw", data=body,
headers={"Content-Type": "application/json"})
task = json.loads(urllib.request.urlopen(req).read())
while True: # 轮询:CPU 慢,别用 1 秒间隔
st = json.loads(urllib.request.urlopen(f"{API}/task/{task['id']}").read())
if st["status"] == "done":
return st["url"]
if st["status"] == "failed":
raise RuntimeError(st["error"])
time.sleep(3)
print("图片地址:", draw(theme))
教学点:HTTP 请求/JSON、轮询与超时、异常处理、队列"排队等待"概念、参数与结果的可复现(seed 固定)。
4.3 Scratch 路径(低年级)¶
- Scratch 官方编辑器不能加载任意 URL 扩展;课堂用 TurboWarp(可加载本地
.js扩展)或教师自建"积木代理页"。 - 扩展最小骨架(在 TurboWarp 中"加载扩展 → 自定义扩展 → 本地文件"):
class ArtGenExtension {
getInfo() {
return {
id: 'artgen',
name: '古典画坊',
blocks: [
{ opcode: 'draw', blockType: 'reporter', text: '画一幅 [theme] 风格[style]',
arguments: { theme: { type: 'string', defaultValue: '江南水乡' },
style: { type: 'string', defaultValue: 'ink' } } },
],
};
}
draw({ theme, style }) {
const req = new XMLHttpRequest();
req.open('POST', 'http://10.0.0.20:8080/draw', false); // 课堂内网,简化为同步
req.setRequestHeader('Content-Type', 'application/json');
req.send(JSON.stringify({ theme, style, size: 512 }));
return JSON.parse(req.responseText).url; // 返回图片地址给"显示图片"积木
}
}
Scratch.extensions.register(new ArtGenExtension());
注意:跨域(CORS)要在教师机 Nginx 上加 Access-Control-Allow-Origin;http 页面调 http 接口(不要混 https,避免混合内容拦截)。
4.4 课件设计建议(3 课时)¶
| 课时 | 内容 | 产出 |
|---|---|---|
| 1 | 认识"风格":同一主题(如"山水")跑水墨/工笔/年画三组,比较差异 | 风格对比表(学生填) |
| 2 | 程序控制:改 theme/seed/style,观察可复现性;讲"为什么同一个 seed 出同一张图" |
一个能用积木出图的小作品 |
| 3 | 责任与边界:AI 画的画算谁的?能不能说是"古人画的"?为什么不能模仿在世画家? | 300 字说明 + 作品标注"AI 生成" |
5. 排障¶
| 症状 | 原因 | 处置 |
|---|---|---|
| LoRA 完全没效果 | 触发词没写 / 权重为 0 / LoRA 与底模不同代 | 补触发词;权重 0.6 起试;SD1.5 LoRA 配 SD1.5 底模,SDXL 配 SDXL |
报 size mismatch 或出图全糊 |
SD1.5 LoRA 装到 SDXL(或反之) | 看模型页 Base Model 字段;按 §2.1 命名规范区分 _sd15 / _sdxl |
| 中文 prompt 没反应 | SD1.5/SDXL 的 CLIP 文本编码器只认英文 | 用英文 tag(§3.1);中文只放在前端做"翻译映射表" |
| 出图全是噪点/纯黑 | Turbo 模型 cfg≠1 或步数 >4;或分辨率非 64 倍数 | Turbo:cfg=1.0、steps≤4;SDXL 用 1024×1024,SD1.5 用 512×512/512×768 |
| 工笔线条糊成一团 | 只靠 prompt,没用线稿控制 | 加 ControlNet lineart(先用 controlnet_aux 预处理器生成条件图),权重 0.6~0.8 |
| ControlNet 报找不到预处理器 | 没装 comfyui_controlnet_aux |
ComfyUI-Manager 安装该节点包;确认节点名与版本匹配 |
| IP-Adapter 报模型缺失 | 缺 CLIP Vision 或文件名不符 | clip_vision/ 下必须是 CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors(不能改名成别的) |
| 单图跑到 20 分钟以上 | SDXL + ControlNet + IP-Adapter 全叠 | CPU 路线只留一个控制分支;降到 512 + SD1.5;改后台批量 |
| Civitai/HF 下载失败或 403 | 需登录/需接受许可/区域限制 | 登录后下载;HF 先在页面接受协议;用镜像(HF-Mirror/ModelScope);不要用脚本绕过许可页 |
| 生成图里出现"乱码汉字" | 模型不会写字 | 画面留白,文字用 Pillow/前端排版叠加(§3.1 年画同理) |
| 学生端请求超时 | 队列积压 + 前端超时太短 | 前端超时 ≥180 秒;显示排队位次;课堂用预生成图兜底 |
| 局域网访问被拦 | ComfyUI 未监听/端口绑定/防火墙 | 确认 --listen(仅教师机需要);Windows 防火墙放行内网网段;不要 0.0.0.0 暴露公网 |
6. AI 操作守则¶
- 艺术版权边界(最高优先):可以用公有领域古画(宋元明清、敦煌)与自有素材做参考与训练;不得直接复制、拼贴在版权期内的作品;不得针对在世或近现代具体画家做"风格复刻"并发布(如本册提及的某画家风格 LoRA,仅限内部风格分析);不得把 AI 产出冒充真迹、文物、他人手笔。
- 训练数据来源风险要如实说明:社区 LoRA 多未公开数据集,可能含版权图/在世艺术家作品;引入前看模型页"训练数据/声明",没有声明就按"来源不明"处理,只做内部实验,不进入商用交付。WikiArt 仅限非商业研究且不可再分发。
- 生成内容必须标注:对外发布/交付的图,元数据与画面角落标注"AI 生成(ComfyUI + <模型/LoRA 名>)";教学作品要求学生自己写"AI 辅助"说明;不得删除或伪造 C2PA/水印类标识。
- 许可核查到"能指名"的程度:商用前逐个模型确认——SD1.5/SDXL(OpenRAIL,可商用附限制)/ GuoFeng3(CC BY-NC-SA 4.0,不可商用) / Turbo 系(非商业) / FLUX.1-dev(非商业) / ControlNet 权重(许可未核实);不确定就标"许可待确认",不得默认可用。
- 内容安全:不生成涉政敏感、色情、暴力、真人肖像伪造(deepfake)内容;涉及真实人物须有书面授权;青少年教学场景额外加黑名单与人工抽检。
- 资源与耗时诚实上报:CPU 出图是分钟级,开始前告知预估耗时;批量任务后台跑 + 轮询;不把"估算耗时"写成"实测"(§2.2 数字须用真实样本回填)。
- 落盘与体积:模型只落
F:\EricLiu\labs\models\imagegen\,产物只落F:\EricLiu\outputs\artgen\;单个模型 >10GB 或批量下载前先报体积与 F 盘余量(现剩 862G)并确认。 - 服务只在内网:ComfyUI 绑
127.0.0.1,教学经教师机反代;不暴露公网、不裸奔 8188;跨域只放行内网来源。 - 不代调用云服务:需要 FLUX 级质量时,只给云 GPU API 的成本/延迟对比与代码示例,实际调用(消耗用户账号配额)必须用户明确确认。
- 维护状态回查:Civitai/LoRA 作者可能删号、模型下架;关键资产下载后本地留档 + 记录来源 URL/许可/日期(本册基线 2026-11-11),换机/重建时按台账恢复,不依赖线上链接长期有效。
7. 与其它分册的接口¶
| 需求 | 去哪本 |
|---|---|
| ComfyUI 安装、模型清单、云 GPU 决策、API 细节 | AppDocs\ImageGen\README.md |
| 诗词文本、古籍阅读(配图题材来源) | AppDocs\ClassicalCN\README.md |
| 青少年编程课程体系、Scratch/Python 教学法 | AppDocs\YouthCoding\README.md(待建:本册 §4 为其提供出图服务接口) |
| OCR 识别古画题跋/款识 | AppDocs\OCR\README.md |