Field SOP
Field SOP

LLaDA-Image Local Deploy SOP: Setup, Inference, Production

A five-step SOP for running Ant's open-source 6B image model LLaDA-Image: (1) environment setup with dependencies and mirror-accelerated downloads; (2) choosing among four weight variants (Base 50-step / Turbo 4-step, each in BF16 or FP8, with ModelScope for China); (3) generating the first image with minimal Base and Turbo commands; (4) advanced work - reference-image editing, text rendering, ComfyUI integration, and degradation strategies when VRAM runs short; (5) productionizing with batch queues, concurrency sizing, cost monitoring, result storage and graceful failure modes. Includes 6 pitfalls and a 10-item launch checklist, with every command copied verbatim from the official README; note the repo license is null, so confirm rights before commercial use.

Published September 9, 202611 min read
<!-- llada-image-local-deploy-sop | sop | LLaDA-Image Local Deploy SOP: Setup, Inference, Production -->

On 2026-08-31, Ant Group's InclusionAI open-sourced LLaDA-Image, a 6B-parameter unified image generation and editing model family. It ships weights, inference code, and the training recipe together. The real win for technical teams is control: data stays on premises and the model deploys privately, which closed-source APIs cannot offer in finance and enterprise compliance scenarios.

This is a hands-on SOP: get LLaDA-Image running from scratch and push it to production. Every install command, model name, inference snippet, and parameter is taken verbatim from the official README (verified 2026-09-09); nothing is invented. Read it with the companion LLaDA-Image open-source resource page. Two more reads: ChatGPT Images 2.5 hotspot and open vs closed image model review.

Boundary first: the README gives no VRAM threshold, no minimum hardware spec, and no exact weight disk size. Such numbers are not invented here; they are marked "check the official repo" with a self-check. The license field is null (no LICENSE file), so verify manually before commercial use. This is in the pitfalls and FAQ.

Environment preparation: pin the dependencies

The README pins the verified environment: Python 3.11, PyTorch 2.8, Transformers 4.57.6, Diffusers 0.39.0. These are the tested combination; align to them, do not gamble on other versions.

Clone and isolate:

bash
# Clone the official repository
git clone https://github.com/inclusionAI/LLaDA-Image.git
cd LLaDA-Image

# Create a clean conda environment to avoid polluting the system Python
conda create -n llada-image python=3.11 -y
conda activate llada-image

# Install dependencies; requirements.txt includes diffusers and related components
pip install -r requirements.txt

This gives you the src package (inference code under src, hence from src import LLaDAImagePipeline) and the pinned dependencies.

Domestic download (important): weights are on both HuggingFace and ModelScope under the same four names. ModelScope is the official domestic channel per the README, so prefer it. The README gives no mirror command for HuggingFace; the line below is community practice, NOT verbatim, so check official docs before use.

bash
# Community practice, not from the README: accelerate HuggingFace downloads via a mirror endpoint
# Use whatever mirror is reachable on your network; the line below is an example only
export HF_ENDPOINT=https://hf-mirror.com

Discipline: align versions, isolate the environment, prefer ModelScope domestically. Skip the env variable if HuggingFace is reachable directly.

Acquiring weights: choose among four variants

Four variants from the README Model Zoo table map to your hardware and speed needs:

WeightPositionStepsHuggingFaceModelScope
LLaDA-ImageBase, high-fidelity text-to-image and instruction editing50inclusionAI/LLaDA-Image (BF16), LLaDA-Image-FP8same four names
LLaDA-Image-TurboDistilled, fast generation and editing4inclusionAI/LLaDA-Image-Turbo (BF16), LLaDA-Image-Turbo-FP8same four names

Selection:

  • Quality and editing fidelity: Base (LLaDA-Image), 50 steps.
  • Speed and batch throughput: Turbo (LLaDA-Image-Turbo), 4 steps, Twin-DMD distilled.
  • Tight VRAM: both tiers have FP8 variants (suffix -FP8) that cut memory, but FP8 needs hardware with FP8 inference support; the README lists no specific GPU, so check the official source.
  • Domestic download: all four mirror on ModelScope under the same names; switch the inclusionAI/ prefix, no proxy needed.

Two reminders. The README does NOT state weight disk size, so confirm free disk before downloading and reserve more than intuition suggests. FP8 weights are not "just lower precision"; they depend on the framework and hardware FP8 path, and older cards may fail or fall back silently (pitfall three).

