把一部长篇漫画从文字脚本变成可交付的成稿,过去需要数周甚至数月。现在借助AI图像处理与生成模型,可以将分镜脚本、角色设定、场景设定整合成可自动化执行的流水线,压缩到几天完成。本文不是简单地列举几个AI绘图工具,而是从分镜脚本结构化、提示词设计、角色一致性控制、批量生成脚本到后期合成,给出一条可落地的全流程加速方案。

漫画创作的核心难点在于连续画面之间的统一性:同一角色在不同景别、不同动作、不同光照下必须保持一致,同时还要保留每格独立的叙事功能。AI生成模型虽然能快速产出单张高质量图像,但如果缺乏约束与流程设计,很容易出现角色脸部漂移、服装变化、构图偏差等问题。因此,全流程方案需要把创作拆解为可描述、可复用、可批处理的模块。
一、结构化分镜脚本:让AI理解每一格要画什么
分镜脚本是漫画的中枢文档。传统分镜可能写在纸面或文档中,自然语言对AI不够友好,生成结果不稳定。建议将每一格整理成机器可读的JSON结构,字段包括镜头编号、场景、角色、动作、机位、情绪、对白、风格标签、负面提示词和随机种子等。这样既方便人工审阅,也能直接交给脚本批量处理。
下面是一个最小可用的分镜JSON示例。实际项目中可以使用大语言模型辅助把文字故事自动整理成此结构,但最后要人工修正动作和机位描述,避免生成画面语义矛盾。
{
"project": "example_comic",
"style": "black and white manga, clean line art, high contrast",
"panels": [
{
"shot_id": "p01",
"scene": "rooftop at night",
"characters": ["protagonist_in_hoodie", "short_hair_companion"],
"action": "protagonist looks at the city skyline, companion points at a glowing tower",
"camera": "wide shot, low angle",
"dialogue": "We found it.",
"mood": "tense but hopeful"
}
]
}
结构设计上有几个原则:角色列表要引用统一角色ID,场景沿用同一命名,风格标签只放一次避免每格重复。对白字段虽然不直接参与图像生成,但用于后期排版和字幕提取。随机种子字段建议留空,由生成脚本自动填充并回写,这样既能保持灵活性,又能复现满意的画面。
二、提示词工程与风格锚定:从文字到画面的关键转换
结构化分镜要转换成图像生成模型可理解的提示词。提示词一般包含主体描述、场景描述、构图描述、风格标签、质量词、反面提示词。英文模型对英文提示词响应稳定,中文内容需要翻译整理。可以使用模板将分镜字段拼接成完整提示词,避免每次手动输入。
下面的Python函数演示如何从分镜字典中提取信息并生成提示词。角色外观描述从角色表中读取,避免每个镜头重复书写同一段角色特征。
def build_prompt(panel, character_sheet):
style = panel.get("style", "black and white manga, clean line art, high contrast")
chars = []
for cid in panel.get("characters", []):
desc = character_sheet.get(cid, cid)
chars.append(desc)
char_text = ", ".join(chars)
action = panel.get("action", "")
camera = panel.get("camera", "")
mood = panel.get("mood", "")
parts = [
style,
char_text,
action,
camera,
mood
]
return ", ".join([p for p in parts if p])
正面提示词中质量词的作用有限,过多样式词会互相污染。风格锚定最好通过固定风格前缀与负面提示词实现,例如黑白漫画风格、干净线稿、高对比度。反面提示词需要包含常见问题:模糊、低质量、多余手指、文字乱码、水印等。每次只改变必要的变量,保持其他提示词不变,有助于定位画面异常来源。
三、角色一致性与构图控制:ControlNet与LoRA的配合
角色一致性问题不能单靠提示词解决。即使提示词写得再细,不同seed之间生成的角色仍可能变化。实用方案是使用角色LoRA模型,把角色五官、发型、服装特征固化在模型权重中。如果不想训练LoRA,可以使用ControlNet的Reference模式,以一张角色设定图为参考约束其他生成。
构图方面,分镜脚本中的机位和动作描述需要配合ControlNet的线稿或姿态图。创作者可以先用草图或3D人偶摆出大致构图,再由AI细化。ControlNet的canny、lineart和openpose模式在不同阶段各有用途:canny适合已有精细线稿,lineart适合粗草稿,openpose适合控制人物肢体动态。建议在WebUI或ComfyUI中把ControlNet权重设置在0.6到0.9之间,过高会限制AI发挥,过低则失去构图约束。
同时固定seed与提示词前缀也能提高稳定性,但只能复现相同画面,不适合连续分镜。更可靠的做法是角色LoRA加ControlNet草稿图,配合每格独立的seed,让AI在统一风格下生成不同动作和机位。实际项目中,可以先选一张满意的图,把它的seed作为基准,后续分镜在此基础上做小范围偏移,减少风格跳跃。
四、批量生成脚本:把分镜列表变成成稿图集
单张生成无法满足连载效率,必须脚本化。Stable Diffusion WebUI提供HTTP API,可以用Python读取分镜JSON,循环提交文生图请求并保存图片。脚本需要处理请求失败重试、超时、seed回写等。下面代码演示从panels读取提示词并调用API。
import base64
import json
import time
import requests
import os
with open("storyboard.json", encoding="utf-8") as f:
data = json.load(f)
base_url = "http://127.0.0.1:7860"
output_dir = "output"
os.makedirs(output_dir, exist_ok=True)
for panel in data["panels"]:
prompt = build_prompt(panel, data.get("character_sheet", {}))
payload = {
"prompt": prompt,
"negative_prompt": panel.get("negative_prompt", "blurry, low quality, extra fingers, watermark"),
"steps": 28,
"cfg_scale": 7,
"width": 768,
"height": 1152,
"sampler_name": "DPM++ 2M Karras",
"batch_size": 2
}
response = requests.post(f"{base_url}/sdapi/v1/txt2img", json=payload, timeout=300)
if response.status_code == 200:
images = response.json().get("images", [])
for idx, img_b64 in enumerate(images):
shot_id = panel.get("shot_id", "unknown")
path = os.path.join(output_dir, f"{shot_id}_{idx}.png")
with open(path, "wb") as f:
f.write(base64.b64decode(img_b64))
print("generated", shot_id)
else:
print("failed", response.status_code, response.text)
time.sleep(0.5)
实际使用时可扩展并发、断点续传和失败重试。如果使用ComfyUI,可直接调用其API或通过ComfyUI脚本批量加载工作流。批量生成的图片命名要包含shot_id和seed,否则后期难以追溯。生成完成后,脚本可以把seed回写到分镜JSON,便于复现与迭代。
五、后期合成与质量审查:从AI初稿到可交付成品
AI生成的初稿不能直接作为成品。需要清理畸形手指、眼神方向、透视错误,处理台词与拟声词排版,统一色调。建议在Photoshop中建立动作批处理,例如自动色阶、锐化、统一分辨率。对白和字幕不要用AI直接生成在画面上,最好后期使用矢量文本排版,避免文字乱码。
质量审查要有清单:角色五官是否一致、服装细节是否延续、场景光源方向是否统一、肢体比例是否正常、景别是否与分镜脚本匹配。可以按镜头编号逐张检查,把问题标注在分镜表中,针对性重新生成局部画面。局部重绘比整张重新生成更高效,也更容易保留构图。
AI全流程加速的目标不是完全替代人工,而是把可重复的生成、批量控制、初稿输出交给机器,把叙事节奏、角色表演、细节修正留给创作者。掌握结构化分镜、提示词工程、ControlNet与LoRA配合、批量脚本和后期审查这套组合,短篇漫画的初稿周期可以从数周压缩到两三天,同时为个人和小团队提供接近工作室的产出效率。