huggingface / huggingface/diffusers

Implement missing features on ModularPipeline

Open
#12,386 5 comments 0 reactions 0 assignees View on GitHub
roadmap stale
Dominant language
Python
Stars
34.5k
Forks
7.3k
Avg merge
3d 3h
Merged PRs (30d)
91

Description

as i'm looking to take advantage of new `ModularPipeline` ask is to implement some currently missing features

my use case is to convert existing loaded model using standard pipeline into modular pipeline. that functionality was provided via #11915 and is now working.

first minor obstacle is that modular pipeline does not have defined params for execution
in standard pipeline i can inspect `__call__` signature to see which are allowed params
i currently work around this using
`possible = [input_param.name for input_param in model.blocks.inputs]`
please advise if this is acceptable

second one is that modular pipelines don't seem to implement normal callbacks at all (e.g. `callback_on_step_end_tensor_inputs`? at the minimum we need some kind of callback functionality to capture interim latents on each step

third is more cosmetic - modular pipeline does implement `set_progress_bar_config`, but its not doing anything as its not implement on actual block (tested with `StableDiffusionXLModularPipeline`)

cc @yiyixuxu @DN6 @sayakpaul

Contributor guide

Open the contributing guide

Research direction

Start from ModularPipeline and StableDiffusionXLModularPipeline, comparing their execution behavior with the standard pipeline's __call__ signature. Review blocks.inputs, callback_on_step_end_tensor_inputs, and set_progress_bar_config; done means execution parameters, interim-latent callbacks, and progress-bar configuration work as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.