Generating the first image: minimal Base and Turbo

The inference code is built on Diffusers; the core class is LLaDAImagePipeline. Both snippets below are verbatim from the README. Change no parameter; run first, then tune.

Base, 50 steps (high fidelity):

python
import torch

from src import LLaDAImagePipeline

# Load the pipeline. The model is downloaded from Hugging Face on first use.
pipe = LLaDAImagePipeline.from_pretrained(
    "inclusionAI/LLaDA-Image",
    torch_dtype=torch.bfloat16,
    device="cuda",
)

# Generate an image.
prompt = (
    "A cinematic photograph of a red fox standing in fresh snow, "
    "soft winter light, detailed fur, shallow depth of field"
)
negative_prompt = ""

image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    generation_mode="text",
    height=1024,
    width=1024,
    num_inference_steps=50,
    guidance_scale=5.0,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]

image.save("llada-image-base.png")

Turbo, 4 steps (fast output):

python
import torch

from src import LLaDAImagePipeline

# Load the distilled Turbo checkpoint.
pipe = LLaDAImagePipeline.from_pretrained(
    "inclusionAI/LLaDA-Image-Turbo",
    torch_dtype=torch.bfloat16,
    device="cuda",
)

prompt = "A quiet observatory above a sea of clouds at sunrise, golden light, wide-angle photograph"

image = pipe(
    prompt=prompt,
    generation_mode="text",
    height=1024,
    width=1024,
    num_inference_steps=4,
    guidance_scale=1.0,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]

image.save("llada-image-turbo.png")

Size constraints: the README requires height and width divisible by 16 for text-to-image and VQ generation, and by 32 for editing. The commands use 1024x1024 (divisible by both). Check divisibility before changing resolution. The minimum usable resolution is not given; when VRAM is short, try 512x512 or 768x768 first, per the official source.

Turbo tip: set stochastic_sampling to false in scheduler/scheduler_config.json for possibly sharper details. Optional, tuning only.

Advanced: editing, text rendering, ComfyUI, VRAM

Running text-to-image is step one. The "unified" weight covers several tasks:

Reference-image editing (editing mode) needs a reference image and an edit instruction:

python
from diffusers.utils import load_image

reference_image = load_image("/path/to/input.png")
image = pipe(
    prompt="Turn it into a watercolor painting",
    image=reference_image,
    generation_mode="editing",
    height=1024,
    width=1024,
    num_inference_steps=50,  # Use 4 for LLaDA-Image-Turbo.
    guidance_scale=5.0,  # Use 1.0 for few-step inference.
    generator=torch.Generator("cuda").manual_seed(43),
).images[0]

VQ-conditioned generation (vq mode) uses the LLaDA2 model to produce image VQ tokens, embedded by SigVQ before diffusion. Do not pass an input image in VQ mode:

python
image = pipe(
    prompt="A quiet observatory above a sea of clouds at sunrise",
    generation_mode="vq",
    height=1024,
    width=1024,
    num_inference_steps=50,  # Use 4 for LLaDA-Image-Turbo.
    guidance_scale=5.0,  # Use 1.0 for few-step inference.
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]

Chinese and English text rendering: the README says the model supports Chinese-English text rendering (Qwen-Image-Bench 53.53 English, 53.38 Chinese), but gives no verbatim prompt format; the following is engineering experience. Write the text as a standalone phrase and state the image "contains text / a poster title"; do not bury it in a long scene. For Chinese, highlight with quotes or brackets, e.g. "the center shows Chinese text: AI Neican". Treat the effect as empirical.

ComfyUI: since 2026-09-07, community support is on HuggingFace at realrebelai/LLaDa-Image_ComfyUI and realrebelai/LLaDa-Image-Turbo_ComfyUI (Turbo includes an FB8 version). Suited to teams with node workflows; wire weights into nodes, no Python script needed.

Batch script idea: wrap single-image inference in a function, loop a prompt list, use generator=torch.Generator("cuda").manual_seed(i) for distinct seeds, name outputs by hash or index. For a service, keep the pipeline resident and feed a request queue instead of re-running from_pretrained.

VRAM-short strategy: the README offers two paths, FP8 weights (lower memory) or lower resolution (still divisible). How low is not stated; probe with the smallest divisible resolution, then scale up. Do not change parameters beyond torch_dtype just to save memory.

