Skip to content

[diffusion] feat: support passing component path via server args#19108

Merged
mickqian merged 14 commits intomainfrom
diffusion-support-component-path-in-server-args
Feb 21, 2026
Merged

[diffusion] feat: support passing component path via server args#19108
mickqian merged 14 commits intomainfrom
diffusion-support-component-path-in-server-args

Conversation

@mickqian
Copy link
Collaborator

@mickqian mickqian commented Feb 21, 2026

sglang generate --prompt='A curious raccoon' --log-level=debug \
    --output-path=outputs --model-path=black-forest-labs/FLUX.2-dev \
    --save-output --output-file-name=FLUX.2-dev  --vae-path=fal/FLUX.2-Tiny-AutoEncoder

Motivation

Modifications

Accuracy Tests

Benchmarking and Profiling

Checklist

Review Process

  1. Ping Merge Oncalls to start the PR flow. See the PR Merge Process.
  2. Get approvals from CODEOWNERS and other reviewers.
  3. Trigger CI tests with comments or contact authorized users to do so.
    • /tag-run-ci-label, /rerun-failed-ci, /tag-and-rerun-ci
  4. After green CI and required approvals, ask Merge Oncalls to merge.

@github-actions github-actions bot added the diffusion SGLang Diffusion label Feb 21, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @mickqian, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the flexibility of the multimodal generation server by introducing a generalized mechanism for overriding component paths. Instead of being limited to a specific VAE path, users can now specify custom paths for any pipeline component via a new component_paths argument, which can be populated dynamically from CLI arguments. This change improves configurability and modularity for advanced use cases.

Highlights

  • Generalized Component Path Overriding: Introduced a component_paths dictionary in ServerArgs to allow specifying custom paths for any pipeline component, moving beyond the previously hardcoded vae_path.
  • Dynamic CLI Argument Parsing: Implemented logic to automatically detect and parse command-line arguments in the format --<component>-path (e.g., --video-vae-path) and map them to the new component_paths dictionary.
  • Backward Compatibility for VAE Path: Ensured that the existing --vae-path argument continues to function, with its value being merged into the new component_paths structure for seamless transition.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • python/sglang/multimodal_gen/runtime/pipelines_core/composed_pipeline_base.py
    • Updated module loading logic to check server_args.component_paths for overrides before falling back to server_args.vae_path for VAE, ensuring a unified approach to custom component paths.
    • Modified logging message to reflect the new generic component path usage.
  • python/sglang/multimodal_gen/runtime/server_args.py
    • Added a new component_paths: dict[str, str] field to the ServerArgs dataclass, initialized as an empty dictionary.
    • Updated the comment for vae_path to clarify its backward compatibility role and reference the new component_paths mechanism.
    • Modified add_cli_args to update the help message for --vae-path, indicating that generic --<component>-path arguments are now supported.
    • Implemented logic in from_cli_args to iterate through provided_args, identify keys ending with _path (excluding known ones), extract the component name, and populate the component_paths dictionary.
    • Added logic in from_dict to merge any vae_path value into component_paths for backward compatibility.
    • Added a continue statement in from_dict to skip re-processing the component_paths attribute if it was already handled by the merging logic.
Activity
  • No human activity recorded for this pull request.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a flexible way to override paths for individual model components using dynamic command-line arguments like --<component>-path. This is a great enhancement for modularity. The implementation correctly parses these dynamic arguments and integrates them into the model loading process.

My review includes suggestions to refactor the component path merging logic into ServerArgs.__post_init__ for better robustness and to simplify the corresponding loading code. I've also suggested a minor improvement for string manipulation to enhance code clarity.

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Feb 21, 2026
@mickqian mickqian marked this pull request as ready for review February 21, 2026 07:18
@gemini-code-assist
Copy link
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@mickqian
Copy link
Collaborator Author

/tag-and-rerun-ci

@mickqian mickqian force-pushed the diffusion-support-component-path-in-server-args branch from f7fc4bb to 6621855 Compare February 21, 2026 10:12
@mickqian mickqian changed the title [diffusion] feat: support passing component path in server args [diffusion] feat: support passing component path via server args Feb 21, 2026
@mickqian
Copy link
Collaborator Author

multimodal_gen only, bypassing

@mickqian mickqian merged commit 6503f94 into main Feb 21, 2026
126 of 138 checks passed
@mickqian mickqian deleted the diffusion-support-component-path-in-server-args branch February 21, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

diffusion SGLang Diffusion documentation Improvements or additions to documentation run-ci

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant