--- title: SenseNova-U1.5-8B-MoT metatags: description: "Run SenseNova-U1.5-8B-MoT text-to-image generation with SGLang's native multimodal generation runtime." --- import { DiffusionModelTags } from '/src/snippets/diffusion/model-tags.jsx'; ## 1. Model Introduction [SenseNova-U1.5-8B-MoT](https://huggingface.co/sensenova/SenseNova-U1.5-8B-MoT) is a text-to-image model in the SenseNova-U1 family. It is useful for high-resolution poster, infographic, and enterprise visual-generation workloads where prompt following, layout structure, and Chinese text rendering are important. Built on [NEO-Unify](https://huggingface.co/blog/sensenova/neo-unify), this release improves composition, color harmony, material rendering, and local visual detail for native high-resolution generation. It also focuses on clearer Chinese and English text rendering, stronger infographic layout structure, and more reliable execution of complex prompts with object counts, spatial relationships, styles, and multiple constraints. ## 2. SGLang-diffusion Installation SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. Please refer to the [official SGLang-diffusion installation guide](../../../docs/sglang-diffusion/installation) for installation instructions. ## 3. Model Deployment ### 3.1 Offline Image Generation SenseNova-U1.5-8B-MoT is a text-to-image model. You can run a single offline generation job with `sglang generate`: ```bash Command sglang generate \ --model-path sensenova/SenseNova-U1.5-8B-MoT \ --prompt "A cinematic mountain lake at sunrise, realistic photography." \ --width 2048 \ --height 2048 \ --guidance-scale 4.0 \ --num-inference-steps 50 \ --seed 42 \ --output-file-path output_sensenova_u15.png ``` ### 3.2 Recommended Resolutions SenseNova-U1 was trained around the 2K-pixel resolution tier. The SGLang pipeline only supports positive `--width` and `--height` values that are divisible by 32, and generation quality may degrade for untrained size combinations. Recommended resolution tiers: | Aspect ratio | Resolution | | --- | --- | | 1:1 | `2048 x 2048` | | 16:9 / 9:16 | `2720 x 1536` / `1536 x 2720` | | 3:2 / 2:3 | `2496 x 1664` / `1664 x 2496` | | 4:3 / 3:4 | `2368 x 1760` / `1760 x 2368` | | 2:1 / 1:2 | `2880 x 1440` / `1440 x 2880` | | 3:1 / 1:3 | `3456 x 1152` / `1152 x 3456` | | 9:16 4K | `2304 x 4096` | ## 4. API Usage For complete API documentation, please refer to the [official API usage guide](../../../docs/sglang-diffusion/api/openai_api). ### 4.1 Generate an Image ```python Example import base64 from openai import OpenAI client = OpenAI(api_key="EMPTY", base_url="http://localhost:30000/v1") response = client.images.generate( model="sensenova/SenseNova-U1.5-8B-MoT", prompt="A clean technology poster with structured layout and clear typography.", n=1, response_format="b64_json", ) image_bytes = base64.b64decode(response.data[0].b64_json) with open("output_sensenova_u15.png", "wb") as f: f.write(image_bytes) ``` ## 5. Advanced usage ### 5.1 Dynamic request batching Start the server with dynamic batching enabled: ```bash Command sglang serve \ --model-path sensenova/SenseNova-U1.5-8B-MoT \ --port 30000 \ --batching-max-size 2 \ --batching-delay-ms 100 ``` Submit requests concurrently so they arrive within the batching delay. Requests in one batch must use the same resolution, inference steps, guidance settings, and output options. Requests with multiple outputs or `think_mode=true` are executed sequentially. ### 5.2 Ascend NPU optimizations On Ascend NPU, SenseNova-U1 automatically uses fused inference attention, RMSNorm, and SwiGLU MLP operators for supported inputs. FIA and SwiGLU fall back when their requirements are not met. Run one complete warmup request before benchmarking because the fused MLP packs its gate and up projection weights on first use. ## 6. Benchmark ### 6.1 Speedup benchmark #### 6.1.1 Single-run profile This is a single-run profile for smoke validation rather than a formal benchmark. Environment: NVIDIA A800; workload: vbench text-to-image, 1 prompt, concurrency 1, 1 output per prompt; warmup: none; repetitions: 1; dispersion: not reported; baseline: none; revisions: PR checkout and resolved model snapshot at run time; output validation: request completed and returned one image. **Server Command**: ```shell Command sglang serve \ --model-path sensenova/SenseNova-U1.5-8B-MoT \ --port 30000 ``` **Benchmark Command**: ```shell Command python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ --dataset vbench \ --task text-to-image \ --num-prompts 1 \ --max-concurrency 1 \ --port 30000 ``` **Result**: ```text Output ================= Serving Benchmark Result ================= Task: text-to-image Model: /workspace/models/ModelScope/SenseNova/SenseNova-U1.5-8B-MoT Dataset: vbench -------------------------------------------------- Benchmark duration (s): 13.10 Request rate: inf Max request concurrency: 1 Successful requests: 1/1 Completed outputs: 1 Outputs per prompt: 1 -------------------------------------------------- Request throughput (req/s): 0.08 Output throughput (outputs/s): 0.08 Latency Mean (s): 13.10 Latency Median (s): 13.10 Latency P90 (s): 13.10 Latency P95 (s): 13.10 Latency P99 (s): 13.10 -------------------------------------------------- Peak Memory Max (MB): 34326.00 Peak Memory Mean (MB): 34326.00 Peak Memory Median (MB): 34326.00 ------------------------------------------------------------ ``` Environment: one Ascend 910C; workload: four concurrent 2048 x 2048 text-to-image requests, 50 denoising steps, CFG 4, BF16. | Batch size | NPU operators | Duration (s) | Throughput (images/s) | Mean latency (s) | Peak reserved memory (MB) | |---:|---|---:|---:|---:|---:| | 1 | Disabled | 234.28 | 0.01707 | 146.47 | 35698 | | 2 | Disabled | 234.83 | 0.01703 | 176.06 | 37870 | | 1 | FIA + RMSNorm + SwiGLU | 205.94 | 0.01942 | 128.80 | 35718 | | 2 | FIA + RMSNorm + SwiGLU | 195.02 | 0.02051 | 146.33 | 37850 | Optimized B1 improves throughput by 13.76% over unoptimized B1. Optimized B2 improves throughput by 20.42% over unoptimized B2 and by 5.60% over optimized B1.