Skip to content

Commit

Permalink
Fix the padding used in stable diffusion. (huggingface#362)
Browse files Browse the repository at this point in the history
  • Loading branch information
LaurentMazare authored Aug 9, 2023
1 parent 9c4cf68 commit be21d7e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
4 changes: 2 additions & 2 deletions candle-examples/examples/stable-diffusion/clip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pub struct Config {
intermediate_size: usize,
pub max_position_embeddings: usize,
// The character to use for padding, use EOS when not set.
pad_with: Option<String>,
pub pad_with: Option<String>,
num_hidden_layers: usize,
num_attention_heads: usize,
#[allow(dead_code)]
Expand Down Expand Up @@ -257,7 +257,7 @@ impl ClipEncoder {
fn forward(&self, xs: &Tensor, causal_attention_mask: &Tensor) -> Result<Tensor> {
let mut xs = xs.clone();
for layer in self.layers.iter() {
xs = layer.forward(&xs, causal_attention_mask)?
xs = layer.forward(&xs, causal_attention_mask)?;
}
Ok(xs)
}
Expand Down
5 changes: 2 additions & 3 deletions candle-examples/examples/stable-diffusion/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,8 @@ fn run(args: Args) -> Result<()> {
let device = candle_examples::device(cpu)?;

let tokenizer = Tokenizer::from_file(tokenizer).map_err(E::msg)?;
let pad_id = match tokenizer.get_padding() {
Some(padding) => padding.pad_id,
let pad_id = match &sd_config.clip.pad_with {
Some(padding) => *tokenizer.get_vocab(true).get(padding.as_str()).unwrap(),
None => *tokenizer.get_vocab(true).get("<|endoftext|>").unwrap(),
};
println!("Running with prompt \"{prompt}\".");
Expand Down Expand Up @@ -212,7 +212,6 @@ fn run(args: Args) -> Result<()> {
let uncond_embeddings = text_model.forward(&uncond_tokens)?;
let text_embeddings = Tensor::cat(&[uncond_embeddings, text_embeddings], 0)?;

println!("text-embeddings: {text_embeddings:?}");
println!("Building the autoencoder.");
let vae = sd_config.build_vae(&vae_weights, &device)?;
println!("Building the unet.");
Expand Down

0 comments on commit be21d7e

Please sign in to comment.