Production-Scale Generative AI Infrastructure for Game Art Creation

playtika · Media & Entertainment · 2024 · source Agentic: no · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Production generative image infrastructure for game art and marketing assets

Playtika needed an internal generative art platform that could fine-tune studio-specific diffusion models, serve multiple image-generation actions with low latency and stable GPU utilization, and reduce art production time without requiring R&D involvement for every deployment.

Constraints:

Architecture

Playtika built a use-case factory for generative art. Internal users fine-tune and evaluate models through a training UI, tag best outputs with studio clients, register chosen configurations, and deploy models for production image generation. The platform evolved from DreamBooth-per-use-case deployments on Stable Diffusion 1.5 to SDXL plus LoRA adapters, with a shared base model, lightweight per-use-case add-ons, deferred model loading from a model registry, OneFlow acceleration, FP16 memory reductions, DCGM monitoring, and MIG GPU partitioning.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  studio-art-request["Studio art request"] --> training-ui["Training UI"]
  training-ui["Training UI"] --> fine-tuning-pipeline["Fine-tuning pipeline"]
  training-ui["Training UI"] --> studio-client-review["Studio client review"]
  fine-tuning-pipeline["Fine-tuning pipeline"] --> sdxl-base-model["SDXL base model"]
  fine-tuning-pipeline["Fine-tuning pipeline"] --> lora-adapters["LoRA adapters"]
  fine-tuning-pipeline["Fine-tuning pipeline"] --> model-registry["Model registry"]
  studio-client-review["Studio client review"] --> model-registry["Model registry"]
  sdxl-base-model["SDXL base model"] --> inference-service["Inference service"]
  lora-adapters["LoRA adapters"] --> inference-service["Inference service"]
  model-registry["Model registry"] --> inference-service["Inference service"]
  inference-service["Inference service"] --> oneflow-acceleration["OneFlow acceleration"]
  inference-service["Inference service"] --> mig-gpu-partition["MIG GPU partition"]
  oneflow-acceleration["OneFlow acceleration"] --> dcgm-monitoring["DCGM monitoring"]
  mig-gpu-partition["MIG GPU partition"] --> dcgm-monitoring["DCGM monitoring"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Studio art request A game studio's desired image use case, action, style, and generation configuration. Training UI
Training UI Internal interface for caption generation, fine-tuning parameters, inference testing, and output review. Studio art request, Fine-tuning pipeline, Studio client review
Fine-tuning pipeline Trains DreamBooth or LoRA models for specific studios, categories, and asset types. Training UI, SDXL base model, LoRA adapters, Model registry
Studio client review Human selection process where clients tag the most accurate and relevant generated outputs. Training UI, Model registry
SDXL base model Shared large diffusion base model used for text-to-image, image-to-image, and inpainting actions. Fine-tuning pipeline, LoRA adapters, Inference service
LoRA adapters Compact per-use-case plugins loaded at inference time to specialize the base model. Fine-tuning pipeline, SDXL base model, Model registry, Inference service
Model registry Stores base models, LoRA adapters, and optimal configurations for production loading. Fine-tuning pipeline, Studio client review, LoRA adapters, Inference service
Inference service Serves generation requests, loads model/adapters, and performs action-specific image generation. SDXL base model, LoRA adapters, Model registry, OneFlow acceleration, MIG GPU partition
OneFlow acceleration Acceleration framework selected to reduce diffusion inference latency while supporting LoRA and dynamic sizes. Inference service, DCGM monitoring
MIG GPU partition A100 GPU partitioning setup used to serve more users with controlled resource slices. Inference service, DCGM monitoring
DCGM monitoring GPU observability layer tracking utilization and Tensor Core usage more accurately than nvidia-smi. OneFlow acceleration, MIG GPU partition

Data flow

A studio defines an art use case such as character, background, or element generation. The training UI generates captions, lets users tune parameters, runs fine-tuning, and supports inference testing. Studio clients tag preferred outputs, and the best model configuration is registered. At inference time, a service loads the SDXL base model and requested LoRA adapter from the model registry, performs text-to-image, image-to-image, or inpainting, and runs on optimized GPU partitions monitored through DCGM metrics.

3 supporting quotes
“The UI featured automatic caption generation to reduce manual effort, a fine-tune section allowing users to adjust parameters”summary, stated
“The best model configuration—the one consistently producing the highest-quality images—would then be registered in the model registry”summary, stated
“At request time, clients supply a model ID along with generation configuration, which is loaded at inference time and unloaded afterward.”summary, stated

Why this architecture

Playtika's architecture follows the tension between creative quality and serving efficiency. DreamBooth won initial quality tests but multiplied heavy deployments across studios, categories, and actions. SDXL plus LoRA later met the quality bar while shrinking per-use-case artifacts and allowing adapter switching. GPU observability, acceleration, FP16, and MIG then addressed the remaining serving bottlenecks.

3 supporting quotes
“In terms of quality, DreamBooth emerged as the superior choice, so quality concerns drove them to select it as their initial fine-tuning method.”summary, stated
“The combination of SDXL with LoRA proved successful in both quality and engineering dimensions”summary, stated
“To tackle this challenge, they pursued three strategies: reducing memory footprint to deploy more models per GPU, accelerating inference to enhance processing speed”summary, stated

Models used: Stable Diffusion 1.5 · SDXL 1.0 · DreamBooth · Textual Inversion · LoRA · SDXL Turbo · LoRA LCM · OneFlow · TensorRT · AITemplate

Scale

Alternatives considered (roads not taken)

Generalized models across many studio use cases

Rejected because: Specific models per use case produced significantly better quality.

“they found that generating a specific model per use case yielded significantly better results than attempting to create more generalized models.”summary, stated

DreamBooth-per-use-case production deployments

Rejected because: It created many gigabyte-scale deployments across studios, categories, and actions with poor GPU utilization.

“With multiple studios, multiple categories per studio (character, background, elements), and multiple actions to support (text-to-image, image-to-image, inpainting), the number of required deployments multiplied dramatically”summary, stated

Bake models into Docker images

Rejected because: Generative model images already require gigabytes of dependencies, and baking models would further slow scaling and deployment.

“Rather than "baking" models into images, they implemented deferred model loading, loading base models at startup.”summary, stated

Use nvidia-smi as the main utilization signal

Rejected because: It reported busy-kernel time rather than actual computational utilization.

“They discovered that nvidia-smi indicates the percentage of time when one or more kernels were actively executing on the GPU, not necessarily reflecting true computational utilization.”summary, stated

Use NVIDIA MPS for GPU sharing

Rejected because: The MPS server crashed frequently and caused quality-of-service degradation.

“the MPS server responsible for receiving and combining requests frequently crashed, causing significant quality of service degradation.”summary, stated

Patterns

fine-tuning-adaptation (model-adaptation)

Playtika fine-tunes diffusion models and later LoRA adapters for studio-specific art styles and use cases.

“The solution involved creating a comprehensive infrastructure for fine-tuning and deploying diffusion models (Stable Diffusion 1.5, then SDXL) at scale, supporting text-to-image, image-to-image, and inpainting capabilities.”summary, stated

model-routing (architecture)

The system selects action-specific services and request-time LoRA adapters rather than deploying a separate full model for every combination.

“clients supply a model ID along with generation configuration, which is loaded at inference time and unloaded afterward.”summary, stated

cost-aware-routing (operations)

GPU partitioning, FP16, LoRA switching, and lean image construction are used to reduce resource waste and serve more users.

“This reduced the total number of large deployments and improved resource utilization, though challenges remained around maximizing GPU efficiency.”summary, stated

observability-tracing (operations)

The team moved from nvidia-smi to DCGM metrics to understand real GPU and Tensor Core utilization.

“they implemented dcgm-exporter to access DCGM-based metrics for comprehensive GPU performance views.”summary, stated

human-in-the-loop-gate (quality)

Studio clients tag the most accurate and relevant outputs before configurations are registered for production.

“The selection process involved collaboration with studio clients who would tag the most accurate and relevant outputs during inference.”summary, stated

Tradeoffs

Start with DreamBooth for quality

Chose DreamBooth full model fine-tuning over LoRA or Textual Inversion in the initial Stable Diffusion 1.5 era.

Rationale: DreamBooth produced the best image quality even though it created scaling pain.

“When Stable Diffusion 1.5 launched, Playtika evaluated three fine-tuning methods: DreamBooth, Textual Inversion (TI), and LoRA”summary, stated
“DreamBooth emerged as the superior choice, so quality concerns drove them to select it as their initial fine-tuning method.”summary, stated

Switch to SDXL plus LoRA

Chose One base model with many compact adapters over Many full DreamBooth deployments.

Rationale: The newer base model made LoRA good enough while dramatically improving model management and service utilization.

“The LoRA method enabled them to persist only one large base model in the model registry, with dozens of smaller addons/plugins where each represents a use case.”summary, stated

Select OneFlow for acceleration

Chose OneFlow over TensorRT, AITemplate, LoRA LCM, or SDXL Turbo.

Rationale: OneFlow met support requirements while preserving quality better than other acceleration options they evaluated.

“They selected OneFlow over TensorRT (NVIDIA) and AITemplate (Meta) for its exceptional developer experience and state-of-the-art speed enhancements”summary, stated

Use MIG despite small latency cost

Chose A100 MIG partitions over Unpartitioned or MPS-managed GPU sharing.

Rationale: MIG served more users reliably, while MPS crashed and unpartitioned GPUs left concurrency/utilization headroom unused.

“This setup allowed serving more users with a minor trade-off of a few additional seconds in latency.”summary, stated

Gotchas (what bit them)

Quality-first fine-tuning can create deployment explosion.

Root cause: DreamBooth created full model weights for each studio/category/action combination.

Resolution: Move to SDXL plus LoRA once LoRA met the production quality bar.

“This decision, while improving quality, introduced scaling challenges that would influence their architectural evolution.”summary, stated

Large generative-AI containers slow scale-up.

Root cause: GPU serving requires NVIDIA dependencies and large base images before model weights are even considered.

Resolution: Use a lean CUDA runtime image, deferred model loading, and a mounted model registry.

“In contrast, generative AI models require several gigabytes just for the base image and dependencies. An additional challenge emerged from data scientists' preference for NVIDIA's optimized PyTorch image, which, while well-suited for their needs, proved extremely large.”summary, stated

GPU utilization dashboards can lie.

Root cause: nvidia-smi reports busy kernel time, not actual computational use or Tensor Core saturation.

Resolution: Use DCGM metrics through dcgm-exporter and optimize against Tensor Core/utilization gaps.

“nvidia-smi provides misleading utilization metrics and the subsequent adoption of DCGM-based monitoring highlights the importance of proper observability”summary, stated

MPS GPU sharing harmed quality of service.

Root cause: The MPS server frequently crashed and the root cause was not identified.

Resolution: Discontinue MPS and use MIG partitioning, accepting small latency tradeoffs.

“Unable to identify the root cause of these failures, they discontinued MPS usage.”summary, stated

Evaluation

Playtika evaluates generated art through studio-client tagging of outputs, load testing for throughput and latency, DCGM/Tensor Core monitoring for GPU efficiency, and quality checks when considering acceleration or fine-tuning changes.

Metrics: studio output quality tags · throughput · latency · GPU utilization · Tensor Core utilization · batch size 4 generation · latency reduction · quality-of-service degradation

3 supporting quotes
“The selection process involved collaboration with studio clients who would tag the most accurate and relevant outputs during inference.”summary, stated
“After establishing their LoRA-based architecture, extensive load testing was conducted to establish baselines for throughput and latency. In their use case, batch size was fixed at 4 (each "Generate" click produces 4 images).”summary, stated
“Both showed improvement, but metrics indicated GPUs could handle additional concurrent requests on the same device. However, while GPUs are designed for high parallelism within a single request, managing multiple requests concurrently on a single GPU requires careful handling.”summary, stated

Outcomes

The case states a 50% art-production-time goal rather than a proven outcome. Concrete technical scale anchors include batch size 4, 40% latency reduction, 100% vs 45.5% GPU/Tensor Core utilization mismatch, and MIG 3g.20gb/4g.20gb A100 partitioning.

3 supporting quotes
“The architectural evolution from massive proliferation of deployments to a more centralized approach with LoRA switching represents sound engineering”summary, stated
“The emphasis on achieving 40% latency reduction through OneFlow is notable, but the case study would benefit from more comprehensive performance baselines and comparisons.”summary, stated
“The claimed 50% reduction in art production time is stated as a goal rather than a demonstrated result in the case study.”summary, stated