Model reference · open weights

FOFPred

Image Salesforce Image edit 1 build Open weights 29 dl/mo

FOFPred is an open-weight image model from Salesforce. FOFPred (BF16) weighs 15.6 GB; the smallest configuration that runs it is RTX 4060 Ti 16 GB.

  • FOFPred is a 4.0B parameter diffusion-based model developed by Salesforce that predicts future optical flow from a single image guided by natural language instructions.
  • It generates four sequential optical flow frames to show how objects would move based on a text prompt.
  • The model uses a Qwen2.5-VL-3B-Instruct vision-language model and an OmniGen2Transformer3DModel, and its code and weights are released under the CC by-NC 4.0 license.

Summary of the Salesforce/FOFPred model card, 2026-10-01

What it is

Released bySalesforce
Released2025-12-09
Parameters4.0B
VRAM15.6 GB for the weights

What it runs on

Memory and cards for FOFPred (BF16)

15.6 GBweights, file size
7.9 GBbiggest part
5.0 GBworking memory, one 1024² image
537 MBruntime overhead
CardOne imageMemory
RTX 3060 12 GBdoes not fit11.6 GB
RTX 4060 Ti 16 GBtight (encoders offloaded)15.4 GB
RTX 3090 24 GBtight23.4 GB
RTX 4090 24 GBtight23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What Salesforce says about FOFPred

Read the model card

Paper | Project Site | Demo

FOFPred is a diffusion-based model that predicts future optical flow from a single image guided by natural language instructions. Given an input image and a text prompt describing a desired action (e.g., "Moving the water bottle from right to left"), FOFPred generates 4 sequential optical flow frames showing how objects would move.

Usage

import einops
import numpy as np
import torch
from diffusers import DiffusionPipeline
from PIL import Image

# Load pipeline with trust_remote_code
pipeline = DiffusionPipeline.from_pretrained(
    "Salesforce/FOFPred",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
).to("cuda")

# Run inference
results = pipeline(
    prompt="Moving the water bottle from right to left.",
    input_images=[Image.open("your_image.jpg")],
    width=256,
    height=256,
    num_inference_steps=1,
    num_images_per_prompt=4,
    frame_count=4,
    generator=torch.Generator(device="cuda").manual_seed(42),
    output_type="pt",
)

flow_frames = results.images  # [B, F, C, H, W]

output_tensor = flow_frames[0]  # [F, C, H, W]
output_np = pipeline.image_processor.pt_to_numpy(output_tensor)  # [F, H, W, C]
reshaped = einops.rearrange(output_np, "f h w c -> h (f w) c")
img = Image.fromarray((reshaped * 255).astype(np.uint8))
img.save("output_combined.png")

Architecture

ComponentModel
V-LLMQwen2.5-VL-3B-Instruct
DiTOmniGen2Transformer3DModel
VAEFLUX.1-dev AutoencoderKL
SchedulerFlowMatchEulerDiscreteScheduler

Acknowledgements

License

Our code and weights are released under the CC by-NC 4.0 license.

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

Running it yourself

Run it on a rented GPU

Rent a machine by the hour. How to run this model is on its model card.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms