1. 23 Aug, 2023 1 commit
    • Ollin Boer Bohan's avatar
      Fix AutoencoderTiny encoder scaling convention (#4682) · 052bf328
      Ollin Boer Bohan authored
      * Fix AutoencoderTiny encoder scaling convention
      
        * Add [-1, 1] -> [0, 1] rescaling to EncoderTiny
      
        * Move [0, 1] -> [-1, 1] rescaling from AutoencoderTiny.decode to DecoderTiny
          (i.e. immediately after the final conv, as early as possible)
      
        * Fix missing [0, 255] -> [0, 1] rescaling in AutoencoderTiny.forward
      
        * Update AutoencoderTinyIntegrationTests to protect against scaling issues.
          The new test constructs a simple image, round-trips it through AutoencoderTiny,
          and confirms the decoded result is approximately equal to the source image.
          This test checks behavior with and without tiling enabled.
          This test will fail if new AutoencoderTiny scaling issues are introduced.
      
        * Context: Raw TAESD weights expect images in [0, 1], but diffusers'
          convention represents images with zero-centered values in [-1, 1],
          so AutoencoderTiny needs to scale / unscale images at the start of
          encoding and at the end of decoding in order to work with diffusers.
      
      * Re-add existing AutoencoderTiny test, update golden values
      
      * Add comments to AutoencoderTiny.forward
      052bf328
  2. 18 Aug, 2023 1 commit
  3. 02 Aug, 2023 1 commit
    • Sayak Paul's avatar
      [Feat] add tiny Autoencoder for (almost) instant decoding (#4384) · 18fc40c1
      Sayak Paul authored
      
      
      * add: model implementation of tiny autoencoder.
      
      * add: inits.
      
      * push the latest devs.
      
      * add: conversion script and finish.
      
      * add: scaling factor args.
      
      * debugging
      
      * fix denormalization.
      
      * fix: positional argument.
      
      * handle use_torch_2_0_or_xformers.
      
      * handle post_quant_conv
      
      * handle dtype
      
      * fix: sdxl image processor for tiny ae.
      
      * fix: sdxl image processor for tiny ae.
      
      * unify upcasting logic.
      
      * copied from madness.
      
      * remove trailing whitespace.
      
      * set is_tiny_vae = False
      
      * address PR comments.
      
      * change to AutoencoderTiny
      
      * make act_fn an str throughout
      
      * fix: apply_forward_hook decorator call
      
      * get rid of the special is_tiny_vae flag.
      
      * directly scale the output.
      
      * fix dummies?
      
      * fix: act_fn.
      
      * get rid of the Clamp() layer.
      
      * bring back copied from.
      
      * movement of the blocks to appropriate modules.
      
      * add: docstrings to AutoencoderTiny
      
      * add: documentation.
      
      * changes to the conversion script.
      
      * add doc entry.
      
      * settle tests.
      
      * style
      
      * add one slow test.
      
      * fix
      
      * fix 2
      
      * fix 2
      
      * fix: 4
      
      * fix: 5
      
      * finish integration tests
      
      * Apply suggestions from code review
      Co-authored-by: default avatarSteven Liu <59462357+stevhliu@users.noreply.github.com>
      
      * style
      
      ---------
      Co-authored-by: default avatarSteven Liu <59462357+stevhliu@users.noreply.github.com>
      18fc40c1