mcpField
A
amazon-nova-reel

amazon-nova-reel

github.com/calesthio创意与媒体219101 次安装15 周前更新
代码仓库

关于 amazon-nova-reel

面向使用 Amazon Bedrock Nova Reel 的视频制作工作流技能,说明异步提交、单镜头和多镜头模式及 S3 交付。它强调模型已进入 Legacy 阶段,并要求在付费运行前核实访问权、生命周期和审批信息。

主要功能

  1. 01规划单镜头与多镜头生成
  2. 02使用异步任务提交和跟踪
  3. 03将视频结果交付至 S3
  4. 04说明输入图像与提示词规范
  5. 05运行前核验生命周期和付费审批

适用场景

  1. 01制作六秒文本或图像转视频片段
  2. 02按镜头列表生成多镜头视频
  3. 03生成概念视频并检查各镜头
  4. 04为现有 Reel 工作负载规划迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/calesthio/generative-media-skills --skill amazon-nova-reel

安装后在 Claude Code 中输入/amazon-nova-reel确认已加载。

附带文件EVAL.md

详细介绍

Amazon Nova Reel 制作

请将 Nova Reel 视为异步制作服务,而非同步片段函数。规划镜头,验证每项输入,获得明确批准,使用幂等令牌提交一次,持久保存调用 ARN,并且只提升通过验证的 S3 构件。

本技能中的所有时效性信息均已于 2026-07-10 根据 AWS 一手来源核实。在付费运行前,重新确认模型访问权限、区域、价格、配额和生命周期。

确认当前约定

不要将 Nova Reel 选作新的默认选项。截至 2026-03-30,AWS 的 Bedrock 生命周期表将已发布的 Reel 两个版本都标记为 Legacy,EOL 日期为 2026-09-30:

模型区域当前用途
amazon.nova-reel-v1:1us-east-1仅适用于已获授权且仍在运行、需要 Reel 1.1 功能并有资金支持的退出计划的工作负载
amazon.nova-reel-v1:0us-east-1、eu-west-1、ap-northeast-1仅适用于现有的六秒旧版工作负载;不要将新工作迁移到此版本

新客户无法使用 Legacy 模型;现有客户在闲置 15 天后可能会失去访问权限;也无法创建新的预置吞吐量。EOL 当天或之后不久,除非客户有私下安排可继续访问,否则调用将失败。迁移不会自动进行。AWS 的表格未列出正在使用的 Nova Reel 后继产品,因此不要自行设想一个:对于必须在 EOL 之后继续运行的工作,除非 AWS 发布了后继产品或客户团队确认存在私下安排,否则请选择其他目前仍在使用的提供商。

如果账户已确认可访问 Reel 1.1,且交付可在 EOL 前完成,Reel 1.1 支持:

  • TEXT_VIDEO:一个六秒的文本生成视频或图像生成视频镜头。
  • MULTI_SHOT_AUTOMATED:将一条长提示词扩展为时长 12–120 秒的视频,时长以六秒为增量;不支持输入图像。
  • MULTI_SHOT_MANUAL:按顺序排列的六秒镜头列表,每个镜头包含提示词和可选的起始图像;时长取决于镜头数量,最长为 120 秒。
  • 英文提示词、1280×720 输出、24 fps、无声视频、异步 StartAsyncInvoke 和 S3 交付。

Nova 生成指南仍介绍 Reel 1.1,但 Bedrock 生命周期页面明确说明,其日期适用于 Bedrock 的使用情况。若页面内容不一致,请以生命周期表为准。每次运行前,请确认账户能够在指定区域调用指定模型,确认任务会在 EOL 前完成,并记录退出方案。

来源:Bedrock 模型生命周期、Nova Reel 生成指南、Bedrock Nova Reel 模型页面、区域兼容性。

精确输入限制
模式文本图像时长
TEXT_VIDEO1–512 个字符零张或一张起始图像恰好 6 秒
MULTI_SHOT_AUTOMATED1–4,000 个字符无12–120 秒,且为 6 的倍数
MULTI_SHOT_MANUAL每个镜头 1–512 个字符每个镜头可选一张图像每个镜头 6 秒,最多 120 秒(因此最多 20 个镜头)

