feat: refine UI, improve UX, optimize the analysis pipeline, and add character standing positions

This commit is contained in:
saturn
2026-04-02 17:39:16 +08:00
parent c3e74c228a
commit 9703714b69
153 changed files with 4472 additions and 1088 deletions

View File

@@ -29,5 +29,9 @@ Rules:
2. Keep continuity across neighboring panels.
3. Adapt to scene_type and story rhythm.
4. Technical notes must be directly actionable by image/video generation.
5. JSON only, no markdown.
6. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.
5. If characters already carry `slot`, treat it as a preferred placement anchor, not an absolute boundary.
6. When a panel is about movement, entry/exit, path traversal, transition space, temporary space, empty space, imagination, dream, memory, or abstract/non-literal space, composition and placement may deviate from a static slot if the shot logic requires it.
7. Treat `slot` as one full placement phrase from the location context, not as a short token, whenever you reference it.
8. Do not shorten, rewrite, summarize, or replace a provided `slot` phrase with a short token.
9. JSON only, no markdown.
10. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.

View File

@@ -129,8 +129,11 @@
3. 每个元素必须包含 panel_number 字段
4. 使用相对方向(画面左侧/右侧),禁止使用东南西北
5. 角色位置必须与镜头描述一致!
6. 景深根据 shot_type全景/中景/近景/特写)自动调整
7. ⚠️ 对话镜头必须使用浅景深T2.8或更小),并且注明其他人虚化,确保只有说话者脸部清晰
8. 如果镜头涉及不同场景,灯光和色调要相应调整
9. 输出要简洁,每个镜头的规则独立完
10. ⚠️ JSON安全所有引号""''等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "
6. 如果角色对象中包含 slotscreen_position / posture / facing 应优先参考该位置语义,但 slot 不是绝对硬限制
7. 当镜头属于移动过程、入口/出口、过渡区域、路径空间、临时位置、空镜、想象空间、梦境、回忆或抽象空间时,可以基于镜头描述自由决定构图与位置,不必强行贴合 slot
8. slot 若被引用,必须视为一条完整的位置描述,禁止缩写、改写、总结或替换成短词
9. 景深根据 shot_type全景/中景/近景/特写)自动调
10. ⚠️ 对话镜头必须使用浅景深T2.8或更小),并且注明其他人虚化,确保只有说话者脸部清晰
11. 如果镜头涉及不同场景,灯光和色调要相应调整
12. 输出要简洁,每个镜头的规则独立完整
13. ⚠️ JSON安全所有引号""''等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "

View File

@@ -33,4 +33,5 @@ Execution rules:
1. Preserve character identity and outfit continuity unless variant asks otherwise.
2. Preserve location continuity.
3. Change framing/angle/composition according to target shot and camera move.
4. Keep one-frame output only, no text overlays.
4. If characters_info or location_asset includes fixed slots / available slots, keep every visible character anchored to the same fixed slot instead of drifting to another area.
5. Keep one-frame output only, no text overlays.

View File

@@ -66,7 +66,8 @@
2. 保持角色外观与参考图一致(服装、发型、体型)
3. 保持场景氛围与参考图一致(室内布置、光线、色调)
4. 改变镜头视角/景别/构图以匹配变体要求
5. 输出图像比例: {aspect_ratio}
5. 如果角色信息或场景参考中提供了固定站位 / 可站位置,必须保持人物仍然处于同一固定站位,不得随意换边、换前后景或漂移到其他区域
6. 输出图像比例: {aspect_ratio}
======================================
【风格要求】

View File