Productionizing: from demo to service

Three layers beyond a local image:

  • Batch queue: a task queue (Redis plus worker) enqueues prompts; inference processes consume them. Load the pipeline once. Turbo's 4 steps suit high concurrency; Base's 50 steps suit quality jobs.
  • Cost monitoring: local "cost" is GPU compute and power. Compute per-image cost as average time times GPU-hour price. Record num_inference_steps, resolution, and elapsed time per image; build a daily cost curve so "free open source" does not hide real spend.
  • Result storage: write images to object storage or local disk; record metadata (prompt, seed, steps, resolution, tier, elapsed time) to a database for retrieval, review, and deduplication. Required for A/B testing and prompt-template accumulation.

Sizing concurrency before you buy hardware

A single pipeline instance is a poor unit of capacity planning, because throughput depends on three variables you control: the checkpoint tier, the step count, and the output resolution. Base at 50 steps and Turbo at 4 steps are not the same product at different speeds — they occupy different positions on the latency-versus-fidelity curve, so treat them as two separate services with separate queues rather than one service with a flag. Keep a warm process alive between jobs: loading a 6B checkpoint costs far more wall-clock time than a Turbo inference run, so a serverless pattern that reloads weights per request will spend most of its life downloading its own model.

Run one worker per accelerator where memory allows, then scale by adding workers rather than by raising per-worker concurrency, since batched diffusion requests compete for the same VRAM and fail late instead of fast. Put a queue depth limit in front of the workers and reject with a retry-after hint instead of accepting unbounded backlog; image jobs are bursty by nature, and a queue that never rejects will simply convert a traffic spike into a latency incident.

Failure modes and graceful degradation

Design for partial failure. When memory pressure appears, degrade in this order: drop resolution to the next supported step, switch the job from Base to Turbo, then defer to a retry queue. Do not silently change the seed, because that breaks reproducibility for anyone comparing prompts across runs. Log the tier and step count actually used, not the tier requested, otherwise your cost data will describe a service you never ran.

Finally, keep an escape hatch. If a self-hosted tier cannot meet a deadline or a quality bar, routing the same job to a hosted API should be a configuration change, not a rewrite. The point of self-hosting is leverage, not lock-in to your own GPU rack, and the ability to fail over to a paid endpoint is what makes an open-weights deployment safe to promise to a customer.

Pitfalls

  1. License not declared: the GitHub license field is null, no LICENSE in root. Before commercial use, redistribution, or shipping a fine-tune, verify the license on the HuggingFace and ModelScope model pages and archive it. See FAQ Q1.
  2. Weight size and disk: the README states no disk footprint, so confirm free disk before downloading; FP8 is smaller but BF16 is not light.
  3. FP8 needs matching hardware: FP8 weights depend on the framework and hardware FP8 path; older cards may fail or fall back, hurting quality and memory. Supported GPUs are not listed; check the official source.
  4. Steps versus quality: Base 50 steps and Turbo 4 steps trade quality for speed, not just time. Use Turbo for drafts and watermarks; Base for retouching and publication. Do not default everything to Turbo.
  5. Chinese text prompt format: the model supports Chinese rendering, but the text must be a standalone phrase; burying it causes dropped or wrong characters. Empirical; see the advanced section.
  6. Domestic download via ModelScope: when HuggingFace is unstable, the four variants mirror on ModelScope under the same names; switch first instead of retrying HuggingFace.

Launch self-check list (10 items)

  1. Python 3.11, PyTorch 2.8, Transformers 4.57.6, Diffusers 0.39.0 aligned.
  2. Isolated conda env llada-image activated; deps from requirements.txt.
  3. Weight tier chosen by quality or speed (Base or Turbo, BF16 or FP8).
  4. Domestic download switched to ModelScope same-name repo, or a reachable mirror set.
  5. Free disk confirmed for the chosen weights (size not in README, self-checked).
  6. Resolution satisfies divisibility (text/VQ by 16, editing by 32).
  7. First image saved (llada-image-base.png or llada-image-turbo.png).
  8. VRAM measured (smallest divisible resolution tried, FP8 evaluated).
  9. License verified and archived on HuggingFace and ModelScope model pages.
  10. Three production layers (queue, cost, storage) in place or scheduled.

FAQ