始终发送 fps: 24 和 dimension: "1280x720"。种子为可选项,默认为 42,且必须介于 0–2,147,483,646 之间。参考图像必须为 PNG 或 JPEG 格式、尺寸为 1280×720、色深为 8 位 RGB;PNG 仅在每个像素都完全不透明时才可包含 alpha 通道。AWS 规定,从 S3 提供的图像大小上限为 25 MB。请将图像用作起始关键帧,而不是通用的风格参考库。

AWS 当前的手动模式说明未公布单独的最小镜头数。单个 6 秒镜头请使用 TEXT_VIDEO,真正包含多个镜头的列表请使用手动模式;不要把制作惯例“至少两个”说成服务架构的最低要求。Reel 1.0 是旧版 6 秒模型;较长和多镜头请求需要 Reel 1.1。

来源:视频生成的访问与输入架构。

根据剪辑决策选择模式

  • 自成一体的 6 秒插入镜头、首帧动画或低成本概念探索,请选择 TEXT_VIDEO。
  • 如果整体主题和风格流畅度比精确的镜头边界更重要,请选择 MULTI_SHOT_AUTOMATED。它不是图像条件模式。
  • 如果剪辑有已批准的镜头列表、特定起始帧、产品角度或受控转场,请选择 MULTI_SHOT_MANUAL。
  • 如果镜头需要独立筛选、替换、预算或交付计划,请分别生成 6 秒任务。多镜头请求失败时,不会得到可依赖的部分成片。

Nova Reel 不支持原生音频。请单独规划并制作音乐、对白、环境音和音效。不要承诺口型同步、精确排版、精确的产品几何形状、物理准确性或通过种子确定性复现。AWS 特别提醒,无法保证屏幕文字连贯,也无法保证人物解剖结构正确。

直接描述动作,而非对话

请写视觉描述,而不是聊天指令。先写最重要的主体和动作,再描述环境、光线、画面风格和摄影机运动。每个 6 秒镜头只使用一种主要的摄影机运动。

AWS 文档列出的实用摄影机描述包括 dolly in、dolly out、pan left、pan right、tilt up、tilt down、orbit、tracking shot、zoom in、zoom out 和 static shot。描述随时间可见的变化:“蒸汽向上盘旋,摄影机缓缓推进”,而不是“让它更有电影感”。

对于图像转视频,只描述期望的动作和变化。前后矛盾地重新描述参考图像可能会加剧画面偏移。通过稳定的名词和属性保持身份一致:在每个手动镜头中重复相同的产品名称、材质、颜色、服装、一天中的时段和镜头语言。

制作启发式: 多镜头生成前,先确定连续性指南:

  1. 主体身份:精确且稳定的描述,以及禁止的变化。
  2. 世界规则:地点、天气、时间、调色板、纹理、宽高比和镜头质感。
  3. 动作语法:摄影机高度、速度、方向和转场意图。
  4. 镜头用途:每个 6 秒单元提供哪些新信息。
  5. 连续性锚点:进入/离开方向、画面位置、动作状态和光线方向。

来源:Nova Reel 提示词最佳实践。

构建有效请求

示例:单次图像转视频请求

意图:为已批准的产品展示图添加动画,不引入新的产品设计。

model_input = {
    "taskType": "TEXT_VIDEO",
    "textToVideoParams": {
        "text": (
            "Slow dolly in on the cobalt glass perfume bottle. "
            "A narrow highlight travels across the glass while faint mist drifts behind it. "
            "Dark slate studio, soft rim light, premium restrained motion."
        ),
        "images": [{
            "format": "png",
            "source": {"s3Location": {
                "uri": "s3://approved-inputs/campaign-42/bottle-1280x720.png",
                "bucketOwner": "123456789012"
            }}
        }]
    },
    "videoGenerationConfig": {
        "durationSeconds": 6,
        "fps": 24,
        "dimension": "1280x720",
        "seed": 1845
    }
}