@@ -12,6 +12,8 @@ Location info:
Task:
For each panel, output a complete panel object with improved cinematic detail.
If any character already has `slot`, prefer preserving it exactly and use it as a preferred placement anchor.
Treat `slot` as one full placement phrase from the location context, not as a short token.
Required fields per panel:
- panel_number
@@ -30,7 +32,7 @@ Output schema example (field names must be preserved):
{
"panel_number": 1,
"description": "panel description",
"characters": [{ "name": "Character", "appearance": "appearance" }],
"characters": [{ "name": "Character", "appearance": "appearance", "slot": "the position beneath the throne steps at the center of the hall" }],
"location": "location name",
"scene_type": "daily",
"source_text": "source text excerpt",
@@ -46,5 +48,9 @@ Rules:
2. Keep source_text semantically aligned with input; do not rewrite story meaning.
3. video_prompt should be motion-ready and concrete.
4. Prefer age+gender wording in video_prompt when naming actors in camera directions.
5. Return JSON array only.
6. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.
5. Preserve every input `slot` when the character is stably positioned, and reflect it as a preferred anchor in refined description/video_prompt.
6. `slot` is not an absolute boundary. If the shot is clearly about movement, entry/exit, path traversal, transition space, temporary space, empty space, imagination, dream, memory, or abstract/non-literal space, you may remove `slot` or keep it without forcing a rigid static match.
7. When no `slot` is used, decide placement freely from source text, action flow, spatial logic, and cinematic staging.
8. Do not shorten, rewrite, summarize, or replace a provided `slot` phrase with a short token.
9. Return JSON array only.
10. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.

View File

@@ -5,6 +5,7 @@
- 为每个分镜设计景别、视角、镜头运动
- 撰写video_prompt用年龄段+性别替代角色名)
- ⚠️ 保留输入分镜中的所有原始字段(特别是 source_text必须原样保留
- 如果输入角色包含 slot应优先原样保留并让 refined description/video_prompt 优先参考该位置
【镜头语言库】
@@ -147,7 +148,7 @@
"camera_move": "固定",
"description": "角色A站在桌前双手撑在桌面上表情严肃地看着对面的角色B",
"video_prompt": "年轻男子站在桌前,双手撑在桌面上,表情严肃,正在说话,镜头固定拍摄",
"characters": [{"name": "角色A", "appearance": "初始形象"}],
"characters": [{"name": "角色A", "appearance": "初始形象", "slot": "皇宫正中龙椅前方台阶下的位置"}],
"location": "办公室",
"scene_type": "daily",
"source_text": "角色A对角色B说你好"
@@ -179,5 +180,9 @@
8. 根据输入的分镜数量动态处理
9. panel_number、characters、location、scene_type保持不变
10. description可以适当优化但不要改变核心内容
11. ⚠️ 必须保留输入分镜中的 source_text 字段,原样输出到结果中,不得遗漏或修改
12. ⚠️ JSON安全所有引号""''等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "
11. 如果输入中存在 slot应优先保留并优先参考该位置但 slot 不是绝对硬边界
12. 当镜头明显属于移动过程、入口/出口、过渡区域、路径空间、临时位置、空镜、想象空间、梦境、回忆或抽象空间时,可以删除 slot 或保留 slot 但不严格贴合其静态位置
13. 若不使用 slot应根据 source_text、动作过程、空间关系与镜头调度自由决定人物位置不要为了命中 slot 而破坏叙事逻辑
14. slot 若被保留,必须原样保留为完整位置描述,禁止缩写、改写、总结或替换成短词
15. ⚠️ 必须保留输入分镜中的 source_text 字段,原样输出到结果中,不得遗漏或修改
16. ⚠️ JSON安全所有引号""''等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "

View File

@@ -23,7 +23,7 @@ Output format (single JSON object only):
{
"panel_number": 0,
"description": "visual description",
"characters": [{ "name": "Character Name", "appearance": "appearance name" }],
"characters": [{ "name": "Character Name", "appearance": "appearance name", "slot": "the position beneath the throne steps at the center of the hall" }],
"location": "location name",
"scene_type": "daily",
"source_text": "source text or transition shot",
@@ -37,5 +37,8 @@ Rules:
1. Return one object only (not array).
2. Keep narrative and spatial continuity between previous and next panel.
3. Use valid character and location names from provided context.
4. JSON only, no markdown.
5. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.
4. If location details include available slots, treat them as preferred anchors. Reuse a provided `slot` for characters who are stably positioned in the scene.
5. You may omit `slot` when the inserted panel is mainly about movement, entry/exit, path traversal, transition space, temporary space, empty space, imagination, dream, memory, or abstract/non-literal space.
6. If `slot` is used, it must copy one full placement phrase from the available slots list verbatim. Do not shorten or rename it.
7. JSON only, no markdown.
8. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.

View File

@@ -54,7 +54,7 @@
|------|------|------|
| panel_number | number | 固定填 0由系统重新编号 |
| description | string | 画面描述:包含角色动作、位置、表情。禁止身份称呼(如"母亲"),使用具体角色名。禁止主观情绪词(如"显得尴尬"),只描述可视化动作。 |
| characters | array | 出现的角色列表,格式:`[{"name": "角色名", "appearance": "形象名"}]`。角色名必须与角色信息中的名字完全一致。形象名从角色信息的形象列表中选择。 |
| characters | array | 出现的角色列表,格式:`[{"name": "角色名", "appearance": "形象名", "slot": "场景位置描述"}]`。角色名必须与角色信息中的名字完全一致。形象名从角色信息的形象列表中选择。如果场景信息中提供了可站位置,应优先为稳定停留的角色选择 slot并直接复用可站位置列表中的完整位置描述。动态移动、过渡区域、入口出口、空镜、想象空间等情况可以不使用 slot。 |
| location | string | 场景名称,必须与场景信息中的名字完全一致 |
| scene_type | string | 场景类型,枚举值:`daily`(日常)/ `emotion`(情感)/ `action`(动作)/ `epic`(史诗)/ `suspense`(悬疑) |
| source_text | string | 对应的原文片段。可以基于前后镜头的 source_text 推断,或填写"过渡镜头" |
@@ -72,6 +72,8 @@
❌ location 使用不存在的场景名 → ✅ 必须与场景信息完全一致
❌ 特写镜头使用非固定的镜头运动 → ✅ 特写必须用"固定"
❌ video_prompt 中使用角色名 → ✅ 必须用年龄段+性别
❌ 稳定停留位置明明适合使用已有 slot却完全无视场景锚点 → ✅ 优先复用场景可站位置中的 slot
❌ 把 slot 改写成短词、代号、缩写 → ✅ 若使用 slot必须直接复制可站位置列表中的完整位置描述
======================================
【输出格式】
@@ -83,7 +85,7 @@
{
"panel_number": 0,
"description": "...",
"characters": [{"name": "...", "appearance": "..."}],
"characters": [{"name": "...", "appearance": "...", "slot": "皇宫正中龙椅前方台阶下的位置"}],
"location": "...",
"scene_type": "...",
"source_text": "...",
@@ -91,3 +93,8 @@
"camera_move": "...",
"video_prompt": "..."
}
补充原则:
- slot 是优先锚点,不是绝对硬边界
- 当新镜头主要表现角色走动、进入/离开、穿过空间、临时停留、空白空间或想象空间时,可以不使用 slot
- 若不使用 slot应根据前后镜头、原文空间关系和过渡逻辑自由决定人物位置

View File

@@ -34,7 +34,7 @@ Output format (JSON array only):
"panel_number": 1,
"description": "visual action description",
"characters": [
{ "name": "Character Name", "appearance": "appearance name" }
{ "name": "Character Name", "appearance": "appearance name", "slot": "the position beneath the throne steps at the center of the hall" }
],
"location": "location name",
"scene_type": "daily",
@@ -52,5 +52,10 @@ Planning rules:
3. Keep panel transitions smooth and logically continuous.
4. Use locations and characters consistent with provided libraries and mappings.
5. Prefer concrete, visible actions over abstract wording.
6. Return strict JSON only.
7. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.
6. If location context contains available slots, treat them as preferred placement anchors rather than mandatory hard boundaries.
7. Prefer assigning a `slot` by copying one full placement phrase from `available_slots` verbatim when a character is stably positioned in the scene.
8. You may omit `slot` when the shot is mainly about movement, entry/exit, path traversal, transition space, temporary space, empty space, imagination, dream, memory, or abstract/non-literal space.
9. When no `slot` is used, decide placement freely from source text, action flow, and cinematic staging instead of forcing one of the provided slots.
10. Do not shorten, rewrite, summarize, or replace a provided slot phrase with a short token such as `slot_1`, `left`, or `throne_front`.
11. Return strict JSON only.
12. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.

View File

@@ -24,9 +24,9 @@
- 质量优先:确保每个镜头都有意义
2. 每个分镜必须包含:
- panel_number: 分镜序号1, 2, 3...
- description: 画面描述(人物动作、场景元素、构图要点)
- characters: [{name: "角色名", appearance: "形象名"}]
- panel_number: 分镜序号1, 2, 3...
- description: 画面描述(人物动作、场景元素、构图要点)
- characters: [{name: "角色名", appearance: "形象名", slot: "场景固定位置描述"}]
- location: 场景名称(从资产库选择)
- scene_type: daily/emotion/action/epic/suspense
- source_text: 对应原文片段 ⚠️ 必填,不得为空
@@ -317,10 +317,13 @@ Clip信息
4. 只返回JSON数组不得有其他文字
5. ⚠️ source_text 必填不得为空或null
6. 空间关系必须清晰(朝向、阻挡、位置)
7. 镜头连续性:前后镜头要有动作承接
8. 禁止身份称呼:必须使用资产库中的具体名字
9. 禁止主观情绪词:只描述可视化动作和状态
10. 禁止长句单镜头:包含逗号分隔多个动作/对话的长句必须拆分
11. 对话必须拆分:每段对话至少 2 个镜头(说话者 + 听者反应)
12. ⚠️ 镜头合理性:只描述当前镜头**实际能拍摄到**的角色,特写/反打等拍不到的可省略
13. ⚠️ JSON安全原文中的所有引号""''「」等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "
7. 如果场景描述中提供了可站位置列表,应将其视为优先位置锚点,而不是强制覆盖所有可能位置的硬边界
8. 当角色在场景中稳定停留时,优先从可站位置列表中选择 slotslot 字段的值必须直接复制完整位置描述,禁止缩写、改写、总结或替换成短词
9. 当镜头主要表现角色移动、进入/离开、穿过空间、过渡区域、路径空间、临时空间、空白空间、想象/梦境/回忆/抽象空间时,可以不使用 slot并根据原文和镜头逻辑自由决定位置
10. 镜头连续性:前后镜头要有动作承接
11. 禁止身份称呼:必须使用资产库中的具体名字
12. 禁止主观情绪词:只描述可视化动作和状态
13. 禁止长句单镜头:包含逗号分隔多个动作/对话的长句必须拆分
14. 对话必须拆分:每段对话至少 2 个镜头(说话者 + 听者反应)
15. ⚠️ 镜头合理性:只描述当前镜头**实际能拍摄到**的角色,特写/反打等拍不到的可省略
16. ⚠️ JSON安全原文中的所有引号""''「」等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "

View File

@@ -7,13 +7,23 @@ User request:
Rules:
1. Output in English only.
2. Start with scene name in this format: "[Scene Name] ..."
3. Describe a wide, clear environment with spatial layout and key objects.
4. Mention lighting direction and atmosphere.
5. No protagonist actions or dialogue.
6. If crowd is implied by context, use generic crowd terms only (guests, pedestrians, audience).
3. Describe a wide, complete environment with controllable spatial layout, key structures, and visible depth.
4. Make foreground, midground, and background explicit.
5. Define at least 3 clear anchor objects or anchor areas and make the nearby open space visible.
6. If the user input is generic, such as 「classroom」 or 「office」, proactively make it specific enough for stable image layout instead of staying generic.
7. Mention lighting direction and atmosphere.
8. No protagonist actions or dialogue.
9. If crowd is implied by context, use generic crowd terms only (guests, pedestrians, audience).
10. Also generate 2-6 fixed `available_slots` as complete descriptive placement phrases tied to concrete scene anchors.
11. Do not mention posture, action, or emotion in `available_slots`. Describe position only.
12. Every anchor mentioned in `available_slots` must appear clearly in the scene prompt.
Output format:
Return JSON only. ⚠️ JSON SAFETY: All quotation marks MUST be converted to corner brackets「」in JSON string values:
{
"prompt": "[Scene Name] environment description"
"prompt": "[Scene Name] environment description",
"available_slots": [
"the position beside the left edge of the dining table",
"the open space just inside the doorway against the wall"
]
}

View File

@@ -2,7 +2,7 @@
【场景生成要求(用于出图,中文描述)】
1. 生成1条中文环境描述60-120字像真实摄影场景一样描述
1. 生成1条中文环境描述80-140字像真实摄影场景一样描述,必须足够具体到可以稳定控制画面布局
2. **开头必须明确写明场景名称**
- 描述开头必须以"【场景名称】"的形式标注空间属性
@@ -14,6 +14,10 @@
- 材质要具体(深棕色实木地板、青灰色石砖墙、做旧铁艺栏杆)
- 物品要有使用痕迹和生活气息(桌上散落的书籍、墙角堆放的杂物、窗台晒干的植物)
- 光线要写清楚来源和效果(午后阳光斜照进来在地板上拉出长影、暖黄色壁灯打在墙面上)
- 必须写出完整空间结构,不要只写泛场景名词
- 必须写出前景/中景/背景或近处/中部/远处层次
- 必须写出至少3个清晰可见的关键锚点及其周边空位
- 如果用户输入很泛(如「学校教室」「办公室」),你必须主动把它具体化为可控构图,而不是停留在泛描述
4. 禁止:不写主角人物具体动作、不写画风、不写"温馨""优雅"等抽象词
@@ -22,9 +26,20 @@
- 人群描述示例:"大厅中宾客三两成群"、"街道上行人往来"、"座位上零散坐着几位观众"
- 如果是私密空间或用户明确要求空镜,则不添加人群
6. 额外生成 2-6 个该场景的固定可站位置:
- 每个位置必须是一条完整的位置描述短语,而不是短词
- 每个位置必须依附于明确的场景锚物或区域
- 位置描述中禁止写人物姿态、动作、情绪,只写空间位置
- 这些位置里提到的锚点必须在场景描述中真实出现
- 示例:饭桌左侧靠桌边的位置、教室后排靠窗那组课桌外侧的位置、皇宫正中龙椅前方台阶下的位置
以下是用户的生成指令:{user_input}
只返回以下json格式禁止返回一切除json以外的多余内容。⚠ 所有引号(""''等)在 JSON 字符串值中必须替换为「」,严禁出现未转义的英文双引号 "。
{
"prompt":"「场景名称」场景描述内容"
"prompt":"「场景名称」场景描述内容",
"available_slots":[
"饭桌左侧靠桌边的位置",
"门口内侧靠墙的位置"
]
}

View File

@@ -18,9 +18,18 @@ Rules:
2. Return one complete updated description in English.
3. Keep scene name at the beginning: "[{location_name}] ..."
4. No protagonist actions or story narration.
5. Keep the scene spatially specific, with visible structure, depth, and stable anchors.
6. Also regenerate 2-6 `available_slots` that match the updated scene.
7. Each `available_slots` item must be one complete descriptive placement phrase, not a short token and not an object.
8. Do not mention posture, action, or emotion in `available_slots`.
9. Every anchor mentioned in `available_slots` must also appear clearly in the updated scene description.
Output format:
Return JSON only. ⚠️ JSON SAFETY: All quotation marks MUST be converted to corner brackets「」in JSON string values:
{
"prompt": "updated location description"
"prompt": "updated location description",
"available_slots": [
"the outer-side position beside the rear window desks",
"the open floor directly below the center of the blackboard"
]
}

View File

@@ -27,10 +27,20 @@
6. 保留未被修改的原有特征
7. 遵循以下描述规范:
- 只描述场景本身,禁止描述人物
- 使用中文输出,长度 50-100 字
- 使用中文输出,长度 80-140 字
- 必须让空间结构、关键锚点、前后层次具体可见,不能退化成泛场景描述
- 若用户修改后引入新的关键锚点或删掉旧锚点,描述必须同步更新
8. 同时重新生成 2-6 个固定可站位置,且必须与更新后的场景描述一致
9. 每个可站位置必须是一条完整的位置描述短语,不是短词,不是对象
10. 可站位置中禁止写人物姿态、动作、情绪,只写位置
11. 可站位置里提到的关键锚点必须在更新后的场景描述中明确出现
【输出格式】
只返回JSON格式禁止返回任何其他内容。⚠ 所有引号(""''等)在 JSON 字符串值中必须替换为「」,严禁出现未转义的英文双引号 "
{
"prompt": "「场景名」更新后的完整场景描述"
"prompt": "「场景名」更新后的完整场景描述",
"available_slots":[
"教室后排靠窗那组课桌外侧的位置",
"讲台前方黑板正下方的位置"
]
}

View File

@@ -16,9 +16,19 @@ Rules:
3. Output in English only.
4. Start with scene name: "[{location_name}] ..."
5. No protagonist actions, dialogue, or narrative plot.
6. Make the scene spatially specific enough for controllable image generation, with visible structure, depth, and stable anchors.
7. Keep at least 3 clear anchor objects or anchor areas visible in the modified scene.
8. Regenerate 2-6 `available_slots` that stay consistent with the modified scene.
9. Each `available_slots` item must be one complete descriptive placement phrase, not a short token and not an object.
10. Do not mention posture, action, or emotion in `available_slots`.
11. Every anchor mentioned in `available_slots` must also appear in the modified scene description.
Output format:
Return JSON only. ⚠️ JSON SAFETY: All quotation marks MUST be converted to corner brackets「」in JSON string values:
{
"prompt": "modified location description"
"prompt": "modified location description",
"available_slots": [
"the position beneath the throne steps at the center of the hall",
"the open space between the left column and the long table"
]
}

View File

@@ -45,6 +45,9 @@
* ✅ 好:"木质书桌"/"灰色布艺沙发"/"白色窗帘"
* ❌ 差:"优雅的家具"/"舒适的环境"/"温馨的氛围"
- 描述固定元素,不写主角人物具体动作、情绪
- 必须让空间结构足够具体,不能只剩泛场景标签
- 必须让前景/中景/背景或近处/中部/远处关系清楚
- 必须保留至少 3 个清晰可见、可供后续落位的锚点或区域
- 【人群处理规则】如果用户要求添加人群,或场景本身暗示有人群(如宴会、集市等):
* 可以加入模糊人群描述:\"人群\"、\"宾客\"、\"路人\"等
* 示例:\"大厅远处三两宾客交谈\"、\"街角有行人匆匆走过\"
@@ -54,11 +57,22 @@
你的目标是根据用户的修改指令,在原有场景描述的基础上进行修改
同时你必须重新生成该场景的固定可站位置:
- 输出 2-6 个站位
- 每个站位必须是一条完整的位置描述短语,不是短词
- 每个站位必须依附于明确场景锚物或区域
- 站位中禁止写人物姿态、动作、情绪,只写位置
- 新站位必须与修改后的场景描述一致,且其中提到的锚点必须在场景描述中出现
当前场景描述:{location_input}
用户的修改指令:{user_input}
发送json格式给我只返回以下json格式禁止返回一切除json以外的多余内容注释文字等等只返回无任何markdown标识符的纯净json格式。⚠ 所有引号(""''等)在 JSON 字符串值中必须统一替换为「」,严禁出现未转义的英文双引号 "。json格式如下
{
"prompt":"「场景名」xxxxx"
"prompt":"「场景名」xxxxx",
"available_slots":[
"皇宫正中龙椅前方台阶下的位置",
"左侧立柱与长案之间的空位"
]
}

View File

@@ -12,7 +12,11 @@ Requirements:
2. Keep the scene name prefix in each line: "[{location_name}] ..."
3. Output in English only.
4. Keep environment-only description (no protagonist actions).
5. Keep each variant concise and image-generation friendly.
5. Keep each variant specific enough for controllable image generation, with visible structure, depth, and stable anchors.
6. Also generate 2-6 shared `available_slots` for this location.
7. Each `available_slots` item must be one complete descriptive placement phrase, not a short token and not an object.
8. Do not mention posture, action, or emotion in `available_slots`.
9. Every anchor mentioned in `available_slots` must remain valid across all three regenerated descriptions.
Output format:
Return JSON only. ⚠️ JSON SAFETY: All quotation marks MUST be converted to corner brackets「」in JSON string values:
@@ -21,5 +25,9 @@ Return JSON only. ⚠️ JSON SAFETY: All quotation marks MUST be converted to c
"[{location_name}] variant 1",
"[{location_name}] variant 2",
"[{location_name}] variant 3"
],
"available_slots": [
"the position beneath the throne steps at the center of the hall",
"the position against the inner wall beside the rear doorway"
]
}

