侧边栏壁纸
  • 累计撰写 83 篇文章
  • 累计收到 2 条评论

本地部署轻量AI短剧分镜生成工具实操

2026-11-9 / 0 评论 / 22 阅读

本地部署轻量AI短剧分镜生成工具实操

敲完最后一行启动命令看到本地页面跑通的时候,我直接把之前充的某AI短剧生成网站会员停了——轻量需求根本不用凑云服务的免费额度,下面的内容全是能直接抄的操作:

先把运行环境搭好

  1. 确认本地Python版本在3.10-3.11区间,别装3.12,不少依赖还没做适配,很容易报兼容错。
  2. 新建独立虚拟环境,避免和其他项目的依赖冲突,命令直接抄:
    python -m venv shortdrama_ai
    # Windows系统激活命令
    shortdrama_ai\Scripts\activate
    # Mac/Linux系统激活命令
    source shortdrama_ai/bin/activate
  3. 换国内清华源装核心依赖,比默认源速度快很多,不用等下载超时:
    pip install torch transformers streamlit pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

核心脚本可直接复用

本地新建名为main.py的文件,把下面的代码完整粘进去就行,核心逻辑不用改:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import streamlit as st

st.title("AI短剧分镜生成器")
prompt = st.text_area("输入短剧核心设定,比如:赘婿上门被羞辱3年后带着千亿资产回归")
if st.button("生成分镜"):
    tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-1.5B-Instruct", trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-1.5B-Instruct", torch_dtype=torch.bfloat16, device_map="auto")
    messages = [
        {"role": "system", "content": "你是专业短剧编剧,输出分镜要包含镜号、画面内容、台词、时长,总集数控制在3集以内,节奏快冲突强。"},
        {"role": "user", "content": prompt}
    ]
    text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    inputs = tokenizer([text], return_tensors="pt").to(model.device)
    outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.7)
    res = tokenizer.decode(outputs[0][len(inputs.input_ids[0]):], skip_special_tokens=True)
    st.write(res)
这里用的是1.5B参数量的开源通义千问模型,带独立显卡的普通笔记本就能流畅跑,核显设备加载速度会慢一些,看具体配置,不用硬追大参数模型。第一次运行会自动下载模型到本地缓存,等进度条走完就行,不用重复下载。

跑起来之后的参数调整

  • 启动服务直接敲下面的命令,不用加多余参数:
    streamlit run main.py
    执行后会自动弹出浏览器页面,没自动弹出的话,复制控制台输出的本地地址(一般是localhost:8501)手动打开就行。
  • 如果觉得生成的分镜太套路、太模板化,把代码里的temperature参数调到0.8-0.9区间就行,数值越高创意性越强,调太高容易出现逻辑跑题的情况。
  • 想要导出分镜成表格文件的话,加几行pandas代码就能把输出内容转成csv格式存本地,不用手动逐行复制。
  • 不要随便修改device_map参数,设为auto会自动分配显存和内存占用,手动指定反而容易出现内存溢出的问题。

反正我自己用这套脚本写了两个脑洞分镜,比蹲网站免费额度省心多了,真跑报错了先查Python版本,十有八九是版本不兼容的坑。

评论一下?

OωO
取消