预期结果:一段静音的 6 秒 720p 视频,从提供的画面开始。可能出现的失败包括标签变形、反光变化、雾气过浓或镜头运动强于要求。若产品呈现存在实质性错误,应拒绝,而不是修补。

示例:自动生成 18 秒概念视频
model_input = {
    "taskType": "MULTI_SHOT_AUTOMATED",
    "multiShotAutomatedParams": {
        "text": (
            "Cinematic dawn study of a coastal research station built from weathered steel. "
            "Begin with a wide aerial approach over dark water, transition to scientists crossing "
            "a glass walkway, and finish inside the warm laboratory looking back toward the sea. "
            "Maintain overcast blue exterior light, amber interiors, realistic architecture, slow "
            "controlled camera motion, and a quiet documentary tone throughout."
        )
    },
    "videoGenerationConfig": {
        "durationSeconds": 18,
        "fps": 24,
        "dimension": "1280x720",
        "seed": 9071
    }
}

此模式用于构思,不适用于精确的剪辑时序。请审核交付的每个镜头,以及 output.mp4。

示例:手动制作三镜头故事板
model_input = {
    "taskType": "MULTI_SHOT_MANUAL",
    "multiShotManualParams": {
        "shots": [
            {"text": "Wide static shot of a cobalt glass perfume bottle centered on dark slate, soft white rim light from camera left, faint haze, premium minimal studio."},
            {"text": "Macro tracking shot moving left to right across the same cobalt glass bottle, preserving its rectangular silhouette and silver cap; the camera-left rim light glides over the glass."},
            {"text": "Slow dolly out from the same cobalt glass bottle on dark slate as the haze clears, preserving the silver cap, camera-left rim light, and restrained premium studio palette."}
        ]
    },
    "videoGenerationConfig": {
        "fps": 24,
        "dimension": "1280x720",
        "seed": 1845
    }
}

有意重复关键约束。如果必须精确呈现产品形状,请为每个镜头附上已批准的起始图像,并仍要求人工进行产品质量审核。

每次付费提交前都必须通过审核

AWS 按生成秒数对 Nova Reel 收费。2026-07-10 核实时,Bedrock 定价页面的交互式 Nova Reel 行显示每生成秒 0.08 美元。请将其视为带日期的规划快照,而非执行时固定不变的费率:Legacy/公开扩展访问定价可能会变动,且生命周期表目前未列出 Reel 的公开扩展访问起始日期。请在批准和执行前重新查看官方价格行或获取账户报价。按 时长 × 已核实费率 报价,然后另行计算 S3、KMS、日志记录、检索和传输费用。按该日期的快照,6 秒 = $0.48,18 秒 = $1.44,120 秒 = $9.60。

来源:Amazon Bedrock 定价。

要求审批记录包含:

  • 规范审批信封 SHA-256、精确请求、模型 ID、Region、S3 输入和输出 URI;
  • 生成秒数、已核实的单价、币种、最高授权金额和价格核实时间戳;
  • 生命周期核实时间戳、已确认的 Legacy 访问权限、EOL 日期、计划完成日期和退出方案;
  • 每份参考资料及每位画面中人物的权利/同意状态;
  • 保留分类、审批人身份和过期时间;
  • 明确声明本次运行为付费且异步。

若摘要缺失或不匹配、审批已过期、最高授权金额不是有限值或额度不足、价格/生命周期证据过时、Legacy 访问权限未确认、任务可能跨越 EOL、Region 错误、存储桶/前缀未经批准,或输入字节已更改,则必须拒绝执行。人工回复“看起来不错”不能作为可重复使用的支出授权。

示例:先试运行,再提交

此完整示例会先进行试运行。只有在 EXECUTE=1、已提供当前价格和生命周期证据、明确确认 Legacy 访问权限、审批摘要与这些证据及 AWS 请求完全匹配,且已批准的最高金额足以覆盖预估费用时,才会提交。此示例不会通过调用来验证访问权限;操作员必须先在账户中核实访问权限,再授权执行。