View File

@@ -20,6 +20,8 @@
- 材质细节:地面、墙面、物体的材质质感
- 环境元素:植物、天气、装饰物等
- 独特标识:该场景的标志性元素或特殊物件
- 至少 3 个可供后续固定人物位置的稳定锚点或区域
- 每个锚点周边可落位的空白区域
5. 描述规范:
- 禁止写主角人物具体动作、剧情
@@ -31,11 +33,23 @@
- 【年代一致性】根据场景特征判断年代,建筑、装饰、物品必须符合该年代特征
- 【时间一致性】如场景名包含"白天/黑夜/黄昏"等,描述中的光影必须匹配
6. 额外输出 2-6 个固定可站位置:
- 与该场景的共通构图一致
- 每个站位必须是一条完整的位置描述短语,不是短词,不是对象
- 依附于明确场景锚物或区域
- 禁止抽象站位
- 禁止写人物姿态、动作、情绪
- 站位中提到的锚点必须在三条 descriptions 中都成立
【输出格式】只返回以下 JSON不要任何其他内容。⚠ 所有引号(""''等)在 JSON 字符串值中必须替换为「」,严禁出现未转义的英文双引号 "。
{
"descriptions": [
"「场景名」新描述180-150字",
"「场景名」新描述280-150字",
"「场景名」新描述380-150字"
],
"available_slots": [
"皇宫正中龙椅前方台阶下的位置",
"右后方殿门内侧靠墙的位置"
]
}

