可以输入一个故事主题,使用大语言模型生成故事视频,视频中包含大模型生成的图片、故事内容,以及音频和字幕信息。项目后端技术栈为 python + fastapi 框架,前端为 react + antd + vite。
主要功能:
- 智能生成:用户仅输入故事主题或者关键字,系统就能自动生成对应的短视频,并且短时间内能给出多种创意成果。
- 多语言支持:Story Flicks能够支持多种语言,用户能按照自身需求挑选合适的语言来生成内容,这提升了使用时的便利性与灵活性。
- 图像与音频结合:Story Flicks除了能生成文本内容和故事情节,还能给视频添加由AI生成的图像以及背景音效,整体上增强了视频的观赏性。
- 多模态生成:Story Flicks通过大语言模型(LLM)进行智能解析,能够综合构建叙事框架,同步融合视觉、听觉和文本元素。也就是说它不但能生成文本故事,还能自动创造出与故事相匹配的AI图像、动态语音旁白和智能字幕。
- AI图像生成:Story Flicks运用图像生成技术,给故事里的场景和角色营造出生动的视觉效果,让生成的视频内容在视觉上有很强的吸引力。
- 一体化音频制作:其中包含动态语音旁白,这就意味着用户不需要额外去录制或者寻找音频素材,系统会自动根据故事内容生成语音。
- 智能字幕:能够自动编排字幕,这既便于听障用户理解视频内容,也提高了视频的可访问性。
- 技术栈:后端运用Python和FastAPI,前端采用React、Ant Design和Vite,以此确保系统高效稳定运行,为用户提供良好的开发体验。
安装和使用
1. 下载本项目
git clone https://github.com/alecm20/story-flicks.git
2. 设置模型信息
# 先切换到项目的 backend 目录下
cd backend
cp .env.example .env
text_provider="openai" # 文本生成模型的提供商,目前支持 openai和 aliyun、deepseek、ollama、siliconflow,阿里云文档:https://www.aliyun.com/product/bailian
image_provider="aliyun" # 图片生成模型的提供商,目前支持 openai和 aliyun、siliconflow
openai_base_url="https://api.openai.com/v1" # openai 的 baseUrl
aliyun_base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" # 阿里云的 baseUrl
deepseek_base_url="https://api.deepseek.com/v1" # deepseek 的 baseUrl
ollama_base_url="http://localhost:11434/v1" # ollama 的 baseUrl
siliconflow_base_url="https://api.siliconflow.cn/v1" # siliconflow 的 baseUrl
openai_api_key= # openai 的 api key,可以只填一个
aliyun_api_key= # 阿里云百炼的 api key,可以只填一个
deepseek_api_key= # deepseek 的 api key,目前该 api_key 只支持文本生成
ollama_api_key= # 如果需要使用的话,请填写ollama,目前该 api_key 只支持文本生成,并且不能用参数量太小的模型,推荐qwen2.5:14b 或者更大的模型。
siliconflow_api_key= # siliconflow 的文本模型目前只支持兼容 OpenAI 格式的大模型,如:Qwen/Qwen2.5-7B-Instruct。图像模型只测试了:black-forest-labs/FLUX.1-dev
text_llm_model=gpt-4o # 如果 text_provider 设置为 openai,这里只能填 OpenAI 的模型,如:gpt-4o。如果设置了 aliyun,可以填阿里云的大模型,如:qwen-plus 或者 qwen-max。ollama 的模型不能使用体积太小的模型,否则无法输出正确的 json,可以使用如:qwen2.5:14b 或更大的模型。
image_llm_model=flux-dev # 如果 image_provider 设置为 openai,这里只能填 OpenAI 的模型,如:dall-e-3。如果设置了 aliyun,可以填阿里云的大模型,阿里云推荐使用:flux-dev,目前可以免费试用,具体参考:https://help.aliyun.com/zh/model-studio/getting-started/models#a1a9f05a675m4。
3. 启动项目
3.1 手动启动
启动后端项目
# 先切换到项目根目录
cd backend
conda create -n story-flicks python=3.10 # 这里使用 conda,其他的虚拟环境创建方式也可以
conda activate story-flicks
pip install -r requirements.txt
uvicorn main:app --reload
如果项目成功,会有如下信息输出:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [78259] using StatReload
INFO: Started server process [78261]
INFO: Waiting for application startup.
INFO: Application startup complete.
启动前端项目
# 先切换到项目根目录
cd frontend
npm install
npm run dev
#启动成功之后打开:http://localhost:5173/
启动成功会输出如下信息:
VITE v6.0.7 ready in 199 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h + enter to show help
3.2 通过docker启动
在项目根目录下,执行:
docker-compose up --build
成功之后打开前端项目:http://localhost:5173/