import hashlib
import json
import math
import os
from datetime import date, datetime, timezone
from decimal import Decimal, InvalidOperation
from pathlib import Path
from urllib.parse import urlparse

MODEL_ID = "amazon.nova-reel-v1:1"
REGION = "us-east-1"
OUTPUT_URI = os.environ.get("NOVA_OUTPUT_S3", "")
RATE = Decimal(os.environ.get("NOVA_RATE_USD_PER_SEC", "0.08"))  # Planning fallback only.
PRICE_VERIFIED_AT = os.environ.get("NOVA_PRICE_VERIFIED_AT", "")
LIFECYCLE_VERIFIED_AT = os.environ.get("NOVA_LIFECYCLE_VERIFIED_AT", "")
PRICE_EVIDENCE = os.environ.get("NOVA_PRICE_EVIDENCE", "")
LIFECYCLE_EVIDENCE = os.environ.get("NOVA_LIFECYCLE_EVIDENCE", "")
PLANNED_COMPLETION_DATE = os.environ.get("NOVA_PLANNED_COMPLETION_DATE", "")
EXIT_ROUTE = os.environ.get("NOVA_EXIT_ROUTE", "")
AWS_ACCOUNT_ID = os.environ.get("NOVA_AWS_ACCOUNT_ID", "")
PROJECT_ID = os.environ.get("NOVA_PROJECT_ID", "")
APPROVER_ID = os.environ.get("NOVA_APPROVER_ID", "")
APPROVAL_EXPIRES_AT = os.environ.get("NOVA_APPROVAL_EXPIRES_AT", "")
RETENTION_CLASS = os.environ.get("NOVA_RETENTION_CLASS", "")
EOL = date(2026, 9, 30)

model_input = {
    "taskType": "TEXT_VIDEO",
    "textToVideoParams": {"text": "Static wide shot of wind moving through silver grass at dawn, soft fog, natural documentary light."},
    "videoGenerationConfig": {"durationSeconds": 6, "fps": 24, "dimension": "1280x720", "seed": 42},
}
aws_request = {
    "modelId": MODEL_ID,
    "modelInput": model_input,
    "outputDataConfig": {"s3OutputDataConfig": {"s3Uri": OUTPUT_URI}},
}
approval_envelope = {
    "aws_request": aws_request,
    "unit_rate_usd_per_generated_second": str(RATE),
    "price_verified_at": PRICE_VERIFIED_AT,
    "price_evidence": PRICE_EVIDENCE,
    "lifecycle_verified_at": LIFECYCLE_VERIFIED_AT,
    "lifecycle_evidence": LIFECYCLE_EVIDENCE,
    "model_lifecycle": "Legacy",
    "eol_date": EOL.isoformat(),
    "legacy_access_confirmed": os.environ.get("NOVA_LEGACY_ACCESS_CONFIRMED") == "1",
    "planned_completion_date": PLANNED_COMPLETION_DATE,
    "exit_route": EXIT_ROUTE,
    "aws_account_id": AWS_ACCOUNT_ID,
    "project_id": PROJECT_ID,
    "approver_id": APPROVER_ID,
    "approval_expires_at": APPROVAL_EXPIRES_AT,
    "rights_and_consent_confirmed": os.environ.get("NOVA_RIGHTS_CONFIRMED") == "1",
    "retention_class": RETENTION_CLASS,
}
canonical = json.dumps(approval_envelope, sort_keys=True, separators=(",", ":")).encode()
digest = hashlib.sha256(canonical).hexdigest()
STATE = Path(os.environ.get("NOVA_STATE", f"nova-reel-{digest}.json"))
seconds = Decimal(model_input["videoGenerationConfig"]["durationSeconds"])
estimate = seconds * RATE
print(json.dumps({"approval_sha256": digest, "estimated_usd": str(estimate), "approval_envelope": approval_envelope}, indent=2))