Q1: What is the license of LLaDA-Image? Can I use it commercially? A1: As of 2026-09-09 the GitHub license field is null and no LICENSE file is in root; the README gives no terms. Before commercial use, redistribution, or shipping a fine-tune, verify the license on the HuggingFace (inclusionAI/LLaDA-Image and others) and ModelScope pages, confirm commercial permission, attribution, and scale thresholds, and archive it. Do not assume open source means free commercial use.

Q2: What GPU is the minimum for local deployment? What is the VRAM threshold? A2: The README gives no minimum spec or VRAM baseline, so this article does not estimate. Run the smallest loop at 1024x1024, Base 50 steps, to measure VRAM, then try Turbo 4 steps and FP8 in turn under real load. FP8 cuts VRAM but needs hardware support; specific GPUs are per the official source.

Q3: How do I choose between Base and Turbo? A3: For quality, editing fidelity, and publication, choose Base (50 steps). For speed, batch drafts, and low cost, choose Turbo (4 steps, Twin-DMD distilled). Both share the inference code; switching only changes the model name in from_pretrained and the steps and guidance parameters.

Q4: How do I use the FP8 version? What hardware does it need? A4: Change the model name in from_pretrained to inclusionAI/LLaDA-Image-FP8 or inclusionAI/LLaDA-Image-Turbo-FP8; other parameters stay. FP8 depends on the hardware and framework FP8 path; older cards may fail or fall back. Supported GPUs are not listed; check the official source. Memory gain is per your measurement.

Q5: How do I write prompts for Chinese text rendering? Is there ComfyUI support? A5: Write the text as a standalone phrase and state the image contains text or a poster title; for Chinese, highlight with quotes or brackets, e.g. "the center shows Chinese text: AI Neican". The format is empirical. ComfyUI support has been on HuggingFace since 2026-09-07 at realrebelai/LLaDa-Image_ComfyUI and realrebelai/LLaDa-Image-Turbo_ComfyUI (Turbo includes FB8).

References

All commands and parameters are taken verbatim from the official README (2026-09-09 snapshot) and were not stress-tested on hardware. VRAM thresholds, minimum hardware, weight disk size, FP8 supported GPUs, and the Chinese text prompt format are marked not collected or from engineering experience; check the official repo and your measurements. The license must be verified manually. Not an official promotion, not investment advice.

This article is AI-assisted and human-edited. Last updated: 2026-09-09

FAQ

What is the license of LLaDA-Image? Can I use it commercially?
As of 2026-09-09 the GitHub license field is null and no LICENSE file is in root; the README gives no terms. Before commercial use, redistribution, or shipping a fine-tune, verify the license on the HuggingFace (inclusionAI/LLaDA-Image and others) and ModelScope pages, confirm commercial permission, attribution, and scale thresholds, and archive it. Do not assume open source means free commercial use.
What GPU is the minimum for local deployment? What is the VRAM threshold?
The README gives no minimum spec or VRAM baseline, so this article does not estimate. Run the smallest loop at 1024x1024, Base 50 steps, to measure VRAM, then try Turbo 4 steps and FP8 in turn under real load. FP8 cuts VRAM but needs hardware support; specific GPUs are per the official source.
How do I choose between Base and Turbo?
For quality, editing fidelity, and publication, choose Base (50 steps). For speed, batch drafts, and low cost, choose Turbo (4 steps, Twin-DMD distilled). Both share the inference code; switching only changes the model name in `from_pretrained` and the steps and guidance parameters.
How do I use the FP8 version? What hardware does it need?
Change the model name in `from_pretrained` to `inclusionAI/LLaDA-Image-FP8` or `inclusionAI/LLaDA-Image-Turbo-FP8`; other parameters stay. FP8 depends on the hardware and framework FP8 path; older cards may fail or fall back. Supported GPUs are not listed; check the official source. Memory gain is per your measurement.
How do I write prompts for Chinese text rendering? Is there ComfyUI support?
Write the text as a standalone phrase and state the image contains text or a poster title; for Chinese, highlight with quotes or brackets, e.g. "the center shows Chinese text: AI Neican". The format is empirical. ComfyUI support has been on HuggingFace since 2026-09-07 at `realrebelai/LLaDa-Image_ComfyUI` and `realrebelai/LLaDa-Image-Turbo_ComfyUI` (Turbo includes FB8).

Related

Field SOP

8GB VRAM, 4K Output: FLUX 3 Klein's Three Pitfalls

