
敲完最后一行启动命令看到本地页面跑通的时候,我直接把之前充的某AI短剧生成网站会员停了——轻量需求根本不用凑云服务的免费额度,下面的内容全是能直接抄的操作:
先把运行环境搭好
- 确认本地Python版本在3.10-3.11区间,别装3.12,不少依赖还没做适配,很容易报兼容错。
- 新建独立虚拟环境,避免和其他项目的依赖冲突,命令直接抄:
python -m venv shortdrama_ai # Windows系统激活命令 shortdrama_ai\Scripts\activate # Mac/Linux系统激活命令 source shortdrama_ai/bin/activate - 换国内清华源装核心依赖,比默认源速度快很多,不用等下载超时:
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参数量的开源通义千问模型,带独立显卡的普通笔记本就能流畅跑,核显设备加载速度会慢一些,看具体配置,不用硬追大参数模型。第一次运行会自动下载模型到本地缓存,等进度条走完就行,不用重复下载。
跑起来之后的参数调整
- 启动服务直接敲下面的命令,不用加多余参数:
执行后会自动弹出浏览器页面,没自动弹出的话,复制控制台输出的本地地址(一般是localhost:8501)手动打开就行。streamlit run main.py - 如果觉得生成的分镜太套路、太模板化,把代码里的temperature参数调到0.8-0.9区间就行,数值越高创意性越强,调太高容易出现逻辑跑题的情况。
- 想要导出分镜成表格文件的话,加几行pandas代码就能把输出内容转成csv格式存本地,不用手动逐行复制。
- 不要随便修改device_map参数,设为auto会自动分配显存和内存占用,手动指定反而容易出现内存溢出的问题。
反正我自己用这套脚本写了两个脑洞分镜,比蹲网站免费额度省心多了,真跑报错了先查Python版本,十有八九是版本不兼容的坑。
评论一下?