Merge pull request #105 from zonghaoyuan/feat/readme-update
docs(readme): update architecture, add OpenDeploy sponsor
This commit is contained in:
+10
-6
@@ -4,6 +4,8 @@
|
||||
|
||||
<p><b>An interactive story game, generated in real time for you</b></p>
|
||||
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="36"></a>
|
||||
|
||||
[](https://github.com/zonghaoyuan/infiplot/stargazers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/watchers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/network)
|
||||
@@ -11,7 +13,7 @@
|
||||
|
||||
[](https://infiplot.com)
|
||||
[](LICENSE)
|
||||
[](https://linux.do)
|
||||
[](https://linux.do/t/topic/2296384)
|
||||
|
||||
[简体中文](https://github.com/zonghaoyuan/infiplot) · English · [日本語](README.ja.md)
|
||||
|
||||
@@ -41,11 +43,13 @@ Free to play, no setup required: [infiplot.com](https://infiplot.com)
|
||||
|
||||
InfiPlot offers multiple deployment options. For personal use, we recommend the one-click Vercel deploy; to self-host on your own server or local machine, use Docker.
|
||||
|
||||
### Vercel / Cloudflare (one-click)
|
||||
### OpenDeploy / Vercel / Cloudflare (one-click)
|
||||
|
||||
Cloudflare deployment requires the Workers Paid Plan because the scene pipeline needs longer CPU time.
|
||||
Cloudflare deployment requires the Workers Paid Plan because the scene pipeline needs longer CPU time. OpenDeploy lets your AI agent handle the deployment for you.
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.en.md%23configuration-guide) [](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="34"></a>
|
||||
<a href="https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.en.md%23configuration-guide"><img src="https://vercel.com/button" alt="Deploy with Vercel" height="34"></a>
|
||||
<a href="https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare" height="34"></a>
|
||||
|
||||
After deploy, fill in the environment variables — see the [Configuration guide](#configuration-guide) below. The repo root is the app itself: Vercel needs no special root directory; on Cloudflare, just set the build command to `pnpm build:cf`.
|
||||
|
||||
@@ -112,7 +116,7 @@ Visit `http://localhost:3000` to start playing.
|
||||
|
||||
## How it works
|
||||
|
||||
Built on text, image, and audio models, we've assembled a multi-agent framework to deliver on InfiPlot's goal. We split the agents into five roles — **Architect, Writer, Character Designer, Cinematographer, and Painter** — that work together to keep the plot coherent, the characters consistent, and the scenes continuous, all while making the story as compelling as we can.
|
||||
Built on text, image, and audio models, we've assembled a multi-agent framework to deliver on InfiPlot's goal. We split the agents into four roles — **Writer, Character Designer, Cinematographer, and Painter** — that work together to keep the plot coherent, the characters consistent, and the scenes continuous, all while making the story as compelling as we can. The Writer also handles overall story architecture.
|
||||
|
||||
We call each complete playthrough a **story**.
|
||||
|
||||
@@ -205,12 +209,12 @@ See the [Bring-your-own voice Key guide](docs/xiaomi-tts-key.md) for how to obta
|
||||
- [x] Frontend API Key & model setup
|
||||
- [x] Mobile web support
|
||||
- [x] Story sharing (`.infiplot` format)
|
||||
- [x] OpenDeploy quick deployment
|
||||
|
||||
**To Do**
|
||||
|
||||
- [ ] Mobile app & creator platform
|
||||
- [ ] ComfyUI custom image generation
|
||||
- [ ] Open Deploy quick deployment
|
||||
- [ ] Reduce latency to under 5s
|
||||
- [ ] Story save & resume
|
||||
- [ ] Custom character cards & world settings
|
||||
|
||||
+10
-6
@@ -4,6 +4,8 @@
|
||||
|
||||
<p><b>あなたのためにリアルタイム生成されるインタラクティブ・ストーリーゲーム</b></p>
|
||||
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="36"></a>
|
||||
|
||||
[](https://github.com/zonghaoyuan/infiplot/stargazers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/watchers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/network)
|
||||
@@ -11,7 +13,7 @@
|
||||
|
||||
[](https://infiplot.com)
|
||||
[](LICENSE)
|
||||
[](https://linux.do)
|
||||
[](https://linux.do/t/topic/2296384)
|
||||
|
||||
[简体中文](https://github.com/zonghaoyuan/infiplot) · [English](README.en.md) · 日本語
|
||||
|
||||
@@ -41,11 +43,13 @@ InfiPlot は、AI がコンテンツをリアルタイムに生成するイン
|
||||
|
||||
InfiPlot は複数のデプロイ方法に対応しています。個人利用には Vercel のワンクリックデプロイをおすすめします。自分のサーバーやローカルマシンで動かしたい場合は Docker を使ってください。
|
||||
|
||||
### Vercel / Cloudflare(ワンクリック)
|
||||
### OpenDeploy / Vercel / Cloudflare(ワンクリック)
|
||||
|
||||
Cloudflare へのデプロイはシーンパイプラインがより長い CPU 時間を必要とするため、Workers Paid Plan が必要です。
|
||||
Cloudflare へのデプロイはシーンパイプラインがより長い CPU 時間を必要とするため、Workers Paid Plan が必要です。OpenDeploy では AI エージェントにデプロイを任せることができます。
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.ja.md%23%E8%A8%AD%E5%AE%9A%E3%82%AC%E3%82%A4%E3%83%89) [](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="34"></a>
|
||||
<a href="https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.ja.md%23%E8%A8%AD%E5%AE%9A%E3%82%AC%E3%82%A4%E3%83%89"><img src="https://vercel.com/button" alt="Deploy with Vercel" height="34"></a>
|
||||
<a href="https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare" height="34"></a>
|
||||
|
||||
デプロイ後、環境変数を設定してください —— 下記の[設定ガイド](#設定ガイド)を参照。リポジトリのルートがアプリ本体です:Vercel では特別なルート設定は不要です。Cloudflare ではビルドコマンドを `pnpm build:cf` に設定するだけで済みます。
|
||||
|
||||
@@ -112,7 +116,7 @@ docker compose up -d
|
||||
|
||||
## 仕組み
|
||||
|
||||
テキスト・画像・音声モデルを基盤に、私たちは InfiPlot の目標を実現するためのマルチエージェント・フレームワークを構築しました。エージェントを **アーキテクト(Architect)・脚本家(Writer)・キャラクターデザイナー(Character Designer)・撮影監督(Cinematographer)・絵師(Painter)** の 5 つの役割に分け、互いに連携させることで、物語の一貫性・キャラクターの一貫性・シーンの連続性を保ちつつ、できる限り魅力的な物語を目指します。
|
||||
テキスト・画像・音声モデルを基盤に、私たちは InfiPlot の目標を実現するためのマルチエージェント・フレームワークを構築しました。エージェントを **脚本家(Writer)・キャラクターデザイナー(Character Designer)・撮影監督(Cinematographer)・絵師(Painter)** の 4 つの役割に分け、互いに連携させることで、物語の一貫性・キャラクターの一貫性・シーンの連続性を保ちつつ、できる限り魅力的な物語を目指します。脚本家は物語全体の構造設計も兼ねています。
|
||||
|
||||
一回のプレイ全体を、私たちは**ストーリー(story)**と呼んでいます。
|
||||
|
||||
@@ -204,12 +208,12 @@ Xiaomi は TTS モデルに RPM/TPM 制限を設けています。公開デプ
|
||||
- [x] フロントエンドで API Key・モデル設定
|
||||
- [x] モバイル Web 対応
|
||||
- [x] ストーリー共有(`.infiplot` 形式)
|
||||
- [x] OpenDeploy クイックデプロイ
|
||||
|
||||
**未実装**
|
||||
|
||||
- [ ] モバイルアプリ&クリエイタープラットフォーム
|
||||
- [ ] ComfyUI カスタム画像生成対応
|
||||
- [ ] Open Deploy クイックデプロイ
|
||||
- [ ] レイテンシを 5 秒以内に短縮
|
||||
- [ ] ストーリーの保存・再開
|
||||
- [ ] カスタムキャラクターカード&世界観設定
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
<p><b>为你实时生成的互动剧情游戏</b></p>
|
||||
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="36"></a>
|
||||
|
||||
[](https://github.com/zonghaoyuan/infiplot/stargazers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/watchers)
|
||||
[](https://github.com/zonghaoyuan/infiplot/network)
|
||||
@@ -11,7 +13,7 @@
|
||||
|
||||
[](https://infiplot.com)
|
||||
[](LICENSE)
|
||||
[](https://linux.do)
|
||||
[](https://linux.do/t/topic/2296384)
|
||||
|
||||
[English](README.en.md) · 简体中文 · [日本語](README.ja.md)
|
||||
|
||||
@@ -41,11 +43,13 @@ InfiPlot是一款AI实时生成内容的互动剧情游戏,这里没有预设
|
||||
|
||||
InfiPlot 支持多种部署方式。个人使用推荐 Vercel 一键部署;想部署到自己的服务器或本地运行,可以用 Docker。
|
||||
|
||||
### Vercel / Cloudflare(一键部署)
|
||||
### OpenDeploy / Vercel / Cloudflare(一键部署)
|
||||
|
||||
Cloudflare 部署因场景流水线需要更长 CPU 时间,需要 Workers Paid Plan。
|
||||
Cloudflare 部署因场景流水线需要更长 CPU 时间,需要 Workers Paid Plan。OpenDeploy 支持让 AI Agent 帮你完成部署。
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot%23%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B) [](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
|
||||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="34"></a>
|
||||
<a href="https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot%23%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B"><img src="https://vercel.com/button" alt="Deploy with Vercel" height="34"></a>
|
||||
<a href="https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare" height="34"></a>
|
||||
|
||||
部署完成后,填好环境变量 —— 详见下方的[配置教程](#配置教程)。仓库根目录就是应用本身:Vercel 无需额外设置 root directory;在 Cloudflare 上把构建命令设为 `pnpm build:cf` 即可。
|
||||
|
||||
@@ -112,7 +116,7 @@ docker compose up -d
|
||||
|
||||
## 工作原理
|
||||
|
||||
基于文本、图像和音频模型,我们搭建了一个多智能体框架来实现InfiPlot的目标。我们把agent分为架构师、编剧、角色设计师、场景布置师和画家五个职能,让他们之间相互配合,在保证剧情连贯性、角色一致性、场景一致性的基础上,尽可能使得剧情足够富有吸引力。
|
||||
基于文本、图像和音频模型,我们搭建了一个多智能体框架来实现InfiPlot的目标。我们把agent分为编剧、角色设计师、场景布置师和画家四个职能,让他们之间相互配合,在保证剧情连贯性、角色一致性、场景一致性的基础上,尽可能使得剧情足够富有吸引力。其中编剧同时负责剧情的整体架构规划。
|
||||
|
||||
我们把每一次游玩的整体体验称为故事(story)。
|
||||
|
||||
@@ -216,12 +220,12 @@ InfiPlot 会与四类模型供应商通信。**文本(Text)和视觉(Visio
|
||||
- [x] 前端直配 API Key 与模型
|
||||
- [x] 移动端 Web 适配
|
||||
- [x] 剧情分享(`.infiplot` 格式)
|
||||
- [x] OpenDeploy 快速部署
|
||||
|
||||
**未实现**
|
||||
|
||||
- [ ] 移动端 App 与创作平台
|
||||
- [ ] 兼容 ComfyUI 自定义生图
|
||||
- [ ] Open Deploy 快速部署
|
||||
- [ ] 延迟压缩至 5 秒以内
|
||||
- [ ] 剧情存档与续玩
|
||||
- [ ] 自定义角色卡与世界观
|
||||
|
||||
+27
-35
@@ -1,8 +1,8 @@
|
||||
<svg width="680" height="692" viewBox="0 0 680 692" role="img"
|
||||
<svg width="680" height="594" viewBox="0 0 680 594" role="img"
|
||||
aria-label="InfiPlot interactive story generation pipeline" xmlns="http://www.w3.org/2000/svg"
|
||||
font-family='"Anthropic Sans", -apple-system, system-ui, "Segoe UI", sans-serif'>
|
||||
<title>AI interactive story generation pipeline</title>
|
||||
<desc>From your input to the Architect and Writer, then per-scene parallel Character Designer and Cinematographer feeding the Painter, producing one scene and speculatively pre-generating back to the Writer.</desc>
|
||||
<desc>From your input to the Writer, then per-scene parallel Character Designer and Cinematographer feeding the Painter, producing one scene and speculatively pre-generating back to the Writer.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
||||
<path d="M2 1L8 5L2 9" fill="none" stroke="#9c9a92" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
@@ -12,7 +12,7 @@
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<rect x="1" y="1" width="678" height="690" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
<rect x="1" y="1" width="678" height="592" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
|
||||
<!-- Your input -->
|
||||
<g>
|
||||
@@ -22,61 +22,53 @@
|
||||
</g>
|
||||
<line x1="340" y1="92" x2="340" y2="120" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- Architect -->
|
||||
<g>
|
||||
<rect x="215" y="122" width="250" height="68" rx="8" fill="#3c3489" stroke="#afa9ec" stroke-width="0.5"/>
|
||||
<text x="340" y="147" text-anchor="middle" dominant-baseline="central" fill="#cecbf6" font-size="14" font-weight="500">Architect</text>
|
||||
<text x="340" y="167" text-anchor="middle" dominant-baseline="central" fill="#afa9ec" font-size="12">parses input → full story structure</text>
|
||||
</g>
|
||||
<line x1="340" y1="190" x2="340" y2="218" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- Writer -->
|
||||
<g>
|
||||
<rect x="220" y="220" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="245" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">Writer</text>
|
||||
<text x="340" y="265" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">narration · dialogue · choices</text>
|
||||
<rect x="220" y="122" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="147" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">Writer</text>
|
||||
<text x="340" y="167" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">story structure · narration · dialogue · choices</text>
|
||||
</g>
|
||||
|
||||
<!-- Generating one scene (group) -->
|
||||
<rect x="40" y="308" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="334" text-anchor="start" fill="#c2c0b6" font-size="12">Generating one scene</text>
|
||||
<rect x="40" y="210" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="236" text-anchor="start" fill="#c2c0b6" font-size="12">Generating one scene</text>
|
||||
|
||||
<line x1="340" y1="288" x2="211" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="288" x2="457" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="211" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="457" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- Character Designer -->
|
||||
<g>
|
||||
<rect x="58" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="379" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Character Designer</text>
|
||||
<text x="183" y="399" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">portrait + voice (parallel)</text>
|
||||
<rect x="58" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="281" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Character Designer</text>
|
||||
<text x="183" y="301" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">portrait + voice (parallel)</text>
|
||||
</g>
|
||||
|
||||
<!-- Cinematographer -->
|
||||
<g>
|
||||
<rect x="332" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="379" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Cinematographer</text>
|
||||
<text x="457" y="399" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">shot composition + background prompt</text>
|
||||
<rect x="332" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="281" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Cinematographer</text>
|
||||
<text x="457" y="301" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">shot composition + background prompt</text>
|
||||
</g>
|
||||
|
||||
<line x1="183" y1="422" x2="280" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="422" x2="360" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="183" y1="324" x2="280" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="324" x2="360" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- Painter -->
|
||||
<g>
|
||||
<rect x="190" y="458" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="483" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Painter</text>
|
||||
<text x="320" y="503" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">renders 16:9 background from portraits</text>
|
||||
<rect x="190" y="360" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="385" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">Painter</text>
|
||||
<text x="320" y="405" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">renders 16:9 background from portraits</text>
|
||||
</g>
|
||||
<line x1="320" y1="526" x2="340" y2="576" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="320" y1="428" x2="340" y2="478" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- One scene -->
|
||||
<g>
|
||||
<rect x="220" y="586" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="611" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">One scene</text>
|
||||
<text x="340" y="631" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">background image + beat tree</text>
|
||||
<rect x="220" y="488" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="513" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">One scene</text>
|
||||
<text x="340" y="533" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">background image + beat tree</text>
|
||||
</g>
|
||||
|
||||
<!-- speculative pre-generation loop -->
|
||||
<text x="542" y="236" text-anchor="middle" fill="#c2c0b6" font-size="12">pre-generate next scene</text>
|
||||
<path d="M460 620 L625 620 L625 250 L460 250" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
<text x="542" y="138" text-anchor="middle" fill="#c2c0b6" font-size="12">pre-generate next scene</text>
|
||||
<path d="M460 522 L625 522 L625 152 L460 152" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 4.8 KiB |
+32
-41
@@ -1,8 +1,8 @@
|
||||
<svg width="680" height="692" viewBox="0 0 680 692" role="img"
|
||||
<svg width="680" height="594" viewBox="0 0 680 594" role="img"
|
||||
aria-label="InfiPlot インタラクティブ物語生成パイプライン" xmlns="http://www.w3.org/2000/svg"
|
||||
font-family='"Anthropic Sans", -apple-system, system-ui, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif'>
|
||||
<title>AI インタラクティブ物語生成パイプライン</title>
|
||||
<desc>あなたの入力からアーキテクト・脚本家へ、各シーンで並行するキャラクターデザイナーと撮影監督が絵師に渡り、1 シーンを生成し、脚本家へ先回り生成で戻ります。</desc>
|
||||
<desc>あなたの入力から脚本家へ、各シーンで並行するキャラクターデザイナーと撮影監督が絵師に渡り、1 シーンを生成し、脚本家へ先回り生成で戻ります。</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
||||
<path d="M2 1L8 5L2 9" fill="none" stroke="#9c9a92" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
@@ -12,7 +12,7 @@
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<rect x="1" y="1" width="678" height="690" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
<rect x="1" y="1" width="678" height="592" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
|
||||
<!-- あなたの入力 -->
|
||||
<g>
|
||||
@@ -23,67 +23,58 @@
|
||||
</g>
|
||||
<line x1="340" y1="92" x2="340" y2="120" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- アーキテクト -->
|
||||
<g>
|
||||
<rect x="215" y="122" width="250" height="68" rx="8" fill="#3c3489" stroke="#afa9ec" stroke-width="0.5"/>
|
||||
<text x="340" y="144" text-anchor="middle" dominant-baseline="central" fill="#cecbf6" font-size="14" font-weight="500">アーキテクト</text>
|
||||
<text x="340" y="162" text-anchor="middle" dominant-baseline="central" fill="#afa9ec" font-size="12">Architect</text>
|
||||
<text x="340" y="178" text-anchor="middle" dominant-baseline="central" fill="#afa9ec" font-size="12">入力を解析 → 物語の全体構造</text>
|
||||
</g>
|
||||
<line x1="340" y1="190" x2="340" y2="218" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 脚本家 -->
|
||||
<g>
|
||||
<rect x="220" y="220" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="242" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">脚本家</text>
|
||||
<text x="340" y="260" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">Writer</text>
|
||||
<text x="340" y="276" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">ナレーション · セリフ · 選択肢</text>
|
||||
<rect x="220" y="122" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="144" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">脚本家</text>
|
||||
<text x="340" y="162" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">Writer</text>
|
||||
<text x="340" y="178" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">物語構造 · ナレーション · セリフ · 選択肢</text>
|
||||
</g>
|
||||
|
||||
<!-- 1 シーンの生成(グループ) -->
|
||||
<rect x="40" y="308" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="334" text-anchor="start" fill="#c2c0b6" font-size="12">1 シーンの生成</text>
|
||||
<rect x="40" y="210" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="236" text-anchor="start" fill="#c2c0b6" font-size="12">1 シーンの生成</text>
|
||||
|
||||
<line x1="340" y1="288" x2="211" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="288" x2="457" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="211" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="457" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- キャラクターデザイナー -->
|
||||
<g>
|
||||
<rect x="58" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="376" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">キャラクターデザイナー</text>
|
||||
<text x="183" y="394" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Character Designer</text>
|
||||
<text x="183" y="410" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立ち絵 + 声 · 並行</text>
|
||||
<rect x="58" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="278" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">キャラクターデザイナー</text>
|
||||
<text x="183" y="296" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Character Designer</text>
|
||||
<text x="183" y="312" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立ち絵 + 声 · 並行</text>
|
||||
</g>
|
||||
|
||||
<!-- 撮影監督 -->
|
||||
<g>
|
||||
<rect x="332" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="376" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">撮影監督</text>
|
||||
<text x="457" y="394" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Cinematographer</text>
|
||||
<text x="457" y="410" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">カメラ構成 + 背景プロンプト</text>
|
||||
<rect x="332" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="278" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">撮影監督</text>
|
||||
<text x="457" y="296" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Cinematographer</text>
|
||||
<text x="457" y="312" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">カメラ構成 + 背景プロンプト</text>
|
||||
</g>
|
||||
|
||||
<line x1="183" y1="422" x2="280" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="422" x2="360" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="183" y1="324" x2="280" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="324" x2="360" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 絵師 -->
|
||||
<g>
|
||||
<rect x="190" y="458" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="480" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">絵師</text>
|
||||
<text x="320" y="498" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Painter</text>
|
||||
<text x="320" y="514" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立ち絵を参照に 16:9 背景</text>
|
||||
<rect x="190" y="360" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="382" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">絵師</text>
|
||||
<text x="320" y="400" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Painter</text>
|
||||
<text x="320" y="416" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立ち絵を参照に 16:9 背景</text>
|
||||
</g>
|
||||
<line x1="320" y1="526" x2="340" y2="576" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="320" y1="428" x2="340" y2="478" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 1 シーン -->
|
||||
<g>
|
||||
<rect x="220" y="586" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="608" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">1 シーン</text>
|
||||
<text x="340" y="626" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">Scene output</text>
|
||||
<text x="340" y="642" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">背景画 + ビートツリー</text>
|
||||
<rect x="220" y="488" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="510" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">1 シーン</text>
|
||||
<text x="340" y="528" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">Scene output</text>
|
||||
<text x="340" y="544" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">背景画 + ビートツリー</text>
|
||||
</g>
|
||||
|
||||
<!-- 先回り生成ループ -->
|
||||
<text x="542" y="236" text-anchor="middle" fill="#c2c0b6" font-size="12">次のシーンを先回り生成</text>
|
||||
<path d="M460 620 L625 620 L625 250 L460 250" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
<text x="542" y="138" text-anchor="middle" fill="#c2c0b6" font-size="12">次のシーンを先回り生成</text>
|
||||
<path d="M460 522 L625 522 L625 152 L460 152" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 5.6 KiB |
+32
-41
@@ -1,8 +1,8 @@
|
||||
<svg width="680" height="692" viewBox="0 0 680 692" role="img"
|
||||
<svg width="680" height="594" viewBox="0 0 680 594" role="img"
|
||||
aria-label="InfiPlot 互动剧情生成流水线" xmlns="http://www.w3.org/2000/svg"
|
||||
font-family='"Anthropic Sans", -apple-system, system-ui, "Segoe UI", sans-serif'>
|
||||
<title>AI 互动剧情生成流水线流程图</title>
|
||||
<desc>从用户输入到架构师、编剧,再到每一幕场景内并行的角色设计师与场景布置师,汇入画家渲染,产出一幕场景,并预测式预生成回到编剧。</desc>
|
||||
<desc>从用户输入到编剧,再到每一幕场景内并行的角色设计师与场景布置师,汇入画家渲染,产出一幕场景,并预测式预生成回到编剧。</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
||||
<path d="M2 1L8 5L2 9" fill="none" stroke="#9c9a92" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
@@ -12,7 +12,7 @@
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<rect x="1" y="1" width="678" height="690" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
<rect x="1" y="1" width="678" height="592" rx="16" fill="#1f1e1d" stroke="#34322e" stroke-width="1.5"/>
|
||||
|
||||
<!-- 你的输入 -->
|
||||
<g>
|
||||
@@ -23,67 +23,58 @@
|
||||
</g>
|
||||
<line x1="340" y1="92" x2="340" y2="120" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 架构师 -->
|
||||
<g>
|
||||
<rect x="215" y="122" width="250" height="68" rx="8" fill="#3c3489" stroke="#afa9ec" stroke-width="0.5"/>
|
||||
<text x="340" y="144" text-anchor="middle" dominant-baseline="central" fill="#cecbf6" font-size="14" font-weight="500">架构师</text>
|
||||
<text x="340" y="162" text-anchor="middle" dominant-baseline="central" fill="#afa9ec" font-size="12">Architect</text>
|
||||
<text x="340" y="178" text-anchor="middle" dominant-baseline="central" fill="#afa9ec" font-size="12">解析输入 → 完整剧情结构</text>
|
||||
</g>
|
||||
<line x1="340" y1="190" x2="340" y2="218" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 编剧 -->
|
||||
<g>
|
||||
<rect x="220" y="220" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="242" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">编剧</text>
|
||||
<text x="340" y="260" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">Writer</text>
|
||||
<text x="340" y="276" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">节拍:旁白 · 对话 · 选项</text>
|
||||
<rect x="220" y="122" width="240" height="68" rx="8" fill="#085041" stroke="#5dcaa5" stroke-width="0.5"/>
|
||||
<text x="340" y="144" text-anchor="middle" dominant-baseline="central" fill="#9fe1cb" font-size="14" font-weight="500">编剧</text>
|
||||
<text x="340" y="162" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">Writer</text>
|
||||
<text x="340" y="178" text-anchor="middle" dominant-baseline="central" fill="#5dcaa5" font-size="12">剧情架构 · 旁白 · 对话 · 选项</text>
|
||||
</g>
|
||||
|
||||
<!-- 每一幕场景的生成(分组框) -->
|
||||
<rect x="40" y="308" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="334" text-anchor="start" fill="#c2c0b6" font-size="12">每一幕场景的生成</text>
|
||||
<rect x="40" y="210" width="560" height="242" rx="16" fill="none" stroke="rgba(222,220,209,0.3)" stroke-width="0.5" stroke-dasharray="6 5"/>
|
||||
<text x="58" y="236" text-anchor="start" fill="#c2c0b6" font-size="12">每一幕场景的生成</text>
|
||||
|
||||
<line x1="340" y1="288" x2="211" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="288" x2="457" y2="344" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="211" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="340" y1="190" x2="457" y2="246" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 角色设计师 -->
|
||||
<g>
|
||||
<rect x="58" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="376" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">角色设计师</text>
|
||||
<text x="183" y="394" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Character Designer</text>
|
||||
<text x="183" y="410" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立绘 + 音色 · 并行</text>
|
||||
<rect x="58" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="183" y="278" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">角色设计师</text>
|
||||
<text x="183" y="296" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Character Designer</text>
|
||||
<text x="183" y="312" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">立绘 + 音色 · 并行</text>
|
||||
</g>
|
||||
|
||||
<!-- 场景布置师 -->
|
||||
<g>
|
||||
<rect x="332" y="354" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="376" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">场景布置师</text>
|
||||
<text x="457" y="394" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Cinematographer</text>
|
||||
<text x="457" y="410" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">镜头编排 + 背景提示词</text>
|
||||
<rect x="332" y="256" width="250" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="457" y="278" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">场景布置师</text>
|
||||
<text x="457" y="296" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Cinematographer</text>
|
||||
<text x="457" y="312" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">镜头编排 + 背景提示词</text>
|
||||
</g>
|
||||
|
||||
<line x1="183" y1="422" x2="280" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="422" x2="360" y2="448" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="183" y1="324" x2="280" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="457" y1="324" x2="360" y2="350" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 画家 -->
|
||||
<g>
|
||||
<rect x="190" y="458" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="480" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">画家</text>
|
||||
<text x="320" y="498" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Painter</text>
|
||||
<text x="320" y="514" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">以立绘为参考渲染 16:9 背景</text>
|
||||
<rect x="190" y="360" width="260" height="68" rx="8" fill="#712b13" stroke="#f0997b" stroke-width="0.5"/>
|
||||
<text x="320" y="382" text-anchor="middle" dominant-baseline="central" fill="#f5c4b3" font-size="14" font-weight="500">画家</text>
|
||||
<text x="320" y="400" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">Painter</text>
|
||||
<text x="320" y="416" text-anchor="middle" dominant-baseline="central" fill="#f0997b" font-size="12">以立绘为参考渲染 16:9 背景</text>
|
||||
</g>
|
||||
<line x1="320" y1="526" x2="340" y2="576" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
<line x1="320" y1="428" x2="340" y2="478" stroke="#9c9a92" stroke-width="1.5" marker-end="url(#arrow)"/>
|
||||
|
||||
<!-- 一幕场景 -->
|
||||
<g>
|
||||
<rect x="220" y="586" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="608" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">一幕场景</text>
|
||||
<text x="340" y="626" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">Scene output</text>
|
||||
<text x="340" y="642" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">背景图 + 节拍树</text>
|
||||
<rect x="220" y="488" width="240" height="68" rx="8" fill="#444441" stroke="#b4b2a9" stroke-width="0.5"/>
|
||||
<text x="340" y="510" text-anchor="middle" dominant-baseline="central" fill="#d3d1c7" font-size="14" font-weight="500">一幕场景</text>
|
||||
<text x="340" y="528" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">Scene output</text>
|
||||
<text x="340" y="544" text-anchor="middle" dominant-baseline="central" fill="#b4b2a9" font-size="12">背景图 + 节拍树</text>
|
||||
</g>
|
||||
|
||||
<!-- 预测式预生成回环 -->
|
||||
<text x="542" y="236" text-anchor="middle" fill="#c2c0b6" font-size="12">预测式预生成下一幕</text>
|
||||
<path d="M460 620 L625 620 L625 250 L460 250" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
<text x="542" y="138" text-anchor="middle" fill="#c2c0b6" font-size="12">预测式预生成下一幕</text>
|
||||
<path d="M460 522 L625 522 L625 152 L460 152" fill="none" stroke="#1D9E75" stroke-width="1" stroke-dasharray="6 5" marker-end="url(#arrowGreen)"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 5.5 KiB |
Reference in New Issue
Block a user