GitHub - bytedance/Lance: A 3B-active-parameter native unified multimodal model for image and video understanding, generation, and editing.
Pangram verdict · v3.3
We believe that this document is fully human-written
AI likelihood · overall
HumanArticle text · 1,260 words · 6 segments analyzed
Lance: Unified Multimodal Modeling by Multi-Task Synergy Fengyi Fu*, Mengqi Huang*,✉, Shaojin Wu*, Yunsheng Jiang*, Yufei Huo, Jianzhu Guo✉,§ Hao Li, Yinghang Song, Fei Ding, Qian He, Zheren Fu, Zhendong Mao, Yongdong Zhang ByteDance * Equal contribution ✉ Corresponding authors § Project lead English | 简体中文 🌟 Highlights Lance is a 3B native unified multimodal model that supports image and video understanding, generation, and editing within a single framework.
Efficient at 3B scale. With only 3B active parameters, Lance delivers strong performance across image generation, image editing, and video generation benchmarks. Trained from scratch. Lance is built with a staged multi-task recipe and trained entirely from scratch (except for the ViT and VAE encoders; the transformer backbone is trained entirely from scratch) within a 128-A100-GPU budget.
We are actively updating and improving this repository. If you find any bugs or have suggestions, please feel free to open an issue or submit a pull request (PR) 💖.
🎨 Demo Text-to-Video
Video Editing
Multi-turn Consistency Editing
Intelligent Video Generation
Video Understanding
Question: How many times did the person launch objects on the table? Options: (A) 3 (B) 2 (C) 4 Response: (A) 3 Question: The person makes sets of repeated actions. How many distinct repeated actions did the person do? Options: (A) 2 (B) 3 (C) 4 Response: (A) 2 Question: In which direction does the purple sphere move in the video?
Options: (A) Down and to the right. (B) Up and to the left. (C) Up and to the right. (D) The object is stationary. Response: (A) Down and to the right. Question: What is the unrealistic phenomenon displayed in the video? Options: (A) The man can manipulate time via phone. (B) Man grabs an object through a phone screen. (C) Chocolate transforms into different objects. (D) Visible means of propulsion enables flight. Response: (B) Man grabs an object through a phone screen. Question: Offer a succinct account of the culinary process shown in this video. Response: Add tomato puree and mix it well with chicken pieces. Question: Provide a detailed description of the given video, capturing its key moments. Response: In a sunlit meadow, a small tortoiseshell butterfly rests on a purple flower. A bee, with black and yellow stripes, lands on the same flower. The butterfly flaps its wings gently, while the bee busies itself, collecting nectar. The flower sways slightly in the breeze. The butterfly then takes off, and the bee follows, both heading to the next flower. The scene is a vivid display of insect interaction in a natural setting, with the colors of the butterfly and the bee contrasting against the green background of the meadow. The video captures this peaceful moment in a short 6-second duration. Text-to-Image Generation
Image Editing
Image Understanding
Question: Is the largest segment greater than sum of all the other segments? Response: Yes, the largest segment in the pie chart is the blue one, which is the most populous segment. Question: What percentage of respondents want better border security? Response: 29% Question: What is the license plate number of the car? Response: The license plate number of the car is BX62 BFY.
Question: According to the data from the proprietary market research, how much amount was spent on the promotional meetings and events during 1998? Response: According to the data from the proprietary market research, the total amount spent on the promotional meetings and events during 1998 was approximately $1.3 billion. Question: What is the appearance of the Colosseum in Rome, Italy? Response: The Colosseum in Rome, Italy is a magnificent ancient amphitheater made of stone and concrete. It is characterized by its large, arched openings and its semi-circular shape. The Colosseum has been partially restored, and its original color has faded, but the architectural details, like the columns and the semi-circular arches, are still visible. The lighting in the image highlights the grandeur and historical significance of the Colosseum, making it stand out against the backdrop of the evening sky. Question: How does a total solar eclipse look like from Earth? Response: A total solar eclipse looks like a dark circle with a bright, white outer edge. This is a result of the Earth's rotation and the Earth's shadow, which partially obscures the sun's light. The bright white edge of the eclipse is caused by the sun's high energy and its interaction with the Earth's atmosphere, while the dark part of the eclipse is due to the Earth's shadow and the surrounding air currents. The solar eclipse's shape, with its bright white edge and dark center, is similar to the shape of a full moon or a dark disk. It is a natural phenomenon that occurs in the atmosphere of the Earth and is an important part of the solar system. 🚀 Installation Recommended Environment
Software: Python 3.10+, CUDA 12.4+ (required) Hardware: A GPU with at least 40GB VRAM is required for inference
Installation Steps bash ./setup_env.sh Download Model Weights Please download all necessary model checkpoints from Lance-3B on Hugging Face and place them in the downloads/ directory.
📚 Usage Inference We provide a unified command-line interface for all generation / editing / understanding tasks: Option 1: Configure and Run the Unified Script bash inference_lance.sh
Before running, please configure the inference parameters at the top of inference_lance.sh. Supported tasks: t2i, t2v, image_edit, video_edit, x2t_image, and x2t_video. You can modify TASK_DEFAULT_CONFIGS in inference_lance.py to customize the default data samples for each task. Note: For all tasks, we recommend following the prompt format used in the provided examples when writing input prompts, as this typically leads to better generation quality.
Option 2: Configure and Run the Unified Script We provide task-specific one-click commands for different generation, editing, and understanding tasks. Text-to-Video Generation bash inference_lance.sh \ --TASK_NAME t2v \ --MODEL_PATH downloads/Lance_3B_Video \ --RESOLUTION video_480p \ --NUM_FRAMES 121 \ --VIDEO_HEIGHT 480 \ --VIDEO_WIDTH 848 \ --SAVE_PATH_GEN results/t2v Text-to-Image Generation bash inference_lance.sh \ --TASK_NAME t2i \ --MODEL_PATH downloads/Lance_3B \ --RESOLUTION image_768res \ --VIDEO_HEIGHT 768 \ --VIDEO_WIDTH 768 \ --SAVE_PATH_GEN results/t2i Video Editing bash inference_lance.sh \ --TASK_NAME video_edit \ --MODEL_PATH downloads/Lance_3B_Video \ --RESOLUTION video_480p \ --SAVE_PATH_GEN results/video_edit Image Editing bash inference_lance.sh \ --TASK_NAME image_edit \ --MODEL_PATH downloads/Lance_3B \ --RESOLUTION image_768res \ --SAVE_PATH_GEN results/image_edit Video Understanding bash inference_lance.sh \ --TASK_NAME x2t_video \ --MODEL_PATH
downloads/Lance_3B_Video \ --RESOLUTION video_480p \ --NUM_FRAMES 50 \ --SAVE_PATH_GEN results/x2t_video Image Understanding bash inference_lance.sh \ --TASK_NAME x2t_image \ --MODEL_PATH downloads/Lance_3B \ --RESOLUTION image_768res \ --SAVE_PATH_GEN results/x2t_image Available Tasks
Task Name Description Example JSON
t2v Text-to-Video generation config/examples/t2v_example.json
t2i Text-to-Image generation config/examples/t2i_example.json
image_edit Image editing config/examples/image_edit_example.json
video_edit Video editing config/examples/video_edit_example.json
x2t_image Image understanding config/examples/x2t_image_example.json
x2t_video Video understanding config/examples/x2t_video_example.json
For understanding examples:
config/examples/x2t_image_example.json: image understanding examples for visual question answering and image-based reasoning. config/examples/x2t_video_example.json: video understanding examples for video question answering and video captioning.
Parameters You can configure the following hyperparameters at the top of the inference_lance.sh script:
Parameter Default Value Description
MODEL_PATH "downloads/Lance_3B" Path to the downloaded Lance model weights (Lance_3B or Lance_3B_Video).
NUM_GPUS 1 Number of GPUs to use for inference.
VALIDATION_NUM_TIMESTEPS 30 Number of denoising steps (e.g., 30 or 50).
VALIDATION_TIMESTEP_SHIFT 3.5 Timestep shift parameter for flow matching scheduling.
CFG_TEXT_SCALE 4.0 Classifier-Free Guidance (CFG) scale for text conditioning.
VALIDATION_DATA_SEED 42 Random seed for generation reproducibility.
NUM_FRAMES 50 Number of frames for video generation (Max: 121). Unused for image tasks.
VIDEO_HEIGHT / VIDEO_WIDTH 768 Spatial resolution. Unused for editing tasks (determined by input image/video).
RESOLUTION "video_480p" Base resolution preset (image_768res or video_480p).
Gradio python lance_gradio_t2v_v2t.py --gpus 0 --server-port 7860 Benchmarks
DPG-Bench Evaluation
Models # Params. Global Entity Attribute Relation Other Overall Generation-only Models SDXL3.5B83.2782.4380.9186.7680.4174.65 DALL-E 3-90.9789.6188.3990.5889.8383.50 SD3-Medium2B87.9091.0188.8380.7088.6884.08 FLUX.1-dev12B74.3590.0088.9690.8788.3383.84 Qwen-Image20B91.3291.5692.0294.3192.7388.32 Unified Models Janus-Pro-7B7B86.9088.9089.4089.3289.4884.19 OmniGen24B88.8188.8390.1889.3790.2783.57 Show-o27B89.0091.7889.9691.8191.6486.14