View File

@@ -17,9 +17,17 @@ For each selected location, generate 3 wide-angle environment descriptions.
Each description should:
- start with location name in brackets: "[Location Name] ..."
- describe spatial layout, depth layers, major objects, and lighting direction
- define at least 3 stable anchor objects or anchor areas that can support later character placement
- make the usable open space around those anchors visually clear
- remain environment-only (no named protagonist actions)
- use concise, production-ready English
If the source location is generic, such as 「classroom」, 「office」, or 「living room」, you must proactively make it specific enough for controllable image generation:
- define the visible main structure
- define foreground, midground, and background
- define at least 3 stable anchor areas and nearby open space
- avoid vague noun piles
Output format (JSON only):
{
"locations": [
@@ -28,6 +36,11 @@ Output format (JSON only):
"summary": "short usage summary",
"has_crowd": false,
"crowd_description": "",
"available_slots": [
"the position beneath the throne steps at the center of the palace hall",
"the open space between the left column and the long table",
"the position against the inner wall beside the rear doorway"
],
"descriptions": [
"[location_name] description 1",
"[location_name] description 2",
@@ -40,5 +53,10 @@ Output format (JSON only):
Strict constraints:
1. JSON only.
2. If no valid location exists, return: {"locations":[]}.
3. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.
3. Each location must include 2-6 `available_slots`.
4. Each `available_slots` item must be a complete descriptive placement phrase, not a short token and not an object.
5. Slot descriptions must be concrete and reusable, tied to visible anchors such as the outer side of a desk row, the open floor before the blackboard, the inner side of a doorway, the space beside a window wall.
6. Do not mention character posture, action, or emotion inside `available_slots`. Describe position only.
7. Every anchor mentioned in `available_slots` must also appear clearly in the location descriptions.
8. ⚠️ JSON SAFETY: All quotation marks in text (""''「」 etc.) MUST be converted to corner brackets「」in JSON string values. NEVER use raw ASCII double quotes " inside string values.

View File

@@ -72,9 +72,15 @@
- 使用明确的位置词:左侧/右侧/中央/角落/靠窗/远处
- 描述物体之间的空间关系和前后层次
- 5-8件物体每件都有位置说明
- 至少 2-3 个后续可作为人物落位锚点的关键物体或区域必须被明确写出,如桌边、门内侧、窗下墙边、讲台前、龙椅前台阶
**光线方向**:光从哪个方向照入,照亮哪些区域
**可落位空间**(必须体现):
- 必须说明哪些区域留有可供人物站立或出现的空白空间
- 这些空白区域必须与关键锚点相邻,便于后续固定人物位置
- 禁止把所有锚点都塞满家具或遮挡物,导致后续无法落人
5. 描述规范:
- 强调位置关系词:前方、远处、左侧、角落、靠近、深处
- 长度 100-150 字
@@ -108,6 +114,12 @@
8.如无特殊要求,使用用户输入的语言来进行场景生成,例如输入英文输出偏西方场景,中文则输出偏中国场景,但是原则要按照文字剧本里实际发生的地点为准,
9. 如果原文或用户输入过于泛化(如「学校教室」「办公室」「客厅」),你必须主动将其具体化为可控画面的完整空间:
- 明确主视角下能看到的关键结构
- 明确前景/中景/背景
- 明确至少 3 个稳定锚点及其周边空位
- 禁止只输出泛泛的场景名词堆砌
【输出规范(只允许以下 JSON 结构;字段名中文;不得输出任何多余文字)】
{
"locations": [
@@ -116,6 +128,11 @@
"summary": "场景简要说明(用途/人物关联,如:张三居住的主卧室、公司高层会议室等)",
"has_crowd": true/false,
"crowd_description": "人群类型描述仅当has_crowd为true时填写宴会宾客、集市人群、学生们等",
"available_slots": [
"皇宫正中龙椅前方台阶下的位置",
"左侧立柱与长案之间的空位",
"右后方殿门内侧靠墙的位置"
],
"descriptions": [
"「场景名」场景环境描述1如has_crowd为true则包含人群元素",
"「场景名」场景环境描述2",
@@ -127,6 +144,11 @@
【严格性】
- 若无符合条件的场景locations数组返回 []。
- 每个场景必须生成 2-6 个 available_slots且每个站位都必须具体、可复用、与场景内明确锚物相关。
- 每个 available_slots 元素必须是一条完整的位置描述短语,不是短词,不是结构化对象。
- 站位描述必须像「皇宫正中龙椅前方台阶下的位置」「教室后排靠窗那组课桌外侧的位置」这样,直接说明锚物、方位和具体区域。
- 禁止抽象站位,如「左边」「中间」「角落」;禁止写人物姿态、动作、情绪;只描述位置本身。
- available_slots 中提到的所有关键锚点,必须在 descriptions 中清楚出现,否则该站位无效,不能输出。
- 只返回上述 JSON不得输出markdown代码块标记、如```json注释或解释不得添加未定义字段。
- 每条描述必须遵守长度限制100-150字发现超长请自行截断。
- 禁止在 JSON 字符串值中出现英文双引号 "。原文中的所有引号(""''等)必须统一替换为「」。如字符串内确实需要英文双引号,必须转义为 \"

View File

@@ -21,7 +21,10 @@ Style requirement:
Execution rules:
1. Respect panel composition, character placement, and action logic.
2. Use reference images for style/identity consistency only.
3. Repaint the background according to shot type and angle.
4. If storyboard conflicts with source text, keep narrative logic from source text.
5. Keep final visual style consistent with provided references.
2. If storyboard data contains `slot`, treat it as a preferred placement anchor for consistency, not as an absolute restriction.
3. If location data contains `available_slots`, treat them as typical anchor references rather than a complete map of all valid positions.
4. When the panel description, source text, action flow, or scene nature implies movement, entry/exit, path traversal, transition space, temporary space, empty space, or abstract/non-literal space, do not force the character to remain inside an existing slot.
5. Use reference images for style/identity consistency only.
6. Repaint the background according to shot type and angle.
7. If storyboard conflicts with source text, keep narrative logic from source text.
8. Keep final visual style consistent with provided references.

View File

@@ -50,6 +50,10 @@
- 严格按照分镜要求绘制画面
- 禁止添加、删除或重排任何镜头
- 镜头必须与输入完全匹配
- 如果分镜数据中包含角色 slot可将其视为优先位置参考用于保持人物落位一致性但不是绝对硬限制
- 如果场景数据中包含 available_slots应将其理解为典型位置参考而不是完整空间边界
- 当镜头描述、原文空间关系、动作过程或场景性质表明人物正在移动、处于过渡区域、入口出口、路径空间、临时空间、空白空间或想象/梦境/回忆/抽象空间时,不要强行把人物锁死在现有 slot 中
- 最终以镜头叙事正确、空间关系自然、人物位置合理为最高原则
【分镜数据】
{storyboard_text_json_input}