if os.environ.get("EXECUTE") != "1":
    raise SystemExit("DRY RUN: set EXECUTE=1 only after approval")
if not RATE.is_finite() or RATE <= 0:
    raise SystemExit("verified unit rate must be finite and positive")
if REGION != "us-east-1" or MODEL_ID != "amazon.nova-reel-v1:1":
    raise SystemExit("unsupported production route")
if os.environ.get("NOVA_LEGACY_ACCESS_CONFIRMED") != "1":
    raise SystemExit("Legacy model access is not confirmed for this AWS account")
if datetime.now(timezone.utc).date() >= EOL:
    raise SystemExit("Nova Reel EOL reached; use a confirmed successor or private arrangement")
if not PRICE_VERIFIED_AT or not LIFECYCLE_VERIFIED_AT or not PRICE_EVIDENCE or not LIFECYCLE_EVIDENCE:
    raise SystemExit("current price and lifecycle verification timestamps and evidence are required")
try:
    price_checked = datetime.fromisoformat(PRICE_VERIFIED_AT.replace("Z", "+00:00"))
    lifecycle_checked = datetime.fromisoformat(LIFECYCLE_VERIFIED_AT.replace("Z", "+00:00"))
    approval_expires = datetime.fromisoformat(APPROVAL_EXPIRES_AT.replace("Z", "+00:00"))
    planned_completion = date.fromisoformat(PLANNED_COMPLETION_DATE)
except ValueError:
    raise SystemExit("invalid verification, approval-expiry, or completion timestamp")
now = datetime.now(timezone.utc)
for label, checked in (("price", price_checked), ("lifecycle", lifecycle_checked)):
    age_seconds = (now - checked).total_seconds() if checked.tzinfo is not None else -1
    if checked.tzinfo is None or age_seconds < 0 or age_seconds > 86400:
        raise SystemExit(f"{label} verification is future-dated or older than 24 hours")
if approval_expires.tzinfo is None or approval_expires <= now:
    raise SystemExit("approval is expired or lacks a timezone")
if planned_completion < now.date() or planned_completion >= EOL or not EXIT_ROUTE.strip():
    raise SystemExit("completion must be current, precede EOL, and include an exit route")
if len(AWS_ACCOUNT_ID) != 12 or not AWS_ACCOUNT_ID.isdigit() or not PROJECT_ID.strip():
    raise SystemExit("AWS account and project identity are required")
if not APPROVER_ID.strip() or not RETENTION_CLASS.strip():
    raise SystemExit("approver identity and retention class are required")
if os.environ.get("NOVA_RIGHTS_CONFIRMED") != "1":
    raise SystemExit("input, brand, and likeness rights/consent are not confirmed")
parsed = urlparse(OUTPUT_URI)
allowed = os.environ.get("NOVA_ALLOWED_OUTPUT_PREFIX", "")
if parsed.scheme != "s3" or not parsed.netloc or ".." in parsed.path.split("/"):
    raise SystemExit("invalid S3 output URI")
if not allowed or not OUTPUT_URI.startswith(allowed.rstrip("/") + "/"):
    raise SystemExit("S3 output is outside the approved bucket/prefix")
if os.environ.get("APPROVED_SHA256") != digest:
    raise SystemExit("approval digest mismatch")
try:
    maximum = Decimal(os.environ["APPROVED_MAX_USD"])
except (KeyError, InvalidOperation):
    raise SystemExit("missing or invalid approved maximum")
if not math.isfinite(float(maximum)) or maximum < estimate:
    raise SystemExit("approved maximum is non-finite or insufficient")

claim = {"state": "SUBMITTING", "approval_sha256": digest, "approval_envelope": approval_envelope, "clientRequestToken": digest}
fd = os.open(STATE, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o600)
with os.fdopen(fd, "w", encoding="utf-8") as handle:
    json.dump(claim, handle, indent=2)
    handle.flush()
    os.fsync(handle.fileno())

