TimeOmni-VL: Unified Models for Time Series Understanding and Generation
Organizations: Griffith University · Zhejiang University · NVIDIA · Zhejiang Lab · The University of Queensland · Universit`a della Svizzera Italiana · Politecnico di Milano
Abstract
Recent time series modeling faces a sharp divide between numerical generation and semantic understanding, with research showing that generation models often rely on superficial pattern matching, while understanding-oriented models struggle with high-fidelity numerical output. Although unified multimodal models (UMMs) have bridged this gap in vision, their potential for time series remains untapped. We propose TimeOmni-VL, the first vision-centric framework that unifies time series understanding and generation through two key innovations: (1) Fidelity-preserving bidirectional mapping between time series and images (Bi-TSI), which advances Time Series-to-Image (TS2I) and Image-to-Time Series (I2TS) conversions to ensure near-lossless transformations. (2) Understanding-guided generation. We introduce TSUMM-Suite, a novel dataset consisting of six understanding tasks rooted in time series analytics and coupled with two generation tasks. With a calibrated Chain-of-Thought, TimeOmni-VL is the first to leverage time series understanding as an explicit control signal for high-fidelity generation. Experiments confirm that this unified approach significantly improves semantic understanding and numerical precision, establishing a new frontier for multimodal time series modeling.
Figures & tables
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Forecasting | Imputation | Understanding | Reasoning | |
|---|---|---|---|---|
| Training Set | 40,000 | 40,000 | 9,409 | 2,339 |
| Testbed | 685 | 855 | 685 | 2,448 |
| Forecasting | Imputation | Understanding | Reasoning | |
|---|---|---|---|---|
| MAX length | 2,592 | 2,592 | 2,592 | 792 |
| MIN length | 8 | 8 | 8 | 10 |
| AVG length | 957 | 957 | 947 | 109 |
| Forecasting | Imputation | Understanding | Reasoning | |
|---|---|---|---|---|
| AVG tokens of time series | 7,236 | 7,236 | 4,096 | 860 |
| AVG tokens of context | 116 | 130 | 479 | 246 |
| AVG total tokens | 7,352 | 7,366 | 4,575 | 1,106 |
| Regime | Std-based | MAD-based | RFN (Ours) |
|---|---|---|---|
| Gaussian signal | Ideal | Ideal | Ideal |
| Heavy outliers | Signal washout | Ideal | Ideal |
| Step / flat | Ideal | Noise amplification | Ideal |
| Understanding Task 1: Variable Counting | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. How many variables (time series channels) are encoded in this image? |
| TimeOmni-VL | <think> Each continuous horizontal color band corresponds to one time series channel. Counting the bands from top to bottom gives 3. </think> Answer: The image encodes 3 variables (time series channels). |
| Understanding Task 2: Variable Y-Range | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. - Variables are indexed from 1 (top band) to nvars (bottom band). - First, determine nvars by counting the number of horizontal bands in the image. - Then compute the per-variable height using integer (floor) division: image_size_per_var = max(1, image_size // max(1, nvars)) Using y=0 at the top row and inclusive pixel indices, what is the y-range [y_start, y_end] for variable 1? |
| TimeOmni-VL | <think> 1) Visual Analysis. Scanning the image reveals 3 distinct horizontal bands. Thus, . 2) Height Calculation. Image height . Per-variable height pixels. 3) Range Derivation. Target: Variable 1 (Topmost, internal index ). • . • . </think> Answer: Variable 1 occupies y-range: [0, 297]. |
| Understanding Task 3: Cycle Bounding Box | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. Given metadata: , periodicity = 24. Each cycle corresponds to a vertical strip in the image. Questions: (1) How many pixels wide is one cycle? (2) For variable 2 and cycle 3, give the bounding box [(x1, y1), (x2, y2)] of that cycle region. |
| TimeOmni-VL | <think> 1) Geometry & Layout. Image size . Scanning bands . Band height . 2) Cycle Dimensions. Metadata: , Periodicity . Total cycles . Width per cycle pixels. 3) Coordinates Calculation. Target: Variable 2 , Cycle 3 . • Y-range: . • X-range: . • . • . </think> Answer: (1) Each cycle is 89.6 pixels wide. (2) The bounding box for variable 2, cycle 3 is: [(179, 298), (267, 595)]. |
| Understanding Task 4: Mean Comparison | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. For variable 2, compare cycle 7 and cycle 9 based on overall brightness (0-255 pixel values). These two cycles show visually distinct brightness levels. Given metadata: , periodicity = 24. Which cycle has higher values? Note: Variables are indexed from 1 (top band) to nvars (bottom band). |
| TimeOmni-VL | <think> 1) Geometry & Layout. , band height . Total cycles , cycle width . Target Band: Variable 2 (Middle, Green channel). Y-range: . 2) Region Localization. • Cycle 7: X-range . • Cycle 9: X-range . 3) Statistical Comparison. Calculating mean pixel values (Green channel): • (High brightness). • (Low brightness). Difference: . Cycle 7 is significantly brighter than Cycle 9. </think> Answer: 7 is brighter (difference: 54.6%). |
| Understanding Task 5: Anomaly Detection | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. For variable 3, identify cycles that show significantly abnormal brightness compared to the typical level. Given metadata: , periodicity = 24. Definition: “Significantly abnormal” means cycles where the average pixel value (0-255 scale) is either brighter (mean + 18) or darker (mean - 18) than the overall mean for this variable. Provide the count and bounding boxes (x1, y1, x2, y2) for each anomalous cycle. Note: Variables are indexed from 1 (top band) to nvars (bottom band). |
| TimeOmni-VL | <think> 1) Geometry & Layout. Target: Variable 3 (Blue channel). Band height . Y-range . Total cycles . Cycle width . 2) Statistical Analysis. Computed global mean of 10 cycles: . Thresholds: • Bright: . • Dark: . 3) Anomaly Identification. Scanning individual cycle averages: • Cycle 2: Mean Dark Anomaly. Bbox: . • Cycle 5: Mean Bright Anomaly. Bbox: . </think> Answer: For variable 3, there are 2 anomalous cycles (1 bright, 1 dark). Bounding boxes: [(89, 596), (178, 893)], [(358, 596), (447, 893)]. |
| Understanding Task 6: Trend Analysis | |
|---|---|
| User | You are given a 896 896 image that encodes one or more time series variables as horizontal bands stacked from top to bottom. For variable 3, cycle 10, analyze the time series within this cycle: 1. What color channel is used for this variable? 2. What is the bounding box (x1, y1, x2, y2) of this cycle region? 3. After recovering to original time series values, describe the pattern and trend of this cycle in 2-3 sentences. Given metadata: , periodicity = 24. Recovery information: - Denorm: - Mean ( ): 1.52, Std ( ): 2.77 Note: Variables are indexed from 1 (top band) to nvars (bottom band). |
| TimeOmni-VL | <think> 1) Geometry & Layout. Image size , . Band height . Total cycles . Cycle width pixels. 2) Localization. Target: Variable 3 (Bottom), Cycle 10 (Rightmost). • Y-range: . • X-range: . 3) Recovery & Analysis. Channel: Blue (associated with Var 3). Applying the denormalization formula reveals the raw values. The series starts at 1.57, rises to a peak, and then fluctuates downwards. </think> Answer: 1. Color channel: Blue . 2. Bounding box: [(806, 596), (895, 893)] . 3. Trend analysis: The series initially rises to a prominent peak of 3.22 at , followed by a substantial and fluctuating decline to its minimum of -0.01 at . It then recovers moderately towards the end. Overall, the series shows a slight net decrease. |
| Generation Task 1: Time Series Forecasting | |
|---|---|
| User | You are given a 896 896 image that encodes 2 time series variable(s) as horizontal bands stacked from top to bottom. Each series contains 2 cycles, where each cycle has 288 time steps (totaling observations). The right side is masked and needs to be predicted for the next 1 cycle (totaling observations). Based on the observable parts in the time series image, please restore the masked right side. |
| TimeOmni-VL | <think> 1) Variable Counting. The image contains 2 independent time series encoded as horizontal bands. Brighter pixels indicate larger values, and darker pixels indicate smaller ones. 2) Variable Y-Range. Total size is . With , each band height is pixels. Total cycles . Cycle width pixels. 3) Cycle Bounding Box. The task is to predict the rightmost 3rd cycle. • Var 1 (Top): Pred bbox . • Var 2 (Bottom): Pred bbox . 4) Mean Comparison & Anomaly Detection & Trend Analysis. First, analyze the historical pattern (576 steps) for trend and seasonality. Then, extrapolate the next 288 steps for each variable independently. Finally, restore the visual representation maintaining consistent brightness encoding. </think> Special Note: Following the GIFT-Eval evaluation protocol ( Aksu et al., 2024 ) , the required prediction length ( ) for this case is . Although the model generates a sequence of points, the output is truncated to the first points for quantitative evaluation. |
| Generation Task 2: Time Series Imputation | |
|---|---|
| User | You are given a 896 896 image that encodes 1 time series variable(s) as horizontal bands stacked from top to bottom. Each series contains 6 cycles, where each cycle has 24 time steps (totaling observations). Some regions in these series are masked (shown as black areas) and need to be imputed. Different series may have masked regions at different positions, and the number of masked cycles can vary across series. Based on the observable parts in the time series image, please restore all the masked black regions for each series. |
| TimeOmni-VL | <think> 1) Variable Counting. The image contains 1 independent time series encoded as horizontal bands. Brighter pixels indicate larger values, and darker pixels indicate smaller ones. 2) Variable Y-Range. Total size is . With , the band height is pixels. Total cycles . Cycle width pixels per cycle. 3) Cycle Bounding Box. Each series has specific masked black regions. • Var 1: Missing cycles 2–3. Mask bbox . 4) Mean Comparison & Anomaly Detection & Trend Analysis. First, analyze the observable patterns before (cycle 1) and after (cycles 4–6) the gap to identify trend and seasonality. Then, impute the missing cycles (2–3) using the surrounding context, maintaining consistent brightness encoding. Finally, output the restored image. </think> |
| Bad Case I: Time Series Forecasting | |
|---|---|
| User | You are given a 896 896 image that encodes 7 time series variable(s) as horizontal bands stacked from top to bottom. Each series contains 4 cycles, where each cycle has 24 time steps (totaling observations). The right side is masked and needs to be predicted for the next 2 cycles (totaling observations). Based on the observable parts in the time series image, please restore the masked right side. |
| Bagel | |
| TimeOmni-VL | |
| Bad Case II: Time Series Imputation | |
|---|---|
| User | You are given a 896 896 image that encodes 7 time series variable(s) as horizontal bands stacked from top to bottom. Each series contains 24 cycles, where each cycle has 96 time steps (totaling observations). Some regions in these series are masked (shown as black areas) and need to be imputed. Different series may have masked regions at different positions, and the number of masked cycles can vary across series. Based on the observable parts in the time series image, please restore all the masked black regions for each series. |
| Bagel | |
| TimeOmni-VL | |