Files
endman100 453c5b277f Add ComfyUI SGLang Diffusion plugin
Introduce a new ComfyUI plugin to integrate SGLang Diffusion. Adds core integration pieces (generator, model patcher, server API client), executor implementations for multiple model types (flux, qwen_image, zimage, native, anima), node mappings, utilities, example workflows, and tests. Includes README with installation/usage instructions and example workflow JSON files. This commit implements both server (HTTP) and integrated modes, model loading/patching logic, and basic LoRA/video/image API support.
2026-04-17 21:10:38 +08:00

2.7 KiB

ComfyUI SGLDiffusion Pipeline Tests

This directory contains tests for each ComfyUI pipeline integration.

Test Files

  • test_zimage_pipeline.py - Tests for ComfyUIZImagePipeline
  • test_flux_pipeline.py - Tests for ComfyUIFluxPipeline
  • test_qwen_image_pipeline.py - Tests for ComfyUIQwenImagePipeline
  • test_qwen_image_edit_pipeline.py - Tests for ComfyUIQwenImageEditPipeline (I2I/edit mode)

Running Tests

Run all tests

pytest python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/test/ -v -s

Run a specific test file

pytest python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/test/test_zimage_pipeline.py -v -s

Environment Variables

You can configure model paths via environment variables. Model paths support two formats:

  • Safetensors file: Path to a single .safetensors file (e.g., /path/to/model.safetensors)
  • Diffusers format: HuggingFace model ID or local diffusers directory (e.g., Tongyi-MAI/Z-Image-Turbo)

Environment variables:

  • SGLANG_TEST_ZIMAGE_MODEL_PATH - Path to ZImage model (default: Tongyi-MAI/Z-Image-Turbo)
  • SGLANG_TEST_FLUX_MODEL_PATH - Path to Flux model (default: black-forest-labs/FLUX.1-dev)
  • SGLANG_TEST_QWEN_IMAGE_MODEL_PATH - Path to QwenImage model (default: Qwen/Qwen-Image)
  • SGLANG_TEST_QWEN_IMAGE_EDIT_MODEL_PATH - Path to QwenImageEdit model (default: Qwen/Qwen-Image-Edit-2511)

Examples:

# Using HuggingFace model ID (diffusers format)
export SGLANG_TEST_ZIMAGE_MODEL_PATH="Tongyi-MAI/Z-Image-Turbo"
pytest python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/test/test_zimage_pipeline.py -v -s

# Using safetensors file
export SGLANG_TEST_ZIMAGE_MODEL_PATH="/path/to/z_image_turbo_bf16.safetensors"
pytest python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/test/test_zimage_pipeline.py -v -s

Test Structure

Each test file follows a similar structure:

  1. Setup: Creates a DiffGenerator with the appropriate pipeline class
  2. Input Preparation: Creates dummy tensors for latents, timesteps, and embeddings
  3. Request Preparation: Uses prepare_request to convert SamplingParams to Req
  4. ComfyUI Inputs: Sets ComfyUI-specific inputs directly on the Req object
  5. Execution: Sends request to scheduler and waits for response
  6. Validation: Checks that noise_pred is retrieved from OutputBatch

Notes

  • These tests use comfyui_mode=True to enable ComfyUI-specific behavior
  • Tests use pre-processed inputs (latents, timesteps, embeddings) as ComfyUI would provide
  • The tests verify that noise_pred can be retrieved from the OutputBatch after processing
  • All tests use dummy/ones tensors for simplicity - in production, these would be actual model outputs