{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-showlab--motiondirector","slug":"showlab--motiondirector","name":"MotionDirector","type":"repo","url":"https://showlab.github.io/MotionDirector/","page_url":"https://unfragile.ai/showlab--motiondirector","categories":["video-generation"],"tags":["diffusion-models","motion-customization","text-to-motion","text-to-video","text-to-video-generation","video-generation"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-showlab--motiondirector__cap_0","uri":"capability://image.visual.lora.based.motion.concept.learning.from.video.reference.sets","name":"lora-based motion concept learning from video reference sets","description":"Adapts pre-trained text-to-video diffusion models using Low-Rank Adaptation (LoRA) applied selectively to temporal layers to extract and encode specific motion patterns from reference video clips. The system decomposes the adaptation into spatial (appearance) and temporal (motion) paths, allowing independent training of motion concepts without full model fine-tuning. This approach reduces trainable parameters by orders of magnitude while preserving the base model's text-to-video generation capabilities.","intents":["Train a custom motion style from a collection of sports videos to generate new videos with that motion","Learn camera movement techniques from a single cinematic reference video","Encode motion patterns without modifying the underlying text-to-video model weights"],"best_for":["researchers and practitioners building custom video generation pipelines","content creators wanting to replicate specific motion styles across diverse subjects","teams with limited GPU memory seeking parameter-efficient fine-tuning"],"limitations":["Requires 3-10 reference videos per motion concept for effective learning; single-video training may overfit","LoRA rank and alpha hyperparameters must be tuned per motion concept; no automatic selection","Training time varies 30-120 minutes depending on video length and GPU (A100 baseline)","Motion concepts learned are tightly coupled to the base model architecture; LoRA weights not transferable across different T2V models"],"requires":["Python 3.8+","PyTorch 1.13+ with CUDA 11.8+","Pre-trained text-to-video model (ZeroScope or ModelScopeT2V)","GPU with minimum 24GB VRAM (A100 recommended for <2hr training)","Reference video files in MP4 or MOV format, 2-10 seconds duration"],"input_types":["video files (MP4, MOV)","YAML configuration files","image files (for spatial path training)"],"output_types":["LoRA weight files (.safetensors or .pt format)","training logs and loss metrics"],"categories":["image-visual","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_1","uri":"capability://image.visual.multi.video.motion.concept.consolidation","name":"multi-video motion concept consolidation","description":"Trains a single LoRA adapter from multiple reference videos depicting the same motion concept (e.g., different subjects performing the same sport), extracting the motion pattern that generalizes across subjects and appearances. The training process uses a shared temporal LoRA module that learns motion invariant to spatial variations, enabling the learned motion to transfer to new subjects and scenes specified via text prompts.","intents":["Learn a golf swing motion from 5 videos of different golfers and apply it to new subjects","Extract a horse-riding motion pattern from multiple riders and apply to generated characters","Consolidate motion semantics across videos with different backgrounds and actors"],"best_for":["motion capture and animation studios seeking to generalize motion patterns","game developers building motion libraries for character animation","video production teams creating consistent motion styles across multiple scenes"],"limitations":["Requires careful video alignment and preprocessing; misaligned reference videos degrade motion quality","Motion generalization is limited to semantically similar subjects; extreme appearance variations (human to animal) may fail","Batch processing multiple videos increases training time linearly with video count","No automatic motion segmentation; user must provide videos of the same motion concept"],"requires":["3-10 reference videos of the same motion concept","Videos should be 2-10 seconds, 24-30 fps, 512x512 or higher resolution","YAML config specifying video paths and motion concept label","GPU with 24GB+ VRAM for batch processing"],"input_types":["multiple video files (MP4, MOV)","motion concept label (text string)","YAML configuration with video paths"],"output_types":["consolidated LoRA weights","training metrics showing motion consistency across videos"],"categories":["image-visual","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_10","uri":"capability://automation.workflow.batch.video.generation.with.parameter.sweeping","name":"batch video generation with parameter sweeping","description":"Generates multiple videos in sequence with different text prompts, LoRA scales, or random seeds, enabling systematic exploration of the motion-text-seed space. The system manages GPU memory and inference scheduling to process batches efficiently, with configurable output organization (one video per prompt, per scale, per seed combination) and optional result aggregation for comparison.","intents":["Generate 10 videos of the same motion with different text prompts to find best descriptions","Create videos with varying LoRA scales (0.3, 0.6, 0.9) to compare motion intensity","Generate multiple samples per prompt with different seeds for diversity"],"best_for":["content creators exploring motion-prompt combinations","researchers conducting systematic studies of motion effects","practitioners optimizing prompts and parameters for production use"],"limitations":["Batch generation is sequential; no parallelization across GPUs","Output organization can become complex with many parameter combinations; manual file management required","No built-in result comparison or quality metrics; users must manually review videos","Disk space requirements scale linearly with batch size (each video ~50-100MB)"],"requires":["YAML config with batch parameters (prompts, scales, seeds)","Trained LoRA weights","GPU with 24GB+ VRAM","Sufficient disk space (100GB+ for large batches)"],"input_types":["batch configuration (YAML with lists of prompts, scales, seeds)","LoRA weight files","inference config"],"output_types":["multiple video files (MP4, organized by parameter combination)","batch metadata (JSON with generation parameters per video)"],"categories":["automation-workflow","image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_11","uri":"capability://tool.use.integration.foundation.model.compatibility.and.abstraction","name":"foundation model compatibility and abstraction","description":"Provides a unified interface for training and inference across different pre-trained text-to-video models (ZeroScope, ModelScopeT2V) by abstracting model-specific details (architecture, tokenizer, latent dimensions) behind a common API. The system automatically detects the base model type from configuration and loads appropriate model weights, adapters, and preprocessing pipelines, enabling seamless switching between models without code changes.","intents":["Train motion LoRA on ZeroScope and switch to ModelScopeT2V without code changes","Use the same training script with different foundation models by changing config","Experiment with multiple base models to find best motion learning performance"],"best_for":["researchers comparing motion learning across different T2V models","practitioners evaluating which base model works best for their use case","teams maintaining training pipelines that must support multiple models"],"limitations":["LoRA weights trained on one model are not compatible with other models; retraining required for model switching","Model-specific preprocessing (tokenization, latent encoding) adds complexity; bugs in abstraction layer affect all models","Not all T2V models are supported; adding new models requires code changes to model loading logic","Model-specific hyperparameters (learning rate, LoRA rank) may differ; no automatic tuning across models"],"requires":["Pre-trained model weights (ZeroScope or ModelScopeT2V) downloaded and cached","YAML config specifying base_model parameter","Model-specific dependencies (e.g., ZeroScope requires specific tokenizer)"],"input_types":["YAML config with base_model field","training or inference data"],"output_types":["trained LoRA weights (model-specific)","generated videos"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_12","uri":"capability://automation.workflow.reproducible.training.with.seed.management.and.logging","name":"reproducible training with seed management and logging","description":"Ensures reproducible training by managing random seeds across PyTorch, NumPy, and CUDA, logging all hyperparameters and training metrics to files, and saving model checkpoints at regular intervals. The system records training loss, validation metrics, and LoRA weight statistics to enable analysis of training dynamics and recovery from interrupted training sessions.","intents":["Reproduce training results by setting a fixed seed and rerunning with same config","Monitor training progress through loss curves and validation metrics","Resume interrupted training from the latest checkpoint"],"best_for":["researchers publishing results with reproducible training setups","teams running long training jobs that may be interrupted","practitioners debugging training issues through detailed logs"],"limitations":["CUDA non-determinism can still occur with certain operations; full reproducibility not guaranteed across hardware","Checkpoint files are large (100MB-1GB per checkpoint); disk space management required for long training","Log files can become very large (100MB+) for long training runs; no automatic log rotation or compression","Resuming from checkpoint requires careful state management; bugs in checkpoint loading can cause training divergence"],"requires":["YAML config with seed parameter","Sufficient disk space for checkpoints and logs (10GB+ for long training)","PyTorch with deterministic mode enabled"],"input_types":["YAML config with seed and logging parameters","training dataset"],"output_types":["training logs (TXT or JSON)","model checkpoints (.pt or .safetensors files)","loss curves and metrics"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_2","uri":"capability://image.visual.single.video.cinematic.motion.extraction","name":"single-video cinematic motion extraction","description":"Learns camera movement and cinematic techniques (dolly zoom, orbit shots, follow shots) from a single reference video by training LoRA on temporal layers to capture the specific camera trajectory and framing dynamics. The system preserves the spatial content of the reference while extracting pure motion information, enabling the learned camera movement to be applied to new scenes and subjects via text prompts.","intents":["Extract a dolly zoom camera movement from a reference video and apply it to generated scenes","Learn an orbit shot technique and apply it to new 3D objects or characters","Capture a follow-shot camera pattern and use it with different subjects"],"best_for":["cinematographers and directors building motion libraries for specific camera techniques","visual effects studios automating camera movement generation","indie filmmakers creating professional-looking camera work without manual animation"],"limitations":["Single-video training is prone to overfitting; learned motion may be too specific to the reference scene","Camera motion extraction assumes relatively static scene content; highly dynamic scenes confound motion and content","Extracted motion may not transfer well to scenes with different depth/scale characteristics","Requires 2-10 second high-quality reference video; low-resolution or shaky footage degrades results"],"requires":["Single reference video (2-10 seconds, 24-30 fps, 512x512+ resolution)","YAML config with video path and motion type label","GPU with 24GB+ VRAM","Optional: depth map or scene geometry for improved motion transfer"],"input_types":["single video file (MP4, MOV)","motion type label (e.g., 'dolly_zoom', 'orbit_shot')","YAML configuration"],"output_types":["LoRA weights encoding camera motion","training loss curves"],"categories":["image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_3","uri":"capability://image.visual.image.to.video.animation.with.learned.motion","name":"image-to-video animation with learned motion","description":"Animates static images by combining a learned motion LoRA with a spatial appearance LoRA, enabling the system to apply motion patterns to new subjects while preserving their appearance. The inference pipeline injects both LoRA adapters into the diffusion model, with the spatial path controlling appearance and temporal path controlling motion dynamics, allowing seamless composition of appearance and motion from different sources.","intents":["Animate a static car image with a learned 'car turning' motion pattern","Bring a portrait image to life with a learned head-turning motion","Apply a learned sports motion to a character image"],"best_for":["content creators animating product images or portraits","game developers creating character animation from static assets","social media creators generating engaging animated content from photos"],"limitations":["Requires both spatial and temporal LoRA adapters; cannot work with motion-only LoRA on arbitrary images","Image quality and resolution directly impact animation quality; low-res or heavily compressed images produce artifacts","Motion transfer may fail if image subject differs significantly from training data (e.g., applying human motion to animal image)","Generated video length limited to 16 frames (0.5 seconds at 30fps) due to diffusion model constraints"],"requires":["Static image file (PNG, JPG, 512x512+ resolution)","Trained spatial LoRA weights (appearance)","Trained temporal LoRA weights (motion)","Text prompt describing desired animation","GPU with 24GB+ VRAM"],"input_types":["image file (PNG, JPG)","text prompt","LoRA weight files (.safetensors or .pt)","inference configuration (YAML)"],"output_types":["video file (MP4, 16 frames, 512x512 resolution)","intermediate latent representations"],"categories":["image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_4","uri":"capability://image.visual.customized.appearance.and.motion.composition","name":"customized appearance and motion composition","description":"Combines multiple spatial LoRAs (for different character appearances) with a single temporal LoRA (for motion) to generate videos of specific characters performing learned motions. The system allows mixing appearance from one training set with motion from another, enabling fine-grained control over both subject identity and action dynamics through separate text prompts and LoRA weight combinations.","intents":["Generate a video of character A performing motion B (learned from character C)","Create videos of multiple characters performing the same learned sports motion","Compose appearance from one training set with motion from another for novel combinations"],"best_for":["animation studios creating character-motion combinations","game developers generating diverse character animations from limited motion capture","content creators producing personalized videos with specific characters and actions"],"limitations":["Requires training separate spatial LoRAs for each character appearance; scales linearly with character count","Motion-appearance mismatch can produce unnatural results (e.g., human motion applied to non-humanoid character)","LoRA composition is additive in weight space; no learned interaction between spatial and temporal adapters","Text prompt must accurately describe both appearance and motion for coherent generation"],"requires":["Multiple trained spatial LoRA weights (one per character/appearance)","Single trained temporal LoRA weight (motion)","Text prompts for both appearance and motion","YAML configuration specifying LoRA paths and weights","GPU with 24GB+ VRAM"],"input_types":["multiple spatial LoRA files","temporal LoRA file","text prompts (appearance + motion)","inference configuration (YAML)"],"output_types":["video file (MP4, 16 frames, 512x512 resolution)","LoRA weight composition metadata"],"categories":["image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_5","uri":"capability://data.processing.analysis.flexible.dataset.management.for.heterogeneous.training.sources","name":"flexible dataset management for heterogeneous training sources","description":"Provides unified dataset interfaces (MultiVideoDataset, SingleVideoDataset, ImageDataset) that handle diverse input types (multiple videos, single video, images) with automatic preprocessing including frame extraction, resizing, normalization, and temporal sampling. The system abstracts dataset heterogeneity through a common DataLoader interface, enabling seamless switching between training modes (multi-video motion, single-video cinematic, image animation) without code changes.","intents":["Load and preprocess 10 sports videos of different lengths and resolutions for motion training","Extract frames from a single cinematic video and prepare them for temporal LoRA training","Combine image and video data for appearance-motion training in a single pipeline"],"best_for":["researchers experimenting with different dataset compositions","practitioners building production training pipelines with heterogeneous data sources","teams managing datasets with varying quality and format standards"],"limitations":["Requires manual video preprocessing (frame extraction, resizing) before loading; no built-in video codec handling","Frame sampling strategy is fixed (uniform or random); no adaptive sampling for variable-length videos","No automatic data validation; corrupted frames or misaligned videos silently degrade training","Memory overhead for loading full videos into RAM; large video collections require careful batching"],"requires":["Video files in MP4 or MOV format, or pre-extracted frame sequences","YAML configuration specifying dataset type and paths","Python 3.8+ with torchvision for video I/O","Sufficient disk space for frame caching (typically 2-5GB per video)"],"input_types":["video files (MP4, MOV)","image files (PNG, JPG)","frame sequences (directories of images)","YAML dataset configuration"],"output_types":["PyTorch DataLoader objects","normalized frame tensors (B, C, T, H, W format)","metadata (video IDs, frame counts)"],"categories":["data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_6","uri":"capability://automation.workflow.yaml.based.training.and.inference.configuration.management","name":"yaml-based training and inference configuration management","description":"Centralizes all training and inference hyperparameters (LoRA rank, learning rate, batch size, video paths, motion labels) in YAML configuration files, enabling reproducible experiments and easy parameter sweeping without code modification. The system parses YAML configs into Python objects that are passed through the training and inference pipelines, supporting environment variable substitution and config inheritance for managing complex experimental setups.","intents":["Configure and run multiple training experiments with different LoRA ranks and learning rates","Reproduce published results by sharing YAML configs without code changes","Manage dataset paths and hyperparameters for different motion concepts in a single config file"],"best_for":["researchers running systematic hyperparameter studies","teams collaborating on training experiments with shared configs","practitioners documenting training setups for reproducibility"],"limitations":["YAML schema is not validated; typos in config keys silently use defaults, potentially causing unexpected behavior","No built-in config versioning or diff tools; difficult to track changes across experiment iterations","Complex nested configs become hard to read; no schema documentation or IDE autocomplete support","Environment variable substitution is basic; no conditional logic or computed values in configs"],"requires":["YAML parser (PyYAML library)","Template YAML files (provided in configs/ directory)","Text editor for config modification"],"input_types":["YAML files (.yaml or .yml)","environment variables (for path substitution)"],"output_types":["parsed configuration objects (Python dicts or dataclasses)","validated hyperparameter sets"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_7","uri":"capability://automation.workflow.memory.optimized.training.for.resource.constrained.gpus","name":"memory-optimized training for resource-constrained gpus","description":"Implements gradient checkpointing, mixed-precision training (FP16), and selective LoRA freezing to reduce GPU memory footprint during training, enabling MotionDirector to run on GPUs with 24GB VRAM instead of requiring 40GB+. The system automatically applies memory optimizations based on available GPU memory, with configurable trade-offs between memory usage and training speed (e.g., gradient checkpointing adds ~20% training time overhead).","intents":["Train motion LoRA on a single RTX 4090 (24GB) instead of requiring multiple A100s","Reduce training time by using mixed-precision training without quality loss","Enable training on consumer GPUs for research and prototyping"],"best_for":["researchers with limited GPU budgets","practitioners training on consumer hardware (RTX 4090, RTX 3090)","teams optimizing training cost and latency"],"limitations":["Gradient checkpointing adds 15-25% training time overhead due to recomputation","Mixed-precision training (FP16) may cause numerical instability with certain loss functions; requires careful tuning","Memory savings are model-dependent; actual savings vary with LoRA rank and video resolution","Selective LoRA freezing reduces expressiveness; frozen layers cannot adapt to motion concepts"],"requires":["GPU with CUDA compute capability 7.0+ (RTX 2080 or newer)","PyTorch with CUDA support","YAML config with memory_optimization flags enabled","Minimum 24GB VRAM (16GB with aggressive optimization)"],"input_types":["YAML configuration with memory_optimization section","training dataset"],"output_types":["trained LoRA weights","memory usage logs and profiling data"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_8","uri":"capability://image.visual.text.conditioned.video.generation.with.learned.motion","name":"text-conditioned video generation with learned motion","description":"Generates videos by combining a text prompt with a trained motion LoRA, using the base text-to-video diffusion model's text encoder to condition generation on semantic descriptions while the temporal LoRA injects learned motion patterns. The inference pipeline performs iterative denoising in the latent space, with cross-attention layers modulated by both text embeddings and motion LoRA weights to produce coherent videos matching both the text description and learned motion.","intents":["Generate a video of 'a person lifting weights' using a learned weightlifting motion","Create a video of 'a car turning on a mountain road' with a learned turning motion","Produce a video of 'a dancer performing' with a learned dance motion"],"best_for":["content creators generating videos from text descriptions with specific motion styles","game developers creating in-game cinematics with controlled motion","researchers studying motion-conditioned video generation"],"limitations":["Generated videos are limited to 16 frames (~0.5 seconds at 30fps) due to diffusion model constraints","Text-motion alignment requires careful prompt engineering; vague prompts may ignore motion LoRA","Motion transfer quality degrades if text prompt describes different motion than learned LoRA","Output resolution fixed at 512x512; no upsampling or variable resolution support"],"requires":["Trained temporal LoRA weights","Pre-trained text-to-video model (ZeroScope or ModelScopeT2V)","Text prompt describing desired video content","GPU with 24GB+ VRAM for inference","YAML inference configuration"],"input_types":["text prompt (string)","LoRA weight files","inference config (YAML)","optional: seed for reproducibility"],"output_types":["video file (MP4, 16 frames, 512x512 resolution)","latent representations (for analysis)"],"categories":["image-visual","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-showlab--motiondirector__cap_9","uri":"capability://image.visual.inference.time.motion.strength.control","name":"inference-time motion strength control","description":"Provides configurable LoRA weight scaling during inference to control the strength of learned motion effects, enabling users to blend between the base model's default motion and the learned motion by adjusting a single parameter (typically 0.0 to 1.0 scale factor). The system applies the scaled LoRA weights to attention layers during the diffusion process, allowing fine-grained control over motion intensity without retraining.","intents":["Generate a video with subtle learned motion by scaling LoRA weights to 0.3","Create a video with strong learned motion by scaling LoRA weights to 1.0","Blend between default and learned motion for intermediate effects"],"best_for":["content creators fine-tuning motion intensity for specific scenes","researchers studying motion strength effects on video quality","practitioners iterating on motion effects without retraining"],"limitations":["Linear weight scaling may not produce perceptually linear motion strength changes","Extreme scaling (>1.5) can produce artifacts or incoherent motion","No automatic tuning; users must manually experiment to find desired strength","Scaling affects all motion components equally; no per-component control (e.g., camera vs subject motion)"],"requires":["Trained LoRA weights","YAML inference config with lora_scale parameter","GPU with 24GB+ VRAM"],"input_types":["LoRA weight files","lora_scale parameter (float, typically 0.0-1.0)","text prompt","inference config (YAML)"],"output_types":["video file (MP4, 16 frames, 512x512 resolution)"],"categories":["image-visual"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":38,"verified":false,"data_access_risk":"low","permissions":["Python 3.8+","PyTorch 1.13+ with CUDA 11.8+","Pre-trained text-to-video model (ZeroScope or ModelScopeT2V)","GPU with minimum 24GB VRAM (A100 recommended for <2hr training)","Reference video files in MP4 or MOV format, 2-10 seconds duration","3-10 reference videos of the same motion concept","Videos should be 2-10 seconds, 24-30 fps, 512x512 or higher resolution","YAML config specifying video paths and motion concept label","GPU with 24GB+ VRAM for batch processing","YAML config with batch parameters (prompts, scales, seeds)"],"failure_modes":["Requires 3-10 reference videos per motion concept for effective learning; single-video training may overfit","LoRA rank and alpha hyperparameters must be tuned per motion concept; no automatic selection","Training time varies 30-120 minutes depending on video length and GPU (A100 baseline)","Motion concepts learned are tightly coupled to the base model architecture; LoRA weights not transferable across different T2V models","Requires careful video alignment and preprocessing; misaligned reference videos degrade motion quality","Motion generalization is limited to semantically similar subjects; extreme appearance variations (human to animal) may fail","Batch processing multiple videos increases training time linearly with video count","No automatic motion segmentation; user must provide videos of the same motion concept","Batch generation is sequential; no parallelization across GPUs","Output organization can become complex with many parameter combinations; manual file management required","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.4102942471846695,"quality":0.35,"ecosystem":0.5800000000000001,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.3,"quality":0.2,"ecosystem":0.15,"match_graph":0.3,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.063Z","last_scraped_at":"2026-05-03T13:59:47.982Z","last_commit":"2024-08-21T03:51:01Z"},"community":{"stars":1048,"forks":61,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=showlab--motiondirector","compare_url":"https://unfragile.ai/compare?artifact=showlab--motiondirector"}},"signature":"pgksRpJF1l7cvqkCGI0mw7t73Qxz62xwRpE8JetAqUWSt4UN6IYb/pLNRbm+Co+phaz9lMAt5df7DZxd/c35Bw==","signedAt":"2026-06-19T08:46:00.369Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/showlab--motiondirector","artifact":"https://unfragile.ai/showlab--motiondirector","verify":"https://unfragile.ai/api/v1/verify?slug=showlab--motiondirector","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}