Browse Source

first commit

main
Alex Nichol 2 years ago
commit
0f875ac43e
  1. 3
      .gitignore
  2. 21
      LICENSE
  3. 73
      README.md
  4. 66
      model-card.md
  5. 6
      samples.md
  6. BIN
      samples/a_birthday_cupcake/0.gif
  7. BIN
      samples/a_birthday_cupcake/1.gif
  8. BIN
      samples/a_birthday_cupcake/2.gif
  9. BIN
      samples/a_birthday_cupcake/3.gif
  10. BIN
      samples/a_bowl_of_vegetables/0.gif
  11. BIN
      samples/a_bowl_of_vegetables/1.gif
  12. BIN
      samples/a_bowl_of_vegetables/2.gif
  13. BIN
      samples/a_bowl_of_vegetables/3.gif
  14. BIN
      samples/a_campfire/0.gif
  15. BIN
      samples/a_campfire/1.gif
  16. BIN
      samples/a_campfire/2.gif
  17. BIN
      samples/a_campfire/3.gif
  18. BIN
      samples/a_car_that_looks_like_an_avocado/0.gif
  19. BIN
      samples/a_car_that_looks_like_an_avocado/1.gif
  20. BIN
      samples/a_car_that_looks_like_an_avocado/2.gif
  21. BIN
      samples/a_car_that_looks_like_an_avocado/3.gif
  22. BIN
      samples/a_chair_that_looks_like_a_swimming_pool/0.gif
  23. BIN
      samples/a_chair_that_looks_like_a_swimming_pool/1.gif
  24. BIN
      samples/a_chair_that_looks_like_a_swimming_pool/2.gif
  25. BIN
      samples/a_chair_that_looks_like_a_swimming_pool/3.gif
  26. BIN
      samples/a_chair_that_looks_like_a_tree/0.gif
  27. BIN
      samples/a_chair_that_looks_like_a_tree/1.gif
  28. BIN
      samples/a_chair_that_looks_like_a_tree/2.gif
  29. BIN
      samples/a_chair_that_looks_like_a_tree/3.gif
  30. BIN
      samples/a_chair_that_looks_like_a_zebra/0.gif
  31. BIN
      samples/a_chair_that_looks_like_a_zebra/1.gif
  32. BIN
      samples/a_chair_that_looks_like_a_zebra/2.gif
  33. BIN
      samples/a_chair_that_looks_like_a_zebra/3.gif
  34. BIN
      samples/a_chair_that_looks_like_an_avocado/0.gif
  35. BIN
      samples/a_chair_that_looks_like_an_avocado/1.gif
  36. BIN
      samples/a_chair_that_looks_like_an_avocado/2.gif
  37. BIN
      samples/a_chair_that_looks_like_an_avocado/3.gif
  38. BIN
      samples/a_chair_that_looks_like_fruit/0.gif
  39. BIN
      samples/a_chair_that_looks_like_fruit/1.gif
  40. BIN
      samples/a_chair_that_looks_like_fruit/2.gif
  41. BIN
      samples/a_chair_that_looks_like_fruit/3.gif
  42. BIN
      samples/a_cheeseburger/0.gif
  43. BIN
      samples/a_cheeseburger/1.gif
  44. BIN
      samples/a_cheeseburger/2.gif
  45. BIN
      samples/a_cheeseburger/3.gif
  46. BIN
      samples/a_designer_dress/0.gif
  47. BIN
      samples/a_designer_dress/1.gif
  48. BIN
      samples/a_designer_dress/2.gif
  49. BIN
      samples/a_designer_dress/3.gif
  50. BIN
      samples/a_donut_with_pink_icing/0.gif
  51. BIN
      samples/a_donut_with_pink_icing/1.gif
  52. BIN
      samples/a_donut_with_pink_icing/2.gif
  53. BIN
      samples/a_donut_with_pink_icing/3.gif
  54. BIN
      samples/a_fast_car/0.gif
  55. BIN
      samples/a_fast_car/1.gif
  56. BIN
      samples/a_fast_car/2.gif
  57. BIN
      samples/a_fast_car/3.gif
  58. BIN
      samples/a_firetruck/0.gif
  59. BIN
      samples/a_firetruck/1.gif
  60. BIN
      samples/a_firetruck/2.gif
  61. BIN
      samples/a_firetruck/3.gif
  62. BIN
      samples/a_green_boot/0.gif
  63. BIN
      samples/a_green_boot/1.gif
  64. BIN
      samples/a_green_boot/2.gif
  65. BIN
      samples/a_green_boot/3.gif
  66. BIN
      samples/a_pair_of_shorts/0.gif
  67. BIN
      samples/a_pair_of_shorts/1.gif
  68. BIN
      samples/a_pair_of_shorts/2.gif
  69. BIN
      samples/a_pair_of_shorts/3.gif
  70. BIN
      samples/a_pair_of_sunglasses/0.gif
  71. BIN
      samples/a_pair_of_sunglasses/1.gif
  72. BIN
      samples/a_pair_of_sunglasses/2.gif
  73. BIN
      samples/a_pair_of_sunglasses/3.gif
  74. BIN
      samples/a_penguin/0.gif
  75. BIN
      samples/a_penguin/1.gif
  76. BIN
      samples/a_penguin/2.gif
  77. BIN
      samples/a_penguin/3.gif
  78. BIN
      samples/a_person_that_looks_like_a_leopard/0.gif
  79. BIN
      samples/a_person_that_looks_like_a_leopard/1.gif
  80. BIN
      samples/a_person_that_looks_like_a_leopard/2.gif
  81. BIN
      samples/a_person_that_looks_like_a_leopard/3.gif
  82. BIN
      samples/a_person_that_looks_like_a_zebra/0.gif
  83. BIN
      samples/a_person_that_looks_like_a_zebra/1.gif
  84. BIN
      samples/a_person_that_looks_like_a_zebra/2.gif
  85. BIN
      samples/a_person_that_looks_like_a_zebra/3.gif
  86. BIN
      samples/a_plate_of_mushy_green_peas/0.gif
  87. BIN
      samples/a_plate_of_mushy_green_peas/1.gif
  88. BIN
      samples/a_plate_of_mushy_green_peas/2.gif
  89. BIN
      samples/a_plate_of_mushy_green_peas/3.gif
  90. BIN
      samples/a_race_car/0.gif
  91. BIN
      samples/a_race_car/1.gif
  92. BIN
      samples/a_race_car/2.gif
  93. BIN
      samples/a_race_car/3.gif
  94. BIN
      samples/a_rusty_old_car/0.gif
  95. BIN
      samples/a_rusty_old_car/1.gif
  96. BIN
      samples/a_rusty_old_car/2.gif
  97. BIN
      samples/a_rusty_old_car/3.gif
  98. BIN
      samples/a_schoolbus/0.gif
  99. BIN
      samples/a_schoolbus/1.gif
  100. BIN
      samples/a_schoolbus/2.gif

3
.gitignore

@ -0,0 +1,3 @@
__pycache__/
.DS_Store
*.egg-info/

21
LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 OpenAI
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

73
README.md

@ -0,0 +1,73 @@
# Shap-E
This is the official code and model release for Shap-E.
* See [Usage](#usage) for guidance on how to use this repository.
* See [Samples](#samples) for examples of what our text-conditional model can generate.
# Samples
Here are some highlighted samples from our text-conditional model. For random samples on selected prompts, see [samples.md](samples.md).
<table>
<tbody>
<tr>
<td align="center">
<img src="samples/a_chair_that_looks_like_an_avocado/2.gif" alt="A chair that looks like an avocado">
</td>
<td align="center">
<img src="samples/an_airplane_that_looks_like_a_banana/3.gif" alt="An airplane that looks like a banana">
</td align="center">
<td align="center">
<img src="samples/a_spaceship/0.gif" alt="A spaceship">
</td>
</tr>
<tr>
<td align="center">A chair that looks<br>like an avocado</td>
<td align="center">An airplane that looks<br>like a banana</td>
<td align="center">A spaceship</td>
</tr>
<tr>
<td align="center">
<img src="samples/a_birthday_cupcake/3.gif" alt="A birthday cupcake">
</td>
<td align="center">
<img src="samples/a_chair_that_looks_like_a_tree/2.gif" alt="A chair that looks like a tree">
</td>
<td align="center">
<img src="samples/a_green_boot/3.gif" alt="A green boot">
</td>
</tr>
<tr>
<td align="center">A birthday cupcake</td>
<td align="center">A chair that looks<br>like a tree</td>
<td align="center">A green boot</td>
</tr>
<tr>
<td align="center">
<img src="samples/a_penguin/1.gif" alt="A penguin">
</td>
<td align="center">
<img src="samples/ube_ice_cream_cone/3.gif" alt="Ube ice cream cone">
</td>
<td align="center">
<img src="samples/a_bowl_of_vegetables/2.gif" alt="A bowl of vegetables">
</td>
</tr>
<tr>
<td align="center">A penguin</td>
<td align="center">Ube ice cream cone</td>
<td align="center">A bowl of vegetables</td>
</tr>
</tbody>
<table>
# Usage
Install with `pip install -e .`.
To get started with examples, see the following notebooks:
* [sample_text_to_3d.ipynb](shap_e/examples/sample_text_to_3d.ipynb) - sample a 3D model, conditioned on a text prompt
* [sample_image_to_3d.ipynb](shap_e/examples/sample_image_to_3d.ipynb) - sample a 3D model, conditioned on an synthetic view image.
* [encode_model.ipynb](shap_e/examples/encode_model.ipynb) - loads a 3D model or a trimesh, creates a batch of multiview renders and a point cloud, encodes them into a latent, and renders it back. For this to work, install Blender version 3.3.1 or higher, and set the environment variable `BLENDER_PATH` to the path of the Blender executable.

66
model-card.md

@ -0,0 +1,66 @@
# Model Card: Shap-E
This is the official codebase for running the latent diffusion models described in [Paper Link](https://openai.com). These models were trained and released by OpenAI. Following [Model Cards for Model Reporting (Mitchell et al.)](https://arxiv.org/abs/1810.03993), we're providing some information about how the models were trained and evaluated.
# Model Details
Shap-E includes two kinds of models: an encoder and a latent diffusion model.
1. **The encoder** converts 3D assets into the parameters of small neural networks which represent the 3D shape and texture as an implicit function. The resulting implicit function can be rendered from arbitrary viewpoints or imported into downstream applications as a mesh.
2. **The latent diffusion model** generates novel implicit functions conditioned on either images or text descriptions. As above, these samples can be rendered or exported as a mesh. Specifically, these models produce latents which must be linearly projected to get the final implicit function parameters. The final projection layer of the encoder is used for this purpose.
Like [Point-E](https://github.com/openai/point-e/blob/main/model-card.md), Shap-E can often generate coherent 3D objects when conditioned on a rendering from a single viewpoint. When conditioned on text prompts directly, Shap-E is also often capable of producing recognizable objects, although it sometimes struggles to combine multiple objects or concepts.
Samples from Shap-E are typically lower fidelity than professional 3D assets, and often have rough edges, holes, or blurry surface textures.
# Model Date
April 2023
# Model Versions
The following model checkpoints are available in this repository:
* `transmitter` - the encoder and corresponding projection layers for converting encoder outputs into implicit neural representations.
* `decoder` - just the final projection layer component of `transmitter`. This is a smaller checkpoint than `transmitter`, since it does not include parameters for encoding 3D assets. This is the minimum required model to convert diffusion outputs into implicit neural representations.
* `text300M` - the text-conditional latent diffusion model.
* `image300M` - the image-conditional latent diffusion model.
# Paper & Samples
[Paper link](https://openai.com) / [Samples](samples.md)
# Training data
The encoder and image-conditional diffusion models are trained on the [same dataset as Point-E](https://github.com/openai/point-e/blob/main/model-card.md#training-data). However, a few changes to the post-processing were made:
* We rendered 60 views (instead of 20) of each model when computing point clouds, to avoid small cracks.
* We produced 16K points in each point cloud instead of 4K.
* We simplified the lighting and material setup to only include diffuse materials.
For our text-conditional diffusion model, we expanded our dataset with roughly a million more 3D assets. Additionally, we collected 120K captions from human annotators for a high-quality subset of our 3D assets.
# Evaluated Use
We release these models with the intention of furthering progress in the field of generative modeling. However, we acknowledge that our models have certain constraints and biases, which is why we advise against employing them for commercial purposes at this time. We are aware that the utilization of our models could extend to areas beyond our expectations, and defining specific criteria for what is considered suitable for "research" purposes presents a challenge. Specifically, we advise caution when using these models in contexts that demand high accuracy, where minor imperfections in the generated 3D assets could have adverse consequences.
Specifically, these models have been evaluated on the following tasks for research purposes:
* Generating 3D renderings or meshes conditioned on single, synthetic images
* Generating 3D renderings or meshes conditioned on text descriptions
# Performance & Limitations
Our image-conditional model has only been evaluated on a highly specific distribution of synthetic renderings. Even in these cases, the model still sometimes fails to infer the correct occluded parts of an object, or produces geometry that is inconsistent with the given rendered images. These failure modes are similar to those of Point-E. The resulting 3D assets often have rough edges, holes, or blurry surface textures.
Our text-conditional model can also produce a somewhat large and diverse vocabulary of objects. This model is often capable of producing objects with requested colors and textures, and sometimes even combining multiple objects. However, it often fails for more complex prompts that require placing multiple objects in a scene or binding attributes to objects. It also typically fails to produce a desired number of objects when a certain quantity is requested.
We find that our text-conditional model can sometimes produce samples which reflect gender biases. For example, samples for "a nurse" typically have a different body shape than samples for "a doctor". When probing for potential misuses, we also found that our text-conditional model is capable of producing 3D assets related to violence, such as guns or tanks. However, the resulting quality of these samples is poor enough that they look unrealistic and toy like.
As with Point-E, our dataset consists of many simple, cartoonish 3D assets, and our generative models are prone to imitating this style.
We believe our models will have many potential use cases. For example, our text-conditional model could enable users to quickly produce many 3D assets, allowing for rapid prototyping for computer graphics applications or 3D printing.
The use of 3D printing in concert with our models could potentially be harmful, for example if used to create dangerous objects or fabricate tools or parts that are deployed without external validation.
Generative 3D models share many challenges and constraints with image generation models. This includes the tendency to generate content that may be biased or detrimental, as well as the potential for dual-use applications. As the capabilities of these models evolve, further investigation is required to gain a clearer understanding of how these risks manifest.

6
samples.md

File diff suppressed because one or more lines are too long

BIN
samples/a_birthday_cupcake/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
samples/a_birthday_cupcake/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
samples/a_birthday_cupcake/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
samples/a_birthday_cupcake/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
samples/a_bowl_of_vegetables/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
samples/a_bowl_of_vegetables/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
samples/a_bowl_of_vegetables/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
samples/a_bowl_of_vegetables/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
samples/a_campfire/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
samples/a_campfire/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
samples/a_campfire/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
samples/a_campfire/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
samples/a_car_that_looks_like_an_avocado/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
samples/a_car_that_looks_like_an_avocado/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
samples/a_car_that_looks_like_an_avocado/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
samples/a_car_that_looks_like_an_avocado/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
samples/a_chair_that_looks_like_a_swimming_pool/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
samples/a_chair_that_looks_like_a_swimming_pool/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
samples/a_chair_that_looks_like_a_swimming_pool/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
samples/a_chair_that_looks_like_a_swimming_pool/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_chair_that_looks_like_a_tree/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
samples/a_chair_that_looks_like_a_tree/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
samples/a_chair_that_looks_like_a_tree/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
samples/a_chair_that_looks_like_a_tree/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
samples/a_chair_that_looks_like_a_zebra/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
samples/a_chair_that_looks_like_a_zebra/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
samples/a_chair_that_looks_like_a_zebra/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
samples/a_chair_that_looks_like_a_zebra/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
samples/a_chair_that_looks_like_an_avocado/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_chair_that_looks_like_an_avocado/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
samples/a_chair_that_looks_like_an_avocado/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
samples/a_chair_that_looks_like_an_avocado/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_chair_that_looks_like_fruit/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
samples/a_chair_that_looks_like_fruit/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
samples/a_chair_that_looks_like_fruit/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
samples/a_chair_that_looks_like_fruit/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
samples/a_cheeseburger/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
samples/a_cheeseburger/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
samples/a_cheeseburger/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
samples/a_cheeseburger/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
samples/a_designer_dress/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
samples/a_designer_dress/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
samples/a_designer_dress/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
samples/a_designer_dress/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
samples/a_donut_with_pink_icing/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
samples/a_donut_with_pink_icing/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
samples/a_donut_with_pink_icing/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
samples/a_donut_with_pink_icing/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
samples/a_fast_car/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_fast_car/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
samples/a_fast_car/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
samples/a_fast_car/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_firetruck/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
samples/a_firetruck/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
samples/a_firetruck/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
samples/a_firetruck/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
samples/a_green_boot/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
samples/a_green_boot/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_green_boot/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
samples/a_green_boot/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
samples/a_pair_of_shorts/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
samples/a_pair_of_shorts/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
samples/a_pair_of_shorts/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_pair_of_shorts/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
samples/a_pair_of_sunglasses/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_pair_of_sunglasses/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
samples/a_pair_of_sunglasses/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
samples/a_pair_of_sunglasses/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_penguin/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
samples/a_penguin/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
samples/a_penguin/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
samples/a_penguin/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_person_that_looks_like_a_leopard/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
samples/a_person_that_looks_like_a_leopard/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
samples/a_person_that_looks_like_a_leopard/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
samples/a_person_that_looks_like_a_leopard/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
samples/a_person_that_looks_like_a_zebra/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
samples/a_person_that_looks_like_a_zebra/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
samples/a_person_that_looks_like_a_zebra/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
samples/a_person_that_looks_like_a_zebra/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
samples/a_plate_of_mushy_green_peas/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
samples/a_plate_of_mushy_green_peas/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
samples/a_plate_of_mushy_green_peas/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
samples/a_plate_of_mushy_green_peas/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
samples/a_race_car/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_race_car/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_race_car/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
samples/a_race_car/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
samples/a_rusty_old_car/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
samples/a_rusty_old_car/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
samples/a_rusty_old_car/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
samples/a_rusty_old_car/3.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
samples/a_schoolbus/0.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
samples/a_schoolbus/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
samples/a_schoolbus/2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save