- 
                Notifications
    You must be signed in to change notification settings 
- Fork 6.5k
          [docs] update guidance_scale docstring for guidance_distilled models.
          #11935
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
  
     Merged
                    Changes from 2 commits
      Commits
    
    
            Show all changes
          
          
            15 commits
          
        
        Select commit
          Hold shift + click to select a range
      
      d146f12
              
                update guidance_scale docstring for guidance_distilled models.
              
              
                sayakpaul 2185553
              
                Merge branch 'main' into guidance-scale-docs
              
              
                sayakpaul 758b1db
              
                Merge branch 'main' into guidance-scale-docs
              
              
                sayakpaul f6e92ca
              
                Update pipeline_flux.py
              
              
                stevhliu f515e17
              
                Update pipeline_flux_control.py
              
              
                stevhliu 7c017d2
              
                Update pipeline_flux_kontext.py
              
              
                stevhliu 70ba6ab
              
                Update pipeline_flux_kontext_inpaint.py
              
              
                stevhliu 774cb71
              
                Update pipeline_sana_sprint.py
              
              
                stevhliu d7d56c0
              
                Merge branch 'main' into guidance-scale-docs
              
              
                sayakpaul b4d45f0
              
                style
              
              
                sayakpaul cb76afd
              
                Update pipeline_hidream_image.py
              
              
                stevhliu 962196a
              
                Update pipeline_chroma.py
              
              
                stevhliu 5ee1408
              
                Update pipeline_chroma_img2img.py
              
              
                stevhliu 73e6b3e
              
                Update pipeline_hunyuan_video.py
              
              
                stevhliu b625bb4
              
                Merge branch 'main' into guidance-scale-docs
              
              
                sayakpaul File filter
Filter by extension
Conversations
          Failed to load comments.   
        
        
          
      Loading
        
  Jump to
        
          Jump to file
        
      
      
          Failed to load files.   
        
        
          
      Loading
        
  Diff view
Diff view
There are no files selected for viewing
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|  | @@ -691,7 +691,11 @@ def __call__( | |||||||||
| Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2. | ||||||||||
| of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting | ||||||||||
| `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to | ||||||||||
| the text `prompt`, usually at the expense of lower image quality. | ||||||||||
| the text `prompt`, usually at the expense of lower image quality. In case of Flux, which is a guidance- | ||||||||||
| distilled model, `guidance_scale > 1` doesn't implement true classifier-free guidance. Specifying | ||||||||||
| `guidance_scale > 1` just mimics it. In case of Flux, which is a guidance- distilled model, | ||||||||||
| `guidance_scale > 1` doesn't implement true classifier-free guidance. Specifying `guidance_scale > 1` | ||||||||||
| just mimics it. | ||||||||||
|          | ||||||||||
| `guidance_scale > 1` just mimics it. In case of Flux, which is a guidance- distilled model, | |
| `guidance_scale > 1` doesn't implement true classifier-free guidance. Specifying `guidance_scale > 1` | |
| just mimics it. | |
| `guidance_scale > 1` just mimics it. | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
      
      Oops, something went wrong.
        
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does "mimic" mean it still produces the same result as true CFG? If the effects are the same (despite the implementation), I'm not too sure the end-user will care or notice.
Maybe it'd be better to make a note of it on the Flux model card?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't know the true CFG results I think. Maybe "resembles" is a better phrase?
I think docstrings are important and it can be confusing to users if we're not putting the right phrases here.
Here, I disagree. I think just clarifying it at the docstring level is more than sufficient w.r.t the info already available in the model card (for example, we already mention that Dev is a guidance-distlled model).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, maybe lets go with something like this then?
"Guidance-distilled models don't implement true classifier-free guidance and for
guidance_scale > 1, it only resembles it."There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
resembles/mimics is very confusing terminology to me.
doing CFG on a guidance-distilled model with cfg_scale=X and embedded_cfg_scale=Y is effectively/approximately the same as doing CFG on base model with cfg_scale=X*Y based on how the math works out. this can easily be validated by running inference with same seed and making sure product of true and embedded scale is the same value. the results will not be the exact same but will be similar-ish (because distilled model is a noisy approximator of base model outputs)
better not to change explantation imo. if we want to, we can just say it is guidance-distilled, and leave the interested user to google it and find necessary information
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm. I hear both of you. I have had complaints over DMs multiple times regarding this.
How about:
Guidance-distilled models (such as …) don't implement true classifier-free guidance and for guidance_scale > 1, it approximates its effects. Refer to https://arxiv.org/abs/2210.03142 for more details.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that should be fine. @a-r-r-o-w good with you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM. It's a bit weird here though that
guidance_scaleactually means the embedded guidance scale, whereas we havetrue_cfg_scaleto actually meanguidance_scale😞Maybe clarifying this is very important
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree to that. @stevhliu how should go about it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about? 😅
For
guidance_scale:"Embedded guidance scale is enabled by setting
guidance_scale> 1. Higherguidance_scaleencourages a model to generate images more aligned withpromptat the expense of lower image quality.Guidance-distilled models approximates true classifier-free guidance for
guidance_scale> 1. Refer to the paper to learn more."For
true_cfg_scale:"True classifier-free guidance (guidance scale) is enabled when
true_cfg_scale>andnegative_prompt` is provided.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah let's go with that. Do you mind pushing to this PR directly? I can do it as well.