readme: ---
  license: apache-2.0
  tags:
  - generated_from_trainer
  - stable diffusion
  - diffusion
  - text2image
  - prompt augment
  - prompt engineering
  datasets:
  - Gustavosta/Stable-Diffusion-Prompts
  model-index:
  - name: distilgpt2-magicprompt-SD
    results: []
  thumbnail: https://i.ibb.co/WkmTnZD/image.png
  widget:
   - text: "morning sun over Jakarta"
     example_title: "morning sun"
   - text: "WARNING: pip is"
     example_title: "pip"
   - text: "sentient cheese"
     example_title: "sentient cheese"
   - text: "cheeps are"
     example_title: "cheeps"
   - text: "avocado armchair"
     example_title: "creative prompt"
   - text: "Landscape of"
     example_title: "landscape"
  parameters:
    min_length: 16
    max_new_tokens: 24
    no_repeat_ngram_size: 1
    do_sample: True
  ---
  
  # distilgpt2-magicprompt-SD
  
  [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/pszemraj/bdddf9c3fe92d1ac2654730016d64c80/demo-distilgpt2-magicprompt.ipynb)
  
  Generate/augment your prompt, stable diffusion style.
  
  This model is a fine-tuned version of [distilgpt2](https://huggingface.co/distilgpt2) on the Gustavosta/Stable-Diffusion-Prompts dataset.
  It achieves the following results on the evaluation set:
  - Loss: 1.3089
  - eval_steps_per_second   =     17.201
  - perplexity              =     3.7022
  
  ## example
  
  
  Results in (_DALL-E, but you get the idea_):
  
  ![example](https://i.ibb.co/WkmTnZD/image.png)
  
  
  <br>
  
  this `distilgpt2` version is probably small/fast enough to be used locally on CPU!
  
  ## basic usage
  
  install transformers as needed:
  
  ```bash
  pip install -U transformers
  ```
  
  load and query through a `pipeline` object:
  
  ```python
  from transformers import pipeline
  
  model_tag = "pszemraj/distilgpt2-magicprompt-SD"
  generator = pipeline(
      "text-generation",
      model=model_tag,
  )
  
  prompt = "The Answer to Why"
  result = generator(
      prompt,
      max_new_tokens=24,
  )  # generate, adjust/add kwargs as needed
  print(result[0]["generated_text"])
  ```
  
  ## Training and evaluation data
  
  refer to the `Gustavosta/Stable-Diffusion-Prompts` dataset.
  
  ## Training procedure
  
  ### Training hyperparameters
  
  The following hyperparameters were used during training:
  - learning_rate: 0.001
  - train_batch_size: 16
  - eval_batch_size: 2
  - seed: 42
  - distributed_type: multi-GPU
  - num_devices: 2
  - gradient_accumulation_steps: 8
  - total_train_batch_size: 256
  - total_eval_batch_size: 4
  - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  - lr_scheduler_type: cosine
  - lr_scheduler_warmup_ratio: 0.05
  - num_epochs: 10.0
  
  ### Training results
  
  | Training Loss | Epoch | Step | Validation Loss |
  |:-------------:|:-----:|:----:|:---------------:|
  | 2.7061        | 0.99  | 33   | 2.5859          |
  | 2.08          | 1.99  | 66   | 1.9965          |
  | 1.7623        | 2.99  | 99   | 1.7248          |
  | 1.5408        | 3.99  | 132  | 1.5449          |
  | 1.4147        | 4.99  | 165  | 1.4437          |
  | 1.3593        | 5.99  | 198  | 1.3768          |
  | 1.2703        | 6.99  | 231  | 1.3362          |
  | 1.2528        | 7.99  | 264  | 1.3175          |
  | 1.1981        | 8.99  | 297  | 1.3091          |
  | 1.2117        | 9.99  | 330  | 1.3089          |
  
  
  ### Framework versions
  
  - Transformers 4.25.0.dev0
  - Pytorch 1.13.0+cu117
  - Datasets 2.6.1
  - Tokenizers 0.13.1
  