Co-authored-by: leo <yixingwang@YIXINGs-MacBook-Pro.local> Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
228 lines
6.8 KiB
YAML
228 lines
6.8 KiB
YAML
# Authored control metadata. These standard JSON Schema fragments describe the
|
|
# available fields; deployment.options selects which ones appear in a recipe.
|
|
# Config values come from the native baseline, not these informational defaults.
|
|
# CUDA declarations follow fastvideo/api/schema.py; MLX declarations follow
|
|
# fastvideo/entrypoints/openai/mlx_server.py.
|
|
# GPU count, frames, dimensions, and FPS have practical, overridable cookbook
|
|
# limits. These UI choices do not describe engine capacity or guarantee GPU fit.
|
|
# Integer transport precision is checked by the serializer, not modeled as range.
|
|
options:
|
|
server.host:
|
|
title: Host
|
|
type: string
|
|
default: 0.0.0.0
|
|
server.port:
|
|
title: Port
|
|
type: integer
|
|
default: 8000
|
|
minimum: 1
|
|
maximum: 65535
|
|
server.output_dir:
|
|
title: Output directory
|
|
type: string
|
|
default: outputs/
|
|
server.served_model_name:
|
|
# CUDA permits null; MLX requires a nonempty string. Each runtime completes it.
|
|
title: Served model name
|
|
|
|
runtimes:
|
|
fastvideo-cuda-rest:
|
|
metadata:
|
|
id: fastvideo-cuda-rest
|
|
label: CUDA REST
|
|
backend: cuda
|
|
interface: rest
|
|
launch_argv: &cuda_launch [fastvideo, serve, --config, config.yaml]
|
|
install_url: https://haoailab.com/FastVideo/getting_started/installation/
|
|
topology_defaults: &cuda_topology
|
|
num_gpus: 1
|
|
tp_size: -1
|
|
sp_size: -1
|
|
hsdp_replicate_dim: 1
|
|
hsdp_shard_dim: -1
|
|
server_defaults: &cuda_server
|
|
host: 0.0.0.0
|
|
port: 8000
|
|
served_model_name: null
|
|
workloads: [t2v, i2v]
|
|
options: &cuda_options
|
|
server.served_model_name:
|
|
anyOf:
|
|
- type: string
|
|
- type: "null"
|
|
default: null
|
|
generator.engine.num_gpus:
|
|
title: GPU count
|
|
type: integer
|
|
default: 1
|
|
minimum: 1
|
|
maximum: 8
|
|
generator.engine.parallelism.tp_size:
|
|
title: Tensor parallelism
|
|
description: Splits supported text encoders across GPUs; this does not shard every model's DiT.
|
|
type: integer
|
|
default: -1
|
|
minimum: -1
|
|
not: {const: 0}
|
|
generator.engine.parallelism.sp_size:
|
|
title: Sequence parallelism
|
|
type: integer
|
|
default: -1
|
|
minimum: -1
|
|
not: {const: 0}
|
|
generator.engine.parallelism.hsdp_replicate_dim:
|
|
title: HSDP replication
|
|
type: integer
|
|
default: 1
|
|
minimum: 1
|
|
generator.engine.parallelism.hsdp_shard_dim:
|
|
title: HSDP sharding
|
|
type: integer
|
|
default: -1
|
|
minimum: -1
|
|
not: {const: 0}
|
|
generator.engine.offload.dit_layerwise:
|
|
title: Offload DiT layers to CPU
|
|
type: boolean
|
|
default: true
|
|
generator.engine.offload.text_encoder:
|
|
title: Offload text encoder to CPU
|
|
type: boolean
|
|
default: true
|
|
generator.engine.offload.vae:
|
|
title: Offload VAE to CPU
|
|
type: boolean
|
|
default: true
|
|
generator.engine.compile.enabled:
|
|
title: Compile transformer
|
|
type: boolean
|
|
default: false
|
|
default_request.sampling.num_frames:
|
|
title: Frames
|
|
type: integer
|
|
default: 125
|
|
minimum: 1
|
|
maximum: 512
|
|
default_request.sampling.height:
|
|
title: Height
|
|
type: integer
|
|
default: 720
|
|
minimum: 1
|
|
maximum: 4096
|
|
default_request.sampling.width:
|
|
title: Width
|
|
type: integer
|
|
default: 1280
|
|
minimum: 1
|
|
maximum: 4096
|
|
default_request.sampling.fps:
|
|
title: FPS
|
|
type: integer
|
|
default: 24
|
|
minimum: 1
|
|
maximum: 120
|
|
default_request.sampling.seed:
|
|
title: Seed
|
|
type: integer
|
|
default: 1024
|
|
|
|
fastvideo-mlx-rest:
|
|
metadata:
|
|
id: fastvideo-mlx-rest
|
|
label: MLX REST
|
|
backend: mlx
|
|
interface: rest
|
|
hardware_label: Apple Silicon
|
|
launch_argv: [python, -m, fastvideo.entrypoints.openai.mlx_server, --config, config.yaml]
|
|
install_url: https://haoailab.com/FastVideo/getting_started/installation/mlx/
|
|
server_defaults:
|
|
host: 127.0.0.1
|
|
port: 8000
|
|
served_model_name: fasth3
|
|
workloads: [t2v]
|
|
options:
|
|
server.host:
|
|
default: 127.0.0.1
|
|
server.port:
|
|
minimum: 1
|
|
maximum: 65535
|
|
server.output_dir:
|
|
default: outputs/mlx_fasth3
|
|
server.served_model_name:
|
|
type: string
|
|
minLength: 1
|
|
default: fasth3
|
|
generator.model_root:
|
|
title: Model directory
|
|
type: string
|
|
generator.mlx_checkpoint:
|
|
title: MLX checkpoint
|
|
type: string
|
|
generator.prompt_cache_dir:
|
|
title: Prompt cache directory
|
|
type: string
|
|
default: outputs/h3_prompt_cache
|
|
generator.vae_dtype:
|
|
title: VAE precision
|
|
type: string
|
|
enum: [fp32, fp16, bf16]
|
|
default: fp32
|
|
generator.vsa_sparsity:
|
|
title: VSA sparsity
|
|
type: number
|
|
minimum: 0.0
|
|
exclusiveMaximum: 1.0
|
|
default: 0.9
|
|
default_request.sampling.num_frames:
|
|
title: Frames
|
|
type: integer
|
|
minimum: 108
|
|
maximum: 362
|
|
description: Configured counts align upward to the next 17n+5 value; explicit HTTP counts must already be aligned.
|
|
default_request.sampling.height:
|
|
title: Height
|
|
type: integer
|
|
minimum: 32
|
|
maximum: 4096
|
|
multipleOf: 32
|
|
description: H3 serving requires multiples of 32; its canvas-area limit also applies.
|
|
default_request.sampling.width:
|
|
title: Width
|
|
type: integer
|
|
minimum: 32
|
|
maximum: 4096
|
|
multipleOf: 32
|
|
description: H3 serving requires multiples of 32; its canvas-area limit also applies.
|
|
default_request.sampling.seed:
|
|
title: Seed
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 4294967295
|
|
|
|
fastvideo-cuda-streaming:
|
|
metadata:
|
|
id: fastvideo-cuda-streaming
|
|
label: CUDA streaming
|
|
backend: cuda
|
|
interface: websocket
|
|
launch_argv: *cuda_launch
|
|
install_url: https://haoailab.com/FastVideo/getting_started/installation/
|
|
topology_defaults: *cuda_topology
|
|
client_guide_url: ../../design/server_contracts/streaming/
|
|
server_defaults: *cuda_server
|
|
workloads: [t2v]
|
|
options:
|
|
<<: *cuda_options
|
|
streaming.session_timeout_seconds:
|
|
title: Client message timeout (seconds)
|
|
type: integer
|
|
minimum: 1
|
|
default: 300
|
|
description: Time allowed for client initialization, an idle client message, or worker acquisition; not an ongoing-generation deadline.
|
|
streaming.generation_segment_cap:
|
|
title: Maximum segments per session
|
|
type: integer
|
|
minimum: 1
|
|
default: 6
|
|
description: Stop the session after this many generated segments.
|