A practical path to running FLUX 3 Image Klein on consumer Nvidia cards, with three pitfalls found in the field; every command and filename comes from the official repositories or from third-party recipes that were actually run. The main line is ComfyUI. The repository black-forest-labs/flux-3-image-klein-comfy is gated, marked gated auto in the Hugging Face API, so an anonymous request returns 401 with x-error-code GatedRepo; sign in, accept the terms, then run hf auth login. Next, hf download pulls four files: the distilled int8 transformer at 5,827,874,779 bytes, the Qwen3-VL-4B int8 text encoder at 4,858,559,240 bytes, the w4a8 prompt upsampler at 6,724,090,780 bytes and the FLUX.2 VAE at 336,211,292 bytes. Start with python main.py, open Workflow and then Browse Templates, search FLUX 3 and pick distilled Text to Image with template id image_flux3_klein_distilled_t2i; the template defaults to 1024 by 1024, euler with the simple scheduler, 16 steps and CFG 1, both text-encoder loaders set to type flux3, and the upsampler switch left on. Then the three pitfalls. First, following the card's example and downloading the int8 upsampler at 9,748,113,996 bytes, about 9.08GiB, brings the four files to 19.343GiB, which will not fit a 16GB card, while the ComfyUI v0.41.2 distilled template actually loads the w4a8 file, 2.816GiB smaller. Second, the model card says the editing templates have no upsampler branch and that you should run your own LLM and paste the caption, yet the v0.41.2 editing template does contain an upsampler branch behind a switch that is off by default, a TextGenerate node with the W4A8 loader and an image-editing system prompt, so either route works. Third, running the model without an upsampler gives unstable results in editing and Ref2Image; the card states plainly not to use the model without a prompt upsampler. Memory budget: 11.2GB in BF16, 5.6GB in FP8, INT8 running on 8GB RTX cards, and NVFP4 aimed at data centres. All speed figures are vendor-reported: about 4 seconds per 1MP image on an RTX 5090 and under 9 seconds on an RTX 4070 with the distilled INT8 build, under 0.6 seconds in NVFP4 on a GB300, with a served LoRA adding about 5 percent. Resolution reaches 4K with width and height in multiples of 16, up to 10 reference images are accepted, and official defaults are 16 steps with no guidance for the distilled checkpoint and 50 steps at CFG 3.5 for the base. The Diffusers route is described only as far as is verifiable - it works, and BFL ships reference inference code including a Gradio demo with bounding-box control, with the repository README as the authority; no class names or parameters are invented here. Before commercial use, check the FLUX Kommunity License: free commercial use for individuals and companies under 5 million dollars in annualized revenue, free research and non-commercial use, and self-hosted licensing or the API beyond that, with the LICENSE text governing the details.

Oct 17, 202610 min read
Field SOP

ComfyUI Video Generation SOP: Run LTX-2.5 on 12GB VRAM

