
AI 漫剧是漫画与短剧的结合:以条漫或漫画分镜为视觉基础,加入配音、字幕、镜头运动和环境音,形成 30 秒到 3 分钟的竖屏视频。它适合抖音、快手、B 站等平台,优势是成本低、迭代快、可批量生产。但若缺乏工程化流程,容易出现角色变脸、分镜混乱、配音与画面脱节等问题。
一条专业流水线通常包含六步:
其中,角色一致性和分镜结构化是核心。建议让模型先输出 JSON,再逐镜头生成,而不是一次性生成整集。
以下代码展示从剧本到成片的自动化骨架,依赖:
pip install openai requests moviepyimport os, json, base64, requests
from openai import OpenAI
from moviepy.editor import ImageClip, AudioFileClip, concatenate_videoclips
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def gen_script(topic, episodes=3):
"""生成结构化漫剧剧本"""
prompt = f"""写一个{topic}的漫剧剧本,共{episodes}集。
每集30秒,输出JSON:
{{"title":"", "episodes":[{{"no":1,"shots":[
{{"shot":1,"desc":"画面","line":"台词","duration":3}}]}}]}}"""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
response_format={"type": "json_object"},
temperature=0.7,
)
return json.loads(resp.choices[0].message.content)
def gen_image(prompt, save_path):
"""调用 Stable Diffusion WebUI API 生成分镜图"""
url = "http://127.0.0.1:7860/sdapi/v1/txt2img"
payload = {
"prompt": prompt + ", manga style, clean line, cinematic",
"negative_prompt": "low quality, bad hands, text, watermark",
"steps": 28, "width": 768, "height": 1024,
"seed": 12345, # 固定种子提升一致性
}
r = requests.post(url, json=payload).json()
with open(save_path, "wb") as f:
f.write(base64.b64decode(r["images"][0]))
def compose(shots, out="manju.mp4"):
"""按分镜合成视频:图片 + 音频 + 时长"""
clips = []
for img, audio in shots:
a = AudioFileClip(audio)
c = ImageClip(img).set_duration(a.duration).set_audio(a)
clips.append(c)
final = concatenate_videoclips(clips, method="compose")
final.write_videofile(out, fps=24, codec="libx264", audio_codec="aac")
if __name__ == "__main__":
script = gen_script("都市异能漫剧", episodes=1)
print(json.dumps(script, ensure_ascii=False, indent=2))
# 实际生产中:遍历 shots,调用 gen_image 生成图,
# 调用 TTS 生成音频,最后传入 compose 合成。这段代码是生产骨架。真实项目还需接入 TTS、字幕烧录、镜头运动、口型同步和批量任务队列。
AI 漫剧的竞争力来自流水线,而不是单个模型。用结构化剧本控制分镜,用固定种子和参考图控制角色,用 TTS 与 MoviePy 完成音画合成,再配合人工审核,就能把漫剧从“抽卡式创作”升级为可复用的内容工程。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。