125 lines
2.8 KiB
Markdown
125 lines
2.8 KiB
Markdown
# VEO3 场景写作工具
|
|
|
|
基于 Gemini SDK 的 VEO3 场景写作对话工具,专门用于创建电影级的视频场景提示词。
|
|
|
|
## 功能特性
|
|
|
|
- 🎬 **专业场景写作**: 使用 VEO3 专业提示词
|
|
- 🤖 **智能对话**: 基于 Gemini AI 的对话式场景创建
|
|
- 📸 **图片分析**: 支持上传图片进行角色分析
|
|
- 🎥 **视频分析**: 支持视频文件分析和学习
|
|
- 📄 **多格式输出**: 支持文本、JSON、YAML 格式
|
|
- 🔄 **角色一致性**: 确保多个场景中角色特征保持一致
|
|
|
|
## 快速开始
|
|
|
|
### 基本使用
|
|
|
|
```rust
|
|
use veo3_scene_writer::Veo3SceneWriter;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let mut writer = Veo3SceneWriter::new().await?;
|
|
let response = writer.send_message("你好,我想创建一个角色档案").await?;
|
|
println!("回复: {}", response);
|
|
Ok(())
|
|
}
|
|
```
|
|
|
|
### 带图片的使用
|
|
|
|
```rust
|
|
let response = writer.send_message_with_attachment(
|
|
"请分析这张图片中的角色",
|
|
"character.jpg"
|
|
).await?;
|
|
```
|
|
|
|
## 演示示例
|
|
|
|
### 1. 基本对话演示
|
|
```bash
|
|
cargo run --example simple_chat
|
|
```
|
|
|
|
### 2. 附件功能演示
|
|
```bash
|
|
cargo run --example attachment_demo
|
|
```
|
|
|
|
### 3. Daisy 角色演示
|
|
```bash
|
|
# 需要先将图片文件 01.png 放在当前目录
|
|
cargo run --example daisy_demo
|
|
```
|
|
|
|
## Daisy 演示说明
|
|
|
|
`daisy_demo` 演示展示了完整的 VEO3 工作流程:
|
|
|
|
1. **准备工作**: 将 `01.png` 图片文件放在 `cargos/veo3-scene-writer/` 目录下
|
|
2. **角色分析**: 基于图片为 "Daisy" 创建详细角色档案
|
|
3. **场景创建**: 创建多个不同风格的 8 秒电影场景
|
|
4. **格式输出**: 展示 JSON 格式的结构化输出
|
|
|
|
### 演示场景包括:
|
|
- 🍵 **咖啡厅阅读场景**: 温馨静谧的室内场景
|
|
- 🌳 **公园散步场景**: 自然光线的户外场景
|
|
- 🌧️ **雨中奔跑场景**: 动感十足的动作场景
|
|
|
|
## 支持的文件格式
|
|
|
|
### 图片格式
|
|
- JPG/JPEG
|
|
- PNG
|
|
- GIF
|
|
- BMP
|
|
- WebP
|
|
|
|
### 视频格式
|
|
- MP4
|
|
- AVI
|
|
- MOV
|
|
- MKV
|
|
- WebM
|
|
|
|
## VEO3 工作流程
|
|
|
|
1. **Phase 1**: 角色档案导入
|
|
- 定义角色的视觉特征
|
|
- 设定角色的声音特征
|
|
|
|
2. **Phase 2**: 电影场景生成
|
|
- 场景描述和角色动作
|
|
- 摄影角度和运动
|
|
- 灯光和氛围设置
|
|
|
|
3. **Phase 3**: 生成电影提示词
|
|
- 输出 VEO3 优化的提示词
|
|
- 支持多种格式输出
|
|
|
|
## 配置
|
|
|
|
SDK 会自动使用环境变量或默认配置。如需自定义配置:
|
|
|
|
```rust
|
|
let config = gemini_sdk::GeminiConfig {
|
|
base_url: "your-api-url".to_string(),
|
|
bearer_token: "your-token".to_string(),
|
|
// ... 其他配置
|
|
};
|
|
|
|
let writer = Veo3SceneWriter::with_config(config).await?;
|
|
```
|
|
|
|
## 注意事项
|
|
|
|
- 确保有有效的 Gemini API 配置
|
|
- 图片和视频文件需要放在正确的路径
|
|
- 大文件上传可能需要较长时间
|
|
|
|
## 许可证
|
|
|
|
MIT License
|