def replace_state(value):
    temporary = STATE.with_name(STATE.name + ".tmp")
    temp_fd = os.open(temporary, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o600)
    with os.fdopen(temp_fd, "w", encoding="utf-8") as handle:
        json.dump(value, handle, indent=2)
        handle.flush()
        os.fsync(handle.fileno())
    os.replace(temporary, STATE)

try:
    import boto3
    client = boto3.client("bedrock-runtime", region_name=REGION)
    response = client.start_async_invoke(
        **aws_request,
        clientRequestToken=digest,
    )
    claim.update(state="SUBMITTED", invocationArn=response["invocationArn"])
except Exception as exc:
    claim.update(state="UNKNOWN", error_type=type(exc).__name__)
    replace_state(claim)
    raise SystemExit("submission outcome unknown; reconcile by exact token before any retry")
replace_state(claim)
print(json.dumps(claim, indent=2))

API 接受 clientRequestToken(1–256 个可打印 ASCII 字符),专用于实现幂等性,并返回 invocationArn。请持久化保存二者。ListAsyncInvokes 会在每个摘要中返回 clientRequestToken,但不提供按令牌筛选的功能:请对原始提交时间窗口进行分页,并精确匹配令牌,然后对找回的 ARN 使用 GetAsyncInvoke。如果无法通过列表确定结果,且 SDK 操作存在可重试的传输歧义,则仅重试逐字节完全相同的逻辑请求,并使用相同令牌;切勿更改负载或生成新令牌。如果服务未返回可恢复的 ARN,请升级处理。不要声称幂等性会取消任务,或阻止使用不同令牌的请求产生费用。

来源:StartAsyncInvoke API、ListAsyncInvokes API、GetAsyncInvoke API。

操作异步作业

  1. 在执行后续工作前,持久化请求、摘要、令牌、调用 ARN、输出前缀、提交时间、审批信息和输入哈希。
  2. 使用有界指数退避和抖动轮询 GetAsyncInvoke。有效状态为 InProgress、Completed 和 Failed。遵守限流,并在声明的截止时间停止;本地超时并不意味着付费作业已停止。
  3. 网络状态不明时,按 ARN 查询,或按时间和准确返回的令牌列出记录。只有请求和幂等令牌完全相同才允许重试;新令牌会带来新的付费创建风险。
  4. 将 Completed 视为“可供检查”,而非“已获准交付”。
  5. 保留提供方写入的证据。AWS 文档说明,文件包括 manifest.json、output.mp4,以及成功的多镜头文件(命名为 shot_0001.mp4 等)。同一指南目前在一处摘要中将状态对象称为 generation-status.json,而在详细结果部分称为 video-generation-status.json。请在准确的调用前缀中发现实际对象,保留其名称和字节,并验证其文档所述的 fullVideo/shots 架构,而不要假定文件名。

AWS 文档记载,生成 6 秒视频通常需要约 90 秒,生成 2 分钟视频通常需要 14–17 分钟。这些是观测结果,并非 SLA。带日期的默认配额表列出 Reel 1.0 的并发请求数为 10,Reel 1.1 为 3;实际账户配额可能不同,AWS 也可能更新默认值。安排批量任务前,请查看 Service Quotas。

来源:视频访问和结果架构、Bedrock 配额。

保护 S3 安全并维护保管链

遵循最小权限原则。AWS 文档说明,生成所需的最低权限为 bedrock:InvokeModel 和按前缀限定的 s3:PutObject;跟踪作业还需要 bedrock:GetAsyncInvoke 和 bedrock:ListAsyncInvokes。读取结果需要按前缀限定的 s3:GetObject,通常还需要通过 s3:prefix 约束的 s3:ListBucket。对于跨账户存储桶,请设置 bucketOwner 和存储桶策略;不要根据存储桶名称推断所有权。对于 SSE-KMS,在需要时将 KMS 密钥 ARN 作为 kmsKeyId 传入,并仅授予必要的密钥使用权限:写入需要 kms:GenerateDataKey;读取可能需要 kms:Decrypt;通常还需要 kms:DescribeKey。密钥策略还必须允许正确的主体,并在支持的情况下限制账户和来源。

