8G 显存本地部署 AI 漫剧生成:基于 ComfyUI 的自动化工作流搭建指南
前言在上一篇文章中我们分析了 QwenComfyUI 构建 AI 漫剧全链路流水线的整体架构完成了方案选型与整体模块拆解。本篇落地实操聚焦从零源码部署避开各类整合包带来的插件版本冲突、冗余依赖、未知脚本风险完整实现「剧本解析→分镜渲染→角色特征锁定→任务队列调度」的自动化链路。面向 8GB 消费级 N 卡给出启动脚本、Python 调度源码、节点调参、任务异常处理同时分析批量生产过程中出现的角色漂移、任务卡死、显存碎片化、API 调用超时等工程问题。说明本文全部基于开源项目源码部署所有模型需要自行从官方开源仓库获取使用前阅读开源协议商用场景务必完成授权核验。核心关键词ComfyUIAI 漫剧自动化Ollama‑QwenIP‑Adapter8G 显存调优任务队列ComfyUI‑API批量分镜渲染详细教程资源请看这一篇文章Windows 本地 AI 漫剧全自动生产线部署完整教程零基础、全指令、带源码、模型配置、排错方案-阿里云开发者社区8G 显存可用ComfyUIQwen AI 漫剧全流程自动化搭建教程含工作流 源码_comfyui短剧漫剧变现-CSDN博客目录前置硬件与环境约束源码环境分步部署OllamaComfyUI工程目录与缓存策略规范化漫剧自动化调度 Python 核心源码IP‑AdapterControlNet 联合约束工作流配置8G 显存完整启动脚本与显存调参任务异常捕获、重试、日志记录实现实测高频问题与定位手段扩展方向与性能瓶颈分析 10. 总结1 前置硬件与环境约束表格硬件项最低配置 (FP8/FP4 量化)推荐配置备注GPUNVIDIA 8GB 显存12GB 及以上仅支持 CUDA8G 必须 FP8 量化底模禁止 FP16 直接加载内存16GB32GBQwen 大模型、图片解码、队列缓存会占用系统内存磁盘SSD ≥40GB 空闲SSD ≥80GB存放 SDXL/FLUX、IP‑Adapter、LoRA、Ollama 模型建议 SSD机械硬盘加载权重极易超时系统Windows10/11Windows11项目路径禁止中文、空格、全角符号重要约束8G 显存硬件禁止并行多任务全部任务必须串行排队否则瞬间显存峰值直接 OOM。2 源码环境分步部署OllamaComfyUI2.1 Ollama 本地大模型部署用于生成分镜结构化 JSON 剧本不调用任何在线大模型 API。# 拉取Qwen‑3.5‑7B Q4_K_M量化版本兼顾输出质量与内存占用 ollama pull qwen3.5:7b‑q4_K_M # 交互式测试验证模型可以正常输出json格式 ollama run qwen3.5:7b‑q4_K_M测试 prompt 示例输出纯JSON不要任何解释。生成3个短视频漫剧镜头每个包含scene_id、shot_type、image_prompt、character_desc、dialogue。能够返回干净 JSON 代表环境正常如果输出混入 markdown、注释需要调整 system prompt 加强约束。2.2 ComfyUI 源码部署不使用第三方整合包# 克隆官方仓库 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 安装依赖使用国内镜像源加速 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple2.3 安装必备自定义节点进入custom_nodes目录依次 git 克隆核心插件源码cd custom_nodes git clone https://github.com/ltdrdata/ComfyUI‑Manager.git git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git git clone https://github.com/Impact‑Pack/ComfyUI‑Impact‑Pack.git git clone https://github.com/Kosinkadink/ComfyUI‑VideoHelperSuite.git不要一次性安装大量无关插件多余插件会增加显存占用还会引入节点冲突。3 工程目录与缓存策略规范化不合理目录、缓存堆积是新手工作流报错、C 盘占满的高频原因。ComfyUI/ ├─ custom_nodes/ # 自定义节点源码 ├─ models/ │ ├─ checkpoints/ # FLUX‑FP8 / SDXL底模 │ ├─ ipadapter/ # IP‑Adapter权重文件 │ ├─ loras/ # 漫剧画风LoRA │ └─ controlnet/ # OpenPose、Depth控制网权重 ├─ workflows/ # 漫剧工作流json文件 ├─ outputs_comic/ # 漫剧分镜输出目录修改到非C盘 ├─ cache/ # 模型缓存迁移至D盘防止C盘爆满 └─ logs/ # 自动化脚本运行日志设置环境变量把缓存重定向到项目目录避免 C 盘空间耗尽。后续写进启动 bat 脚本。set COMFYUI_CACHE_DIR%cd%\cache set COMFYUI_OUTPUT_DIR%cd%\outputs_comic4 漫剧自动化调度 Python 核心源码整套自动化分为三层Ollama 剧本生成层、JSON 解析层、ComfyUI‑API 任务推送层。脚本完成调用 Ollama 生成分镜 JSON → 解析镜头数组 → 循环推送 ComfyUI 队列串行执行每一个镜头保存图片与日志。comic_auto_pipeline.pyimport requests import json import time import os import logging # --------------------------配置区--------------------------- OLLAMA_URL http://127.0.0.1:11434 COMFYUI_URL http://127.0.0.1:8188 WORKFLOW_PATH ./workflows/comic_ipadapter_workflow.json OUTPUT_DIR ./outputs_comic MODEL_NAME qwen3.5:7b-q4_K_M # ------------------------------------------------------------ # 日志配置 logging.basicConfig( filename./logs/comic_run.log, levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s, encodingutf‑8 ) def generate_scene_json(story_prompt:str): 调用本地Ollama获取结构化分镜JSON sys_prompt 你是漫剧编剧输出严格的纯JSON禁止markdown、注释、额外文字。 输出格式{scenes:[{scene_id:int,shot_type:,image_prompt:,character_desc:,dialogue:}]} payload { model: MODEL_NAME, prompt: story_prompt, system: sys_prompt, stream: False } resp requests.post(f{OLLAMA_URL}/api/generate, jsonpayload, timeout120) raw_text resp.json()[response] data json.loads(raw_text) return data[scenes] def get_workflow_template(): 读取本地ComfyUI工作流json模板 with open(WORKFLOW_PATH,r,encodingutf‑8) as f: return json.load(f) def queue_comfy_task(workflow_json): 推送任务到ComfyUI队列返回prompt_id r requests.post(f{COMFYUI_URL}/prompt, json{prompt:workflow_json}, timeout60) return r.json()[prompt_id] def wait_task_done(prompt_id:str, timeout600): 轮询ComfyUI状态等待当前任务执行完成串行阻塞 start time.time() while time.time() - start timeout: resp requests.get(f{COMFYUI_URL}/history/{prompt_id}) hist resp.json() if prompt_id in hist: return True time.sleep(3) raise TimeoutError(f任务 {prompt_id} 执行超时) if __name__ __main__: os.makedirs(OUTPUT_DIR, exist_okTrue) os.makedirs(./logs,exist_okTrue) user_story 生成6个9:16竖屏国漫漫剧镜头剧情带有冲突人物保持统一外貌 scene_list generate_scene_json(user_story) workflow_tpl get_workflow_template() for scene in scene_list: sid scene[scene_id] logging.info(f开始处理镜头 {sid}) # 修改工作流节点提示词注入分镜参数这里节点ID以你导出的工作流为准 # workflow_tpl[6][inputs][text] scene[image_prompt] try: pid queue_comfy_task(workflow_tpl) wait_task_done(pid) logging.info(f镜头 {sid} 渲染完成) except Exception as e: logging.error(f镜头 {sid} 异常{str(e)}) continue logging.info(全部镜头任务执行结束)注意上面代码中workflow_tpl[6][inputs][text]节点 ID需要导出你的实际工作流 JSON找到正向提示词节点编号再替换。先在 WebUI 手动跑通单镜头导出 JSON 模板再接入脚本。不要直接复制就运行节点 ID 每个工作流都不一样。运行脚本python comic_auto_pipeline.py5 IP‑AdapterControlNet 联合约束工作流配置连载漫剧最大痛点是人物漂移采用IP‑Adapter(人物身份锁定)ControlNet‑OpenPose(姿态约束)组合。关键参数实测IP‑Adapter 权重0.60‑0.72低于 0.5 人物漂移大于 0.78 会完全复刻参考图破坏漫剧画风。ControlNet OpenPose 权重0.45‑0.6只约束骨骼姿态不强制画面细节。8G 显存建议只启用一个 ControlNet叠加多个会显著抬升显存峰值。LoRA 漫剧画风权重0.4‑0.55。采样器 Euler步数 22‑26 步分辨率固定832 × 12169:16 竖屏。工程经验不要在自动化脚本中动态修改参考图片文件路径尽量在工作流模板固定参考图脚本只替换提示词减少节点异常概率。6 8G 显存完整启动脚本与显存调参新建start_comic.bat专门针对漫剧批量任务优化设置显存分片、缓存路径、开启 API 监听。echo off chcp 65001 echo ComfyUI AI漫剧批量渲染服务启动 ::显存碎片化优化8G核心配置 set PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:512,expandable_segments:True ::重定向缓存、输出目录避免C盘爆满 set COMFYUI_CACHE_DIR%cd%\cache set COMFYUI_OUTPUT_DIR%cd%\outputs_comic python main.py --listen --port 8188 --fp8‑storage --gpu‑only pause参数解释--fp8‑storage模型权重 FP8 存储显存降低约 40%8G 必须开启12G 以上可以关闭。--gpu‑only尽量使用 GPU减少 CPU 内存卸载带来的速度抖动。--listen允许本地 Python 脚本通过 API 调用。⚠️8G 设备禁止使用--highvram禁止开启多线程并行生成脚本内部必须串行循环。7 任务异常捕获、重试、日志记录实现自动化批量渲染一定会遇到 OOM、权重加载超时、ComfyUI 服务卡死。增加显存清理逻辑当捕获异常时执行显存回收。 增加函数到comic_auto_pipeline.py脚本中import torch import gc def free_gpu_cache(): 异常发生时手动清理显存缓存 torch.cuda.empty_cache() gc.collect() logging.info(执行显存缓存手动回收)在镜头循环的 except 块调用free_gpu_cache()。except Exception as e: logging.error(f镜头 {sid} 异常{str(e)}) free_gpu_cache() time.sleep(5) continue8 实测高频问题与定位手段CUDA out of memory确认启动参数--fp8‑storage已经启用分辨率不要超过 832×1216确认脚本是串行任务没有并行提交多个 prompt关闭浏览器预览关闭其它占用显卡程序。IP‑Adapter 人物特征失效每镜头人物都变脸检查 IP‑Adapter 节点连线参考图人脸需要清晰权重不要低于 0.6工作流 JSON 导出完整不要丢失节点输入连接。Ollama 返回非标准 JSON脚本 json.loads 直接报错强化 system prompt增加要求禁止 markdown 标记禁止解释文字只返回 json代码增加异常捕获失败镜头直接跳过写入日志。ComfyUI API 请求超时任务队列卡死#查看当前队列状态浏览器访问 # http://127.0.0.1:8188/queue如果队列堆积需要重启 ComfyUI 服务。磁盘占用疯狂上涨定期清理cache文件夹脚本输出图片统一定向到outputs_comic不要使用默认 output 目录。9 扩展方向与性能瓶颈分析静态分镜转动态片段当前流水线输出静态漫画分镜可以接入 AnimateDiff/Wan2.2 视频工作流在现有 ComfyUI 节点基础上扩展注意 8G 显存做视频片段时长必须控制在 2‑4 秒以内。本地 TTS 配音自动化接入 Qwen‑TTS 本地模型读取分镜 dialogue 字段批量生成配音音频后续 FFmpeg 合并图片序列、音频、字幕。FastAPI 封装上层服务基于 FastAPI 封装一层简单 http 接口接收故事文本后台执行整套流水线返回生成资源路径。性能瓶颈8G 硬件下单镜头渲染耗时约 2‑4 分钟批量生成速度上限受显卡制约不适合超大规模快速量产。10 总结本文从源码完成 AI 漫剧自动化工作流的部署没有依赖第三方整合包规避插件冲突风险。通过 Ollama 生成本地结构化分镜剧本结合 ComfyUI‑API 实现批量渲染同时针对 8G 消费级显卡做显存分片、FP8 量化、串行任务队列、异常重试处理。IP‑AdapterControlNet 联合约束改善连载漫剧角色漂移问题。本地自动化方案可以摆脱云端平台额度限制但硬件有明确天花板8G 显存设备只能做小规模测试、原型验证大规模量产建议 12GB 以上显卡。整套脚本、启动 bat 可以作为原型二次开发在此基础上扩展动态视频、本地语音合成、自动字幕等模块。