A ComfyUI local video generation SOP, using LTX-2.5 to get a 12GB card through the full pipeline. Model files and directories (int8_convrot builds, not BF16): the transformer goes to models/diffusion_models/, gemma4-12b-with-proj to models/text_encoders/, the video and audio VAEs (both bf16) to models/vae/, and the 2x latent upscaler to models/latent_upscale_models/. Pitfalls first: the audio VAE is a separate file - skip it and you render a silent video; the prompt enhancer is an extra ~5GB model adding 1-2 minutes per generation and is off by default; HF gated=auto means you must log in and accept terms to download (even to read the model card). Hardware floor: 12GB VRAM with distilled/int8, CUDA 12.7+, PyTorch ~2.7, Python 3.12+ (innfactory's compilation); on 8GB cards, switch to Wan 2.2 TI2V-5B with offload instead. Three workflow types: two-stage T2V/I2V (generate, then 2x latent upsample refinement), single-stage (fast, for previews), and A2V (audio-driven video). VRAM strategy: quantized/distilled first, ComfyUI native offload, short low-res generation then upscale. Repos: github.com/Lightricks/ComfyUI-LTXVideo, huggingface.co/Lightricks/LTX-2.5.

Oct 10, 20269 min read
Field SOP

Can One GPU Run Matrix-Game 4.0? A Local Deploy SOP

A nine-step SOP for running Matrix-Game 4.0 locally on a single GPU, with every command and flag taken verbatim from the v4 subdirectory README (repository: github.com/SkyworkAI/Matrix-Game, file Matrix-Game-4/README.md). Step 1, align on requirements: model inference needs Linux, an NVIDIA GPU and Python 3.12 together, the reference A100 80 GB deployment uses PyTorch 2.12.0 / CUDA 13.2, and the repo ships a dedicated RTX 5090 runtime that does not auto-detect hardware, so the matching preset must be selected explicitly; the browser demo needs a Linux server that also builds the game and GStreamer pipeline while the Safari/Chrome client needs no GPU; standalone play and recording need macOS or Linux plus CMake, C++20, SDL2 and FFmpeg, with the legacy Windows entry retained but not validated for feature parity; and weights and assets are not shipped in the repo, so budget extra space for the Hugging Face Hub cache. Step 2, install inside the Matrix-Game-4/ subdirectory or everything after is wrong: git clone, cd Matrix-Game/Matrix-Game-4, python3.12 -m venv .venv and source .venv/bin/activate, then pip install torch==2.12.0 torchvision==0.27.0 --index-url https://download.pytorch.org/whl/cu132 as a matched pair, then pip install -e '.[inference,server,download,test]' with all four extras; FlashAttention is optional and only rtx5090-sage needs SageAttention while plain rtx5090 uses PyTorch SDPA. Step 3, downloads come as two manifests, game assets and model weights, pinned to revision 4419accdb7bb7881234c5914de8cd915266e0325 with --scene switchable across castle, racing and all, and one server process supporting only one scene model; the downloader verifies size and SHA256 against the manifests so interrupted runs can simply restart, shared T5/tokenizer and Wan VAE pull automatically from the official base, and matrix-game verify rechecks an installed scene. Step 4, offline rendering proves the model produces output: matrix-game render --scene ancient-egypt --input lowpoly.mp4 --resources resources --preset realtime --prompt-mode fixed --output outputs/egypt, where the input is a low-poly proxy stream rather than real footage and the output is rendered.mp4 plus a configuration report with FPS and frame count preserved; the three presets matter - realtime is for A100, RTX 5090 switches to rtx5090, and quality is slower yet is exactly the default when --preset is omitted. Step 5, play and record locally without loading a model: bash scripts/build_game.sh then bash scripts/play.sh --scene ancient-egypt, giving the two shooter scenes a 48 FPS, 2x simulation-time demo mode with F9 recording and Escape menu, and MATRIX_GAME_DATA_DIR overriding the default data directory; racing uses build_racing.sh with 1x simulation time, and the browser demo does not enable the shooters' 2x mode either, advancing 1/--fps seconds per captured frame. Step 6, the browser demo splits server and client: mediamtx configs/mediamtx.yml in one terminal and CUDA_VISIBLE_DEVICES=0 bash scripts/serve.sh --scene ancient-egypt --resources resources --preset realtime --fps 40 in another, then open http://127.0.0.1:8025/, with --reference-only testing controls, HUD, audio and transport without loading a model; --fps 40 is a capture cadence target, not a throughput or latency guarantee. Step 7, the two RTX 5090 presets: rtx5090 needs no extra installation while rtx5090-sage requires building SageAttention 2.2.0 with the supplied CUDA-graph patch and CUDA 13.2 at git checkout eb615cf6cf4d221338033340ee2de1c37fbdba4a; both reuse the same scene checkpoints and shared resources, converting DiT block linear weights to FP8 at load with activations quantized during inference while embeddings and the output head stay BF16, and startup warms kernels and captures CUDA graphs so the first launch is slower than steady state. Step 8, acceptance in two forms: a keypress producing a picture in the browser demo (officially about under 150 ms, not independently reproduced) or an offline render turning a low-poly video into a finer output, with the three performance accounts written side by side (official 480p 60 FPS, 83 FPS and 18.5 GiB; the project page panel still at 0; and the README's about 38-39 FPS on an A100 at 864 x 480), remembering that model throughput, pipeline throughput, presentation frame rate and end-to-end latency are four different things. Step 9, six pitfalls: one process supports one session and one scene model; it binds to loopback by default and must not be exposed to the internet, since the official statement calls it a trusted single-user demo rather than a public cloud-gaming service; --fps 40 is not a throughput guarantee; Windows is unvalidated; disk must accommodate the Hub cache; and VRAM splits into an A100 80 GB reference tier and an RTX 5090 consumer tier with the 5080 and 5070 still pending.

Oct 16, 202610 min read