第 9/60 天
引言
对于许多AI漫画创作者来说,最耗时的环节往往不是绘画本身,而是脚本创作。一个完整的故事需要合理的情节结构、生动的对白、精准的分镜描述——这些都需要编剧功力。而AI大语言模型(LLM)的出现,让”从零到脚本”的效率提升了数倍。
本文将从基础概念到实战操作,全面解析如何利用AI(特别是 ChatGPT、Claude、DeepSeek 等大语言模型)自动生成漫画脚本,涵盖结构设计、角色对话、分镜拆分、批量生成等核心技能。
核心概念
漫画脚本的基本结构
一个完整的漫画脚本通常包含以下层级:
| 层级 | 说明 | 示例 |
|---|---|---|
| 故事大纲 | 完整故事的概要,300-500字 | 主角发现神秘符文,踏上冒险旅程 |
| 章节划分 | 按情节节点分段,每章5-10页 | 第1章:召唤,第2章:试炼 |
| 页面分镜 | 每页的格数、构图、视角 | 第1页:全景→中景→特写,共4格 |
| 格内描述 | 每格的角色动作、场景、表情 | 主角回头,面露惊讶,背景是燃烧的城堡 |
| 对白/旁白 | 角色说的话、叙述性文字 | 主角:”这……不可能!” |
AI编剧的核心能力
现代AI大语言模型在脚本创作方面具备以下优势:
- 情节生成 — 基于给定的设定自动构建完整的故事线
- 角色对话 — 生成符合角色性格的自然对白
- 分镜描述 — 将文字故事转化为可视化的分镜指令
- 风格适配 — 支持日漫、美漫、条漫、国漫等不同风格
- 批量产出 — 一次生成多页/多章节的完整脚本
提示词工程(Prompt Engineering)的关键
AI编剧的质量90%取决于提示词的质量。一个好的编剧提示词需要包含:
- 角色设定:姓名、年龄、性格、外表、口头禅
- 世界观:时代背景、魔法/科技规则、地理环境
- 情节要求:起承转合、高潮点、结局方向
- 格式约束:分镜格式、每页格数、对白标记方式
实战步骤
步骤 1:构建角色设定卡
首先,用AI生成标准化的角色设定卡。这是所有脚本生成的基础。
{
"角色设定卡": [
{
"name": "林逸",
"age": 17,
"role": "主角",
"personality": "勇敢但冲动,重情义,有点中二",
"appearance": "黑色短发,琥珀色眼睛,校服外套改装成战斗服",
"speech_style": "语速快,喜欢用感叹词,紧张时会结巴",
"special_ability": "符文召唤——能召唤古代符文的力量"
},
{
"name": "苏小雨",
"age": 16,
"role": "女主角",
"personality": "冷静理智,行动派,嘴硬心软",
"appearance": "及腰长发,扎单马尾,常穿白色连衣裙",
"speech_style": "简洁直接,偶尔毒舌,危急时刻话最多",
"special_ability": "时间感知——能短暂预判3秒内的未来"
}
]
}
步骤 2:用提示词生成故事大纲
使用以下提示词模板来生成完整的故事大纲:
你是一位专业的漫画编剧。请根据以下设定,生成一个完整的短篇漫画故事大纲(4页篇幅)。
【世界观】
现代都市背景,但存在隐藏的"符文之力"——古代符文散落在城市各处,
只有少数被选中的"符文使"能感知并使用它们。符文使之间遵循不干涉普通人生活的规则。
【角色设定】
林逸:17岁,主角,符文使新人,性格冲动热血,能力是符文召唤
苏小雨:16岁,女主角,资深符文使,冷静理智,能力是时间感知
神秘老者:引导者角色,知道符文世界的真相
【故事要求】
- 起承转合完整
- 第1页:冲突引入
- 第2页:矛盾升级
- 第3页:高潮转折
- 第4页:结局与悬念
- 包含至少3句关键对白
- 每页4-5格的分镜描述
【输出格式】
请用Markdown格式输出,每页标注页号,每格标注格号,
每格包含:画面描述、对白/旁白、镜头语言建议。
将上述提示词输入到AI(ChatGPT/Claude/DeepSeek 等),即可获得完整的分镜脚本。
步骤 3:用Python批量生成系列脚本
对于需要多章节的长篇漫画,可以用Python调用AI API来自动化批量生成:
#!/usr/bin/env python3
"""
AI漫画脚本批量生成器
使用 OpenAI API 批量生成漫画脚本
"""
import openai
import json
import time
from pathlib import Path
# 配置
openai.api_key = "your-api-key-here"
API_MODEL = "gpt-4" # 或 "deepseek-chat", "claude-3" 等
# 系统提示词
SYSTEM_PROMPT = """你是一位专业的漫画编剧。你擅长创作分镜脚本,
输出格式严格遵循JSON结构。每个页面包含4-5格,每格包含:
- panel: 格号
- composition: 画面构图描述(镜头、角度、景别)
- action: 角色动作描述
- dialogue: 对白/旁白(若无可为空字符串)
- camera: 镜头语言建议"""
def generate_chapter(chapter_num, title, character_sheet, plot_summary):
"""生成单章脚本"""
user_prompt = f"""
第{chapter_num}章:{title}
【剧情概要】
{plot_summary}
【角色设定】
{json.dumps(character_sheet, ensure_ascii=False, indent=2)}
【要求】
- 本章共5页,每页4格
- 保持角色性格一致
- 对白要自然,符合角色说话风格
- 画面描述要具体,便于AI绘画生成
"""
try:
response = openai.ChatCompletion.create(
model=API_MODEL,
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": user_prompt}
],
temperature=0.8,
max_tokens=4000
)
return response.choices[0].message.content
except Exception as e:
print(f"生成第{chapter_num}章失败: {e}")
return None
# 批量生成
def batch_generate(total_chapters, output_dir="scripts"):
"""批量生成多章脚本"""
Path(output_dir).mkdir(exist_ok=True)
character_sheet = {
"林逸": {"age": 17, "trait": "热血冲动", "speech": "语速快"},
"苏小雨": {"age": 16, "trait": "冷静理智", "speech": "简洁直接"}
}
chapters = [
{"title": "符文的觉醒", "summary": "林逸偶然发现符文之力,遭遇第一个敌人"},
{"title": "初战告捷", "summary": "林逸在苏小雨指导下学习控制符文"},
{"title": "暗影来袭", "summary": "更强的敌人出现,两人陷入苦战"},
]
for i, ch in enumerate(chapters[:total_chapters], 1):
print(f"正在生成第{i}章: {ch['title']}...")
script = generate_chapter(i, ch["title"], character_sheet, ch["summary"])
if script:
output_path = Path(output_dir) / f"chapter_{i:02d}.json"
with open(output_path, "w", encoding="utf-8") as f:
f.write(script)
print(f" ✓ 已保存到 {output_path}")
time.sleep(2) # API限流保护
print("批量生成完成!")
if __name__ == "__main__":
batch_generate(total_chapters=3)
步骤 4:将脚本转换为AI绘画提示词
生成脚本后,需要将每格的描述转换为AI绘画工具(如Stable Diffusion、Midjourney)能理解的提示词:
#!/usr/bin/env python3
"""
脚本转AI绘画提示词转换器
"""
def script_to_prompt(panel_description, art_style="anime"):
"""
将漫画脚本中的画面描述转换为AI绘画提示词
Args:
panel_description: 脚本中的画面描述文本
art_style: 艺术风格 (anime, manga, realistic, etc.)
Returns:
包含正/负面提示词的字典
"""
style_prompts = {
"anime": {
"positive": "anime style, cel shading, vibrant colors, detailed lineart",
"negative": "photorealistic, 3D render, oil painting, blurry"
},
"manga": {
"positive": "manga style, black and white, screentone, high contrast",
"negative": "color, painting, 3D, photorealistic"
},
"webtoon": {
"positive": "webtoon style, soft lighting, pastel colors, clean lines",
"negative": "grainy, noisy, dark, heavy shadows"
}
}
style = style_prompts.get(art_style, style_prompts["anime"])
prompts = {
"positive": f"{panel_description}, {style['positive']}",
"negative": style['negative']
}
return prompts
# 使用示例
panel = "林逸在夕阳下的天台,右手举起,掌心浮现金色符文光芒,表情坚定,身后是城市剪影"
result = script_to_prompt(panel, art_style="anime")
print("=== 正面提示词 ===")
print(result["positive"])
print()
print("=== 负面提示词 ===")
print(result["negative"])
步骤 5:使用配置文件管理系列脚本
对于长篇连载,建议使用YAML配置文件来管理整个系列的脚本生成参数:
# series_config.yaml — AI漫画系列配置文件
series:
name: "符文使者"
genre: "都市奇幻"
total_chapters: 12
pages_per_chapter: 5
panels_per_page: 4
world_setting:
time: "现代"
location: "虚构都市·星城"
rules: "符文之力对普通人不可见"
characters:
- name: "林逸"
role: "主角"
arc: "从菜鸟到独当一面的符文使"
- name: "苏小雨"
role: "女主角"
arc: "从封闭自我到信任伙伴"
art_style:
base: "anime"
color_palette: "暖色调为主,战斗场景用冷色对比"
reference: "类似《咒术回战》的线条风格"
output:
format: "json"
script_dir: "./scripts"
prompt_dir: "./prompts"
image_dir: "./images"
配合Python读取此配置:
import yaml
with open("series_config.yaml", "r", encoding="utf-8") as f:
config = yaml.safe_load(f)
print(f"系列: {config['series']['name']}")
print(f"篇章数: {config['series']['total_chapters']}")
print(f"角色列表:")
for char in config['series']['characters']:
print(f" - {char['name']} ({char['role']})")
步骤 6:用Shell脚本一键生成完整脚本
将上述步骤串联为一个自动化管线:
#!/bin/bash
# generate_script_pipeline.sh
# AI漫画脚本生成管线
SERIES_NAME="符文使者"
CHAPTER=${1:-1} # 默认第1章
echo "=== AI漫画脚本生成管线 ==="
echo "系列: $SERIES_NAME"
echo "章节: 第${CHAPTER}章"
# 1. 检查Python依赖
echo "[1/4] 检查依赖..."
pip install openai pyyaml -q 2>/dev/null
# 2. 读取配置
echo "[2/4] 读取系列配置..."
python3 -c "
import yaml
with open('series_config.yaml') as f:
cfg = yaml.safe_load(f)
print(f' 系列名称: {cfg["series"]["name"]}')
print(f' 总章节: {cfg["series"]["total_chapters"]}')
"
# 3. 生成脚本
echo "[3/4] 调用AI生成脚本..."
python3 batch_script_generator.py --chapter $CHAPTER
# 4. 生成AI绘画提示词
echo "[4/4] 转换为绘画提示词..."
python3 script_to_prompt_converter.py --chapter $CHAPTER
echo "=== 完成!==="
echo "输出目录: ./scripts/chapter_$(printf '%02d' $CHAPTER)/"
echo "提示词目录: ./prompts/chapter_$(printf '%02d' $CHAPTER)/"
常见问题
Q1:AI生成的脚本缺乏创意,总是套路化怎么办?
A: 这是最常见的问题。解决方法:在提示词中加入”反套路”约束,例如”避免使用天降神器解决危机”、”主角必须付出代价才能获胜”、”请设计一个意料之外但情理之中的反转”。另外,可以先用AI生成10个创意方向,再人工挑选最有趣的一个。
Q2:AI生成的对白很生硬,不像真人说话怎么办?
A: 在角色设定卡中详细描述说话风格(语速、用词习惯、口头禅),并加入示例对白供AI参考。例如:”主角说话像《海贼王》的路飞——直率、大喊大叫、喜欢用感叹词”。也可以先生成对白,再人工润色一遍。
Q3:AI脚本的分镜描述太模糊,AI绘画无法理解怎么办?
A: 在提示词中明确要求”画面描述必须包含:角色位置、服装状态、表情、背景、光线方向、镜头角度(俯视/仰视/平视)、景别(远景/中景/特写)”。同时,可以参考步骤4中的脚本转提示词工具,自动补充绘画关键词。
Q4:如何保证多章脚本的角色一致性?
A: 使用统一的角色设定卡(JSON格式),在每章生成时都作为上下文注入。同时,在Python脚本中维护一个”角色状态追踪器”,记录每个角色在不同章节中的变化(受伤、升级、换装等),确保连续性和一致性。
Q5:AI生成脚本太长了,一次生成的内容用不完怎么办?
A: 在提示词中指定输出长度。例如”请生成4页、每页4格的分镜脚本”或”总字数控制在2000字以内”。也可以先生成故事大纲,确认方向后再逐页生成详细脚本——分步生成更可控。
总结
AI编剧入门的核心要点:
- 脚本是漫画的骨架 — 好的脚本决定了漫画质量的上限,AI可以大幅提升脚本创作效率,但人工审核和润色仍然不可或缺
- 提示词决定质量 — 角色设定卡、世界观、格式约束是高质量AI脚本的三大支柱,花时间打磨提示词会带来成倍回报
- 管线化批量生产 — 使用Python脚本+配置文件,可以实现从角色设定→故事大纲→分镜脚本→绘画提示词的全自动化管线
- 结构化输出是关键 — 让AI输出JSON/Markdown/YAML等结构化格式,便于后续工具链处理和AI绘画工具对接
- 人机协作是最优解 — AI负责”量”(快速生成大量素材),人类负责”质”(筛选、润色、注入灵魂),两者结合才能产出真正的精品
下一期我们将深入探讨AI漫画的叙事结构,学习如何让AI讲好一个完整的故事。















暂无评论内容