使用专用存储桶,或在同一获批的数据边界内使用不可变的逐作业前缀。启用 Block Public Access、适用时启用版本控制、加密和生命周期规则;如有要求,还应启用 CloudTrail 数据事件,并设置明确的存储桶所有者条件。不要在对象键、提示词、标签或日志中放入机密、个人数据或未经批准的资源名称。

提升前:

  • 要求状态为 Completed,且在发现的提供方状态 JSON 中存在成功的 fullVideo 条目(根据当前文档的不一致之处,文件名可能是 video-generation-status.json 或 generation-status.json);
  • 将每个 S3 URI 限定在获批的存储桶和调用前缀内;
  • 通过经过身份验证的 SDK 调用下载,并限制字节数;切勿使用任意返回的 URL;
  • 使用 ffprobe 验证 MP4 魔数和容器格式,解码整个文件,并确认分辨率为 1280×720、帧率为 24 fps、时长符合 6 秒的倍数,且不包含必需的音轨;
  • 检查每个组成镜头的连贯性、安全性、文本、人体结构、品牌/产品准确性、闪烁、扭曲,以及是否出现非预期人物或标记;
  • 计算 SHA-256,保留原始文件以及清单/状态,记录模型、Region、请求、审批和来源哈希,并以原子方式发布,且不得覆盖现有交付物。

如果来源证明很重要,请保留 Nova 原始输出。转码、重新封装、剥离元数据或社交平台处理都可能移除 Content Credentials,即使不可见水印仍然存在。请记录衍生文件的沿袭关系,不要声称未经验证的衍生文件仍保留凭证。

权利、隐私与负责任的发布

仅使用项目获准使用的输入图像、品牌、地点和肖像。对于可识别的个人和数字替身,请取得书面同意。不要暗示模型防护措施可以取代法律或编辑审查。

AWS 表示,Bedrock 不会使用 Nova Reel 的输入或输出训练 Bedrock 模型。Bedrock 当前的滥用检测页面说明,默认情况下不会有运营人员访问,也不会保留数据;页面还列出了特定模型的保留例外,但未提及 Nova Reel。该页面另行说明,疑似 CSAM 的输入或输出可能会被拦截、存储、审查和举报。你在 S3 中的输出以及任何调用日志,都会在你的控制下有意保留数据。若未考虑滥用处理、S3、日志、备份和账户配置,请避免声称数据“绝不会存储”或“零保留”。

Nova Reel 会为生成的视频添加不可见水印,Reel 1.1 还加入了基于 C2PA 的 Content Credentials。请验证原始内容的凭证,并在受众或政策要求时披露 AI 生成信息。AWS 服务条款规定,AI 输出属于你的内容,可能并非独有,且不得移除、遮蔽或更改 Provenance Data。AWS 还说明,对已正式推出的 Nova 输出提供有条件的 IP 赔偿;资格和例外属于合同问题,这并不构成独特性、在所有司法管辖区内的所有权或使用侵权输入的许可保证。

来源:Nova Reel AI Service Card、Bedrock abuse detection、S3 access、AWS Service Terms、AWS Responsible AI Policy、AWS Acceptable Use Policy。

最终发布检查清单

  • 重新核实当前模型 ID、生命周期、区域、账户访问权限、价格、配额、是否计划在 EOL 前完成,以及退出方案。
  • 模式和架构与创意简报一致;图像通过格式、大小、透明度、权利和哈希检查。
  • 提示词和故事板保持主体、世界、光线、动作和屏幕方向的连贯性。
  • 已获得精确摘要和费用审批;一次具备幂等性的创建尝试已持久记录。
  • 已保留异步状态以及提供商的 S3 清单和状态。
  • 原始内容和每个镜头均通过技术、安全、连贯性、品牌、肖像和编辑质量检查。
  • 已记录成品哈希、来源信息、披露、衍生内容溯源、保留期限和删除责任人。
  • 音频和最终润色作为单独且经批准的制作阶段处理。

评论

支持 Markdown