[
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/latest/usage/project/#working-with-version-control\n.pdm.toml\n.pdm-python\n.pdm-build/\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "<div align =\"center\">\n<img src=\"./assets/logo.jpeg\" width=\"20%\">\n<h1> ControlAR </h1>\n<h3> Controllable Image Generation with Autoregressive Models </h3>\n\nZongming Li<sup>1,\\*</sup>, [Tianheng Cheng](https://scholar.google.com/citations?user=PH8rJHYAAAAJ&hl=zh-CN)<sup>1,\\*</sup>, [Shoufa Chen](https://shoufachen.com/)<sup>2</sup>, [Peize Sun](https://peizesun.github.io/)<sup>2</sup>, Haocheng Shen<sup>3</sup>,Longjin Ran<sup>3</sup>, Xiaoxin Chen<sup>3</sup>, [Wenyu Liu](http://eic.hust.edu.cn/professor/liuwenyu)<sup>1</sup>, [Xinggang Wang](https://xwcv.github.io/)<sup>1,📧</sup>\n\n<sup>1</sup> Huazhong University of Science and Technology,\n<sup>2</sup> The University of Hong Kong\n<sup>3</sup> vivo AI Lab\n\n<b>ICLR 2025</b>\n\n(\\* equal contribution, 📧 corresponding author)\n\n[![arxiv paper](https://img.shields.io/badge/arXiv-Paper-red)](https://arxiv.org/abs/2410.02705)\n[![demo](https://img.shields.io/badge/Demo-🤗-orange)](https://huggingface.co/spaces/wondervictor/ControlAR)\n[![checkpoints](https://img.shields.io/badge/HuggingFace-🤗-green)](https://huggingface.co/wondervictor/ControlAR)\n\n</div>\n\n\n<div align=\"center\">\n<img src=\"./assets/vis.png\">\n</div>\n\n\n## News\n`[2025-01-23]:` Our ControlAR has been accepted by ICLR 2025 🚀 !\\\n`[2024-12-12]:` We introduce a control strength factor, employ a larger control encoder(dinov2-base), and optimize text alignment capabilities along with generation diversity. New model weight: depth_base.safetensors and edge_base.safetensors. The edge_base.safetensors can handle three types of edges, including Canny, HED, and Lineart.\\\n`[2024-10-31]:` The code and models have been released!\\\n`[2024-10-04]:` We have released the [technical report of ControlAR](https://arxiv.org/abs/2410.02705). Code, models, and demos are coming soon!\n\n\n## Highlights\n\n* ControlAR explores an effective yet simple *conditional decoding* strategy for adding spatial controls to autoregressive models, e.g., [LlamaGen](https://github.com/FoundationVision/LlamaGen), from a sequence perspective.\n\n* ControlAR supports *arbitrary-resolution* image generation with autoregressive models without hand-crafted special tokens or resolution-aware prompts.\n\n## TODO\n\n- [x] release code & models.\n- [x] release demo code and HuggingFace demo: [HuggingFace Spaces 🤗](https://huggingface.co/spaces/wondervictor/ControlAR)\n\n\n## Results\n\nWe provide both quantitative and qualitative comparisons with diffusion-based methods in the technical report! \n\n<div align=\"center\">\n<img src=\"./assets/comparison.png\">\n</div>\n\n\n## Models\n\nWe released checkpoints of text-to-image ControlAR on different controls and settings, *i.e.* arbitrary-resolution generation.\n\n| AR Model | Type | Control encoder | Control | Arbitrary-Resolution | Checkpoint |\n| :--------| :--: | :-------------: | :-----: | :------------------: | :--------: |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-small | Canny Edge | ✅ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/canny_MR.safetensors) |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-small | Depth | ✅ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/depth_MR.safetensors) |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-small | HED Edge | ❌ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/hed.safetensors) |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-small | Seg. Mask | ❌ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/seg_cocostuff.safetensors) |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-base | Edge (Canny, Hed, Lineart) | ❌ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/edge_base.safetensors) |\n| [LlamaGen-XL](https://github.com/FoundationVision/LlamaGen#-text-conditional-image-generation) | t2i | DINOv2-base | Depth | ❌ | [ckpt](https://huggingface.co/wondervictor/ControlAR/blob/main/depth_base.safetensors) |\n\n\n\n## Getting Started\n\n### Installation\n\n```bash\nconda create -n ControlAR python=3.10\ngit clone https://github.com/hustvl/ControlAR.git\ncd ControlAR\npip install torch==2.1.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118\npip install -r requirements.txt\npip3 install -U openmim \nmim install mmengine \nmim install \"mmcv==2.1.0\"\npip3 install \"mmsegmentation>=1.0.0\"\npip3 install mmdet\ngit clone https://github.com/open-mmlab/mmsegmentation.git\n```\n\n### Pretrained Checkpoints for ControlAR\n\n|tokenizer| text encoder |LlamaGen-B|LlamaGen-L|LlamaGen-XL|\n|:-------:|:------------:|:--------:|:--------:|:---------:|\n|[vq_ds16_t2i.pt](https://huggingface.co/peizesun/llamagen_t2i/resolve/main/vq_ds16_t2i.pt)|[flan-t5-xl](https://huggingface.co/google/flan-t5-xl)|[c2i_B_256.pt](https://huggingface.co/FoundationVision/LlamaGen/resolve/main/c2i_B_256.pt)|[c2i_L_256.pt](https://huggingface.co/FoundationVision/LlamaGen/resolve/main/c2i_L_256.pt)|[t2i_XL_512.pt](https://huggingface.co/peizesun/llamagen_t2i/resolve/main/t2i_XL_stage2_512.pt)|\n\nWe recommend storing them in the following structures:\n```\n|---checkpoints\n      |---t2i\n            |---canny/canny_MR.safetensors\n            |---hed/hed.safetensors\n            |---depth/depth_MR.safetensors\n            |---seg/seg_cocostuff.safetensors\n            |---edge_base.safetensors\n            |---depth_base.safetensors\n      |---t5-ckpt\n            |---flan-t5-xl\n                  |---config.json\n                  |---pytorch_model-00001-of-00002.bin\n                  |---pytorch_model-00002-of-00002.bin\n                  |---pytorch_model.bin.index.json\n                  |---tokenizer.json\n      |---vq\n            |---vq_ds16_c2i.pt\n            |---vq_ds16_t2i.pt\n      |---llamagen (Only necessary for training)\n            |---c2i_B_256.pt\n            |---c2i_L_256.pt\n            |---t2i_XL_stage2_512.pt\n```\n\n### Demo\n\nComing soon...\n\n\n###  Sample & Generation\n\n#### 1. Class-to-image genetation\n\n```bash\npython autoregressive/sample/sample_c2i.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_c2i.pt \\\n--gpt-ckpt checkpoints/c2i/canny/LlamaGen-L.pt \\\n--gpt-model GPT-L --seed 0 --condition-type canny\n```\n\n#### 2. Text-to-image generation\n\n*Generate an image using HED edge and text-to-image ControlAR:*\n\n```bash\npython autoregressive/sample/sample_t2i.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/hed/hed.safetensors \\\n--gpt-model GPT-XL --image-size 512 \\\n--condition-type hed --seed 0 --condition-path condition/example/t2i/multigen/eye.png\n```\n*Generate an image using segmentation mask and text-to-image ControlAR:*\n\n```bash\npython autoregressive/sample/sample_t2i.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/seg/seg_cocostuff.safetensors \\\n--gpt-model GPT-XL --image-size 512 \\\n--condition-type seg --seed 0 --condition-path condition/example/t2i/cocostuff/doll.png \\\n--prompt 'A stuffed animal wearing a mask and a leash, sitting on a pink blanket'\n```\n\n#### 3. Text-to-image generation with adjustable control strength\n*Generate an image using depth map and text-to-image ControlAR:*\n\n```bash\npython autoregressive/sample/sample_t2i.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/depth_base.safetensors \\\n--gpt-model GPT-XL --image-size 512 \\\n--condition-type seg --seed 0 --condition-path condition/example/t2i/multigen/bird.jpg \\\n--prompt 'A bird made of blue crystal' \\\n--adapter-size base \\\n--control-strength 0.6\n```\n\n*Generate an image using lineart edge and text-to-image ControlAR:*\n\n```bash\npython autoregressive/sample/sample_t2i.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/edge_base.safetensors \\\n--gpt-model GPT-XL --image-size 512 \\\n--condition-type lineart --seed 0 --condition-path condition/example/t2i/multigen/girl.jpg \\\n--prompt 'A girl with blue hair' \\\n--adapter-size base \\\n--control-strength 0.6\n```\n\n(you can change lineart to canny_base or hed)\n\n\n#### 4. Arbitrary-resolution generation\n\n```bash\npython3 autoregressive/sample/sample_t2i_MR.py --vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/depth_MR.safetensors --gpt-model GPT-XL --image-size 768 \\\n--condition-type depth --condition-path condition/example/t2i/multi_resolution/bird.jpg \\\n--prompt 'colorful bird' --seed 0\n```\n\n```bash\npython3 autoregressive/sample/sample_t2i_MR.py --vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/canny_MR.safetensors --gpt-model GPT-XL --image-size 768 \\\n--condition-type canny --condition-path condition/example/t2i/multi_resolution/bird.jpg \\\n--prompt 'colorful bird' --seed 0\n```\n\n### Preparing Datasets\nWe provide the dataset datails for evaluation and training. If you don't want to train ControlAR, just download the validation splits.\n\n#### 1. Class-to-image\n* Download [ImageNet](https://image-net.org/) and save it to `data/imagenet/data`.\n\n#### 2. Text-to-image\n* Download [ADE20K with caption](https://huggingface.co/datasets/limingcv/Captioned_ADE20K)(~7GB) and save the `.parquet` files to `data/Captioned_ADE20K/data`. \n* Download [COCOStuff with caption](https://huggingface.co/datasets/limingcv/Captioned_COCOStuff)( ~62GB) and save the .parquet files to `data/Captioned_COCOStuff/data`.  \n* Download [MultiGen-20M](https://huggingface.co/datasets/limingcv/MultiGen-20M_depth)( ~1.22TB) and save the .parquet files to `data/MultiGen20M/data`.  \n\n#### 3. Preprocessing datasets\nTo save training time, we adopt the tokenizer to pre-process the images with the text prompts.\n\n* ImageNet\n```bash\nbash scripts/autoregressive/extract_file_imagenet.sh \\\n--vq-ckpt checkpoints/vq/vq_ds16_c2i.pt \\\n--data-path data/imagenet/data/val \\\n--code-path data/imagenet/val/imagenet_code_c2i_flip_ten_crop \\\n--ten-crop --crop-range 1.1 --image-size 256\n```\n* ADE20k\n```sh\nbash scripts/autoregressive/extract_file_ade.sh \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--data-path data/Captioned_ADE20K/data --code-path data/Captioned_ADE20K/val \\\n--ten-crop --crop-range 1.1 --image-size 512 --split validation\n```\n* COCOStuff\n```bash\nbash scripts/autoregressive/extract_file_cocostuff.sh \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--data-path data/Captioned_COCOStuff/data --code-path data/Captioned_COCOStuff/val \\\n--ten-crop --crop-range 1.1 --image-size 512 --split validation\n```\n* MultiGen\n```bash\nbash scripts/autoregressive/extract_file_multigen.sh \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--data-path data/MultiGen20M/data --code-path data/MultiGen20M/val \\\n--ten-crop --crop-range 1.1 --image-size 512 --split validation\n```\n\n### Testing and Evaluation\n\n#### 1. Class-to-image generation on ImageNet\n\n```bash\nbash scripts/autoregressive/test_c2i.sh \\\n--vq-ckpt ./checkpoints/vq/vq_ds16_c2i.pt \\\n--gpt-ckpt ./checkpoints/c2i/canny/LlamaGen-L.pt \\\n--code-path /path/imagenet/val/imagenet_code_c2i_flip_ten_crop \\\n--gpt-model GPT-L --condition-type canny --get-condition-img True \\\n--sample-dir ./sample --save-image True\n```\n\n```bash\npython create_npz.py --generated-images ./sample/imagenet/canny\n```\nThen download imagenet [validation data](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/VIRTUAL_imagenet256_labeled.npz) which contains 10000 images, or you can use the whole validation data as reference data by running [val.sh](scripts/tokenizer/val.sh). \n\nCalculate the FID score:\n```bash\npython evaluations/c2i/evaluator.py /path/imagenet/val/FID/VIRTUAL_imagenet256_labeled.npz \\\nsample/imagenet/canny.npz\n```\n\n#### 2. Text-to-image generation on ADE20k\n\nDownload Mask2Former([weight](https://download.openmmlab.com/mmsegmentation/v0.5/mask2former/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640_20221203_235933-7120c214.pth)) and save it to `evaluations/`.  \n\nUse this command to get 2000 images based on the segmentation mask:\n\n```bash\nbash scripts/autoregressive/test_t2i.sh --vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/seg/seg_ade20k.pt \\\n--code-path data/Captioned_ADE20K/val --gpt-model GPT-XL --image-size 512 \\\n--sample-dir sample/ade20k --condition-type seg --seed 0\n```\nCalculate mIoU of the segmentation masks from the generated images:\n```sh\npython evaluations/ade20k_mIoU.py\n```\n\n#### 3. Text-to-image generation on COCOStuff\n\nDownload DeepLabV3([weight](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth)) and save it to `evaluations/`.\n\nGenerate images using segmentation masks as condition controls:\n```bash\nbash scripts/autoregressive/test_t2i.sh --vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/seg/seg_cocostuff.pt \\\n--code-path data/Captioned_COCOStuff/val --gpt-model GPT-XL --image-size 512 \\\n--sample-dir sample/cocostuff --condition-type seg --seed 0\n```\nCalculate mIoU of the segmentation masks from the generated images:\n```bash\npython evaluations/cocostuff_mIoU.py\n```\n\n#### 4. Text-to-image generation on MultiGen-20M\n\nWe adopt **generation with HED edges** as the example:\n\nGenerate 5000 images based on the HED edges generated from validation images\n```sh\nbash scripts/autoregressive/test_t2i.sh --vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/t2i/hed/hed.safetensors --code-path data/MultiGen20M/val \\\n--gpt-model GPT-XL --image-size 512 --sample-dir sample/multigen/hed \\\n--condition-type hed --seed 0\n```\n\nEvaluate the conditional consistency (SSIM):\n```bash\npython evaluations/hed_ssim.py\n```\nCalculate the FID score:\n```bash\npython evaluations/clean_fid.py --val-images data/MultiGen20M/val/image --generated-images sample/multigen/hed/visualization\n```\n\n### Training ControlAR\n\n#### 1. Class-to-image (Canny)\n\n```bash\nbash scripts/autoregressive/train_c2i_canny.sh --cloud-save-path output \\\n--code-path data/imagenet/train/imagenet_code_c2i_flip_ten_crop \\\n--image-size 256 --gpt-model GPT-B --gpt-ckpt checkpoints/llamagen/c2i_B_256.pt\n```\n\n#### 2. Text-to-image (Canny)\n\n```bash\nbash scripts/autoregressive/train_t2i_canny.sh \n```\n\n\n## Acknowledgments\n\nThe development of ControlAR is based on [LlamaGen](https://github.com/FoundationVision/LlamaGen), [ControlNet](https://github.com/lllyasviel/ControlNet), [ControlNet++](https://github.com/liming-ai/ControlNet_Plus_Plus), and [AiM](https://github.com/hp-l33/AiM), and we sincerely thank the contributors for thoese great works!\n\n## Citation\nIf you find ControlAR is useful in your research or applications, please consider giving us a star 🌟 and citing it by the following BibTeX entry.\n\n```bibtex\n@inproceedings{ControlAR,\n      title={ControlAR: Controllable Image Generation with Autoregressive Models}, \n      author={Li, Zongming and Cheng, Tianheng and Chen, Shoufa and Sun, Peize and Shen, Haocheng and Ran, Longjin and Chen, Xiaoxin and Liu, Wenyu and Wang, Xinggang},\n      booktitle={International Conference on Learning Representations},\n      year={2025}\n}\n```\n\n"
  },
  {
    "path": "autoregressive/models/README.md",
    "content": "Download the vit weight first \n\nViT-small: https://huggingface.co/WinKawaks/vit-small-patch16-224 \\\nDinov2-small: https://huggingface.co/facebook/dinov2-small \\\nDinov2-base: https://huggingface.co/facebook/dinov2-base\n\nPut them here\n"
  },
  {
    "path": "autoregressive/models/dinov2_adapter.py",
    "content": "from transformers import AutoImageProcessor, AutoModel\nfrom PIL import Image\nimport requests\nimport torch\nimport torch.nn as nn\n\n\nclass Dinov2_Adapter(nn.Module):\n    def __init__(self, input_dim=1, output_dim=768, attention=False, pool=False, nheads=8, dropout=0.1, adapter_size='small', condition_type='canny'):\n        super(Dinov2_Adapter, self).__init__()\n        print(f\"Choose adapter size: {adapter_size}\")\n        print(f\"condition type: {condition_type}\")\n        self.model = AutoModel.from_pretrained(f'autoregressive/models/dinov2-{adapter_size}')\n        self.condition_type = condition_type\n    \n    def to_patch14(self, input):\n        H, W = input.shape[2:]\n        new_H = (H // 16) * 14\n        new_W = (W // 16) * 14\n        if self.condition_type in ['canny', 'seg']:\n            output = torch.nn.functional.interpolate(input, size=(new_H, new_W), mode='nearest')#, align_corners=True)  canny, seg\n        else:\n            output = torch.nn.functional.interpolate(input, size=(new_H, new_W), mode='bicubic', align_corners=True) # depth, lineart, hed\n        return output\n        \n    def forward(self, x):\n        x = self.to_patch14(x)\n        x = self.model(x)\n        return x.last_hidden_state[:, 1:]\n\n\nif __name__ == '__main__':\n    model = Dinov2_Adapter().cuda()\n    inputs = torch.randn(4,3,512,512).cuda()\n    outputs = model(inputs)\n    print(outputs.shape)"
  },
  {
    "path": "autoregressive/models/generate.py",
    "content": "# Modified from:\n#   gpt-fast: https://github.com/pytorch-labs/gpt-fast/blob/main/generate.py\n#   DiT:      https://github.com/facebookresearch/DiT/blob/main/models.py\nimport torch\nimport torch.nn as nn\nfrom torch.nn import functional as F\nimport torch._dynamo.config\nimport torch._inductor.config\nimport copy\nimport time\n# torch._inductor.config.coordinate_descent_tuning = True\n# torch._inductor.config.triton.unique_kernel_names = True\n# torch._inductor.config.fx_graph_cache = True # Experimental feature to reduce compilation times, will be on by default in future\n\n\n### from https://huggingface.co/transformers/v3.2.0/_modules/transformers/generation_utils.html\ndef top_k_top_p_filtering(\n    logits,\n    top_k: int = 0,\n    top_p: float = 1.0,\n    filter_value: float = -float(\"Inf\"),\n    min_tokens_to_keep: int = 1,\n):\n    \"\"\"Filter a distribution of logits using top-k and/or nucleus (top-p) filtering\n    Args:\n        logits: logits distribution shape (batch size, vocabulary size)\n        if top_k > 0: keep only top k tokens with highest probability (top-k filtering).\n        if top_p < 1.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering).\n            Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751)\n        Make sure we keep at least min_tokens_to_keep per batch example in the output\n    From: https://gist.github.com/thomwolf/1a5a29f6962089e871b94cbd09daf317\n    \"\"\"\n    if top_k > 0:\n        # import pdb;pdb.set_trace()\n        top_k = min(max(top_k, min_tokens_to_keep), logits.size(-1))  # Safety check\n        # Remove all tokens with a probability less than the last token of the top-k\n        indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None]\n        logits[indices_to_remove] = filter_value\n\n    if top_p < 1.0:\n        sorted_logits, sorted_indices = torch.sort(logits, descending=True)\n        cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1)\n\n        # Remove tokens with cumulative probability above the threshold (token with 0 are kept)\n        sorted_indices_to_remove = cumulative_probs > top_p\n        if min_tokens_to_keep > 1:\n            # Keep at least min_tokens_to_keep (set to min_tokens_to_keep-1 because we add the first one below)\n            sorted_indices_to_remove[..., :min_tokens_to_keep] = 0\n        # Shift the indices to the right to keep also the first token above the threshold\n        sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()\n        sorted_indices_to_remove[..., 0] = 0\n\n        # scatter sorted tensors to original indexing\n        indices_to_remove = sorted_indices_to_remove.scatter(1, sorted_indices, sorted_indices_to_remove)\n        logits[indices_to_remove] = filter_value\n    return logits\n\n\ndef sample(logits, temperature: float=1.0, top_k: int=2000, top_p: float=1.0, sample_logits=True):        \n    logits = logits[:, -1, :] / max(temperature, 1e-5)\n    if top_k > 0 or top_p < 1.0:\n        logits = top_k_top_p_filtering(logits, top_k=top_k, top_p=top_p)\n    probs = F.softmax(logits, dim=-1)\n    # values, indices = torch.max(probs, dim=1, keepdim=True)\n    # mask = (probs == values).float()\n    # probs = probs * (1 - mask)\n    # values, indices = torch.max(probs, dim=1, keepdim=True)\n    # mask = (probs == values).float()\n    # probs = probs * (1 - mask)\n    if sample_logits:\n        idx = torch.multinomial(probs, num_samples=1)\n    else:\n        _, idx = torch.topk(probs, k=1, dim=-1)\n    return idx, probs\n\n\ndef logits_to_probs(logits, temperature: float = 1.0, top_p: float=1.0, top_k: int = None, **kwargs):\n    logits = logits / max(temperature, 1e-5)\n    if top_k > 0 or top_p < 1.0:\n        logits = top_k_top_p_filtering(logits, top_k=top_k, top_p=top_p)\n    probs = torch.nn.functional.softmax(logits, dim=-1)\n    return probs\n\n\ndef prefill(model, cond_idx: torch.Tensor, input_pos: torch.Tensor, cfg_scale: float, condition:torch.Tensor, control_strength: float=1, **sampling_kwargs):\n    if cfg_scale > 1.0:\n        logits, _ = model(None, cond_idx, input_pos, condition=condition, control_strength=control_strength)\n        logits_combined = logits\n        cond_logits, uncond_logits = torch.split(logits_combined, len(logits_combined) // 2, dim=0)\n        logits = uncond_logits + (cond_logits - uncond_logits) * cfg_scale\n    else:\n        logits, _ = model(None, cond_idx, input_pos, condition=condition)\n\n    return sample(logits, **sampling_kwargs)[0]\n\n\ndef decode_one_token(model, x: torch.Tensor, input_pos: torch.Tensor, cfg_scale: float, cfg_flag: bool, condition: torch.Tensor,  **sampling_kwargs):\n    assert input_pos.shape[-1] == 1\n    if cfg_scale > 1.0:\n        x_combined = torch.cat([x, x])\n        logits, _ = model(x_combined, cond_idx=None, input_pos=input_pos, condition=condition)\n        logits_combined = logits\n        cond_logits, uncond_logits = torch.split(logits_combined, len(logits_combined) // 2, dim=0) \n        if cfg_flag:\n            logits = uncond_logits + (cond_logits - uncond_logits) * cfg_scale\n        else:\n            logits = cond_logits\n    else:\n        logits, _ = model(x, cond_idx=None, input_pos=input_pos, condition=None)\n    return sample(logits, **sampling_kwargs)\n\n\ndef decode_n_tokens(\n    model, cur_token: torch.Tensor, input_pos: torch.Tensor, num_new_tokens: int, \n    cfg_scale: float, cfg_interval: int, condition: torch.Tensor,\n    **sampling_kwargs):\n    new_tokens, new_probs = [], []\n    cfg_flag = True\n    for i in range(num_new_tokens):\n        with torch.backends.cuda.sdp_kernel(enable_flash=False, enable_mem_efficient=False, enable_math=True): # Actually better for Inductor to codegen attention here\n            if cfg_interval > -1 and i > cfg_interval:\n                cfg_flag = False\n            next_token, next_prob = decode_one_token(\n                model, cur_token, input_pos, cfg_scale, cfg_flag, condition=condition, **sampling_kwargs\n            )\n            input_pos += 1\n            new_tokens.append(next_token.clone())\n            new_probs.append(next_prob.clone())\n            cur_token = next_token.view(-1, 1)\n    \n    return new_tokens, new_probs\n\n\n@torch.no_grad()\ndef generate(model, cond, max_new_tokens, emb_masks=None, cfg_scale=1.0, cfg_interval=-1, condition=None, condition_null=None, condition_token_nums=0, control_strength=1, **sampling_kwargs):\n    if condition is not None:\n        condition = model.adapter(condition)\n        condition = model.adapter_mlp(condition)\n    if model.model_type == 'c2i':\n        if cfg_scale > 1.0:\n            cond_null = torch.ones_like(cond) * model.num_classes\n            cond_combined = torch.cat([cond, cond_null])\n            if condition is not None:\n                condition_null = torch.zeros_like(condition)\n                condition_combined = torch.cat((condition, condition_null), dim=0)\n            else:\n                condition_combined = None\n        else:\n            cond_combined = cond\n            if condition is not None:\n                condition_combined = condition\n            else:\n                condition_combined = None\n        T = 1+condition_token_nums\n    elif model.model_type == 't2i':\n        if cfg_scale > 1.0:\n            cond_null = torch.zeros_like(cond) + model.cls_embedding.uncond_embedding\n            cond_combined = torch.cat([cond, cond_null])\n            \n            if condition is not None:\n                condition_null = torch.zeros_like(condition)\n                condition_combined = torch.cat((condition, condition_null), dim=0)\n            else:\n                condition_combined = None\n        else:\n            cond_combined = cond\n            if condition is not None:\n                condition_combined = condition\n            else:\n                condition_combined = None\n        T = cond.shape[1]      \n    else:\n        raise Exception(\"please check model type\")\n\n    T_new = T + max_new_tokens\n    max_seq_length = T_new\n    max_batch_size = cond.shape[0]\n\n    device = cond.device\n    with torch.device(device):\n        max_batch_size_cfg = max_batch_size * 2 if cfg_scale > 1.0 else max_batch_size\n        model.setup_caches(max_batch_size=max_batch_size_cfg, max_seq_length=max_seq_length, dtype=model.tok_embeddings.weight.dtype)\n    \n    if emb_masks is not None:\n        assert emb_masks.shape[0] == max_batch_size\n        assert emb_masks.shape[-1] == T\n        if cfg_scale > 1.0:\n            model.causal_mask[:, :, :T] = model.causal_mask[:, :, :T] * torch.cat([emb_masks, emb_masks]).unsqueeze(1)\n        else:\n            model.causal_mask[:, :, :T] = model.causal_mask[:, :, :T] * emb_masks.unsqueeze(1)\n\n        eye_matrix = torch.eye(model.causal_mask.size(1), model.causal_mask.size(2), device=device)\n        model.causal_mask[:] = model.causal_mask * (1 - eye_matrix) + eye_matrix\n    \n    # create an empty tensor of the expected final shape and fill in the current tokens\n    seq = torch.empty((max_batch_size, T_new), dtype=torch.int, device=device)\n    input_pos = torch.arange(0, T, device=device)\n    next_token = prefill(model, cond_combined, input_pos, cfg_scale, condition_combined, control_strength, **sampling_kwargs)\n    seq[:, T:T+1] = next_token\n\n    input_pos = torch.tensor([T], device=device, dtype=torch.int)\n    generated_tokens, _ = decode_n_tokens(model, next_token, input_pos, max_new_tokens-1, cfg_scale, cfg_interval, condition=condition_combined, **sampling_kwargs)\n    seq[:, T+1:] = torch.cat(generated_tokens, dim=1)\n    return seq[:, T:]\n"
  },
  {
    "path": "autoregressive/models/gpt.py",
    "content": "# Modified from:\n#   VQGAN:    https://github.com/CompVis/taming-transformers/blob/master/taming/modules/transformer/mingpt.py\n#   DiT:      https://github.com/facebookresearch/DiT/blob/main/models.py  \n#   nanoGPT:  https://github.com/karpathy/nanoGPT/blob/master/model.py\n#   llama:    https://github.com/facebookresearch/llama/blob/main/llama/model.py\n#   gpt-fast: https://github.com/pytorch-labs/gpt-fast/blob/main/model.py\n#   PixArt:   https://github.com/PixArt-alpha/PixArt-alpha/blob/master/diffusion/model/nets/PixArt_blocks.py\nfrom dataclasses import dataclass\nfrom typing import Optional, List\n\nimport io\nimport torch\nimport torch.nn as nn\nfrom torch.nn import functional as F\nfrom utils.drop_path import DropPath\nfrom autoregressive.models.dinov2_adapter import Dinov2_Adapter\nfrom autoregressive.models.vit_adapter import ViT_Adapter\n\ndef get_causal_mask(seq_length):\n    mask = torch.triu(torch.ones(seq_length, seq_length), diagonal=1).type(torch.bool)\n    mask = mask.masked_fill(mask, float('-inf')) \n    mask = mask.masked_fill(~mask, float(0.0))\n    return mask\n\ndef find_multiple(n: int, k: int):\n    if n % k == 0:\n        return n\n    return n + k - (n % k)\n\n@dataclass\nclass ModelArgs:\n    dim: int = 4096\n    n_layer: int = 32\n    n_head: int = 32\n    n_kv_head: Optional[int] = None\n    multiple_of: int = 256  # make SwiGLU hidden layer size multiple of large power of 2\n    ffn_dim_multiplier: Optional[float] = None\n    rope_base: float = 10000\n    norm_eps: float = 1e-5\n    initializer_range: float = 0.02\n    \n    token_dropout_p: float = 0.1\n    attn_dropout_p: float = 0.0\n    resid_dropout_p: float = 0.1\n    ffn_dropout_p: float = 0.1\n    drop_path_rate: float = 0.0\n\n    num_classes: int = 1000\n    caption_dim: int = 2048\n    class_dropout_prob: float = 0.1\n    model_type: str = 'c2i'\n\n    vocab_size: int = 16384\n    cls_token_num: int = 1\n    block_size: int = 256\n    max_batch_size: int = 32\n    max_seq_len: int = 2048\n\n    condition_token_num: int = 256\n    image_size: int = 256\n\n\n#################################################################################\n#                      Embedding Layers for Class Labels                        #\n#################################################################################\nclass LabelEmbedder(nn.Module):\n    \"\"\"\n    Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, num_classes, hidden_size, dropout_prob):\n        super().__init__()\n        use_cfg_embedding = dropout_prob > 0\n        self.embedding_table = nn.Embedding(num_classes + use_cfg_embedding, hidden_size)\n        self.num_classes = num_classes\n        self.dropout_prob = dropout_prob\n\n    def token_drop(self, labels, force_drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            drop_ids = torch.rand(labels.shape[0], device=labels.device) < self.dropout_prob\n        else:\n            drop_ids = force_drop_ids == 1\n        labels = torch.where(drop_ids, self.num_classes, labels)\n        return labels, drop_ids\n\n    def forward(self, labels, train, force_drop_ids=None):\n        use_dropout = self.dropout_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            labels,drop_ids = self.token_drop(labels, force_drop_ids)\n        embeddings = self.embedding_table(labels).unsqueeze(1)\n        if (train and use_dropout) or (force_drop_ids is not None):\n            return embeddings,drop_ids\n        else:\n            return embeddings\n\n\nclass ConditionEmbedder(nn.Module):\n    \"\"\"\n    Embeds Condition into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, in_channels, hidden_size, uncond_prob, token_num=120, vocab_size=16384):\n        super().__init__()\n        self.cap_proj = MLP(in_features=hidden_size, hidden_features=hidden_size, out_features=hidden_size)\n        self.register_buffer(\"uncond_embedding\", torch.zeros(token_num, hidden_size) / hidden_size ** 0.5)\n        self.uncond_prob = uncond_prob\n\n    def token_drop(self, caption, force_drop_ids=None, drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            if drop_ids is None:\n                drop_ids = torch.rand(caption.shape[0], device=caption.device) < self.uncond_prob\n        else:\n            drop_ids = force_drop_ids == 1\n        uncond_embedding = torch.zeros_like(caption[0])\n        caption = torch.where(drop_ids[:, None, None], uncond_embedding, caption)\n        return caption\n\n    def forward(self, caption, train, force_drop_ids=None, drop_ids=None):\n        use_dropout = self.uncond_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            caption = self.token_drop(caption, force_drop_ids, drop_ids)\n        embeddings = self.cap_proj(caption)\n        return embeddings\n\n#################################################################################\n#                      Embedding Layers for Text Feature                        #\n#################################################################################\nclass CaptionEmbedder(nn.Module):\n    \"\"\"\n    Embeds text caption into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, in_channels, hidden_size, uncond_prob, token_num=120):\n        super().__init__()\n        self.cap_proj = MLP(in_features=in_channels, hidden_features=hidden_size, out_features=hidden_size)\n        self.register_buffer(\"uncond_embedding\", nn.Parameter(torch.randn(token_num, in_channels) / in_channels ** 0.5))\n        self.uncond_prob = uncond_prob\n\n    def token_drop(self, caption, force_drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            drop_ids = torch.rand(caption.shape[0], device=caption.device) < self.uncond_prob\n        else:\n            drop_ids = force_drop_ids == 1\n        caption = torch.where(drop_ids[:, None, None], self.uncond_embedding, caption)\n        return caption\n\n    def forward(self, caption, train, force_drop_ids=None):\n        use_dropout = self.uncond_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            caption = self.token_drop(caption, force_drop_ids)\n        embeddings = self.cap_proj(caption)\n        return embeddings\n\n\nclass MLP(nn.Module):\n    def __init__(self, in_features, hidden_features, out_features):\n        super().__init__()\n        out_features = out_features or in_features\n        hidden_features = hidden_features or in_features\n        self.fc1 = nn.Linear(in_features, hidden_features, bias=False)\n        self.act = nn.GELU(approximate='tanh')\n        self.fc2 = nn.Linear(hidden_features, out_features, bias=False)\n        \n        nn.init.zeros_(self.fc1.weight)\n        nn.init.zeros_(self.fc2.weight)\n\n    def forward(self, x):\n        x = self.fc1(x)\n        x = self.act(x)\n        x = self.fc2(x)\n        return x\n\n\n#################################################################################\n#                                  GPT Model                                    #\n#################################################################################\nclass RMSNorm(torch.nn.Module):\n    def __init__(self, dim: int, eps: float = 1e-5):\n        super().__init__()\n        self.eps = eps\n        self.weight = nn.Parameter(torch.ones(dim))\n\n    def _norm(self, x):\n        return x * torch.rsqrt(torch.mean(x * x, dim=-1, keepdim=True) + self.eps)\n\n    def forward(self, x):\n        output = self._norm(x.float()).type_as(x)\n        return output * self.weight\n\n\nclass FeedForward(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        hidden_dim = 4 * config.dim\n        hidden_dim = int(2 * hidden_dim / 3)\n        # custom dim factor multiplier\n        if config.ffn_dim_multiplier is not None:\n            hidden_dim = int(config.ffn_dim_multiplier * hidden_dim)\n        hidden_dim = find_multiple(hidden_dim, config.multiple_of)\n\n        self.w1 = nn.Linear(config.dim, hidden_dim, bias=False)\n        self.w3 = nn.Linear(config.dim, hidden_dim, bias=False)\n        self.w2 = nn.Linear(hidden_dim, config.dim, bias=False)\n        self.ffn_dropout = nn.Dropout(config.ffn_dropout_p)\n\n    def forward(self, x):\n        return self.ffn_dropout(self.w2(F.silu(self.w1(x)) * self.w3(x)))\n\n\nclass KVCache(nn.Module):\n    def __init__(self, max_batch_size, max_seq_length, n_head, head_dim, dtype):\n        super().__init__()\n        cache_shape = (max_batch_size, n_head, max_seq_length, head_dim)\n        self.register_buffer('k_cache', torch.zeros(cache_shape, dtype=dtype))\n        self.register_buffer('v_cache', torch.zeros(cache_shape, dtype=dtype))\n\n    def update(self, input_pos, k_val, v_val):\n        # input_pos: [S], k_val: [B, H, S, D]\n        assert input_pos.shape[0] == k_val.shape[2]\n        k_out = self.k_cache\n        v_out = self.v_cache\n        k_out[:, :, input_pos] = k_val\n        v_out[:, :, input_pos] = v_val\n\n        return k_out, v_out\n\n\nclass Attention(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        assert config.dim % config.n_head == 0\n        self.dim = config.dim\n        self.head_dim = config.dim // config.n_head\n        self.n_head = config.n_head\n        self.n_kv_head = config.n_kv_head if config.n_kv_head is not None else config.n_head\n        total_kv_dim = (self.n_head + 2 * self.n_kv_head) * self.head_dim\n\n        # key, query, value projections for all heads, but in a batch\n        self.wqkv = nn.Linear(config.dim, total_kv_dim, bias=False)\n        self.wo = nn.Linear(config.dim, config.dim, bias=False)\n        self.kv_cache = None\n\n        # regularization\n        self.attn_dropout_p = config.attn_dropout_p\n        self.resid_dropout = nn.Dropout(config.resid_dropout_p)\n\n    def forward(\n        self, x: torch.Tensor, freqs_cis: torch.Tensor = None, \n        input_pos: Optional[torch.Tensor] = None, \n        mask: Optional[torch.Tensor] = None\n    ):\n        bsz, seqlen, _ = x.shape\n        kv_size = self.n_kv_head * self.head_dim\n        xq, xk, xv = self.wqkv(x).split([self.dim, kv_size, kv_size], dim=-1)\n\n        xq = xq.view(bsz, seqlen, self.n_head, self.head_dim)\n        xk = xk.view(bsz, seqlen, self.n_kv_head, self.head_dim)\n        xv = xv.view(bsz, seqlen, self.n_kv_head, self.head_dim)\n        \n        xq = apply_rotary_emb(xq, freqs_cis)\n        xk = apply_rotary_emb(xk, freqs_cis)\n\n        xq, xk, xv = map(lambda x: x.transpose(1, 2), (xq, xk, xv))\n\n        if self.kv_cache is not None:\n            keys, values = self.kv_cache.update(input_pos, xk, xv)\n        else:\n            keys, values = xk, xv\n        keys = keys.repeat_interleave(self.n_head // self.n_kv_head, dim=1)\n        values = values.repeat_interleave(self.n_head // self.n_kv_head, dim=1)\n\n        output = F.scaled_dot_product_attention(\n            xq, keys, values, \n            attn_mask=mask, \n            is_causal=True if mask is None else False, # is_causal=False is for KV cache\n            dropout_p=self.attn_dropout_p if self.training else 0)            \n        \n        output = output.transpose(1, 2).contiguous().view(bsz, seqlen, self.dim)\n\n        output = self.resid_dropout(self.wo(output))\n        return output\n\n\nclass TransformerBlock(nn.Module):\n    def __init__(self, config: ModelArgs, drop_path: float):\n        super().__init__()\n        self.attention = Attention(config)\n        self.feed_forward = FeedForward(config)\n        self.attention_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.ffn_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()\n\n    def forward(\n        self, x: torch.Tensor, freqs_cis: torch.Tensor, start_pos: int, mask: Optional[torch.Tensor] = None):\n        h = x + self.drop_path(self.attention(self.attention_norm(x), freqs_cis, start_pos, mask))\n        out = h + self.drop_path(self.feed_forward(self.ffn_norm(h)))\n        return out\n\n\nclass Transformer(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        self.config = config\n        self.vocab_size = config.vocab_size\n        self.n_layer = config.n_layer\n        self.block_size = config.block_size\n        self.num_classes = config.num_classes\n        self.model_type = config.model_type\n        self.cls_token_num = config.cls_token_num\n        self.condition_token_num = config.condition_token_num\n        self.layer_internal = config.n_layer // 3\n        # self.adapter = Adapter(output_dim=config.dim)\n        self.adapter = ViT_Adapter()\n        # self.adapter = Deit_Adapter()\n        # self.adapter = EVA_Adapter(img_size=256, in_chans=3, embed_dim=384)\n        # self.adapter = Dinov2_Adapter(adapter_size='base')\n        # self.adapter = EVA_Adapter()\n        self.adapter_mlp = MLP(384, config.dim, config.dim)\n        # self.adapter_mlp = MLP(768, config.dim, config.dim)\n        # self.cross_attention = nn.MultiheadAttention(embed_dim=config.dim, num_heads=8,batch_first=True)\n        if self.model_type == 'c2i':\n            self.cls_embedding = LabelEmbedder(config.num_classes, config.dim, config.class_dropout_prob)\n        elif self.model_type == 't2i':\n            self.cls_embedding = CaptionEmbedder(config.caption_dim, config.dim, config.class_dropout_prob)\n        else:\n            raise Exception(\"please check model type\")\n        self.tok_embeddings = nn.Embedding(config.vocab_size, config.dim)\n        self.tok_dropout = nn.Dropout(config.token_dropout_p)\n\n        self.condition_embeddings = nn.Embedding(config.vocab_size, config.dim)\n        self.condition_mlp = ConditionEmbedder((config.image_size // 16)**2, config.dim, config.class_dropout_prob, (config.image_size // 16)**2, config.vocab_size)\n\n        self.condition_layers = torch.nn.ModuleList()\n        for layer_id in range(3):\n            self.condition_layers.append(MLP(config.dim,config.dim,config.dim))\n\n        # transformer blocks\n        dpr = [x.item() for x in torch.linspace(0, config.drop_path_rate, config.n_layer)]\n        self.layers = torch.nn.ModuleList()\n        for layer_id in range(config.n_layer):\n            self.layers.append(TransformerBlock(config, dpr[layer_id]))\n\n        # output layer\n        self.norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.condition_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.output = nn.Linear(config.dim, config.vocab_size, bias=False)\n\n        # 2d rotary pos embedding\n        grid_size = int(self.block_size ** 0.5)\n        assert grid_size * grid_size == self.block_size\n        self.freqs_cis = precompute_freqs_cis_2d(grid_size, self.config.dim // self.config.n_head, self.config.rope_base, self.cls_token_num+self.condition_token_num)\n        \n        # KVCache\n        self.max_batch_size = -1\n        self.max_seq_length = -1\n\n        self.initialize_weights()\n        self.condition_token = None\n        self.global_token = None\n        self.mask = get_causal_mask(256)\n\n    def initialize_weights(self):        \n        # Initialize nn.Linear and nn.Embedding\n        self.apply(self._init_weights)\n\n\n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n\n    def setup_caches(self, max_batch_size, max_seq_length, dtype):\n        # if self.max_seq_length >= max_seq_length and self.max_batch_size >= max_batch_size:\n        #     return\n        head_dim = self.config.dim // self.config.n_head\n        max_seq_length = find_multiple(max_seq_length, 8)  # \n        self.max_seq_length = max_seq_length\n        self.max_batch_size = max_batch_size\n        for b in self.layers:\n            b.attention.kv_cache = KVCache(max_batch_size, max_seq_length, self.config.n_head, head_dim, dtype)\n\n        causal_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length, dtype=torch.bool))\n        self.causal_mask = causal_mask.unsqueeze(0).repeat(self.max_batch_size, 1, 1)\n        grid_size = int(self.config.block_size ** 0.5)\n        assert grid_size * grid_size == self.block_size\n        self.freqs_cis = precompute_freqs_cis_2d(grid_size, self.config.dim // self.config.n_head, self.config.rope_base, self.cls_token_num+self.condition_token_num)\n\n\n    \n    def forward(\n        self, \n        idx: torch.Tensor, \n        cond_idx: torch.Tensor,  # cond_idx_or_embed\n        input_pos:  Optional[torch.Tensor] = None, \n        targets: Optional[torch.Tensor] = None,\n        mask: Optional[torch.Tensor] = None,\n        valid: Optional[torch.Tensor] = None,\n        condition: Optional[torch.Tensor] = None\n    ):\n        if idx is not None and cond_idx is not None: # training or naive inference\n            cond_embeddings,drop_ids = self.cls_embedding(cond_idx, train=self.training)\n            cond_embeddings = cond_embeddings[:,:self.cls_token_num]\n            token_embeddings = self.tok_embeddings(idx)\n            if condition is not None:\n                condition_embeddings = self.adapter(condition)\n                condition_embeddings = self.adapter_mlp(condition_embeddings)\n\n                self.condition_token = self.condition_mlp(condition_embeddings,train=self.training, drop_ids=drop_ids)\n            token_embeddings = torch.cat((cond_embeddings, token_embeddings), dim=1)\n            h = self.tok_dropout(token_embeddings)\n            self.freqs_cis = self.freqs_cis.to(h.device)\n        else:\n            if cond_idx is not None: # prefill in inference\n                token_embeddings = self.cls_embedding(cond_idx, train=self.training)\n                token_embeddings = token_embeddings[:,:self.cls_token_num]\n                if condition is not None:\n                    condition_embeddings = self.condition_mlp(condition.to(torch.bfloat16),train=self.training)\n                    self.condition_token = condition_embeddings\n            else: # decode_n_tokens(kv cache) in inference\n                token_embeddings = self.tok_embeddings(idx)\n            bs = token_embeddings.shape[0]\n            mask = self.causal_mask[:bs, None, input_pos]\n            h = self.tok_dropout(token_embeddings)\n            self.freqs_cis = self.freqs_cis\n        if self.training:\n            freqs_cis = self.freqs_cis[:token_embeddings.shape[1]]\n        else:\n            freqs_cis = self.freqs_cis[input_pos]\n        # transformer blocks\n        for i, layer in enumerate(self.layers):\n            if i%self.layer_internal == 0:\n                if self.training:\n                    h = h + self.condition_layers[i//self.layer_internal](self.condition_token)\n                else:\n                    if len(input_pos)>1:\n                        h[:,-1:] = h[:,-1:] + self.condition_layers[i//self.layer_internal](self.condition_token[:,0:1])\n                    else:\n                        h = h + self.condition_layers[i//self.layer_internal](self.condition_token[:,input_pos])\n            h = layer(h, freqs_cis, input_pos, mask)\n        # output layers\n        h = self.norm(h)\n        logits = self.output(h).float()\n        \n        if self.training:\n            logits = logits[:, self.cls_token_num+self.condition_token_num - 1:].contiguous()\n        # if we are given some desired targets also calculate the loss\n        loss = None\n        if valid is not None:\n            loss_all = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1), reduction='none')\n            valid_all = valid[:,None].repeat(1, targets.shape[1]).view(-1)\n            loss = (loss_all * valid_all).sum() / max(valid_all.sum(), 1)\n        elif targets is not None:\n            loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1))\n\n        return logits, loss\n\n\n    def get_fsdp_wrap_module_list(self) -> List[nn.Module]:\n        return list(self.layers)\n\n\n\n#################################################################################\n#                      Rotary Positional Embedding Functions                    #\n#################################################################################\n# https://github.com/pytorch-labs/gpt-fast/blob/main/model.py \ndef precompute_freqs_cis(seq_len: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    freqs = 1.0 / (base ** (torch.arange(0, n_elem, 2)[: (n_elem // 2)].float() / n_elem))\n    t = torch.arange(seq_len, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (seq_len, head_dim // 2)\n    freqs_cis = torch.polar(torch.ones_like(freqs), freqs)\n    cache = torch.stack([freqs_cis.real, freqs_cis.imag], dim=-1) # (cls_token_num+seq_len, head_dim // 2, 2)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+seq_len, head_dim // 2, 2)\n    return cond_cache \n\n\ndef precompute_freqs_cis_2d(grid_size: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    # split the dimension into half, one for x and one for y\n    half_dim = n_elem // 2\n    freqs = 1.0 / (base ** (torch.arange(0, half_dim, 2)[: (half_dim // 2)].float() / half_dim))\n    t = torch.arange(grid_size, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (grid_size, head_dim // 2)\n    freqs_grid = torch.concat([\n        freqs[:, None, :].expand(-1, grid_size, -1),\n        freqs[None, :, :].expand(grid_size, -1, -1),\n    ], dim=-1)  # (grid_size, grid_size, head_dim // 2)\n    cache_grid = torch.stack([torch.cos(freqs_grid), torch.sin(freqs_grid)], dim=-1) # (grid_size, grid_size, head_dim // 2, 2)\n    cache = cache_grid.flatten(0, 1)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+grid_size**2, head_dim // 2, 2)\n    return cond_cache \n\n\ndef apply_rotary_emb(x: torch.Tensor, freqs_cis: torch.Tensor):\n    # x: (bs, seq_len, n_head, head_dim)\n    # freqs_cis (seq_len, head_dim // 2, 2)\n    xshaped = x.float().reshape(*x.shape[:-1], -1, 2) # (bs, seq_len, n_head, head_dim//2, 2)\n    freqs_cis = freqs_cis.view(1, xshaped.size(1), 1, xshaped.size(3), 2) # (1, seq_len, 1, head_dim//2, 2)\n    x_out2 = torch.stack([\n            xshaped[..., 0] * freqs_cis[..., 0] - xshaped[..., 1] * freqs_cis[..., 1],\n            xshaped[..., 1] * freqs_cis[..., 0] + xshaped[..., 0] * freqs_cis[..., 1],\n    ], dim=-1)\n    x_out2 = x_out2.flatten(3)\n    return x_out2.type_as(x)\n\n\n\n#################################################################################\n#                                GPT Configs                                    #\n#################################################################################\n### text-conditional\ndef GPT_7B(**kwargs):\n    return Transformer(ModelArgs(n_layer=32, n_head=32, dim=4096, **kwargs)) # 6.6B\n\ndef GPT_3B(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=32, dim=3200, **kwargs)) # 3.1B\n\ndef GPT_1B(**kwargs):\n    return Transformer(ModelArgs(n_layer=22, n_head=32, dim=2048, **kwargs)) # 1.2B\n\n### class-conditional\ndef GPT_XXXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=40, dim=2560, **kwargs)) # 3.9B\n\ndef GPT_XXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=24, dim=1536, **kwargs)) # 1.4B\n\ndef GPT_XL(**kwargs):\n    return Transformer(ModelArgs(n_layer=36, n_head=20, dim=1280, **kwargs)) # 775M\n\ndef GPT_L(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=16, dim=1024, **kwargs)) # 343M\n\ndef GPT_B(**kwargs):\n    return Transformer(ModelArgs(n_layer=12, n_head=12, dim=768, **kwargs)) # 111M\n        \n\nGPT_models = {\n    'GPT-B': GPT_B, 'GPT-L': GPT_L, 'GPT-XL': GPT_XL, 'GPT-XXL': GPT_XXL, 'GPT-XXXL': GPT_XXXL,\n    'GPT-1B': GPT_1B, 'GPT-3B': GPT_3B, 'GPT-7B': GPT_7B, \n}"
  },
  {
    "path": "autoregressive/models/gpt_t2i.py",
    "content": "# Modified from:\n#   VQGAN:    https://github.com/CompVis/taming-transformers/blob/master/taming/modules/transformer/mingpt.py\n#   DiT:      https://github.com/facebookresearch/DiT/blob/main/models.py  \n#   nanoGPT:  https://github.com/karpathy/nanoGPT/blob/master/model.py\n#   llama:    https://github.com/facebookresearch/llama/blob/main/llama/model.py\n#   gpt-fast: https://github.com/pytorch-labs/gpt-fast/blob/main/model.py\n#   PixArt:   https://github.com/PixArt-alpha/PixArt-alpha/blob/master/diffusion/model/nets/PixArt_blocks.py\nfrom dataclasses import dataclass\nfrom typing import Optional, List\n\n\nimport torch\nimport torch.nn as nn\nfrom torch.nn import functional as F\nfrom utils.drop_path import DropPath\nfrom autoregressive.models.vit_adapter import ViT_Adapter\nfrom autoregressive.models.dinov2_adapter import Dinov2_Adapter\n\n\ndef get_causal_mask(seq_length):\n    mask = torch.triu(torch.ones(seq_length, seq_length), diagonal=1).type(torch.bool)\n    mask = mask.masked_fill(mask, float('-inf'))  \n    mask = mask.masked_fill(~mask, float(0.0))  \n    return mask\n\ndef find_multiple(n: int, k: int):\n    if n % k == 0:\n        return n\n    return n + k - (n % k)\n\n@dataclass\nclass ModelArgs:\n    dim: int = 4096\n    n_layer: int = 32\n    n_head: int = 32\n    n_kv_head: Optional[int] = None\n    multiple_of: int = 256  # make SwiGLU hidden layer size multiple of large power of 2\n    ffn_dim_multiplier: Optional[float] = None\n    rope_base: float = 10000\n    norm_eps: float = 1e-5\n    initializer_range: float = 0.02\n    \n    token_dropout_p: float = 0.1\n    attn_dropout_p: float = 0.0\n    resid_dropout_p: float = 0.1\n    ffn_dropout_p: float = 0.1\n    drop_path_rate: float = 0.0\n\n    num_classes: int = 1000\n    caption_dim: int = 2048\n    class_dropout_prob: float = 0.1\n    model_type: str = 'c2i'\n\n    vocab_size: int = 16384\n    cls_token_num: int = 1\n    block_size: int = 256\n    max_batch_size: int = 32\n    max_seq_len: int = 2048\n    adapter_size: str = 'small'\n    condition_type: str = 'canny'\n\n\n\n#################################################################################\n#                      Embedding Layers for Class Labels                        #\n#################################################################################\nclass LabelEmbedder(nn.Module):\n    \"\"\"\n    Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, num_classes, hidden_size, dropout_prob):\n        super().__init__()\n        use_cfg_embedding = dropout_prob > 0\n        self.embedding_table = nn.Embedding(num_classes + use_cfg_embedding, hidden_size)\n        self.num_classes = num_classes\n        self.dropout_prob = dropout_prob\n\n    def token_drop(self, labels, force_drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            drop_ids = torch.rand(labels.shape[0], device=labels.device) < self.dropout_prob\n        else:\n            drop_ids = force_drop_ids == 1\n        labels = torch.where(drop_ids, self.num_classes, labels)\n        return labels, drop_ids\n\n    def forward(self, labels, train, force_drop_ids=None):\n        use_dropout = self.dropout_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            labels,drop_ids = self.token_drop(labels, force_drop_ids)\n        embeddings = self.embedding_table(labels).unsqueeze(1)\n        if (train and use_dropout) or (force_drop_ids is not None):\n            return embeddings,drop_ids\n        else:\n            return embeddings\n\n\nclass ConditionEmbedder(nn.Module):\n    \"\"\"\n    Embeds Condition into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, in_channels, hidden_size, uncond_prob, token_num=120, vocab_size=16384):\n        super().__init__()\n        self.cap_proj = MLP(in_features=hidden_size, hidden_features=hidden_size, out_features=hidden_size)\n        self.register_buffer(\"uncond_embedding\", torch.zeros(token_num, hidden_size) / hidden_size ** 0.5)\n        self.uncond_prob = uncond_prob\n\n    def token_drop(self, caption, force_drop_ids=None, drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            if drop_ids is None:\n                drop_ids = torch.rand(caption.shape[0], device=caption.device) < self.uncond_prob\n        else:\n            drop_ids = force_drop_ids == 1\n\n        caption = torch.where(drop_ids[:, None, None], self.uncond_embedding[:caption.shape[1]], caption)\n        return caption\n\n    def forward(self, caption, train, force_drop_ids=None, drop_ids=None):\n        use_dropout = self.uncond_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            caption = self.token_drop(caption, force_drop_ids, drop_ids)\n        embeddings = self.cap_proj(caption)\n        return embeddings\n\n#################################################################################\n#                      Embedding Layers for Text Feature                        #\n#################################################################################\nclass CaptionEmbedder(nn.Module):\n    \"\"\"\n    Embeds text caption into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, in_channels, hidden_size, uncond_prob, token_num=120):\n        super().__init__()\n        self.cap_proj = MLP(in_features=in_channels, hidden_features=hidden_size, out_features=hidden_size)\n        self.register_buffer(\"uncond_embedding\", nn.Parameter(torch.randn(token_num, in_channels) / in_channels ** 0.5))\n        self.uncond_prob = uncond_prob\n\n    def token_drop(self, caption, force_drop_ids=None):\n        \"\"\"\n        Drops labels to enable classifier-free guidance.\n        \"\"\"\n        if force_drop_ids is None:\n            drop_ids = torch.rand(caption.shape[0], device=caption.device) < self.uncond_prob\n        else:\n            drop_ids = force_drop_ids == 1\n        caption = torch.where(drop_ids[:, None, None], self.uncond_embedding, caption)\n        return caption, drop_ids\n\n    def forward(self, caption, train, force_drop_ids=None):\n        use_dropout = self.uncond_prob > 0\n        if (train and use_dropout) or (force_drop_ids is not None):\n            caption, drop_ids = self.token_drop(caption, force_drop_ids)\n        embeddings = self.cap_proj(caption)\n        if (train and use_dropout) or (force_drop_ids is not None):\n            return embeddings,drop_ids\n        else:\n            return embeddings\n\n\nclass MLP(nn.Module):\n    def __init__(self, in_features, hidden_features, out_features):\n        super().__init__()\n        out_features = out_features or in_features\n        hidden_features = hidden_features or in_features\n        self.fc1 = nn.Linear(in_features, hidden_features, bias=False)\n        self.act = nn.GELU(approximate='tanh')\n        self.fc2 = nn.Linear(hidden_features, out_features, bias=False)\n        \n        nn.init.zeros_(self.fc1.weight)\n        nn.init.zeros_(self.fc2.weight)\n\n    def forward(self, x):\n        x = self.fc1(x)\n        x = self.act(x)\n        x = self.fc2(x)\n        return x\n\n\n#################################################################################\n#                                  GPT Model                                    #\n#################################################################################\nclass RMSNorm(torch.nn.Module):\n    def __init__(self, dim: int, eps: float = 1e-5):\n        super().__init__()\n        self.eps = eps\n        self.weight = nn.Parameter(torch.ones(dim))\n\n    def _norm(self, x):\n        return x * torch.rsqrt(torch.mean(x * x, dim=-1, keepdim=True) + self.eps)\n\n    def forward(self, x):\n        output = self._norm(x.float()).type_as(x)\n        return output * self.weight\n\n\nclass FeedForward(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        hidden_dim = 4 * config.dim\n        hidden_dim = int(2 * hidden_dim / 3)\n        # custom dim factor multiplier\n        if config.ffn_dim_multiplier is not None:\n            hidden_dim = int(config.ffn_dim_multiplier * hidden_dim)\n        hidden_dim = find_multiple(hidden_dim, config.multiple_of)\n\n        self.w1 = nn.Linear(config.dim, hidden_dim, bias=False)\n        self.w3 = nn.Linear(config.dim, hidden_dim, bias=False)\n        self.w2 = nn.Linear(hidden_dim, config.dim, bias=False)\n        self.ffn_dropout = nn.Dropout(config.ffn_dropout_p)\n\n    def forward(self, x):\n        return self.ffn_dropout(self.w2(F.silu(self.w1(x)) * self.w3(x)))\n\n\nclass KVCache(nn.Module):\n    def __init__(self, max_batch_size, max_seq_length, n_head, head_dim, dtype):\n        super().__init__()\n        cache_shape = (max_batch_size, n_head, max_seq_length, head_dim)\n        self.register_buffer('k_cache', torch.zeros(cache_shape, dtype=dtype))\n        self.register_buffer('v_cache', torch.zeros(cache_shape, dtype=dtype))\n\n    def update(self, input_pos, k_val, v_val):\n        # input_pos: [S], k_val: [B, H, S, D]\n        assert input_pos.shape[0] == k_val.shape[2]\n        k_out = self.k_cache\n        v_out = self.v_cache\n        k_out[:, :, input_pos] = k_val\n        v_out[:, :, input_pos] = v_val\n\n        return k_out, v_out\n\n\nclass Attention(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        assert config.dim % config.n_head == 0\n        self.dim = config.dim\n        self.head_dim = config.dim // config.n_head\n        self.n_head = config.n_head\n        self.n_kv_head = config.n_kv_head if config.n_kv_head is not None else config.n_head\n        total_kv_dim = (self.n_head + 2 * self.n_kv_head) * self.head_dim\n\n        # key, query, value projections for all heads, but in a batch\n        self.wqkv = nn.Linear(config.dim, total_kv_dim, bias=False)\n        self.wo = nn.Linear(config.dim, config.dim, bias=False)\n        self.kv_cache = None\n\n        # regularization\n        self.attn_dropout_p = config.attn_dropout_p\n        self.resid_dropout = nn.Dropout(config.resid_dropout_p)\n\n    def forward(\n        self, x: torch.Tensor, freqs_cis: torch.Tensor = None, \n        input_pos: Optional[torch.Tensor] = None, \n        mask: Optional[torch.Tensor] = None\n    ):\n        bsz, seqlen, _ = x.shape\n        kv_size = self.n_kv_head * self.head_dim\n        xq, xk, xv = self.wqkv(x).split([self.dim, kv_size, kv_size], dim=-1)\n\n        xq = xq.view(bsz, seqlen, self.n_head, self.head_dim)\n        xk = xk.view(bsz, seqlen, self.n_kv_head, self.head_dim)\n        xv = xv.view(bsz, seqlen, self.n_kv_head, self.head_dim)\n        \n        xq = apply_rotary_emb(xq, freqs_cis)\n        xk = apply_rotary_emb(xk, freqs_cis)\n\n        xq, xk, xv = map(lambda x: x.transpose(1, 2), (xq, xk, xv))\n\n        if self.kv_cache is not None:\n            keys, values = self.kv_cache.update(input_pos, xk, xv)\n        else:\n            keys, values = xk, xv\n        keys = keys.repeat_interleave(self.n_head // self.n_kv_head, dim=1)\n        values = values.repeat_interleave(self.n_head // self.n_kv_head, dim=1)\n\n        output = F.scaled_dot_product_attention(\n            xq, keys, values, \n            attn_mask=mask, \n            is_causal=True if mask is None else False, # is_causal=False is for KV cache\n            dropout_p=self.attn_dropout_p if self.training else 0)            \n        \n        output = output.transpose(1, 2).contiguous().view(bsz, seqlen, self.dim)\n\n        output = self.resid_dropout(self.wo(output))\n        return output\n\n\nclass TransformerBlock(nn.Module):\n    def __init__(self, config: ModelArgs, drop_path: float):\n        super().__init__()\n        self.attention = Attention(config)\n        self.feed_forward = FeedForward(config)\n        self.attention_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.ffn_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()\n\n    def forward(\n        self, x: torch.Tensor, freqs_cis: torch.Tensor, start_pos: int, mask: Optional[torch.Tensor] = None):\n        h = x + self.drop_path(self.attention(self.attention_norm(x), freqs_cis, start_pos, mask))\n        out = h + self.drop_path(self.feed_forward(self.ffn_norm(h)))\n        return out\n\n\nclass Transformer(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        self.config = config\n        self.vocab_size = config.vocab_size\n        self.n_layer = config.n_layer\n        self.block_size = config.block_size\n        self.num_classes = config.num_classes\n        self.model_type = config.model_type\n        self.cls_token_num = config.cls_token_num\n        self.layer_internal = config.n_layer // 3\n        # self.adapter = Adapter(output_dim=768)\n        # self.adapter = ViT_Adapter()\n        # self.adapter = DeiT_Adapter()\n        self.adapter = Dinov2_Adapter(adapter_size=config.adapter_size, condition_type=config.condition_type)\n        # self.adapter = EVA_Adapter()\n        if config.adapter_size == \"small\":\n            self.adapter_mlp = MLP(384, config.dim, config.dim)\n        elif config.adapter_size == 'base':\n            self.adapter_mlp = MLP(768, config.dim, config.dim)\n\n        if self.model_type == 'c2i':\n            self.cls_embedding = LabelEmbedder(config.num_classes, config.dim, config.class_dropout_prob)\n        elif self.model_type == 't2i':\n            self.cls_embedding = CaptionEmbedder(config.caption_dim, config.dim, config.class_dropout_prob)\n        else:\n            raise Exception(\"please check model type\")\n        self.tok_embeddings = nn.Embedding(config.vocab_size, config.dim)\n        self.tok_dropout = nn.Dropout(config.token_dropout_p)\n\n        self.condition_embeddings = nn.Embedding(config.vocab_size, config.dim)\n        self.condition_mlp = ConditionEmbedder(self.block_size, config.dim, config.class_dropout_prob, self.block_size, config.vocab_size)\n        self.condition_layers = torch.nn.ModuleList()\n        for layer_id in range(3):\n            self.condition_layers.append(MLP(config.dim,config.dim,config.dim))\n\n        # transformer blocks\n        dpr = [x.item() for x in torch.linspace(0, config.drop_path_rate, config.n_layer)]\n        self.layers = torch.nn.ModuleList()\n        for layer_id in range(config.n_layer):\n            self.layers.append(TransformerBlock(config, dpr[layer_id]))\n\n        # output layer\n        self.norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.output = nn.Linear(config.dim, config.vocab_size, bias=False)\n\n        # 2d rotary pos embedding\n        grid_size = int(self.block_size ** 0.5)\n        assert grid_size * grid_size == self.block_size\n        self.freqs_cis = precompute_freqs_cis_2d(grid_size, self.config.dim // self.config.n_head, self.config.rope_base, self.cls_token_num)\n        \n        # KVCache\n        self.max_batch_size = -1\n        self.max_seq_length = -1\n\n        self.initialize_weights()\n        self.condition_token = None\n        self.mask = get_causal_mask(256)\n        self.global_token = None\n\n        self.control_strength = 1    \n\n    def initialize_weights(self):        \n        # Initialize nn.Linear and nn.Embedding\n        self.apply(self._init_weights)\n\n        # Zero-out output layers:\n        nn.init.constant_(self.output.weight, 0)\n\n        \n        \n    def _init_weights(self, module):\n        std = self.config.initializer_range\n        if isinstance(module, nn.Linear):\n            module.weight.data.normal_(mean=0.0, std=std)\n            if module.bias is not None:\n                module.bias.data.zero_()\n        elif isinstance(module, nn.Embedding):\n            module.weight.data.normal_(mean=0.0, std=std)\n\n        \n    def setup_caches(self, max_batch_size, max_seq_length, dtype):\n        # if self.max_seq_length >= max_seq_length and self.max_batch_size >= max_batch_size:\n        #     return\n        head_dim = self.config.dim // self.config.n_head\n        max_seq_length = find_multiple(max_seq_length, 8)  # \n        self.max_seq_length = max_seq_length\n        self.max_batch_size = max_batch_size\n        for b in self.layers:\n            b.attention.kv_cache = KVCache(max_batch_size, max_seq_length, self.config.n_head, head_dim, dtype)\n\n        causal_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length, dtype=torch.bool))\n        self.causal_mask = causal_mask.unsqueeze(0).repeat(self.max_batch_size, 1, 1)\n        grid_size = int(self.config.block_size ** 0.5)\n        assert grid_size * grid_size == self.block_size\n        self.freqs_cis = precompute_freqs_cis_2d(grid_size, self.config.dim // self.config.n_head, self.config.rope_base, self.cls_token_num)\n\n\n    \n    def forward(\n        self, \n        idx: torch.Tensor, \n        cond_idx: torch.Tensor,  # cond_idx_or_embed\n        input_pos:  Optional[torch.Tensor] = None, \n        targets: Optional[torch.Tensor] = None,\n        mask: Optional[torch.Tensor] = None,\n        valid: Optional[torch.Tensor] = None,\n        condition: Optional[torch.Tensor] = None,\n        control_strength: Optional[int] = 1\n    ):\n        if idx is not None and cond_idx is not None: # training or naive inference\n            cond_embeddings,drop_ids = self.cls_embedding(cond_idx, train=self.training)\n            cond_embeddings = cond_embeddings[:,:self.cls_token_num]\n            token_embeddings = self.tok_embeddings(idx)\n            if condition is not None:\n                condition_embeddings = self.adapter(condition)\n                condition_embeddings = self.adapter_mlp(condition_embeddings)\n                self.condition_token = self.condition_mlp(condition_embeddings,train=self.training, drop_ids=drop_ids)\n            token_embeddings = torch.cat((cond_embeddings, token_embeddings), dim=1)\n\n            h = self.tok_dropout(token_embeddings)\n            self.freqs_cis = self.freqs_cis.to(h.device)\n        else:\n            if cond_idx is not None: # prefill in inference\n                self.control_strength = control_strength\n                token_embeddings = self.cls_embedding(cond_idx, train=self.training)\n                token_embeddings = token_embeddings[:,:self.cls_token_num]\n                if condition is not None:\n                    condition_embeddings = self.condition_mlp(condition, train=self.training)#.to(torch.bfloat16),train=self.training)\n                    self.condition_token = condition_embeddings\n                    self.condition_token = [self.condition_layers[0](self.condition_token),\n                                            self.condition_layers[1](self.condition_token),\n                                            self.condition_layers[2](self.condition_token)]\n                    \n            else: # decode_n_tokens(kv cache) in inference\n                token_embeddings = self.tok_embeddings(idx)\n            bs = token_embeddings.shape[0]\n            mask = self.causal_mask[:bs, None, input_pos]\n            h = self.tok_dropout(token_embeddings)\n            self.freqs_cis = self.freqs_cis\n\n        if self.training:\n            freqs_cis = self.freqs_cis[:token_embeddings.shape[1]]\n        else:\n            freqs_cis = self.freqs_cis[input_pos]\n        # transformer blocks\n        for i, layer in enumerate(self.layers):\n            if i%self.layer_internal == 0:\n                if self.training:\n                    h[:, self.cls_token_num-1:] = h[:, self.cls_token_num-1:] + self.condition_layers[i//self.layer_internal](self.condition_token)\n                else:\n                    if len(input_pos)>1:\n                        # h[:, -1:] = h[:, -1:] + self.condition_layers[i//self.layer_internal](self.condition_token[:,0:1])\n                        h[:,-1:] = h[:, -1:] + self.control_strength*self.condition_token[i//self.layer_internal][:,0:1]\n                    else:\n                        # h = h + self.condition_layers[i//self.layer_internal](self.condition_token[:,input_pos-self.cls_token_num+1])\n                        h = h + self.control_strength*self.condition_token[i//self.layer_internal][:,input_pos-self.cls_token_num+1]\n            h = layer(h, freqs_cis, input_pos, mask)\n        # output layers\n        h = self.norm(h)\n        logits = self.output(h).float()\n        \n        if self.training:\n            logits = logits[:, self.cls_token_num - 1:].contiguous()\n        # if we are given some desired targets also calculate the loss\n        loss = None\n        if valid is not None:\n            loss_all = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1), reduction='none')\n            valid_all = valid[:,None].repeat(1, targets.shape[1]).view(-1)\n            loss = (loss_all * valid_all).sum() / max(valid_all.sum(), 1)\n        elif targets is not None:\n            loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1))\n\n\n        return logits, loss\n\n\n    def get_fsdp_wrap_module_list(self) -> List[nn.Module]:\n        return list(self.layers)\n\n\n\n#################################################################################\n#                      Rotary Positional Embedding Functions                    #\n#################################################################################\n# https://github.com/pytorch-labs/gpt-fast/blob/main/model.py \ndef precompute_freqs_cis(seq_len: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    freqs = 1.0 / (base ** (torch.arange(0, n_elem, 2)[: (n_elem // 2)].float() / n_elem))\n    t = torch.arange(seq_len, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (seq_len, head_dim // 2)\n    freqs_cis = torch.polar(torch.ones_like(freqs), freqs)\n    cache = torch.stack([freqs_cis.real, freqs_cis.imag], dim=-1) # (cls_token_num+seq_len, head_dim // 2, 2)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+seq_len, head_dim // 2, 2)\n    return cond_cache \n\n\ndef precompute_freqs_cis_2d(grid_size: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    # split the dimension into half, one for x and one for y\n    half_dim = n_elem // 2\n    freqs = 1.0 / (base ** (torch.arange(0, half_dim, 2)[: (half_dim // 2)].float() / half_dim))\n    t = torch.arange(grid_size, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (grid_size, head_dim // 2)\n    freqs_grid = torch.concat([\n        freqs[:, None, :].expand(-1, grid_size, -1),\n        freqs[None, :, :].expand(grid_size, -1, -1),\n    ], dim=-1)  # (grid_size, grid_size, head_dim // 2)\n    cache_grid = torch.stack([torch.cos(freqs_grid), torch.sin(freqs_grid)], dim=-1) # (grid_size, grid_size, head_dim // 2, 2)\n    cache = cache_grid.flatten(0, 1)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+grid_size**2, head_dim // 2, 2)\n    return cond_cache \n\n\ndef apply_rotary_emb(x: torch.Tensor, freqs_cis: torch.Tensor):\n    # x: (bs, seq_len, n_head, head_dim)\n    # freqs_cis (seq_len, head_dim // 2, 2)\n    xshaped = x.float().reshape(*x.shape[:-1], -1, 2) # (bs, seq_len, n_head, head_dim//2, 2)\n    freqs_cis = freqs_cis.view(1, xshaped.size(1), 1, xshaped.size(3), 2) # (1, seq_len, 1, head_dim//2, 2)\n    x_out2 = torch.stack([\n            xshaped[..., 0] * freqs_cis[..., 0] - xshaped[..., 1] * freqs_cis[..., 1],\n            xshaped[..., 1] * freqs_cis[..., 0] + xshaped[..., 0] * freqs_cis[..., 1],\n    ], dim=-1)\n    x_out2 = x_out2.flatten(3)\n    return x_out2.type_as(x)\n\n\n\n#################################################################################\n#                                GPT Configs                                    #\n#################################################################################\n### text-conditional\ndef GPT_7B(**kwargs):\n    return Transformer(ModelArgs(n_layer=32, n_head=32, dim=4096, **kwargs)) # 6.6B\n\ndef GPT_3B(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=32, dim=3200, **kwargs)) # 3.1B\n\ndef GPT_1B(**kwargs):\n    return Transformer(ModelArgs(n_layer=22, n_head=32, dim=2048, **kwargs)) # 1.2B\n\n### class-conditional\ndef GPT_XXXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=40, dim=2560, **kwargs)) # 3.9B\n\ndef GPT_XXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=24, dim=1536, **kwargs)) # 1.4B\n\ndef GPT_XL(**kwargs):\n    return Transformer(ModelArgs(n_layer=36, n_head=20, dim=1280, **kwargs)) # 775M\n\ndef GPT_L(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=16, dim=1024, **kwargs)) # 343M\n\ndef GPT_B(**kwargs):\n    return Transformer(ModelArgs(n_layer=12, n_head=12, dim=768, **kwargs)) # 111M\n        \n\nGPT_models = {\n    'GPT-B': GPT_B, 'GPT-L': GPT_L, 'GPT-XL': GPT_XL, 'GPT-XXL': GPT_XXL, 'GPT-XXXL': GPT_XXXL,\n    'GPT-1B': GPT_1B, 'GPT-3B': GPT_3B, 'GPT-7B': GPT_7B, \n}\n"
  },
  {
    "path": "autoregressive/models/vit_adapter.py",
    "content": "from transformers import AutoImageProcessor, AutoModel\nfrom PIL import Image\nimport requests\nimport torch\nimport torch.nn as nn\n\n\nclass ViT_Adapter(nn.Module):\n    def __init__(self, input_dim=3, output_dim=768, attention=False, pool=False, nheads=8, dropout=0.1):\n        super(ViT_Adapter, self).__init__()\n        self.model = AutoModel.from_pretrained('autoregressive/models/vit-small')\n        \n    def forward(self, x):\n        x = self.model(x,interpolate_pos_encoding=True)\n        return x.last_hidden_state[:, 1:]\n\n\nif __name__ == '__main__':\n    model = ViT_Adapter().cuda()\n    import pdb;pdb.set_trace()\n    print(sum(p.numel() for p in model.parameters()))\n    inputs = torch.randn(4,3,512,512).cuda()\n\n    outputs = model(inputs)\n\n    print(outputs.shape)"
  },
  {
    "path": "autoregressive/sample/sample_c2i.py",
    "content": "# Modified from:\n#   DiT:  https://github.com/facebookresearch/DiT/blob/main/sample.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)\nfrom torchvision.utils import save_image\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\n\nfrom PIL import Image\nimport time\nimport argparse\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.generate import generate\nfrom functools import partial\nimport torch.nn.functional as F\nimport numpy as np\nimport cv2\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = False\n    torch.set_grad_enabled(False)\n    device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        vocab_size=args.codebook_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        condition_token_num=args.condition_token_nums,\n        image_size=args.image_size\n    ).to(device=device, dtype=precision)      \n    \n    _, file_extension = os.path.splitext(args.gpt_ckpt)\n    if file_extension.lower() == '.safetensors':\n        from safetensors.torch import load_file\n        model_weight = load_file(args.gpt_ckpt)\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n    else:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        if \"model\" in checkpoint:  # ddp\n            model_weight = checkpoint[\"model\"]\n        elif \"module\" in checkpoint: # deepspeed\n            model_weight = checkpoint[\"module\"]\n        elif \"state_dict\" in checkpoint:\n            model_weight = checkpoint[\"state_dict\"]\n        else:\n            raise Exception(\"please check model weight\")\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n        del checkpoint\n    print(f\"gpt model is loaded\")\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        print(f\"no need to compile model in demo\") \n\n    condition_null = None\n    if args.condition_type == 'canny':\n        sample_list = [650, 2312, 15000, 48850]  # canny\n    elif args.condition_type == 'depth':\n        sample_list = [101, 4351, 10601, 48901]\n\n    class_labels = [np.load(f\"condition/example/c2i/{args.condition_type}/{i}.npy\")[0] for i in sample_list]\n    condition_imgs = [np.array(Image.open((f\"condition/example/c2i/{args.condition_type}/{i}.png\")))[None,None,...] for i in sample_list]\n    condition_imgs = torch.from_numpy(np.concatenate(condition_imgs, axis=0)).to(device).to(torch.float32)/255\n    condition_imgs = 2*(condition_imgs-0.5)\n    print(condition_imgs.shape)\n    c_indices = torch.tensor(class_labels, device=device)\n    qzshape = [len(class_labels), args.codebook_embed_dim, latent_size, latent_size]\n    t1 = time.time()\n\n    index_sample = generate(\n        gpt_model, c_indices, latent_size ** 2, condition=condition_imgs.repeat(1,3,1,1).to(precision), condition_null=condition_null, condition_token_nums=args.condition_token_nums,\n        cfg_scale=args.cfg_scale, cfg_interval=args.cfg_interval,\n        temperature=args.temperature, top_k=args.top_k,\n        top_p=args.top_p, sample_logits=True, \n        )\n\n    sampling_time = time.time() - t1\n    print(f\"gpt sampling takes about {sampling_time:.2f} seconds.\")    \n    \n    t2 = time.time()\n    samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n    decoder_time = time.time() - t2\n    print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n    # Save and display images:\n    condition_imgs = condition_imgs.repeat(1,3,1,1)\n    samples = torch.cat((condition_imgs[:4], samples[:4]),dim=0)\n    save_image(samples, f\"sample/example/sample_{args.gpt_type}_{args.condition_type}.png\", nrow=4, normalize=True, value_range=(-1, 1))\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4.0)\n    parser.add_argument(\"--cfg-interval\", type=float, default=-1)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000,help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    parser.add_argument(\"--condition-token-nums\", type=int, default=0)\n    parser.add_argument(\"--condition-type\", type=str, default='canny', choices=['canny', 'depth'])\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "autoregressive/sample/sample_c2i_ddp.py",
    "content": "# Modified from:\n#   DiT:  https://github.com/facebookresearch/DiT/blob/main/sample_ddp.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.nn.functional as F\nimport torch.distributed as dist\n\nfrom tqdm import tqdm\nimport os\nfrom PIL import Image\nimport numpy as np\nimport math\nimport argparse\n\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.generate import generate\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        vocab_size=args.codebook_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n    ).to(device=device, dtype=precision)\n    checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n    if args.from_fsdp: # fsdp\n        model_weight = checkpoint\n    elif \"model\" in checkpoint:  # ddp\n        model_weight = checkpoint[\"model\"]\n    elif \"module\" in checkpoint: # deepspeed\n        model_weight = checkpoint[\"module\"]\n    elif \"state_dict\" in checkpoint:\n        model_weight = checkpoint[\"state_dict\"]\n    else:\n        raise Exception(\"please check model weight, maybe add --from-fsdp to run command\")\n    # if 'freqs_cis' in model_weight:\n    #     model_weight.pop('freqs_cis')\n    gpt_model.load_state_dict(model_weight, strict=False)\n    gpt_model.eval()\n    del checkpoint\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        print(f\"no model compile\") \n\n    # Create folder to save samples:\n    model_string_name = args.gpt_model.replace(\"/\", \"-\")\n    if args.from_fsdp:\n        ckpt_string_name = args.gpt_ckpt.split('/')[-2]\n    else:\n        ckpt_string_name = os.path.basename(args.gpt_ckpt).replace(\".pth\", \"\").replace(\".pt\", \"\")\n    folder_name = f\"{model_string_name}-{ckpt_string_name}-size-{args.image_size}-size-{args.image_size_eval}-{args.vq_model}-\" \\\n                  f\"topk-{args.top_k}-topp-{args.top_p}-temperature-{args.temperature}-\" \\\n                  f\"cfg-{args.cfg_scale}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    # To make things evenly-divisible, we'll sample a bit more than we need and then discard the extra samples:\n    total_samples = int(math.ceil(args.num_fid_samples / global_batch_size) * global_batch_size)\n    if rank == 0:\n        print(f\"Total number of images that will be sampled: {total_samples}\")\n    assert total_samples % dist.get_world_size() == 0, \"total_samples must be divisible by world_size\"\n    samples_needed_this_gpu = int(total_samples // dist.get_world_size())\n    assert samples_needed_this_gpu % n == 0, \"samples_needed_this_gpu must be divisible by the per-GPU batch size\"\n    iterations = int(samples_needed_this_gpu // n)\n    pbar = range(iterations)\n    pbar = tqdm(pbar) if rank == 0 else pbar\n    total = 0\n    for _ in pbar:\n        # Sample inputs:\n        c_indices = torch.randint(0, args.num_classes, (n,), device=device)\n        qzshape = [len(c_indices), args.codebook_embed_dim, latent_size, latent_size]\n\n        index_sample = generate(\n            gpt_model, c_indices, latent_size ** 2,\n            cfg_scale=args.cfg_scale, cfg_interval=args.cfg_interval,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            )\n        \n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n        if args.image_size_eval != args.image_size:\n            samples = F.interpolate(samples, size=(args.image_size_eval, args.image_size_eval), mode='bicubic')\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        \n        # Save samples to disk as individual .png files\n        for i, sample in enumerate(samples):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n        total += global_batch_size\n\n    # Make sure all processes have finished saving their samples before attempting to convert to .npz\n    dist.barrier()\n    if rank == 0:\n        create_npz_from_sample_folder(sample_folder_dir, args.num_fid_samples)\n        print(\"Done.\")\n    dist.barrier()\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=384)\n    parser.add_argument(\"--image-size-eval\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\",  type=float, default=1.5)\n    parser.add_argument(\"--cfg-interval\", type=float, default=-1)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"samples\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--num-fid-samples\", type=int, default=5000)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=0,help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "autoregressive/sample/sample_t2i.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)     # disable default parameter init for faster speed\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)  # disable default parameter init for faster speed\nfrom torchvision.utils import save_image\n\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nimport time\nimport argparse\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom language.t5 import T5Embedder\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom autoregressive.models.generate import generate\nos.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\nfrom dataset.t2i_control import build_t2i_control_code\nfrom accelerate import Accelerator\nfrom dataset.build import build_dataset\nfrom pathlib import Path\nfrom accelerate.utils import ProjectConfiguration, set_seed\nimport torch.nn.functional as F\nfrom condition.canny import CannyDetector\nfrom condition.hed import HEDdetector\nimport numpy as np\nfrom PIL import Image\nfrom condition.lineart import LineArt\nimport cv2\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = False\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        block_size=latent_size ** 2,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        condition_type=args.condition_type,\n        adapter_size=args.adapter_size,\n    ).to(device=device, dtype=precision)\n\n    _, file_extension = os.path.splitext(args.gpt_ckpt)\n    if file_extension.lower() == '.safetensors':\n        from safetensors.torch import load_file\n        model_weight = load_file(args.gpt_ckpt)\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n    else:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        if \"model\" in checkpoint:  # ddp\n            model_weight = checkpoint[\"model\"]\n        elif \"module\" in checkpoint: # deepspeed\n            model_weight = checkpoint[\"module\"]\n        elif \"state_dict\" in checkpoint:\n            model_weight = checkpoint[\"state_dict\"]\n        else:\n            raise Exception(\"please check model weight\")\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n        del checkpoint\n    print(f\"gpt model is loaded\")\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        print(f\"no need to compile model in demo\") \n    \n    assert os.path.exists(args.t5_path)\n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        torch_dtype=precision,\n        model_max_length=args.t5_feature_max_len,\n    )\n    \n\n    if args.condition_type == 'canny':\n        get_control = CannyDetector()\n    elif args.condition_type == 'hed':\n        get_control = HEDdetector().to(device).eval()\n    elif args.condition_type == 'lineart':\n        get_control = LineArt()\n        get_control.load_state_dict(torch.load('condition/ckpts/model.pth', map_location=torch.device('cpu')))\n        get_control.to(device)\n    elif args.condition_type == 'depth':\n        processor = DPTImageProcessor.from_pretrained(\"condition/ckpts/dpt_large\")\n        model = DPTForDepthEstimation.from_pretrained(\"condition/ckpts/dpt_large\").to(device)\n    with torch.no_grad():\n        \n        condition_path = args.condition_path\n        if args.condition_type == 'seg':\n            condition_img = torch.from_numpy(np.array(Image.open(condition_path)))\n            condition_img = condition_img.permute(2,0,1).unsqueeze(0).repeat(2,1,1,1)\n        elif args.condition_type == 'canny':\n            condition_img = get_control(np.array(Image.open(condition_path)))\n            condition_img = torch.from_numpy(condition_img[None,None,...]).repeat(2,3,1,1)\n        elif args.condition_type == 'hed':\n            condition_img = get_control(torch.from_numpy(np.array(Image.open(condition_path))).permute(2,0,1).unsqueeze(0).to(device))\n            condition_img = condition_img.unsqueeze(1).repeat(2,3,1,1)\n        elif args.condition_type == 'lineart':\n            condition_img = get_control(torch.from_numpy(np.array(Image.open(condition_path))).permute(2,0,1).unsqueeze(0).to(device).float())\n            condition_img = 1 - condition_img\n            condition_img = condition_img.repeat(2,3,1,1) * 255\n        elif args.condition_type == 'depth':\n            images = Image.open(condition_path)\n            inputs = processor(images=images, return_tensors=\"pt\", size=(512,512)).to(device)\n            outputs = model(**inputs)\n            condition_img = outputs.predicted_depth\n            condition_img = condition_img.unsqueeze(0).repeat(2,3,1,1)\n            condition_img = (condition_img * 255 / condition_img.max())\n        condition_img = condition_img.to(device)\n        condition_img = 2*(condition_img/255 - 0.5)\n        prompts = [args.prompt if args.prompt is not None else \"a high-quality image\"]\n        prompts = prompts * 2\n        caption_embs, emb_masks = t5_model.get_text_embeddings(prompts)\n\n        if not args.no_left_padding:\n            print(f\"processing left-padding...\")    \n            # a naive way to implement left-padding\n            new_emb_masks = torch.flip(emb_masks, dims=[-1])\n            new_caption_embs = []\n            for idx, (caption_emb, emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n                valid_num = int(emb_mask.sum().item())\n                print(f'  prompt {idx} token len: {valid_num}')\n                new_caption_emb = torch.cat([caption_emb[valid_num:],caption_emb[:valid_num]])\n                new_caption_embs.append(new_caption_emb)\n            new_caption_embs = torch.stack(new_caption_embs)\n        else:\n            new_caption_embs, new_emb_masks = caption_embs, emb_masks\n        c_indices = new_caption_embs * new_emb_masks[:,:, None]\n        c_emb_masks = new_emb_masks\n        qzshape = [len(c_indices), args.codebook_embed_dim, args.image_H//args.downsample_size, args.image_W//args.downsample_size]\n        t1 = time.time()\n        index_sample = generate(\n            gpt_model, c_indices, (args.image_H//args.downsample_size)*(args.image_W//args.downsample_size),#latent_size ** 2, \n            c_emb_masks, condition=condition_img.to(precision),\n            cfg_scale=args.cfg_scale,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            control_strength=args.control_strength,\n            )\n        sampling_time = time.time() - t1\n        print(f\"Full sampling takes about {sampling_time:.2f} seconds.\")    \n        \n        t2 = time.time()\n        print(index_sample.shape)\n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n        decoder_time = time.time() - t2\n        print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n\n        samples = torch.cat((condition_img[0:1], samples), dim=0)\n        save_image(samples, f\"sample/example/sample_t2i_{args.condition_type}.png\", nrow=4, normalize=True, value_range=(-1, 1))\n        print(f\"image is saved to sample/example/sample_t2i_{args.condition_type}.png\")\n        print(prompts)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--no-left-padding\", action='store_true', default=False)\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\", help=\"class->image or text->image\")  \n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 320, 384, 400, 448, 512, 576, 640, 704, 768], default=768)\n    parser.add_argument(\"--image-H\", type=int, default=512)\n    parser.add_argument(\"--image-W\", type=int, default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000, help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--condition-type\", type=str, choices=['seg', 'canny', 'hed', 'lineart', 'depth', 'canny_base'], default=\"canny\")\n    parser.add_argument(\"--prompt\", type=str, default='a high-quality image')\n    parser.add_argument(\"--condition-path\", type=str, default='condition/example/t2i/multigen/landscape.png')\n    parser.add_argument(\"--adapter-size\", type=str, default='small')\n\n    parser.add_argument(\"--control-strength\", type=float, default=1.0)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/sample/sample_t2i_MR.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)     # disable default parameter init for faster speed\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)  # disable default parameter init for faster speed\nfrom torchvision.utils import save_image\n\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nimport time\nimport argparse\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom language.t5 import T5Embedder\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom autoregressive.models.generate import generate\nos.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\nfrom dataset.t2i_control import build_t2i_control_code\nfrom accelerate import Accelerator\nfrom dataset.build import build_dataset\nfrom pathlib import Path\nfrom accelerate.utils import ProjectConfiguration, set_seed\nimport torch.nn.functional as F\nfrom condition.canny import CannyDetector\nfrom condition.hed import HEDdetector\nimport numpy as np\nfrom PIL import Image\nfrom condition.lineart import LineArt\nimport cv2\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nfrom condition.midas.depth import MidasDetector\n\n\ndef resize_image_to_16_multiple(image_path, condition_type='seg'):\n    image = Image.open(image_path)\n    width, height = image.size\n    \n    if condition_type == 'depth':  # The depth model requires a side length that is a multiple of 32\n        new_width = (width + 31) // 32 * 32\n        new_height = (height + 31) // 32 * 32\n    else:\n        new_width = (width + 15) // 16 * 16\n        new_height = (height + 15) // 16 * 16\n\n    resized_image = image.resize((new_width, new_height))\n    return resized_image\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = False\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        block_size=latent_size ** 2,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        condition_type=args.condition_type,\n    ).to(device=device, dtype=precision)\n\n    _, file_extension = os.path.splitext(args.gpt_ckpt)\n    if file_extension.lower() == '.safetensors':\n        from safetensors.torch import load_file\n        model_weight = load_file(args.gpt_ckpt)\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n    else:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        if \"model\" in checkpoint:  # ddp\n            model_weight = checkpoint[\"model\"]\n        elif \"module\" in checkpoint: # deepspeed\n            model_weight = checkpoint[\"module\"]\n        elif \"state_dict\" in checkpoint:\n            model_weight = checkpoint[\"state_dict\"]\n        else:\n            raise Exception(\"please check model weight\")\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n        del checkpoint\n    print(f\"gpt model is loaded\")\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        print(f\"no need to compile model in demo\") \n    \n    assert os.path.exists(args.t5_path)\n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        torch_dtype=precision,\n        model_max_length=args.t5_feature_max_len,\n    )\n    \n\n    if args.condition_type == 'canny':\n        get_control = CannyDetector()\n    elif args.condition_type == 'hed':\n        get_control = HEDdetector().to(device).eval()\n    elif args.condition_type == 'lineart':\n        get_control = LineArt()\n        get_control.load_state_dict(torch.load('condition/ckpts/model.pth', map_location=torch.device('cpu')))\n        get_control.to(device)\n    elif args.condition_type == 'depth':\n        processor = DPTImageProcessor.from_pretrained(\"condition/ckpts/dpt_large\")\n        model_large = DPTForDepthEstimation.from_pretrained(\"condition/ckpts/dpt_large\").to(device)\n        model = MidasDetector(device=device)\n    with torch.no_grad():\n        \n        condition_img = resize_image_to_16_multiple(args.condition_path, args.condition_type)\n        W, H = condition_img.size\n        print(H,W)\n        if args.condition_type == 'seg':\n            condition_img = torch.from_numpy(np.array(condition_img))\n            condition_img = condition_img.permute(2,0,1).unsqueeze(0).repeat(2,1,1,1)\n        elif args.condition_type == 'canny':\n            condition_img = get_control(np.array(condition_img))\n            condition_img = torch.from_numpy(condition_img[None,None,...]).repeat(2,3,1,1)\n        elif args.condition_type == 'hed':\n            condition_img = get_control(torch.from_numpy(np.array(condition_img)).permute(2,0,1).unsqueeze(0).to(device))\n            condition_img = condition_img.unsqueeze(1).repeat(2,3,1,1)\n        elif args.condition_type == 'lineart':\n            condition_img = get_control(torch.from_numpy(np.array(condition_img)).permute(2,0,1).unsqueeze(0).to(device).float())\n            condition_img = condition_img.repeat(2,3,1,1) * 255\n        elif args.condition_type == 'depth':\n            images = condition_img\n            if H == W:\n                inputs = processor(images=images, return_tensors=\"pt\", size=(H,W)).to(device)\n                outputs = model_large(**inputs)\n                condition_img = outputs.predicted_depth\n                condition_img = (condition_img * 255 / condition_img.max())\n            else:\n                condition_img = torch.from_numpy(model(torch.from_numpy(np.array(condition_img)).to(device))).unsqueeze(0)\n            condition_img = condition_img.unsqueeze(0).repeat(2,3,1,1)\n        condition_img = condition_img.to(device)\n        condition_img = 2*(condition_img/255 - 0.5)\n        prompts = [args.prompt if args.prompt is not None else \"a high-quality image\"]\n        prompts = prompts * 2\n        caption_embs, emb_masks = t5_model.get_text_embeddings(prompts)\n\n        if not args.no_left_padding:\n            print(f\"processing left-padding...\")    \n            # a naive way to implement left-padding\n            new_emb_masks = torch.flip(emb_masks, dims=[-1])\n            new_caption_embs = []\n            for idx, (caption_emb, emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n                valid_num = int(emb_mask.sum().item())\n                print(f'  prompt {idx} token len: {valid_num}')\n                new_caption_emb = torch.cat([caption_emb[valid_num:],caption_emb[:valid_num]])\n                new_caption_embs.append(new_caption_emb)\n            new_caption_embs = torch.stack(new_caption_embs)\n        else:\n            new_caption_embs, new_emb_masks = caption_embs, emb_masks\n        c_indices = new_caption_embs * new_emb_masks[:,:, None]\n        c_emb_masks = new_emb_masks\n        qzshape = [len(c_indices), args.codebook_embed_dim, H//args.downsample_size, W//args.downsample_size]\n        t1 = time.time()\n        index_sample = generate(\n            gpt_model, c_indices, (H//args.downsample_size)*(W//args.downsample_size),#latent_size ** 2, \n            c_emb_masks, condition=condition_img.to(precision),\n            cfg_scale=args.cfg_scale,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            )\n        sampling_time = time.time() - t1\n        print(f\"Full sampling takes about {sampling_time:.2f} seconds.\")    \n        \n        t2 = time.time()\n        print(index_sample.shape)\n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n        decoder_time = time.time() - t2\n        print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n\n        samples = torch.cat((condition_img[0:1], samples), dim=0)\n        save_image(samples, f\"sample/example/sample_t2i_MR_{args.condition_type}.png\", nrow=4, normalize=True, value_range=(-1, 1))\n        print(f\"image is saved to sample/example/sample_t2i_MR_{args.condition_type}.png\")\n        print(prompts)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--no-left-padding\", action='store_true', default=False)\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\", help=\"class->image or text->image\")  \n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 320, 384, 400, 448, 512, 576, 640, 704, 768], default=768)\n    parser.add_argument(\"--image-H\", type=int, default=512)\n    parser.add_argument(\"--image-W\", type=int, default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000, help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--condition-type\", type=str, choices=['seg', 'canny', 'hed', 'lineart', 'depth'], default=\"canny\")\n    parser.add_argument(\"--prompt\", type=str, default='a high-quality image')\n    parser.add_argument(\"--condition-path\", type=str, default='condition/example/t2i/multigen/landscape.png')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/sample/sample_t2i_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)     # disable default parameter init for faster speed\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)  # disable default parameter init for faster speed\nimport torch.nn.functional as F\nimport torch.distributed as dist\n\nimport os\nimport math\nimport json\nimport argparse\nimport pandas as pd\nfrom tqdm import tqdm\nfrom PIL import Image\n\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom language.t5 import T5Embedder\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.generate import generate\nos.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        block_size=latent_size ** 2,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n    ).to(device=device, dtype=precision)\n\n    checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n \n    if \"model\" in checkpoint:  # ddp\n        model_weight = checkpoint[\"model\"]\n    elif \"module\" in checkpoint: # deepspeed\n        model_weight = checkpoint[\"module\"]\n    elif \"state_dict\" in checkpoint:\n        model_weight = checkpoint[\"state_dict\"]\n    else:\n        raise Exception(\"please check model weight\")\n    gpt_model.load_state_dict(model_weight, strict=False)\n    gpt_model.eval()\n    del checkpoint\n    print(f\"gpt model is loaded\")\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        print(f\"no need to compile model in demo\") \n    \n    assert os.path.exists(args.t5_path)\n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        torch_dtype=precision,\n        model_max_length=args.t5_feature_max_len,\n    )\n    print(f\"t5 model is loaded\")\n\n    # Create folder to save samples:\n    model_string_name = args.gpt_model.replace(\"/\", \"-\")\n    ckpt_string_name = os.path.basename(args.gpt_ckpt).replace(\".pth\", \"\").replace(\".pt\", \"\")\n    prompt_name = args.prompt_csv.split('/')[-1].split('.')[0].lower()\n    folder_name = f\"{model_string_name}-{ckpt_string_name}-{prompt_name}-size-{args.image_size}-size-{args.image_size}-{args.vq_model}-\" \\\n                  f\"topk-{args.top_k}-topp-{args.top_p}-temperature-{args.temperature}-\" \\\n                  f\"cfg-{args.cfg_scale}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(f\"{sample_folder_dir}/images\", exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}/images\")\n    dist.barrier()\n\n    df = pd.read_csv(args.prompt_csv, delimiter='\\t')\n    prompt_list = df['Prompt'].tolist()\n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    num_fid_samples = min(args.num_fid_samples, len(prompt_list))\n    # To make things evenly-divisible, we'll sample a bit more than we need and then discard the extra samples:\n    total_samples = int(math.ceil(num_fid_samples / global_batch_size) * global_batch_size)\n    if rank == 0:\n        print(f\"Total number of images that will be sampled: {total_samples}\")\n    assert total_samples % dist.get_world_size() == 0, \"total_samples must be divisible by world_size\"\n    samples_needed_this_gpu = int(total_samples // dist.get_world_size())\n    assert samples_needed_this_gpu % n == 0, \"samples_needed_this_gpu must be divisible by the per-GPU batch size\"\n    iterations = int(samples_needed_this_gpu // n)\n    pbar = range(iterations)\n    pbar = tqdm(pbar) if rank == 0 else pbar\n    total = 0\n    for _ in pbar:\n        # Select text prompt\n        prompt_batch = []\n        for i in range(n):\n            index = i * dist.get_world_size() + rank + total\n            prompt_batch.append(prompt_list[index] if index < len(prompt_list) else \"a cute dog\")\n              \n        # Sample inputs:\n        caption_embs, emb_masks = t5_model.get_text_embeddings(prompt_batch)\n        \n        if not args.no_left_padding:\n            new_emb_masks = torch.flip(emb_masks, dims=[-1])\n            new_caption_embs = []\n            for idx, (caption_emb, emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n                valid_num = int(emb_mask.sum().item())\n                # prompt_cur = prompt_batch[idx]\n                # print(f'  prompt {idx} token len: {valid_num} : {prompt_cur}')\n                new_caption_emb = torch.cat([caption_emb[valid_num:], caption_emb[:valid_num]])\n                new_caption_embs.append(new_caption_emb)\n            new_caption_embs = torch.stack(new_caption_embs)\n\n        else:\n            new_caption_embs, new_emb_masks = caption_embs, emb_masks\n\n        c_indices = new_caption_embs * new_emb_masks[:,:, None]\n        c_emb_masks = new_emb_masks\n\n        qzshape = [len(c_indices), args.codebook_embed_dim, latent_size, latent_size]\n        index_sample = generate(\n            gpt_model, c_indices, latent_size ** 2, \n            c_emb_masks,\n            cfg_scale=args.cfg_scale,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            )\n        \n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        \n        # Save samples to disk as individual .png files\n        for i, sample in enumerate(samples):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/images/{index:06d}.png\")\n        total += global_batch_size\n\n    # Make sure all processes have finished saving their samples before attempting to convert to .npz\n    dist.barrier()\n    if rank == 0:\n        # Save infer result in a jsonl file\n        json_items = []\n        for idx, prompt in enumerate(prompt_list):\n            image_path = os.path.join(sample_folder_dir, \"images\", f\"{idx:06d}.png\")\n            json_items.append({\"text\": prompt, \"image_path\": image_path})\n        res_jsonl_path = os.path.join(sample_folder_dir, \"result.jsonl\")\n        print(f\"Save jsonl to {res_jsonl_path}...\")\n        with open(res_jsonl_path, \"w\") as f:\n            for item in json_items:\n                f.write(json.dumps(item) + \"\\n\")\n\n        # Save captions to txt\n        caption_path = os.path.join(sample_folder_dir, \"captions.txt\")\n        print(f\"Save captions to {caption_path}...\")\n        with open(caption_path, \"w\") as f:\n            for item in prompt_list:\n                f.write(f\"{item}\\n\")\n        print(\"Done.\")\n    \n    dist.barrier()\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--prompt-csv\", type=str, default='evaluations/t2i/PartiPrompts.tsv')\n    parser.add_argument(\"--t5-path\", type=str, default='pretrained_models/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--no-left-padding\", action='store_true', default=False)\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\", help=\"class->image or text->image\")  \n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\", type=float, default=7.5)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"samples_parti\", help=\"samples_coco or samples_parti\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--num-fid-samples\", type=int, default=30000)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=1000, help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/serve/README.md",
    "content": "## serving by vLLM\n\n### Install\n```\npip install vllm==0.4.1\n```\n\n### Comparison (A100)\n\nMethod | params | baseline(s) | vllm(s) | speed-up ratio \n--- |:---:|:---:|:---:|:---:\n[GPT-B](./fake_json/GPT-B.json)    | 111M | 7.80    | 2.39      |  326 %\n[GPT-L](./fake_json/GPT-L.json)    | 343M | 13.72   | 3.48      |  380 %\n[GPT-XL](./fake_json/GPT-XL.json)  | 775M | 19.76   | 4.84      |  408 %\n[GPT-XXL](./fake_json/GPT-XXL.json)| 1.4B | 26.38   | 6.36      |  414 %\n[GPT-3B](./fake_json/GPT-3B.json)  | 3.1B | 14.73   | 6.26      |  235 %\n\n```\n### GPT-B\n# 7.80 seconds\npython3 autoregressive/sample/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_B_384.pt --image-size 384\n\n# 2.39 seconds\npython3 autoregressive/serve/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_B_384.pt --image-size 384\n\n\n### GPT-L\n# 13.72 seconds\npython3 autoregressive/sample/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_L_384.pt --gpt-model GPT-L --image-size 384\n\n# 3.48 seconds\npython3 autoregressive/serve/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_L_384.pt --gpt-model GPT-L --image-size 384\n\n\n### GPT-XL\n# 19.76 seconds\npython3 autoregressive/sample/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_XL_384.pt --gpt-model GPT-XL --image-size 384\n\n# 4.84 seconds\npython3 autoregressive/serve/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_XL_384.pt --gpt-model GPT-XL --image-size 384\n\n\n### GPT-XXL\n# 26.38 seconds\npython3 autoregressive/sample/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_XXL_384.pt --from-fsdp --gpt-model GPT-XXL --image-size 384\n\n# 6.36 seconds\npython3 autoregressive/serve/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_XXL_384.pt --from-fsdp --gpt-model GPT-XXL --image-size 384\n\n\n### GPT-3B\n# 14.73 seconds\npython3 autoregressive/sample/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_3B_384.pt --from-fsdp --gpt-model GPT-3B --image-size 384\n\n# 6.26 seconds\npython3 autoregressive/serve/sample_c2i.py --vq-ckpt ./pretrained_models/vq_ds16_c2i.pt --gpt-ckpt ./pretrained_models/c2i_3B_384.pt --from-fsdp --gpt-model GPT-3B --image-size 384\n\n```\n"
  },
  {
    "path": "autoregressive/serve/fake_json/GPT-3B.json",
    "content": "{\n  \"_name_or_path\": \"facebook/opt-125m\",\n  \"activation_dropout\": 0.0,\n  \"activation_function\": \"relu\",\n  \"architectures\": [\n    \"OPTForCausalLM\"\n  ],\n  \"attention_dropout\": 0.0,\n  \"bos_token_id\": 2,\n  \"do_layer_norm_before\": true,\n  \"dropout\": 0.1,\n  \"eos_token_id\": 2,\n  \"ffn_dim\": 3072,\n  \"hidden_size\": 3584,\n  \"init_std\": 0.02,\n  \"layerdrop\": 0.0,\n  \"max_position_embeddings\": 2048,\n  \"model_type\": \"opt\",\n  \"num_attention_heads\": 32,\n  \"num_hidden_layers\": 24,\n  \"pad_token_id\": 1,\n  \"prefix\": \"</s>\",\n  \"torch_dtype\": \"bfloat16\",\n  \"transformers_version\": \"4.21.0.dev0\",\n  \"use_cache\": true,\n  \"vocab_size\": 16384,\n  \"word_embed_proj_dim\": 768\n}\n"
  },
  {
    "path": "autoregressive/serve/fake_json/GPT-B.json",
    "content": "{\n  \"_name_or_path\": \"facebook/opt-125m\",\n  \"activation_dropout\": 0.0,\n  \"activation_function\": \"relu\",\n  \"architectures\": [\n    \"OPTForCausalLM\"\n  ],\n  \"attention_dropout\": 0.0,\n  \"bos_token_id\": 2,\n  \"do_layer_norm_before\": true,\n  \"dropout\": 0.1,\n  \"eos_token_id\": 2,\n  \"ffn_dim\": 3072,\n  \"hidden_size\": 768,\n  \"init_std\": 0.02,\n  \"layerdrop\": 0.0,\n  \"max_position_embeddings\": 2048,\n  \"model_type\": \"opt\",\n  \"num_attention_heads\": 12,\n  \"num_hidden_layers\": 12,\n  \"pad_token_id\": 1,\n  \"prefix\": \"</s>\",\n  \"torch_dtype\": \"bfloat16\",\n  \"transformers_version\": \"4.21.0.dev0\",\n  \"use_cache\": true,\n  \"vocab_size\": 16384,\n  \"word_embed_proj_dim\": 768\n}\n"
  },
  {
    "path": "autoregressive/serve/fake_json/GPT-L.json",
    "content": "{\n  \"_name_or_path\": \"facebook/opt-125m\",\n  \"activation_dropout\": 0.0,\n  \"activation_function\": \"relu\",\n  \"architectures\": [\n    \"OPTForCausalLM\"\n  ],\n  \"attention_dropout\": 0.0,\n  \"bos_token_id\": 2,\n  \"do_layer_norm_before\": true,\n  \"dropout\": 0.1,\n  \"eos_token_id\": 2,\n  \"ffn_dim\": 3072,\n  \"hidden_size\": 1024,\n  \"init_std\": 0.02,\n  \"layerdrop\": 0.0,\n  \"max_position_embeddings\": 2048,\n  \"model_type\": \"opt\",\n  \"num_attention_heads\": 16,\n  \"num_hidden_layers\": 24,\n  \"pad_token_id\": 1,\n  \"prefix\": \"</s>\",\n  \"torch_dtype\": \"bfloat16\",\n  \"transformers_version\": \"4.21.0.dev0\",\n  \"use_cache\": true,\n  \"vocab_size\": 16384,\n  \"word_embed_proj_dim\": 768\n}\n"
  },
  {
    "path": "autoregressive/serve/fake_json/GPT-XL.json",
    "content": "{\n  \"_name_or_path\": \"facebook/opt-125m\",\n  \"activation_dropout\": 0.0,\n  \"activation_function\": \"relu\",\n  \"architectures\": [\n    \"OPTForCausalLM\"\n  ],\n  \"attention_dropout\": 0.0,\n  \"bos_token_id\": 2,\n  \"do_layer_norm_before\": true,\n  \"dropout\": 0.1,\n  \"eos_token_id\": 2,\n  \"ffn_dim\": 3072,\n  \"hidden_size\": 1280,\n  \"init_std\": 0.02,\n  \"layerdrop\": 0.0,\n  \"max_position_embeddings\": 2048,\n  \"model_type\": \"opt\",\n  \"num_attention_heads\": 20,\n  \"num_hidden_layers\": 36,\n  \"pad_token_id\": 1,\n  \"prefix\": \"</s>\",\n  \"torch_dtype\": \"bfloat16\",\n  \"transformers_version\": \"4.21.0.dev0\",\n  \"use_cache\": true,\n  \"vocab_size\": 16384,\n  \"word_embed_proj_dim\": 768\n}\n"
  },
  {
    "path": "autoregressive/serve/fake_json/GPT-XXL.json",
    "content": "{\n  \"_name_or_path\": \"facebook/opt-125m\",\n  \"activation_dropout\": 0.0,\n  \"activation_function\": \"relu\",\n  \"architectures\": [\n    \"OPTForCausalLM\"\n  ],\n  \"attention_dropout\": 0.0,\n  \"bos_token_id\": 2,\n  \"do_layer_norm_before\": true,\n  \"dropout\": 0.1,\n  \"eos_token_id\": 2,\n  \"ffn_dim\": 3072,\n  \"hidden_size\": 1536,\n  \"init_std\": 0.02,\n  \"layerdrop\": 0.0,\n  \"max_position_embeddings\": 2048,\n  \"model_type\": \"opt\",\n  \"num_attention_heads\": 24,\n  \"num_hidden_layers\": 48,\n  \"pad_token_id\": 1,\n  \"prefix\": \"</s>\",\n  \"torch_dtype\": \"bfloat16\",\n  \"transformers_version\": \"4.21.0.dev0\",\n  \"use_cache\": true,\n  \"vocab_size\": 16384,\n  \"word_embed_proj_dim\": 768\n}\n"
  },
  {
    "path": "autoregressive/serve/gpt_model.py",
    "content": "from dataclasses import dataclass\nfrom typing import Optional, List\n\nimport torch\nimport torch.nn as nn\n\nfrom vllm.model_executor.layers.layernorm import RMSNorm\nfrom vllm.model_executor.layers.activation import SiluAndMul\nfrom vllm.model_executor.sampling_metadata import SamplingMetadata\nfrom vllm.sequence import SamplerOutput\n\nfrom vllm.attention import AttentionMetadata\nfrom vllm.attention import Attention as pagedAttention\n\nfrom vllm.model_executor.layers.logits_processor import LogitsProcessor\nfrom autoregressive.serve.sampler import Sampler\n\ndef find_multiple(n: int, k: int):\n    if n % k == 0:\n        return n\n    return n + k - (n % k)\n\n@dataclass\nclass ModelArgs:\n    dim: int = 4096\n    n_layer: int = 32\n    n_head: int = 32\n    n_kv_head: Optional[int] = None\n    multiple_of: int = 256  # make SwiGLU hidden layer size multiple of large power of 2\n    ffn_dim_multiplier: Optional[float] = None\n    rope_base: float = 10000\n    norm_eps: float = 1e-5\n    initializer_range: float = 0.02\n    \n    num_classes: int = 1000\n    class_dropout_prob: float = 0.1\n    model_type: str = 'c2i'\n    cfg_scale: float = 4.0\n\n    vocab_size: int = 16384\n    cls_token_num: int = 1\n    block_size: int = 256\n    max_batch_size: int = 32\n    max_seq_len: int = 2048\n\n\n#################################################################################\n#                      Embedding Layers for Class Labels                        #\n#################################################################################\nclass LabelEmbedder(nn.Module):\n    \"\"\"\n    Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance.\n    \"\"\"\n    def __init__(self, num_classes, hidden_size, dropout_prob):\n        super().__init__()\n        use_cfg_embedding = dropout_prob > 0\n        self.embedding_table = nn.Embedding(num_classes + use_cfg_embedding, hidden_size)\n        self.num_classes = num_classes\n        self.dropout_prob = dropout_prob\n\n    # def token_drop(self, labels, force_drop_ids=None):\n    #     \"\"\"\n    #     Drops labels to enable classifier-free guidance.\n    #     \"\"\"\n    #     if force_drop_ids is None:\n    #         drop_ids = torch.rand(labels.shape[0], device=labels.device) < self.dropout_prob\n    #     else:\n    #         drop_ids = force_drop_ids == 1\n    #     labels = torch.where(drop_ids, self.num_classes, labels)\n    #     return labels\n\n    # def forward(self, labels, train, force_drop_ids=None):\n    def forward(self, labels):\n        # use_dropout = self.dropout_prob > 0\n        # if (train and use_dropout) or (force_drop_ids is not None):\n        #     labels = self.token_drop(labels, force_drop_ids)\n        embeddings = self.embedding_table(labels)\n        return embeddings\n\n\n#################################################################################\n#                                  GPT Model                                    #\n#################################################################################\n# class RMSNorm(torch.nn.Module):\n#     def __init__(self, dim: int, eps: float = 1e-5):\n#         super().__init__()\n#         self.eps = eps\n#         self.weight = nn.Parameter(torch.ones(dim))\n\n#     def _norm(self, x):\n#         return x * torch.rsqrt(torch.mean(x * x, dim=-1, keepdim=True) + self.eps)\n\n#     def forward(self, x):\n#         output = self._norm(x.float()).type_as(x)\n#         return output * self.weight\n\n\nclass FeedForward(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        hidden_dim = 4 * config.dim\n        hidden_dim = int(2 * hidden_dim / 3)\n        # custom dim factor multiplier\n        if config.ffn_dim_multiplier is not None:\n            hidden_dim = int(config.ffn_dim_multiplier * hidden_dim)\n        hidden_dim = find_multiple(hidden_dim, config.multiple_of)\n\n        # self.w1 = nn.Linear(config.dim, hidden_dim, bias=False)\n        # self.w3 = nn.Linear(config.dim, hidden_dim, bias=False)\n        self.w_merged = nn.Linear(config.dim, hidden_dim * 2, bias=False)\n        self.act_fn = SiluAndMul()\n\n        self.w2 = nn.Linear(hidden_dim, config.dim, bias=False)\n        # self.ffn_dropout = nn.Dropout(config.ffn_dropout_p)\n\n    # def forward(self, x):\n    #     return self.ffn_dropout(self.w2(F.silu(self.w1(x)) * self.w3(x)))\n\n    def forward(self, x):\n        x = self.w_merged(x)\n        x = self.act_fn(x)\n        x = self.w2(x)\n        # return self.ffn_dropout(x)\n        return x\n\n\nclass Attention(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        assert config.dim % config.n_head == 0\n        self.dim = config.dim\n        self.head_dim = config.dim // config.n_head\n        self.n_head = config.n_head\n        self.n_kv_head = config.n_kv_head if config.n_kv_head is not None else config.n_head\n        total_kv_dim = (self.n_head + 2 * self.n_kv_head) * self.head_dim\n\n        # key, query, value projections for all heads, but in a batch\n        self.wqkv = nn.Linear(config.dim, total_kv_dim, bias=False)\n        self.wo = nn.Linear(config.dim, config.dim, bias=False)\n\n        # pagedAttention\n        if config.dim // config.n_head == 100:\n            self.attn = None  # for this case, we need to overwrite the attn in AttentionMonkeyPatch\n        else:\n            self.attn = pagedAttention(self.n_head, self.head_dim, self.head_dim**-0.5, num_kv_heads=self.n_kv_head)\n\n        # 2d rotary pos embedding\n        grid_size = int(config.block_size ** 0.5)\n        assert grid_size * grid_size == config.block_size\n        freqs_cis = precompute_freqs_cis_2d(grid_size, config.dim // config.n_head, config.rope_base, config.cls_token_num)\n        self.register_buffer('freqs_cis', freqs_cis)\n\n\n    def forward(\n        self, \n        x: torch.Tensor,\n        positions: torch.Tensor, \n        kv_cache: torch.Tensor,\n        attn_metadata: AttentionMetadata,\n    ):  \n        kv_size = self.n_kv_head * self.head_dim\n        xq, xk, xv = self.wqkv(x).split([self.dim, kv_size, kv_size], dim=-1)\n\n        xq = xq.view(*xq.shape[:-1], 1, self.n_head, self.head_dim)\n        xk = xk.view(*xk.shape[:-1], 1, self.n_kv_head, self.head_dim)\n        freqs_cis = self.freqs_cis[positions].unsqueeze(1)        \n        xq = apply_rotary_emb_bs(xq, freqs_cis)\n        xk = apply_rotary_emb_bs(xk, freqs_cis)\n        xq = xq.flatten(1)\n        xk = xk.flatten(1)\n\n        output = self.attn(xq, xk, xv, kv_cache, attn_metadata)\n        output = self.wo(output)\n        \n        return output\n\n\nclass AttentionMonkeyPatch(Attention):\n    \"\"\"\n    Note:\n    In vllm, PagedAttention supports head sizes [64, 80, 96, 112, 128, 256].\n    However, LlamaGen-3B model has head size 100 (for some historical reasons).\n    Here we hack Attnetion to enable vllm support head size 100.\n    \"\"\"\n    def __init__(self, config: ModelArgs):\n        super().__init__(config)\n        # overwrite PagedAttention\n        # hard-coded 112 for LlamaGen-3B model\n        self.attn = pagedAttention(self.n_head, 112, 100**-0.5, num_kv_heads=self.n_kv_head)\n\n    def forward(\n        self,\n        x: torch.Tensor,\n        positions: torch.Tensor,\n        kv_cache: torch.Tensor,\n        attn_metadata: AttentionMetadata,\n    ):\n        kv_size = self.n_kv_head * self.head_dim\n        xq, xk, xv = self.wqkv(x).split([self.dim, kv_size, kv_size], dim=-1)\n\n        xq = xq.view(*xq.shape[:-1], 1, self.n_head, self.head_dim)\n        xk = xk.view(*xk.shape[:-1], 1, self.n_kv_head, self.head_dim)\n        freqs_cis = self.freqs_cis[positions].unsqueeze(1)\n        xq = apply_rotary_emb_bs(xq, freqs_cis)\n        xk = apply_rotary_emb_bs(xk, freqs_cis)\n        xq = xq.flatten(1)\n        xk = xk.flatten(1)\n        ############ padding to 112 to make vllm happy ############\n        zero_pad = torch.zeros(xq.shape[0], self.n_head, 112 - 100, device=xq.device, dtype=xq.dtype)\n        xq = xq.reshape(xq.shape[0], self.n_head, self.head_dim)\n        xk = xk.reshape(xk.shape[0], self.n_kv_head, self.head_dim)\n        xv = xv.reshape(xv.shape[0], self.n_kv_head, self.head_dim)\n        xq = torch.concat([xq, zero_pad], dim=-1).flatten(1)\n        xk = torch.concat([xk, zero_pad], dim=-1).flatten(1)\n        xv = torch.concat([xv, zero_pad], dim=-1).flatten(1)\n\n        output = self.attn(xq, xk, xv, kv_cache, attn_metadata)\n        ############ de-padding to 100 ############\n        output = output.reshape(output.shape[0], self.n_head, 112)\n        output = output[..., :100].flatten(1)\n\n        output = self.wo(output)\n\n        return output\n\n\nclass TransformerBlock(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        if config.dim // config.n_head == 100:\n            self.attention = AttentionMonkeyPatch(config)\n        else:\n            self.attention = Attention(config)\n        self.feed_forward = FeedForward(config)\n        self.attention_norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.ffn_norm = RMSNorm(config.dim, eps=config.norm_eps)\n\n    def forward(self, x: torch.Tensor, positions: torch.Tensor, kv_cache: torch.Tensor, attn_metadata: AttentionMetadata):\n        h = x + self.attention(self.attention_norm(x), positions, kv_cache, attn_metadata)\n        out = h + self.feed_forward(self.ffn_norm(h))\n        return out\n        \n\nclass Transformer(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        self.config = config\n        self.vocab_size = config.vocab_size\n        self.n_layer = config.n_layer\n        self.block_size = config.block_size\n        self.num_classes = config.num_classes\n        self.model_type = config.model_type\n        self.cls_token_num = config.cls_token_num\n        self.cfg_scale = config.cfg_scale\n        if self.model_type == 'c2i':\n            self.cls_embedding = LabelEmbedder(config.num_classes, config.dim, config.class_dropout_prob)\n        else:\n            raise Exception(\"vllm only supports c2i now, please check model type\")\n        self.tok_embeddings = nn.Embedding(config.vocab_size, config.dim)\n\n        self.layers = torch.nn.ModuleList()\n        for layer_id in range(config.n_layer):\n            self.layers.append(TransformerBlock(config))\n\n        # output layer\n        self.norm = RMSNorm(config.dim, eps=config.norm_eps)\n        self.output = nn.Linear(config.dim, config.vocab_size, bias=False)\n\n        self.logits_processor = LogitsProcessor(config.vocab_size)\n\n        self.sampler = Sampler(config.cfg_scale)\n\n    def forward(\n        self, \n        input_ids: torch.Tensor=None,\n        positions: torch.Tensor=None,\n        kv_caches: List[torch.Tensor]=None,\n        attn_metadata: AttentionMetadata=None,\n    ):\n        # if positions.max() == 0: # prefill in inference\n        #     token_embeddings = self.cls_embedding(input_ids)\n        # else: # decode_n_tokens(kv cache) in inference\n        #     token_embeddings = self.tok_embeddings(input_ids)\n        cond_ids = torch.clamp(input_ids, max=self.num_classes)\n        token_embeddings = self.cls_embedding(cond_ids) * (positions.max() == 0) + \\\n            self.tok_embeddings(input_ids) * (positions.max() != 0)\n\n        hh = token_embeddings\n        # transformer blocks\n        for layer_id, layer in enumerate(self.layers):\n            hh = layer(hh, positions, kv_caches[layer_id], attn_metadata)\n        \n        # output layers\n        hh = self.norm(hh)\n        return hh\n\n    def compute_logits(self, hidden_states: torch.Tensor,\n                       sampling_metadata: SamplingMetadata) -> torch.Tensor:\n        logits = self.logits_processor(self.output.weight, hidden_states, sampling_metadata)\n        return logits\n\n    def sample(\n        self,\n        logits: torch.Tensor,\n        sampling_metadata: SamplingMetadata,\n    ) -> Optional[SamplerOutput]:\n        next_tokens = self.sampler(logits, sampling_metadata)\n        return next_tokens\n        \n\n    def custom_load_state_dict(self, model_weights):\n        model_weights = model_weights.copy()\n        for layer_id in range(len(self.layers)):\n            branch1 = f'layers.{layer_id}.feed_forward.w1.weight'\n            branch3 = f'layers.{layer_id}.feed_forward.w3.weight'\n            branch_merged = f'layers.{layer_id}.feed_forward.w_merged.weight'\n            model_weights[branch_merged] = torch.cat(\n                [model_weights[branch1], model_weights[branch3]], dim=0\n            )\n            model_weights.pop(branch1)\n            model_weights.pop(branch3)\n\n        if 'freqs_cis' in model_weights:\n            model_weights.pop('freqs_cis')\n        \n        self.load_state_dict(model_weights, strict=False)\n\n\n\n#################################################################################\n#                      Rotary Positional Embedding Functions                    #\n#################################################################################\n# https://github.com/pytorch-labs/gpt-fast/blob/main/model.py \ndef precompute_freqs_cis(seq_len: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    freqs = 1.0 / (base ** (torch.arange(0, n_elem, 2)[: (n_elem // 2)].float() / n_elem))\n    t = torch.arange(seq_len, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (seq_len, head_dim // 2)\n    freqs_cis = torch.polar(torch.ones_like(freqs), freqs)\n    cache = torch.stack([freqs_cis.real, freqs_cis.imag], dim=-1) # (cls_token_num+seq_len, head_dim // 2, 2)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+seq_len, head_dim // 2, 2)\n    return cond_cache \n\n\ndef precompute_freqs_cis_2d(grid_size: int, n_elem: int, base: int = 10000, cls_token_num=120):\n    # split the dimension into half, one for x and one for y\n    half_dim = n_elem // 2\n    freqs = 1.0 / (base ** (torch.arange(0, half_dim, 2)[: (half_dim // 2)].float() / half_dim))\n    t = torch.arange(grid_size, device=freqs.device)\n    freqs = torch.outer(t, freqs) # (grid_size, head_dim // 2)\n    freqs_grid = torch.concat([\n        freqs[:, None, :].expand(-1, grid_size, -1),\n        freqs[None, :, :].expand(grid_size, -1, -1),\n    ], dim=-1)  # (grid_size, grid_size, head_dim // 2)\n    cache_grid = torch.stack([torch.cos(freqs_grid), torch.sin(freqs_grid)], dim=-1) # (grid_size, grid_size, head_dim // 2, 2)\n    cache = cache_grid.flatten(0, 1)\n    cond_cache = torch.cat([torch.zeros(cls_token_num, n_elem // 2, 2), cache]) # (cls_token_num+grid_size**2, head_dim // 2, 2)\n    return cond_cache \n\n\ndef apply_rotary_emb(x: torch.Tensor, freqs_cis: torch.Tensor):\n    # x: (bs, seq_len, n_head, head_dim)\n    # freqs_cis (seq_len, head_dim // 2, 2)\n    xshaped = x.float().reshape(*x.shape[:-1], -1, 2) # (bs, seq_len, n_head, head_dim//2, 2)\n    freqs_cis = freqs_cis.view(1, xshaped.size(1), 1, xshaped.size(3), 2) # (1, seq_len, 1, head_dim//2, 2)\n    x_out2 = torch.stack([\n            xshaped[..., 0] * freqs_cis[..., 0] - xshaped[..., 1] * freqs_cis[..., 1],\n            xshaped[..., 1] * freqs_cis[..., 0] + xshaped[..., 0] * freqs_cis[..., 1],\n    ], dim=-1)\n    x_out2 = x_out2.flatten(3)\n    return x_out2.type_as(x)\n\n\ndef apply_rotary_emb_bs(x: torch.Tensor, freqs_cis: torch.Tensor):\n    # x: (bs, seq_len, n_head, head_dim)\n    # freqs_cis (seq_len, head_dim // 2, 2)\n    xshaped = x.float().reshape(*x.shape[:-1], -1, 2) # (bs, seq_len, n_head, head_dim//2, 2)\n    freqs_cis = freqs_cis.view(xshaped.size(0), xshaped.size(1), 1, xshaped.size(3), 2) # (bs, seq_len, 1, head_dim//2, 2)\n    x_out2 = torch.stack([\n            xshaped[..., 0] * freqs_cis[..., 0] - xshaped[..., 1] * freqs_cis[..., 1],\n            xshaped[..., 1] * freqs_cis[..., 0] + xshaped[..., 0] * freqs_cis[..., 1],\n    ], dim=-1)\n    x_out2 = x_out2.flatten(3)\n    return x_out2.type_as(x)\n\n\n#################################################################################\n#                                GPT Configs                                    #\n#################################################################################\n### text-conditional\ndef GPT_7B(**kwargs):\n    return Transformer(ModelArgs(n_layer=32, n_head=32, dim=4096, **kwargs)) # 6.6B\n\ndef GPT_3B(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=32, dim=3200, **kwargs)) # 3.1B\n\ndef GPT_1B(**kwargs):\n    return Transformer(ModelArgs(n_layer=22, n_head=32, dim=2048, **kwargs)) # 1.2B\n\n### class-conditional\ndef GPT_XXXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=40, dim=2560, **kwargs)) # 3.9B\n\ndef GPT_XXL(**kwargs):\n    return Transformer(ModelArgs(n_layer=48, n_head=24, dim=1536, **kwargs)) # 1.4B\n\ndef GPT_XL(**kwargs):\n    return Transformer(ModelArgs(n_layer=36, n_head=20, dim=1280, **kwargs)) # 775M\n\ndef GPT_L(**kwargs):\n    return Transformer(ModelArgs(n_layer=24, n_head=16, dim=1024, **kwargs)) # 343M\n\ndef GPT_B(**kwargs):\n    return Transformer(ModelArgs(n_layer=12, n_head=12, dim=768, **kwargs)) # 111M\n        \n\nGPT_models = {\n    'GPT-B': GPT_B, 'GPT-L': GPT_L, 'GPT-XL': GPT_XL, 'GPT-XXL': GPT_XXL, 'GPT-XXXL': GPT_XXXL,\n    'GPT-1B': GPT_1B, 'GPT-3B': GPT_3B, 'GPT-7B': GPT_7B, \n}"
  },
  {
    "path": "autoregressive/serve/gpu_executor.py",
    "content": "from typing import Dict, List, Set, Tuple, Optional, Set\nimport argparse\n\nfrom vllm.config import (CacheConfig, DeviceConfig, LoadConfig, LoRAConfig,\n                         ModelConfig, ParallelConfig, SchedulerConfig,\n                         SpeculativeConfig, VisionLanguageConfig)\nfrom vllm.executor.executor_base import ExecutorAsyncBase, ExecutorBase\nfrom vllm.logger import init_logger\nfrom vllm.lora.request import LoRARequest\nfrom vllm.sequence import SamplerOutput, SequenceGroupMetadata\nfrom vllm.utils import (get_distributed_init_method, get_ip, get_open_port,\n                        make_async)\n\nlogger = init_logger(__name__)\n\n\nclass GPUExecutor(ExecutorBase):\n    def __init__(\n        self,\n        args: argparse.ArgumentParser,\n        model_config: ModelConfig,\n        cache_config: CacheConfig,\n        parallel_config: ParallelConfig,\n        scheduler_config: SchedulerConfig,\n        device_config: DeviceConfig,\n        load_config: LoadConfig,\n        lora_config: Optional[LoRAConfig],\n        vision_language_config: Optional[VisionLanguageConfig],\n        speculative_config: Optional[SpeculativeConfig],\n    ) -> None:\n        self.args = args\n        self.model_config = model_config\n        self.cache_config = cache_config\n        self.lora_config = lora_config\n        self.load_config = load_config\n        self.parallel_config = parallel_config\n        self.scheduler_config = scheduler_config\n        self.device_config = device_config\n        self.vision_language_config = vision_language_config\n        self.speculative_config = speculative_config\n\n        self._init_executor()\n\n    def _init_executor(self) -> None:\n        \"\"\"Initialize the worker and load the model.\n\n        If speculative decoding is enabled, we instead create the speculative\n        worker.\n        \"\"\"\n        if self.speculative_config is None:\n            self._init_non_spec_worker()\n        else:\n            self._init_spec_worker()\n\n    def _init_non_spec_worker(self):\n        # Lazy import the Worker to avoid importing torch.cuda/xformers\n        # before CUDA_VISIBLE_DEVICES is set in the Worker\n        # from vllm.worker.worker import Worker\n        from autoregressive.serve.worker import Worker\n\n        assert self.parallel_config.world_size == 1, (\n            \"GPUExecutor only supports single GPU.\")\n\n        distributed_init_method = get_distributed_init_method(\n            get_ip(), get_open_port())\n        self.driver_worker = Worker(\n            model_config=self.model_config,\n            parallel_config=self.parallel_config,\n            scheduler_config=self.scheduler_config,\n            device_config=self.device_config,\n            cache_config=self.cache_config,\n            load_config=self.load_config,\n            local_rank=0,\n            rank=0,\n            distributed_init_method=distributed_init_method,\n            lora_config=self.lora_config,\n            vision_language_config=self.vision_language_config,\n            is_driver_worker=True,\n        )\n        self.driver_worker.init_device()\n        self.driver_worker.load_model(self.args)\n\n    def _init_spec_worker(self):\n        \"\"\"Initialize a SpecDecodeWorker, using a draft model for proposals.\n        \"\"\"\n        assert self.speculative_config is not None\n\n        from vllm.spec_decode.multi_step_worker import MultiStepWorker\n        from vllm.spec_decode.spec_decode_worker import SpecDecodeWorker\n        from vllm.worker.worker import Worker\n\n        distributed_init_method = get_distributed_init_method(\n            get_ip(), get_open_port())\n\n        target_worker = Worker(\n            model_config=self.model_config,\n            parallel_config=self.parallel_config,\n            scheduler_config=self.scheduler_config,\n            device_config=self.device_config,\n            cache_config=self.cache_config,\n            load_config=self.load_config,\n            local_rank=0,\n            rank=0,\n            distributed_init_method=distributed_init_method,\n            lora_config=self.lora_config,\n            vision_language_config=self.vision_language_config,\n            is_driver_worker=True,\n        )\n\n        draft_worker = MultiStepWorker(\n            model_config=self.speculative_config.draft_model_config,\n            parallel_config=self.speculative_config.draft_parallel_config,\n            scheduler_config=self.scheduler_config,\n            device_config=self.device_config,\n            cache_config=self.cache_config,\n            load_config=self.load_config,\n            local_rank=0,\n            rank=0,\n            distributed_init_method=distributed_init_method,\n            lora_config=self.lora_config,\n            vision_language_config=self.vision_language_config,\n            is_driver_worker=True,\n        )\n\n        spec_decode_worker = SpecDecodeWorker.from_workers(\n            proposer_worker=draft_worker, scorer_worker=target_worker)\n\n        assert self.parallel_config.world_size == 1, (\n            \"GPUExecutor only supports single GPU.\")\n\n        self.driver_worker = spec_decode_worker\n\n        # Load model handled in spec decode worker.\n        self.driver_worker.init_device()\n\n    def determine_num_available_blocks(self) -> Tuple[int, int]:\n        \"\"\"Determine the number of available KV blocks by invoking the\n        underlying worker.\n        \"\"\"\n        return self.driver_worker.determine_num_available_blocks()\n\n    def initialize_cache(self, num_gpu_blocks: int, num_cpu_blocks) -> None:\n        \"\"\"Initialize the KV cache by invoking the underlying worker.\n        \"\"\"\n        # NOTE: This is logged in the executor because there can be >1 worker\n        # with other executors. We could log in the engine level, but work\n        # remains to abstract away the device for non-GPU configurations.\n        logger.info(f\"# GPU blocks: {num_gpu_blocks}, \"\n                    f\"# CPU blocks: {num_cpu_blocks}\")\n\n        self.driver_worker.initialize_cache(num_gpu_blocks, num_cpu_blocks)\n\n    def execute_model(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n        blocks_to_swap_in: Dict[int, int],\n        blocks_to_swap_out: Dict[int, int],\n        blocks_to_copy: Dict[int, List[int]],\n        num_lookahead_slots: int,\n    ) -> List[SamplerOutput]:\n        output = self.driver_worker.execute_model(\n            seq_group_metadata_list=seq_group_metadata_list,\n            blocks_to_swap_in=blocks_to_swap_in,\n            blocks_to_swap_out=blocks_to_swap_out,\n            blocks_to_copy=blocks_to_copy,\n            num_lookahead_slots=num_lookahead_slots,\n        )\n        return output\n\n    def add_lora(self, lora_request: LoRARequest) -> bool:\n        assert lora_request.lora_int_id > 0, \"lora_id must be greater than 0.\"\n        return self.driver_worker.add_lora(lora_request)\n\n    def remove_lora(self, lora_id: int) -> bool:\n        assert lora_id > 0, \"lora_id must be greater than 0.\"\n        return self.driver_worker.remove_lora(lora_id)\n\n    def list_loras(self) -> Set[int]:\n        return self.driver_worker.list_loras()\n\n    def check_health(self) -> None:\n        # GPUExecutor will always be healthy as long as\n        # it's running.\n        return\n\n\nclass GPUExecutorAsync(GPUExecutor, ExecutorAsyncBase):\n\n    async def execute_model_async(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n        blocks_to_swap_in: Dict[int, int],\n        blocks_to_swap_out: Dict[int, int],\n        blocks_to_copy: Dict[int, List[int]],\n    ) -> SamplerOutput:\n        output = await make_async(self.driver_worker.execute_model)(\n            seq_group_metadata_list=seq_group_metadata_list,\n            blocks_to_swap_in=blocks_to_swap_in,\n            blocks_to_swap_out=blocks_to_swap_out,\n            blocks_to_copy=blocks_to_copy)\n        return output"
  },
  {
    "path": "autoregressive/serve/llm.py",
    "content": "# Modified from:\n#   vLLM:    https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/llm.py\nfrom typing import List, Optional, Union\nimport argparse\n\nimport torch\nfrom tqdm import tqdm\nfrom transformers import PreTrainedTokenizer, PreTrainedTokenizerFast\n\nfrom vllm.engine.arg_utils import EngineArgs\n# from vllm.engine.llm_engine import LLMEngine\nfrom vllm.lora.request import LoRARequest\nfrom vllm.outputs import RequestOutput\nfrom vllm.sampling_params import SamplingParams\nfrom vllm.sequence import MultiModalData\nfrom vllm.usage.usage_lib import UsageContext\nfrom vllm.utils import Counter\n\nfrom autoregressive.serve.llm_engine import LLMEngine\n\n\nclass LLM:\n    \"\"\"An LLM for generating texts from given prompts and sampling parameters.\n\n    This class includes a tokenizer, a language model (possibly distributed\n    across multiple GPUs), and GPU memory space allocated for intermediate\n    states (aka KV cache). Given a batch of prompts and sampling parameters,\n    this class generates texts from the model, using an intelligent batching\n    mechanism and efficient memory management.\n\n    NOTE: This class is intended to be used for offline inference. For online\n    serving, use the `AsyncLLMEngine` class instead.\n    NOTE: For the comprehensive list of arguments, see `EngineArgs`.\n\n    Args:\n        model: The name or path of a HuggingFace Transformers model.\n        tokenizer: The name or path of a HuggingFace Transformers tokenizer.\n        tokenizer_mode: The tokenizer mode. \"auto\" will use the fast tokenizer\n            if available, and \"slow\" will always use the slow tokenizer.\n        skip_tokenizer_init: If true, skip initialization of tokenizer and\n            detokenizer. Expect valid prompt_token_ids and None for prompt\n            from the input.\n        trust_remote_code: Trust remote code (e.g., from HuggingFace) when\n            downloading the model and tokenizer.\n        tensor_parallel_size: The number of GPUs to use for distributed\n            execution with tensor parallelism.\n        dtype: The data type for the model weights and activations. Currently,\n            we support `float32`, `float16`, and `bfloat16`. If `auto`, we use\n            the `torch_dtype` attribute specified in the model config file.\n            However, if the `torch_dtype` in the config is `float32`, we will\n            use `float16` instead.\n        quantization: The method used to quantize the model weights. Currently,\n            we support \"awq\", \"gptq\", \"squeezellm\", and \"fp8\" (experimental).\n            If None, we first check the `quantization_config` attribute in the\n            model config file. If that is None, we assume the model weights are\n            not quantized and use `dtype` to determine the data type of\n            the weights.\n        revision: The specific model version to use. It can be a branch name,\n            a tag name, or a commit id.\n        tokenizer_revision: The specific tokenizer version to use. It can be a\n            branch name, a tag name, or a commit id.\n        seed: The seed to initialize the random number generator for sampling.\n        gpu_memory_utilization: The ratio (between 0 and 1) of GPU memory to\n            reserve for the model weights, activations, and KV cache. Higher\n            values will increase the KV cache size and thus improve the model's\n            throughput. However, if the value is too high, it may cause out-of-\n            memory (OOM) errors.\n        swap_space: The size (GiB) of CPU memory per GPU to use as swap space.\n            This can be used for temporarily storing the states of the requests\n            when their `best_of` sampling parameters are larger than 1. If all\n            requests will have `best_of=1`, you can safely set this to 0.\n            Otherwise, too small values may cause out-of-memory (OOM) errors.\n        enforce_eager: Whether to enforce eager execution. If True, we will\n            disable CUDA graph and always execute the model in eager mode.\n            If False, we will use CUDA graph and eager execution in hybrid.\n        max_context_len_to_capture: Maximum context len covered by CUDA graphs.\n            When a sequence has context length larger than this, we fall back\n            to eager mode.\n        disable_custom_all_reduce: See ParallelConfig\n    \"\"\"\n\n    def __init__(\n        self,\n        args: argparse.ArgumentParser,\n        model: str,\n        tokenizer: Optional[str] = None,\n        tokenizer_mode: str = \"auto\",\n        skip_tokenizer_init: bool = False,\n        trust_remote_code: bool = False,\n        tensor_parallel_size: int = 1,\n        dtype: str = \"auto\",\n        quantization: Optional[str] = None,\n        revision: Optional[str] = None,\n        tokenizer_revision: Optional[str] = None,\n        seed: int = 0,\n        gpu_memory_utilization: float = 0.9,\n        swap_space: int = 4,\n        enforce_eager: bool = False,\n        max_context_len_to_capture: int = 8192,\n        disable_custom_all_reduce: bool = False,\n        **kwargs,\n    ) -> None:\n        if \"disable_log_stats\" not in kwargs:\n            kwargs[\"disable_log_stats\"] = True\n        engine_args = EngineArgs(\n            model=model,\n            tokenizer=tokenizer,\n            tokenizer_mode=tokenizer_mode,\n            skip_tokenizer_init=skip_tokenizer_init,\n            trust_remote_code=trust_remote_code,\n            tensor_parallel_size=tensor_parallel_size,\n            dtype=dtype,\n            quantization=quantization,\n            revision=revision,\n            tokenizer_revision=tokenizer_revision,\n            seed=seed,\n            gpu_memory_utilization=gpu_memory_utilization,\n            swap_space=swap_space,\n            enforce_eager=enforce_eager,\n            max_context_len_to_capture=max_context_len_to_capture,\n            disable_custom_all_reduce=disable_custom_all_reduce,\n            **kwargs,\n        )\n        self.llm_engine = LLMEngine.from_engine_args(\n            engine_args, usage_context=UsageContext.LLM_CLASS, args=args)\n        self.request_counter = Counter()\n\n    def get_tokenizer(\n            self) -> Union[PreTrainedTokenizer, PreTrainedTokenizerFast]:\n        return self.llm_engine.tokenizer.tokenizer\n\n    def set_tokenizer(\n        self,\n        tokenizer: Union[PreTrainedTokenizer, PreTrainedTokenizerFast],\n    ) -> None:\n        self.llm_engine.tokenizer.tokenizer = tokenizer\n\n    def generate(\n        self,\n        prompts: Optional[Union[str, List[str]]] = None,\n        sampling_params: Optional[Union[SamplingParams,\n                                        List[SamplingParams]]] = None,\n        prompt_token_ids: Optional[List[List[int]]] = None,\n        use_tqdm: bool = True,\n        lora_request: Optional[LoRARequest] = None,\n        multi_modal_data: Optional[MultiModalData] = None,\n    ) -> List[RequestOutput]:\n        \"\"\"Generates the completions for the input prompts.\n\n        NOTE: This class automatically batches the given prompts, considering\n        the memory constraint. For the best performance, put all of your prompts\n        into a single list and pass it to this method.\n\n        Args:\n            prompts: A list of prompts to generate completions for.\n            sampling_params: The sampling parameters for text generation. If\n                None, we use the default sampling parameters. \n                When it is a single value, it is applied to every prompt. \n                When it is a list, the list must have the same length as the \n                prompts and it is paired one by one with the prompt.\n            prompt_token_ids: A list of token IDs for the prompts. If None, we\n                use the tokenizer to convert the prompts to token IDs.\n            use_tqdm: Whether to use tqdm to display the progress bar.\n            lora_request: LoRA request to use for generation, if any.\n            multi_modal_data: Multi modal data.\n\n        Returns:\n            A list of `RequestOutput` objects containing the generated\n            completions in the same order as the input prompts.\n        \"\"\"\n        if prompts is None and prompt_token_ids is None:\n            raise ValueError(\"Either prompts or prompt_token_ids must be \"\n                             \"provided.\")\n        if self.llm_engine.model_config.skip_tokenizer_init \\\n            and prompts is not None:\n            raise ValueError(\"prompts must be None if skip_tokenizer_init \"\n                             \"is True\")\n        if isinstance(prompts, str):\n            # Convert a single prompt to a list.\n            prompts = [prompts]\n        if (prompts is not None and prompt_token_ids is not None\n                and len(prompts) != len(prompt_token_ids)):\n            raise ValueError(\"The lengths of prompts and prompt_token_ids \"\n                             \"must be the same.\")\n\n        if prompts is not None:\n            num_requests = len(prompts)\n        else:\n            assert prompt_token_ids is not None\n            num_requests = len(prompt_token_ids)\n\n        if sampling_params is None:\n            # Use default sampling params.\n            sampling_params = SamplingParams()\n\n        elif isinstance(sampling_params,\n                        list) and len(sampling_params) != num_requests:\n            raise ValueError(\"The lengths of prompts and sampling_params \"\n                             \"must be the same.\")\n        if multi_modal_data:\n            multi_modal_data.data = multi_modal_data.data.to(torch.float16)\n\n        # Add requests to the engine.\n        for i in range(num_requests):\n            prompt = prompts[i] if prompts is not None else None\n            token_ids = None if prompt_token_ids is None else prompt_token_ids[i]\n            self._add_request(\n                prompt,\n                sampling_params[i]\n                if isinstance(sampling_params, list) else sampling_params,\n                token_ids,\n                lora_request=lora_request,\n                # Get ith image while maintaining the batch dim.\n                multi_modal_data=MultiModalData(\n                    type=multi_modal_data.type,\n                    data=multi_modal_data.data[i].unsqueeze(0))\n                if multi_modal_data else None,\n            )\n        return self._run_engine(use_tqdm)\n\n    def _add_request(\n        self,\n        prompt: Optional[str],\n        sampling_params: SamplingParams,\n        prompt_token_ids: Optional[List[int]],\n        lora_request: Optional[LoRARequest] = None,\n        multi_modal_data: Optional[MultiModalData] = None,\n    ) -> None:\n        request_id = str(next(self.request_counter))\n        self.llm_engine.add_request(request_id,\n                                    prompt,\n                                    sampling_params,\n                                    prompt_token_ids,\n                                    lora_request=lora_request,\n                                    multi_modal_data=multi_modal_data)\n\n\n    def _run_engine(self, use_tqdm: bool) -> List[RequestOutput]:\n        # Initialize tqdm.\n        if use_tqdm:\n            num_requests = self.llm_engine.get_num_unfinished_requests()\n            pbar = tqdm(\n                total=num_requests,\n                desc=\"Processed prompts\",\n                dynamic_ncols=True,\n                postfix=f\"Generation Speed: {0:.2f} toks/s\",\n            )\n        # Run the engine.\n        outputs: List[RequestOutput] = []\n        while self.llm_engine.has_unfinished_requests():\n            step_outputs = self.llm_engine.step()\n            for output in step_outputs:\n                if output.finished:\n                    outputs.append(output)\n                    if use_tqdm:\n                        total_toks += (sum(\n                            len(stp.token_ids) for stp in output.outputs))\n                        spd = total_toks / pbar.format_dict[\"elapsed\"]\n                        pbar.postfix = f\"Generation Speed: {spd:.2f} toks/s\"\n                        pbar.update(1)\n        if use_tqdm:\n            pbar.close()\n        # Sort the outputs by request ID.\n        # This is necessary because some requests may be finished earlier than\n        # its previous requests.\n        outputs = sorted(outputs, key=lambda x: int(x.request_id))\n        return outputs\n"
  },
  {
    "path": "autoregressive/serve/llm_engine.py",
    "content": "# Modified from:\n#   vLLM:    https://github.com/vllm-project/vllm/blob/main/vllm/engine/llm_engine.py\nimport time\nfrom typing import Iterable, List, Optional, Type, Union\nimport argparse\n\nfrom transformers import GenerationConfig, PreTrainedTokenizer\n\nimport vllm\nfrom vllm.config import (CacheConfig, DecodingConfig, DeviceConfig, LoadConfig,\n                         LoRAConfig, ModelConfig, ParallelConfig,\n                         SchedulerConfig, SpeculativeConfig,\n                         VisionLanguageConfig)\nfrom vllm.core.scheduler import Scheduler, SchedulerOutputs\nfrom vllm.engine.arg_utils import EngineArgs\nfrom vllm.engine.metrics import StatLogger, Stats\nfrom vllm.engine.output_processor.interfaces import (\n    SequenceGroupOutputProcessor)\nfrom vllm.engine.output_processor.stop_checker import StopChecker\nfrom vllm.engine.output_processor.util import create_output_by_sequence_group\nfrom vllm.engine.ray_utils import initialize_ray_cluster\nfrom vllm.executor.executor_base import ExecutorBase\nfrom vllm.logger import init_logger\nfrom vllm.lora.request import LoRARequest\nfrom vllm.outputs import RequestOutput\nfrom vllm.sampling_params import SamplingParams\nfrom vllm.sequence import (MultiModalData, SamplerOutput, Sequence,\n                           SequenceGroup)\nfrom vllm.transformers_utils.detokenizer import Detokenizer\nfrom vllm.transformers_utils.tokenizer_group import (BaseTokenizerGroup,\n                                                     get_tokenizer_group)\nfrom vllm.usage.usage_lib import (UsageContext, is_usage_stats_enabled,\n                                  usage_message)\nfrom vllm.utils import Counter\n\nlogger = init_logger(__name__)\n_LOCAL_LOGGING_INTERVAL_SEC = 5\n\n\ndef _load_generation_config_dict(model_config: ModelConfig):\n    try:\n        return GenerationConfig.from_pretrained(\n            model_config.model,\n            revision=model_config.revision,\n        ).to_diff_dict()\n    except OSError:\n        # Not found.\n        return {}\n\n\nclass LLMEngine:\n    \"\"\"An LLM engine that receives requests and generates texts.\n\n    This is the main class for the vLLM engine. It receives requests\n    from clients and generates texts from the LLM. It includes a tokenizer, a\n    language model (possibly distributed across multiple GPUs), and GPU memory\n    space allocated for intermediate states (aka KV cache). This class utilizes\n    iteration-level scheduling and efficient memory management to maximize the\n    serving throughput.\n\n    The `LLM` class wraps this class for offline batched inference and the\n    `AsyncLLMEngine` class wraps this class for online serving.\n\n    NOTE: The config arguments are derived from the `EngineArgs` class. For the\n    comprehensive list of arguments, see `EngineArgs`.\n\n    Args:\n        model_config: The configuration related to the LLM model.\n        cache_config: The configuration related to the KV cache memory\n            management.\n        parallel_config: The configuration related to distributed execution.\n        scheduler_config: The configuration related to the request scheduler.\n        device_config: The configuration related to the device.\n        lora_config (Optional): The configuration related to serving multi-LoRA.\n        vision_language_config (Optional): The configuration related to vision\n            language models.\n        speculative_config (Optional): The configuration related to speculative\n            decoding.\n        executor_class: The model executor class for managing distributed\n            execution.\n        log_stats: Whether to log statistics.\n        usage_context: Specified entry point, used for usage info collection\n    \"\"\"\n\n    def __init__(\n        self,\n        args: argparse.ArgumentParser,\n        model_config: ModelConfig,\n        cache_config: CacheConfig,\n        parallel_config: ParallelConfig,\n        scheduler_config: SchedulerConfig,\n        device_config: DeviceConfig,\n        load_config: LoadConfig,\n        lora_config: Optional[LoRAConfig],\n        vision_language_config: Optional[VisionLanguageConfig],\n        speculative_config: Optional[SpeculativeConfig],\n        decoding_config: Optional[DecodingConfig],\n        executor_class: Type[ExecutorBase],\n        log_stats: bool,\n        usage_context: UsageContext = UsageContext.ENGINE_CONTEXT,\n    ) -> None:\n        logger.info(\n            f\"Initializing an LLM engine (v{vllm.__version__}) with config: \"\n            f\"model={model_config.model!r}, \"\n            f\"speculative_config={speculative_config!r}, \"\n            f\"tokenizer={model_config.tokenizer!r}, \"\n            f\"skip_tokenizer_init={model_config.skip_tokenizer_init}, \"\n            f\"tokenizer_mode={model_config.tokenizer_mode}, \"\n            f\"revision={model_config.revision}, \"\n            f\"tokenizer_revision={model_config.tokenizer_revision}, \"\n            f\"trust_remote_code={model_config.trust_remote_code}, \"\n            f\"dtype={model_config.dtype}, \"\n            f\"max_seq_len={model_config.max_model_len}, \"\n            f\"download_dir={load_config.download_dir!r}, \"\n            f\"load_format={load_config.load_format}, \"\n            f\"tensor_parallel_size={parallel_config.tensor_parallel_size}, \"\n            f\"disable_custom_all_reduce=\"\n            f\"{parallel_config.disable_custom_all_reduce}, \"\n            f\"quantization={model_config.quantization}, \"\n            f\"enforce_eager={model_config.enforce_eager}, \"\n            f\"kv_cache_dtype={cache_config.cache_dtype}, \"\n            f\"quantization_param_path={model_config.quantization_param_path}, \"\n            f\"device_config={device_config.device}, \"\n            f\"decoding_config={decoding_config!r}, \"\n            f\"seed={model_config.seed})\")\n        # TODO(woosuk): Print more configs in debug mode.\n\n        self.model_config = model_config\n        self.cache_config = cache_config\n        self.lora_config = lora_config\n        self.vision_language_config = vision_language_config\n        self.parallel_config = parallel_config\n        self.scheduler_config = scheduler_config\n        self.device_config = device_config\n        self.speculative_config = speculative_config\n        self.load_config = load_config\n        self.decoding_config = decoding_config or DecodingConfig()\n        self.log_stats = log_stats\n\n        if not self.model_config.skip_tokenizer_init:\n            self.tokenizer: BaseTokenizerGroup\n            self._init_tokenizer()\n            self.detokenizer = Detokenizer(self.tokenizer)\n        else:\n            self.detokenizer = None\n            self.tokenizer = None\n\n        self.seq_counter = Counter()\n        self.generation_config_fields = _load_generation_config_dict(\n            model_config)\n\n        self.model_executor = executor_class(\n            args=args,\n            model_config=model_config,\n            cache_config=cache_config,\n            parallel_config=parallel_config,\n            scheduler_config=scheduler_config,\n            device_config=device_config,\n            lora_config=lora_config,\n            vision_language_config=vision_language_config,\n            speculative_config=speculative_config,\n            load_config=load_config,\n        )\n\n        self._initialize_kv_caches()\n\n        # If usage stat is enabled, collect relevant info.\n        if is_usage_stats_enabled():\n            from vllm.model_executor.model_loader import (\n                get_architecture_class_name)\n            usage_message.report_usage(\n                get_architecture_class_name(model_config),\n                usage_context,\n                extra_kvs={\n                    # Common configuration\n                    \"dtype\":\n                    str(model_config.dtype),\n                    \"tensor_parallel_size\":\n                    parallel_config.tensor_parallel_size,\n                    \"block_size\":\n                    cache_config.block_size,\n                    \"gpu_memory_utilization\":\n                    cache_config.gpu_memory_utilization,\n\n                    # Quantization\n                    \"quantization\":\n                    model_config.quantization,\n                    \"kv_cache_dtype\":\n                    cache_config.cache_dtype,\n\n                    # Feature flags\n                    \"enable_lora\":\n                    bool(lora_config),\n                    \"enable_prefix_caching\":\n                    cache_config.enable_prefix_caching,\n                    \"enforce_eager\":\n                    model_config.enforce_eager,\n                    \"disable_custom_all_reduce\":\n                    parallel_config.disable_custom_all_reduce,\n                })\n\n        if self.tokenizer:\n            # Ping the tokenizer to ensure liveness if it runs in a\n            # different process.\n            self.tokenizer.ping()\n\n        # Create the scheduler.\n        # NOTE: the cache_config here have been updated with the numbers of\n        # GPU and CPU blocks, which are profiled in the distributed executor.\n        self.scheduler = Scheduler(scheduler_config, cache_config, lora_config)\n\n        # Metric Logging.\n        if self.log_stats:\n            self.stat_logger = StatLogger(\n                local_interval=_LOCAL_LOGGING_INTERVAL_SEC,\n                labels=dict(model_name=model_config.model))\n            self.stat_logger.info(\"cache_config\", self.cache_config)\n\n        # Create sequence output processor, e.g. for beam search or\n        # speculative decoding.\n        self.output_processor = (\n            SequenceGroupOutputProcessor.create_output_processor(\n                self.scheduler_config,\n                self.detokenizer,\n                self.scheduler,\n                self.seq_counter,\n                self.get_tokenizer_for_seq,\n                stop_checker=StopChecker(\n                    self.scheduler_config.max_model_len,\n                    self.get_tokenizer_for_seq,\n                ),\n            ))\n\n    def _initialize_kv_caches(self) -> None:\n        \"\"\"Initialize the KV cache in the worker(s).\n\n        The workers will determine the number of blocks in both the GPU cache\n        and the swap CPU cache.\n        \"\"\"\n        num_gpu_blocks, num_cpu_blocks = (\n            self.model_executor.determine_num_available_blocks())\n\n        if self.cache_config.num_gpu_blocks_override is not None:\n            num_gpu_blocks_override = self.cache_config.num_gpu_blocks_override\n            logger.info(f\"Overriding {num_gpu_blocks=} with \"\n                        f\"{num_gpu_blocks_override=}\")\n            num_gpu_blocks = num_gpu_blocks_override\n\n        self.cache_config.num_gpu_blocks = num_gpu_blocks\n        self.cache_config.num_cpu_blocks = num_cpu_blocks\n\n        self.model_executor.initialize_cache(num_gpu_blocks, num_cpu_blocks)\n\n    @classmethod\n    def from_engine_args(\n        cls,\n        engine_args: EngineArgs,\n        usage_context: UsageContext = UsageContext.ENGINE_CONTEXT,\n        args: argparse.ArgumentParser = None,\n    ) -> \"LLMEngine\":\n        \"\"\"Creates an LLM engine from the engine arguments.\"\"\"\n        # Create the engine configs.\n        engine_config = engine_args.create_engine_config()\n\n        # Initialize the cluster and specify the executor class.\n        if engine_config.device_config.device_type == \"neuron\":\n            from vllm.executor.neuron_executor import NeuronExecutor\n            executor_class = NeuronExecutor\n        elif engine_config.device_config.device_type == \"cpu\":\n            from vllm.executor.cpu_executor import CPUExecutor\n            executor_class = CPUExecutor\n        elif engine_config.parallel_config.worker_use_ray:\n            initialize_ray_cluster(engine_config.parallel_config)\n            from vllm.executor.ray_gpu_executor import RayGPUExecutor\n            executor_class = RayGPUExecutor\n        else:\n            assert engine_config.parallel_config.world_size == 1, (\n                \"Ray is required if parallel_config.world_size > 1.\")\n            # from vllm.executor.gpu_executor import GPUExecutor\n            from autoregressive.serve.gpu_executor import GPUExecutor\n            executor_class = GPUExecutor\n\n        # Create the LLM engine.\n        engine = cls(\n            **engine_config.to_dict(),\n            executor_class=executor_class,\n            log_stats=not engine_args.disable_log_stats,\n            usage_context=usage_context,\n            args=args,\n        )\n        return engine\n\n    def __reduce__(self):\n        # This is to ensure that the LLMEngine is not referenced in\n        # the closure used to initialize Ray worker actors\n        raise RuntimeError(\"LLMEngine should not be pickled!\")\n\n    def get_tokenizer(self) -> \"PreTrainedTokenizer\":\n        return self.tokenizer.get_lora_tokenizer(None)\n\n    def get_tokenizer_for_seq(self,\n                              sequence: Sequence) -> \"PreTrainedTokenizer\":\n        return self.tokenizer.get_lora_tokenizer(sequence.lora_request)\n\n    def _init_tokenizer(self, **tokenizer_init_kwargs):\n        init_kwargs = dict(\n            tokenizer_id=self.model_config.tokenizer,\n            enable_lora=bool(self.lora_config),\n            max_num_seqs=self.scheduler_config.max_num_seqs,\n            max_input_length=None,\n            tokenizer_mode=self.model_config.tokenizer_mode,\n            trust_remote_code=self.model_config.trust_remote_code,\n            revision=self.model_config.tokenizer_revision)\n        init_kwargs.update(tokenizer_init_kwargs)\n        self.tokenizer = get_tokenizer_group(\n            self.parallel_config.tokenizer_pool_config, **init_kwargs)\n\n    def _verify_args(self) -> None:\n        self.model_config.verify_with_parallel_config(self.parallel_config)\n        self.cache_config.verify_with_parallel_config(self.parallel_config)\n        if self.lora_config:\n            self.lora_config.verify_with_model_config(self.model_config)\n            self.lora_config.verify_with_scheduler_config(\n                self.scheduler_config)\n\n    def encode_request(\n        self,\n        request_id: str,  # pylint: disable=unused-argument\n        prompt: Optional[str],\n        prompt_token_ids: Optional[List[int]] = None,\n        lora_request: Optional[LoRARequest] = None,\n    ):\n        if prompt_token_ids is None:\n            assert prompt is not None\n            prompt_token_ids = self.tokenizer.encode(request_id=request_id,\n                                                     prompt=prompt,\n                                                     lora_request=lora_request)\n        return prompt_token_ids\n\n    def add_request(\n        self,\n        request_id: str,\n        prompt: Optional[str],\n        sampling_params: SamplingParams,\n        prompt_token_ids: Optional[List[int]] = None,\n        arrival_time: Optional[float] = None,\n        lora_request: Optional[LoRARequest] = None,\n        multi_modal_data: Optional[MultiModalData] = None,\n    ) -> None:\n        \"\"\"Add a request to the engine's request pool.\n\n        The request is added to the request pool and will be processed by the\n        scheduler as `engine.step()` is called. The exact scheduling policy is\n        determined by the scheduler.\n\n        Args:\n            request_id: The unique ID of the request.\n            prompt: The prompt string. Can be None if prompt_token_ids is\n                provided.\n            sampling_params: The sampling parameters for text generation.\n            prompt_token_ids: The token IDs of the prompt. If None, we\n                use the tokenizer to convert the prompts to token IDs.\n            arrival_time: The arrival time of the request. If None, we use\n                the current monotonic time.\n            multi_modal_data: Multi modal data per request.\n\n        Details:\n            - Set arrival_time to the current time if it is None.\n            - Set prompt_token_ids to the encoded prompt if it is None.\n            - Create `best_of` number of :class:`~vllm.Sequence` objects.\n            - Create a :class:`~vllm.SequenceGroup` object\n              from the list of :class:`~vllm.Sequence`.\n            - Add the :class:`~vllm.SequenceGroup` object to the scheduler.\n\n        Example:\n            >>> # initialize engine\n            >>> engine = LLMEngine.from_engine_args(engine_args)\n            >>> # set request arguments\n            >>> example_prompt = \"Who is the president of the United States?\"\n            >>> sampling_params = SamplingParams(temperature=0.0)\n            >>> request_id = 0\n            >>>\n            >>> # add the request to the engine\n            >>> engine.add_request(\n            >>>    str(request_id),\n            >>>    example_prompt,\n            >>>    SamplingParams(temperature=0.0))\n            >>> # continue the request processing\n            >>> ...\n        \"\"\"\n        if lora_request is not None and not self.lora_config:\n            raise ValueError(f\"Got lora_request {lora_request} but LoRA is \"\n                             \"not enabled!\")\n        max_logprobs = self.get_model_config().max_logprobs\n        if (sampling_params.logprobs\n                and sampling_params.logprobs > max_logprobs) or (\n                    sampling_params.prompt_logprobs\n                    and sampling_params.prompt_logprobs > max_logprobs):\n            raise ValueError(f\"Cannot request more than \"\n                             f\"{max_logprobs} logprobs.\")\n        if arrival_time is None:\n            arrival_time = time.time()\n        prompt_token_ids = self.encode_request(\n            request_id=request_id,\n            prompt=prompt,\n            prompt_token_ids=prompt_token_ids,\n            lora_request=lora_request)\n\n        # Create the sequences.\n        block_size = self.cache_config.block_size\n        seq_id = next(self.seq_counter)\n        eos_token_id = None\n        if self.tokenizer:\n            eos_token_id = self.tokenizer.get_lora_tokenizer(\n                lora_request).eos_token_id\n        else:\n            logger.warning(\"Use None for EOS token id because tokenizer is \"\n                           \"not initialized\")\n        seq = Sequence(seq_id, prompt, prompt_token_ids, block_size,\n                       eos_token_id, lora_request)\n        \n        # Defensive copy of SamplingParams, which are used by the sampler,\n        # this doesn't deep-copy LogitsProcessor objects\n        sampling_params = sampling_params.clone()\n        # Add the eos token id into the sampling_params to support min_tokens\n        # processing\n        if seq.eos_token_id is not None:\n            sampling_params.all_stop_token_ids.add(seq.eos_token_id)\n        sampling_params.update_from_generation_config(\n            self.generation_config_fields)\n\n        # Create the sequence group.\n        seq_group = SequenceGroup(request_id, [seq], sampling_params,\n                                  arrival_time, lora_request, multi_modal_data)\n\n        # Add the sequence group to the scheduler.\n        self.scheduler.add_seq_group(seq_group)\n\n    def abort_request(self, request_id: Union[str, Iterable[str]]) -> None:\n        \"\"\"Aborts a request(s) with the given ID.\n\n        Args:\n            request_id: The ID(s) of the request to abort.\n\n        Details:\n            - Refer to the\n              :meth:`~vllm.core.scheduler.Scheduler.abort_seq_group`\n              from class :class:`~vllm.core.scheduler.Scheduler`.\n\n        Example:\n            >>> # initialize engine and add a request with request_id\n            >>> request_id = str(0)\n            >>> # abort the request\n            >>> engine.abort_request(request_id)\n        \"\"\"\n        self.scheduler.abort_seq_group(request_id)\n\n    def get_model_config(self) -> ModelConfig:\n        \"\"\"Gets the model configuration.\"\"\"\n        return self.model_config\n\n    def get_num_unfinished_requests(self) -> int:\n        \"\"\"Gets the number of unfinished requests.\"\"\"\n        return self.scheduler.get_num_unfinished_seq_groups()\n\n    def has_unfinished_requests(self) -> bool:\n        \"\"\"Returns True if there are unfinished requests.\"\"\"\n        return self.scheduler.has_unfinished_seqs()\n\n    def _process_model_outputs(\n            self, output: List[SamplerOutput],\n            scheduled_seq_groups: List[SequenceGroup],\n            ignored_seq_groups: List[SequenceGroup]) -> List[RequestOutput]:\n        \"\"\"Apply the model output to the sequences in the scheduled seq groups.\n\n        Returns RequestOutputs that can be returned to the client.\n        \"\"\"\n        now = time.time()\n\n        # Organize outputs by [sequence group][step] instead of\n        # [step][sequence group].\n        output_by_sequence_group = create_output_by_sequence_group(\n            sampler_outputs=output, num_seq_groups=len(scheduled_seq_groups))\n\n        # Update the scheduled sequence groups with the model outputs.\n        for scheduled_seq_group, outputs in zip(scheduled_seq_groups,\n                                                output_by_sequence_group):\n            seq_group = scheduled_seq_group.seq_group\n            seq_group.update_num_computed_tokens(\n                scheduled_seq_group.token_chunk_size)\n            # If uncomputed tokens > 0, it means prefill is chunked.\n            # We don't need to process outputs in that case.\n            if seq_group.get_num_uncomputed_tokens() == 0:\n                self.output_processor.process_outputs(seq_group, outputs)\n\n        # Free the finished sequence groups.\n        self.scheduler.free_finished_seq_groups()\n\n        # Create the outputs.\n        request_outputs: List[RequestOutput] = []\n        for scheduled_seq_group in scheduled_seq_groups:\n            seq_group = scheduled_seq_group.seq_group\n            seq_group.maybe_set_first_token_time(now)\n            request_output = RequestOutput.from_seq_group(seq_group)\n            request_outputs.append(request_output)\n        for seq_group in ignored_seq_groups:\n            request_output = RequestOutput.from_seq_group(seq_group)\n            request_outputs.append(request_output)\n        return request_outputs\n\n    def step(self) -> List[RequestOutput]:\n        \"\"\"Performs one decoding iteration and returns newly generated results.\n\n        .. figure:: https://i.imgur.com/sv2HssD.png\n            :alt: Overview of the step function\n            :align: center\n\n            Overview of the step function.\n\n        Details:\n            - Step 1: Schedules the sequences to be executed in the next\n              iteration and the token blocks to be swapped in/out/copy.\n\n                - Depending on the scheduling policy,\n                  sequences may be `preempted/reordered`.\n                - A Sequence Group (SG) refer to a group of sequences\n                  that are generated from the same prompt.\n\n            - Step 2: Calls the distributed executor to execute the model.\n            - Step 3: Processes the model output. This mainly includes:\n\n                - Decodes the relevant outputs.\n                - Updates the scheduled sequence groups with model outputs\n                  based on its `sampling parameters` (`use_beam_search` or not).\n                - Frees the finished sequence groups.\n\n            - Finally, it creates and returns the newly generated results.\n\n        Example:\n            >>> # Please see the example/ folder for more detailed examples.\n            >>>\n            >>> # initialize engine and request arguments\n            >>> engine = LLMEngine.from_engine_args(engine_args)\n            >>> example_inputs = [(0, \"What is LLM?\",\n            >>>    SamplingParams(temperature=0.0))]\n            >>>\n            >>> # Start the engine with an event loop\n            >>> while True:\n            >>>     if example_inputs:\n            >>>         req_id, prompt, sampling_params = example_inputs.pop(0)\n            >>>         engine.add_request(str(req_id), prompt, sampling_params)\n            >>>\n            >>>     # continue the request processing\n            >>>     request_outputs = engine.step()\n            >>>     for request_output in request_outputs:\n            >>>         if request_output.finished:\n            >>>             # return or show the request output\n            >>>\n            >>>     if not (engine.has_unfinished_requests() or example_inputs):\n            >>>         break\n        \"\"\"\n        seq_group_metadata_list, scheduler_outputs = self.scheduler.schedule()\n        if not scheduler_outputs.is_empty():\n            output = self.model_executor.execute_model(\n                seq_group_metadata_list=seq_group_metadata_list,\n                blocks_to_swap_in=scheduler_outputs.blocks_to_swap_in,\n                blocks_to_swap_out=scheduler_outputs.blocks_to_swap_out,\n                blocks_to_copy=scheduler_outputs.blocks_to_copy,\n                num_lookahead_slots=scheduler_outputs.num_lookahead_slots)\n        else:\n            output = []\n\n        request_outputs = self._process_model_outputs(\n            output, scheduler_outputs.scheduled_seq_groups,\n            scheduler_outputs.ignored_seq_groups)\n\n        # Log stats.\n        if self.log_stats:\n            self.stat_logger.log(self._get_stats(scheduler_outputs))\n\n        return request_outputs\n\n    def do_log_stats(self) -> None:\n        \"\"\"Forced log when no requests active.\"\"\"\n        if self.log_stats:\n            self.stat_logger.log(self._get_stats(scheduler_outputs=None))\n\n    def _get_stats(self,\n                   scheduler_outputs: Optional[SchedulerOutputs]) -> Stats:\n        \"\"\"Get Stats to be Logged to Prometheus.\"\"\"\n        now = time.time()\n\n        # KV Cache Usage in %.\n        num_total_gpu = self.cache_config.num_gpu_blocks\n        num_free_gpu = self.scheduler.block_manager.get_num_free_gpu_blocks()\n        gpu_cache_usage = 1.0 - (num_free_gpu / num_total_gpu)\n\n        num_total_cpu = self.cache_config.num_cpu_blocks\n        cpu_cache_usage = 0.\n        if num_total_cpu > 0:\n            num_free_cpu = self.scheduler.block_manager.get_num_free_cpu_blocks(\n            )\n            cpu_cache_usage = 1.0 - (num_free_cpu / num_total_cpu)\n\n        # Scheduler State\n        num_running = len(self.scheduler.running)\n        num_swapped = len(self.scheduler.swapped)\n        num_waiting = len(self.scheduler.waiting)\n\n        # Iteration stats if we have scheduler output.\n        num_prompt_tokens = 0\n        num_generation_tokens = 0\n        time_to_first_tokens = []\n        time_per_output_tokens = []\n        time_e2e_requests = []\n        if scheduler_outputs is not None:\n            prompt_run = scheduler_outputs.num_prefill_groups > 0\n\n            # Number of Tokens.\n            if prompt_run:\n                num_prompt_tokens = sum(\n                    len(scheduled_seq_group.seq_group.prompt_token_ids)\n                    for scheduled_seq_group in\n                    scheduler_outputs.scheduled_seq_groups)\n                num_generation_tokens = sum(\n                    scheduled_seq_group.seq_group.num_seqs()\n                    for scheduled_seq_group in\n                    scheduler_outputs.scheduled_seq_groups)\n            else:\n                num_generation_tokens = scheduler_outputs.num_batched_tokens\n\n            # Latency Timings.\n            time_last_iters = []\n            for scheduled_seq_group in scheduler_outputs.scheduled_seq_groups:\n                seq_group = scheduled_seq_group.seq_group\n                # Time since last token.\n                # (n.b. updates seq_group.metrics.last_token_time)\n                time_last_iters.append(seq_group.get_last_latency(now))\n                # Time since arrival for all finished requests.\n                if seq_group.is_finished():\n                    time_e2e_requests.append(now -\n                                             seq_group.metrics.arrival_time)\n\n            time_to_first_tokens = time_last_iters if prompt_run else []\n            time_per_output_tokens = [] if prompt_run else time_last_iters\n\n        return Stats(\n            now=now,\n            num_running=num_running,\n            num_swapped=num_swapped,\n            num_waiting=num_waiting,\n            gpu_cache_usage=gpu_cache_usage,\n            cpu_cache_usage=cpu_cache_usage,\n            num_prompt_tokens=num_prompt_tokens,\n            num_generation_tokens=num_generation_tokens,\n            time_to_first_tokens=time_to_first_tokens,\n            time_per_output_tokens=time_per_output_tokens,\n            time_e2e_requests=time_e2e_requests,\n        )\n\n    def add_lora(self, lora_request: LoRARequest) -> bool:\n        return self.model_executor.add_lora(lora_request)\n\n    def remove_lora(self, lora_id: int) -> bool:\n        return self.model_executor.remove_lora(lora_id)\n\n    def list_loras(self) -> List[int]:\n        return self.model_executor.list_loras()\n\n    def check_health(self) -> None:\n        self.model_executor.check_health()"
  },
  {
    "path": "autoregressive/serve/model_runner.py",
    "content": "import contextlib\nimport time\nfrom enum import IntEnum\nfrom typing import Dict, List, NamedTuple, Optional, Set, Tuple\n\nimport numpy as np\nimport torch\nimport torch.nn as nn\n\nfrom vllm.attention import (AttentionMetadata, AttentionMetadataPerStage,\n                            get_attn_backend)\nfrom vllm.config import (DeviceConfig, LoadConfig, LoRAConfig, ModelConfig,\n                         ParallelConfig, SchedulerConfig, VisionLanguageConfig)\nfrom vllm.distributed import broadcast_tensor_dict, with_pynccl_for_all_reduce\nfrom vllm.distributed.device_communicators import (custom_all_reduce,\n                                                   pynccl_utils)\nfrom vllm.logger import init_logger\nfrom vllm.lora.layers import LoRAMapping\nfrom vllm.lora.request import LoRARequest\nfrom vllm.lora.worker_manager import LRUCacheWorkerLoRAManager\nfrom vllm.model_executor import SamplingMetadata\nfrom vllm.model_executor.model_loader import get_model\nfrom vllm.sampling_params import SamplingParams, SamplingType\nfrom vllm.sequence import (MultiModalData, SamplerOutput, SequenceData,\n                           SequenceGroupMetadata)\nfrom vllm.utils import (CudaMemoryProfiler, async_tensor_h2d, is_hip,\n                        is_pin_memory_available, make_tensor_with_pad,\n                        maybe_expand_dim)\nfrom autoregressive.serve.gpt_model import GPT_models\n\nlogger = init_logger(__name__)\n\n_PAD_SLOT_ID = -1\nLORA_WARMUP_RANK = 8\n_BATCH_SIZE_ALIGNMENT = 8\n# Capture graphs for token size 1, 2, 4, 8, 16, 24, 32, 40, ..., 256.\n# NOTE: _get_graph_batch_size needs to be updated if this list is changed.\n_BATCH_SIZES_TO_CAPTURE = [1, 2, 4] + [\n    _BATCH_SIZE_ALIGNMENT * i for i in range(1, 33)\n]\n\n\nclass PreparePromptMetadata(NamedTuple):\n    input_tokens: List[int]\n    input_positions: List[int]\n    attn_metadata: Optional[AttentionMetadataPerStage]\n    prompt_lens: List[int]\n    subquery_lens: List[int]\n    lora_index_mapping: List[int]\n    lora_prompt_mapping: List[int]\n    lora_requests: Set[LoRARequest]\n    multi_modal_input: Optional[torch.Tensor]\n    slot_mapping: List[int]\n\n    @classmethod\n    def empty(cls):\n        return PreparePromptMetadata(\n            input_tokens=[],\n            input_positions=[],\n            attn_metadata=None,\n            prompt_lens=[],\n            subquery_lens=[],\n            lora_index_mapping=[],\n            lora_prompt_mapping=[],\n            lora_requests=set(),\n            multi_modal_input=None,\n            slot_mapping=[],\n        )\n\n\nclass PrepareDecodeMetadata(NamedTuple):\n    input_tokens: List[int]\n    input_positions: List[int]\n    attn_metadata: Optional[AttentionMetadata]\n    lora_index_mapping: List[int]\n    lora_prompt_mapping: List[int]\n    lora_requests: Set[LoRARequest]\n    slot_mapping: List[int]\n\n    @classmethod\n    def empty(cls):\n        return PrepareDecodeMetadata(\n            input_tokens=[],\n            input_positions=[],\n            attn_metadata=None,\n            lora_index_mapping=[],\n            lora_prompt_mapping=[],\n            lora_requests=set(),\n            slot_mapping=[],\n        )\n\n\n# How batches are constructed.\nclass BatchType(IntEnum):\n    # Every batch is prefill.\n    PREFILL = 0\n    # Every batch is decode.\n    DECODE = 1\n    # Batch is a mixture of prefill and decode.\n    MIXED = 2\n\n\nclass ModelRunner:\n\n    def __init__(\n        self,\n        model_config: ModelConfig,\n        parallel_config: ParallelConfig,\n        scheduler_config: SchedulerConfig,\n        device_config: DeviceConfig,\n        load_config: LoadConfig,\n        lora_config: Optional[LoRAConfig],\n        kv_cache_dtype: Optional[str] = \"auto\",\n        is_driver_worker: bool = False,\n        vision_language_config: Optional[VisionLanguageConfig] = None,\n    ):\n        self.model_config = model_config\n        self.parallel_config = parallel_config\n        self.scheduler_config = scheduler_config\n        self.lora_config = lora_config\n        self.load_config = load_config\n        self.is_driver_worker = is_driver_worker\n\n        # model_config can be None in tests/samplers/test_sampler.py.\n        # FIXME(woosuk): This is a hack to make the tests work. Refactor this.\n        self.sliding_window = (model_config.get_sliding_window()\n                               if model_config is not None else None)\n        self.device_config = (device_config\n                              if device_config is not None else DeviceConfig())\n        self.device = self.device_config.device\n\n        # Set after load_model.\n        self.lora_manager: LRUCacheWorkerLoRAManager = None\n\n        self.graph_runners: Dict[int, CUDAGraphRunner] = {}\n        self.graph_memory_pool: Optional[Tuple[\n            int, int]] = None  # Set during graph capture.\n\n        self.max_context_len_to_capture = (\n            self.model_config.max_context_len_to_capture\n            if self.model_config is not None else 0)\n\n        self.pin_memory = is_pin_memory_available()\n        self.kv_cache_dtype = kv_cache_dtype\n        self.vision_language_config = vision_language_config\n\n        self.attn_backend = get_attn_backend(\n            self.model_config.dtype if model_config is not None else None)\n\n        # Lazy initialization\n        self.model: torch.nn.Module  # Set after load_model\n        self.block_size: int  # Set after initial profiling.\n        # When using CUDA graph, the input block tables must be padded to\n        # max_context_len_to_capture. However, creating the block table in\n        # Python can be expensive. To optimize this, we cache the block table\n        # in numpy and only copy the actual input content at every iteration.\n        # The shape of the cached block table will be\n        # (max batch size to capture, max context len to capture / block size).\n        self.graph_block_tables: torch.Tensor  # Set after initial profiling.\n\n    def load_model(self, args) -> None:\n        with CudaMemoryProfiler() as m:\n            # self.model = get_model(\n            #     model_config=self.model_config,\n            #     device_config=self.device_config,\n            #     load_config=self.load_config,\n            #     lora_config=self.lora_config,\n            #     vision_language_config=self.vision_language_config,\n            #     parallel_config=self.parallel_config,\n            #     scheduler_config=self.scheduler_config,\n            # )\n            precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n            latent_size = args.image_size // args.downsample_size            \n            gpt_model = GPT_models[args.gpt_model](\n                vocab_size=args.codebook_size,\n                block_size=latent_size ** 2,\n                num_classes=args.num_classes,\n                cls_token_num=args.cls_token_num,\n                model_type=args.gpt_type,\n                cfg_scale=args.cfg_scale,\n            ).to(device='cuda', dtype=precision) # TODO: make device configurable\n\n            checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n            if args.from_fsdp: # fspd\n                model_weight = checkpoint\n            elif \"model\" in checkpoint:  # ddp\n                model_weight = checkpoint[\"model\"]\n            elif \"state_dict\" in checkpoint:\n                model_weight = checkpoint[\"state_dict\"]\n            else:\n                raise Exception(\"please check model weight, maybe add --from-fsdp to run command\")\n            gpt_model.custom_load_state_dict(model_weight)\n            gpt_model.eval()\n            del checkpoint\n            self.model = gpt_model\n\n        self.model_memory_usage = m.consumed_memory\n        logger.info(f\"Loading model weights took \"\n                    f\"{self.model_memory_usage / float(2**30):.4f} GB\")\n\n        if self.lora_config:\n            assert hasattr(self.model, \"supported_lora_modules\"\n                           ) and self.model.supported_lora_modules, (\n                               \"Model does not support LoRA\")\n            assert hasattr(\n                self.model,\n                \"embedding_modules\"), \"Model does not have embedding_modules\"\n            assert hasattr(self.model, \"embedding_padding_modules\"\n                           ), \"Model does not have embedding_padding_modules\"\n            self.lora_manager = LRUCacheWorkerLoRAManager(\n                self.scheduler_config.max_num_seqs,\n                self.scheduler_config.max_num_batched_tokens, self.vocab_size,\n                self.lora_config, self.device, self.model.embedding_modules,\n                self.model.embedding_padding_modules)\n            self.model = self.lora_manager.create_lora_manager(self.model)\n\n        if self.kv_cache_dtype == \"fp8\" and is_hip():\n            # Currently scaled KV cache is only enabled on ROCm\n            if self.model_config.quantization_param_path is not None:\n                if callable(getattr(self.model, \"load_kv_cache_scales\", None)):\n                    self.model.load_kv_cache_scales(\n                        self.model_config.quantization_param_path)\n                else:\n                    raise RuntimeError(\"Using FP8 KV cache and scaling \"\n                                       \"factors provided but model \"\n                                       f\"{self.model.__class__} does not \"\n                                       \"support loading scaling factors.\")\n            else:\n                logger.warn(\"Using FP8 KV cache but no scaling factors \"\n                            \"provided. Defaulting to scaling factors of 1.0. \"\n                            \"This may lead to less accurate results!\")\n        elif self.model_config.quantization_param_path is not None:\n            logger.warn(\"KV cache scaling factors provided, \"\n                        \"but the KV cache data type is not FP8. \"\n                        \"KV cache scaling factors will not be used.\")\n\n    def set_block_size(self, block_size: int) -> None:\n        self.block_size = block_size\n\n        self.graph_block_tables = np.zeros(\n            (max(_BATCH_SIZES_TO_CAPTURE), self.get_max_block_per_batch()),\n            dtype=np.int32)\n\n    def get_max_block_per_batch(self) -> int:\n        block_size = self.block_size\n        return (self.max_context_len_to_capture + block_size - 1) // block_size\n\n    def _prepare_prompt(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n    ) -> PreparePromptMetadata:\n        input_tokens: List[int] = []\n        input_positions: List[int] = []\n        slot_mapping: List[int] = []\n        lora_index_mapping: List[int] = []\n        lora_prompt_mapping: List[int] = []\n        lora_requests: Set[LoRARequest] = set()\n\n        prompt_lens: List[int] = []\n        context_lens: List[int] = []\n        subquery_lens: List[int] = []\n        prefix_block_tables: List[List[int]] = []\n        multi_modal_input_list: List[torch.Tensor] = []\n\n        if len(seq_group_metadata_list) == 0:\n            return PreparePromptMetadata.empty()\n\n        for seq_group_metadata in seq_group_metadata_list:\n            assert seq_group_metadata.is_prompt\n            seq_ids = list(seq_group_metadata.seq_data.keys())\n            assert len(seq_ids) == 1\n            seq_id = seq_ids[0]\n\n            computed_block_nums = seq_group_metadata.computed_block_nums\n            if (self.scheduler_config is not None\n                    and self.scheduler_config.chunked_prefill_enabled\n                    and not (computed_block_nums is None\n                             or computed_block_nums == [])):\n                raise RuntimeError(\n                    \"chunked prefill cannot be used with prefix caching \"\n                    \"now.\")\n\n            token_chunk_size = seq_group_metadata.token_chunk_size\n            seq_data = seq_group_metadata.seq_data[seq_id]\n            computed_len = seq_data.get_num_computed_tokens()\n            # We should use get_len here because in case of preemption\n            # it contains output tokens.\n            prefill_end = min(seq_data.get_len(),\n                              computed_len + token_chunk_size)\n            prompt_tokens = seq_data.get_token_ids()[computed_len:prefill_end]\n            prompt_len = prefill_end\n            prompt_lens.append(prompt_len)\n\n            # NOTE: This only works for oooooooxxx style attention.\n            if computed_block_nums is not None and len(\n                    computed_block_nums) > 0 and self.sliding_window is None:\n                # Prefix is not supported with sliding_window\n                computed_len = len(computed_block_nums) * self.block_size\n                prompt_tokens = prompt_tokens[computed_len:]\n                prefix_block_tables.append(computed_block_nums)\n            elif self.scheduler_config.chunked_prefill_enabled:\n                if seq_group_metadata.block_tables is not None:\n                    # Prefill has chunked before.\n                    block_table = seq_group_metadata.block_tables[seq_id]\n                    prefix_block_tables.append(block_table)\n                else:\n                    # The first prefill.\n                    prefix_block_tables.append([])\n            else:\n                prefix_block_tables.append([])\n                # Right now, prefill start is always 0. However, this\n                # assumption can be changed once chunked prefill is introduced.\n                assert computed_len == 0\n\n            # actual prompt lens\n            context_lens.append(computed_len)\n            subquery_lens.append(prompt_len - computed_len)\n\n            input_tokens.extend(prompt_tokens)\n            # NOTE(woosuk): Here we assume that the first token in the prompt\n            # is always the first token in the sequence.\n            input_positions.extend(list(range(computed_len, prefill_end)))\n            lora_id = seq_group_metadata.lora_int_id\n\n            if lora_id > 0:\n                lora_requests.add(seq_group_metadata.lora_request)\n\n            lora_index_mapping += [lora_id] * (prompt_len - computed_len)\n            lora_prompt_mapping.extend(\n                [lora_id] *\n                (prompt_len - computed_len\n                 if seq_group_metadata.sampling_params.prompt_logprobs else 1))\n\n            if seq_group_metadata.multi_modal_data:\n                multi_modal_input_list.append(\n                    seq_group_metadata.multi_modal_data.data)\n\n            if seq_group_metadata.block_tables is None:\n                # During memory profiling, the block tables are not initialized\n                # yet. In this case, we just use a dummy slot mapping.\n                slot_mapping.extend([_PAD_SLOT_ID] * prompt_len)\n                continue\n\n            # Compute the slot mapping.\n            block_table = seq_group_metadata.block_tables[seq_id]\n            # Mask the [0, start_idx) tokens of the prompt with _PAD_SLOT_ID,\n            # where start_idx is max(0, prompt_len - sliding_window).\n            # For example, if the prompt len is 10, sliding window is 8, and\n            # block size is 4, the first two tokens are masked and the slot\n            # mapping will be [-1, -1, 2, 3, 4, 5, 6, 7, 0, 1].\n            start_idx = 0\n            if self.sliding_window is not None:\n                assert computed_len == 0, (\n                    \"Prefix caching is currently not supported with \"\n                    \"sliding window attention\")\n                start_idx = max(0, prompt_len - self.sliding_window)\n\n            for i in range(computed_len, prefill_end):\n                if i < start_idx:\n                    slot_mapping.append(_PAD_SLOT_ID)\n                    continue\n\n                block_number = block_table[i // self.block_size]\n                block_offset = i % self.block_size\n                slot = block_number * self.block_size + block_offset\n                slot_mapping.append(slot)\n\n        max_subquery_len = max(subquery_lens)\n        max_prompt_len = max(prompt_lens)\n        assert max_subquery_len > 0\n\n        context_lens_tensor = torch.tensor(context_lens,\n                                           dtype=torch.int,\n                                           device=self.device)\n\n        if multi_modal_input_list:\n            assert self.vision_language_config, (\n                \"Multi-modal inputs are only supported by \"\n                \"vision language models.\")\n            multi_modal_input = torch.cat(multi_modal_input_list,\n                                          dim=0).to(self.device)\n        else:\n            multi_modal_input = None\n\n        # Prepare prefix block tables\n        max_prompt_block_table_len = max(len(t) for t in prefix_block_tables)\n        block_tables = make_tensor_with_pad(\n            prefix_block_tables,\n            max_len=max_prompt_block_table_len,\n            pad=0,\n            dtype=torch.int,\n            device=self.device,\n        )\n\n        # Query length can be shorter than key (i.e., prompt) when prefill\n        # is chunked or prefix cached.\n        subquery_lens_tensor = torch.tensor(subquery_lens,\n                                            dtype=torch.long,\n                                            device=self.device)\n        subquery_start_loc = torch.zeros(subquery_lens_tensor.shape[0] + 1,\n                                         dtype=torch.int32,\n                                         device=self.device)\n\n        prompt_lens_tensor = torch.tensor(prompt_lens,\n                                          dtype=torch.long,\n                                          device=self.device)\n        seq_start_loc = torch.zeros(prompt_lens_tensor.shape[0] + 1,\n                                    dtype=torch.int32,\n                                    device=self.device)\n\n        torch.cumsum(subquery_lens_tensor,\n                     dim=0,\n                     dtype=subquery_start_loc.dtype,\n                     out=subquery_start_loc[1:])\n\n        torch.cumsum(prompt_lens_tensor,\n                     dim=0,\n                     dtype=seq_start_loc.dtype,\n                     out=seq_start_loc[1:])\n\n        attn_metadata = self.attn_backend.make_metadata(\n            is_prompt=True,\n            prompt_lens=prompt_lens,\n            prompt_lens_tensor=prompt_lens_tensor,\n            max_subquery_len=max_subquery_len,\n            max_context_len=None,\n            max_prompt_len=max_prompt_len,\n            subquery_start_loc=subquery_start_loc,\n            seq_start_loc=seq_start_loc,\n            context_lens=context_lens_tensor,\n            block_tables=block_tables,\n            use_cuda_graph=False,\n        )\n\n        return PreparePromptMetadata(\n            input_tokens=input_tokens,\n            input_positions=input_positions,\n            attn_metadata=attn_metadata,\n            prompt_lens=prompt_lens,\n            subquery_lens=subquery_lens,\n            lora_index_mapping=lora_index_mapping,\n            lora_prompt_mapping=lora_prompt_mapping,\n            lora_requests=lora_requests,\n            multi_modal_input=multi_modal_input,\n            slot_mapping=slot_mapping,\n        )\n\n    def _prepare_decode(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n    ) -> PrepareDecodeMetadata:\n        input_tokens: List[int] = []\n        input_positions: List[int] = []\n        slot_mapping: List[int] = []\n        context_lens: List[int] = []\n        block_tables: List[List[int]] = []\n        lora_index_mapping: List[int] = []\n        lora_prompt_mapping: List[int] = []\n        lora_requests: Set[LoRARequest] = set()\n\n        if len(seq_group_metadata_list) == 0:\n            return PrepareDecodeMetadata.empty()\n\n        for seq_group_metadata in seq_group_metadata_list:\n            assert not seq_group_metadata.is_prompt\n            assert seq_group_metadata.token_chunk_size == 1\n\n            seq_ids = list(seq_group_metadata.seq_data.keys())\n            lora_id = seq_group_metadata.lora_int_id\n\n            if lora_id > 0:\n                lora_requests.add(seq_group_metadata.lora_request)\n\n            for seq_id in seq_ids:\n                seq_data = seq_group_metadata.seq_data[seq_id]\n                generation_token = seq_data.get_last_token_id()\n                input_tokens.append(generation_token)\n\n                seq_len = seq_data.get_len()\n                position = seq_len - 1\n                input_positions.append(position)\n\n                context_len = seq_len if self.sliding_window is None else min(\n                    seq_len, self.sliding_window)\n                context_lens.append(context_len)\n\n                block_table = seq_group_metadata.block_tables[seq_id]\n                block_number = block_table[position // self.block_size]\n                block_offset = position % self.block_size\n                slot = block_number * self.block_size + block_offset\n                slot_mapping.append(slot)\n                lora_index_mapping.append(lora_id)\n                lora_prompt_mapping.append(lora_id)\n\n                if self.sliding_window is not None:\n                    sliding_window_blocks = (self.sliding_window //\n                                             self.block_size)\n                    block_table = block_table[-sliding_window_blocks:]\n                block_tables.append(block_table)\n\n        # vLLM uses cuda graph only for decoding requests.\n        # See `capture_model` API for more details.\n        # For decoding requests, batch_size == input_tokens.\n        batch_size = len(input_tokens)\n        max_context_len = max(context_lens)\n        use_captured_graph = (\n            not self.model_config.enforce_eager\n            and batch_size <= _BATCH_SIZES_TO_CAPTURE[-1]\n            and max_context_len <= self.max_context_len_to_capture)\n        if use_captured_graph:\n            graph_batch_size = _get_graph_batch_size(batch_size)\n            assert graph_batch_size >= batch_size\n            for _ in range(graph_batch_size - batch_size):\n                input_tokens.append(0)\n                input_positions.append(0)\n                slot_mapping.append(_PAD_SLOT_ID)\n                context_lens.append(1)\n                block_tables.append([])\n                lora_index_mapping.append(0)\n            batch_size = graph_batch_size\n\n        context_lens_tensor = torch.tensor(context_lens,\n                                           dtype=torch.int,\n                                           device=self.device)\n\n        if use_captured_graph:\n            # When using cuda-graph all these tensors should be\n            # padded.\n            assert context_lens_tensor.shape[0] == len(input_tokens)\n            assert context_lens_tensor.shape[0] == len(input_positions)\n            assert context_lens_tensor.shape[0] == len(slot_mapping)\n\n            # The shape of graph_block_tables is\n            # [max batch size, max context len // block size].\n            input_block_tables = self.graph_block_tables[:batch_size]\n            for i, block_table in enumerate(block_tables):\n                if block_table:\n                    input_block_tables[i, :len(block_table)] = block_table\n            block_tables = torch.tensor(input_block_tables, device=self.device)\n        else:\n            max_block_table_len = max(\n                len(block_table) for block_table in block_tables)\n            block_tables = make_tensor_with_pad(\n                block_tables,\n                max_len=max_block_table_len,\n                pad=0,\n                dtype=torch.int,\n                device=self.device,\n            )\n\n        attn_metadata = self.attn_backend.make_metadata(\n            is_prompt=False,\n            prompt_lens=None,\n            prompt_lens_tensor=None,\n            max_subquery_len=None,\n            max_context_len=max_context_len,\n            max_prompt_len=None,\n            subquery_start_loc=None,\n            seq_start_loc=None,\n            context_lens=context_lens_tensor,\n            block_tables=block_tables,\n            use_cuda_graph=use_captured_graph,\n        )\n        return PrepareDecodeMetadata(\n            input_tokens=input_tokens,\n            input_positions=input_positions,\n            attn_metadata=attn_metadata,\n            lora_index_mapping=lora_index_mapping,\n            lora_prompt_mapping=lora_prompt_mapping,\n            lora_requests=lora_requests,\n            slot_mapping=slot_mapping,\n        )\n\n    def _prepare_sample(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n        prompt_lens: List[int],\n        subquery_lens: Optional[List[int]],\n    ) -> SamplingMetadata:\n        seq_groups: List[Tuple[List[int], SamplingParams]] = []\n        selected_token_indices: List[int] = []\n        generators: List[torch.Generator] = []\n        selected_token_start_idx = 0\n        categorized_sample_indices: Dict[SamplingType,\n                                         List[Tuple[int, int]]] = {\n                                             t: []\n                                             for t in SamplingType\n                                         }\n        categorized_sample_indices_start_idx = 0\n        categorized_sampled_token_indices_start_idx = 0\n\n        for i, seq_group_metadata in enumerate(seq_group_metadata_list):\n            seq_ids = list(seq_group_metadata.seq_data.keys())\n            sampling_params = seq_group_metadata.sampling_params\n            seq_groups.append((seq_ids, sampling_params))\n\n            if seq_group_metadata.is_prompt:\n                assert len(seq_ids) == 1\n                assert subquery_lens is not None\n                subquery_len = subquery_lens[i]\n                if sampling_params.prompt_logprobs is not None:\n                    # NOTE: prompt token positions do not need sample, skip\n                    categorized_sample_indices_start_idx += subquery_len - 1\n\n                categorized_sample_indices[\n                    sampling_params.sampling_type].append(\n                        (categorized_sample_indices_start_idx,\n                         categorized_sampled_token_indices_start_idx))\n                categorized_sample_indices_start_idx += 1\n                categorized_sampled_token_indices_start_idx += 1\n\n                if sampling_params.prompt_logprobs is not None:\n                    selected_token_indices.extend(\n                        range(selected_token_start_idx,\n                              selected_token_start_idx + subquery_len - 1))\n                selected_token_indices.append(selected_token_start_idx +\n                                              subquery_len - 1)\n                selected_token_start_idx += subquery_len\n\n                if sampling_params.seed is not None:\n                    seq_group_metadata.state.generator = torch.Generator(\n                        device=self.device).manual_seed(sampling_params.seed)\n            else:\n                num_seqs = len(seq_ids)\n                selected_token_indices.extend(\n                    range(selected_token_start_idx,\n                          selected_token_start_idx + num_seqs))\n                selected_token_start_idx += num_seqs\n\n                categorized_sample_indices[\n                    sampling_params.sampling_type].extend(\n                        list(\n                            zip(\n                                range(\n                                    categorized_sample_indices_start_idx,\n                                    categorized_sample_indices_start_idx +\n                                    num_seqs),\n                                range(\n                                    categorized_sampled_token_indices_start_idx,\n                                    categorized_sampled_token_indices_start_idx\n                                    + num_seqs))))\n                categorized_sample_indices_start_idx += num_seqs\n                categorized_sampled_token_indices_start_idx += num_seqs\n\n            if sampling_params.seed is not None:\n                generators.append(seq_group_metadata.state.generator)\n\n        selected_token_indices = async_tensor_h2d(selected_token_indices,\n                                                  dtype=torch.long,\n                                                  target_device=self.device,\n                                                  pin_memory=self.pin_memory)\n\n        categorized_sample_indices = {\n            t: maybe_expand_dim(\n                async_tensor_h2d(seq_ids,\n                                 dtype=torch.int,\n                                 target_device=self.device,\n                                 pin_memory=self.pin_memory), 2, 2)\n            for t, seq_ids in categorized_sample_indices.items()\n        }\n\n        seq_data: Dict[int, SequenceData] = {}\n        for seq_group_metadata in seq_group_metadata_list:\n            seq_data.update(seq_group_metadata.seq_data)\n\n        sampling_metadata = SamplingMetadata(\n            seq_groups=seq_groups,\n            seq_data=seq_data,\n            prompt_lens=prompt_lens,\n            selected_token_indices=selected_token_indices,\n            categorized_sample_indices=categorized_sample_indices,\n            generators=generators,\n        )\n        return sampling_metadata\n\n    def prepare_input_tensors(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n    ) -> Tuple[torch.Tensor, torch.Tensor, AttentionMetadata, SamplingMetadata,\n               Set[LoRARequest], LoRAMapping, torch.Tensor]:\n        if self.is_driver_worker:\n            prefill_reqs = []\n            decode_reqs = []\n            for seq_group_meta in seq_group_metadata_list:\n                if seq_group_meta.is_prompt:\n                    prefill_reqs.append(seq_group_meta)\n                else:\n                    decode_reqs.append(seq_group_meta)\n\n            # Prepare input tensors.\n            (\n                input_tokens,\n                input_positions,\n                prefill_attn_metadata,\n                prompt_lens,\n                subquery_lens,\n                lora_index_mapping,\n                lora_prompt_mapping,\n                lora_requests,\n                multi_modal_input,\n                slot_mapping,\n            ) = self._prepare_prompt(prefill_reqs)\n            (\n                decode_input_tokens,\n                decode_input_positions,\n                decode_attn_metadata,\n                decode_lora_index_mapping,\n                decode_lora_prompt_mapping,\n                decode_lora_requests,\n                decode_slot_mapping,\n            ) = self._prepare_decode(decode_reqs)\n            sampling_metadata = self._prepare_sample(seq_group_metadata_list,\n                                                     prompt_lens,\n                                                     subquery_lens)\n\n            if not self.scheduler_config.chunked_prefill_enabled:\n                assert (len(prefill_reqs) and len(decode_reqs)) == 0\n\n            num_prefills = len(prompt_lens)\n            num_prefill_tokens = len(input_tokens)\n            num_decode_tokens = len(decode_input_tokens)\n\n            # Coalesce tensors. Note that attn_metadata is currently not\n            # coalesced for simplicity.\n            input_tokens.extend(decode_input_tokens)\n            input_positions.extend(decode_input_positions)\n            slot_mapping.extend(decode_slot_mapping)\n            lora_index_mapping.extend(decode_lora_index_mapping)\n            lora_prompt_mapping.extend(decode_lora_prompt_mapping)\n            lora_requests.update(decode_lora_requests)\n\n            input_tokens = torch.tensor(input_tokens,\n                                        dtype=torch.long,\n                                        device=self.device)\n            input_positions = torch.tensor(input_positions,\n                                           dtype=torch.long,\n                                           device=self.device)\n            slot_mapping = torch.tensor(slot_mapping,\n                                        dtype=torch.long,\n                                        device=self.device)\n\n            if self.lora_config:\n                lora_mapping = LoRAMapping(\n                    lora_index_mapping,\n                    lora_prompt_mapping,\n                )\n            else:\n                lora_mapping = None\n\n            # Broadcast the metadata.\n            # If batch contains both prefill and decode, it sends 2 broadcasts.\n            # If it only contains 1 type, it triggers a single broadcast.\n            if (prefill_attn_metadata is not None\n                    and decode_attn_metadata is not None):\n                batch_type = BatchType.MIXED\n            elif prefill_attn_metadata is not None:\n                batch_type = BatchType.PREFILL\n            else:\n                batch_type = BatchType.DECODE\n\n            metadata_dict = {\n                \"input_tokens\": input_tokens,\n                \"input_positions\": input_positions,\n                \"selected_token_indices\":\n                sampling_metadata.selected_token_indices,\n                \"lora_requests\": lora_requests,\n                \"lora_mapping\": lora_mapping,\n                \"multi_modal_input\": multi_modal_input,\n                \"num_prefill_tokens\": num_prefill_tokens,\n                \"num_decode_tokens\": num_decode_tokens,\n                \"slot_mapping\": slot_mapping,\n                \"num_prefills\": num_prefills,\n                \"batch_type\": batch_type,\n            }\n            if prefill_attn_metadata is not None:\n                metadata_dict.update(prefill_attn_metadata.asdict_zerocopy())\n            else:\n                assert decode_attn_metadata is not None\n                metadata_dict.update(decode_attn_metadata.asdict_zerocopy())\n            broadcast_tensor_dict(metadata_dict, src=0)\n\n            # Broadcast decode attn metadata for mixed batch type.\n            # The additional broadcast costs 300us overhead on 4 A10 GPUs.\n            # We can potentially reduce the overhead by coelescing tensors.\n            if batch_type == BatchType.MIXED:\n                assert decode_attn_metadata is not None\n                metadata_dict = decode_attn_metadata.asdict_zerocopy()\n                broadcast_tensor_dict(metadata_dict, src=0)\n        else:\n            metadata_dict = broadcast_tensor_dict(src=0)\n            input_tokens = metadata_dict.pop(\"input_tokens\")\n            input_positions = metadata_dict.pop(\"input_positions\")\n            slot_mapping = metadata_dict.pop(\"slot_mapping\")\n            num_prefills = metadata_dict.pop(\"num_prefills\")\n            selected_token_indices = metadata_dict.pop(\n                \"selected_token_indices\")\n            lora_mapping = metadata_dict.pop(\"lora_mapping\")\n            lora_requests = metadata_dict.pop(\"lora_requests\")\n            multi_modal_input = metadata_dict.pop(\"multi_modal_input\")\n            num_prefill_tokens = metadata_dict.pop(\"num_prefill_tokens\")\n            num_decode_tokens = metadata_dict.pop(\"num_decode_tokens\")\n            batch_type = metadata_dict.pop(\"batch_type\")\n\n            # Create an attention metadata.\n            prefill_attn_metadata = None\n            decode_attn_metadata = None\n            if batch_type == BatchType.PREFILL or batch_type == BatchType.MIXED:\n                prefill_attn_metadata = self.attn_backend.make_metadata(\n                    **metadata_dict)\n            else:\n                decode_attn_metadata = self.attn_backend.make_metadata(\n                    **metadata_dict)\n            sampling_metadata = SamplingMetadata(\n                seq_groups=None,\n                seq_data=None,\n                prompt_lens=None,\n                selected_token_indices=selected_token_indices,\n                categorized_sample_indices=None,\n                generators=None,\n                perform_sampling=False,\n            )\n\n            # if it is a mixed batch, decode attn_metadata is broadcasted\n            # separately.\n            if batch_type == BatchType.MIXED:\n                metadata_dict = broadcast_tensor_dict(src=0)\n                decode_attn_metadata = self.attn_backend.make_metadata(\n                    **metadata_dict)\n\n        attn_metadata = AttentionMetadata(\n            num_prefills=num_prefills,\n            slot_mapping=slot_mapping,\n            num_prefill_tokens=num_prefill_tokens,\n            num_decode_tokens=num_decode_tokens,\n            prefill_metadata=prefill_attn_metadata,\n            decode_metadata=decode_attn_metadata,\n            kv_cache_dtype=self.kv_cache_dtype,\n        )\n\n        return (input_tokens, input_positions, attn_metadata,\n                sampling_metadata, lora_requests, lora_mapping,\n                multi_modal_input)\n\n    @torch.inference_mode()\n    def execute_model(\n        self,\n        seq_group_metadata_list: List[SequenceGroupMetadata],\n        kv_caches: List[torch.Tensor],\n    ) -> Optional[SamplerOutput]:\n        (input_tokens, input_positions, attn_metadata, sampling_metadata,\n         lora_requests, lora_mapping, multi_modal_input\n         ) = self.prepare_input_tensors(seq_group_metadata_list)\n        if self.lora_config:\n            self.set_active_loras(lora_requests, lora_mapping)\n\n        # Currently cuda graph is only supported by the decode phase.\n        prefill_meta = attn_metadata.prefill_metadata\n        decode_meta = attn_metadata.decode_metadata\n        if prefill_meta is None and decode_meta.use_cuda_graph:\n            graph_batch_size = input_tokens.shape[0]\n            model_executable = self.graph_runners[graph_batch_size]\n        else:\n            model_executable = self.model\n        execute_model_kwargs = {\n            \"input_ids\": input_tokens,\n            \"positions\": input_positions,\n            \"kv_caches\": kv_caches,\n            \"attn_metadata\": attn_metadata,\n        }\n        if self.vision_language_config:\n            execute_model_kwargs.update({\"image_input\": multi_modal_input})\n        hidden_states = model_executable(**execute_model_kwargs)\n\n        # Compute the logits.\n        logits = self.model.compute_logits(hidden_states, sampling_metadata)\n\n        # Only perform sampling in the driver worker.\n        if not sampling_metadata.perform_sampling:\n            return None\n\n        # Sample the next token.\n        output = self.model.sample(\n            logits=logits,\n            sampling_metadata=sampling_metadata,\n        )\n        return output\n\n    @torch.inference_mode()\n    def profile_run(self) -> None:\n        # Enable top-k sampling to reflect the accurate memory usage.\n        sampling_params = SamplingParams(top_p=0.99, top_k=self.vocab_size - 1)\n        max_num_batched_tokens = self.scheduler_config.max_num_batched_tokens\n        max_num_seqs = self.scheduler_config.max_num_seqs\n\n        # This represents the maximum number of different requests\n        # that will have unique loras, an therefore the max amount of memory\n        # consumption create dummy lora request copies from the lora request\n        # passed in, which contains a lora from the lora warmup path.\n        dummy_lora_requests = []\n        dummy_lora_requests_per_seq = []\n        if self.lora_config:\n            for idx in range(self.lora_config.max_loras):\n                lora_id = idx + 1\n                dummy_lora_request = LoRARequest(\n                    lora_name=f\"warmup_{lora_id}\",\n                    lora_int_id=lora_id,\n                    lora_local_path=\"/not/a/real/path\",\n                )\n                self.lora_manager.add_dummy_lora(dummy_lora_request,\n                                                 rank=LORA_WARMUP_RANK)\n                dummy_lora_requests.append(dummy_lora_request)\n            dummy_lora_requests_per_seq = [\n                dummy_lora_requests[idx % len(dummy_lora_requests)]\n                for idx in range(max_num_seqs)\n            ]\n\n        # Profile memory usage with max_num_sequences sequences and the total\n        # number of tokens equal to max_num_batched_tokens.\n        seqs: List[SequenceGroupMetadata] = []\n        # Additional GPU memory may be needed for vision encoding, which needs\n        # to be accounted for when calculating the GPU blocks for\n        # vLLM blocker manager.\n        # To exercise the worst scenario for GPU memory consumption,\n        # the number of seqs (batch_size) is chosen to maximize the number\n        # of images processed.\n        if self.vision_language_config:\n            max_num_seqs = min(\n                max_num_seqs,\n                int(max_num_batched_tokens /\n                    self.vision_language_config.image_feature_size))\n        for group_id in range(max_num_seqs):\n            seq_len = (max_num_batched_tokens // max_num_seqs +\n                       (group_id < max_num_batched_tokens % max_num_seqs))\n            seq_data, fake_multi_modal_input = _prepare_fake_inputs(\n                seq_len, self.vision_language_config)\n            seq = SequenceGroupMetadata(\n                request_id=str(group_id),\n                is_prompt=True,\n                seq_data={group_id: seq_data},\n                sampling_params=sampling_params,\n                block_tables=None,\n                lora_request=dummy_lora_requests_per_seq[group_id]\n                if dummy_lora_requests_per_seq else None,\n                multi_modal_data=fake_multi_modal_input,\n            )\n            seqs.append(seq)\n\n        # Run the model with the dummy inputs.\n        num_layers = self.model_config.get_num_layers(self.parallel_config)\n        kv_caches = [None] * num_layers\n        self.execute_model(seqs, kv_caches)\n        torch.cuda.synchronize()\n        return\n\n    def remove_all_loras(self) -> bool:\n        if not self.lora_manager:\n            raise RuntimeError(\"LoRA is not enabled.\")\n        return self.lora_manager.remove_all_loras()\n\n    def set_active_loras(self, lora_requests: Set[LoRARequest],\n                         lora_mapping: LoRAMapping) -> None:\n        if not self.lora_manager:\n            raise RuntimeError(\"LoRA is not enabled.\")\n        self.lora_manager.set_active_loras(lora_requests, lora_mapping)\n\n    def add_lora(self, lora_request: LoRARequest) -> bool:\n        if not self.lora_manager:\n            raise RuntimeError(\"LoRA is not enabled.\")\n        return self.lora_manager.add_lora(lora_request)\n\n    def remove_lora(self, lora_id: int) -> bool:\n        if not self.lora_manager:\n            raise RuntimeError(\"LoRA is not enabled.\")\n        return self.lora_manager.remove_lora(lora_id)\n\n    def list_loras(self) -> Set[int]:\n        if not self.lora_manager:\n            raise RuntimeError(\"LoRA is not enabled.\")\n        return self.lora_manager.list_loras()\n\n    @torch.inference_mode()\n    def capture_model(self, kv_caches: List[torch.Tensor]) -> None:\n        \"\"\"Cuda graph capture a model.\n\n        Note that CUDA graph's performance gain is negligible if number\n        of batched tokens are larger than 200. And since CUDA graph\n        requires fixed sized tensors, supporting large/variable batch\n        size requires high GPU memory overhead. Thus, vLLM only captures\n        decoding requests. Mixed batch (chunked prefill + decoding) or\n        prefill requests are not captured.\n\n        Since it is used for decoding-only, it assumes there's only 1 token\n        per sequence in the batch.\n        \"\"\"\n        # NOTE(woosuk): This is a hack to ensure that the NCCL backend is never\n        # deleted before the CUDA graphs.\n        self.pynccl_backend = pynccl_utils.get_nccl_backend()\n\n        assert not self.model_config.enforce_eager\n        logger.info(\"Capturing the model for CUDA graphs. This may lead to \"\n                    \"unexpected consequences if the model is not static. To \"\n                    \"run the model in eager mode, set 'enforce_eager=True' or \"\n                    \"use '--enforce-eager' in the CLI.\")\n        logger.info(\"CUDA graphs can take additional 1~3 GiB memory per GPU. \"\n                    \"If you are running out of memory, consider decreasing \"\n                    \"`gpu_memory_utilization` or enforcing eager mode. \"\n                    \"You can also reduce the `max_num_seqs` as needed \"\n                    \"to decrease memory usage.\")\n        start_time = time.perf_counter()\n\n        # Prepare dummy inputs. These will be reused for all batch sizes.\n        max_batch_size = max(_BATCH_SIZES_TO_CAPTURE)\n        input_tokens = torch.zeros(max_batch_size, dtype=torch.long).cuda()\n        input_positions = torch.zeros(max_batch_size, dtype=torch.long).cuda()\n        slot_mapping = torch.empty(max_batch_size, dtype=torch.long).cuda()\n        slot_mapping.fill_(_PAD_SLOT_ID)\n        context_lens = torch.ones(max_batch_size, dtype=torch.int32).cuda()\n        block_tables = torch.from_numpy(self.graph_block_tables).cuda()\n\n        graph_batch_size = _get_graph_batch_size(\n            self.scheduler_config.max_num_seqs)\n        batch_size_capture_list = [\n            bs for bs in _BATCH_SIZES_TO_CAPTURE if bs <= graph_batch_size\n        ]\n\n        # NOTE(woosuk): There are 3 backends for all-reduce: custom all-reduce\n        # kernel, pynccl, and PyTorch NCCL. When using CUDA graph, we use\n        # either custom all-reduce kernel or pynccl. When not using CUDA\n        # graph, we use either custom all-reduce kernel or PyTorch NCCL.\n        # We always prioritize using custom all-reduce kernel but fall back\n        # to PyTorch or pynccl if it is disabled or not supported.\n        with custom_all_reduce.capture():\n            # NOTE: Capturing the largest batch size first may help reduce the\n            # memory usage of CUDA graph.\n            for batch_size in reversed(batch_size_capture_list):\n                # Create dummy attn_metadata.\n                decode_metadata = self.attn_backend.make_metadata(\n                    is_prompt=False,\n                    prompt_lens=None,\n                    prompt_lens_tensor=None,\n                    max_subquery_len=None,\n                    max_context_len=self.max_context_len_to_capture,\n                    max_prompt_len=None,\n                    subquery_start_loc=None,\n                    seq_start_loc=None,\n                    context_lens=context_lens[:batch_size],\n                    block_tables=block_tables[:batch_size],\n                    use_cuda_graph=True,\n                )\n                attn_metadata = AttentionMetadata(\n                    num_prefills=0,\n                    num_prefill_tokens=0,\n                    num_decode_tokens=batch_size,\n                    slot_mapping=slot_mapping[:batch_size],\n                    prefill_metadata=None,\n                    decode_metadata=decode_metadata,\n                    kv_cache_dtype=self.kv_cache_dtype,\n                )\n\n                if self.lora_config:\n                    lora_mapping = LoRAMapping(\n                        [0] * batch_size,\n                        [0] * batch_size,\n                    )\n                    self.set_active_loras(set(), lora_mapping)\n\n                graph_runner = CUDAGraphRunner(self.model)\n                graph_runner.capture(\n                    input_tokens[:batch_size],\n                    input_positions[:batch_size],\n                    kv_caches,\n                    attn_metadata,\n                    memory_pool=self.graph_memory_pool,\n                )\n                self.graph_memory_pool = graph_runner.graph.pool()\n                self.graph_runners[batch_size] = graph_runner\n\n        end_time = time.perf_counter()\n        elapsed_time = end_time - start_time\n        # This usually takes < 10 seconds.\n        logger.info(f\"Graph capturing finished in {elapsed_time:.0f} secs.\")\n\n    def __del__(self) -> None:\n        # Delete the CUDA graphs before deleting the pynccl communicator.\n        # NOTE(woosuk): This is necessary because otherwise deadlocks can\n        # happen.\n        # FIXME(woosuk): This is a bit hacky. Find a more robust solution.\n        # TODO(youkaichao): when we get enough user feedback that pynccl is\n        # more stable than cupy, we can remove this, e.g. in v0.4.1.\n        self.graph_runners.clear()\n        self.pynccl_backend = None\n\n    @property\n    def vocab_size(self) -> int:\n        return self.model_config.get_vocab_size()\n\n\nclass CUDAGraphRunner:\n\n    def __init__(self, model: nn.Module):\n        self.model = model\n        self.input_buffers: Dict[str, torch.Tensor] = {}\n        self.output_buffers: Dict[str, torch.Tensor] = {}\n\n        self._graph: Optional[torch.cuda.CUDAGraph] = None\n\n    @property\n    def graph(self):\n        assert self._graph is not None\n        return self._graph\n\n    def capture(\n        self,\n        input_ids: torch.Tensor,\n        positions: torch.Tensor,\n        kv_caches: List[torch.Tensor],\n        attn_metadata: AttentionMetadata,\n        memory_pool,\n        **kwargs,\n    ) -> None:\n        assert self._graph is None\n        # Run the model once without capturing the graph.\n        # This is to make sure that the captured graph does not include the\n        # kernel launches for initial benchmarking (e.g., Triton autotune).\n        with _maybe_pynccl():\n            self.model(\n                input_ids,\n                positions,\n                kv_caches,\n                attn_metadata,\n                **kwargs,\n            )\n        torch.cuda.synchronize()\n\n        # Capture the graph.\n        # NOTE(woosuk): Python 3.8 does not support multi-line with statements.\n        # https://stackoverflow.com/questions/31039022/python-multi-line-with-statement\n        self._graph = torch.cuda.CUDAGraph()\n        with torch.cuda.graph(self._graph, pool=memory_pool):  # noqa: SIM117\n            with _maybe_pynccl():\n                hidden_states = self.model(\n                    input_ids,\n                    positions,\n                    kv_caches,\n                    attn_metadata,\n                    **kwargs,\n                )\n        torch.cuda.synchronize()\n\n        # Save the input and output buffers.\n        self.input_buffers = {\n            \"input_ids\": input_ids,\n            \"positions\": positions,\n            \"kv_caches\": kv_caches,\n            \"slot_mapping\": attn_metadata.slot_mapping,\n            \"context_lens\": attn_metadata.decode_metadata.context_lens,\n            \"block_tables\": attn_metadata.decode_metadata.block_tables,\n        }\n        self.output_buffers = {\"hidden_states\": hidden_states}\n        return\n\n    def forward(\n        self,\n        input_ids: torch.Tensor,\n        positions: torch.Tensor,\n        kv_caches: List[torch.Tensor],\n        attn_metadata: AttentionMetadata,\n        **kwargs,\n    ) -> torch.Tensor:\n        # KV caches are fixed tensors, so we don't need to copy them.\n        del kv_caches\n\n        # Copy the input tensors to the input buffers.\n        self.input_buffers[\"input_ids\"].copy_(input_ids, non_blocking=True)\n        self.input_buffers[\"positions\"].copy_(positions, non_blocking=True)\n        self.input_buffers[\"slot_mapping\"].copy_(attn_metadata.slot_mapping,\n                                                 non_blocking=True)\n        self.input_buffers[\"context_lens\"].copy_(\n            attn_metadata.decode_metadata.context_lens, non_blocking=True)\n        self.input_buffers[\"block_tables\"].copy_(\n            attn_metadata.decode_metadata.block_tables, non_blocking=True)\n        # Run the graph.\n        self.graph.replay()\n\n        # Return the output tensor.\n        return self.output_buffers[\"hidden_states\"]\n\n    def __call__(self, *args, **kwargs):\n        return self.forward(*args, **kwargs)\n\n\n@contextlib.contextmanager\ndef _maybe_pynccl():\n    if pynccl_utils.is_initialized(\n    ) and not custom_all_reduce.is_initialized():\n        with with_pynccl_for_all_reduce():\n            yield\n    else:\n        yield\n\n\ndef _get_graph_batch_size(batch_size: int) -> int:\n    \"\"\"Returns the padded batch size given actual batch size.\n\n    Batch sizes are 1, 2, 4, _BATCH_SIZE_ALIGNMENT,\n    2*_BATCH_SIZE_ALIGNMENT, 3*_BATCH_SIZE_ALIGNMENT...\n    \"\"\"\n    if batch_size <= 2:\n        return batch_size\n    elif batch_size <= 4:\n        return 4\n    else:\n        return ((batch_size + _BATCH_SIZE_ALIGNMENT - 1) //\n                _BATCH_SIZE_ALIGNMENT * _BATCH_SIZE_ALIGNMENT)\n\n\ndef _prepare_fake_inputs(\n        seq_len: int, vision_language_config: Optional[VisionLanguageConfig]):\n    \"\"\"Prepare fake inputs for profile run.\"\"\"\n    if vision_language_config:\n        prompt_tokens = [\n            vision_language_config.image_token_id\n        ] * vision_language_config.image_feature_size + [0] * (\n            seq_len - vision_language_config.image_feature_size)\n        fake_image_input = MultiModalData(\n            type=MultiModalData.Type.IMAGE,\n            data=torch.zeros(vision_language_config.image_input_shape,\n                             dtype=torch.float16))\n    else:\n        prompt_tokens = [0] * seq_len\n        fake_image_input = None\n    return SequenceData(prompt_tokens), fake_image_input"
  },
  {
    "path": "autoregressive/serve/sample_c2i.py",
    "content": "import time\nimport argparse\nimport torch\nfrom torchvision.utils import save_image\nimport sys\nsys.path.append('/data/zongmingli/LlamaGen')\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.serve.gpt_model import GPT_models\nfrom autoregressive.serve.llm import LLM \nfrom vllm import SamplingParams\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = False\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # Labels to condition the model with (feel free to change):\n    class_labels = [207, 360, 387, 974, 88, 979, 417, 279]\n    latent_size = args.image_size // args.downsample_size\n    qzshape = [len(class_labels), args.codebook_embed_dim, latent_size, latent_size]\n    prompt_token_ids = [[cind] for cind in class_labels]\n    if args.cfg_scale > 1.0:\n        prompt_token_ids.extend([[args.num_classes] for _ in range(len(prompt_token_ids))])\n    # Create an LLM.\n    llm = LLM(\n        args=args, \n        model='autoregressive/serve/fake_json/{}.json'.format(args.gpt_model), \n        gpu_memory_utilization=0.9, \n        skip_tokenizer_init=True)\n    print(f\"gpt model is loaded\")\n\n    # Create a sampling params object.\n    sampling_params = SamplingParams(\n        temperature=args.temperature, top_p=args.top_p, top_k=args.top_k, \n        max_tokens=latent_size ** 2)\n\n    # Generate texts from the prompts. The output is a list of RequestOutput objects\n    # that contain the prompt, generated text, and other information.\n    t1 = time.time()\n    outputs = llm.generate(\n        prompt_token_ids=prompt_token_ids,\n        sampling_params=sampling_params,\n        use_tqdm=False)\n    sampling_time = time.time() - t1\n    print(f\"gpt sampling takes about {sampling_time:.2f} seconds.\") \n\n    # decode to image\n    index_sample = torch.tensor([output.outputs[0].token_ids for output in outputs], device=device)\n    if args.cfg_scale > 1.0:\n        index_sample = index_sample[:len(class_labels)]\n    t2 = time.time()\n    samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n    decoder_time = time.time() - t2\n    print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n\n    # Save and display images:\n    save_image(samples, \"sample_{}_vllm.png\".format(args.gpt_type), nrow=4, normalize=True, value_range=(-1, 1))\n    print(f\"image is saved to sample_{args.gpt_type}_vllm.png\")\n\n\nif __name__ == '__main__':\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, required=True, help=\"ckpt path for gpt model\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"])\n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4.0)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000,help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/serve/sampler.py",
    "content": "\"\"\"A layer that samples the next tokens from the model's outputs.\"\"\"\nimport itertools\nfrom typing import Dict, List, Optional, Tuple\n\nimport torch\nimport torch.nn as nn\n\nfrom vllm.model_executor.layers.ops.sample import sample as sample_triton\nfrom vllm.model_executor.sampling_metadata import (SamplingMetadata,\n                                                   SamplingTensors)\nfrom vllm.sampling_params import SamplingParams, SamplingType\nfrom vllm.sequence import (Logprob, PromptLogprobs, SampleLogprobs,\n                           SamplerOutput, SequenceData, SequenceGroupOutput,\n                           SequenceOutput)\n\n\nclass Sampler(nn.Module):\n    \"\"\"Samples the next tokens from the model's outputs.\n\n    This layer does the following:\n    1. Discard the hidden states that are not used for sampling (i.e., all\n        tokens except the final one in each prompt).\n    2. Compute the logits for the next tokens.\n    3. Apply presence, frequency and repetition penalties.\n    4. Apply temperature scaling.\n    5. Apply top-p and top-k truncation.\n    6. Sample the next tokens.\n    Here, each sequence group within the batch can have different sampling\n    parameters (e.g., sampling method, temperature, top-p, top-k, etc.).\n\n    The structure of the logits tensor is coupled with the seq_groups in\n    sampling_metadata. Typically, each sequence in each seq_group has one row in\n    logits for the next token to be sampled; however, for a seq_group with a\n    prompt request with the prompt_logprobs sampling parameter, there are rows\n    in logits for each token in the input prompt.\n    \"\"\"\n\n    def __init__(self, cfg_scale=1.0):\n        super().__init__()\n        self.cfg_scale = cfg_scale\n        # Whether or not the SamplerOutput should have on-device tensors\n        # containing the sampled token ids and probabilities. This is used by\n        # speculative decoding.\n        self.include_gpu_probs_tensor = False\n\n    def forward(\n        self,\n        logits: torch.Tensor,\n        sampling_metadata: SamplingMetadata,\n    ) -> Optional[SamplerOutput]:\n        assert logits is not None\n        _, vocab_size = logits.shape\n\n        if self.cfg_scale > 1.0:\n            logits_combined = logits\n            cond_logits, uncond_logits = torch.split(logits_combined, len(logits_combined) // 2, dim=0)\n            logits = uncond_logits + (cond_logits - uncond_logits) * self.cfg_scale\n            logits = torch.cat([logits, logits], dim=0)\n        \n        # Apply min_tokens penalty which sets stop tokens to -inf if min_tokens\n        # have not been generated yet\n        logits = _apply_min_tokens_penalty(logits, sampling_metadata)\n\n        # Prepare sampling tensors with pinned memory to avoid blocking.\n        (sampling_tensors, do_penalties, do_top_p_top_k,\n         do_min_p) = SamplingTensors.from_sampling_metadata(\n             sampling_metadata, vocab_size, logits.device, logits.dtype)\n\n        # Apply presence and frequency penalties.\n        if do_penalties:\n            logits = _apply_penalties(logits, sampling_tensors.prompt_tokens,\n                                      sampling_tensors.output_tokens,\n                                      sampling_tensors.presence_penalties,\n                                      sampling_tensors.frequency_penalties,\n                                      sampling_tensors.repetition_penalties)\n\n        # Apply temperature scaling.\n        # Use in-place division to avoid creating a new tensor.\n        logits.div_(sampling_tensors.temperatures.unsqueeze_(dim=1))\n\n        if do_top_p_top_k:\n            logits = _apply_top_k_top_p(logits, sampling_tensors.top_ps,\n                                        sampling_tensors.top_ks)\n\n        if do_min_p:\n            logits = _apply_min_p(logits, sampling_tensors.min_ps)\n\n        # We use float32 for probabilities and log probabilities.\n        # Compute the probabilities.\n        probs = torch.softmax(logits, dim=-1, dtype=torch.float)\n        # Compute the log probabilities.\n        # Use log_softmax to ensure numerical stability.\n        logprobs = torch.log_softmax(logits, dim=-1, dtype=torch.float)\n\n        # Sample the next tokens.\n        sample_results, maybe_sampled_tokens_tensor = _sample(\n            probs,\n            logprobs,\n            sampling_metadata,\n            sampling_tensors,\n            include_gpu_probs_tensor=self.include_gpu_probs_tensor,\n            modify_greedy_probs=self._should_modify_greedy_probs_inplace,\n        )\n\n        \n        if self.cfg_scale > 1.0:\n            cond_result = sample_results[:len(sample_results) // 2]\n            sample_results = cond_result + cond_result\n\n\n        if self.include_gpu_probs_tensor:\n            assert maybe_sampled_tokens_tensor is not None\n            sampled_tokens_tensor = maybe_sampled_tokens_tensor\n            on_device_tensors = (probs, sampled_tokens_tensor)\n        else:\n            on_device_tensors = None\n\n        # Get the logprobs query results.\n        prompt_logprobs, sample_logprobs = _get_logprobs(\n            logprobs, sampling_metadata, sample_results)\n        return _build_sampler_output(sample_results,\n                                     sampling_metadata,\n                                     prompt_logprobs,\n                                     sample_logprobs,\n                                     on_device_tensors=on_device_tensors)\n\n    @property\n    def _should_modify_greedy_probs_inplace(self) -> bool:\n        \"\"\"Whether or not the sampler should modify the probability distribution\n        of greedily-sampled tokens such that multinomial sampling would sample\n        the greedily-sampled token.\n\n        In other words, if True then we set the probability of the greedily-\n        sampled token to 1.\n\n        This is used by speculative decoding, which requires that the sampling\n        method be encoded into the probability distribution.\n        \"\"\"\n        # Modify greedy probs if include_gpu_probs_tensor is set.\n        return self.include_gpu_probs_tensor\n\n\ndef _get_bin_counts_and_mask(\n    tokens: torch.Tensor,\n    vocab_size: int,\n    num_seqs: int,\n) -> Tuple[torch.Tensor, torch.Tensor]:\n    # Compute the bin counts for the tokens.\n    # vocab_size + 1 for padding.\n    bin_counts = torch.zeros((num_seqs, vocab_size + 1),\n                             dtype=torch.long,\n                             device=tokens.device)\n    bin_counts.scatter_add_(1, tokens, torch.ones_like(tokens))\n    bin_counts = bin_counts[:, :vocab_size]\n    mask = bin_counts > 0\n\n    return bin_counts, mask\n\n\ndef _apply_min_tokens_penalty(\n    logits: torch.Tensor,\n    sampling_metadata: SamplingMetadata,\n) -> torch.Tensor:\n    # list of indices in logits that will be set to -inf\n    logits_to_penalize = []\n    start_idx = 0\n    for i, seq_group in enumerate(sampling_metadata.seq_groups):\n        seq_ids, sampling_params = seq_group\n\n        # handle prompt_logprobs by skipping rows in logits added for the prompt\n        # tokens (prompt logprobs are not penalized)\n        if (i < sampling_metadata.num_prompts\n                and sampling_params.prompt_logprobs is not None):\n            assert len(seq_ids) == 1\n            start_idx += sampling_metadata.prompt_lens[i] - 1\n\n        min_tokens = sampling_params.min_tokens\n        if min_tokens > 0:\n            seqs_to_penalize = []\n            for i, seq_id in enumerate(seq_ids):\n                seq_data = sampling_metadata.seq_data[seq_id]\n                if len(seq_data.output_token_ids) < min_tokens:\n                    seqs_to_penalize.append(i)\n\n            if seqs_to_penalize:\n                # convert to the index into logits\n                seqs_to_penalize = [start_idx + i for i in seqs_to_penalize]\n                # use set() to remove any duplicates\n                token_ids_to_penalize = set(sampling_params.stop_token_ids +\n                                            [sampling_params.eos_token_id])\n                # itertools.product pairs each seq index with every token id\n                logits_to_penalize.extend(\n                    itertools.product(seqs_to_penalize, token_ids_to_penalize))\n\n        start_idx += len(seq_ids)\n\n    if logits_to_penalize:\n        # use zip and * to group indices along each dimension\n        # eg. [ (1,2), (1,3), (5,6) ] -> ( (1,1,5), (2,3,6) )\n        logits[tuple(zip(*logits_to_penalize))] = -float(\"inf\")\n\n    # verifies that no rows in logits were missed unexpectedly\n    assert start_idx == logits.shape[0]\n    return logits\n\n\ndef _apply_penalties(logits: torch.Tensor, prompt_tokens_tensor: torch.Tensor,\n                     output_tokens_tensor: torch.Tensor,\n                     presence_penalties: torch.Tensor,\n                     frequency_penalties: torch.Tensor,\n                     repetition_penalties: torch.Tensor) -> torch.Tensor:\n    num_seqs, vocab_size = logits.shape\n    _, prompt_mask = _get_bin_counts_and_mask(prompt_tokens_tensor, vocab_size,\n                                              num_seqs)\n    output_bin_counts, output_mask = _get_bin_counts_and_mask(\n        output_tokens_tensor, vocab_size, num_seqs)\n\n    repetition_penalties = repetition_penalties[:, None].repeat(1, vocab_size)\n    repetition_penalties[~(prompt_mask | output_mask)] = 1.0\n    logits = torch.where(logits > 0, logits / repetition_penalties,\n                         logits * repetition_penalties)\n\n    # We follow the definition in OpenAI API.\n    # Refer to https://platform.openai.com/docs/api-reference/parameter-details\n    logits -= frequency_penalties.unsqueeze_(dim=1) * output_bin_counts\n    logits -= presence_penalties.unsqueeze_(dim=1) * output_mask\n    return logits\n\n\ndef _apply_top_k_top_p(\n    logits: torch.Tensor,\n    p: torch.Tensor,\n    k: torch.Tensor,\n) -> torch.Tensor:\n    logits_sort, logits_idx = logits.sort(dim=-1, descending=False)\n\n    # Apply top-k.\n    top_k_mask = logits_sort.size(1) - k.to(torch.long)\n    # Get all the top_k values.\n    top_k_mask = logits_sort.gather(1, top_k_mask.unsqueeze(dim=1))\n    top_k_mask = logits_sort < top_k_mask\n    logits_sort.masked_fill_(top_k_mask, -float(\"inf\"))\n\n    # Apply top-p.\n    probs_sort = logits_sort.softmax(dim=-1)\n    probs_sum = probs_sort.cumsum(dim=-1)\n    top_p_mask = probs_sum <= 1 - p.unsqueeze(dim=1)\n    # at least one\n    top_p_mask[:, -1] = False\n    logits_sort.masked_fill_(top_p_mask, -float(\"inf\"))\n\n    # Re-sort the probabilities.\n    src = torch.arange(logits_idx.shape[-1],\n                       device=logits_idx.device).expand_as(logits_idx)\n    logits_idx_inv = torch.empty_like(logits_idx).scatter_(dim=-1,\n                                                           index=logits_idx,\n                                                           src=src)\n    logits = torch.gather(logits_sort, dim=-1, index=logits_idx_inv)\n    return logits\n\n\ndef _apply_min_p(\n    logits: torch.Tensor,\n    min_p: torch.Tensor,\n) -> torch.Tensor:\n    \"\"\"\n    Adapted from\n    https://github.com/oobabooga/text-generation-webui/blob/3146124ec01f02c8fb1650a6517cf1b60b537aaf/modules/sampler_hijack.py#L16C17-L16C17\n    \"\"\"\n    probs = torch.softmax(logits, dim=-1)\n    top_probs, _ = probs.max(dim=-1, keepdim=True)\n    scaled_min_p = min_p.unsqueeze_(dim=1) * top_probs\n    tokens_to_remove = probs < scaled_min_p\n    logits = logits.masked_fill_(tokens_to_remove, -float(\"inf\"))\n\n    return logits\n\n\ndef _greedy_sample(\n    selected_seq_groups: List[Tuple[List[int], SamplingParams]],\n    samples: torch.Tensor,\n) -> List[Tuple[List[int], List[int]]]:\n    samples = samples.tolist()\n    sample_idx = 0\n    results = []\n    for seq_group in selected_seq_groups:\n        seq_ids, _ = seq_group\n        num_parent_seqs = len(seq_ids)\n        assert num_parent_seqs == 1, (\n            \"Greedy sampling should have only one seq.\")\n        parent_ids = list(range(num_parent_seqs))\n        next_token_ids = [samples[sample_idx]]\n        results.append((next_token_ids, parent_ids))\n        sample_idx += num_parent_seqs\n    return results\n\n\ndef _random_sample(\n    selected_seq_groups: List[Tuple[List[int], SamplingParams]],\n    is_prompts: List[bool],\n    random_samples: torch.Tensor,\n) -> List[Tuple[List[int], List[int]]]:\n    # Find the maximum best_of value of the prompt phase requests.\n    random_samples = random_samples.cpu()\n    sample_idx = 0\n    results = []\n    for seq_group, is_prompt in zip(selected_seq_groups, is_prompts):\n        seq_ids, sampling_params = seq_group\n        num_parent_seqs = len(seq_ids)\n        if is_prompt:\n            # Prompt phase.\n            parent_ids = [0] * sampling_params.best_of\n            next_token_ids = random_samples[\n                sample_idx, :sampling_params.best_of].tolist()\n        else:\n            # Generation phase.\n            parent_ids = list(range(num_parent_seqs))\n            next_token_ids = random_samples[sample_idx:sample_idx +\n                                            num_parent_seqs, 0].tolist()\n        results.append((next_token_ids, parent_ids))\n        sample_idx += num_parent_seqs\n    return results\n\n\ndef _beam_search_sample(\n    selected_seq_groups: List[Tuple[List[int], SamplingParams]],\n    is_prompts: List[bool],\n    seq_data: Dict[int, SequenceData],\n    logprobs: torch.Tensor,\n) -> List[Tuple[List[int], List[int]]]:\n    # We sample 2 * beam_width candidates to make sure that with high\n    # probability we can get `beam_width` candidates in addition to\n    # the finished sequences for the next iteration. See\n    # https://github.com/tensorflow/tensor2tensor/blob/bafdc1b67730430d38d6ab802cbd51f9d053ba2e/tensor2tensor/utils/beam_search.py#L557-L563\n    # for details. See also HF reference:\n    # https://github.com/huggingface/transformers/blob/a4dd53d88e4852f023332d284ff07a01afcd5681/src/transformers/generation/utils.py#L3063-L3065\n    #\n    # NOTE: Beam search is not vectorized, so its speed can be slower than\n    # other sampling methods.\n    sample_idx = 0\n    results = []\n    for seq_group, is_prompt in zip(selected_seq_groups, is_prompts):\n        seq_ids, sampling_params = seq_group\n        num_parent_seqs = len(seq_ids)\n        beam_width = sampling_params.best_of\n        seq_group_logprobs = logprobs[sample_idx:sample_idx + num_parent_seqs]\n        if is_prompt:\n            # Prompt phase.\n            assert num_parent_seqs == 1, (\n                \"Prompt input should have only one seq.\")\n            parent_ids = [0] * (2 * beam_width)\n            _, next_token_ids = torch.topk(seq_group_logprobs[0],\n                                           2 * beam_width)\n            next_token_ids = next_token_ids.tolist()\n        else:\n            # Generation phase.\n            cumulative_logprobs = [\n                seq_data[seq_id].cumulative_logprob for seq_id in seq_ids\n            ]\n            cumulative_logprobs = torch.tensor(\n                cumulative_logprobs,\n                dtype=torch.float,\n                device=seq_group_logprobs.device)\n            seq_group_logprobs = (seq_group_logprobs +\n                                  cumulative_logprobs.unsqueeze(dim=1))\n            _, topk_ids = torch.topk(seq_group_logprobs.flatten(),\n                                     2 * beam_width)\n            topk_ids = topk_ids.tolist()\n            vocab_size = seq_group_logprobs.size(-1)\n            parent_ids = [i // vocab_size for i in topk_ids]\n            next_token_ids = [i % vocab_size for i in topk_ids]\n        results.append((next_token_ids, parent_ids))\n        sample_idx += num_parent_seqs\n    assert sample_idx == logprobs.size(0)\n    return results\n\n\n# torch.multinomial forces a GPU<->CPU sync.\n# Therefore, we use an optimized implementation instead.\n# Note that we always sample with replacement.\n# probs will be modified in place, but this is fine, as we pass\n# in a copy already.\ndef _multinomial(\n    probs: torch.Tensor,\n    num_samples: int,\n    seq_groups: Optional[List[Tuple[List[int], SamplingParams]]] = None,\n    generators: Optional[List[torch.Generator]] = None,\n) -> torch.Tensor:\n    if num_samples > 1:\n        # This is equivalent to torch.repeat_interleaved (which also\n        # forces a GPU<->CPU sync).\n        # This allows us to do sampling with replacement by creating\n        # num_samples copies of each row in the tensor, and then\n        # batch sampling the resulting tensor.\n        probs = probs[:, None, :].expand(probs.shape[0], num_samples,\n                                         probs.shape[1]).contiguous().view(\n                                             -1, probs.shape[1])\n    q = torch.empty_like(probs)\n    if seq_groups is None:\n        q.exponential_()\n    else:\n        sample_idx = 0\n        for (seq_ids, _), generator in zip(seq_groups, generators):\n            next_sample_idx = sample_idx + len(seq_ids) * num_samples\n            q[sample_idx:next_sample_idx].exponential_(generator=generator)\n            sample_idx = next_sample_idx\n    return probs.div_(q).argmax(dim=1).view(-1, num_samples)\n\n\ndef _sample_with_torch(\n    probs: torch.Tensor,\n    logprobs: torch.Tensor,\n    sampling_metadata: SamplingMetadata,\n    include_gpu_probs_tensor: bool,\n    modify_greedy_probs: bool,\n) -> Tuple[List[Tuple[List[int], List[int]]], Optional[torch.Tensor]]:\n    categorized_seq_group_ids = {t: [] for t in SamplingType}\n    categorized_sample_indices = sampling_metadata.categorized_sample_indices\n    for i, seq_group in enumerate(sampling_metadata.seq_groups):\n        _, sampling_params = seq_group\n        sampling_type = sampling_params.sampling_type\n        categorized_seq_group_ids[sampling_type].append(i)\n\n    sample_results_dict: Dict[int, Tuple[List[int], List[int]]] = {}\n    sample_metadata = {}\n    multinomial_samples = {}\n\n    # Create output tensor for sampled token ids.\n    if include_gpu_probs_tensor:\n        sampled_token_ids_tensor = torch.empty(logprobs.shape[0],\n                                               1,\n                                               dtype=torch.long,\n                                               device=logprobs.device)\n    else:\n        sampled_token_ids_tensor = None\n\n    # Counterintiutively, having two loops here is actually faster.\n    # The first loop can run without waiting on GPU<->CPU sync.\n    for sampling_type in SamplingType:\n        sample_indices = categorized_sample_indices[sampling_type][:, 0]\n        num_tokens = len(sample_indices)\n        if num_tokens == 0:\n            continue\n        seq_group_ids = categorized_seq_group_ids[sampling_type]\n        seq_groups = [sampling_metadata.seq_groups[i] for i in seq_group_ids]\n        is_prompts = [i < sampling_metadata.num_prompts for i in seq_group_ids]\n        sample_metadata[sampling_type] = (seq_group_ids, seq_groups,\n                                          is_prompts, sample_indices)\n        long_sample_indices = sample_indices.long()\n\n        if sampling_type == SamplingType.GREEDY:\n            greedy_samples = torch.argmax(logprobs[long_sample_indices],\n                                          dim=-1)\n\n            if include_gpu_probs_tensor:\n                # Store sampled tokens in output tensor.\n                sampled_token_ids_tensor[\n                    long_sample_indices] = greedy_samples.unsqueeze(-1)\n\n            if modify_greedy_probs:\n                # If required, modify the probabilities such that sampling from\n                # the modified distribution would always sample the argmax\n                # token id.\n                _modify_greedy_probs_inplace(logprobs, probs,\n                                             long_sample_indices,\n                                             greedy_samples)\n\n        elif sampling_type in (SamplingType.RANDOM, SamplingType.RANDOM_SEED):\n            max_best_of_in_batch = 1\n            for seq_group, is_prompt in zip(seq_groups, is_prompts):\n                if is_prompt:\n                    _, sampling_params = seq_group\n                    max_best_of_in_batch = max(max_best_of_in_batch,\n                                               sampling_params.best_of)\n            seeded_args = {} if sampling_type == SamplingType.RANDOM else {\n                \"seq_groups\": seq_groups,\n                \"generators\": sampling_metadata.generators,\n            }\n\n            multinomial_samples[sampling_type] = _multinomial(\n                probs[long_sample_indices], max_best_of_in_batch,\n                **seeded_args)\n\n            if include_gpu_probs_tensor:\n                # Store sampled tokens in output tensor.\n                sampled_token_ids_tensor[\n                    long_sample_indices] = multinomial_samples[sampling_type]\n\n        elif sampling_type == SamplingType.BEAM:\n            beam_search_logprobs = logprobs[sample_indices]\n        else:\n            raise ValueError(f\"Unsupported sampling type: {sampling_type}\")\n\n    # GPU<->CPU sync happens in the loop below.\n    # This also converts the sample output to Python objects.\n\n    for sampling_type in SamplingType:\n        if sampling_type not in sample_metadata:\n            continue\n        seq_group_ids, seq_groups, is_prompts, sample_indices = sample_metadata[\n            sampling_type]\n        if sampling_type == SamplingType.GREEDY:\n            sample_results = _greedy_sample(seq_groups, greedy_samples)\n        elif sampling_type in (SamplingType.RANDOM, SamplingType.RANDOM_SEED):\n            sample_results = _random_sample(seq_groups, is_prompts,\n                                            multinomial_samples[sampling_type])\n        elif sampling_type == SamplingType.BEAM:\n            sample_results = _beam_search_sample(seq_groups, is_prompts,\n                                                 sampling_metadata.seq_data,\n                                                 beam_search_logprobs)\n        sample_results_dict.update(zip(seq_group_ids, sample_results))\n\n    sample_results = [\n        sample_results_dict[i]\n        for i in range(len(sampling_metadata.seq_groups))\n    ]\n    return sample_results, sampled_token_ids_tensor\n\n\ndef _sample_with_triton_kernel(\n    probs: torch.Tensor,\n    logprobs: torch.Tensor,\n    sampling_metadata: SamplingMetadata,\n    sampling_tensors: SamplingTensors,\n) -> List[Tuple[List[int], List[int]]]:\n    categorized_seq_group_ids = {t: [] for t in SamplingType}\n    categorized_sample_indices = sampling_metadata.categorized_sample_indices\n    for i, seq_group in enumerate(sampling_metadata.seq_groups):\n        _, sampling_params = seq_group\n        sampling_type = sampling_params.sampling_type\n        categorized_seq_group_ids[sampling_type].append(i)\n\n    sample_results_dict: Dict[int, Tuple[List[int], List[int]]] = {}\n    sample_metadata = {}\n    max_best_of_in_batch = 1\n\n    # Counterintiutively, having two loops here is actually faster.\n    # The first loop can run without waiting on GPU<->CPU sync.\n    for sampling_type in SamplingType:\n        sample_indices = categorized_sample_indices[sampling_type][:, 0]\n        sampled_token_indices = categorized_sample_indices[sampling_type][:, 1]\n        num_tokens = len(sample_indices)\n        if num_tokens == 0:\n            continue\n        seq_group_ids = categorized_seq_group_ids[sampling_type]\n        seq_groups = [sampling_metadata.seq_groups[i] for i in seq_group_ids]\n        is_prompts = [i < sampling_metadata.num_prompts for i in seq_group_ids]\n        sample_metadata[sampling_type] = (seq_group_ids, seq_groups,\n                                          is_prompts, sample_indices,\n                                          sampled_token_indices)\n        if sampling_type in (SamplingType.GREEDY, SamplingType.RANDOM,\n                             SamplingType.RANDOM_SEED):\n            for seq_group, is_prompt in zip(seq_groups, is_prompts):\n                if is_prompt:\n                    _, sampling_params = seq_group\n                    max_best_of_in_batch = max(max_best_of_in_batch,\n                                               sampling_params.best_of)\n        elif sampling_type == SamplingType.BEAM:\n            beam_search_logprobs = logprobs[sample_indices]\n        else:\n            raise ValueError(f\"Unsupported sampling type: {sampling_type}\")\n\n    sampled_tokens, _, _ = sample_triton(\n        probs=probs,\n        seeds=sampling_tensors.sampling_seeds,\n        max_best_of=max_best_of_in_batch,\n        sample_indices=sampling_tensors.sample_indices,\n        logprobs=logprobs,\n        # don't save logprobs because we have logic for that below\n        # TODO: use this instead of the CPU-based logic below\n        save_logprobs=False,\n    )\n\n    # GPU<->CPU sync happens in the loop below.\n\n    for sampling_type in SamplingType:\n        if sampling_type not in sample_metadata:\n            continue\n        (seq_group_ids, seq_groups, is_prompts, sample_indices,\n         sampled_token_indices) = sample_metadata[sampling_type]\n        if sampling_type == SamplingType.GREEDY:\n            sample_results = _greedy_sample(\n                seq_groups, sampled_tokens[sampled_token_indices][:, 0])\n        elif sampling_type in (SamplingType.RANDOM, SamplingType.RANDOM_SEED):\n            sample_results = _random_sample(\n                seq_groups, is_prompts, sampled_tokens[sampled_token_indices])\n        elif sampling_type == SamplingType.BEAM:\n            sample_results = _beam_search_sample(seq_groups, is_prompts,\n                                                 sampling_metadata.seq_data,\n                                                 beam_search_logprobs)\n        sample_results_dict.update(zip(seq_group_ids, sample_results))\n\n    sample_results = [\n        sample_results_dict[i]\n        for i in range(len(sampling_metadata.seq_groups))\n    ]\n    return sample_results\n\n\ndef _sample(\n    probs: torch.Tensor, logprobs: torch.Tensor,\n    sampling_metadata: SamplingMetadata, sampling_tensors: SamplingTensors,\n    include_gpu_probs_tensor: bool, modify_greedy_probs: bool\n) -> Tuple[List[Tuple[List[int], List[int]]], Optional[torch.Tensor]]:\n    return _sample_with_torch(\n        probs,\n        logprobs,\n        sampling_metadata,\n        include_gpu_probs_tensor=include_gpu_probs_tensor,\n        modify_greedy_probs=modify_greedy_probs,\n    )\n\n    # TODO: Enable once Triton kernel & associated code is faster.\n    # return _sample_with_triton_kernel(probs, logprobs, sampling_metadata,\n    #                                   sampling_tensors)\n\n\ndef _get_ranks(x: torch.Tensor, indices: torch.Tensor) -> torch.Tensor:\n    \"\"\"\n    This function calculates the ranks of the chosen tokens in a logprob tensor.\n\n    Args:\n        x (torch.Tensor): 2D logprob tensor of shape (N, M)\n                        where N is the no. of tokens and M is the vocab dim.\n        indices (torch.Tensor): List of chosen token indices.\n\n    Returns:\n        torch.Tensor: 1D tensor of shape (N,) where N is the no. of tokens.\n                    Each element in the returned tensor represents the rank \n                    of the chosen token in the input logprob tensor.\n    \"\"\"\n    vals = x[torch.arange(0, len(x), device=x.device, dtype=indices.dtype),\n             indices]\n    return (x > vals[:, None]).long().sum(1).add_(1)\n\n\ndef _get_logprobs(\n    logprobs: torch.Tensor,\n    sampling_metadata: SamplingMetadata,\n    sample_results: List[Tuple[List[int], List[int]]],\n) -> Tuple[List[Optional[List[Optional[Dict[int, float]]]]], List[List[Dict[\n        int, float]]]]:\n    # Prepare query indices\n    batched_logprobs_query_seq_indices: List[int] = []\n    batched_logprobs_query_token_indices: List[int] = []\n    # at least get one logprob for each token\n    largest_num_logprobs = 1\n    sample_idx = 0\n    for i, (seq_group, sample_result) in enumerate(\n            zip(sampling_metadata.seq_groups, sample_results)):\n        seq_ids, sampling_params = seq_group\n        next_token_ids, parent_ids = sample_result\n        num_parent_seqs = len(seq_ids)\n        if (i < sampling_metadata.num_prompts\n                and sampling_params.prompt_logprobs is not None):\n            largest_num_logprobs = max(largest_num_logprobs,\n                                       sampling_params.prompt_logprobs)\n            prompt_len = sampling_metadata.prompt_lens[i]\n            prompt_tokens = sampling_metadata.seq_data[\n                seq_ids[0]].prompt_token_ids\n            batched_logprobs_query_seq_indices.extend(\n                sample_idx + j for j in range(prompt_len - 1))\n            batched_logprobs_query_token_indices.extend(\n                token_id for token_id in prompt_tokens[1:])\n            sample_idx += prompt_len - 1\n        batched_logprobs_query_seq_indices.extend(\n            [sample_idx + parent_id for parent_id in parent_ids])\n        batched_logprobs_query_token_indices.extend(next_token_ids)\n        if sampling_params.logprobs is not None:\n            largest_num_logprobs = max(largest_num_logprobs,\n                                       sampling_params.logprobs)\n        sample_idx += num_parent_seqs\n    assert sample_idx == logprobs.size(0)\n\n    batched_logprobs_query_seq_indices_gpu = torch.tensor(\n        batched_logprobs_query_seq_indices, device=logprobs.device)\n    batched_logprobs_query_token_indices_gpu = torch.tensor(\n        batched_logprobs_query_token_indices, device=logprobs.device)\n\n    # Batched query for logprobs of selected token\n    batched_logprobs_query_result = logprobs[[\n        batched_logprobs_query_seq_indices_gpu,\n        batched_logprobs_query_token_indices_gpu\n    ]]\n\n    batched_ranks_query_result = _get_ranks(\n        logprobs[batched_logprobs_query_seq_indices_gpu],\n        batched_logprobs_query_token_indices_gpu)\n\n    # Batched query for logprobs of topk tokens\n    if largest_num_logprobs > 0:\n        top_logprobs, top_token_ids = torch.topk(logprobs,\n                                                 largest_num_logprobs,\n                                                 dim=-1)\n        top_logprobs = top_logprobs.cpu()\n        top_token_ids = top_token_ids.cpu()\n    else:\n        top_logprobs, top_token_ids = None, None\n\n    batched_logprobs_query_result = batched_logprobs_query_result.cpu()\n    batched_ranks_query_result = batched_ranks_query_result.cpu()\n\n    # Gather results\n    result_prompt_logprobs: List[Optional[PromptLogprobs]] = []\n    result_sample_logprobs: List[SampleLogprobs] = []\n    sample_idx = 0\n    query_result_idx = 0\n    for i, (seq_group, sample_result) in enumerate(\n            zip(sampling_metadata.seq_groups, sample_results)):\n        seq_ids, sampling_params = seq_group\n        next_token_ids, parent_ids = sample_result\n\n        # Prompt logprobs\n        if (i < sampling_metadata.num_prompts\n                and sampling_params.prompt_logprobs is not None):\n            num_logprobs = sampling_params.prompt_logprobs\n            prompt_tokens = sampling_metadata.seq_data[\n                seq_ids[0]].prompt_token_ids\n            group_prompt_logprobs: PromptLogprobs = [None]\n            for token_id in prompt_tokens[1:]:\n                prompt_logprobs_dict = {\n                    token_id:\n                    (batched_logprobs_query_result[query_result_idx].item(),\n                     batched_ranks_query_result[query_result_idx].item())\n                }\n                if num_logprobs > 0:\n                    prompt_logprobs_dict.update(\n                        zip(\n                            top_token_ids[sample_idx, :num_logprobs].tolist(),\n                            zip(\n                                top_logprobs[\n                                    sample_idx, :num_logprobs].tolist(),\n                                range(1, num_logprobs + 1))))\n                group_prompt_logprobs.append({\n                    token_id: Logprob(*logprob_rank)\n                    for token_id, logprob_rank in prompt_logprobs_dict.items()\n                })\n                sample_idx += 1\n                query_result_idx += 1\n            result_prompt_logprobs.append(group_prompt_logprobs)\n        else:\n            result_prompt_logprobs.append(None)\n\n        # Sample logprobs\n        num_logprobs = sampling_params.logprobs\n        if num_logprobs is None:\n            num_logprobs = 0\n        group_sample_logprobs: SampleLogprobs = []\n        for next_token_id, parent_id in zip(next_token_ids, parent_ids):\n            sample_logprobs_dict = {\n                next_token_id:\n                (batched_logprobs_query_result[query_result_idx].item(),\n                 batched_ranks_query_result[query_result_idx].item())\n            }\n            query_result_idx += 1\n            if num_logprobs >= 0:\n                sample_logprobs_dict.update(\n                    zip(\n                        top_token_ids[sample_idx +\n                                      parent_id, :num_logprobs].tolist(),\n                        zip(\n                            top_logprobs[sample_idx +\n                                         parent_id, :num_logprobs].tolist(),\n                            range(1, num_logprobs + 1))))\n            group_sample_logprobs.append({\n                token_id: Logprob(*logprob_rank)\n                for token_id, logprob_rank in sample_logprobs_dict.items()\n            })\n        result_sample_logprobs.append(group_sample_logprobs)\n        sample_idx += len(seq_ids)\n\n    return result_prompt_logprobs, result_sample_logprobs\n\n\ndef _modify_greedy_probs_inplace(logprobs: torch.Tensor, probs: torch.Tensor,\n                                 sample_indices: torch.Tensor,\n                                 greedy_samples: torch.Tensor) -> None:\n    \"\"\"Modify the probability distributions of the greedily-sampled tokens such\n    that each sampled token has a \"probability\" of 1.0. This is required by\n    speculative decoding, which depends on the sampling method being encoded\n    within the probability distribution for correctness.\n\n    # Why do we only need to do this for greedy sampling?\n\n    vLLM's sampler performs the following steps for greedy or multinomial\n    (random) sampling:\n        1. Get logits from model.\n        2. Modify logits according to per-sequence sampling parameters.\n            - Multiply by temperature, top-k and top-p masking, penalize tokens\n                according to their frequency, etc.\n        3. Sample a token.\n            - Random sampling simply samples from the modified probability\n                distribution.\n            - Greedy sampling performs `argmax` to obtain the token with the\n                highest likelihood.\n    \n    Ignoring greedy sampling for a moment, we find that the computed probability\n    distribution has the following property: we can sample from it independently\n    and find that the token sampled by the Sampler has a frequency corresponding\n    to how often we see it in our sampling. In other words, for tokens sampled\n    with vLLM's random SamplingType, the computed probability distribution\n    encodes the sampling methodology completely.\n\n    Greedy sampling does not normally have this property. vLLM modifies logits\n    according to sampling params, then performs `argmax`, then returns the\n    sampled token and the computed probability distribution. If we sample from\n    the distribution, we'll find the likelihood of the greedily-sampled token\n    is not always 1.0.\n\n    Since lossless speculative decoding requires that the sampling methodology\n    be encoded within the probability distribution, we are motivated to modify\n    the probability distribution such that the sampled token has probability 1\n    when speculative decoding is used.\n\n    NOTE: Alternatively, we could use an extremely low temperature to achieve\n    greedy sampling using multinomial computation and unite the codepaths. This\n    has implications on the overall design of the sampler, e.g. how to record\n    accurate logprobs for the user, so this improvement is deferred to later.\n    \"\"\"\n    logprobs[sample_indices, :] = -float('inf')\n    logprobs[sample_indices, greedy_samples] = 0.0\n    probs[sample_indices, :] = 0\n    probs[sample_indices, greedy_samples] = 1.0\n\n\ndef _build_sampler_output(\n    sample_results: List[Tuple[List[int], List[int]]],\n    sampling_metadata: SamplingMetadata,\n    prompt_logprobs: List[Optional[PromptLogprobs]],\n    sample_logprobs: List[SampleLogprobs],\n    on_device_tensors: Optional[Tuple[torch.Tensor, torch.Tensor]],\n) -> SamplerOutput:\n    \"\"\"Construct Python objects with the output of sampling.\n\n    Args:\n        on_device_tensors: Tuple containing on-device tensors with the\n            probabilities used in sampling and the sampled token ids. This\n            allows post-processing without copies to CPU/serialization, e.g. in\n            speculative decoding rejection sampling.\n    \"\"\"\n\n    sampler_output = []\n    for (seq_group, sample_result, group_prompt_logprobs,\n         group_sample_logprobs) in zip(sampling_metadata.seq_groups,\n                                       sample_results, prompt_logprobs,\n                                       sample_logprobs):\n        seq_ids, _ = seq_group\n        next_token_ids, parent_ids = sample_result\n        seq_outputs = []\n        for parent_id, next_token_id, logprobs in zip(parent_ids,\n                                                      next_token_ids,\n                                                      group_sample_logprobs):\n            seq_outputs.append(\n                SequenceOutput(seq_ids[parent_id], next_token_id, logprobs))\n        sampler_output.append(\n            SequenceGroupOutput(seq_outputs, group_prompt_logprobs))\n\n    # If not specified, store None values in SamplerOutput.\n    if on_device_tensors is not None:\n        sampled_token_probs, sampled_token_ids = on_device_tensors\n    else:\n        sampled_token_probs, sampled_token_ids = (None, None)\n\n    return SamplerOutput(\n        outputs=sampler_output,\n        sampled_token_probs=sampled_token_probs,\n        sampled_token_ids=sampled_token_ids,\n    )\n"
  },
  {
    "path": "autoregressive/serve/worker.py",
    "content": "\"\"\"A GPU worker class.\"\"\"\nimport gc\nimport os\nfrom typing import Any, Dict, List, Optional, Set, Tuple\n\nimport torch\nimport torch.distributed\n\nfrom vllm.config import (CacheConfig, DeviceConfig, LoadConfig, LoRAConfig,\n                         ModelConfig, ParallelConfig, SchedulerConfig,\n                         VisionLanguageConfig)\nfrom vllm.distributed import (broadcast_tensor_dict,\n                              ensure_model_parallel_initialized,\n                              init_distributed_environment)\nfrom vllm.distributed.device_communicators import pynccl_utils\nfrom vllm.distributed.device_communicators.custom_all_reduce import (\n    init_custom_ar)\nfrom vllm.lora.request import LoRARequest\nfrom vllm.model_executor import set_random_seed\nfrom vllm.sequence import SamplerOutput, SequenceGroupMetadata\nfrom vllm.worker.cache_engine import CacheEngine\n# from vllm.worker.model_runner import ModelRunner\nfrom vllm.worker.worker_base import WorkerBase\nfrom autoregressive.serve.model_runner import ModelRunner\n\n\nclass Worker(WorkerBase):\n    \"\"\"A worker class that executes (a partition of) the model on a GPU.\n\n    Each worker is associated with a single GPU. The worker is responsible for\n    maintaining the KV cache and executing the model on the GPU. In case of\n    distributed inference, each worker is assigned a partition of the model.\n    \"\"\"\n\n    def __init__(\n        self,\n        model_config: ModelConfig,\n        parallel_config: ParallelConfig,\n        scheduler_config: SchedulerConfig,\n        device_config: DeviceConfig,\n        cache_config: CacheConfig,\n        load_config: LoadConfig,\n        local_rank: int,\n        rank: int,\n        distributed_init_method: str,\n        lora_config: Optional[LoRAConfig] = None,\n        vision_language_config: Optional[VisionLanguageConfig] = None,\n        is_driver_worker: bool = False,\n    ) -> None:\n        self.model_config = model_config\n        self.parallel_config = parallel_config\n        self.scheduler_config = scheduler_config\n        self.device_config = device_config\n        self.cache_config = cache_config\n        self.local_rank = local_rank\n        self.rank = rank\n        self.distributed_init_method = distributed_init_method\n        self.lora_config = lora_config\n        self.load_config = load_config\n        self.is_driver_worker = is_driver_worker\n        if self.is_driver_worker:\n            assert self.rank == 0, \"The driver worker must have rank 0.\"\n\n        if self.model_config.trust_remote_code:\n            # note: lazy import to avoid importing torch before initializing\n            from vllm.utils import init_cached_hf_modules\n            init_cached_hf_modules()\n        self.vision_language_config = vision_language_config\n        if self.vision_language_config:\n            assert not self.lora_config, (\n                \"To be tested: vision language model with LoRA settings.\")\n\n        self.model_runner = ModelRunner(\n            model_config,\n            parallel_config,\n            scheduler_config,\n            device_config,\n            load_config=load_config,\n            lora_config=self.lora_config,\n            kv_cache_dtype=self.cache_config.cache_dtype,\n            is_driver_worker=is_driver_worker,\n            vision_language_config=vision_language_config,\n        )\n        # Uninitialized cache engine. Will be initialized by\n        # initialize_cache.\n        self.cache_engine: CacheEngine\n        self.gpu_cache: List[torch.Tensor]\n\n    def init_device(self) -> None:\n        if self.device_config.device.type == \"cuda\":\n            # torch.distributed.all_reduce does not free the input tensor until\n            # the synchronization point. This causes the memory usage to grow\n            # as the number of all_reduce calls increases. This env var disables\n            # this behavior.\n            # Related issue:\n            # https://discuss.pytorch.org/t/cuda-allocation-lifetime-for-inputs-to-distributed-all-reduce/191573\n            os.environ[\"TORCH_NCCL_AVOID_RECORD_STREAMS\"] = \"1\"\n\n            # This env var set by Ray causes exceptions with graph building.\n            os.environ.pop(\"NCCL_ASYNC_ERROR_HANDLING\", None)\n            self.device = torch.device(f\"cuda:{self.local_rank}\")\n            torch.cuda.set_device(self.device)\n\n            _check_if_gpu_supports_dtype(self.model_config.dtype)\n            torch.cuda.empty_cache()\n            self.init_gpu_memory = torch.cuda.mem_get_info()[0]\n        else:\n            raise RuntimeError(\n                f\"Not support device type: {self.device_config.device}\")\n        # Initialize the distributed environment.\n        init_worker_distributed_environment(self.parallel_config, self.rank,\n                                            self.distributed_init_method,\n                                            self.local_rank)\n        # Set random seed.\n        set_random_seed(self.model_config.seed)\n\n    def load_model(self, args):\n        self.model_runner.load_model(args)\n\n    @torch.inference_mode()\n    def determine_num_available_blocks(self) -> Tuple[int, int]:\n        \"\"\"Profiles the peak memory usage of the model to determine how many\n        KV blocks may be allocated without OOMs.\n\n        The engine will first conduct a profiling of the existing memory usage.\n        Then, it calculate the maximum possible number of GPU and CPU blocks\n        that can be allocated with the remaining free memory.\n\n        .. tip::\n            You may limit the usage of GPU memory\n            by adjusting the `gpu_memory_utilization` parameter.\n        \"\"\"\n        # Profile the memory usage of the model and get the maximum number of\n        # cache blocks that can be allocated with the remaining free memory.\n        torch.cuda.empty_cache()\n\n        # Execute a forward pass with dummy inputs to profile the memory usage\n        # of the model.\n        self.model_runner.profile_run()\n\n        # Calculate the number of blocks that can be allocated with the\n        # profiled peak memory.\n        torch.cuda.synchronize()\n        free_gpu_memory, total_gpu_memory = torch.cuda.mem_get_info()\n        # NOTE(woosuk): Here we assume that the other processes using the same\n        # GPU did not change their memory usage during the profiling.\n        peak_memory = self.init_gpu_memory - free_gpu_memory\n        assert peak_memory > 0, (\n            \"Error in memory profiling. This happens when the GPU memory was \"\n            \"not properly cleaned up before initializing the vLLM instance.\")\n\n        cache_block_size = self.get_cache_block_size_bytes()\n        num_gpu_blocks = int(\n            (total_gpu_memory * self.cache_config.gpu_memory_utilization -\n             peak_memory) // cache_block_size)\n        num_cpu_blocks = int(self.cache_config.swap_space_bytes //\n                             cache_block_size)\n        num_gpu_blocks = max(num_gpu_blocks, 0)\n        num_cpu_blocks = max(num_cpu_blocks, 0)\n        if self.model_runner.lora_manager:\n            self.model_runner.remove_all_loras()\n        gc.collect()\n        torch.cuda.empty_cache()\n        return num_gpu_blocks, num_cpu_blocks\n\n    def initialize_cache(self, num_gpu_blocks: int,\n                         num_cpu_blocks: int) -> None:\n        \"\"\"Allocate GPU and CPU KV cache with the specified number of blocks.\n\n        This also warms up the model, which may record CUDA graphs.\n        \"\"\"\n        raise_if_cache_size_invalid(num_gpu_blocks,\n                                    self.cache_config.block_size,\n                                    self.model_config.max_model_len)\n\n        self.cache_config.num_gpu_blocks = num_gpu_blocks\n        self.cache_config.num_cpu_blocks = num_cpu_blocks\n\n        self._init_cache_engine()\n        self._warm_up_model()\n\n    def _init_cache_engine(self):\n        assert self.cache_config.num_gpu_blocks is not None\n        self.cache_engine = CacheEngine(self.cache_config, self.model_config,\n                                        self.parallel_config)\n        self.gpu_cache = self.cache_engine.gpu_cache\n        self.model_runner.set_block_size(self.cache_engine.block_size)\n\n    def _warm_up_model(self) -> None:\n        if not self.model_config.enforce_eager:\n            self.model_runner.capture_model(self.gpu_cache)\n        # Reset the seed to ensure that the random state is not affected by\n        # the model initialization and profiling.\n        set_random_seed(self.model_config.seed)\n\n    def cache_swap(\n        self,\n        blocks_to_swap_in: Dict[int, int],\n        blocks_to_swap_out: Dict[int, int],\n        blocks_to_copy: Dict[int, List[int]],\n    ) -> None:\n        # Issue cache operations.\n        # TODO(woosuk): Profile swapping overhead and optimize if needed.\n        if blocks_to_swap_in:\n            self.cache_engine.swap_in(blocks_to_swap_in)\n        if blocks_to_swap_out:\n            self.cache_engine.swap_out(blocks_to_swap_out)\n        if blocks_to_copy:\n            self.cache_engine.copy(blocks_to_copy)\n\n    @torch.inference_mode()\n    def execute_model(\n        self,\n        seq_group_metadata_list: Optional[List[SequenceGroupMetadata]] = None,\n        blocks_to_swap_in: Optional[Dict[int, int]] = None,\n        blocks_to_swap_out: Optional[Dict[int, int]] = None,\n        blocks_to_copy: Optional[Dict[int, List[int]]] = None,\n        num_lookahead_slots: int = 0,\n    ) -> List[SamplerOutput]:\n\n        if self.is_driver_worker:\n            assert seq_group_metadata_list is not None\n            num_seq_groups = len(seq_group_metadata_list)\n            assert blocks_to_swap_in is not None\n            assert blocks_to_swap_out is not None\n            assert blocks_to_copy is not None\n            data: Dict[str, Any] = {\n                \"num_seq_groups\": num_seq_groups,\n                \"blocks_to_swap_in\": blocks_to_swap_in,\n                \"blocks_to_swap_out\": blocks_to_swap_out,\n                \"blocks_to_copy\": blocks_to_copy,\n            }\n            broadcast_tensor_dict(data, src=0)\n        else:\n            data = broadcast_tensor_dict(src=0)\n            num_seq_groups = data[\"num_seq_groups\"]\n            blocks_to_swap_in = data[\"blocks_to_swap_in\"]\n            blocks_to_swap_out = data[\"blocks_to_swap_out\"]\n            blocks_to_copy = data[\"blocks_to_copy\"]\n\n        assert blocks_to_swap_in is not None\n        assert blocks_to_swap_out is not None\n        assert blocks_to_copy is not None\n        self.cache_swap(blocks_to_swap_in, blocks_to_swap_out, blocks_to_copy)\n\n        # If there is no input, we don't need to execute the model.\n        if num_seq_groups == 0:\n            return []\n\n        output = self.model_runner.execute_model(seq_group_metadata_list,\n                                                 self.gpu_cache)\n\n        # Worker only supports single-step execution. Wrap the output in a list\n        # to conform to interface.\n        return [output]\n\n    def add_lora(self, lora_request: LoRARequest) -> bool:\n        return self.model_runner.add_lora(lora_request)\n\n    def remove_lora(self, lora_id: int) -> bool:\n        return self.model_runner.remove_lora(lora_id)\n\n    def list_loras(self) -> Set[int]:\n        return self.model_runner.list_loras()\n\n    @property\n    def max_model_len(self) -> int:\n        return self.model_config.max_model_len\n\n    @property\n    def vocab_size(self) -> int:\n        return self.model_runner.vocab_size\n\n    def get_cache_block_size_bytes(self) -> int:\n        \"\"\"Get the size of the KV cache block size in bytes.\n        \"\"\"\n        return CacheEngine.get_cache_block_size(self.cache_config,\n                                                self.model_config,\n                                                self.parallel_config)\n\n\ndef init_worker_distributed_environment(\n    parallel_config: ParallelConfig,\n    rank: int,\n    distributed_init_method: Optional[str] = None,\n    local_rank: int = -1,\n) -> None:\n    \"\"\"Initialize the distributed environment.\"\"\"\n    init_distributed_environment(parallel_config.world_size, rank,\n                                 distributed_init_method, local_rank)\n\n    if pynccl_utils.is_initialized():\n        pynccl_world_size = pynccl_utils.get_world_size()\n        if pynccl_world_size != parallel_config.world_size:\n            raise RuntimeError(\n                \"pynccl is already initialized but the pynccl world \"\n                \"size does not match parallel_config.world_size \"\n                f\"({pynccl_world_size} vs. {parallel_config.world_size}).\")\n    elif parallel_config.world_size > 1:\n        # NOTE(woosuk): We don't initialize pynccl process group when world size\n        # is 1.\n        pynccl_utils.init_process_group(\n            world_size=parallel_config.world_size,\n            local_rank=local_rank,\n            rank=rank,\n            init_method=distributed_init_method,\n        )\n\n    ensure_model_parallel_initialized(parallel_config.tensor_parallel_size,\n                                      parallel_config.pipeline_parallel_size)\n\n    # Initialize a custom fast all-reduce implementation.\n    if not parallel_config.disable_custom_all_reduce:\n        init_custom_ar()\n\n    # A small all_reduce for warmup.\n    torch.distributed.all_reduce(torch.zeros(1).cuda())\n    if pynccl_utils.is_initialized():\n        pynccl_utils.all_reduce(torch.zeros(1).cuda())\n\n\ndef _check_if_gpu_supports_dtype(torch_dtype: torch.dtype):\n    # Check if the GPU supports the dtype.\n    if torch_dtype == torch.bfloat16:\n        compute_capability = torch.cuda.get_device_capability()\n        if compute_capability[0] < 8:\n            gpu_name = torch.cuda.get_device_name()\n            raise ValueError(\n                \"Bfloat16 is only supported on GPUs with compute capability \"\n                f\"of at least 8.0. Your {gpu_name} GPU has compute capability \"\n                f\"{compute_capability[0]}.{compute_capability[1]}. \"\n                \"You can use float16 instead by explicitly setting the\"\n                \"`dtype` flag in CLI, for example: --dtype=half.\")\n\n\ndef raise_if_cache_size_invalid(num_gpu_blocks, block_size,\n                                max_model_len) -> None:\n    if num_gpu_blocks <= 0:\n        raise ValueError(\"No available memory for the cache blocks. \"\n                         \"Try increasing `gpu_memory_utilization` when \"\n                         \"initializing the engine.\")\n    max_seq_len = block_size * num_gpu_blocks\n    if max_model_len > max_seq_len:\n        raise ValueError(\n            f\"The model's max seq len ({max_model_len}) \"\n            \"is larger than the maximum number of tokens that can be \"\n            f\"stored in KV cache ({max_seq_len}). Try increasing \"\n            \"`gpu_memory_utilization` or decreasing `max_model_len` when \"\n            \"initializing the engine.\")"
  },
  {
    "path": "autoregressive/test/metric.py",
    "content": "import numpy as np\nfrom skimage.metrics import structural_similarity as ssim\nfrom sklearn.metrics import f1_score\nfrom torchmetrics.image import MultiScaleStructuralSimilarityIndexMeasure\nfrom torchmetrics.classification import BinaryF1Score\n\nclass SSIM:\n    def __init__(self, data_range=1.0):\n        ssim = MultiScaleStructuralSimilarityIndexMeasure(data_range=1.0)#.to(device)\n        self.total_ssim = 0.0\n        self.count = 0\n    def update(self, img1, img2):\n        ssim_value = ssim((img1/255).clip(0,1), (img2/255).clip(0,1), data_range=1.0)\n        self.total_ssim += ssim_value\n        self.count += 1\n\n    def calculate(self):\n        if self.count == 0:\n            raise ValueError(\"No images have been added.\")\n        return self.total_ssim / self.count   \n        \n        \n        \nclass F1score:\n    def __init__(self, threshold=128):\n        self.threshold = threshold\n        self.total_f1 = 0\n        self.count = 0\n\n    def update(self, img1, img2):\n        \n        assert img1.size == img2.size, \"The images must be the same size.\"\n    \n        binary_image1 = (img1 > self.threshold).astype(int)\n        binary_image2 = (img2 > self.threshold).astype(int)\n\n        y_true = binary_image1.flatten()\n        y_pred = binary_image2.flatten()\n\n        f1 = f1_score(y_true, y_pred)\n\n        self.total_f1 += f1\n        self.count += 1\n\n    def calculate(self):\n        average_f1 = self.total_f1 / self.count\n        return average_f1\n\nclass RMSE:\n    def __init__(self):\n        self.total_rmse = 0\n        self.count = 0\n\n    def update(self, img1, img2):\n        \n        assert img1.size == img2.size, \"The images must be the same size.\"\n        diff = img1 - img2\n        diff_squared = np.square(diff)\n        mse = np.mean(diff_squared)\n        rmse = np.sqrt(mse)\n        self.total_rmse += rmse\n        self.count += 1\n\n    def calculate(self):\n        average_f1 = self.total_rmse / self.count\n        return average_f1\n\n\n\n\n\nif __name__ == \"__main__\":\n    img1_1 = np.random.randn(256,256)\n    img1_1 = img1_1 - img1_1.min()\n    img1_1 = 255*img1_1/img1_1.max()\n    img1_1 = img1_1.astype(np.uint8)\n    img1_2 = np.random.randn(256,256)\n    img1_2 = img1_2 - img1_2.min()\n    img1_2 = 255*img1_2/img1_2.max()\n    img1_2 = img1_2.astype(np.uint8)\n    img2_1 = np.random.randn(256,256)\n    img2_1 = img2_1 - img2_1.min()\n    img2_1 = 255*img2_1/img2_1.max()\n    img2_1 = img2_1.astype(np.uint8)\n    img2_2 = np.random.randn(256,256)\n    img2_2 = img2_2 - img2_2.min()\n    img2_2 = 255*img2_2/img2_2.max()\n    img2_2 = img2_2.astype(np.uint8)\n    img_pairs = [(img1_1, img2_1), (img1_2, img2_2)]\n    \n    calculator = AverageSSIMCalculator()\n    \n    for img1, img2 in img_pairs:\n        calculator.add_images(img1, img2)\n    \n    avg_ssim = calculator.calculate_average_ssim()\n    print(f'Average SSIM: {avg_ssim}')"
  },
  {
    "path": "autoregressive/test/test_c2i.py",
    "content": "# Modified from:\n#   DiT:  https://github.com/facebookresearch/DiT/blob/main/sample.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)\nfrom torchvision.utils import save_image\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nimport time\nimport argparse\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.gpt import GPT_models\nfrom autoregressive.models.generate import generate\nfrom condition.hed import HEDdetector, nms\nfrom condition.canny import CannyDetector\nfrom condition.midas.depth import MidasDetector\nfrom autoregressive.test.metric import SSIM, F1score, RMSE\nimport torch.distributed as dist\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom PIL import Image\nimport os\nimport numpy as np\nimport cv2\nfrom tqdm import tqdm\nfrom functools import partial\nfrom skimage.transform import resize\nfrom torch.nn.functional import interpolate\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    \n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        vocab_size=args.codebook_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        condition_token_num=args.condition_token_nums,\n        # image_size=args.image_size\n    ).to(device=device, dtype=precision)\n    \n    \n    _, file_extension = os.path.splitext(args.gpt_ckpt)\n    if file_extension.lower() == '.safetensors':\n        from safetensors.torch import load_file\n        model_weight = load_file(args.gpt_ckpt)\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n    else:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        if \"model\" in checkpoint:  # ddp\n            model_weight = checkpoint[\"model\"]\n        elif \"module\" in checkpoint: # deepspeed\n            model_weight = checkpoint[\"module\"]\n        elif \"state_dict\" in checkpoint:\n            model_weight = checkpoint[\"state_dict\"]\n        else:\n            raise Exception(\"please check model weight\")\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n        del checkpoint\n    print(f\"gpt model is loaded\")\n    \n    if args.condition_type == 'hed':\n        get_condition = HEDdetector(device=device)\n        get_metric = SSIM()\n    elif args.condition_type == 'canny':\n        get_condition = CannyDetector()\n        get_metric = F1score()\n    elif args.condition_type == 'depth':\n        get_condition = MidasDetector(device=device)\n        get_metric = RMSE()\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n\n    if args.dataset == 'imagenet':\n        dataset = build_dataset(args, transform=transform)\n    elif args.dataset == 'coco':\n        dataset = build_dataset(args, transform=transform)\n    elif args.dataset == 'imagenet_code':\n        dataset = build_dataset(args)\n    else:\n        raise Exception(\"please check dataset\")\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        pass\n        # print(f\"no need to compile model in demo\") \n    \n    # Create folder to save samples:\n    model_string_name = args.gpt_model.replace(\"/\", \"-\")\n    if args.from_fsdp:\n        ckpt_string_name = args.gpt_ckpt.split('/')[-2]\n    else:\n        ckpt_string_name = os.path.basename(args.gpt_ckpt).replace(\".pth\", \"\").replace(\".pt\", \"\")\n\n    date = os.path.split(os.path.dirname(os.path.dirname(os.path.dirname(args.gpt_ckpt))))[-1]\n\n    sample_folder_dir = f\"{args.sample_dir}/imagenet/{args.condition_type}\"\n    if rank == 0:\n        if args.save_image:\n            os.makedirs(sample_folder_dir, exist_ok=True)\n            print(f\"Saving .png samples at {sample_folder_dir}\")\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    total = 0\n\n    condition_null = None\n    num = 0\n    for batch in tqdm(loader):\n        num += 1\n        # if num > 40:\n        #     break\n        class_labels = batch[\"labels\"].to(device).squeeze(1)\n        condition_image = batch[\"condition_img\"].to(device)\n        condition_imgs = batch[\"condition_imgs\"].to(device)\n\n        batch_size = class_labels.shape[0]\n        \n        c_indices = class_labels\n        qzshape = [len(class_labels), args.codebook_embed_dim, latent_size, latent_size]\n\n        index_sample = generate(\n            gpt_model, c_indices, latent_size ** 2, condition=condition_imgs.repeat(1,3,1,1).to(precision), condition_null=condition_null, condition_token_nums=args.condition_token_nums,\n            cfg_scale=args.cfg_scale, cfg_interval=args.cfg_interval,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            )\n\n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n        samples = 255*(samples*0.5 + 0.5)\n        if samples.shape[2] != 256:\n            samples = interpolate(samples, size=(256, 256), mode='bilinear', align_corners=False)\n       \n        condition_imgs = 255*(condition_imgs*0.5 + 0.5)\n        if condition_imgs.shape[2] != 256:\n            condition_imgs = interpolate(condition_imgs, size=(256, 256), mode='bilinear', align_corners=False)\n        for i in range(len(samples)):\n           \n            sample = samples[i].to(torch.uint8).permute(1,2,0)\n            sample_condition = get_condition(sample)\n            if torch.is_tensor(sample_condition):\n                sample_condition = sample_condition.cpu().numpy()\n            condition_img = condition_imgs[i,0].cpu().detach().numpy()\n\n            get_metric.update(condition_img, sample_condition)\n\n            index = i * dist.get_world_size() + rank + total\n            if args.save_image:\n                save_image(2*(samples[i]/255 - 0.5), f\"{sample_folder_dir}/{index:06d}.png\", nrow=1, normalize=True, value_range=(-1, 1))\n\n        total += global_batch_size\n    \n    metric = get_metric.calculate()\n    print(f'count: {get_metric.count}')\n    print(f'{args.condition_type}: {metric}')\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4.0)\n    parser.add_argument(\"--cfg-interval\", type=float, default=-1)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000,help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    parser.add_argument(\"--condition-token-nums\", type=int, default=0)\n    parser.add_argument(\"--condition-type\", type=str, default='canny', choices=['canny', 'depth'])\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--get-condition-img\", type=bool, default=False)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco', 'imagenet_code'], default='imagenet_code')\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--num-workers\", type=int, default=16)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"samples\")\n    parser.add_argument(\"--save-image\", type=bool, default=False)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "autoregressive/test/test_ssim.py",
    "content": "\nimport torch\nfrom torchmetrics.image import MultiScaleStructuralSimilarityIndexMeasure\nimport torchvision.transforms as transforms\nfrom PIL import Image\n\nimg1 = Image.open('autoregressive/test/label.png').convert('L')  # \nimg2 = Image.open('autoregressive/test/pred.png').convert('L')\n\nto_tensor = transforms.ToTensor()\nimg1_tensor = to_tensor(img1).unsqueeze(0)  # (C, H, W) -> (1, C, H, W)\nimg2_tensor = to_tensor(img2).unsqueeze(0)\n\nimg1_tensor = img1_tensor.float()\nimg2_tensor = img2_tensor.float()\n\nms_ssim = MultiScaleStructuralSimilarityIndexMeasure(data_range=1.0)\n\nms_ssim_score = ms_ssim(img1_tensor, img2_tensor)\n\nprint(\"MS-SSIM:\", ms_ssim_score.item())"
  },
  {
    "path": "autoregressive/test/test_t2i.py",
    "content": "# Modified from:\n#   DiT:  https://github.com/facebookresearch/DiT/blob/main/sample.py\nimport warnings\nwarnings.filterwarnings('ignore')\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\ntorch.set_float32_matmul_precision('high')\nsetattr(torch.nn.Linear, 'reset_parameters', lambda self: None)\nsetattr(torch.nn.LayerNorm, 'reset_parameters', lambda self: None)\nfrom torchvision.utils import save_image\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nimport time\nimport argparse\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom autoregressive.models.generate import generate\nfrom condition.hed import HEDdetector, nms\nfrom condition.canny import CannyDetector\nfrom autoregressive.test.metric import SSIM, F1score, RMSE\nfrom condition.midas.depth import MidasDetector\nimport torch.distributed as dist\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom PIL import Image\nimport os\nimport numpy as np\nimport cv2\nfrom tqdm import tqdm\nfrom functools import partial\nfrom dataset.t2i_control import build_t2i_control_code\nfrom language.t5 import T5Embedder\nfrom torchmetrics.image import MultiScaleStructuralSimilarityIndexMeasure\nfrom condition.lineart import LineArt\nimport torch.nn.functional as F\n\ndef main(args):\n    # # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    \n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models[args.gpt_model](\n        vocab_size=args.codebook_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        adapter_size=args.adapter_size,\n        condition_type=args.condition_type,\n    ).to(device=device, dtype=precision)\n        \n    _, file_extension = os.path.splitext(args.gpt_ckpt)\n    if file_extension.lower() == '.safetensors':\n        from safetensors.torch import load_file\n        model_weight = load_file(args.gpt_ckpt)\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n    else:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        if \"model\" in checkpoint:  # ddp\n            model_weight = checkpoint[\"model\"]\n        elif \"module\" in checkpoint: # deepspeed\n            model_weight = checkpoint[\"module\"]\n        elif \"state_dict\" in checkpoint:\n            model_weight = checkpoint[\"state_dict\"]\n        else:\n            raise Exception(\"please check model weight\")\n        gpt_model.load_state_dict(model_weight, strict=False)\n        gpt_model.eval()\n        del checkpoint\n    print(f\"gpt model is loaded\")\n    \n\n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        torch_dtype=precision,\n        model_max_length=args.t5_feature_max_len,\n    )\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    \n    dataset = build_t2i_control_code(args)\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False,\n        collate_fn=dataset.collate_fn,\n    )    \n\n\n    if args.compile:\n        print(f\"compiling the model...\")\n        gpt_model = torch.compile(\n            gpt_model,\n            mode=\"reduce-overhead\",\n            fullgraph=True\n        ) # requires PyTorch 2.0 (optional)\n    else:\n        pass\n        # print(f\"no need to compile model in demo\") \n    \n    # Create folder to save samples:\n    model_string_name = args.gpt_model.replace(\"/\", \"-\")\n    if args.from_fsdp:\n        ckpt_string_name = args.gpt_ckpt.split('/')[-2]\n    else:\n        ckpt_string_name = os.path.basename(args.gpt_ckpt).replace(\".pth\", \"\").replace(\".pt\", \"\")\n    # import pdb;pdb.set_trace()\n    date = os.path.split(os.path.dirname(os.path.dirname(os.path.dirname(args.gpt_ckpt))))[-1]\n    folder_name = f\"{model_string_name}-{date}-{ckpt_string_name}-size-{args.image_size}-{args.vq_model}-\" \\\n                  f\"topk-{args.top_k}-topp-{args.top_p}-temperature-{args.temperature}-\" \\\n                  f\"cfg-{args.cfg_scale}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}\"\n    if rank == 0:\n        if args.save_image:\n            os.makedirs(sample_folder_dir, exist_ok=True)\n            os.makedirs(f\"{args.sample_dir}/visualization\", exist_ok=True)\n            os.makedirs(f\"{args.sample_dir}/annotations\", exist_ok=True)\n            print(f\"Saving .png samples at {sample_folder_dir}\")\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    total = 0\n    \n    if args.condition_type == 'hed':\n        get_condition = HEDdetector().to(device).eval()\n    elif args.condition_type == 'canny':\n        get_condition = CannyDetector()\n    elif args.condition_type == 'lineart':\n        get_condition = LineArt()\n        get_condition.load_state_dict(torch.load('condition/ckpts/model.pth', map_location=torch.device('cpu')))\n        get_condition.to(device)\n\n    condition_null = None\n    num = 0\n    print(len(loader))\n    for batch in tqdm(loader):\n        num += 1\n        # if num>2:\n        #     break\n        prompts = batch['prompt']\n        condition_imgs = batch['control'].to(device)\n        \n        if args.condition_type in ['hed', 'lineart']:\n            with torch.no_grad():\n                condition_imgs = get_condition(condition_imgs.float())\n                if args.condition_type == 'hed':\n                    condition_imgs = condition_imgs.unsqueeze(1)/255\n                # if args.condition_type == 'lineart':\n                #     condition_imgs = 1 - condition_imgs\n                condition_imgs = condition_imgs.repeat(1,3,1,1)\n                condition_imgs = 2*(condition_imgs - 0.5)\n        # condition_origin = condition_imgs.clone()\n\n        if args.condition_type == 'seg':\n            labels = batch['label']\n\n        \n        caption_embs, emb_masks = t5_model.get_text_embeddings(prompts)\n\n        new_emb_masks = torch.flip(emb_masks, dims=[-1])\n        new_caption_embs = []\n        for idx, (caption_emb, emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n            valid_num = int(emb_mask.sum().item())\n            new_caption_emb = torch.cat([caption_emb[valid_num:],caption_emb[:valid_num]])\n            new_caption_embs.append(new_caption_emb)\n        new_caption_embs = torch.stack(new_caption_embs)\n        c_indices = new_caption_embs * new_emb_masks[:,:, None]\n        c_emb_masks = new_emb_masks\n\n        qzshape = [len(c_indices), args.codebook_embed_dim, args.image_H//args.downsample_size, args.image_W//args.downsample_size]\n\n        index_sample = generate(\n            gpt_model, c_indices, (args.image_H//args.downsample_size)*(args.image_W//args.downsample_size), c_emb_masks, condition=condition_imgs.to(precision),\n            cfg_scale=args.cfg_scale, cfg_interval=args.cfg_interval,\n            temperature=args.temperature, top_k=args.top_k,\n            top_p=args.top_p, sample_logits=True, \n            )  \n\n        samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n\n        for i in range(len(samples)):\n            # # Save samples to disk as individual .png files\n            index = i * dist.get_world_size() + rank + total\n            if args.save_image:\n                save_image(samples[i], f\"{args.sample_dir}/visualization/{index:06d}.png\", nrow=1, normalize=True, value_range=(-1, 1))\n                save_image(condition_imgs[i,0], f\"{args.sample_dir}/annotations/{index:06d}.png\", nrow=1, normalize=True, value_range=(-1, 1))\n            if args.condition_type == 'seg':\n                Image.fromarray(labels[i].numpy().astype('uint8'), mode='L').save(f\"{args.sample_dir}/annotations/{index:06d}.png\")\n        total += global_batch_size\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512, 768], default=512)\n    parser.add_argument(\"--image-H\", type=int, choices=[256, 320, 384, 400, 448, 512, 576, 640, 704, 768, 832, 960, 1024], default=512)\n    parser.add_argument(\"--image-W\", type=int, choices=[256, 320, 384, 400, 448, 512, 576, 640, 704, 768, 832, 960, 1024], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--cfg-scale\", type=float, default=4)\n    parser.add_argument(\"--cfg-interval\", type=float, default=-1)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    parser.add_argument(\"--top-k\", type=int, default=2000,help=\"top-k value to sample with\")\n    parser.add_argument(\"--temperature\", type=float, default=1.0, help=\"temperature value to sample with\")\n    parser.add_argument(\"--top-p\", type=float, default=1.0, help=\"top-p value to sample with\")\n    parser.add_argument(\"--condition\", type=str, default='hed', choices=['canny', 'hed'])\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=25)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco', 'imagenet_code'], default='imagenet_code')\n    parser.add_argument(\"--num-workers\", type=int, default=16)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"samples\")\n    parser.add_argument(\"--num-fid-samples\", type=int, default=2000)\n    parser.add_argument(\"--save-image\", type=bool, default=True)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--code-path\", type=str, default=\"code\")\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--get-image\", type=bool, default=False)\n    parser.add_argument(\"--get-prompt\", type=bool, default=True)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--condition-type\", type=str, choices=['seg', 'canny', 'hed', 'lineart', 'depth'], default=\"canny\")\n    parser.add_argument(\"--adapter-size\", type=str, default=\"small\")\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "autoregressive/train/extract_codes_c2i.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\n# import os\n# os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nimport argparse\nimport os\n\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\n\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    # Setup DDP:\n    if not args.debug:\n        init_distributed_mode(args)\n        rank = dist.get_rank()\n        device = rank % torch.cuda.device_count()\n        seed = args.global_seed * dist.get_world_size() + rank\n        torch.manual_seed(seed)\n        torch.cuda.set_device(device)\n        print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    else:\n        device = 'cuda'\n        rank = 0\n    \n    # Setup a feature folder:\n    if args.debug or rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_codes'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_labels'), exist_ok=True)\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n\n    # Setup data:\n    if args.ten_crop:\n        crop_size = int(args.image_size * args.crop_range)\n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.TenCrop(args.image_size), # this is a tuple of PIL Images\n            transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) for crop in crops])), # returns a 4D tensor\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    else:\n        crop_size = args.image_size \n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.ToTensor(),\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    dataset = build_dataset(args, transform=transform)\n    if not args.debug:\n        sampler = DistributedSampler(\n            dataset,\n            num_replicas=dist.get_world_size(),\n            rank=rank,\n            shuffle=False,\n            seed=args.global_seed\n        )\n    else:\n        sampler = None\n    loader = DataLoader(\n        dataset,\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )\n    from tqdm import tqdm\n    total = 0\n    for x, y in tqdm(loader):\n        x = x.to(device)\n        if args.ten_crop:\n            x_all = x.flatten(0, 1)\n            num_aug = 10\n        else:\n            x_flip = torch.flip(x, dims=[-1])\n            x_all = torch.cat([x, x_flip])\n            num_aug = 2\n        y = y.to(device)\n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(x_all)\n        codes = indices.reshape(x.shape[0], num_aug, -1)\n\n        x = codes.detach().cpu().numpy()    # (1, num_aug, args.image_size//16 * args.image_size//16)\n        train_steps = rank + total\n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_codes/{train_steps}.npy', x)\n\n        y = y.detach().cpu().numpy()    # (1,)\n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_labels/{train_steps}.npy', y)\n        if not args.debug:\n            total += dist.get_world_size()\n        else:\n            total += 1\n        #print(total)\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--ten-crop\", action='store_true', help=\"whether using random crop\")\n    parser.add_argument(\"--crop-range\", type=float, default=1.1, help=\"expanding range of center crop\")\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--debug\", action='store_true')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/extract_codes_t2i.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nfrom PIL import Image\nimport glob\nimport argparse\nimport os\nimport json\n\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\n\n\n#################################################################################\n#                             Training Helper Functions                         #\n#################################################################################\nclass CustomDataset(Dataset):\n    def __init__(self, lst_dir, start, end, transform):\n        img_path_list = []\n        for lst_name in sorted(os.listdir(lst_dir))[start: end+1]:\n            if not lst_name.endswith('.jsonl'):\n                continue\n            file_path = os.path.join(lst_dir, lst_name)\n            with open(file_path, 'r') as file:\n                for line_idx, line in enumerate(file):\n                    data = json.loads(line)\n                    img_path = data['image_path']\n                    code_dir = file_path.split('/')[-1].split('.')[0]\n                    img_path_list.append((img_path, code_dir, line_idx))\n        self.img_path_list = img_path_list\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.img_path_list)\n\n    def __getitem__(self, index):\n        img_path, code_dir, code_name = self.img_path_list[index]\n        img = Image.open(img_path).convert(\"RGB\")\n        if self.transform is not None:\n            img = self.transform(img)\n        return img, code_dir, code_name\n\n\n        \n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    \"\"\"\n    Trains a new DiT model.\n    \"\"\"\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n\n    # Setup DDP:\n    # dist.init_process_group(\"nccl\")\n    init_distributed_mode(args)\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # Setup a feature folder:\n    if rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    print(f\"Dataset is preparing...\")\n    dataset = CustomDataset(args.data_path, args.data_start, args.data_end, transform=transform)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )\n    print(f\"Dataset contains {len(dataset):,} images\")\n\n    # total = 0\n    for img, code_dir, code_name in loader:\n        img = img.to(device)\n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(img)\n        codes = indices.reshape(img.shape[0], -1)\n        x = codes.detach().cpu().numpy()    # (1, args.image_size//16 * args.image_size//16)\n        os.makedirs(os.path.join(args.code_path, code_dir[0]), exist_ok=True)\n        np.save(os.path.join(args.code_path, code_dir[0], '{}.npy'.format(code_name.item())), x)\n\n        # total += dist.get_world_size()\n        print(code_name.item())\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--data-start\", type=int, required=True)\n    parser.add_argument(\"--data-end\", type=int, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=512)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/extract_file_ade.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\nimport os\n# os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom condition.hed import HEDdetector, ControlNetHED_Apache2\nimport cv2\nfrom torch.nn.parallel import DataParallel\nfrom einops import rearrange\nfrom datasets import load_dataset\nfrom torchvision import transforms\nfrom PIL import Image\nfrom language.t5 import T5Embedder\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\nresolution = (512, 512)\nimage_transforms = transforms.Compose(\n    [\n        transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n        transforms.ToTensor(),\n        transforms.Normalize([0.5], [0.5]),\n    ]\n)\nconditioning_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n            transforms.ToTensor(),\n        ]\n    )\nlabel_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.NEAREST, antialias=True),\n        ]\n    )\n\ndef collate_fn(examples):\n    \n    pil_images = [example['image'].convert(\"RGB\") for example in examples]\n    images = [image_transforms(image) for image in pil_images]\n    images = torch.stack(images)\n    \n    conditioning_images = [example['control_seg'].convert(\"RGB\") for example in examples]\n    conditioning_images = [conditioning_image_transforms(image) for image in conditioning_images]\n    conditioning_images = torch.stack(conditioning_images)\n    \n    captions = [example['prompt'] for example in examples]\n    \n    dtype = torch.long\n    # labels = [torch.from_numpy(np.array(example['panoptic_seg_map'])).unsqueeze(0) for example in examples]  # seg_map  panoptic_seg_map\n    # labels = [label_image_transforms(label) for label in labels]\n    # labels = torch.stack(labels)\n    labels = [example['seg_map'] for example in examples]\n    \n\n    return {\n        \"images\": images,  # -1~1\n        \"conditioning_images\": conditioning_images,  # 0~1\n        \"captions\": captions,\n        \"labels\": labels\n    }\n\ndef main(args):\n    \n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    # Setup DDP:\n    if not args.debug:\n        init_distributed_mode(args)\n        rank = dist.get_rank()\n        device = rank % torch.cuda.device_count()\n        seed = args.global_seed * dist.get_world_size() + rank\n        torch.manual_seed(seed)\n        torch.cuda.set_device(device)\n        print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    else:\n        device = 'cuda'\n        rank = 0\n    \n    # Setup a feature folder:\n    if args.debug or rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'code'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'image'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'control'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'caption_emb'), exist_ok=True)\n        if args.split == 'validation':\n            os.makedirs(os.path.join(args.code_path, f'label'), exist_ok=True)\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    \n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        model_max_length=args.t5_feature_max_len,\n    )\n\n    # Setup data:\n    if args.ten_crop:\n        crop_size = int(args.image_size * args.crop_range)\n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.TenCrop(args.image_size), # this is a tuple of PIL Images\n            transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) for crop in crops])), # returns a 4D tensor\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    else:\n        crop_size = args.image_size \n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.ToTensor(),\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    # dataset = build_dataset(args, transform=transform)\n    dataset = load_dataset(\n                    args.data_path,\n                    cache_dir=None,\n                )\n    if not args.debug:\n        sampler = DistributedSampler(\n            dataset[args.split],\n            num_replicas=dist.get_world_size(),\n            rank=rank,\n            shuffle=False,\n            seed=args.global_seed\n        )\n    else:\n        sampler = None\n    loader = DataLoader(\n        dataset[args.split],\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        collate_fn=collate_fn,\n        pin_memory=True,\n        drop_last=False\n    )\n\n    from tqdm import tqdm\n    total = 0\n    code_len = 1024\n    t5_feature_max_len = 120\n    t5_feature_dim = 2048\n    max_seq_length = t5_feature_max_len + code_len\n    for batch in tqdm(loader):\n        \n        captions = batch['captions']\n        \n        train_steps = rank + total\n        img_save_path = f'{args.code_path}/image/{train_steps}.png'\n        cond_save_path = f'{args.code_path}/control/{train_steps}.png'\n        label_save_path = f'{args.code_path}/label/{train_steps}.png'\n        Image.fromarray((255*(batch['images'][0].numpy().transpose(1,2,0)*0.5+0.5)).astype('uint8'), mode='RGB').save(img_save_path)\n        Image.fromarray((255*batch['conditioning_images'][0].numpy().transpose(1,2,0)).astype('uint8'), mode='RGB').save(cond_save_path)\n        \n        label = Image.fromarray(np.array(batch['labels'][0]).astype('uint8'))\n        label.resize((512,512), Image.Resampling.NEAREST).save(label_save_path)\n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(batch['images'].to(device))\n            \n            caption_emb, emb_mask = t5_model.get_text_embeddings(captions)\n            valid_num = int(emb_mask.sum().item())\n            caption_emb = caption_emb[:, :valid_num]\n        \n        codes = indices.reshape(1, 1, -1)\n        x = codes.detach().cpu().numpy()    # (1, num_aug, args.image_size//16 * args.image_size//16)\n        np.save(f'{args.code_path}/code/{train_steps}.npy', x)\n\n        caption_emb = caption_emb.to(torch.float32).detach().cpu().numpy()\n        caption_dict = {}\n        caption_dict['prompt'] = captions\n        caption_dict['caption_emb'] = caption_emb\n        np.savez(f'{args.code_path}/caption_emb/{train_steps}.npz', **caption_dict)\n        if not args.debug:\n            total += dist.get_world_size()\n        else:\n            total += 1\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--ten-crop\", action='store_true', help=\"whether using random crop\")\n    parser.add_argument(\"--crop-range\", type=float, default=1.1, help=\"expanding range of center crop\")\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--debug\", action='store_true')\n    parser.add_argument(\"--min-threshold\", type=int, default=200)\n    parser.add_argument(\"--max-threshold\", type=int, default=400)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--split\", type=str, default='train')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/extract_file_cocostuff.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\nimport os\n# os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom condition.hed import HEDdetector, ControlNetHED_Apache2\nimport cv2\nfrom torch.nn.parallel import DataParallel\nfrom einops import rearrange\nfrom datasets import load_dataset\nfrom torchvision import transforms\nfrom PIL import Image\nfrom language.t5 import T5Embedder\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\nresolution = (512, 512)\nimage_transforms = transforms.Compose(\n    [\n        transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n        transforms.ToTensor(),\n        transforms.Normalize([0.5], [0.5]),\n    ]\n)\nconditioning_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n            transforms.ToTensor(),\n        ]\n    )\nlabel_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.NEAREST, antialias=True),\n        ]\n    )\n\ndef collate_fn(examples):\n    \n    pil_images = [example['image'].convert(\"RGB\") for example in examples]\n    images = [image_transforms(image) for image in pil_images]\n    images = torch.stack(images)\n    \n    conditioning_images = [example['control_seg'].convert(\"RGB\") for example in examples]\n    conditioning_images = [conditioning_image_transforms(image) for image in conditioning_images]\n    conditioning_images = torch.stack(conditioning_images)\n    \n    captions = [example['prompt'] for example in examples]\n    \n    dtype = torch.long\n    # labels = [torch.from_numpy(np.array(example['panoptic_seg_map'])).unsqueeze(0) for example in examples]  # seg_map  panoptic_seg_map\n    # labels = [label_image_transforms(label) for label in labels]\n    # labels = torch.stack(labels)\n    labels = [example['panoptic_seg_map'] for example in examples]\n    \n\n    return {\n        \"images\": images,  # -1~1\n        \"conditioning_images\": conditioning_images,  # 0~1\n        \"captions\": captions,\n        \"labels\": labels\n    }\n\ndef main(args):\n    \n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    # Setup DDP:\n    if not args.debug:\n        init_distributed_mode(args)\n        rank = dist.get_rank()\n        device = rank % torch.cuda.device_count()\n        seed = args.global_seed * dist.get_world_size() + rank\n        torch.manual_seed(seed)\n        torch.cuda.set_device(device)\n        print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    else:\n        device = 'cuda'\n        rank = 0\n    \n    # Setup a feature folder:\n    if args.debug or rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'code'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'image'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'control'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'caption_emb'), exist_ok=True)\n        if args.split == 'validation':\n            os.makedirs(os.path.join(args.code_path, f'label'), exist_ok=True)\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    \n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        model_max_length=args.t5_feature_max_len,\n    )\n\n    # Setup data:\n    if args.ten_crop:\n        crop_size = int(args.image_size * args.crop_range)\n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.TenCrop(args.image_size), # this is a tuple of PIL Images\n            transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) for crop in crops])), # returns a 4D tensor\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    else:\n        crop_size = args.image_size \n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.ToTensor(),\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    dataset = load_dataset(\n                    args.data_path,\n                    cache_dir=None,\n                )\n    if not args.debug:\n        sampler = DistributedSampler(\n            dataset[args.split],\n            num_replicas=dist.get_world_size(),\n            rank=rank,\n            shuffle=False,\n            seed=args.global_seed\n        )\n    else:\n        sampler = None\n    loader = DataLoader(\n        dataset[args.split],\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        collate_fn=collate_fn,\n        pin_memory=True,\n        drop_last=False\n    )\n\n    from tqdm import tqdm\n    total = 0\n    code_len = 1024\n    t5_feature_max_len = 120\n    t5_feature_dim = 2048\n    max_seq_length = t5_feature_max_len + code_len\n    for batch in tqdm(loader):\n        \n        captions = batch['captions']\n        \n        train_steps = rank + total\n        img_save_path = f'{args.code_path}/image/{train_steps}.png'\n        cond_save_path = f'{args.code_path}/control/{train_steps}.png'\n        label_save_path = f'{args.code_path}/label/{train_steps}.png'\n        Image.fromarray((255*(batch['images'][0].numpy().transpose(1,2,0)*0.5+0.5)).astype('uint8'), mode='RGB').save(img_save_path)\n        Image.fromarray((255*batch['conditioning_images'][0].numpy().transpose(1,2,0)).astype('uint8'), mode='RGB').save(cond_save_path)\n        \n        label = Image.fromarray(np.array(batch['labels'][0]).astype('uint8'))\n        label.resize((512,512), Image.Resampling.NEAREST).save(label_save_path)\n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(batch['images'].to(device))\n            \n            caption_emb, emb_mask = t5_model.get_text_embeddings(captions)\n            valid_num = int(emb_mask.sum().item())\n            caption_emb = caption_emb[:, :valid_num]\n        \n        codes = indices.reshape(1, 1, -1)\n        x = codes.detach().cpu().numpy()    # (1, num_aug, args.image_size//16 * args.image_size//16)\n        np.save(f'{args.code_path}/code/{train_steps}.npy', x)\n\n        caption_emb = caption_emb.to(torch.float32).detach().cpu().numpy()\n        caption_dict = {}\n        caption_dict['prompt'] = captions\n        caption_dict['caption_emb'] = caption_emb\n        np.savez(f'{args.code_path}/caption_emb/{train_steps}.npz', **caption_dict)\n        if not args.debug:\n            total += dist.get_world_size()\n        else:\n            total += 1\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--ten-crop\", action='store_true', help=\"whether using random crop\")\n    parser.add_argument(\"--crop-range\", type=float, default=1.1, help=\"expanding range of center crop\")\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--debug\", action='store_true')\n    parser.add_argument(\"--min-threshold\", type=int, default=200)\n    parser.add_argument(\"--max-threshold\", type=int, default=400)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--split\", type=str, default='train')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/extract_file_imagenet.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\nimport os\n# os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom condition.canny import CannyDetector\nimport cv2\nfrom condition.midas.depth import MidasDetector\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    \n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    # Setup DDP:\n    if not args.debug:\n        init_distributed_mode(args)\n        rank = dist.get_rank()\n        device = rank % torch.cuda.device_count()\n        seed = args.global_seed * dist.get_world_size() + rank\n        torch.manual_seed(seed)\n        torch.cuda.set_device(device)\n        print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    else:\n        device = 'cuda'\n        rank = 0\n    \n    # Setup a feature folder:\n    if args.debug or rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_codes'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_labels'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_canny_imagesnpy'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_canny_images'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_depth_imagesnpy'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'{args.dataset}{args.image_size}_depth_images'), exist_ok=True)\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n\n    # Setup data:\n    if args.ten_crop:\n        crop_size = int(args.image_size * args.crop_range)\n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.TenCrop(args.image_size), # this is a tuple of PIL Images\n            transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) for crop in crops])), # returns a 4D tensor\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    else:\n        crop_size = args.image_size \n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.ToTensor(),\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    dataset = build_dataset(args, transform=transform)\n    if not args.debug:\n        sampler = DistributedSampler(\n            dataset,\n            num_replicas=dist.get_world_size(),\n            rank=rank,\n            shuffle=False,\n            seed=args.global_seed\n        )\n    else:\n        sampler = None\n    loader = DataLoader(\n        dataset,\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )\n    apply_canny = CannyDetector()\n    depth_model = MidasDetector(device=device)\n    \n    from tqdm import tqdm\n    total = 0\n    for x, y in tqdm(loader):\n        x = x.to(device)\n        batch_size_per_gpu = x.shape[0] \n        if args.ten_crop:\n            x_all = x.flatten(0, 1)\n            num_aug = 10\n        else:\n            x_flip = torch.flip(x, dims=[-1])\n            x_all = torch.cat([x, x_flip])\n            num_aug = 2\n        y = y.to(device)\n\n        canny = []\n        depths = []\n        for i in range(x_all.shape[0]):\n            canny.append(apply_canny((255*(x_all[i]*0.5 + 0.5)).cpu().numpy().transpose(1,2,0).astype(np.uint8),low_threshold=args.min_threshold, high_threshold=args.max_threshold)[None,None,...])\n            img = (255*(x_all[i]*0.5 + 0.5)).permute(1,2,0)\n            depth = depth_model(img)\n            depths.append(depth[None,None,...])\n        depths = np.concatenate(depths, axis=0)\n        cannys = np.concatenate(canny, axis=0)\n        train_steps = rank + total\n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_canny_imagesnpy/{train_steps}.npy', cannys)\n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_depth_imagesnpy/{train_steps}.npy', depths)\n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(x_all)\n        \n        codes = indices.reshape(x.shape[0], num_aug, -1)\n        x = codes.detach().cpu().numpy()    # (1, num_aug, args.image_size//16 * args.image_size//16)\n        y = y.detach().cpu().numpy()    # (1,)\n    \n        train_steps = rank + total\n        \n        cv2.imwrite(f'{args.code_path}/{args.dataset}{args.image_size}_canny_images/{train_steps}.png', cannys[0,0])\n        cv2.imwrite(f'{args.code_path}/{args.dataset}{args.image_size}_depth_images/{train_steps}.png', depths[0,0])   \n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_codes/{train_steps}.npy', x)\n        np.save(f'{args.code_path}/{args.dataset}{args.image_size}_labels/{train_steps}.npy', y)\n        if not args.debug:\n            total += dist.get_world_size()\n        else:\n            total += 1\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--ten-crop\", action='store_true', help=\"whether using random crop\")\n    parser.add_argument(\"--crop-range\", type=float, default=1.1, help=\"expanding range of center crop\")\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--debug\", action='store_true')\n    parser.add_argument(\"--min-threshold\", type=int, default=100)\n    parser.add_argument(\"--max-threshold\", type=int, default=200)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/extract_file_multigen.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/extract_features.py\n\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nimport os\n# os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nimport numpy as np\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom condition.hed import HEDdetector, ControlNetHED_Apache2\nimport cv2\nfrom torch.nn.parallel import DataParallel\nfrom einops import rearrange\nfrom datasets import load_dataset\nfrom torchvision import transforms\nfrom PIL import Image\nfrom language.t5 import T5Embedder\nfrom condition.canny import CannyDetector\nfrom condition.hed import HEDdetector\nfrom condition.lineart import LineArt\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\nresolution = (512, 512)\nimage_transforms = transforms.Compose(\n    [\n        transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n        transforms.ToTensor(),\n        transforms.Normalize([0.5], [0.5]),\n    ]\n)\nconditioning_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.BICUBIC, antialias=True),\n            transforms.ToTensor(),\n        ]\n    )\nlabel_image_transforms = transforms.Compose(\n        [\n            transforms.Resize(resolution, interpolation=transforms.InterpolationMode.NEAREST, antialias=True),\n        ]\n    )\n\ndef collate_fn(examples):\n\n    pil_images = [example['image'].convert(\"RGB\") for example in examples]\n    images = [image_transforms(image) for image in pil_images]\n    images = torch.stack(images)\n    \n    conditioning_images = [example['control_depth'].convert(\"RGB\") for example in examples]\n    conditioning_images = [conditioning_image_transforms(image) for image in conditioning_images]\n    conditioning_images = torch.stack(conditioning_images)\n    captions = [example['text'] for example in examples]\n\n    \n\n    return {\n        \"images\": images,  # -1~1\n        \"conditioning_images\": conditioning_images,  # 0~1\n        \"captions\": captions,\n        # \"labels\": labels\n    }\n\ndef main(args):\n    \n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    # Setup DDP:\n    if not args.debug:\n        init_distributed_mode(args)\n        rank = dist.get_rank()\n        device = rank % torch.cuda.device_count()\n        seed = args.global_seed * dist.get_world_size() + rank\n        torch.manual_seed(seed)\n        torch.cuda.set_device(device)\n        print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n    else:\n        device = 'cuda'\n        rank = 0\n    \n    # Setup a feature folder:\n    if args.debug or rank == 0:\n        os.makedirs(args.code_path, exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'code'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'image'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'control_depth'), exist_ok=True)\n        os.makedirs(os.path.join(args.code_path, f'caption_emb'), exist_ok=True)\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    \n    t5_model = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_path, \n        dir_or_name=args.t5_model_type,\n        model_max_length=args.t5_feature_max_len,\n    )\n\n    # Setup data:\n    if args.ten_crop:\n        crop_size = int(args.image_size * args.crop_range)\n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.TenCrop(args.image_size), # this is a tuple of PIL Images\n            transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) for crop in crops])), # returns a 4D tensor\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    else:\n        crop_size = args.image_size \n        transform = transforms.Compose([\n            transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, crop_size)),\n            transforms.ToTensor(),\n            transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n        ])\n    dataset = load_dataset(\n                    args.data_path,\n                    cache_dir=None,\n                )\n    try:\n        if not args.debug:\n            sampler = DistributedSampler(\n                dataset[args.split],\n                num_replicas=dist.get_world_size(),\n                rank=rank,\n                shuffle=False,\n                seed=args.global_seed\n            )\n        else:\n            sampler = None\n        loader = DataLoader(\n            dataset[args.split],\n            batch_size=1, # important!\n            shuffle=False,\n            sampler=sampler,\n            num_workers=args.num_workers,\n            collate_fn=collate_fn,\n            pin_memory=True,\n            drop_last=False\n        )\n    except Exception as e:\n        pass\n    \n    from tqdm import tqdm\n    total = 0\n    code_len = 1024\n    t5_feature_max_len = 120\n    t5_feature_dim = 2048\n    max_seq_length = t5_feature_max_len + code_len\n    for batch in tqdm(loader):\n        \n        captions = batch['captions']\n        \n        train_steps = rank + total\n        img_save_path = f'{args.code_path}/image/{train_steps}.png'\n        depth_save_path = f'{args.code_path}/control_depth/{train_steps}.png'\n\n        Image.fromarray((255*(batch['images'][0].numpy().transpose(1,2,0)*0.5+0.5)).astype('uint8'), mode='RGB').save(img_save_path)\n        Image.fromarray((255*batch['conditioning_images'][0].numpy().transpose(1,2,0)).astype('uint8'), mode='RGB').save(depth_save_path)\n        \n        with torch.no_grad():\n            _, _, [_, _, indices] = vq_model.encode(batch['images'].to(device))\n            \n            caption_emb, emb_mask = t5_model.get_text_embeddings(captions)\n            valid_num = int(emb_mask.sum().item())\n            caption_emb = caption_emb[:, :valid_num]\n        \n        codes = indices.reshape(1, 1, -1)\n        x = codes.detach().cpu().numpy()    # (1, num_aug, args.image_size//16 * args.image_size//16)\n        np.save(f'{args.code_path}/code/{train_steps}.npy', x)\n\n        caption_emb = caption_emb.to(torch.float32).detach().cpu().numpy()\n        caption_dict = {}\n        caption_dict['prompt'] = captions\n        caption_dict['caption_emb'] = caption_emb\n        np.savez(f'{args.code_path}/caption_emb/{train_steps}.npz', **caption_dict)\n        if not args.debug:\n            total += dist.get_world_size()\n        else:\n            total += 1\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, required=True, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--ten-crop\", action='store_true', help=\"whether using random crop\")\n    parser.add_argument(\"--crop-range\", type=float, default=1.1, help=\"expanding range of center crop\")\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--debug\", action='store_true')\n    parser.add_argument(\"--min-threshold\", type=int, default=200)\n    parser.add_argument(\"--max-threshold\", type=int, default=400)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--split\", type=str, default='train')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_c2i.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/train.py\n#   nanoGPT: https://github.com/karpathy/nanoGPT/blob/master/model.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom glob import glob\nfrom copy import deepcopy\nimport os\nimport time\nimport inspect\nimport argparse\n\nfrom utils.logger import create_logger\nfrom utils.distributed import init_distributed_mode\nfrom utils.ema import update_ema, requires_grad\nfrom dataset.build import build_dataset\nfrom autoregressive.models.gpt import GPT_models\n\n\n#################################################################################\n#                             Training Helper Functions                         #\n#################################################################################\ndef creat_optimizer(model, weight_decay, learning_rate, betas, logger):\n    # start with all of the candidate parameters\n    param_dict = {pn: p for pn, p in model.named_parameters()}\n    # filter out those that do not require grad\n    param_dict = {pn: p for pn, p in param_dict.items() if p.requires_grad}\n    # create optim groups. Any parameters that is 2D will be weight decayed, otherwise no.\n    # i.e. all weight tensors in matmuls + embeddings decay, all biases and layernorms don't.\n    decay_params = [p for n, p in param_dict.items() if p.dim() >= 2]\n    nodecay_params = [p for n, p in param_dict.items() if p.dim() < 2]\n    optim_groups = [\n        {'params': decay_params, 'weight_decay': weight_decay},\n        {'params': nodecay_params, 'weight_decay': 0.0}\n    ]\n    num_decay_params = sum(p.numel() for p in decay_params)\n    num_nodecay_params = sum(p.numel() for p in nodecay_params)\n    logger.info(f\"num decayed parameter tensors: {len(decay_params)}, with {num_decay_params:,} parameters\")\n    logger.info(f\"num non-decayed parameter tensors: {len(nodecay_params)}, with {num_nodecay_params:,} parameters\")\n    # Create AdamW optimizer and use the fused version if it is available\n    fused_available = 'fused' in inspect.signature(torch.optim.AdamW).parameters\n    extra_args = dict(fused=True) if fused_available else dict()\n    optimizer = torch.optim.AdamW(optim_groups, lr=learning_rate, betas=betas, **extra_args)\n    logger.info(f\"using fused AdamW: {fused_available}\")\n    return optimizer\n\n\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\")  # e.g., GPT-XL/2 --> GPT-XL-2 (for naming folders)\n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"  # Create an experiment folder\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"  # Stores saved model checkpoints\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    if args.drop_path_rate > 0.0:\n        dropout_p = 0.0\n    else:\n        dropout_p = args.dropout_p\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=dropout_p,\n        ffn_dropout_p=dropout_p,\n        drop_path_rate=args.drop_path_rate,\n        token_dropout_p=args.token_dropout_p,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    if args.ema:\n        ema = deepcopy(model).to(device)  # Create an EMA of the model for use after training\n        requires_grad(ema, False)\n        logger.info(f\"EMA Parameters: {sum(p.numel() for p in ema.parameters()):,}\")\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    dataset = build_dataset(args)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    flip_info = 'with' if dataset.flip else 'without'\n    aug_info = 10 if 'ten_crop' in dataset.feature_dir else 1\n    aug_info = 2 * aug_info if dataset.aug_feature_dir is not None else aug_info\n    logger.info(f\"Dataset contains {len(dataset):,} images ({args.code_path}) \"\n                f\"{flip_info} flip augmentation and {aug_info} crop augmentation\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"])\n        if args.ema:\n            ema.load_state_dict(checkpoint[\"ema\"] if \"ema\" in checkpoint else checkpoint[\"model\"])\n        optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n        if args.ema:\n            update_ema(ema, model, decay=0)  # Ensure EMA is initialized with synced weights\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    \n    model = DDP(model.to(device), device_ids=[args.gpu])\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    if args.ema:\n        ema.eval()  # EMA model should always be in eval mode\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for x, y in loader:\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(-1)\n            assert z_indices.shape[0] == c_indices.shape[0]\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices)\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n            if args.ema:\n                update_ema(ema, model.module._orig_mod if not args.no_compile else model.module)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"optimizer\": optimizer.state_dict(),\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if args.ema:\n                        checkpoint[\"ema\"] = ema.state_dict()\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--ema\", action='store_true', help=\"whether using ema training\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path-rate\", type=float, default=0.0, help=\"using stochastic depth decay\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet_code')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=300)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"beta1 parameter for the Adam optimizer\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"beta2 parameter for the Adam optimizer\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=256)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=5000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_c2i_canny.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/train.py\n#   nanoGPT: https://github.com/karpathy/nanoGPT/blob/master/model.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom glob import glob\nfrom copy import deepcopy\nimport os\nimport time\nimport inspect\nimport argparse\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.logger import create_logger\nfrom utils.distributed import init_distributed_mode\nfrom utils.ema import update_ema, requires_grad\nfrom dataset.build import build_dataset\nfrom autoregressive.models.gpt import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\n\n\n#################################################################################\n#                             Training Helper Functions                         #\n#################################################################################\ndef creat_optimizer(model, weight_decay, learning_rate, betas, logger):\n    # start with all of the candidate parameters\n    param_dict = {pn: p for pn, p in model.named_parameters()}\n    # filter out those that do not require grad\n    param_dict = {pn: p for pn, p in param_dict.items() if p.requires_grad}\n    # create optim groups. Any parameters that is 2D will be weight decayed, otherwise no.\n    # i.e. all weight tensors in matmuls + embeddings decay, all biases and layernorms don't.\n    decay_params = [p for n, p in param_dict.items() if p.dim() >= 2]\n    nodecay_params = [p for n, p in param_dict.items() if p.dim() < 2]\n    optim_groups = [\n        {'params': decay_params, 'weight_decay': weight_decay},\n        {'params': nodecay_params, 'weight_decay': 0.0}\n    ]\n    num_decay_params = sum(p.numel() for p in decay_params)\n    num_nodecay_params = sum(p.numel() for p in nodecay_params)\n    logger.info(f\"num decayed parameter tensors: {len(decay_params)}, with {num_decay_params:,} parameters\")\n    logger.info(f\"num non-decayed parameter tensors: {len(nodecay_params)}, with {num_nodecay_params:,} parameters\")\n    # Create AdamW optimizer and use the fused version if it is available\n    fused_available = 'fused' in inspect.signature(torch.optim.AdamW).parameters\n    extra_args = dict(fused=True) if fused_available else dict()\n    optimizer = torch.optim.AdamW(optim_groups, lr=learning_rate, betas=betas, **extra_args)\n    logger.info(f\"using fused AdamW: {fused_available}\")\n    return optimizer\n\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\")  # e.g., GPT-XL/2 --> GPT-XL-2 (for naming folders)\n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"  # Create an experiment folder\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"  # Stores saved model checkpoints\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # Setup model\n    if args.drop_path_rate > 0.0:\n        dropout_p = 0.0\n    else:\n        dropout_p = args.dropout_p\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=dropout_p,\n        ffn_dropout_p=dropout_p,\n        drop_path_rate=args.drop_path_rate,\n        token_dropout_p=args.token_dropout_p,\n        condition_token_num=args.condition_token_num,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    if args.ema:\n        ema = deepcopy(model).to(device)  # Create an EMA of the model for use after training\n        requires_grad(ema, False)\n        logger.info(f\"EMA Parameters: {sum(p.numel() for p in ema.parameters()):,}\")\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    dataset = build_dataset(args)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    flip_info = 'with' if dataset.flip else 'without'\n    aug_info = 10 if 'ten_crop' in dataset.feature_dir else 1\n    aug_info = 2 * aug_info if dataset.aug_feature_dir is not None else aug_info\n    logger.info(f\"Dataset contains {len(dataset):,} images ({args.code_path}) \"\n                f\"{flip_info} flip augmentation and {aug_info} crop augmentation\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"],strict=False)\n        if args.ema:\n            ema.load_state_dict(checkpoint[\"ema\"] if \"ema\" in checkpoint else checkpoint[\"model\"])\n        #optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n        if args.ema:\n            update_ema(ema, model, decay=0)  # Ensure EMA is initialized with synced weights\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        vq_model = torch.compile(vq_model) # requires PyTorch 2.0\n        model = torch.compile(model) # requires PyTorch 2.0        \n    \n    model = DDP(model.to(device), device_ids=[args.gpu],find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    if args.ema:\n        ema.eval()  # EMA model should always be in eval mode\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n            x = batch['img_code']\n            y = batch['labels']\n            condition_img = batch['condition_imgs']\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(-1)\n            assert z_indices.shape[0] == c_indices.shape[0]\n            with torch.cuda.amp.autocast(dtype=ptdtype): \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, condition=condition_img.repeat(1,3,1,1).to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n            if args.ema:\n                update_ema(ema, model.module._orig_mod if not args.no_compile else model.module)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if args.ema:\n                        checkpoint[\"ema\"] = ema.state_dict()\n                    # if not args.no_local_save:\n                    #     checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                    #     torch.save(checkpoint, checkpoint_path)\n                    #     logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint to {cloud_checkpoint_path}\")\n                dist.barrier()\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--ema\", action='store_true', help=\"whether using ema training\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path-rate\", type=float, default=0.0, help=\"using stochastic depth decay\")\n    parser.add_argument(\"--no-compile\", action='store_true', default=True)\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet_code')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=20)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"beta1 parameter for the Adam optimizer\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"beta2 parameter for the Adam optimizer\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=256)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=25000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--condition-type\", type=str, default='canny', choices=[\"depth\", \"canny\"]) \n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--condition-token-num\", type=int, default=0)\n    parser.add_argument(\"--get-condition-img\", type=bool, default=False)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_c2i_depth.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/train.py\n#   nanoGPT: https://github.com/karpathy/nanoGPT/blob/master/model.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom glob import glob\nfrom copy import deepcopy\nimport os\nimport time\nimport inspect\nimport argparse\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.logger import create_logger\nfrom utils.distributed import init_distributed_mode\nfrom utils.ema import update_ema, requires_grad\nfrom dataset.build import build_dataset\nfrom autoregressive.models.gpt import GPT_models\n# from autoregressive.models.gpt_cross import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.generate import sample\nfrom condition.hed import HEDdetector\nimport torch.nn.functional as F\n#################################################################################\n#                             Training Helper Functions                         #\n#################################################################################\ndef creat_optimizer(model, weight_decay, learning_rate, betas, logger):\n    # start with all of the candidate parameters\n    param_dict = {pn: p for pn, p in model.named_parameters()}\n    # filter out those that do not require grad\n    param_dict = {pn: p for pn, p in param_dict.items() if p.requires_grad}\n    # create optim groups. Any parameters that is 2D will be weight decayed, otherwise no.\n    # i.e. all weight tensors in matmuls + embeddings decay, all biases and layernorms don't.\n    decay_params = [p for n, p in param_dict.items() if p.dim() >= 2]\n    nodecay_params = [p for n, p in param_dict.items() if p.dim() < 2]\n    optim_groups = [\n        {'params': decay_params, 'weight_decay': weight_decay},\n        {'params': nodecay_params, 'weight_decay': 0.0}\n    ]\n    num_decay_params = sum(p.numel() for p in decay_params)\n    num_nodecay_params = sum(p.numel() for p in nodecay_params)\n    logger.info(f\"num decayed parameter tensors: {len(decay_params)}, with {num_decay_params:,} parameters\")\n    logger.info(f\"num non-decayed parameter tensors: {len(nodecay_params)}, with {num_nodecay_params:,} parameters\")\n    # Create AdamW optimizer and use the fused version if it is available\n    fused_available = 'fused' in inspect.signature(torch.optim.AdamW).parameters\n    extra_args = dict(fused=True) if fused_available else dict()\n    optimizer = torch.optim.AdamW(optim_groups, lr=learning_rate, betas=betas, **extra_args)\n    logger.info(f\"using fused AdamW: {fused_available}\")\n    return optimizer\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\")  # e.g., GPT-XL/2 --> GPT-XL-2 (for naming folders)\n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"  # Create an experiment folder\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"  # Stores saved model checkpoints\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    if args.drop_path_rate > 0.0:\n        dropout_p = 0.0\n    else:\n        dropout_p = args.dropout_p\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=dropout_p,\n        ffn_dropout_p=dropout_p,\n        drop_path_rate=args.drop_path_rate,\n        token_dropout_p=args.token_dropout_p,\n        condition_token_num=args.condition_token_num,\n        image_size=args.image_size,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    if args.ema:\n        ema = deepcopy(model).to(device)  # Create an EMA of the model for use after training\n        requires_grad(ema, False)\n        logger.info(f\"EMA Parameters: {sum(p.numel() for p in ema.parameters()):,}\")\n\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    dataset = build_dataset(args)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    flip_info = 'with' if dataset.flip else 'without'\n    aug_info = 10 if 'ten_crop' in dataset.feature_dir else 1\n    aug_info = 2 * aug_info if dataset.aug_feature_dir is not None else aug_info\n    logger.info(f\"Dataset contains {len(dataset):,} images ({args.code_path}) \"\n                f\"{flip_info} flip augmentation and {aug_info} crop augmentation\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"],strict=False)\n        if args.ema:\n            ema.load_state_dict(checkpoint[\"ema\"] if \"ema\" in checkpoint else checkpoint[\"model\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n        if args.ema:\n            update_ema(ema, model, decay=0)  # Ensure EMA is initialized with synced weights\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n\n    \n    \n    model = DDP(model.to(device), device_ids=[args.gpu],find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    if args.ema:\n        ema.eval()  # EMA model should always be in eval mode\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    initial_params = copy.deepcopy(model.module.condition_embeddings.weight)\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    \n    \n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n            x = batch['img_code']\n            y = batch['labels']\n            condition_img = batch['condition_imgs']\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True).repeat(1,3,1,1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(-1)\n            batchsize = y.shape[0]\n            assert z_indices.shape[0] == c_indices.shape[0]\n            with torch.cuda.amp.autocast(dtype=ptdtype): \n                pred, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, condition=condition_img.to(ptdtype))\n                \n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n            if args.ema:\n                update_ema(ema, model.module._orig_mod if not args.no_compile else model.module)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if args.ema:\n                        checkpoint[\"ema\"] = ema.state_dict()\n                    # if not args.no_local_save:\n                    #     checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                    #     torch.save(checkpoint, checkpoint_path)\n                    #     logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint to {cloud_checkpoint_path}\")\n                dist.barrier()\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--ema\", action='store_true', help=\"whether using ema training\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path-rate\", type=float, default=0.0, help=\"using stochastic depth decay\")\n    parser.add_argument(\"--no-compile\", action='store_true', default=True)\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet_code')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=15)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"beta1 parameter for the Adam optimizer\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"beta2 parameter for the Adam optimizer\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=256)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=25000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--condition-type\", type=str, default='depth', choices=[\"canny\", \"depth\"]) \n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--condition-token-num\", type=int, default=0)\n    parser.add_argument(\"--get-condition-img\", type=bool, default=False)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_c2i_fsdp.py",
    "content": "# Modified from:\n#   Large-DiT: https://github.com/Alpha-VLLM/LLaMA2-Accessory/blob/main/Large-DiT-ImageNet/train.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.nn as nn\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torch.distributed.fsdp import (\n    FullyShardedDataParallel as FSDP,\n    ShardingStrategy, MixedPrecision, StateDictType, FullStateDictConfig\n)\nfrom torch.distributed.fsdp.wrap import lambda_auto_wrap_policy, size_based_auto_wrap_policy\n\nimport os\nimport time\nimport inspect\nimport functools\nimport argparse\nimport contextlib\nfrom glob import glob\nimport wandb\n\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom autoregressive.models.gpt import GPT_models\n\n\n\ndef setup_fsdp_sync(model: nn.Module, args: argparse.Namespace, device) -> FSDP:\n    model = FSDP(\n        model,\n        auto_wrap_policy=functools.partial(\n            lambda_auto_wrap_policy,\n            lambda_fn=lambda m: m in model.get_fsdp_wrap_module_list(),\n        ),\n        # auto_wrap_policy=size_based_auto_wrap_policy,\n        # process_group=fs_init.get_data_parallel_group(),\n        device_id=device,\n        sharding_strategy={\n            \"fsdp\": ShardingStrategy.FULL_SHARD,\n            \"sdp\": ShardingStrategy.SHARD_GRAD_OP,\n            \"hsdp\": ShardingStrategy.HYBRID_SHARD,\n        }[args.data_parallel],\n        mixed_precision=MixedPrecision(\n            param_dtype={\n                \"fp32\": torch.float, \"tf32\": torch.float,\n                \"bf16\": torch.bfloat16, \"fp16\": torch.float16,\n            }[args.mixed_precision],\n            reduce_dtype={\n                \"fp32\": torch.float, \"tf32\": torch.float,\n                \"bf16\": torch.bfloat16, \"fp16\": torch.float16,\n            }[args.grad_precision or args.mixed_precision],\n        ),\n        sync_module_states=True,\n        limit_all_gathers=True,\n        use_orig_params=True,\n    )\n\n    torch.cuda.synchronize()\n\n    return model\n\n\n\ndef creat_optimizer_by_name(model, weight_decay, learning_rate, betas, global_rank, logger):\n    # start with all of the candidate parameters\n    all_param_dict = {pn: p for pn, p in model.named_parameters()}\n    # filter out those that do not require grad\n    param_dict = {pn: p for pn, p in all_param_dict.items() if p.requires_grad}\n    \n    # create optim groups. \n    # Any parameters that is 2D will be weight decayed, otherwise no.\n    # i.e. all weight tensors in matmuls + embeddings decay, all biases and layernorms don't.\n    \n    # decay_params = [p for n, p in param_dict.items() if p.dim() >= 2]\n    # nodecay_params = [p for n, p in param_dict.items() if p.dim() < 2]\n    \n    # model params are flatten by fsdp, we need to set the params by its name\n    decay_params = [p for n, p in param_dict.items() if 'norm' not in n]\n    nodecay_params = [p for n, p in param_dict.items() if 'norm' in n]\n    optim_groups = [\n        {'params': decay_params, 'weight_decay': weight_decay},\n        {'params': nodecay_params, 'weight_decay': 0.0}\n    ]\n    num_decay_params = sum(p.numel() for p in decay_params)\n    num_nodecay_params = sum(p.numel() for p in nodecay_params)\n    logger.info(f\"(rank {global_rank}) num decayed parameter tensors: {len(decay_params)}, with {num_decay_params:,} parameters\")\n    logger.info(f\"(rank {global_rank}) num non-decayed parameter tensors: {len(nodecay_params)}, with {num_nodecay_params:,} parameters\")\n    print(f\"(rank {global_rank}) num decayed parameter tensors: {len(decay_params)}, with {num_decay_params:,} parameters\")\n    print(f\"(rank {global_rank}) num non-decayed parameter tensors: {len(nodecay_params)}, with {num_nodecay_params:,} parameters\")\n    # Create AdamW optimizer and use the fused version if it is available\n    fused_available = 'fused' in inspect.signature(torch.optim.AdamW).parameters\n    extra_args = dict(fused=True) if fused_available else dict()\n    optimizer = torch.optim.AdamW(optim_groups, lr=learning_rate, betas=betas, **extra_args)\n    logger.info(f\"using fused AdamW: {fused_available}\")\n    return optimizer\n\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    assert args.gpt_type == 'c2i', \"FSDP only supports c2i currently.\"\n    # =======================================\n    #    Initialize Distributed Training\n    # =======================================\n    dist.init_process_group(\"nccl\")\n    # init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    global_rank = dist.get_rank()\n    device = global_rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + global_rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={global_rank}, device={device}, seed={seed}, world_size={dist.get_world_size()}.\")\n    \n\n    # =======================================\n    #    Initialize logger and wandb\n    # =======================================\n    timestamp = None\n    if global_rank == 0:\n        timestamp = time.localtime()\n        timestamp = int(time.strftime(\"%Y%m%d%H%M%S\", timestamp))\n    # Convert timestamp to a tensor for broadcasting\n    timestamp_tensor = torch.tensor([timestamp] if timestamp is not None else [0.0], dtype=torch.double).to(device)\n    # Broadcast the timestamp to all processes\n    dist.broadcast(timestamp_tensor, src=0)\n    # All processes receive the timestamp\n    timestamp = int(timestamp_tensor.item())\n    model_string_name = args.gpt_model.replace(\"/\", \"-\")  # e.g., GPT/XL --> GPT-XL (for naming folders)\n    experiment_dir = f\"{args.results_dir}/{timestamp}-{model_string_name}\"\n    cloud_checkpoint_dir = f\"{args.cloud_save_path}/{timestamp}-{model_string_name}\"\n    if global_rank == 0:\n        os.makedirs(experiment_dir, exist_ok=True) # in each local machine\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True) # in one shared file storage\n        logger = create_logger(experiment_dir)\n    else:\n        logger = create_logger(None)\n    logger.info(f\"Experiment directory created at {experiment_dir}\")\n    logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n\n    # training args\n    logger.info(f\"{args}\")  \n\n    # wandb\n    if not args.no_wandb and global_rank == 0:\n        os.environ[\"WANDB_DIR\"] = experiment_dir   \n        wandb.init(\n            project=args.wandb_project, \n            name = f\"{timestamp}-{model_string_name}\",\n            config=vars(args)\n        )\n\n\n    # ======================================================\n    #     Initialize model and resume\n    # ======================================================\n    if args.drop_path_rate > 0.0:\n        dropout_p = 0.0\n    else:\n        dropout_p = args.dropout_p\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=dropout_p,\n        ffn_dropout_p=dropout_p,\n        drop_path_rate=args.drop_path_rate,\n        token_dropout_p=args.token_dropout_p,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    if args.gpt_resume:\n        if global_rank == 0:  # other ranks receive weights in setup_fsdp_sync\n            logger.info(f\"Resuming model weights from: {args.gpt_resume}\")\n            model.load_state_dict(torch.load(os.path.join(\n                args.gpt_resume, \"consolidated.pth\",\n            ), map_location=\"cpu\"), strict=True)\n\n    model = setup_fsdp_sync(model, args, device)\n\n\n    # ======================================================\n    #     Initialize optimizer and resume\n    # ======================================================\n    optimizer = creat_optimizer_by_name(model, args.weight_decay, args.lr, (args.beta1, args.beta2), global_rank, logger)\n    if args.gpt_resume:\n        opt_state_world_size = len([\n            x for x in os.listdir(args.gpt_resume)\n            if x.startswith(\"optimizer.\") and x.endswith(\".pth\")\n        ])\n        assert opt_state_world_size == dist.get_world_size(), (\n            f\"Resuming from a checkpoint with unmatched world size \"\n            f\"({dist.get_world_size()} vs. {opt_state_world_size}) \"\n            f\"is currently not supported.\"\n        )\n        logger.info(f\"Resuming optimizer states from: {args.gpt_resume}\")\n        optimizer.load_state_dict(torch.load(os.path.join(\n            args.gpt_resume,\n            f\"optimizer.{dist.get_rank():05d}-of-\"\n            f\"{dist.get_world_size():05d}.pth\",\n        ), map_location=\"cpu\"))\n\n\n\n    # ======================================================\n    #     Initialize Dataloader\n    # ======================================================\n    dataset = build_dataset(args)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=global_rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    flip_info = 'with' if dataset.flip else 'without'\n    aug_info = 10 if 'ten_crop' in dataset.feature_dir else 1\n    aug_info = 2 * aug_info if dataset.aug_feature_dir is not None else aug_info\n    logger.info(f\"Dataset contains {len(dataset):,} images ({args.code_path}) \"\n                f\"{flip_info} flip augmentation and {aug_info} crop augmentation\")\n    \n\n\n    # ======================================================\n    #   Start training !!!\n    # ======================================================\n    if args.gpt_resume:\n        with open(os.path.join(args.gpt_resume, \"resume_step.txt\")) as f:\n            train_steps = int(f.read().strip())\n        start_epoch = int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = int(start_epoch * int(len(dataset) / args.global_batch_size))\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n    \n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for x, y in loader:\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(-1)\n            assert z_indices.shape[0] == c_indices.shape[0]\n\n            optimizer.zero_grad()\n            with {\n                \"bf16\": torch.cuda.amp.autocast(dtype=torch.bfloat16),\n                \"fp16\": torch.cuda.amp.autocast(dtype=torch.float16),\n                \"fp32\": contextlib.nullcontext(),\n                \"tf32\": contextlib.nullcontext(),\n            }[args.mixed_precision]: \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices)\n            loss.backward()\n            \n            if args.max_grad_norm != 0.0:\n            #   according to https://pytorch.org/docs/stable/fsdp.html#torch.distributed.fsdp.FullyShardedDataParallel.clip_grad_norm_\n            #   torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n                model.clip_grad_norm_(args.max_grad_norm)\n            optimizer.step()\n            \n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                if not args.no_wandb and global_rank == 0:\n                    wandb.log({\"train_loss\": avg_loss}, step=train_steps)\n\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}\"\n                os.makedirs(cloud_checkpoint_path, exist_ok=True)\n\n                ### saving model parameters\n                with FSDP.state_dict_type(\n                    model,\n                    StateDictType.FULL_STATE_DICT,\n                    FullStateDictConfig(rank0_only=True, offload_to_cpu=True),\n                ):\n                    consolidated_model_state_dict = model.state_dict()\n                    if global_rank == 0:\n                        consolidated_fn = \"consolidated.pth\"\n                        torch.save(consolidated_model_state_dict, \n                        os.path.join(cloud_checkpoint_path, consolidated_fn))\n                dist.barrier()\n                del consolidated_model_state_dict\n                logger.info(f\"Saved consolidated to {cloud_checkpoint_path}\")\n\n                ### saving optimizer\n                opt_state_fn = (\n                    f\"optimizer.{dist.get_rank():05d}-of-\"\n                    f\"{dist.get_world_size():05d}.pth\"\n                )\n                torch.save(optimizer.state_dict(), os.path.join(cloud_checkpoint_path, opt_state_fn))\n                dist.barrier()\n                logger.info(f\"Saved optimizer to {cloud_checkpoint_path}\")\n\n                ### saving training step\n                if global_rank == 0:\n                    with open(os.path.join(cloud_checkpoint_path, \"resume_step.txt\"), \"w\") as f:\n                        print(train_steps, file=f)\n                dist.barrier()\n                logger.info(f\"Saved training step to {cloud_checkpoint_path}\")\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-resume\", type=str, default=None, help=\"model, optimizer and argument path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--ema\", action='store_true', help=\"whether using ema training\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path-rate\", type=float, default=0.0, help=\"using stochastic depth decay\")\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet_code')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=300)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"beta1 parameter for the Adam optimizer\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"beta2 parameter for the Adam optimizer\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=256)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=5000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, choices=[\"fp32\", \"tf32\", \"fp16\", \"bf16\"], default='bf16') \n    parser.add_argument(\"--data-parallel\", type=str, choices=[\"sdp\", \"fsdp\", \"hsdp\"], default=\"fsdp\")\n    parser.add_argument(\"--grad-precision\", type=str, choices=[\"fp32\", \"fp16\", \"bf16\"])\n    parser.add_argument(\"--wandb-project\", type=str, default='c2i_fsdp')\n    parser.add_argument(\"--no-wandb\", action='store_true')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\n\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom autoregressive.models.gpt import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\n\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    if args.dataset == 't2i':     # create and load model\n        vq_model = VQ_models[args.vq_model](\n            codebook_size=args.codebook_size,\n            codebook_embed_dim=args.codebook_embed_dim)\n        vq_model.to(device)\n        vq_model.eval()\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint        \n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    dataset = build_dataset(args, transform=transform)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=True)\n        optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    \n    model = DDP(model.to(device), device_ids=[args.gpu])\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for x, y, attn_mask, valid in loader:\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            if args.dataset == 't2i':\n                img = x\n                with torch.no_grad():\n                    _, _, [_, _, indices] = vq_model.encode(img)\n                x = indices.reshape(img.shape[0], -1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid)\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"optimizer\": optimizer.state_dict(),\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=True)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=300)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=256)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=5000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_canny.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\n\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        adapter_size=args.adapter_size,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    \n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n            x = batch['code']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n           \n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=6)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=96)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=10000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--condition-type\", type=str, choices=['canny', 'hed', 'lineart', 'depth'], default=\"canny\")\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--adapter-size\", type=str, default='small')\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_depth.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom torch.optim.lr_scheduler import StepLR\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n    lr_scheduler = StepLR(optimizer, step_size=1, gamma=0.5) # 每10个epoch后，学习率乘以0.1\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    \n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        # for x, y, attn_mask, valid in loader:\n        for batch in loader:\n            \n            x = batch['code']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n          \n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n        lr_scheduler.step()\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=7)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=96)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=10000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--condition-type\", type=str, choices=['canny', 'hed', 'lineart', 'depth'], default=\"depth\")\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_depth_multiscale.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\nimport random\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\nfrom condition.lineart import LineArt\nimport numpy as np\ndef random_sample_scale(image, condition=None):\n\n    H = np.arange(384, 1024+16, 16)\n    W = np.arange(384, 1024+16, 16)\n    resolution = [1024,1024]\n    while resolution[0]//16+resolution[1]//16 > 2304:\n        resolution = [random.choice(H), random.choice(W)]\n    assert resolution[0]//16+resolution[1]//16 <= 2304\n    image = F.interpolate(image.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n    if condition is not None:\n        condition = F.interpolate(condition.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n        return image, condition\n    return image\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n    # # Freeze all the layers\n    # for param in model.parameters():\n    #     param.requires_grad = False\n    # for name, param in model.named_parameters():\n    #     if 'condition' in name:\n    #         param.requires_grad = True\n    #         print(name)\n    #     if 'adapter' in name:\n    #         param.requires_grad = True\n    #         print(name)\n    #     if 'layers.0.' in name:\n    #         param.requires_grad = True\n    #         print(name)\n    #     if 'layers.12.' in name:\n    #         param.requires_grad = True\n    #         print(name)\n    #     if 'layers.24.' in name:\n    #         param.requires_grad = True\n    #         print(name)\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    if args.dataset == 't2i_control':     # create and load model\n        vq_model = VQ_models[args.vq_model](\n            codebook_size=args.codebook_size,\n            codebook_embed_dim=args.codebook_embed_dim)\n        vq_model.to(device)\n        vq_model.eval()\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint        \n\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    # get_condition = HEDdetector().to(device).eval()\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n\n            x = batch['code']\n            image = batch['image']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            image = image.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            image, condition_img = random_sample_scale(image, condition_img)\n            \n            if args.dataset == 't2i_control':\n                img = 2*(image/255 - 0.5)\n                \n                with torch.no_grad():\n                    _, _, [_, _, indices] = vq_model.encode(img)\n                x = indices.reshape(img.shape[0], -1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :x.shape[1]+120-1,:x.shape[1]+120-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512, 768, 832, 896, 960], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=15)\n    parser.add_argument(\"--lr\", type=float, default=1e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=64)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=30000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--condition-type\", type=str, choices=['segmentation', 'canny', 'hed', 'lineart', 'depth'], default=\"depth\")\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    parser.add_argument(\"--report_to\",type=str,default=\"wandb\")\n    parser.add_argument(\"--task_name\",type=str,default='segmentation')\n    parser.add_argument(\"--dataset_name\",type=str,default=None)\n    parser.add_argument(\"--dataset_config_name\",type=str,default=None)\n    \n    parser.add_argument(\"--image_column\", type=str, default=\"image\", help=\"The column of the dataset containing the target image.\")\n    parser.add_argument(\"--conditioning_image_column\",type=str,default=\"control_seg\",help=\"The column of the dataset containing the controlnet conditioning image.\")\n    parser.add_argument(\"--caption_column\",type=str,default=\"prompt\",help=\"The column of the dataset containing a caption or a list of captions.\")\n    parser.add_argument(\"--label_column\",type=str,default=None,help=\"The column of the dataset containing the original labels. `seg_map` for ADE20K; `panoptic_seg_map` for COCO-Stuff.\")\n    parser.add_argument(\"--max_train_samples\",type=int,default=None)\n    parser.add_argument(\"--image_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--text_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--all_condition_dropout\",type=float,default=0)\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_hed.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\nfrom condition.hed import HEDdetector\ntorch._dynamo.config.suppress_errors = True\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        adapter_size=args.adapter_size,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n    get_condition = HEDdetector().to(device).eval()\n\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    \n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        # for x, y, attn_mask, valid in loader:\n        for batch in loader:\n\n            x = batch['code']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n\n            with torch.no_grad():\n                condition_img = get_condition(condition_img).unsqueeze(1).repeat(1,3,1,1)\n                condition_img = 2*(condition_img/255 - 0.5)\n    \n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=3)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=88)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=10000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--condition-type\", type=str, choices=['canny', 'hed', 'lineart', 'depth'], default=\"hed\")\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    parser.add_argument(\"--adapter-size\", type=str, default='small')\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_hed_multiscale.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\nimport random\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\ndef random_sample_scale(image, condition=None):\n\n    H = np.arange(384, 1024+16, 16)\n    W = np.arange(384, 1024+16, 16)\n    resolution = [1024,1024]\n    while resolution[0]//16+resolution[1]//16 > 2304:\n        resolution = [random.choice(H), random.choice(W)]\n    assert resolution[0]//16+resolution[1]//16 <= 2304\n    image = F.interpolate(image.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n    if condition is not None:\n        condition = F.interpolate(condition.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n        return image, condition\n    return image\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    if args.dataset == 't2i_control':     # create and load model\n        vq_model = VQ_models[args.vq_model](\n            codebook_size=args.codebook_size,\n            codebook_embed_dim=args.codebook_embed_dim)\n        vq_model.to(device)\n        vq_model.eval()\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint        \n\n    # train_dataset,val_dataset = build_dataset(args, tokenizer=None, accelerator=accelerator)\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    get_condition = HEDdetector().to(device).eval()\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n\n        for batch in loader:\n\n            x = batch['code']\n            image = batch['image']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n            condition_img = 2*(condition_img - 0.5)\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            image = image.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            image = random_sample_scale(image)\n            with torch.no_grad():\n                condition_img = get_condition(image).unsqueeze(1).repeat(1,3,1,1)\n                condition_img = 2*(condition_img/255 - 0.5)\n         \n            if args.dataset == 't2i_control':\n                img = 2*(image/255 - 0.5)\n                \n                with torch.no_grad():\n                    _, _, [_, _, indices] = vq_model.encode(img)\n                x = indices.reshape(img.shape[0], -1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :x.shape[1]+120-1,:x.shape[1]+120-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512, 768, 832, 896, 960], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=15)\n    parser.add_argument(\"--lr\", type=float, default=1e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=16)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=10000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--condition-type\", type=str, choices=['segmentation', 'canny', 'hed', 'lineart', 'depth'], default=\"hed\")\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    parser.add_argument(\"--report_to\",type=str,default=\"wandb\")\n    parser.add_argument(\"--task_name\",type=str,default='segmentation')\n    parser.add_argument(\"--dataset_name\",type=str,default=None)\n    parser.add_argument(\"--dataset_config_name\",type=str,default=None)\n    \n    parser.add_argument(\"--image_column\", type=str, default=\"image\", help=\"The column of the dataset containing the target image.\")\n    parser.add_argument(\"--conditioning_image_column\",type=str,default=\"control_seg\",help=\"The column of the dataset containing the controlnet conditioning image.\")\n    parser.add_argument(\"--caption_column\",type=str,default=\"prompt\",help=\"The column of the dataset containing a caption or a list of captions.\")\n    parser.add_argument(\"--label_column\",type=str,default=None,help=\"The column of the dataset containing the original labels. `seg_map` for ADE20K; `panoptic_seg_map` for COCO-Stuff.\")\n    parser.add_argument(\"--max_train_samples\",type=int,default=None)\n    parser.add_argument(\"--image_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--text_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--all_condition_dropout\",type=float,default=0)\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_lineart.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\nfrom condition.hed import HEDdetector\nfrom condition.lineart import LineArt\ntorch._dynamo.config.suppress_errors = True\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n    get_condition = LineArt()\n    get_condition.load_state_dict(torch.load('/data/vjuicefs_sz_cv_v2/11171709/ControlAR/condition/ckpts/model.pth', map_location=torch.device('cpu')))\n    get_condition.to(device)\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    \n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n\n            x = batch['code']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            with torch.no_grad():\n                condition_img = get_condition(condition_img.float()).repeat(1,3,1,1)\n                condition_img = 2*(condition_img - 0.5)\n    \n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=3)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=88)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=10000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--condition-type\", type=str, choices=['canny', 'hed', 'lineart', 'depth'], default=\"lineart\")\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_lineart_multiscale.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\n\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\nimport random\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\nfrom condition.lineart import LineArt\ndef random_sample_scale(image, condition=None):\n    H = np.arange(384, 1024+16, 16)\n    W = np.arange(384, 1024+16, 16)\n    resolution = [1024,1024]\n    while resolution[0]//16+resolution[1]//16 > 2304:\n        resolution = [random.choice(H), random.choice(W)]\n    assert resolution[0]//16+resolution[1]//16 <= 2304\n    image = F.interpolate(image.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n    if condition is not None:\n        condition = F.interpolate(condition.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n        return image, condition\n    return image\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    \n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n    get_condition = LineArt()\n    get_condition.load_state_dict(torch.load('/data/vjuicefs_sz_cv_v2/11171709/ControlAR/condition/ckpts/model.pth', map_location=torch.device('cpu')))\n    get_condition.to(device)\n    \n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    if args.dataset == 't2i_control':     # create and load model\n        vq_model = VQ_models[args.vq_model](\n            codebook_size=args.codebook_size,\n            codebook_embed_dim=args.codebook_embed_dim)\n        vq_model.to(device)\n        vq_model.eval()\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint        \n    \n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    # model.zero_init_mlp()\n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    # get_condition = HEDdetector().to(device).eval()\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n\n            x = batch['code']\n            image = batch['image']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n            condition_img = 2*(condition_img - 0.5)\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            image = image.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            image = random_sample_scale(image)\n            with torch.no_grad():\n                condition_img = get_condition(image.float()).repeat(1,3,1,1)\n                condition_img = 2*(condition_img - 0.5)\n           \n            if args.dataset == 't2i_control':\n                img = 2*(image/255 - 0.5)\n                \n                with torch.no_grad():\n                    _, _, [_, _, indices] = vq_model.encode(img)\n                x = indices.reshape(img.shape[0], -1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :x.shape[1]+120-1,:x.shape[1]+120-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512, 768, 832, 896, 960], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=15)\n    parser.add_argument(\"--lr\", type=float, default=1e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=16)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=30000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--condition-type\", type=str, choices=['segmentation', 'canny', 'hed', 'lineart', 'depth'], default=\"lineart\")\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    parser.add_argument(\"--report_to\",type=str,default=\"wandb\")\n    parser.add_argument(\"--task_name\",type=str,default='segmentation')\n    parser.add_argument(\"--dataset_name\",type=str,default=None)\n    parser.add_argument(\"--dataset_config_name\",type=str,default=None)\n    \n    parser.add_argument(\"--image_column\", type=str, default=\"image\", help=\"The column of the dataset containing the target image.\")\n    parser.add_argument(\"--conditioning_image_column\",type=str,default=\"control_seg\",help=\"The column of the dataset containing the controlnet conditioning image.\")\n    parser.add_argument(\"--caption_column\",type=str,default=\"prompt\",help=\"The column of the dataset containing a caption or a list of captions.\")\n    parser.add_argument(\"--label_column\",type=str,default=None,help=\"The column of the dataset containing the original labels. `seg_map` for ADE20K; `panoptic_seg_map` for COCO-Stuff.\")\n    parser.add_argument(\"--max_train_samples\",type=int,default=None)\n    parser.add_argument(\"--image_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--text_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--all_condition_dropout\",type=float,default=0)\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_seg.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\nfrom torch.optim.lr_scheduler import StepLR\n\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        adapter_size=args.adapter_size,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n    lr_scheduler = StepLR(optimizer, step_size=1, gamma=0.9) # 每10个epoch后，学习率乘以0.1\n\n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    \n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n            \n            x = batch['code']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n        \n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :-1,:-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n        lr_scheduler.step()\n\n        for param_group in optimizer.param_groups:\n            print(f\"Epoch {epoch + 1}, LR: {param_group['lr']}\")\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=512)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=20)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=96)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=1443)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    \n    parser.add_argument(\"--condition-type\", type=str, choices=['segmentation', 'canny', 'hed', 'lineart', 'depth'], default=\"segmentation\")\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--adapter-size\", type=str, default='small')\n    parser.add_argument(\"--get-image\", type=bool, default=False)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "autoregressive/train/train_t2i_seg_multiscale.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT\n#   nanoGPT: https://github.com/karpathy/nanoGPT\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nfrom PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom glob import glob\nimport time\nimport argparse\nimport os\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom utils.distributed import init_distributed_mode\nfrom utils.logger import create_logger\nfrom dataset.build import build_dataset\nfrom dataset.augmentation import center_crop_arr\nfrom autoregressive.train.train_c2i import creat_optimizer\n\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom pathlib import Path\nfrom accelerate import Accelerator\nfrom language.t5 import T5Embedder\nfrom dataset.t2i_control import build_t2i_control_code\nimport torch._dynamo\ntorch._dynamo.config.suppress_errors = True\nimport random\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\ndef random_sample_scale(image, condition=None):\n    H = np.arange(384, 1024+16, 16)\n    W = np.arange(384, 1024+16, 16)\n    resolution = [1024,1024]\n    while resolution[0]//16+resolution[1]//16 > 2304:\n        resolution = [random.choice(H), random.choice(W)]\n    assert resolution[0]//16+resolution[1]//16 <= 2304\n    image = F.interpolate(image.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n    if condition is not None:\n        condition = F.interpolate(condition.to(torch.float32), size=resolution, mode='bilinear', align_corners=False, antialias=True)\n        return image, condition\n    return image\n\n\ndef main(args):\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.gpt_model.replace(\"/\", \"-\") \n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n\n    # Setup model\n    latent_size = args.image_size // args.downsample_size\n    model = GPT_models[args.gpt_model](\n        vocab_size=args.vocab_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n        resid_dropout_p=args.dropout_p,\n        ffn_dropout_p=args.dropout_p,\n        token_dropout_p=args.token_dropout_p,\n        condition_type=args.condition_type,\n    ).to(device)\n    logger.info(f\"GPT Parameters: {sum(p.numel() for p in model.parameters()):,}\")\n\n\n    # Setup optimizer\n    optimizer = creat_optimizer(model, args.weight_decay, args.lr, (args.beta1, args.beta2), logger)\n\n    # Setup data:\n    if args.dataset == 't2i_control':     # create and load model\n        vq_model = VQ_models[args.vq_model](\n            codebook_size=args.codebook_size,\n            codebook_embed_dim=args.codebook_embed_dim)\n        vq_model.to(device)\n        vq_model.eval()\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint        \n    train_dataset = build_t2i_control_code(args)\n    sampler = DistributedSampler(\n        train_dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n\n    loader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=False,\n        collate_fn=train_dataset.collate_fn,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        num_workers=args.num_workers,\n        pin_memory=True,\n        sampler=sampler,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(train_dataset):,} images\")\n\n    # Prepare models for training:\n    if args.gpt_ckpt:\n        checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n        model.load_state_dict(checkpoint[\"model\"], strict=False)\n        # optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        train_steps = 0#checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.gpt_ckpt.split('/')[-1].split('.')[0])\n        start_epoch = 0#int(train_steps / int(len(dataset) / args.global_batch_size))\n        train_steps = 0#int(start_epoch * int(len(dataset) / args.global_batch_size))\n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.gpt_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n\n    if not args.no_compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        model = torch.compile(model) # requires PyTorch 2.0        \n    model = DDP(model.to(device), device_ids=[args.gpu], find_unused_parameters=True)\n    model.train()  # important! This enables embedding dropout for classifier-free guidance\n    \n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n    get_condition = HEDdetector().to(device).eval()\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for batch in loader:\n            \n            x = batch['code']\n            image = batch['image']\n            caption_emb = batch['caption_emb']\n            condition_img = batch['control']\n            condition_img = 2*(condition_img - 0.5)\n            attn_mask = batch['attn_mask']\n            valid = batch['valid']\n            y = caption_emb\n            x = x.to(device, non_blocking=True)\n            image = image.to(device, non_blocking=True)\n            y = y.to(device, non_blocking=True)\n            condition_img = condition_img.to(device, non_blocking=True)\n            with torch.no_grad():\n                condition_img = get_condition(image).unsqueeze(1).repeat(1,3,1,1)\n                condition_img = 2*(condition_img/255 - 0.5)\n            image, condition_img = random_sample_scale(image, condition_img)\n\n            if args.dataset == 't2i_control':\n                img = 2*(image/255 - 0.5)\n                \n                with torch.no_grad():\n                    _, _, [_, _, indices] = vq_model.encode(img)\n                x = indices.reshape(img.shape[0], -1)\n            z_indices = x.reshape(x.shape[0], -1)\n            c_indices = y.reshape(y.shape[0], y.shape[-2], y.shape[-1])\n            assert z_indices.shape[0] == c_indices.shape[0]\n            attn_mask = attn_mask.reshape(attn_mask.shape[0], 1, attn_mask.shape[-2], attn_mask.shape[-1]) # (bs, n_head, seq_len, seq_len)\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                _, loss = model(cond_idx=c_indices, idx=z_indices[:,:-1], targets=z_indices, mask=attn_mask[:, :, :x.shape[1]+120-1,:x.shape[1]+120-1], valid=valid, condition=condition_img.to(ptdtype))\n            # backward pass, with gradient scaling if training in fp16         \n            scaler.scale(loss).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)\n            # step the optimizer and scaler if training in fp16\n            scaler.step(optimizer)\n            scaler.update()\n            # flush the gradients as soon as we can, no need for this memory anymore\n            optimizer.zero_grad(set_to_none=True)\n\n            # Log loss values:\n            running_loss += loss.item()\n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if not args.no_compile:\n                        model_weight = model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=False)\n    parser.add_argument(\"--t5-feat-path\", type=str, required=False)\n    parser.add_argument(\"--short-t5-feat-path\", type=str, default=None, help=\"short caption of t5_feat_path\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=False, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-XL\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"t2i\")\n    parser.add_argument(\"--vocab-size\", type=int, default=16384, help=\"vocabulary size of visual tokenizer\")\n    parser.add_argument(\"--cls-token-num\", type=int, default=120, help=\"max token number of condition input\")\n    parser.add_argument(\"--dropout-p\", type=float, default=0.1, help=\"dropout_p of resid_dropout_p and ffn_dropout_p\")\n    parser.add_argument(\"--token-dropout-p\", type=float, default=0.1, help=\"dropout_p of token_dropout_p\")\n    parser.add_argument(\"--drop-path\", type=float, default=0.0, help=\"drop_path_rate of attention and ffn\")\n    parser.add_argument(\"--no-compile\", action='store_true')\n    parser.add_argument(\"--results-dir\", type=str, default=\"results\")\n    parser.add_argument(\"--dataset\", type=str, default='t2i_control')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=384)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    parser.add_argument(\"--epochs\", type=int, default=50)\n    parser.add_argument(\"--lr\", type=float, default=5e-5)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=64)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=2000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    \n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--code-path2\", type=str, default=None)\n    parser.add_argument(\"--condition-type\", type=str, choices=['segmentation', 'canny', 'hed', 'lineart', 'depth'], default=\"segmentation\")\n    parser.add_argument(\"--get-image\", type=bool, default=True)\n    parser.add_argument(\"--get-prompt\", type=bool, default=False)\n    parser.add_argument(\"--get-label\", type=bool, default=False)\n    parser.add_argument(\"--t5-path\", type=str, default='checkpoints/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--t5-feature-max-len\", type=int, default=120)\n    parser.add_argument(\"--t5-feature-dim\", type=int, default=2048)\n    parser.add_argument(\"--keep_in_memory\",type=bool,default=False)\n    parser.add_argument(\"--wrong_ids_file\",type=str,default=None)\n    parser.add_argument(\"--logging_dir\",type=str,default=\"logs\")\n    parser.add_argument(\"--report_to\",type=str,default=\"wandb\")\n    parser.add_argument(\"--task_name\",type=str,default='segmentation')\n    parser.add_argument(\"--dataset_name\",type=str,default=None)\n    parser.add_argument(\"--dataset_config_name\",type=str,default=None)\n    \n    parser.add_argument(\"--image_column\", type=str, default=\"image\", help=\"The column of the dataset containing the target image.\")\n    parser.add_argument(\"--conditioning_image_column\",type=str,default=\"control_seg\",help=\"The column of the dataset containing the controlnet conditioning image.\")\n    parser.add_argument(\"--caption_column\",type=str,default=\"prompt\",help=\"The column of the dataset containing a caption or a list of captions.\")\n    parser.add_argument(\"--label_column\",type=str,default=None,help=\"The column of the dataset containing the original labels. `seg_map` for ADE20K; `panoptic_seg_map` for COCO-Stuff.\")\n    parser.add_argument(\"--max_train_samples\",type=int,default=None)\n    parser.add_argument(\"--image_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--text_condition_dropout\",type=float,default=0)\n    parser.add_argument(\"--all_condition_dropout\",type=float,default=0)\n    \n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "condition/README.md",
    "content": "Prepare the preprocessing model\n\nHed: https://huggingface.co/lllyasviel/Annotators/blob/main/ControlNetHED.pth\\\nLineart: https://huggingface.co/spaces/awacke1/Image-to-Line-Drawings/resolve/main/model.pth\\\ndepth: https://huggingface.co/lllyasviel/Annotators/blob/main/dpt_hybrid-midas-501f0c75.pt (hybrid for inference)\\\n       https://huggingface.co/Intel/dpt-large (large for test conditional consistency and fid)\\\n\nWe recommend storing them in the following paths\n\n    |---condition\n        |---ckpts\n            |---dpt_large\n                |---config.json\n                |---preprocessor_config.json\n                |---pytorch_model.bin\n            |---ControlNetHED.pth\n            |---dpt_hybrid-midas-501f0c75.pt\n            |---model.pth\n        |---example\n        |---midas\n        .\n        .\n        ."
  },
  {
    "path": "condition/canny.py",
    "content": "import cv2\nimport torch\nimport numpy as np\n\n\nclass CannyDetector:\n    def __call__(self, img, low_threshold=100, high_threshold=200):\n        \"\"\"\n        input: array or tensor (H,W,3)\n        output: array (H,W)\n        \"\"\"\n        if torch.is_tensor(img):\n            img = img.cpu().detach().numpy().astype(np.uint8)\n        return cv2.Canny(img, low_threshold, high_threshold)\n    \n\nif __name__ == '__main__':\n    apply_canny = CannyDetector()\n    img = cv2.imread('condition/dragon_resize.png')\n    import numpy as np\n    print(img.max())\n    detected_map = apply_canny(img, 100, 200)\n    print(detected_map.shape, detected_map.max(), detected_map.min())\n    cv2.imwrite('condition/example_canny.jpg', detected_map)\n    np.save('condition/example_canny.npy', detected_map[None,None])"
  },
  {
    "path": "condition/depth.py",
    "content": "from controlnet_aux import LineartDetector\nimport torch\nimport cv2\nimport numpy as np\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nclass Depth:\n    def __init__(self, device):\n        self.model = DPTForDepthEstimation.from_pretrained(\"condition/ckpts/dpt_large\")\n        \n    def __call__(self, input_image):\n        \"\"\"\n        input: tensor()\n        \"\"\"\n        control_image = self.model(input_image)\n        return np.array(control_image)\n    \nif __name__ == '__main__':\n    import matplotlib.pyplot as plt\n    from tqdm import tqdm\n    from transformers import DPTImageProcessor, DPTForDepthEstimation\n    from PIL import Image\n\n    image = Image.open('condition/example/t2i/depth/depth.png')\n    img = cv2.imread('condition/example/t2i/depth/depth.png')\n    processor = DPTImageProcessor.from_pretrained(\"condition/ckpts/dpt_large\")\n    model = DPTForDepthEstimation.from_pretrained(\"condition/ckpts/dpt_large\")\n\n    inputs = torch.from_numpy(np.array(img)).permute(2,0,1).unsqueeze(0).float()#\n    inputs = 2*(inputs/255 - 0.5)\n    inputs = processor(images=image, return_tensors=\"pt\", size=(512,512))\n    print(inputs)\n    with torch.no_grad():\n        outputs = model(**inputs)\n        predicted_depth = outputs.predicted_depth\n    print(predicted_depth.shape)\n    prediction = torch.nn.functional.interpolate(\n        predicted_depth.unsqueeze(1),\n        size=image.size[::-1],\n        mode=\"bicubic\",\n        align_corners=False,\n    )\n\n    output = prediction.squeeze().cpu().numpy()\n    formatted = (output * 255 / np.max(output)).astype(\"uint8\")\n    \n    depth = Image.fromarray(formatted)\n    depth.save('condition/example/t2i/depth/example_depth.jpg')"
  },
  {
    "path": "condition/hed.py",
    "content": "# This is an improved version and model of HED edge detection with Apache License, Version 2.0.\n# Please use this implementation in your products\n# This implementation may produce slightly different results from Saining Xie's official implementations,\n# but it generates smoother edges and is more suitable for ControlNet as well as other image-to-image translations.\n# Different from official models and other implementations, this is an RGB-input model (rather than BGR)\n# and in this way it works better for gradio's RGB protocol\n\nimport os\nimport cv2\nimport torch\nimport numpy as np\nfrom torch.nn.parallel import DataParallel\nfrom einops import rearrange\nfrom condition.utils import annotator_ckpts_path\nimport torch.nn.functional as F\n\nclass DoubleConvBlock(torch.nn.Module):\n    def __init__(self, input_channel, output_channel, layer_number):\n        super().__init__()\n        self.convs = torch.nn.Sequential()\n        self.convs.append(torch.nn.Conv2d(in_channels=input_channel, out_channels=output_channel, kernel_size=(3, 3), stride=(1, 1), padding=1))\n        for i in range(1, layer_number):\n            self.convs.append(torch.nn.Conv2d(in_channels=output_channel, out_channels=output_channel, kernel_size=(3, 3), stride=(1, 1), padding=1))\n        self.projection = torch.nn.Conv2d(in_channels=output_channel, out_channels=1, kernel_size=(1, 1), stride=(1, 1), padding=0)\n\n    def __call__(self, x, down_sampling=False):\n        h = x\n        if down_sampling:\n            h = torch.nn.functional.max_pool2d(h, kernel_size=(2, 2), stride=(2, 2))\n        for conv in self.convs:\n            h = conv(h)\n            h = torch.nn.functional.relu(h)\n        return h, self.projection(h)\n\n\nclass ControlNetHED_Apache2(torch.nn.Module):\n    def __init__(self):\n        super().__init__()\n        self.norm = torch.nn.Parameter(torch.zeros(size=(1, 3, 1, 1)))\n        self.block1 = DoubleConvBlock(input_channel=3, output_channel=64, layer_number=2)\n        self.block2 = DoubleConvBlock(input_channel=64, output_channel=128, layer_number=2)\n        self.block3 = DoubleConvBlock(input_channel=128, output_channel=256, layer_number=3)\n        self.block4 = DoubleConvBlock(input_channel=256, output_channel=512, layer_number=3)\n        self.block5 = DoubleConvBlock(input_channel=512, output_channel=512, layer_number=3)\n\n    def __call__(self, x):\n        h = x - self.norm\n        h, projection1 = self.block1(h)\n        h, projection2 = self.block2(h, down_sampling=True)\n        h, projection3 = self.block3(h, down_sampling=True)\n        h, projection4 = self.block4(h, down_sampling=True)\n        h, projection5 = self.block5(h, down_sampling=True)\n        return projection1, projection2, projection3, projection4, projection5\n\n\nclass HEDdetector(torch.nn.Module):\n    def __init__(self):\n        super().__init__()\n        remote_model_path = \"https://huggingface.co/lllyasviel/Annotators/resolve/main/ControlNetHED.pth\"\n        modelpath = os.path.join(annotator_ckpts_path, \"ControlNetHED.pth\")\n        if not os.path.exists(modelpath):\n            from basicsr.utils.download_util import load_file_from_url\n            load_file_from_url(remote_model_path, model_dir=annotator_ckpts_path)\n        self.netNetwork = ControlNetHED_Apache2().float()#.to(self.device).eval()\n        self.netNetwork.load_state_dict(torch.load(modelpath))\n\n    def __call__(self, input_image):\n        \"\"\"\n        input: tensor (B,C,H,W)\n        output: tensor (B,H,W)\n        \"\"\"\n        B, C, H, W = input_image.shape\n        image_hed = input_image\n\n        edges = self.netNetwork(image_hed)\n        edges = [F.interpolate(e, size=(H, W), mode='bilinear', align_corners=False).squeeze(1) for e in edges]\n        edges = torch.stack(edges, dim=1)\n        edge = 1 / (1 + torch.exp(-torch.mean(edges, dim=1)))\n        edge = (edge * 255.0).clamp(0, 255)\n\n        return edge\n\n\ndef nms(x, t, s):\n    x = cv2.GaussianBlur(x.astype(np.float32), (0, 0), s)\n\n    f1 = np.array([[0, 0, 0], [1, 1, 1], [0, 0, 0]], dtype=np.uint8)\n    f2 = np.array([[0, 1, 0], [0, 1, 0], [0, 1, 0]], dtype=np.uint8)\n    f3 = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]], dtype=np.uint8)\n    f4 = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]], dtype=np.uint8)\n\n    y = np.zeros_like(x)\n\n    for f in [f1, f2, f3, f4]:\n        np.putmask(y, cv2.dilate(x, kernel=f) == x, x)\n\n    z = np.zeros_like(y, dtype=np.uint8)\n    z[y > t] = 255\n    return z\n\nif __name__ == '__main__':\n    import matplotlib.pyplot as plt\n    from tqdm import tqdm\n    import torch.nn.functional as F\n    device = torch.device('cuda')\n    apply_hed = HEDdetector().to(device).eval()\n    img = cv2.imread('condition/dragon_1024_512.jpg')\n    H,W = img.shape[:2]\n    resize_img = cv2.resize(img,(512,1024))\n    detected_map = apply_hed(torch.from_numpy(img).permute(2,0,1).unsqueeze(0).cuda())\n    resize_detected_map = apply_hed(torch.from_numpy(resize_img).permute(2,0,1).unsqueeze(0).cuda())\n    cv2.imwrite('condition/example_hed_resize.jpg', resize_detected_map[0].cpu().detach().numpy())\n    resize_detected_map = F.interpolate(resize_detected_map.unsqueeze(0).to(torch.float32), size=(H,W), mode='bilinear', align_corners=False, antialias=True)\n    print(abs(detected_map - resize_detected_map).sum())\n    print(img.shape, img.max(),img.min(),detected_map.shape, detected_map.max(),detected_map.min())\n    cv2.imwrite('condition/example_hed.jpg', detected_map[0].cpu().detach().numpy())\n    cv2.imwrite('condition/example_hed_resized.jpg', resize_detected_map[0,0].cpu().detach().numpy())"
  },
  {
    "path": "condition/lineart.py",
    "content": "from controlnet_aux import LineartDetector\nimport torch\nimport cv2\nimport numpy as np\nimport torch.nn as nn\n\n\nnorm_layer = nn.InstanceNorm2d\nclass ResidualBlock(nn.Module):\n    def __init__(self, in_features):\n        super(ResidualBlock, self).__init__()\n\n        conv_block = [  nn.ReflectionPad2d(1),\n                        nn.Conv2d(in_features, in_features, 3),\n                        norm_layer(in_features),\n                        nn.ReLU(inplace=True),\n                        nn.ReflectionPad2d(1),\n                        nn.Conv2d(in_features, in_features, 3),\n                        norm_layer(in_features)\n                        ]\n\n        self.conv_block = nn.Sequential(*conv_block)\n\n    def forward(self, x):\n        return x + self.conv_block(x)\nclass LineArt(nn.Module):\n    def __init__(self, input_nc=3, output_nc=1, n_residual_blocks=3, sigmoid=True):\n        super(LineArt, self).__init__()\n\n        # Initial convolution block\n        model0 = [   nn.ReflectionPad2d(3),\n                    nn.Conv2d(input_nc, 64, 7),\n                    norm_layer(64),\n                    nn.ReLU(inplace=True) ]\n        self.model0 = nn.Sequential(*model0)\n\n        # Downsampling\n        model1 = []\n        in_features = 64\n        out_features = in_features*2\n        for _ in range(2):\n            model1 += [  nn.Conv2d(in_features, out_features, 3, stride=2, padding=1),\n                        norm_layer(out_features),\n                        nn.ReLU(inplace=True) ]\n            in_features = out_features\n            out_features = in_features*2\n        self.model1 = nn.Sequential(*model1)\n\n        model2 = []\n        # Residual blocks\n        for _ in range(n_residual_blocks):\n            model2 += [ResidualBlock(in_features)]\n        self.model2 = nn.Sequential(*model2)\n\n        # Upsampling\n        model3 = []\n        out_features = in_features//2\n        for _ in range(2):\n            model3 += [  nn.ConvTranspose2d(in_features, out_features, 3, stride=2, padding=1, output_padding=1),\n                        norm_layer(out_features),\n                        nn.ReLU(inplace=True) ]\n            in_features = out_features\n            out_features = in_features//2\n        self.model3 = nn.Sequential(*model3)\n\n        # Output layer\n        model4 = [  nn.ReflectionPad2d(3),\n                        nn.Conv2d(64, output_nc, 7)]\n        if sigmoid:\n            model4 += [nn.Sigmoid()]\n\n        self.model4 = nn.Sequential(*model4)\n\n    def forward(self, x, cond=None):\n        \"\"\"\n        input: tensor (B,C,H,W)\n        output: tensor (B,1,H,W) 0~1\n        \"\"\"\n\n        out = self.model0(x)\n        out = self.model1(out)\n        out = self.model2(out)\n        out = self.model3(out)\n        out = self.model4(out)\n\n        return out\n    \n    \nif __name__ == '__main__':\n    import matplotlib.pyplot as plt\n    from tqdm import tqdm\n    apply_lineart = LineArt()\n    apply_lineart.load_state_dict(torch.load('condition/ckpts/model.pth', map_location=torch.device('cpu')))\n    img = cv2.imread('condition/car_448_768.jpg')\n    img = torch.from_numpy(img).permute(2,0,1).unsqueeze(0).repeat(8,1,1,1).float()\n    detected_map = apply_lineart(img)\n    print(img.shape, img.max(),img.min(),detected_map.shape, detected_map.max(),detected_map.min())\n    cv2.imwrite('condition/example_lineart.jpg', 255*detected_map[0,0].cpu().detach().numpy())"
  },
  {
    "path": "condition/midas/depth.py",
    "content": "# Midas Depth Estimation\n# From https://github.com/isl-org/MiDaS\n# MIT LICENSE\n\nimport cv2\nimport numpy as np\nimport torch\nimport sys\nsys.path.append('/data/vjuicefs_sz_cv_v2/11171709/ControlAR')\nfrom einops import rearrange\n# from .api import MiDaSInference\nfrom condition.utils import annotator_ckpts_path\nfrom condition.midas.midas.dpt_depth import DPTDepthModel\nfrom condition.midas.midas.midas_net import MidasNet\nfrom condition.midas.midas.midas_net_custom import MidasNet_small\nfrom condition.midas.midas.transforms import Resize, NormalizeImage, PrepareForNet\nimport os\nimport torch.nn as nn\nfrom torchvision.transforms import Compose\n\nISL_PATHS = {\n    \"dpt_large\": os.path.join(annotator_ckpts_path, \"dpt_large-midas-2f21e586.pt\"),\n    \"dpt_hybrid\": os.path.join(annotator_ckpts_path, \"dpt_hybrid-midas-501f0c75.pt\"),\n    \"midas_v21\": \"\",\n    \"midas_v21_small\": \"\",\n}\n\nremote_model_path = \"https://huggingface.co/lllyasviel/ControlNet/resolve/main/annotator/ckpts/dpt_hybrid-midas-501f0c75.pt\"\n\n\ndef disabled_train(self, mode=True):\n    \"\"\"Overwrite model.train with this function to make sure train/eval mode\n    does not change anymore.\"\"\"\n    return self\n\n\ndef load_midas_transform(model_type):\n    # https://github.com/isl-org/MiDaS/blob/master/run.py\n    # load transform only\n    if model_type == \"dpt_large\":  # DPT-Large\n        net_w, net_h = 384, 384\n        resize_mode = \"minimal\"\n        normalization = NormalizeImage(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])\n\n    elif model_type == \"dpt_hybrid\":  # DPT-Hybrid\n        net_w, net_h = 384, 384\n        resize_mode = \"minimal\"\n        normalization = NormalizeImage(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])\n\n    elif model_type == \"midas_v21\":\n        net_w, net_h = 384, 384\n        resize_mode = \"upper_bound\"\n        normalization = NormalizeImage(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n\n    elif model_type == \"midas_v21_small\":\n        net_w, net_h = 256, 256\n        resize_mode = \"upper_bound\"\n        normalization = NormalizeImage(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n\n    else:\n        assert False, f\"model_type '{model_type}' not implemented, use: --model_type large\"\n\n    transform = Compose(\n        [\n            Resize(\n                net_w,\n                net_h,\n                resize_target=None,\n                keep_aspect_ratio=True,\n                ensure_multiple_of=32,\n                resize_method=resize_mode,\n                image_interpolation_method=cv2.INTER_CUBIC,\n            ),\n            normalization,\n            PrepareForNet(),\n        ]\n    )\n\n    return transform\n\n\ndef load_model(model_type):\n    # https://github.com/isl-org/MiDaS/blob/master/run.py\n    # load network\n    model_path = ISL_PATHS[model_type]\n    if model_type == \"dpt_large\":  # DPT-Large\n        model = DPTDepthModel(\n            path=model_path,\n            backbone=\"vitl16_384\",\n            non_negative=True,\n        )\n        net_w, net_h = 384, 384\n        resize_mode = \"minimal\"\n        normalization = NormalizeImage(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])\n\n    elif model_type == \"dpt_hybrid\":  # DPT-Hybrid\n        if not os.path.exists(model_path):\n            from basicsr.utils.download_util import load_file_from_url\n            load_file_from_url(remote_model_path, model_dir=annotator_ckpts_path)\n\n        model = DPTDepthModel(\n            path=model_path,\n            backbone=\"vitb_rn50_384\",\n            non_negative=True,\n        )\n        net_w, net_h = 384, 384\n        resize_mode = \"minimal\"\n        normalization = NormalizeImage(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])\n\n    elif model_type == \"midas_v21\":\n        model = MidasNet(model_path, non_negative=True)\n        net_w, net_h = 384, 384\n        resize_mode = \"upper_bound\"\n        normalization = NormalizeImage(\n            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]\n        )\n\n    elif model_type == \"midas_v21_small\":\n        model = MidasNet_small(model_path, features=64, backbone=\"efficientnet_lite3\", exportable=True,\n                               non_negative=True, blocks={'expand': True})\n        net_w, net_h = 256, 256\n        resize_mode = \"upper_bound\"\n        normalization = NormalizeImage(\n            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]\n        )\n\n    else:\n        print(f\"model_type '{model_type}' not implemented, use: --model_type large\")\n        assert False\n\n    transform = Compose(\n        [\n            Resize(\n                net_w,\n                net_h,\n                resize_target=None,\n                keep_aspect_ratio=True,\n                ensure_multiple_of=32,\n                resize_method=resize_mode,\n                image_interpolation_method=cv2.INTER_CUBIC,\n            ),\n            normalization,\n            PrepareForNet(),\n        ]\n    )\n\n    return model.eval(), transform\n\n\nclass MiDaSInference(nn.Module):\n    MODEL_TYPES_TORCH_HUB = [\n        \"DPT_Large\",\n        \"DPT_Hybrid\",\n        \"MiDaS_small\"\n    ]\n    MODEL_TYPES_ISL = [\n        \"dpt_large\",\n        \"dpt_hybrid\",\n        \"midas_v21\",\n        \"midas_v21_small\",\n    ]\n\n    def __init__(self, model_type):\n        super().__init__()\n        assert (model_type in self.MODEL_TYPES_ISL)\n        model, _ = load_model(model_type)\n        self.model = model\n        self.model.train = disabled_train\n\n    def forward(self, x):\n        with torch.no_grad():\n            prediction = self.model(x)\n        return prediction\n\n\nclass MidasDetector:\n    def __init__(self,device=torch.device('cuda:0'), model_type=\"dpt_hybrid\"):\n        self.device = device\n        self.model = MiDaSInference(model_type=model_type).to(device)\n\n    def __call__(self, input_image, a=np.pi * 2.0, bg_th=0.1):\n        assert input_image.ndim == 3\n        image_depth = input_image\n        with torch.no_grad():\n            image_depth = image_depth\n            image_depth = image_depth / 127.5 - 1.0\n            image_depth = rearrange(image_depth, 'h w c -> 1 c h w')\n            depth = self.model(image_depth)[0]\n\n            depth_pt = depth.clone()\n            depth_pt -= torch.min(depth_pt)\n            depth_pt /= torch.max(depth_pt)\n            depth_pt = depth_pt.cpu().numpy()\n            depth_image = (depth_pt * 255.0).clip(0, 255).astype(np.uint8)\n\n            depth_np = depth.cpu().numpy()\n            x = cv2.Sobel(depth_np, cv2.CV_32F, 1, 0, ksize=3)\n            y = cv2.Sobel(depth_np, cv2.CV_32F, 0, 1, ksize=3)\n            z = np.ones_like(x) * a\n            x[depth_pt < bg_th] = 0\n            y[depth_pt < bg_th] = 0\n            # normal = np.stack([x, y, z], axis=2)\n            # normal /= np.sum(normal ** 2.0, axis=2, keepdims=True) ** 0.5\n            # normal_image = (normal * 127.5 + 127.5).clip(0, 255).astype(np.uint8)\n\n            return depth_image#, normal_image\n        \nif __name__ == '__main__':\n    import matplotlib.pyplot as plt\n    from tqdm import tqdm\n    from PIL import Image\n    import torchvision.transforms.functional as F\n    apply_depth = MidasDetector(device=torch.device('cuda:0'))\n    img = cv2.imread('/data/vjuicefs_sz_cv_v2/11171709/ControlAR_github/condition/example/t2i/multi_resolution/car_1_448_768.jpg')\n    img = cv2.resize(img,(768,448))\n    detected_map = apply_depth(torch.from_numpy(img).cuda().float())\n    print(img.shape, img.max(),img.min(),detected_map.shape, detected_map.max(),detected_map.min())\n    plt.imshow(detected_map, cmap='gray')\n    plt.show()\n    cv2.imwrite('condition/example_depth.jpg', detected_map)\n    # cv2.imwrite('condition/example_normal.jpg', normal_map)\n"
  },
  {
    "path": "condition/midas/midas/__init__.py",
    "content": ""
  },
  {
    "path": "condition/midas/midas/base_model.py",
    "content": "import torch\n\n\nclass BaseModel(torch.nn.Module):\n    def load(self, path):\n        \"\"\"Load model from file.\n\n        Args:\n            path (str): file path\n        \"\"\"\n        parameters = torch.load(path, map_location=torch.device('cpu'))\n\n        if \"optimizer\" in parameters:\n            parameters = parameters[\"model\"]\n\n        self.load_state_dict(parameters)"
  },
  {
    "path": "condition/midas/midas/blocks.py",
    "content": "import torch\nimport torch.nn as nn\n\nfrom .vit import (\n    _make_pretrained_vitb_rn50_384,\n    _make_pretrained_vitl16_384,\n    _make_pretrained_vitb16_384,\n    forward_vit,\n)\n\ndef _make_encoder(backbone, features, use_pretrained, groups=1, expand=False, exportable=True, hooks=None, use_vit_only=False, use_readout=\"ignore\",):\n    if backbone == \"vitl16_384\":\n        pretrained = _make_pretrained_vitl16_384(\n            use_pretrained, hooks=hooks, use_readout=use_readout\n        )\n        scratch = _make_scratch(\n            [256, 512, 1024, 1024], features, groups=groups, expand=expand\n        )  # ViT-L/16 - 85.0% Top1 (backbone)\n    elif backbone == \"vitb_rn50_384\":\n        pretrained = _make_pretrained_vitb_rn50_384(\n            use_pretrained,\n            hooks=hooks,\n            use_vit_only=use_vit_only,\n            use_readout=use_readout,\n        )\n        scratch = _make_scratch(\n            [256, 512, 768, 768], features, groups=groups, expand=expand\n        )  # ViT-H/16 - 85.0% Top1 (backbone)\n    elif backbone == \"vitb16_384\":\n        pretrained = _make_pretrained_vitb16_384(\n            use_pretrained, hooks=hooks, use_readout=use_readout\n        )\n        scratch = _make_scratch(\n            [96, 192, 384, 768], features, groups=groups, expand=expand\n        )  # ViT-B/16 - 84.6% Top1 (backbone)\n    elif backbone == \"resnext101_wsl\":\n        pretrained = _make_pretrained_resnext101_wsl(use_pretrained)\n        scratch = _make_scratch([256, 512, 1024, 2048], features, groups=groups, expand=expand)     # efficientnet_lite3  \n    elif backbone == \"efficientnet_lite3\":\n        pretrained = _make_pretrained_efficientnet_lite3(use_pretrained, exportable=exportable)\n        scratch = _make_scratch([32, 48, 136, 384], features, groups=groups, expand=expand)  # efficientnet_lite3     \n    else:\n        print(f\"Backbone '{backbone}' not implemented\")\n        assert False\n        \n    return pretrained, scratch\n\n\ndef _make_scratch(in_shape, out_shape, groups=1, expand=False):\n    scratch = nn.Module()\n\n    out_shape1 = out_shape\n    out_shape2 = out_shape\n    out_shape3 = out_shape\n    out_shape4 = out_shape\n    if expand==True:\n        out_shape1 = out_shape\n        out_shape2 = out_shape*2\n        out_shape3 = out_shape*4\n        out_shape4 = out_shape*8\n\n    scratch.layer1_rn = nn.Conv2d(\n        in_shape[0], out_shape1, kernel_size=3, stride=1, padding=1, bias=False, groups=groups\n    )\n    scratch.layer2_rn = nn.Conv2d(\n        in_shape[1], out_shape2, kernel_size=3, stride=1, padding=1, bias=False, groups=groups\n    )\n    scratch.layer3_rn = nn.Conv2d(\n        in_shape[2], out_shape3, kernel_size=3, stride=1, padding=1, bias=False, groups=groups\n    )\n    scratch.layer4_rn = nn.Conv2d(\n        in_shape[3], out_shape4, kernel_size=3, stride=1, padding=1, bias=False, groups=groups\n    )\n\n    return scratch\n\n\ndef _make_pretrained_efficientnet_lite3(use_pretrained, exportable=False):\n    efficientnet = torch.hub.load(\n        \"rwightman/gen-efficientnet-pytorch\",\n        \"tf_efficientnet_lite3\",\n        pretrained=use_pretrained,\n        exportable=exportable\n    )\n    return _make_efficientnet_backbone(efficientnet)\n\n\ndef _make_efficientnet_backbone(effnet):\n    pretrained = nn.Module()\n\n    pretrained.layer1 = nn.Sequential(\n        effnet.conv_stem, effnet.bn1, effnet.act1, *effnet.blocks[0:2]\n    )\n    pretrained.layer2 = nn.Sequential(*effnet.blocks[2:3])\n    pretrained.layer3 = nn.Sequential(*effnet.blocks[3:5])\n    pretrained.layer4 = nn.Sequential(*effnet.blocks[5:9])\n\n    return pretrained\n    \n\ndef _make_resnet_backbone(resnet):\n    pretrained = nn.Module()\n    pretrained.layer1 = nn.Sequential(\n        resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1\n    )\n\n    pretrained.layer2 = resnet.layer2\n    pretrained.layer3 = resnet.layer3\n    pretrained.layer4 = resnet.layer4\n\n    return pretrained\n\n\ndef _make_pretrained_resnext101_wsl(use_pretrained):\n    resnet = torch.hub.load(\"facebookresearch/WSL-Images\", \"resnext101_32x8d_wsl\")\n    return _make_resnet_backbone(resnet)\n\n\n\nclass Interpolate(nn.Module):\n    \"\"\"Interpolation module.\n    \"\"\"\n\n    def __init__(self, scale_factor, mode, align_corners=False):\n        \"\"\"Init.\n\n        Args:\n            scale_factor (float): scaling\n            mode (str): interpolation mode\n        \"\"\"\n        super(Interpolate, self).__init__()\n\n        self.interp = nn.functional.interpolate\n        self.scale_factor = scale_factor\n        self.mode = mode\n        self.align_corners = align_corners\n\n    def forward(self, x):\n        \"\"\"Forward pass.\n\n        Args:\n            x (tensor): input\n\n        Returns:\n            tensor: interpolated data\n        \"\"\"\n\n        x = self.interp(\n            x, scale_factor=self.scale_factor, mode=self.mode, align_corners=self.align_corners\n        )\n\n        return x\n\n\nclass ResidualConvUnit(nn.Module):\n    \"\"\"Residual convolution module.\n    \"\"\"\n\n    def __init__(self, features):\n        \"\"\"Init.\n\n        Args:\n            features (int): number of features\n        \"\"\"\n        super().__init__()\n\n        self.conv1 = nn.Conv2d(\n            features, features, kernel_size=3, stride=1, padding=1, bias=True\n        )\n\n        self.conv2 = nn.Conv2d(\n            features, features, kernel_size=3, stride=1, padding=1, bias=True\n        )\n\n        self.relu = nn.ReLU(inplace=True)\n\n    def forward(self, x):\n        \"\"\"Forward pass.\n\n        Args:\n            x (tensor): input\n\n        Returns:\n            tensor: output\n        \"\"\"\n        out = self.relu(x)\n        out = self.conv1(out)\n        out = self.relu(out)\n        out = self.conv2(out)\n\n        return out + x\n\n\nclass FeatureFusionBlock(nn.Module):\n    \"\"\"Feature fusion block.\n    \"\"\"\n\n    def __init__(self, features):\n        \"\"\"Init.\n\n        Args:\n            features (int): number of features\n        \"\"\"\n        super(FeatureFusionBlock, self).__init__()\n\n        self.resConfUnit1 = ResidualConvUnit(features)\n        self.resConfUnit2 = ResidualConvUnit(features)\n\n    def forward(self, *xs):\n        \"\"\"Forward pass.\n\n        Returns:\n            tensor: output\n        \"\"\"\n        output = xs[0]\n\n        if len(xs) == 2:\n            output += self.resConfUnit1(xs[1])\n\n        output = self.resConfUnit2(output)\n\n        output = nn.functional.interpolate(\n            output, scale_factor=2, mode=\"bilinear\", align_corners=True\n        )\n\n        return output\n\n\n\n\nclass ResidualConvUnit_custom(nn.Module):\n    \"\"\"Residual convolution module.\n    \"\"\"\n\n    def __init__(self, features, activation, bn):\n        \"\"\"Init.\n\n        Args:\n            features (int): number of features\n        \"\"\"\n        super().__init__()\n\n        self.bn = bn\n\n        self.groups=1\n\n        self.conv1 = nn.Conv2d(\n            features, features, kernel_size=3, stride=1, padding=1, bias=True, groups=self.groups\n        )\n        \n        self.conv2 = nn.Conv2d(\n            features, features, kernel_size=3, stride=1, padding=1, bias=True, groups=self.groups\n        )\n\n        if self.bn==True:\n            self.bn1 = nn.BatchNorm2d(features)\n            self.bn2 = nn.BatchNorm2d(features)\n\n        self.activation = activation\n\n        self.skip_add = nn.quantized.FloatFunctional()\n\n    def forward(self, x):\n        \"\"\"Forward pass.\n\n        Args:\n            x (tensor): input\n\n        Returns:\n            tensor: output\n        \"\"\"\n        \n        out = self.activation(x)\n        out = self.conv1(out)\n        if self.bn==True:\n            out = self.bn1(out)\n       \n        out = self.activation(out)\n        out = self.conv2(out)\n        if self.bn==True:\n            out = self.bn2(out)\n\n        if self.groups > 1:\n            out = self.conv_merge(out)\n\n        return self.skip_add.add(out, x)\n\n        # return out + x\n\n\nclass FeatureFusionBlock_custom(nn.Module):\n    \"\"\"Feature fusion block.\n    \"\"\"\n\n    def __init__(self, features, activation, deconv=False, bn=False, expand=False, align_corners=True):\n        \"\"\"Init.\n\n        Args:\n            features (int): number of features\n        \"\"\"\n        super(FeatureFusionBlock_custom, self).__init__()\n\n        self.deconv = deconv\n        self.align_corners = align_corners\n\n        self.groups=1\n\n        self.expand = expand\n        out_features = features\n        if self.expand==True:\n            out_features = features//2\n        \n        self.out_conv = nn.Conv2d(features, out_features, kernel_size=1, stride=1, padding=0, bias=True, groups=1)\n\n        self.resConfUnit1 = ResidualConvUnit_custom(features, activation, bn)\n        self.resConfUnit2 = ResidualConvUnit_custom(features, activation, bn)\n        \n        self.skip_add = nn.quantized.FloatFunctional()\n\n    def forward(self, *xs):\n        \"\"\"Forward pass.\n\n        Returns:\n            tensor: output\n        \"\"\"\n        output = xs[0]\n\n        if len(xs) == 2:\n            res = self.resConfUnit1(xs[1])\n            output = self.skip_add.add(output, res)\n            # output += res\n\n        output = self.resConfUnit2(output)\n\n        output = nn.functional.interpolate(\n            output, scale_factor=2, mode=\"bilinear\", align_corners=self.align_corners\n        )\n\n        output = self.out_conv(output)\n\n        return output"
  },
  {
    "path": "condition/midas/midas/dpt_depth.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom .base_model import BaseModel\nfrom .blocks import (\n    FeatureFusionBlock,\n    FeatureFusionBlock_custom,\n    Interpolate,\n    _make_encoder,\n    forward_vit,\n)\n\n\ndef _make_fusion_block(features, use_bn):\n    return FeatureFusionBlock_custom(\n        features,\n        nn.ReLU(False),\n        deconv=False,\n        bn=use_bn,\n        expand=False,\n        align_corners=True,\n    )\n\n\nclass DPT(BaseModel):\n    def __init__(\n        self,\n        head,\n        features=256,\n        backbone=\"vitb_rn50_384\",\n        readout=\"project\",\n        channels_last=False,\n        use_bn=False,\n    ):\n\n        super(DPT, self).__init__()\n\n        self.channels_last = channels_last\n\n        hooks = {\n            \"vitb_rn50_384\": [0, 1, 8, 11],\n            \"vitb16_384\": [2, 5, 8, 11],\n            \"vitl16_384\": [5, 11, 17, 23],\n        }\n\n        # Instantiate backbone and reassemble blocks\n        self.pretrained, self.scratch = _make_encoder(\n            backbone,\n            features,\n            False, # Set to true of you want to train from scratch, uses ImageNet weights\n            groups=1,\n            expand=False,\n            exportable=False,\n            hooks=hooks[backbone],\n            use_readout=readout,\n        )\n\n        self.scratch.refinenet1 = _make_fusion_block(features, use_bn)\n        self.scratch.refinenet2 = _make_fusion_block(features, use_bn)\n        self.scratch.refinenet3 = _make_fusion_block(features, use_bn)\n        self.scratch.refinenet4 = _make_fusion_block(features, use_bn)\n\n        self.scratch.output_conv = head\n\n\n    def forward(self, x):\n        if self.channels_last == True:\n            x.contiguous(memory_format=torch.channels_last)\n\n        layer_1, layer_2, layer_3, layer_4 = forward_vit(self.pretrained, x)\n\n        layer_1_rn = self.scratch.layer1_rn(layer_1)\n        layer_2_rn = self.scratch.layer2_rn(layer_2)\n        layer_3_rn = self.scratch.layer3_rn(layer_3)\n        layer_4_rn = self.scratch.layer4_rn(layer_4)\n\n        path_4 = self.scratch.refinenet4(layer_4_rn)\n        path_3 = self.scratch.refinenet3(path_4, layer_3_rn)\n        path_2 = self.scratch.refinenet2(path_3, layer_2_rn)\n        path_1 = self.scratch.refinenet1(path_2, layer_1_rn)\n\n        out = self.scratch.output_conv(path_1)\n\n        return out\n\n\nclass DPTDepthModel(DPT):\n    def __init__(self, path=None, non_negative=True, **kwargs):\n        features = kwargs[\"features\"] if \"features\" in kwargs else 256\n\n        head = nn.Sequential(\n            nn.Conv2d(features, features // 2, kernel_size=3, stride=1, padding=1),\n            Interpolate(scale_factor=2, mode=\"bilinear\", align_corners=True),\n            nn.Conv2d(features // 2, 32, kernel_size=3, stride=1, padding=1),\n            nn.ReLU(True),\n            nn.Conv2d(32, 1, kernel_size=1, stride=1, padding=0),\n            nn.ReLU(True) if non_negative else nn.Identity(),\n            nn.Identity(),\n        )\n\n        super().__init__(head, **kwargs)\n\n        if path is not None:\n           self.load(path)\n\n    def forward(self, x):\n        return super().forward(x).squeeze(dim=1)"
  },
  {
    "path": "condition/midas/midas/midas_net.py",
    "content": "\"\"\"MidashNet: Network for monocular depth estimation trained by mixing several datasets.\nThis file contains code that is adapted from\nhttps://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py\n\"\"\"\nimport torch\nimport torch.nn as nn\n\nfrom .base_model import BaseModel\nfrom .blocks import FeatureFusionBlock, Interpolate, _make_encoder\n\n\nclass MidasNet(BaseModel):\n    \"\"\"Network for monocular depth estimation.\n    \"\"\"\n\n    def __init__(self, path=None, features=256, non_negative=True):\n        \"\"\"Init.\n\n        Args:\n            path (str, optional): Path to saved model. Defaults to None.\n            features (int, optional): Number of features. Defaults to 256.\n            backbone (str, optional): Backbone network for encoder. Defaults to resnet50\n        \"\"\"\n        print(\"Loading weights: \", path)\n\n        super(MidasNet, self).__init__()\n\n        use_pretrained = False if path is None else True\n\n        self.pretrained, self.scratch = _make_encoder(backbone=\"resnext101_wsl\", features=features, use_pretrained=use_pretrained)\n\n        self.scratch.refinenet4 = FeatureFusionBlock(features)\n        self.scratch.refinenet3 = FeatureFusionBlock(features)\n        self.scratch.refinenet2 = FeatureFusionBlock(features)\n        self.scratch.refinenet1 = FeatureFusionBlock(features)\n\n        self.scratch.output_conv = nn.Sequential(\n            nn.Conv2d(features, 128, kernel_size=3, stride=1, padding=1),\n            Interpolate(scale_factor=2, mode=\"bilinear\"),\n            nn.Conv2d(128, 32, kernel_size=3, stride=1, padding=1),\n            nn.ReLU(True),\n            nn.Conv2d(32, 1, kernel_size=1, stride=1, padding=0),\n            nn.ReLU(True) if non_negative else nn.Identity(),\n        )\n\n        if path:\n            self.load(path)\n\n    def forward(self, x):\n        \"\"\"Forward pass.\n\n        Args:\n            x (tensor): input data (image)\n\n        Returns:\n            tensor: depth\n        \"\"\"\n\n        layer_1 = self.pretrained.layer1(x)\n        layer_2 = self.pretrained.layer2(layer_1)\n        layer_3 = self.pretrained.layer3(layer_2)\n        layer_4 = self.pretrained.layer4(layer_3)\n\n        layer_1_rn = self.scratch.layer1_rn(layer_1)\n        layer_2_rn = self.scratch.layer2_rn(layer_2)\n        layer_3_rn = self.scratch.layer3_rn(layer_3)\n        layer_4_rn = self.scratch.layer4_rn(layer_4)\n\n        path_4 = self.scratch.refinenet4(layer_4_rn)\n        path_3 = self.scratch.refinenet3(path_4, layer_3_rn)\n        path_2 = self.scratch.refinenet2(path_3, layer_2_rn)\n        path_1 = self.scratch.refinenet1(path_2, layer_1_rn)\n\n        out = self.scratch.output_conv(path_1)\n\n        return torch.squeeze(out, dim=1)"
  },
  {
    "path": "condition/midas/midas/midas_net_custom.py",
    "content": "\"\"\"MidashNet: Network for monocular depth estimation trained by mixing several datasets.\nThis file contains code that is adapted from\nhttps://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py\n\"\"\"\nimport torch\nimport torch.nn as nn\n\nfrom .base_model import BaseModel\nfrom .blocks import FeatureFusionBlock, FeatureFusionBlock_custom, Interpolate, _make_encoder\n\n\nclass MidasNet_small(BaseModel):\n    \"\"\"Network for monocular depth estimation.\n    \"\"\"\n\n    def __init__(self, path=None, features=64, backbone=\"efficientnet_lite3\", non_negative=True, exportable=True, channels_last=False, align_corners=True,\n        blocks={'expand': True}):\n        \"\"\"Init.\n\n        Args:\n            path (str, optional): Path to saved model. Defaults to None.\n            features (int, optional): Number of features. Defaults to 256.\n            backbone (str, optional): Backbone network for encoder. Defaults to resnet50\n        \"\"\"\n        print(\"Loading weights: \", path)\n\n        super(MidasNet_small, self).__init__()\n\n        use_pretrained = False if path else True\n                \n        self.channels_last = channels_last\n        self.blocks = blocks\n        self.backbone = backbone\n\n        self.groups = 1\n\n        features1=features\n        features2=features\n        features3=features\n        features4=features\n        self.expand = False\n        if \"expand\" in self.blocks and self.blocks['expand'] == True:\n            self.expand = True\n            features1=features\n            features2=features*2\n            features3=features*4\n            features4=features*8\n\n        self.pretrained, self.scratch = _make_encoder(self.backbone, features, use_pretrained, groups=self.groups, expand=self.expand, exportable=exportable)\n  \n        self.scratch.activation = nn.ReLU(False)    \n\n        self.scratch.refinenet4 = FeatureFusionBlock_custom(features4, self.scratch.activation, deconv=False, bn=False, expand=self.expand, align_corners=align_corners)\n        self.scratch.refinenet3 = FeatureFusionBlock_custom(features3, self.scratch.activation, deconv=False, bn=False, expand=self.expand, align_corners=align_corners)\n        self.scratch.refinenet2 = FeatureFusionBlock_custom(features2, self.scratch.activation, deconv=False, bn=False, expand=self.expand, align_corners=align_corners)\n        self.scratch.refinenet1 = FeatureFusionBlock_custom(features1, self.scratch.activation, deconv=False, bn=False, align_corners=align_corners)\n\n        \n        self.scratch.output_conv = nn.Sequential(\n            nn.Conv2d(features, features//2, kernel_size=3, stride=1, padding=1, groups=self.groups),\n            Interpolate(scale_factor=2, mode=\"bilinear\"),\n            nn.Conv2d(features//2, 32, kernel_size=3, stride=1, padding=1),\n            self.scratch.activation,\n            nn.Conv2d(32, 1, kernel_size=1, stride=1, padding=0),\n            nn.ReLU(True) if non_negative else nn.Identity(),\n            nn.Identity(),\n        )\n        \n        if path:\n            self.load(path)\n\n\n    def forward(self, x):\n        \"\"\"Forward pass.\n\n        Args:\n            x (tensor): input data (image)\n\n        Returns:\n            tensor: depth\n        \"\"\"\n        if self.channels_last==True:\n            print(\"self.channels_last = \", self.channels_last)\n            x.contiguous(memory_format=torch.channels_last)\n\n\n        layer_1 = self.pretrained.layer1(x)\n        layer_2 = self.pretrained.layer2(layer_1)\n        layer_3 = self.pretrained.layer3(layer_2)\n        layer_4 = self.pretrained.layer4(layer_3)\n        \n        layer_1_rn = self.scratch.layer1_rn(layer_1)\n        layer_2_rn = self.scratch.layer2_rn(layer_2)\n        layer_3_rn = self.scratch.layer3_rn(layer_3)\n        layer_4_rn = self.scratch.layer4_rn(layer_4)\n\n\n        path_4 = self.scratch.refinenet4(layer_4_rn)\n        path_3 = self.scratch.refinenet3(path_4, layer_3_rn)\n        path_2 = self.scratch.refinenet2(path_3, layer_2_rn)\n        path_1 = self.scratch.refinenet1(path_2, layer_1_rn)\n        \n        out = self.scratch.output_conv(path_1)\n\n        return torch.squeeze(out, dim=1)\n\n\n\ndef fuse_model(m):\n    prev_previous_type = nn.Identity()\n    prev_previous_name = ''\n    previous_type = nn.Identity()\n    previous_name = ''\n    for name, module in m.named_modules():\n        if prev_previous_type == nn.Conv2d and previous_type == nn.BatchNorm2d and type(module) == nn.ReLU:\n            # print(\"FUSED \", prev_previous_name, previous_name, name)\n            torch.quantization.fuse_modules(m, [prev_previous_name, previous_name, name], inplace=True)\n        elif prev_previous_type == nn.Conv2d and previous_type == nn.BatchNorm2d:\n            # print(\"FUSED \", prev_previous_name, previous_name)\n            torch.quantization.fuse_modules(m, [prev_previous_name, previous_name], inplace=True)\n        # elif previous_type == nn.Conv2d and type(module) == nn.ReLU:\n        #    print(\"FUSED \", previous_name, name)\n        #    torch.quantization.fuse_modules(m, [previous_name, name], inplace=True)\n\n        prev_previous_type = previous_type\n        prev_previous_name = previous_name\n        previous_type = type(module)\n        previous_name = name"
  },
  {
    "path": "condition/midas/midas/transforms.py",
    "content": "import numpy as np\nimport cv2\nimport math\n\n\ndef apply_min_size(sample, size, image_interpolation_method=cv2.INTER_AREA):\n    \"\"\"Rezise the sample to ensure the given size. Keeps aspect ratio.\n\n    Args:\n        sample (dict): sample\n        size (tuple): image size\n\n    Returns:\n        tuple: new size\n    \"\"\"\n    shape = list(sample[\"disparity\"].shape)\n\n    if shape[0] >= size[0] and shape[1] >= size[1]:\n        return sample\n\n    scale = [0, 0]\n    scale[0] = size[0] / shape[0]\n    scale[1] = size[1] / shape[1]\n\n    scale = max(scale)\n\n    shape[0] = math.ceil(scale * shape[0])\n    shape[1] = math.ceil(scale * shape[1])\n\n    # resize\n    sample[\"image\"] = cv2.resize(\n        sample[\"image\"], tuple(shape[::-1]), interpolation=image_interpolation_method\n    )\n\n    sample[\"disparity\"] = cv2.resize(\n        sample[\"disparity\"], tuple(shape[::-1]), interpolation=cv2.INTER_NEAREST\n    )\n    sample[\"mask\"] = cv2.resize(\n        sample[\"mask\"].astype(np.float32),\n        tuple(shape[::-1]),\n        interpolation=cv2.INTER_NEAREST,\n    )\n    sample[\"mask\"] = sample[\"mask\"].astype(bool)\n\n    return tuple(shape)\n\n\nclass Resize(object):\n    \"\"\"Resize sample to given size (width, height).\n    \"\"\"\n\n    def __init__(\n        self,\n        width,\n        height,\n        resize_target=True,\n        keep_aspect_ratio=False,\n        ensure_multiple_of=1,\n        resize_method=\"lower_bound\",\n        image_interpolation_method=cv2.INTER_AREA,\n    ):\n        \"\"\"Init.\n\n        Args:\n            width (int): desired output width\n            height (int): desired output height\n            resize_target (bool, optional):\n                True: Resize the full sample (image, mask, target).\n                False: Resize image only.\n                Defaults to True.\n            keep_aspect_ratio (bool, optional):\n                True: Keep the aspect ratio of the input sample.\n                Output sample might not have the given width and height, and\n                resize behaviour depends on the parameter 'resize_method'.\n                Defaults to False.\n            ensure_multiple_of (int, optional):\n                Output width and height is constrained to be multiple of this parameter.\n                Defaults to 1.\n            resize_method (str, optional):\n                \"lower_bound\": Output will be at least as large as the given size.\n                \"upper_bound\": Output will be at max as large as the given size. (Output size might be smaller than given size.)\n                \"minimal\": Scale as least as possible.  (Output size might be smaller than given size.)\n                Defaults to \"lower_bound\".\n        \"\"\"\n        self.__width = width\n        self.__height = height\n\n        self.__resize_target = resize_target\n        self.__keep_aspect_ratio = keep_aspect_ratio\n        self.__multiple_of = ensure_multiple_of\n        self.__resize_method = resize_method\n        self.__image_interpolation_method = image_interpolation_method\n\n    def constrain_to_multiple_of(self, x, min_val=0, max_val=None):\n        y = (np.round(x / self.__multiple_of) * self.__multiple_of).astype(int)\n\n        if max_val is not None and y > max_val:\n            y = (np.floor(x / self.__multiple_of) * self.__multiple_of).astype(int)\n\n        if y < min_val:\n            y = (np.ceil(x / self.__multiple_of) * self.__multiple_of).astype(int)\n\n        return y\n\n    def get_size(self, width, height):\n        # determine new height and width\n        scale_height = self.__height / height\n        scale_width = self.__width / width\n\n        if self.__keep_aspect_ratio:\n            if self.__resize_method == \"lower_bound\":\n                # scale such that output size is lower bound\n                if scale_width > scale_height:\n                    # fit width\n                    scale_height = scale_width\n                else:\n                    # fit height\n                    scale_width = scale_height\n            elif self.__resize_method == \"upper_bound\":\n                # scale such that output size is upper bound\n                if scale_width < scale_height:\n                    # fit width\n                    scale_height = scale_width\n                else:\n                    # fit height\n                    scale_width = scale_height\n            elif self.__resize_method == \"minimal\":\n                # scale as least as possbile\n                if abs(1 - scale_width) < abs(1 - scale_height):\n                    # fit width\n                    scale_height = scale_width\n                else:\n                    # fit height\n                    scale_width = scale_height\n            else:\n                raise ValueError(\n                    f\"resize_method {self.__resize_method} not implemented\"\n                )\n\n        if self.__resize_method == \"lower_bound\":\n            new_height = self.constrain_to_multiple_of(\n                scale_height * height, min_val=self.__height\n            )\n            new_width = self.constrain_to_multiple_of(\n                scale_width * width, min_val=self.__width\n            )\n        elif self.__resize_method == \"upper_bound\":\n            new_height = self.constrain_to_multiple_of(\n                scale_height * height, max_val=self.__height\n            )\n            new_width = self.constrain_to_multiple_of(\n                scale_width * width, max_val=self.__width\n            )\n        elif self.__resize_method == \"minimal\":\n            new_height = self.constrain_to_multiple_of(scale_height * height)\n            new_width = self.constrain_to_multiple_of(scale_width * width)\n        else:\n            raise ValueError(f\"resize_method {self.__resize_method} not implemented\")\n\n        return (new_width, new_height)\n\n    def __call__(self, sample):\n        width, height = self.get_size(\n            sample[\"image\"].shape[1], sample[\"image\"].shape[0]\n        )\n\n        # resize sample\n        sample[\"image\"] = cv2.resize(\n            sample[\"image\"],\n            (width, height),\n            interpolation=self.__image_interpolation_method,\n        )\n\n        if self.__resize_target:\n            if \"disparity\" in sample:\n                sample[\"disparity\"] = cv2.resize(\n                    sample[\"disparity\"],\n                    (width, height),\n                    interpolation=cv2.INTER_NEAREST,\n                )\n\n            if \"depth\" in sample:\n                sample[\"depth\"] = cv2.resize(\n                    sample[\"depth\"], (width, height), interpolation=cv2.INTER_NEAREST\n                )\n\n            sample[\"mask\"] = cv2.resize(\n                sample[\"mask\"].astype(np.float32),\n                (width, height),\n                interpolation=cv2.INTER_NEAREST,\n            )\n            sample[\"mask\"] = sample[\"mask\"].astype(bool)\n\n        return sample\n\n\nclass NormalizeImage(object):\n    \"\"\"Normlize image by given mean and std.\n    \"\"\"\n\n    def __init__(self, mean, std):\n        self.__mean = mean\n        self.__std = std\n\n    def __call__(self, sample):\n        sample[\"image\"] = (sample[\"image\"] - self.__mean) / self.__std\n\n        return sample\n\n\nclass PrepareForNet(object):\n    \"\"\"Prepare sample for usage as network input.\n    \"\"\"\n\n    def __init__(self):\n        pass\n\n    def __call__(self, sample):\n        image = np.transpose(sample[\"image\"], (2, 0, 1))\n        sample[\"image\"] = np.ascontiguousarray(image).astype(np.float32)\n\n        if \"mask\" in sample:\n            sample[\"mask\"] = sample[\"mask\"].astype(np.float32)\n            sample[\"mask\"] = np.ascontiguousarray(sample[\"mask\"])\n\n        if \"disparity\" in sample:\n            disparity = sample[\"disparity\"].astype(np.float32)\n            sample[\"disparity\"] = np.ascontiguousarray(disparity)\n\n        if \"depth\" in sample:\n            depth = sample[\"depth\"].astype(np.float32)\n            sample[\"depth\"] = np.ascontiguousarray(depth)\n\n        return sample"
  },
  {
    "path": "condition/midas/midas/vit.py",
    "content": "import torch\nimport torch.nn as nn\nimport timm\nimport types\nimport math\nimport torch.nn.functional as F\n\n\nclass Slice(nn.Module):\n    def __init__(self, start_index=1):\n        super(Slice, self).__init__()\n        self.start_index = start_index\n\n    def forward(self, x):\n        return x[:, self.start_index :]\n\n\nclass AddReadout(nn.Module):\n    def __init__(self, start_index=1):\n        super(AddReadout, self).__init__()\n        self.start_index = start_index\n\n    def forward(self, x):\n        if self.start_index == 2:\n            readout = (x[:, 0] + x[:, 1]) / 2\n        else:\n            readout = x[:, 0]\n        return x[:, self.start_index :] + readout.unsqueeze(1)\n\n\nclass ProjectReadout(nn.Module):\n    def __init__(self, in_features, start_index=1):\n        super(ProjectReadout, self).__init__()\n        self.start_index = start_index\n\n        self.project = nn.Sequential(nn.Linear(2 * in_features, in_features), nn.GELU())\n\n    def forward(self, x):\n        readout = x[:, 0].unsqueeze(1).expand_as(x[:, self.start_index :])\n        features = torch.cat((x[:, self.start_index :], readout), -1)\n\n        return self.project(features)\n\n\nclass Transpose(nn.Module):\n    def __init__(self, dim0, dim1):\n        super(Transpose, self).__init__()\n        self.dim0 = dim0\n        self.dim1 = dim1\n\n    def forward(self, x):\n        x = x.transpose(self.dim0, self.dim1)\n        return x\n\n\ndef forward_vit(pretrained, x):\n    b, c, h, w = x.shape\n\n    glob = pretrained.model.forward_flex(x)\n\n    layer_1 = pretrained.activations[\"1\"]\n    layer_2 = pretrained.activations[\"2\"]\n    layer_3 = pretrained.activations[\"3\"]\n    layer_4 = pretrained.activations[\"4\"]\n\n    layer_1 = pretrained.act_postprocess1[0:2](layer_1)\n    layer_2 = pretrained.act_postprocess2[0:2](layer_2)\n    layer_3 = pretrained.act_postprocess3[0:2](layer_3)\n    layer_4 = pretrained.act_postprocess4[0:2](layer_4)\n\n    unflatten = nn.Sequential(\n        nn.Unflatten(\n            2,\n            torch.Size(\n                [\n                    h // pretrained.model.patch_size[1],\n                    w // pretrained.model.patch_size[0],\n                ]\n            ),\n        )\n    )\n\n    if layer_1.ndim == 3:\n        layer_1 = unflatten(layer_1)\n    if layer_2.ndim == 3:\n        layer_2 = unflatten(layer_2)\n    if layer_3.ndim == 3:\n        layer_3 = unflatten(layer_3)\n    if layer_4.ndim == 3:\n        layer_4 = unflatten(layer_4)\n\n    layer_1 = pretrained.act_postprocess1[3 : len(pretrained.act_postprocess1)](layer_1)\n    layer_2 = pretrained.act_postprocess2[3 : len(pretrained.act_postprocess2)](layer_2)\n    layer_3 = pretrained.act_postprocess3[3 : len(pretrained.act_postprocess3)](layer_3)\n    layer_4 = pretrained.act_postprocess4[3 : len(pretrained.act_postprocess4)](layer_4)\n\n    return layer_1, layer_2, layer_3, layer_4\n\n\ndef _resize_pos_embed(self, posemb, gs_h, gs_w):\n    posemb_tok, posemb_grid = (\n        posemb[:, : self.start_index],\n        posemb[0, self.start_index :],\n    )\n\n    gs_old = int(math.sqrt(len(posemb_grid)))\n\n    posemb_grid = posemb_grid.reshape(1, gs_old, gs_old, -1).permute(0, 3, 1, 2)\n    posemb_grid = F.interpolate(posemb_grid, size=(gs_h, gs_w), mode=\"bilinear\")\n    posemb_grid = posemb_grid.permute(0, 2, 3, 1).reshape(1, gs_h * gs_w, -1)\n\n    posemb = torch.cat([posemb_tok, posemb_grid], dim=1)\n\n    return posemb\n\n\ndef forward_flex(self, x):\n    b, c, h, w = x.shape\n\n    pos_embed = self._resize_pos_embed(\n        self.pos_embed, h // self.patch_size[1], w // self.patch_size[0]\n    )\n\n    B = x.shape[0]\n\n    if hasattr(self.patch_embed, \"backbone\"):\n        x = self.patch_embed.backbone(x)\n        if isinstance(x, (list, tuple)):\n            x = x[-1]  # last feature if backbone outputs list/tuple of features\n\n    x = self.patch_embed.proj(x).flatten(2).transpose(1, 2)\n\n    if getattr(self, \"dist_token\", None) is not None:\n        cls_tokens = self.cls_token.expand(\n            B, -1, -1\n        )  # stole cls_tokens impl from Phil Wang, thanks\n        dist_token = self.dist_token.expand(B, -1, -1)\n        x = torch.cat((cls_tokens, dist_token, x), dim=1)\n    else:\n        cls_tokens = self.cls_token.expand(\n            B, -1, -1\n        )  # stole cls_tokens impl from Phil Wang, thanks\n        x = torch.cat((cls_tokens, x), dim=1)\n\n    x = x + pos_embed\n    x = self.pos_drop(x)\n\n    for blk in self.blocks:\n        x = blk(x)\n\n    x = self.norm(x)\n\n    return x\n\n\nactivations = {}\n\n\ndef get_activation(name):\n    def hook(model, input, output):\n        activations[name] = output\n\n    return hook\n\n\ndef get_readout_oper(vit_features, features, use_readout, start_index=1):\n    if use_readout == \"ignore\":\n        readout_oper = [Slice(start_index)] * len(features)\n    elif use_readout == \"add\":\n        readout_oper = [AddReadout(start_index)] * len(features)\n    elif use_readout == \"project\":\n        readout_oper = [\n            ProjectReadout(vit_features, start_index) for out_feat in features\n        ]\n    else:\n        assert (\n            False\n        ), \"wrong operation for readout token, use_readout can be 'ignore', 'add', or 'project'\"\n\n    return readout_oper\n\n\ndef _make_vit_b16_backbone(\n    model,\n    features=[96, 192, 384, 768],\n    size=[384, 384],\n    hooks=[2, 5, 8, 11],\n    vit_features=768,\n    use_readout=\"ignore\",\n    start_index=1,\n):\n    pretrained = nn.Module()\n\n    pretrained.model = model\n    pretrained.model.blocks[hooks[0]].register_forward_hook(get_activation(\"1\"))\n    pretrained.model.blocks[hooks[1]].register_forward_hook(get_activation(\"2\"))\n    pretrained.model.blocks[hooks[2]].register_forward_hook(get_activation(\"3\"))\n    pretrained.model.blocks[hooks[3]].register_forward_hook(get_activation(\"4\"))\n\n    pretrained.activations = activations\n\n    readout_oper = get_readout_oper(vit_features, features, use_readout, start_index)\n\n    # 32, 48, 136, 384\n    pretrained.act_postprocess1 = nn.Sequential(\n        readout_oper[0],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[0],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n        nn.ConvTranspose2d(\n            in_channels=features[0],\n            out_channels=features[0],\n            kernel_size=4,\n            stride=4,\n            padding=0,\n            bias=True,\n            dilation=1,\n            groups=1,\n        ),\n    )\n\n    pretrained.act_postprocess2 = nn.Sequential(\n        readout_oper[1],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[1],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n        nn.ConvTranspose2d(\n            in_channels=features[1],\n            out_channels=features[1],\n            kernel_size=2,\n            stride=2,\n            padding=0,\n            bias=True,\n            dilation=1,\n            groups=1,\n        ),\n    )\n\n    pretrained.act_postprocess3 = nn.Sequential(\n        readout_oper[2],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[2],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n    )\n\n    pretrained.act_postprocess4 = nn.Sequential(\n        readout_oper[3],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[3],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n        nn.Conv2d(\n            in_channels=features[3],\n            out_channels=features[3],\n            kernel_size=3,\n            stride=2,\n            padding=1,\n        ),\n    )\n\n    pretrained.model.start_index = start_index\n    pretrained.model.patch_size = [16, 16]\n\n    # We inject this function into the VisionTransformer instances so that\n    # we can use it with interpolated position embeddings without modifying the library source.\n    pretrained.model.forward_flex = types.MethodType(forward_flex, pretrained.model)\n    pretrained.model._resize_pos_embed = types.MethodType(\n        _resize_pos_embed, pretrained.model\n    )\n\n    return pretrained\n\n\ndef _make_pretrained_vitl16_384(pretrained, use_readout=\"ignore\", hooks=None):\n    model = timm.create_model(\"vit_large_patch16_384\", pretrained=pretrained)\n\n    hooks = [5, 11, 17, 23] if hooks == None else hooks\n    return _make_vit_b16_backbone(\n        model,\n        features=[256, 512, 1024, 1024],\n        hooks=hooks,\n        vit_features=1024,\n        use_readout=use_readout,\n    )\n\n\ndef _make_pretrained_vitb16_384(pretrained, use_readout=\"ignore\", hooks=None):\n    model = timm.create_model(\"vit_base_patch16_384\", pretrained=pretrained)\n\n    hooks = [2, 5, 8, 11] if hooks == None else hooks\n    return _make_vit_b16_backbone(\n        model, features=[96, 192, 384, 768], hooks=hooks, use_readout=use_readout\n    )\n\n\ndef _make_pretrained_deitb16_384(pretrained, use_readout=\"ignore\", hooks=None):\n    model = timm.create_model(\"vit_deit_base_patch16_384\", pretrained=pretrained)\n\n    hooks = [2, 5, 8, 11] if hooks == None else hooks\n    return _make_vit_b16_backbone(\n        model, features=[96, 192, 384, 768], hooks=hooks, use_readout=use_readout\n    )\n\n\ndef _make_pretrained_deitb16_distil_384(pretrained, use_readout=\"ignore\", hooks=None):\n    model = timm.create_model(\n        \"vit_deit_base_distilled_patch16_384\", pretrained=pretrained\n    )\n\n    hooks = [2, 5, 8, 11] if hooks == None else hooks\n    return _make_vit_b16_backbone(\n        model,\n        features=[96, 192, 384, 768],\n        hooks=hooks,\n        use_readout=use_readout,\n        start_index=2,\n    )\n\n\ndef _make_vit_b_rn50_backbone(\n    model,\n    features=[256, 512, 768, 768],\n    size=[384, 384],\n    hooks=[0, 1, 8, 11],\n    vit_features=768,\n    use_vit_only=False,\n    use_readout=\"ignore\",\n    start_index=1,\n):\n    pretrained = nn.Module()\n\n    pretrained.model = model\n\n    if use_vit_only == True:\n        pretrained.model.blocks[hooks[0]].register_forward_hook(get_activation(\"1\"))\n        pretrained.model.blocks[hooks[1]].register_forward_hook(get_activation(\"2\"))\n    else:\n        pretrained.model.patch_embed.backbone.stages[0].register_forward_hook(\n            get_activation(\"1\")\n        )\n        pretrained.model.patch_embed.backbone.stages[1].register_forward_hook(\n            get_activation(\"2\")\n        )\n\n    pretrained.model.blocks[hooks[2]].register_forward_hook(get_activation(\"3\"))\n    pretrained.model.blocks[hooks[3]].register_forward_hook(get_activation(\"4\"))\n\n    pretrained.activations = activations\n\n    readout_oper = get_readout_oper(vit_features, features, use_readout, start_index)\n\n    if use_vit_only == True:\n        pretrained.act_postprocess1 = nn.Sequential(\n            readout_oper[0],\n            Transpose(1, 2),\n            nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n            nn.Conv2d(\n                in_channels=vit_features,\n                out_channels=features[0],\n                kernel_size=1,\n                stride=1,\n                padding=0,\n            ),\n            nn.ConvTranspose2d(\n                in_channels=features[0],\n                out_channels=features[0],\n                kernel_size=4,\n                stride=4,\n                padding=0,\n                bias=True,\n                dilation=1,\n                groups=1,\n            ),\n        )\n\n        pretrained.act_postprocess2 = nn.Sequential(\n            readout_oper[1],\n            Transpose(1, 2),\n            nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n            nn.Conv2d(\n                in_channels=vit_features,\n                out_channels=features[1],\n                kernel_size=1,\n                stride=1,\n                padding=0,\n            ),\n            nn.ConvTranspose2d(\n                in_channels=features[1],\n                out_channels=features[1],\n                kernel_size=2,\n                stride=2,\n                padding=0,\n                bias=True,\n                dilation=1,\n                groups=1,\n            ),\n        )\n    else:\n        pretrained.act_postprocess1 = nn.Sequential(\n            nn.Identity(), nn.Identity(), nn.Identity()\n        )\n        pretrained.act_postprocess2 = nn.Sequential(\n            nn.Identity(), nn.Identity(), nn.Identity()\n        )\n\n    pretrained.act_postprocess3 = nn.Sequential(\n        readout_oper[2],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[2],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n    )\n\n    pretrained.act_postprocess4 = nn.Sequential(\n        readout_oper[3],\n        Transpose(1, 2),\n        nn.Unflatten(2, torch.Size([size[0] // 16, size[1] // 16])),\n        nn.Conv2d(\n            in_channels=vit_features,\n            out_channels=features[3],\n            kernel_size=1,\n            stride=1,\n            padding=0,\n        ),\n        nn.Conv2d(\n            in_channels=features[3],\n            out_channels=features[3],\n            kernel_size=3,\n            stride=2,\n            padding=1,\n        ),\n    )\n\n    pretrained.model.start_index = start_index\n    pretrained.model.patch_size = [16, 16]\n\n    # We inject this function into the VisionTransformer instances so that\n    # we can use it with interpolated position embeddings without modifying the library source.\n    pretrained.model.forward_flex = types.MethodType(forward_flex, pretrained.model)\n\n    # We inject this function into the VisionTransformer instances so that\n    # we can use it with interpolated position embeddings without modifying the library source.\n    pretrained.model._resize_pos_embed = types.MethodType(\n        _resize_pos_embed, pretrained.model\n    )\n\n    return pretrained\n\n\ndef _make_pretrained_vitb_rn50_384(\n    pretrained, use_readout=\"ignore\", hooks=None, use_vit_only=False\n):\n    model = timm.create_model(\"vit_base_resnet50_384\", pretrained=pretrained)\n\n    hooks = [0, 1, 8, 11] if hooks == None else hooks\n    return _make_vit_b_rn50_backbone(\n        model,\n        features=[256, 512, 768, 768],\n        size=[384, 384],\n        hooks=hooks,\n        use_vit_only=use_vit_only,\n        use_readout=use_readout,\n    )"
  },
  {
    "path": "condition/utils.py",
    "content": "import numpy as np\nimport cv2\nimport os\n\n\nannotator_ckpts_path = os.path.join(os.path.dirname(__file__), 'ckpts')\n\n\ndef HWC3(x):\n    assert x.dtype == np.uint8\n    if x.ndim == 2:\n        x = x[:, :, None]\n    assert x.ndim == 3\n    H, W, C = x.shape\n    assert C == 1 or C == 3 or C == 4\n    if C == 3:\n        return x\n    if C == 1:\n        return np.concatenate([x, x, x], axis=2)\n    if C == 4:\n        color = x[:, :, 0:3].astype(np.float32)\n        alpha = x[:, :, 3:4].astype(np.float32) / 255.0\n        y = color * alpha + 255.0 * (1.0 - alpha)\n        y = y.clip(0, 255).astype(np.uint8)\n        return y\n\n\ndef resize_image(input_image, resolution):\n    H, W, C = input_image.shape\n    H = float(H)\n    W = float(W)\n    k = float(resolution) / min(H, W)\n    H *= k\n    W *= k\n    H = int(np.round(H / 64.0)) * 64\n    W = int(np.round(W / 64.0)) * 64\n    img = cv2.resize(input_image, (W, H), interpolation=cv2.INTER_LANCZOS4 if k > 1 else cv2.INTER_AREA)\n    return img"
  },
  {
    "path": "create_npz.py",
    "content": "from tqdm import tqdm\nimport os\nfrom PIL import Image\nimport numpy as np\nimport argparse\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for file in tqdm(os.listdir(sample_dir), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{file}\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n    samples = np.stack(samples)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--generated-images\", type=str, required=True)\n    args = parser.parse_args()    \n    num_fid_samples = 50000\n    create_npz_from_sample_folder(args.generated_images, num_fid_samples)\n    print(\"Done.\")"
  },
  {
    "path": "dataset/augmentation.py",
    "content": "# from https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py\nimport math\nimport random\nimport numpy as np\nfrom PIL import Image\n\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])\n\n\ndef random_crop_arr(pil_image, image_size, min_crop_frac=0.8, max_crop_frac=1.0):\n    min_smaller_dim_size = math.ceil(image_size / max_crop_frac)\n    max_smaller_dim_size = math.ceil(image_size / min_crop_frac)\n    smaller_dim_size = random.randrange(min_smaller_dim_size, max_smaller_dim_size + 1)\n\n    # We are not on a new enough PIL to support the `reducing_gap`\n    # argument, which uses BOX downsampling at powers of two first.\n    # Thus, we do it by hand to improve downsample quality.\n    while min(*pil_image.size) >= 2 * smaller_dim_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = smaller_dim_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = random.randrange(arr.shape[0] - image_size + 1)\n    crop_x = random.randrange(arr.shape[1] - image_size + 1)\n    return Image.fromarray(arr[crop_y : crop_y + image_size, crop_x : crop_x + image_size])\n\n"
  },
  {
    "path": "dataset/build.py",
    "content": "from dataset.imagenet import build_imagenet, build_imagenet_code\nfrom dataset.coco import build_coco\nfrom dataset.openimage import build_openimage\nfrom dataset.pexels import build_pexels\nfrom dataset.t2i import build_t2i, build_t2i_code, build_t2i_image\n# from dataset.t2i_control import build_t2i_control\n\ndef build_dataset(args, **kwargs):\n    # images\n    if args.dataset == 'imagenet':\n        return build_imagenet(args, **kwargs)\n    if args.dataset == 'imagenet_code':\n        return build_imagenet_code(args, **kwargs)\n    if args.dataset == 'coco':\n        return build_coco(args, **kwargs)\n    if args.dataset == 'openimage':\n        return build_openimage(args, **kwargs)\n    if args.dataset == 'pexels':\n        return build_pexels(args, **kwargs)\n    if args.dataset == 't2i_image':\n        return build_t2i_image(args, **kwargs)\n    if args.dataset == 't2i':\n        return build_t2i(args, **kwargs)\n    if args.dataset == 't2i_code':\n        return build_t2i_code(args, **kwargs)\n    # if args.dataset == 't2i_control':\n    #     return build_t2i_control(args, **kwargs)\n    \n    raise ValueError(f'dataset {args.dataset} is not supported')"
  },
  {
    "path": "dataset/coco.py",
    "content": "import os\nimport torch\nfrom torch.utils.data import Dataset\nfrom PIL import Image\n\n\nclass SingleFolderDataset(Dataset):\n    def __init__(self, directory, transform=None):\n        super().__init__()\n        self.directory = directory\n        self.transform = transform\n        self.image_paths = [os.path.join(directory, file_name) for file_name in os.listdir(directory)\n                            if os.path.isfile(os.path.join(directory, file_name))]\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        image_path = self.image_paths[idx]\n        image = Image.open(image_path).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef build_coco(args, transform):\n    return SingleFolderDataset(args.data_path, transform=transform)"
  },
  {
    "path": "dataset/imagenet.py",
    "content": "import torch\nimport numpy as np\nimport os\nfrom torch.utils.data import Dataset\nfrom torchvision.datasets import ImageFolder\nimport cv2\nfrom datasets import load_dataset\n\nclass CustomDataset(Dataset):\n    def __init__(self, feature_dir, label_dir, condition_dir=None, get_condition_img=False):\n        self.feature_dir = feature_dir\n        self.label_dir = label_dir\n        self.flip = 'flip' in self.feature_dir\n        self.get_condition_img = get_condition_img\n\n        aug_feature_dir = feature_dir.replace('ten_crop/', 'ten_crop_105/')\n        aug_label_dir = label_dir.replace('ten_crop/', 'ten_crop_105/')\n        if os.path.exists(aug_feature_dir) and os.path.exists(aug_label_dir):\n            self.aug_feature_dir = aug_feature_dir\n            self.aug_label_dir = aug_label_dir\n        else:\n            self.aug_feature_dir = None\n            self.aug_label_dir = None\n\n        if condition_dir is not None:\n            self.condition_dir = condition_dir\n            self.aug_condition_dir = condition_dir.replace('ten_crop/', 'ten_crop_105/')\n            if os.path.exists(self.aug_condition_dir):\n                self.aug_condition_dir = self.aug_condition_dir\n            else:\n                self.aug_condition_dir = None\n        else:\n            self.condition_dir = None\n\n        # file_num = min(129398,len(os.listdir(feature_dir)))\n        file_num = len(os.listdir(feature_dir))\n        # file_num = 1000\n        self.feature_files = [f\"{i}.npy\" for i in range(file_num)]\n        self.label_files = [f\"{i}.npy\" for i in range(file_num)]\n        self.condition_files = [f\"{i}.npy\" for i in range(file_num)]\n        # self.feature_files = sorted(os.listdir(feature_dir))\n        # self.label_files = sorted(os.listdir(label_dir))\n        # TODO: make it configurable\n        # self.feature_files = [f\"{i}.npy\" for i in range(1281167)]\n        # self.label_files = [f\"{i}.npy\" for i in range(1281167)]\n\n    def __len__(self):\n        assert len(self.feature_files) == len(self.label_files), \\\n            \"Number of feature files and label files should be same\"\n        return len(self.feature_files)\n\n    def __getitem__(self, idx):\n        if self.aug_feature_dir is not None and torch.rand(1) < 0.5:\n            feature_dir = self.aug_feature_dir\n            label_dir = self.aug_label_dir\n        else:\n            feature_dir = self.feature_dir\n            label_dir = self.label_dir\n            if self.condition_dir is not None:\n                condition_dir = self.condition_dir\n                   \n        feature_file = self.feature_files[idx]\n        label_file = self.label_files[idx]\n        if self.condition_dir is not None:\n            condition_file = self.condition_files[idx]\n            # condition_code = np.load(os.path.join(condition_dir, condition_file))\n            condition_imgs = np.load(os.path.join(os.path.dirname(condition_dir), os.path.basename(condition_dir).replace('codes', 'imagesnpy'), condition_file))/255\n            condition_imgs = 2*(condition_imgs-0.5)\n            if self.get_condition_img:\n                # print(os.path.join(os.path.dirname(condition_dir), os.path.basename(condition_dir).replace('codes', 'images'), condition_file.replace('npy', 'png')))\n                condition_img = cv2.imread(os.path.join(os.path.dirname(condition_dir), os.path.basename(condition_dir).replace('codes', 'images'), condition_file.replace('npy', 'png')))/255\n                condition_img = 2*(condition_img-0.5)\n            #condition = condition[None,...].repeat(3, axis=2)\n\n        features = np.load(os.path.join(feature_dir, feature_file))\n        if self.flip:\n            aug_idx = torch.randint(low=0, high=features.shape[1], size=(1,)).item()\n            if self.get_condition_img:\n                aug_idx = 0\n            features = features[:, aug_idx]\n            if self.condition_dir is not None:\n                # condition_code = condition_code[:, aug_idx]\n                condition_imgs = condition_imgs[aug_idx]\n                \n        labels = np.load(os.path.join(label_dir, label_file))\n        # if self.condition_dir is not None:\n        #     if self.get_condition_img:\n        #         return torch.from_numpy(condition_img.transpose(2,0,1)).to(torch.float32), torch.from_numpy(condition)  # (1, 256), (1,1)\n        #     else:\n        #         return torch.from_numpy(features), torch.from_numpy(labels), torch.from_numpy(condition)  # (1, 256), (1,1)\n        # else:\n        #     return torch.from_numpy(features), torch.from_numpy(labels)\n        outputs = {}\n        outputs['img_code'] = torch.from_numpy(features)\n        outputs['labels'] = torch.from_numpy(labels)\n        if self.condition_dir is not None:\n            # outputs['condition_code'] = torch.from_numpy(condition_code)\n            outputs['condition_imgs'] = torch.from_numpy(condition_imgs)\n        if self.get_condition_img:\n            outputs['condition_img'] = torch.from_numpy(condition_img.transpose(2,0,1))\n        return outputs\n\n\ndef build_imagenet(args, transform):\n    return ImageFolder(args.data_path, transform=transform)\n\ndef build_imagenet_code(args):\n    feature_dir = f\"{args.code_path}/imagenet{args.image_size}_codes\"\n    label_dir = f\"{args.code_path}/imagenet{args.image_size}_labels\"\n    if args.condition_type == 'canny':\n        condition_dir = f\"{args.code_path}/imagenet{args.image_size}_canny_codes\"\n    elif args.condition_type == 'hed':\n        condition_dir = f\"{args.code_path}/imagenet{args.image_size}_hed_codes\"\n    elif args.condition_type == 'depth':\n        condition_dir = f\"{args.code_path}/imagenet{args.image_size}_depth_codes\"\n    elif args.condition_type == 'none':\n        condition_dir = None\n    assert os.path.exists(feature_dir) and os.path.exists(label_dir), \\\n        f\"please first run: bash scripts/autoregressive/extract_codes_c2i.sh ...\"\n    return CustomDataset(feature_dir, label_dir, condition_dir, args.get_condition_img)"
  },
  {
    "path": "dataset/openimage.py",
    "content": "import os\nimport json\nimport numpy as np\nfrom PIL import Image\n\nimport torch\nfrom torch.utils.data import Dataset\n\n\nclass DatasetJson(Dataset):\n    def __init__(self, data_path, transform=None):\n        super().__init__()\n        self.data_path = data_path\n        self.transform = transform\n        json_path = os.path.join(data_path, 'image_paths.json')\n        assert os.path.exists(json_path), f\"please first run: python3 tools/openimage_json.py\"\n        with open(json_path, 'r') as f:\n            self.image_paths = json.load(f)\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        for _ in range(20):\n            try:\n                return self.getdata(idx)\n            except Exception as e:\n                print(f\"Error details: {str(e)}\")\n                idx = np.random.randint(len(self))\n        raise RuntimeError('Too many bad data.')\n    \n    def getdata(self, idx):\n        image_path = self.image_paths[idx]\n        image_path_full = os.path.join(self.data_path, image_path)\n        image = Image.open(image_path_full).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef build_openimage(args, transform):\n    return DatasetJson(args.data_path, transform=transform)\n"
  },
  {
    "path": "dataset/pexels.py",
    "content": "from torchvision.datasets import ImageFolder\n\ndef build_pexels(args, transform):\n    return ImageFolder(args.data_path, transform=transform)"
  },
  {
    "path": "dataset/t2i.py",
    "content": "import os\nimport json\nimport numpy as np\n\nimport torch\nfrom torch.utils.data import Dataset\nfrom PIL import Image \n\n\nclass Text2ImgDatasetImg(Dataset):\n    def __init__(self, lst_dir, face_lst_dir, transform):\n        img_path_list = []\n        valid_file_path = []\n        # collect valid jsonl\n        for lst_name in sorted(os.listdir(lst_dir)):\n            if not lst_name.endswith('.jsonl'):\n                continue\n            file_path = os.path.join(lst_dir, lst_name)\n            valid_file_path.append(file_path)\n        \n        # collect valid jsonl for face\n        if face_lst_dir is not None:\n            for lst_name in sorted(os.listdir(face_lst_dir)):\n                if not lst_name.endswith('_face.jsonl'):\n                    continue\n                file_path = os.path.join(face_lst_dir, lst_name)\n                valid_file_path.append(file_path)            \n        \n        for file_path in valid_file_path:\n            with open(file_path, 'r') as file:\n                for line_idx, line in enumerate(file):\n                    data = json.loads(line)\n                    img_path = data['image_path']\n                    code_dir = file_path.split('/')[-1].split('.')[0]\n                    img_path_list.append((img_path, code_dir, line_idx))\n        self.img_path_list = img_path_list\n        self.transform = transform\n\n    def __len__(self):\n        return len(self.img_path_list)\n\n    def __getitem__(self, index):\n        img_path, code_dir, code_name = self.img_path_list[index]\n        img = Image.open(img_path).convert(\"RGB\")\n        if self.transform is not None:\n            img = self.transform(img)\n        return img, code_name \n\n\nclass Text2ImgDataset(Dataset):\n    def __init__(self, args, transform):\n        img_path_list = []\n        valid_file_path = []\n        # collect valid jsonl file path\n        for lst_name in sorted(os.listdir(args.data_path)):\n            if not lst_name.endswith('.jsonl'):\n                continue\n            file_path = os.path.join(args.data_path, lst_name)\n            valid_file_path.append(file_path)           \n        \n        for file_path in valid_file_path:\n            with open(file_path, 'r') as file:\n                for line_idx, line in enumerate(file):\n                    data = json.loads(line)\n                    img_path = data['image_path']\n                    code_dir = file_path.split('/')[-1].split('.')[0]\n                    img_path_list.append((img_path, code_dir, line_idx))\n        self.img_path_list = img_path_list\n        self.transform = transform\n\n        self.t5_feat_path = args.t5_feat_path\n        self.short_t5_feat_path = args.short_t5_feat_path\n        self.t5_feat_path_base = self.t5_feat_path.split('/')[-1]\n        if self.short_t5_feat_path is not None:\n            self.short_t5_feat_path_base = self.short_t5_feat_path.split('/')[-1]\n        else:\n            self.short_t5_feat_path_base = self.t5_feat_path_base\n        self.image_size = args.image_size\n        latent_size = args.image_size // args.downsample_size\n        self.code_len = latent_size ** 2\n        self.t5_feature_max_len = 120\n        self.t5_feature_dim = 2048\n        self.max_seq_length = self.t5_feature_max_len + self.code_len\n\n    def __len__(self):\n        return len(self.img_path_list)\n\n    def dummy_data(self):\n        img = torch.zeros((3, self.image_size, self.image_size), dtype=torch.float32)\n        t5_feat_padding = torch.zeros((1, self.t5_feature_max_len, self.t5_feature_dim))\n        attn_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length, dtype=torch.bool)).unsqueeze(0)\n        valid = 0\n        return img, t5_feat_padding, attn_mask, valid\n\n    def __getitem__(self, index):\n        img_path, code_dir, code_name = self.img_path_list[index]\n        try:\n            img = Image.open(img_path).convert(\"RGB\")                \n        except:\n            img, t5_feat_padding, attn_mask, valid = self.dummy_data()\n            return img, t5_feat_padding, attn_mask, torch.tensor(valid)\n\n        if min(img.size) < self.image_size:\n            img, t5_feat_padding, attn_mask, valid = self.dummy_data()\n            return img, t5_feat_padding, attn_mask, torch.tensor(valid)\n\n        if self.transform is not None:\n            img = self.transform(img)\n        \n        t5_file = os.path.join(self.t5_feat_path, code_dir, f\"{code_name}.npy\")\n        if torch.rand(1) < 0.3:\n            t5_file = t5_file.replace(self.t5_feat_path_base, self.short_t5_feat_path_base)\n        \n        t5_feat_padding = torch.zeros((1, self.t5_feature_max_len, self.t5_feature_dim))\n        if os.path.isfile(t5_file):\n            try:\n                t5_feat = torch.from_numpy(np.load(t5_file))\n                t5_feat_len = t5_feat.shape[1] \n                feat_len = min(self.t5_feature_max_len, t5_feat_len)\n                t5_feat_padding[:, -feat_len:] = t5_feat[:, :feat_len]\n                emb_mask = torch.zeros((self.t5_feature_max_len,))\n                emb_mask[-feat_len:] = 1\n                attn_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length))\n                T = self.t5_feature_max_len\n                attn_mask[:, :T] = attn_mask[:, :T] * emb_mask.unsqueeze(0)\n                eye_matrix = torch.eye(self.max_seq_length, self.max_seq_length)\n                attn_mask = attn_mask * (1 - eye_matrix) + eye_matrix\n                attn_mask = attn_mask.unsqueeze(0).to(torch.bool)\n                valid = 1\n            except:\n                img, t5_feat_padding, attn_mask, valid = self.dummy_data()\n        else:\n            img, t5_feat_padding, attn_mask, valid = self.dummy_data()\n            \n        return img, t5_feat_padding, attn_mask, torch.tensor(valid)\n\n\nclass Text2ImgDatasetCode(Dataset):\n    def __init__(self, args):\n        pass\n\n\n\n\ndef build_t2i_image(args, transform):\n    return Text2ImgDatasetImg(args.data_path, args.data_face_path, transform)\n\ndef build_t2i(args, transform):\n    return Text2ImgDataset(args, transform)\n\ndef build_t2i_code(args):\n    return Text2ImgDatasetCode(args)"
  },
  {
    "path": "dataset/t2i_control.py",
    "content": "from PIL import PngImagePlugin\nMaximumDecompressedSize = 1024\nMegaByte = 2**20\nPngImagePlugin.MAX_TEXT_CHUNK = MaximumDecompressedSize * MegaByte\nimport torch\nfrom datasets import load_dataset, load_from_disk\nimport random\nimport pickle\nimport logging\nfrom accelerate import Accelerator\nfrom accelerate.logging import get_logger\nfrom accelerate.utils import ProjectConfiguration, set_seed\nfrom datasets import load_dataset, load_from_disk, concatenate_datasets\nfrom huggingface_hub import create_repo, upload_folder\nfrom transformers import AutoTokenizer, PretrainedConfig\nimport argparse\nfrom PIL import Image\nfrom pathlib import Path\nfrom tqdm.auto import tqdm\nfrom packaging import version\nfrom torchvision import transforms\nfrom torch.cuda.amp import autocast\nfrom torchvision.transforms.functional import normalize\n\nfrom dataset.utils import group_random_crop\nimport numpy as np\nimport os\nfrom language.t5 import T5Embedder\nfrom torch.utils.data import Dataset\nfrom condition.canny import CannyDetector\n# from condition.hed import HEDdetector\n\n\nlogger = get_logger(__name__)\n\nclass T2IControlCode(Dataset):\n    def __init__(self, args):\n        self.get_image = args.get_image\n        self.get_prompt = args.get_prompt\n        self.get_label = args.get_label\n        self.control_type = args.condition_type\n        if self.control_type == 'canny':\n            self.get_control = CannyDetector()\n        \n        self.code_path = args.code_path\n        code_file_path = os.path.join(self.code_path, 'code')\n        file_num = len(os.listdir(code_file_path))\n        self.code_files = [os.path.join(code_file_path, f\"{i}.npy\") for i in range(file_num)]\n        \n        if args.code_path2 is not None:\n            self.code_path2 = args.code_path2\n            code_file_path2 = os.path.join(self.code_path2, 'code')\n            file_num2 = len(os.listdir(code_file_path2))\n            self.code_files2 = [os.path.join(code_file_path2, f\"{i}.npy\") for i in range(file_num2)]\n            self.code_files = self.code_files + self.code_files2\n\n        self.image_size = args.image_size\n        latent_size = args.image_size // args.downsample_size\n        self.code_len = latent_size ** 2\n        self.t5_feature_max_len = 120\n        self.t5_feature_dim = 2048\n        self.max_seq_length = self.t5_feature_max_len + self.code_len\n\n    def __len__(self):\n        return len(self.code_files)\n\n    def dummy_data(self):\n        img = torch.zeros((3, self.image_size, self.image_size), dtype=torch.float32)\n        t5_feat_padding = torch.zeros((1, self.t5_feature_max_len, self.t5_feature_dim))\n        attn_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length, dtype=torch.bool)).unsqueeze(0)\n        valid = 0\n        return img, t5_feat_padding, attn_mask, valid\n\n    def collate_fn(self, examples):\n        \n        code = torch.stack([example[\"code\"] for example in examples])\n        control =  torch.stack([example[\"control\"] for example in examples])\n        if self.control_type == 'canny':\n            control = control.unsqueeze(1).repeat(1,3,1,1)\n        caption_emb =  torch.stack([example[\"caption_emb\"] for example in examples])\n        attn_mask = torch.stack([example[\"attn_mask\"] for example in examples])\n        valid = torch.stack([example[\"valid\"] for example in examples])\n        if self.get_image:\n            image = torch.stack([example[\"image\"] for example in examples])\n        if self.get_prompt:\n            prompt = [example[\"prompt\"][0] for example in examples]\n        if self.control_type == \"seg\":\n            label = torch.stack([example[\"label\"] for example in examples])\n            \n        output = {}\n        output['code'] = code\n        output['control'] = control\n        output['caption_emb'] = caption_emb\n        output['attn_mask'] = attn_mask\n        output['valid'] = valid\n        if self.get_image:\n            output['image'] = image\n        if self.get_prompt:\n            output['prompt'] = prompt\n        if self.control_type == \"seg\":\n            output['label'] = label\n        return output\n\n    def __getitem__(self, index):\n        \n        \n        code_path = self.code_files[index]\n        if self.control_type == 'seg':\n            control_path = code_path.replace('code', 'control').replace('npy', 'png') \n            control = np.array(Image.open(control_path))/255\n            control = 2*(control - 0.5)\n        elif self.control_type == 'depth':\n            control_path = code_path.replace('code', 'control_depth').replace('npy', 'png')\n            control = np.array(Image.open(control_path))/255\n            control = 2*(control - 0.5)\n        caption_path = code_path.replace('code', 'caption_emb').replace('npy', 'npz') \n        image_path = code_path.replace('code', 'image').replace('npy', 'png')\n        label_path = code_path.replace('code', 'label').replace('npy', 'png') \n        \n        code = np.load(code_path)\n        image = np.array(Image.open(image_path))\n        \n        \n        \n        t5_feat_padding = torch.zeros((1, self.t5_feature_max_len, self.t5_feature_dim))\n        caption = np.load(caption_path)\n        t5_feat = torch.from_numpy(caption['caption_emb'])\n        prompt = caption['prompt']\n        t5_feat_len = t5_feat.shape[1] \n        feat_len = min(self.t5_feature_max_len, t5_feat_len)\n        t5_feat_padding[:, -feat_len:] = t5_feat[:, :feat_len]\n        emb_mask = torch.zeros((self.t5_feature_max_len,))\n        emb_mask[-feat_len:] = 1\n        attn_mask = torch.tril(torch.ones(self.max_seq_length, self.max_seq_length))\n        T = self.t5_feature_max_len\n        attn_mask[:, :T] = attn_mask[:, :T] * emb_mask.unsqueeze(0)\n        eye_matrix = torch.eye(self.max_seq_length, self.max_seq_length)\n        attn_mask = attn_mask * (1 - eye_matrix) + eye_matrix\n        attn_mask = attn_mask.unsqueeze(0).to(torch.bool)\n        valid = 1\n        \n        output = {}\n        output['code'] = torch.from_numpy(code)\n        if self.control_type == 'canny':\n            output['control'] = torch.from_numpy(2*(self.get_control(image)/255 - 0.5))\n        elif self.control_type == \"seg\":\n            output['control'] = torch.from_numpy(control.transpose(2,0,1))\n        elif self.control_type == \"depth\":\n            output['control'] = torch.from_numpy(control.transpose(2,0,1))\n        elif self.control_type == 'hed':\n            output['control'] = torch.from_numpy(image.transpose(2,0,1))\n        elif self.control_type == 'lineart':\n            output['control'] = torch.from_numpy(image.transpose(2,0,1))\n        output['caption_emb'] = t5_feat_padding\n        output['attn_mask'] = attn_mask\n        output['valid'] = torch.tensor(valid)\n        output['image'] = torch.from_numpy(image.transpose(2,0,1))\n        if self.get_prompt:\n            output['prompt'] = prompt\n        if self.control_type == \"seg\":\n            output['label'] = torch.from_numpy(np.array(Image.open(label_path)))\n        return output\n\n\ndef build_t2i_control_code(args):\n    dataset = T2IControlCode(args)\n    return dataset\nif __name__ == '__main__':\n\n    args = parse_args()\n\n    logging_dir = Path(args.output_dir, args.logging_dir)\n\n    accelerator_project_config = ProjectConfiguration(project_dir=args.output_dir, logging_dir=logging_dir)\n\n    accelerator = Accelerator(\n        gradient_accumulation_steps=args.gradient_accumulation_steps,\n        mixed_precision=args.mixed_precision,\n        log_with=args.report_to,\n        project_config=accelerator_project_config,\n    )\n\n    train_dataset, val_dataset = make_train_dataset(args, None, accelerator)\n\n\n    train_dataloader = torch.utils.data.DataLoader(\n        train_dataset,\n        shuffle=True,\n        collate_fn=collate_fn,\n        batch_size=8,\n        num_workers=0,\n    )\n\n    from tqdm import tqdm \n    for step, batch in tqdm(enumerate(train_dataloader)):\n        continue"
  },
  {
    "path": "dataset/utils.py",
    "content": "import torch\nimport torch.nn as nn\nimport numpy as np\nimport torchvision.transforms.functional as F\n\nfrom PIL import Image\nfrom typing import Optional\nfrom functools import partial\nfrom torch import Tensor\nfrom torchvision import transforms\n\n# from canny_tools import Canny  # canny edge detection\n# from mmengine.hub import get_model  # segmentation\nfrom transformers import DPTForDepthEstimation  # depth estimation\n\n# from mmseg.models.losses.silog_loss import silog_loss\nfrom torchvision.transforms import RandomCrop\n\n\ndef get_reward_model(task='segmentation', model_path='mmseg::upernet/upernet_r50_4xb4-160k_ade20k-512x512.py'):\n    \"\"\"Return reward model for different tasks.\n\n    Args:\n        task (str, optional): Task name. Defaults to 'segmentation'.\n        model_path (str, optional): Model name or pre-trained path.\n\n    \"\"\"\n    if task == 'segmentation':\n        return get_model(model_path, pretrained=True)\n    elif task == 'canny':\n        return Canny()\n    elif task == 'depth':\n        return DPTForDepthEstimation.from_pretrained(model_path)\n    elif task == 'lineart':\n        model = LineDrawingModel()\n        model.load_state_dict(torch.hub.load_state_dict_from_url(model_path, map_location=torch.device('cpu')))\n        return model\n    elif task == 'hed':\n        return HEDdetector(model_path)\n    else:\n        raise not NotImplementedError(\"Only support segmentation, canny and depth for now.\")\n\n\ndef get_reward_loss(predictions, labels, task='segmentation', **args):\n    \"\"\"Return reward loss for different tasks.\n\n    Args:\n        task (str, optional): Task name.\n\n    Returns:\n        torch.nn.Module: Loss class.\n    \"\"\"\n    if task == 'segmentation':\n        return nn.functional.cross_entropy(predictions, labels, ignore_index=255, **args)\n    elif task == 'canny':\n        loss = nn.functional.mse_loss(predictions, labels, **args).mean(2)\n        return loss.mean((-1,-2))\n    elif task in ['depth', 'lineart', 'hed']:\n        loss = nn.functional.mse_loss(predictions, labels, **args)\n        return loss\n    else:\n        raise not NotImplementedError(\"Only support segmentation, canny and depth for now.\")\n\n\ndef image_grid(imgs, rows, cols):\n    \"\"\"Image grid for visualization.\"\"\"\n    assert len(imgs) == rows * cols\n\n    w, h = imgs[0].size\n    grid = Image.new(\"RGB\", size=(cols * w, rows * h))\n\n    for i, img in enumerate(imgs):\n        grid.paste(img, box=(i % cols * w, i // cols * h))\n    return grid\n\n\ndef map_color_to_index(image, dataset='limingcv/Captioned_ADE20K'):\n    \"\"\"Map colored segmentation image (RGB) into original label format (L).\n\n    Args:\n        image (torch.tensor): image tensor with shape (N, 3, H, W).\n        dataset (str, optional): Dataset name. Defaults to 'ADE20K'.\n\n    Returns:\n        torch.tensor: mask tensor with shape (N, H, W).\n    \"\"\"\n    if dataset == 'limingcv/Captioned_ADE20K':\n        palette = np.load('ade20k_palette.npy')\n    elif dataset == 'limingcv/Captioned_COCOStuff':\n        palette = np.load('coco_stuff_palette.npy')\n    else:\n        raise NotImplementedError(\"Only support ADE20K and COCO-Stuff dataset for now.\")\n\n    image = image * 255\n    palette_tensor = torch.tensor(palette, dtype=image.dtype, device=image.device)\n    reshaped_image = image.permute(0, 2, 3, 1).reshape(-1, 3)\n\n    # Calculate the difference of colors and find the index of the minimum distance\n    indices = torch.argmin(torch.norm(reshaped_image[:, None, :] - palette_tensor, dim=-1), dim=-1)\n\n    # Transform indices back to original shape\n    return indices.view(image.shape[0], image.shape[2], image.shape[3])\n\n\ndef seg_label_transform(\n        labels,\n        dataset_name='limingcv/Captioned_ADE20K',\n        output_size=(64, 64),\n        interpolation=transforms.InterpolationMode.NEAREST,\n        max_size=None,\n        antialias=True):\n    \"\"\"Adapt RGB seg_map into loss computation. \\\n    (1) Map the RGB seg_map into the original label format (Single Channel). \\\n    (2) Resize the seg_map into the same size as the output feature map. \\\n    (3) Remove background class if needed (usually for ADE20K).\n\n    Args:\n        labels (torch.tensor): Segmentation map. (N, 3, H, W) for ADE20K and (N, H, W) for COCO-Stuff.\n        dataset_name (string): Dataset name. Default to 'ADE20K'.\n        output_size (tuple): Resized image size, should be aligned with the output of segmentation models.\n        interpolation (optional): _description_. Defaults to transforms.InterpolationMode.NEAREST.\n        max_size (optional): Defaults to None.\n        antialias (optional): Defaults to True.\n\n    Returns:\n        torch.tensor: formatted labels for loss computation.\n    \"\"\"\n\n    if dataset_name == 'limingcv/Captioned_ADE20K':\n        labels = map_color_to_index(labels, dataset_name)\n        labels = F.resize(labels, output_size, interpolation, max_size, antialias)\n\n        # 0 means the background class in ADE20K\n        # In a unified format, we use 255 to represent the background class for both ADE20K and COCO-Stuff\n        labels = labels - 1\n        labels[labels == -1] = 255\n    elif dataset_name == 'limingcv/Captioned_COCOStuff':\n        labels = F.resize(labels, output_size, interpolation, max_size, antialias)\n\n    return labels.long()\n\ndef depth_label_transform(\n        labels,\n        dataset_name,\n        output_size=None,\n        interpolation=transforms.InterpolationMode.BILINEAR,\n        max_size=None,\n        antialias=True\n    ):\n\n    if output_size is not None:\n        labels = F.resize(labels, output_size, interpolation, max_size, antialias)\n    return labels\n\n\ndef edge_label_transform(labels, dataset_name):\n    return labels\n\n\ndef label_transform(labels, task, dataset_name, **args):\n    if task == 'segmentation':\n        return seg_label_transform(labels, dataset_name, **args)\n    elif task == 'depth':\n        return depth_label_transform(labels, dataset_name, **args)\n    elif task in ['canny', 'lineart', 'hed']:\n        return edge_label_transform(labels, dataset_name, **args)\n    else:\n        raise NotImplementedError(\"Only support segmentation and edge detection for now.\")\n\n\ndef group_random_crop(images, resolution):\n    \"\"\"\n    Args:\n        images (list of PIL Image or Tensor): List of images to be cropped.\n\n    Returns:\n        List of PIL Image or Tensor: List of cropped image.\n    \"\"\"\n\n    if isinstance(resolution, int):\n        resolution = (resolution, resolution)\n\n    for idx, image in enumerate(images):\n        i, j, h, w = RandomCrop.get_params(image, output_size=resolution)\n        images[idx] = F.crop(image, i, j, h, w)\n\n    return images\n\n\nnorm_layer = nn.InstanceNorm2d\nclass ResidualBlock(nn.Module):\n    def __init__(self, in_features):\n        super(ResidualBlock, self).__init__()\n\n        conv_block = [  nn.ReflectionPad2d(1),\n                        nn.Conv2d(in_features, in_features, 3),\n                        norm_layer(in_features),\n                        nn.ReLU(inplace=True),\n                        nn.ReflectionPad2d(1),\n                        nn.Conv2d(in_features, in_features, 3),\n                        norm_layer(in_features)\n                        ]\n\n        self.conv_block = nn.Sequential(*conv_block)\n\n    def forward(self, x):\n        return x + self.conv_block(x)\n\n\nclass LineDrawingModel(nn.Module):\n    def __init__(self, input_nc=3, output_nc=1, n_residual_blocks=3, sigmoid=True):\n        super(LineDrawingModel, self).__init__()\n\n        # Initial convolution block\n        model0 = [   nn.ReflectionPad2d(3),\n                    nn.Conv2d(input_nc, 64, 7),\n                    norm_layer(64),\n                    nn.ReLU(inplace=True) ]\n        self.model0 = nn.Sequential(*model0)\n\n        # Downsampling\n        model1 = []\n        in_features = 64\n        out_features = in_features*2\n        for _ in range(2):\n            model1 += [  nn.Conv2d(in_features, out_features, 3, stride=2, padding=1),\n                        norm_layer(out_features),\n                        nn.ReLU(inplace=True) ]\n            in_features = out_features\n            out_features = in_features*2\n        self.model1 = nn.Sequential(*model1)\n\n        model2 = []\n        # Residual blocks\n        for _ in range(n_residual_blocks):\n            model2 += [ResidualBlock(in_features)]\n        self.model2 = nn.Sequential(*model2)\n\n        # Upsampling\n        model3 = []\n        out_features = in_features//2\n        for _ in range(2):\n            model3 += [  nn.ConvTranspose2d(in_features, out_features, 3, stride=2, padding=1, output_padding=1),\n                        norm_layer(out_features),\n                        nn.ReLU(inplace=True) ]\n            in_features = out_features\n            out_features = in_features//2\n        self.model3 = nn.Sequential(*model3)\n\n        # Output layer\n        model4 = [  nn.ReflectionPad2d(3),\n                        nn.Conv2d(64, output_nc, 7)]\n        if sigmoid:\n            model4 += [nn.Sigmoid()]\n\n        self.model4 = nn.Sequential(*model4)\n\n    def forward(self, x, cond=None):\n        out = self.model0(x)\n        out = self.model1(out)\n        out = self.model2(out)\n        out = self.model3(out)\n        out = self.model4(out)\n\n        return out\n\n\n\nclass DoubleConvBlock(torch.nn.Module):\n    def __init__(self, input_channel, output_channel, layer_number):\n        super().__init__()\n        self.convs = torch.nn.Sequential()\n        self.convs.append(torch.nn.Conv2d(in_channels=input_channel, out_channels=output_channel, kernel_size=(3, 3), stride=(1, 1), padding=1))\n        for i in range(1, layer_number):\n            self.convs.append(torch.nn.Conv2d(in_channels=output_channel, out_channels=output_channel, kernel_size=(3, 3), stride=(1, 1), padding=1))\n        self.projection = torch.nn.Conv2d(in_channels=output_channel, out_channels=1, kernel_size=(1, 1), stride=(1, 1), padding=0)\n\n    def __call__(self, x, down_sampling=False):\n        h = x\n        if down_sampling:\n            h = torch.nn.functional.max_pool2d(h, kernel_size=(2, 2), stride=(2, 2))\n        for conv in self.convs:\n            h = conv(h)\n            h = torch.nn.functional.relu(h)\n        return h, self.projection(h)\n\n\nclass ControlNetHED_Apache2(torch.nn.Module):\n    def __init__(self):\n        super().__init__()\n        self.norm = torch.nn.Parameter(torch.zeros(size=(1, 3, 1, 1)))\n        self.block1 = DoubleConvBlock(input_channel=3, output_channel=64, layer_number=2)\n        self.block2 = DoubleConvBlock(input_channel=64, output_channel=128, layer_number=2)\n        self.block3 = DoubleConvBlock(input_channel=128, output_channel=256, layer_number=3)\n        self.block4 = DoubleConvBlock(input_channel=256, output_channel=512, layer_number=3)\n        self.block5 = DoubleConvBlock(input_channel=512, output_channel=512, layer_number=3)\n\n    def __call__(self, x):\n        h = x - self.norm\n        h, projection1 = self.block1(h)\n        h, projection2 = self.block2(h, down_sampling=True)\n        h, projection3 = self.block3(h, down_sampling=True)\n        h, projection4 = self.block4(h, down_sampling=True)\n        h, projection5 = self.block5(h, down_sampling=True)\n        return projection1, projection2, projection3, projection4, projection5\n\n\nclass HEDdetector(nn.Module):\n    def __init__(self, model_path):\n        super().__init__()\n        state_dict = torch.hub.load_state_dict_from_url(model_path, map_location=torch.device('cpu'))\n\n        self.netNetwork = ControlNetHED_Apache2()\n        self.netNetwork.load_state_dict(state_dict)\n\n    def __call__(self, input_image):\n        H, W = input_image.shape[2], input_image.shape[3]\n\n        edges = self.netNetwork((input_image * 255).clip(0, 255))\n        edges = [torch.nn.functional.interpolate(edge, size=(H, W), mode='bilinear') for edge in edges]\n        edges = torch.stack(edges, dim=1)\n        edge = 1 / (1 + torch.exp(-torch.mean(edges, dim=1)))\n        edge = (edge * 255.0).clip(0, 255).to(torch.uint8)\n\n        return edge / 255.0"
  },
  {
    "path": "demo/app.py",
    "content": "import os\nimport gradio as gr\nfrom .model import Model\nfrom huggingface_hub import hf_hub_download\nfrom app_canny import create_demo as create_demo_canny\nfrom app_depth import create_demo as create_demo_depth\n\nhf_hub_download(repo_id='wondervictor/ControlAR',\n                filename='canny_base.safetensors',\n                local_dir='./checkpoints/')\nhf_hub_download(repo_id='wondervictor/ControlAR',\n                filename='depth_base.safetensors',\n                local_dir='./checkpoints/')\n# hf_hub_download('google/flan-t5-xl', cache_dir='./checkpoints/')\n\nDESCRIPTION = \"# [ControlAR: Controllable Image Generation with Autoregressive Models](https://arxiv.org/abs/2410.02705) \\n ### The first row in outputs is the input image and condition. The second row is the images generated by ControlAR.  \\n ### You can run locally by following the instruction on our [Github Repo](https://github.com/hustvl/ControlAR).\"\nSHOW_DUPLICATE_BUTTON = os.getenv(\"SHOW_DUPLICATE_BUTTON\") == \"1\"\nmodel = Model()\ndevice = \"cuda\"\nwith gr.Blocks(css=\"style.css\") as demo:\n    gr.Markdown(DESCRIPTION)\n    gr.DuplicateButton(\n        value=\"Duplicate Space for private use\",\n        elem_id=\"duplicate-button\",\n        visible=SHOW_DUPLICATE_BUTTON,\n    )\n    with gr.Tabs():\n        with gr.TabItem(\"Depth\"):\n            create_demo_depth(model.process_depth)\n        with gr.TabItem(\"Canny\"):\n            create_demo_canny(model.process_edge)\n\nif __name__ == \"__main__\":\n    demo.launch(share=False)\n"
  },
  {
    "path": "demo/app_depth.py",
    "content": "import gradio as gr\r\nimport random\r\n\r\n\r\ndef randomize_seed_fn(seed: int, randomize_seed: bool) -> int:\r\n    if randomize_seed:\r\n        seed = random.randint(0, 100000000)\r\n    return seed\r\n\r\n\r\nexamples = [\r\n            [\r\n                \"condition/example/t2i/bird.jpg\",\r\n                \"A bird made of blue crystal\"\r\n            ],\r\n            [\r\n                \"condition/example/t2i/sofa.png\",\r\n                \"The red sofa in the living room has several pillows on it\"\r\n            ],\r\n            [\r\n                \"condition/example/t2i/house.jpg\",\r\n                \"A brick house with a chimney under a starry sky.\",\r\n            ]\r\n           ]\r\n\r\n\r\ndef create_demo(process):\r\n    with gr.Blocks() as demo:\r\n        with gr.Row():\r\n            with gr.Column():\r\n                image = gr.Image()\r\n                prompt = gr.Textbox(label=\"Prompt\")\r\n                run_button = gr.Button(\"Run\")\r\n                with gr.Accordion(\"Advanced options\", open=False):\r\n                    preprocessor_name = gr.Radio(\r\n                        label=\"Preprocessor\",\r\n                        choices=[\r\n                            \"depth\",\r\n                            \"No preprocess\",\r\n                        ],\r\n                        type=\"value\",\r\n                        value=\"depth\",\r\n                        info='depth.',\r\n                    )\r\n                    cfg_scale = gr.Slider(label=\"Guidance scale\",\r\n                                          minimum=0.1,\r\n                                          maximum=30.0,\r\n                                          value=4,\r\n                                          step=0.1)\r\n                    control_strength = gr.Slider(minimum=0., maximum=1.0, step=0.1, value=0.6, label=\"control_strength\")\r\n                    # resolution = gr.Slider(label=\"(H, W)\",\r\n                    #                        minimum=384,\r\n                    #                        maximum=768,\r\n                    #                        value=512,\r\n                    #                        step=16)\r\n                    top_k = gr.Slider(minimum=1,\r\n                                      maximum=16384,\r\n                                      step=1,\r\n                                      value=2000,\r\n                                      label='Top-K')\r\n                    top_p = gr.Slider(minimum=0.,\r\n                                      maximum=1.0,\r\n                                      step=0.1,\r\n                                      value=1.0,\r\n                                      label=\"Top-P\")\r\n                    temperature = gr.Slider(minimum=0.,\r\n                                            maximum=1.0,\r\n                                            step=0.1,\r\n                                            value=1.0,\r\n                                            label='Temperature')\r\n                    seed = gr.Slider(label=\"Seed\",\r\n                                     minimum=0,\r\n                                     maximum=100000000,\r\n                                     step=1,\r\n                                     value=0)\r\n                    randomize_seed = gr.Checkbox(label=\"Randomize seed\",\r\n                                                 value=True)\r\n            with gr.Column():\r\n                result = gr.Gallery(label=\"Output\",\r\n                                    show_label=False,\r\n                                    height='800px',\r\n                                    columns=2,\r\n                                    object_fit=\"scale-down\")\r\n        gr.Examples(\r\n            examples=examples,\r\n            inputs=[\r\n                image,\r\n                prompt,\r\n                # resolution,\r\n            ]\r\n        )\r\n        inputs = [\r\n            image,\r\n            prompt,\r\n            cfg_scale,\r\n            temperature,\r\n            top_k,\r\n            top_p,\r\n            seed,\r\n            control_strength,\r\n            preprocessor_name\r\n        ]\r\n        prompt.submit(\r\n            fn=randomize_seed_fn,\r\n            inputs=[seed, randomize_seed],\r\n            outputs=seed,\r\n            queue=False,\r\n            api_name=False,\r\n        ).then(\r\n            fn=process,\r\n            inputs=inputs,\r\n            outputs=result,\r\n            api_name=False,\r\n        )\r\n        run_button.click(\r\n            fn=randomize_seed_fn,\r\n            inputs=[seed, randomize_seed],\r\n            outputs=seed,\r\n            queue=False,\r\n            api_name=False,\r\n        ).then(\r\n            fn=process,\r\n            inputs=inputs,\r\n            outputs=result,\r\n            api_name=\"depth\",\r\n        )\r\n    return demo\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    from model import Model\r\n    model = Model()\r\n    demo = create_demo(model.process_depth)\r\n    demo.queue().launch(share=False, server_name=\"0.0.0.0\")\r\n\r\n"
  },
  {
    "path": "demo/app_edge.py",
    "content": "import gradio as gr\r\nimport random\r\n\r\n\r\ndef randomize_seed_fn(seed: int, randomize_seed: bool) -> int:\r\n    if randomize_seed:\r\n        seed = random.randint(0, 100000000)\r\n    return seed\r\n\r\n\r\nexamples = [\r\n    [\r\n        \"condition/example/t2i/landscape.jpg\",\r\n        \"Landscape photos with snow on the mountains in the distance and clear reflections in the lake near by\",\r\n    ],\r\n    [\r\n        \"condition/example/t2i/girl.jpg\",\r\n        \"A girl with blue hair\",\r\n    ],\r\n    [\r\n        \"condition/example/t2i/eye.png\",\r\n        \"A vivid drawing of an eye with a few pencils nearby\",\r\n    ],\r\n]\r\n\r\n\r\ndef create_demo(process):\r\n    with gr.Blocks() as demo:\r\n        with gr.Row():\r\n            with gr.Column():\r\n                image = gr.Image()\r\n                prompt = gr.Textbox(label=\"Prompt\")\r\n                run_button = gr.Button(\"Run\")\r\n                with gr.Accordion(\"Advanced options\", open=False):\r\n                    preprocessor_name = gr.Radio(\r\n                        label=\"Preprocessor\",\r\n                        choices=[\r\n                            \"Hed\",\r\n                            \"Canny\",\r\n                            \"Lineart\",\r\n                            \"No preprocess\",\r\n                        ],\r\n                        type=\"value\",\r\n                        value=\"Hed\",\r\n                        info='Edge type.',\r\n                    )\r\n                    canny_low_threshold = gr.Slider(\r\n                        label=\"Canny low threshold\",\r\n                        minimum=0,\r\n                        maximum=255,\r\n                        value=100,\r\n                        step=50)\r\n                    canny_high_threshold = gr.Slider(\r\n                        label=\"Canny high threshold\",\r\n                        minimum=0,\r\n                        maximum=255,\r\n                        value=200,\r\n                        step=50)\r\n                    cfg_scale = gr.Slider(label=\"Guidance scale\",\r\n                                          minimum=0.1,\r\n                                          maximum=30.0,\r\n                                          value=4,\r\n                                          step=0.1)\r\n                    control_strength = gr.Slider(minimum=0., maximum=1.0, step=0.1, value=0.6, label=\"control_strength\")\r\n                    # relolution = gr.Slider(label=\"(H, W)\",\r\n                    #                        minimum=384,\r\n                    #                        maximum=768,\r\n                    #                        value=512,\r\n                    #                        step=16)\r\n                    top_k = gr.Slider(minimum=1,\r\n                                      maximum=16384,\r\n                                      step=1,\r\n                                      value=2000,\r\n                                      label='Top-K')\r\n                    top_p = gr.Slider(minimum=0.,\r\n                                      maximum=1.0,\r\n                                      step=0.1,\r\n                                      value=1.0,\r\n                                      label=\"Top-P\")\r\n                    temperature = gr.Slider(minimum=0.,\r\n                                            maximum=1.0,\r\n                                            step=0.1,\r\n                                            value=1.0,\r\n                                            label='Temperature')\r\n                    seed = gr.Slider(label=\"Seed\",\r\n                                     minimum=0,\r\n                                     maximum=100000000,\r\n                                     step=1,\r\n                                     value=0)\r\n                    randomize_seed = gr.Checkbox(label=\"Randomize seed\",\r\n                                                 value=True)\r\n            with gr.Column():\r\n                result = gr.Gallery(label=\"Output\",\r\n                                    show_label=False,\r\n                                    height='800px',\r\n                                    columns=2,\r\n                                    object_fit=\"scale-down\")\r\n        gr.Examples(\r\n            examples=examples,\r\n            inputs=[\r\n                image,\r\n                prompt,\r\n                # relolution,\r\n            ]\r\n        )\r\n        inputs = [\r\n            image,\r\n            prompt,\r\n            cfg_scale,\r\n            temperature,\r\n            top_k,\r\n            top_p,\r\n            seed,\r\n            canny_low_threshold,\r\n            canny_high_threshold,\r\n            control_strength,\r\n            preprocessor_name,\r\n        ]\r\n        # prompt.submit(\r\n        #     fn=randomize_seed_fn,\r\n        #     inputs=[seed, randomize_seed],\r\n        #     outputs=seed,\r\n        #     queue=False,\r\n        #     api_name=False,\r\n        # ).then(\r\n        #     fn=process,\r\n        #     inputs=inputs,\r\n        #     outputs=result,\r\n        #     api_name=False,\r\n        # )\r\n        run_button.click(\r\n            fn=randomize_seed_fn,\r\n            inputs=[seed, randomize_seed],\r\n            outputs=seed,\r\n            queue=False,\r\n            api_name=False,\r\n        ).then(\r\n            fn=process,\r\n            inputs=inputs,\r\n            outputs=result,\r\n            api_name=\"edge\",\r\n        )\r\n    return demo\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    from model import Model\r\n    model = Model()\r\n    demo = create_demo(model.process_edge)\r\n    demo.queue().launch(share=False, server_name=\"0.0.0.0\")\r\n"
  },
  {
    "path": "demo/model.py",
    "content": "import gc\nimport spaces\nfrom safetensors.torch import load_file\nfrom autoregressive.models.gpt_t2i import GPT_models\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom language.t5 import T5Embedder\nimport torch\nimport numpy as np\nimport PIL\nfrom PIL import Image\nfrom condition.canny import CannyDetector\nimport time\nfrom autoregressive.models.generate import generate\nfrom condition.midas.depth import MidasDetector\nfrom preprocessor import Preprocessor\n\nmodels = {\n    \"edge\": \"checkpoints/edge_base.safetensors\",\n    \"depth\": \"checkpoints/depth_base.safetensors\",\n}\nclass Model:\n    def __init__(self):\n        self.device = torch.device(\n            \"cuda\")\n        self.base_model_id = \"\"\n        self.task_name = \"\"\n        self.vq_model = self.load_vq()\n        self.t5_model = self.load_t5()\n        # self.gpt_model_edge = self.load_gpt(condition_type='edge')\n        # self.gpt_model_depth = self.load_gpt(condition_type='depth')\n        self.gpt_model = self.load_gpt()\n        self.preprocessor = Preprocessor()\n\n    def to(self, device):\n        self.gpt_model_canny.to('cuda')\n\n    def load_vq(self):\n        vq_model = VQ_models[\"VQ-16\"](codebook_size=16384,\n                                      codebook_embed_dim=8)\n        vq_model.eval()\n        checkpoint = torch.load(f\"checkpoints/vq_ds16_t2i.pt\",\n                                map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        del checkpoint\n        print(\"image tokenizer is loaded\")\n        return vq_model\n\n    def load_gpt(self, condition_type='edge'):\n        # gpt_ckpt = models[condition_type]\n        # precision = torch.bfloat16\n        precision = torch.float32\n        latent_size = 512 // 16\n        gpt_model = GPT_models[\"GPT-XL\"](\n            block_size=latent_size**2,\n            cls_token_num=120,\n            model_type='t2i',\n            condition_type=condition_type,\n            adapter_size='base',\n        ).to(device='cpu', dtype=precision)\n        # model_weight = load_file(gpt_ckpt)\n        # gpt_model.load_state_dict(model_weight, strict=False)\n        # gpt_model.eval()\n        # print(\"gpt model is loaded\")\n        return gpt_model\n\n    def load_gpt_weight(self, condition_type='edge'):\n        torch.cuda.empty_cache()\n        gc.collect()\n        gpt_ckpt = models[condition_type]\n        model_weight = load_file(gpt_ckpt)\n        self.gpt_model.load_state_dict(model_weight, strict=False)\n        self.gpt_model.eval()\n        torch.cuda.empty_cache()\n        gc.collect()\n        # print(\"gpt model is loaded\")\n        \n    def load_t5(self):\n        # precision = torch.bfloat16\n        precision = torch.float32\n        t5_model = T5Embedder(\n            device=self.device,\n            local_cache=True,\n            cache_dir='checkpoints/flan-t5-xl',\n            dir_or_name='flan-t5-xl',\n            torch_dtype=precision,\n            model_max_length=120,\n        )\n        return t5_model\n\n    @torch.no_grad()\n    @spaces.GPU(enable_queue=True)\n    def process_edge(\n        self,\n        image: np.ndarray,\n        prompt: str,\n        cfg_scale: float,\n        temperature: float,\n        top_k: int,\n        top_p: int,\n        seed: int,\n        low_threshold: int,\n        high_threshold: int,\n        control_strength: float,\n        preprocessor_name: str,\n    ) -> list[PIL.Image.Image]:\n        \n        if isinstance(image, np.ndarray):\n            image = Image.fromarray(image)\n        origin_W, origin_H = image.size\n        if preprocessor_name == 'Canny':\n            self.preprocessor.load(\"Canny\")\n            condition_img = self.preprocessor(\n                image=image, low_threshold=low_threshold, high_threshold=high_threshold, detect_resolution=512)\n        elif preprocessor_name == 'Hed':\n            self.preprocessor.load(\"HED\")\n            condition_img = self.preprocessor(\n                image=image,image_resolution=512, detect_resolution=512)\n        elif preprocessor_name == 'Lineart':\n            self.preprocessor.load(\"Lineart\")\n            condition_img = self.preprocessor(\n                image=image,image_resolution=512, detect_resolution=512)\n        elif preprocessor_name == 'No preprocess':\n            condition_img = image\n        print('get edge')\n        del self.preprocessor.model\n        torch.cuda.empty_cache()\n        condition_img = condition_img.resize((512,512))\n        W, H = condition_img.size\n\n        self.t5_model.model.to('cuda').to(torch.bfloat16)\n        self.load_gpt_weight('edge')\n        self.gpt_model.to('cuda').to(torch.bfloat16)\n        self.vq_model.to('cuda')\n        condition_img = torch.from_numpy(np.array(condition_img)).unsqueeze(0).permute(0,3,1,2).repeat(1,1,1,1)\n        condition_img = condition_img.to(self.device)\n        condition_img = 2*(condition_img/255 - 0.5)\n        prompts = [prompt] * 1\n        caption_embs, emb_masks = self.t5_model.get_text_embeddings(prompts)\n\n        print(f\"processing left-padding...\")\n        new_emb_masks = torch.flip(emb_masks, dims=[-1])\n        new_caption_embs = []\n        for idx, (caption_emb,\n                  emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n            valid_num = int(emb_mask.sum().item())\n            print(f'  prompt {idx} token len: {valid_num}')\n            new_caption_emb = torch.cat(\n                [caption_emb[valid_num:], caption_emb[:valid_num]])\n            new_caption_embs.append(new_caption_emb)\n        new_caption_embs = torch.stack(new_caption_embs)\n        c_indices = new_caption_embs * new_emb_masks[:, :, None]\n        c_emb_masks = new_emb_masks\n        qzshape = [len(c_indices), 8, H // 16, W // 16]\n        t1 = time.time()\n        print(caption_embs.device)\n        index_sample = generate(\n            self.gpt_model,\n            c_indices,\n            (H // 16) * (W // 16),\n            c_emb_masks,\n            condition=condition_img,\n            cfg_scale=cfg_scale,\n            temperature=temperature,\n            top_k=top_k,\n            top_p=top_p,\n            sample_logits=True,\n            control_strength=control_strength,\n        )\n        sampling_time = time.time() - t1\n        print(f\"Full sampling takes about {sampling_time:.2f} seconds.\")\n\n        t2 = time.time()\n        print(index_sample.shape)\n        samples = self.vq_model.decode_code(\n            index_sample, qzshape)  # output value is between [-1, 1]\n        decoder_time = time.time() - t2\n        print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n        # samples = condition_img[0:1]\n        samples = torch.cat((condition_img[0:1], samples), dim=0)\n        samples = 255 * (samples * 0.5 + 0.5)\n        samples = [\n            Image.fromarray(\n                sample.permute(1, 2, 0).cpu().detach().numpy().clip(\n                    0, 255).astype(np.uint8)) for sample in samples\n        ]\n        del condition_img\n        torch.cuda.empty_cache()\n        return samples\n\n    @torch.no_grad()\n    @spaces.GPU(enable_queue=True)\n    def process_depth(\n        self,\n        image: np.ndarray,\n        prompt: str,\n        cfg_scale: float,\n        temperature: float,\n        top_k: int,\n        top_p: int,\n        seed: int,\n        control_strength: float,\n        preprocessor_name: str\n    ) -> list[PIL.Image.Image]:\n        \n        if isinstance(image, np.ndarray):\n            image = Image.fromarray(image)\n        origin_W, origin_H = image.size\n        # print(image)\n        if preprocessor_name == 'depth':\n            self.preprocessor.load(\"Depth\")\n            condition_img = self.preprocessor(\n                    image=image,\n                    image_resolution=512,\n                    detect_resolution=512,\n                )\n        elif preprocessor_name == 'No preprocess':\n            condition_img = image\n        print('get depth')\n        del self.preprocessor.model\n        torch.cuda.empty_cache()\n        condition_img = condition_img.resize((512,512))\n        W, H = condition_img.size\n\n        self.t5_model.model.to(self.device).to(torch.bfloat16)\n        self.load_gpt_weight('depth')\n        self.gpt_model.to('cuda').to(torch.bfloat16)\n        self.vq_model.to(self.device)\n        condition_img = torch.from_numpy(np.array(condition_img)).unsqueeze(0).permute(0,3,1,2).repeat(1,1,1,1)\n        condition_img = condition_img.to(self.device)\n        condition_img = 2*(condition_img/255 - 0.5)\n        prompts = [prompt] * 1\n        caption_embs, emb_masks = self.t5_model.get_text_embeddings(prompts)\n\n        print(f\"processing left-padding...\")\n        new_emb_masks = torch.flip(emb_masks, dims=[-1])\n        new_caption_embs = []\n        for idx, (caption_emb,\n                  emb_mask) in enumerate(zip(caption_embs, emb_masks)):\n            valid_num = int(emb_mask.sum().item())\n            print(f'  prompt {idx} token len: {valid_num}')\n            new_caption_emb = torch.cat(\n                [caption_emb[valid_num:], caption_emb[:valid_num]])\n            new_caption_embs.append(new_caption_emb)\n        new_caption_embs = torch.stack(new_caption_embs)\n\n        c_indices = new_caption_embs * new_emb_masks[:, :, None]\n        c_emb_masks = new_emb_masks\n        qzshape = [len(c_indices), 8, H // 16, W // 16]\n        t1 = time.time()\n        index_sample = generate(\n            self.gpt_model,\n            c_indices,\n            (H // 16) * (W // 16),\n            c_emb_masks,\n            condition=condition_img,\n            cfg_scale=cfg_scale,\n            temperature=temperature,\n            top_k=top_k,\n            top_p=top_p,\n            sample_logits=True,\n            control_strength=control_strength,\n        )\n        sampling_time = time.time() - t1\n        print(f\"Full sampling takes about {sampling_time:.2f} seconds.\")\n\n        t2 = time.time()\n        print(index_sample.shape)\n        samples = self.vq_model.decode_code(index_sample, qzshape)\n        decoder_time = time.time() - t2\n        print(f\"decoder takes about {decoder_time:.2f} seconds.\")\n        condition_img = condition_img.cpu()\n        samples = samples.cpu()\n\n        # samples = condition_img[0:1]\n        samples = torch.cat((condition_img[0:1], samples), dim=0)\n        samples = 255 * (samples * 0.5 + 0.5)\n        samples = [\n            Image.fromarray(\n                sample.permute(1, 2, 0).cpu().detach().numpy().clip(0, 255).astype(np.uint8))\n            for sample in samples\n        ]\n        del condition_img\n        torch.cuda.empty_cache()\n        return samples\n"
  },
  {
    "path": "evaluations/ade20k_mIoU.py",
    "content": "import os\nimport numpy as np\nfrom mmseg.apis import init_model, inference_model, show_result_pyplot#, inference_segmentor\nimport torch\nfrom PIL import Image\nfrom sklearn.metrics import confusion_matrix\nfrom torchmetrics import JaccardIndex\n\ndef main():\n    config_file = 'mmsegmentation/configs/mask2former/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640.py'\n    checkpoint_file = 'evaluations/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640_20221203_235933-7120c214.pth'\n    \n    # build the model from a config file and a checkpoint file\n    model = init_model(config_file, checkpoint_file, device='cuda:0')\n    \n    # Image and segmentation labels directories\n    img_dir = 'sample/ade20k/visualization'\n    ann_dir = 'sample/ade20k/annotations'\n    \n    # List all image files\n    img_fns = [f for f in sorted(os.listdir(img_dir)) if f.endswith(\".png\")]\n    # ann_fns = [f for f in sorted(os.listdir(ann_dir)) if f.endswith(\".png\")]\n    \n    total_mIoU = 0\n    from tqdm import tqdm\n    i = 0\n    jaccard_index = JaccardIndex(task=\"multiclass\", num_classes=150)\n    num_classes = 150\n    conf_matrix = np.zeros((num_classes + 1, num_classes + 1), dtype=np.int64)\n    for img_fn in tqdm(img_fns):\n        i += 1\n        # if i >= 100:\n        #     break\n        # try:\n        img_path = os.path.join(img_dir, img_fn)\n        ann_path = os.path.join(ann_dir, img_fn)\n        result = inference_model(model, img_path)\n        # except Exception as e:\n        #     continue\n        # Read ground truth segmentation map\n        gt_semantic_seg = np.array(Image.open(ann_path))\n\n        ignore_label = 0\n        gt = gt_semantic_seg.copy()\n        pred = result.pred_sem_seg.data[0].cpu().numpy().copy()+1\n        gt[gt == ignore_label] = num_classes\n        conf_matrix += np.bincount(\n            (num_classes + 1) * pred.reshape(-1) + gt.reshape(-1),\n            minlength=conf_matrix.size,\n        ).reshape(conf_matrix.shape)\n        \n    \n    # calculate miou\n    acc = np.full(num_classes, np.nan, dtype=np.float64)\n    iou = np.full(num_classes, np.nan, dtype=np.float64)\n    tp = conf_matrix.diagonal()[:-1].astype(np.float64)\n    pos_gt = np.sum(conf_matrix[:-1, :-1], axis=0).astype(np.float64)\n    pos_pred = np.sum(conf_matrix[:-1, :-1], axis=1).astype(np.float64)\n    acc_valid = pos_gt > 0\n    acc[acc_valid] = tp[acc_valid] / pos_gt[acc_valid]\n    iou_valid = (pos_gt + pos_pred) > 0\n    union = pos_gt + pos_pred - tp\n    iou[acc_valid] = tp[acc_valid] / union[acc_valid]\n    miou = np.sum(iou[acc_valid]) / np.sum(iou_valid)\n    print(f\"mIoU: {miou}\")\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "evaluations/c2i/README.md",
    "content": "# Evaluations from [OpenAI](https://github.com/openai/guided-diffusion/tree/main/evaluations)\n\nTo compare different generative models, we use FID, sFID, Precision, Recall, and Inception Score. These metrics can all be calculated using batches of samples, which we store in `.npz` (numpy) files.\n\n# Installation\n### cuda version 11.7\n```\npip install tensorflow-gpu==2.5.0\npip install numpy==1.22.0\npip install scipy\npip install pydantic\n```\nThere will happen error like `tensorflow.python.framework.errors_impl.NotFoundError: /usr/local/lib/python3.9/dist-packages/tensorflow/core/kernels/libtfkernel_sobol_op.so: undefined symbol: _ZN10tensorflow...`, deleting `/usr/local/lib/python3.9/dist-packages/tensorflow/core/kernels/libtfkernel_sobol_op.so` will fix this error.\n\n### cuda version 12.1\n```\npip install tensorflow\npip install numpy==1.23.5\npip install scipy\n```\n\n### H100, cuda version 12.2\n```\npip install tensorflow\npip install numpy==1.26.2\npip install scipy\n```\n\n# Download batches\n\nWe provide pre-computed sample batches for the reference datasets, our diffusion models, and several baselines we compare against. These are all stored in `.npz` format.\n\nReference dataset batches contain pre-computed statistics over the whole dataset, as well as 10,000 images for computing Precision and Recall. All other batches contain 50,000 images which can be used to compute statistics and Precision/Recall.\n\nHere are links to download all of the sample and reference batches:\n\n * LSUN\n   * LSUN bedroom: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/bedroom/VIRTUAL_lsun_bedroom256.npz)\n     * [ADM (dropout)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/bedroom/admnet_dropout_lsun_bedroom.npz)\n     * [DDPM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/bedroom/ddpm_lsun_bedroom.npz)\n     * [IDDPM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/bedroom/iddpm_lsun_bedroom.npz)\n     * [StyleGAN](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/bedroom/stylegan_lsun_bedroom.npz)\n   * LSUN cat: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/cat/VIRTUAL_lsun_cat256.npz)\n     * [ADM (dropout)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/cat/admnet_dropout_lsun_cat.npz)\n     * [StyleGAN2](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/cat/stylegan2_lsun_cat.npz)\n   * LSUN horse: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/horse/VIRTUAL_lsun_horse256.npz)\n     * [ADM (dropout)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/horse/admnet_dropout_lsun_horse.npz)\n     * [ADM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/lsun/horse/admnet_lsun_horse.npz)\n\n * ImageNet\n   * ImageNet 64x64: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/64/VIRTUAL_imagenet64_labeled.npz)\n     * [ADM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/64/admnet_imagenet64.npz)\n     * [IDDPM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/64/iddpm_imagenet64.npz)\n     * [BigGAN](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/64/biggan_deep_imagenet64.npz)\n   * ImageNet 128x128: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/128/VIRTUAL_imagenet128_labeled.npz)\n     * [ADM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/128/admnet_imagenet128.npz)\n     * [ADM-G](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/128/admnet_guided_imagenet128.npz)\n     * [ADM-G, 25 steps](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/128/admnet_guided_25step_imagenet128.npz)\n     * [BigGAN-deep (trunc=1.0)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/128/biggan_deep_trunc1_imagenet128.npz)\n   * ImageNet 256x256: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/VIRTUAL_imagenet256_labeled.npz)\n     * [ADM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/admnet_imagenet256.npz)\n     * [ADM-G](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/admnet_guided_imagenet256.npz)\n     * [ADM-G, 25 step](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/admnet_guided_25step_imagenet256.npz)\n     * [ADM-G + ADM-U](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/admnet_guided_upsampled_imagenet256.npz)\n     * [ADM-U](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/admnet_upsampled_imagenet256.npz)\n     * [BigGAN-deep (trunc=1.0)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/256/biggan_deep_trunc1_imagenet256.npz)\n   * ImageNet 512x512: [reference batch](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/VIRTUAL_imagenet512.npz)\n     * [ADM](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/admnet_imagenet512.npz)\n     * [ADM-G](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/admnet_guided_imagenet512.npz)\n     * [ADM-G, 25 step](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/admnet_guided_25step_imagenet512.npz)\n     * [ADM-G + ADM-U](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/admnet_guided_upsampled_imagenet512.npz)\n     * [ADM-U](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/admnet_upsampled_imagenet512.npz)\n     * [BigGAN-deep (trunc=1.0)](https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/imagenet/512/biggan_deep_trunc1_imagenet512.npz)\n\n# Run evaluations\n\nFirst, generate or download a batch of samples and download the corresponding reference batch for the given dataset. For this example, we'll use ImageNet 256x256, so the refernce batch is `VIRTUAL_imagenet256_labeled.npz` and we can use the sample batch `admnet_guided_upsampled_imagenet256.npz`.\n\nNext, run the `evaluator.py` script. The requirements of this script can be found in [requirements.txt](requirements.txt). Pass two arguments to the script: the reference batch and the sample batch. The script will download the InceptionV3 model used for evaluations into the current working directory (if it is not already present). This file is roughly 100MB.\n\nThe output of the script will look something like this, where the first `...` is a bunch of verbose TensorFlow logging:\n\n```\n$ python evaluator.py VIRTUAL_imagenet256_labeled.npz admnet_guided_upsampled_imagenet256.npz\n...\ncomputing reference batch activations...\ncomputing/reading reference batch statistics...\ncomputing sample batch activations...\ncomputing/reading sample batch statistics...\nComputing evaluations...\nInception Score: 215.8370361328125\nFID: 3.9425574129223264\nsFID: 6.140433703346162\nPrecision: 0.8265\nRecall: 0.5309\n```\n"
  },
  {
    "path": "evaluations/c2i/evaluator.py",
    "content": "import argparse\nimport io\nimport os\nimport random\nimport warnings\nimport zipfile\nfrom abc import ABC, abstractmethod\nfrom contextlib import contextmanager\nfrom functools import partial\nfrom multiprocessing import cpu_count\nfrom multiprocessing.pool import ThreadPool\nfrom typing import Iterable, Optional, Tuple\n\nimport numpy as np\nimport requests\nimport tensorflow.compat.v1 as tf\nfrom scipy import linalg\nfrom tqdm.auto import tqdm\n\nINCEPTION_V3_URL = \"https://openaipublic.blob.core.windows.net/diffusion/jul-2021/ref_batches/classify_image_graph_def.pb\"\nINCEPTION_V3_PATH = \"classify_image_graph_def.pb\"\n\nFID_POOL_NAME = \"pool_3:0\"\nFID_SPATIAL_NAME = \"mixed_6/conv:0\"\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"ref_batch\", help=\"path to reference batch npz file\")\n    parser.add_argument(\"sample_batch\", help=\"path to sample batch npz file\")\n    args = parser.parse_args()\n\n    config = tf.ConfigProto(\n        allow_soft_placement=True  # allows DecodeJpeg to run on CPU in Inception graph\n    )\n    config.gpu_options.allow_growth = True\n    evaluator = Evaluator(tf.Session(config=config))\n\n    print(\"warming up TensorFlow...\")\n    # This will cause TF to print a bunch of verbose stuff now rather\n    # than after the next print(), to help prevent confusion.\n    evaluator.warmup()\n\n    print(\"computing reference batch activations...\")\n    ref_acts = evaluator.read_activations(args.ref_batch)\n    print(\"computing/reading reference batch statistics...\")\n    ref_stats, ref_stats_spatial = evaluator.read_statistics(args.ref_batch, ref_acts)\n\n    print(\"computing sample batch activations...\")\n    sample_acts = evaluator.read_activations(args.sample_batch)\n    print(\"computing/reading sample batch statistics...\")\n    sample_stats, sample_stats_spatial = evaluator.read_statistics(args.sample_batch, sample_acts)\n\n    print(\"Computing evaluations...\")\n    IS = evaluator.compute_inception_score(sample_acts[0])\n    FID = sample_stats.frechet_distance(ref_stats)\n    sFID = sample_stats_spatial.frechet_distance(ref_stats_spatial)\n    print(\"Inception Score:\", IS)\n    print(\"FID:\", FID)\n    print(\"sFID:\", sFID)\n    prec, recall = evaluator.compute_prec_recall(ref_acts[0], sample_acts[0])\n    print(\"Precision:\", prec)\n    print(\"Recall:\", recall)\n\n    txt_path = args.sample_batch.replace('.npz', '.txt')\n    print(\"writing to {}\".format(txt_path))\n    with open(txt_path, 'w') as f:\n        print(\"Inception Score:\", IS, file=f)\n        print(\"FID:\", FID, file=f)\n        print(\"sFID:\", sFID, file=f)\n        print(\"Precision:\", prec, file=f)\n        print(\"Recall:\", recall, file=f)\n\n\nclass InvalidFIDException(Exception):\n    pass\n\n\nclass FIDStatistics:\n    def __init__(self, mu: np.ndarray, sigma: np.ndarray):\n        self.mu = mu\n        self.sigma = sigma\n\n    def frechet_distance(self, other, eps=1e-6):\n        \"\"\"\n        Compute the Frechet distance between two sets of statistics.\n        \"\"\"\n        # https://github.com/bioinf-jku/TTUR/blob/73ab375cdf952a12686d9aa7978567771084da42/fid.py#L132\n        mu1, sigma1 = self.mu, self.sigma\n        mu2, sigma2 = other.mu, other.sigma\n\n        mu1 = np.atleast_1d(mu1)\n        mu2 = np.atleast_1d(mu2)\n\n        sigma1 = np.atleast_2d(sigma1)\n        sigma2 = np.atleast_2d(sigma2)\n\n        assert (\n            mu1.shape == mu2.shape\n        ), f\"Training and test mean vectors have different lengths: {mu1.shape}, {mu2.shape}\"\n        assert (\n            sigma1.shape == sigma2.shape\n        ), f\"Training and test covariances have different dimensions: {sigma1.shape}, {sigma2.shape}\"\n\n        diff = mu1 - mu2\n\n        # product might be almost singular\n        covmean, _ = linalg.sqrtm(sigma1.dot(sigma2), disp=False)\n        if not np.isfinite(covmean).all():\n            msg = (\n                \"fid calculation produces singular product; adding %s to diagonal of cov estimates\"\n                % eps\n            )\n            warnings.warn(msg)\n            offset = np.eye(sigma1.shape[0]) * eps\n            covmean = linalg.sqrtm((sigma1 + offset).dot(sigma2 + offset))\n\n        # numerical error might give slight imaginary component\n        if np.iscomplexobj(covmean):\n            if not np.allclose(np.diagonal(covmean).imag, 0, atol=1e-3):\n                m = np.max(np.abs(covmean.imag))\n                raise ValueError(\"Imaginary component {}\".format(m))\n            covmean = covmean.real\n\n        tr_covmean = np.trace(covmean)\n\n        return diff.dot(diff) + np.trace(sigma1) + np.trace(sigma2) - 2 * tr_covmean\n\n\nclass Evaluator:\n    def __init__(\n        self,\n        session,\n        batch_size=64,\n        softmax_batch_size=512,\n    ):\n        self.sess = session\n        self.batch_size = batch_size\n        self.softmax_batch_size = softmax_batch_size\n        self.manifold_estimator = ManifoldEstimator(session)\n        with self.sess.graph.as_default():\n            self.image_input = tf.placeholder(tf.float32, shape=[None, None, None, 3])\n            self.softmax_input = tf.placeholder(tf.float32, shape=[None, 2048])\n            self.pool_features, self.spatial_features = _create_feature_graph(self.image_input)\n            self.softmax = _create_softmax_graph(self.softmax_input)\n\n    def warmup(self):\n        self.compute_activations(np.zeros([1, 8, 64, 64, 3]))\n\n    def read_activations(self, npz_path: str) -> Tuple[np.ndarray, np.ndarray]:\n        with open_npz_array(npz_path, \"arr_0\") as reader:\n            return self.compute_activations(reader.read_batches(self.batch_size))\n\n    def compute_activations(self, batches: Iterable[np.ndarray]) -> Tuple[np.ndarray, np.ndarray]:\n        \"\"\"\n        Compute image features for downstream evals.\n\n        :param batches: a iterator over NHWC numpy arrays in [0, 255].\n        :return: a tuple of numpy arrays of shape [N x X], where X is a feature\n                 dimension. The tuple is (pool_3, spatial).\n        \"\"\"\n        preds = []\n        spatial_preds = []\n        for batch in tqdm(batches):\n            batch = batch.astype(np.float32)\n            pred, spatial_pred = self.sess.run(\n                [self.pool_features, self.spatial_features], {self.image_input: batch}\n            )\n            preds.append(pred.reshape([pred.shape[0], -1]))\n            spatial_preds.append(spatial_pred.reshape([spatial_pred.shape[0], -1]))\n        return (\n            np.concatenate(preds, axis=0),\n            np.concatenate(spatial_preds, axis=0),\n        )\n\n    def read_statistics(\n        self, npz_path: str, activations: Tuple[np.ndarray, np.ndarray]\n    ) -> Tuple[FIDStatistics, FIDStatistics]:\n        obj = np.load(npz_path)\n        if \"mu\" in list(obj.keys()):\n            return FIDStatistics(obj[\"mu\"], obj[\"sigma\"]), FIDStatistics(\n                obj[\"mu_s\"], obj[\"sigma_s\"]\n            )\n        return tuple(self.compute_statistics(x) for x in activations)\n\n    def compute_statistics(self, activations: np.ndarray) -> FIDStatistics:\n        mu = np.mean(activations, axis=0)\n        sigma = np.cov(activations, rowvar=False)\n        return FIDStatistics(mu, sigma)\n\n    def compute_inception_score(self, activations: np.ndarray, split_size: int = 5000) -> float:\n        softmax_out = []\n        for i in range(0, len(activations), self.softmax_batch_size):\n            acts = activations[i : i + self.softmax_batch_size]\n            softmax_out.append(self.sess.run(self.softmax, feed_dict={self.softmax_input: acts}))\n        preds = np.concatenate(softmax_out, axis=0)\n        # https://github.com/openai/improved-gan/blob/4f5d1ec5c16a7eceb206f42bfc652693601e1d5c/inception_score/model.py#L46\n        scores = []\n        for i in range(0, len(preds), split_size):\n            part = preds[i : i + split_size]\n            kl = part * (np.log(part) - np.log(np.expand_dims(np.mean(part, 0), 0)))\n            kl = np.mean(np.sum(kl, 1))\n            scores.append(np.exp(kl))\n        return float(np.mean(scores))\n\n    def compute_prec_recall(\n        self, activations_ref: np.ndarray, activations_sample: np.ndarray\n    ) -> Tuple[float, float]:\n        radii_1 = self.manifold_estimator.manifold_radii(activations_ref)\n        radii_2 = self.manifold_estimator.manifold_radii(activations_sample)\n        pr = self.manifold_estimator.evaluate_pr(\n            activations_ref, radii_1, activations_sample, radii_2\n        )\n        return (float(pr[0][0]), float(pr[1][0]))\n\n\nclass ManifoldEstimator:\n    \"\"\"\n    A helper for comparing manifolds of feature vectors.\n\n    Adapted from https://github.com/kynkaat/improved-precision-and-recall-metric/blob/f60f25e5ad933a79135c783fcda53de30f42c9b9/precision_recall.py#L57\n    \"\"\"\n\n    def __init__(\n        self,\n        session,\n        row_batch_size=10000,\n        col_batch_size=10000,\n        nhood_sizes=(3,),\n        clamp_to_percentile=None,\n        eps=1e-5,\n    ):\n        \"\"\"\n        Estimate the manifold of given feature vectors.\n\n        :param session: the TensorFlow session.\n        :param row_batch_size: row batch size to compute pairwise distances\n                               (parameter to trade-off between memory usage and performance).\n        :param col_batch_size: column batch size to compute pairwise distances.\n        :param nhood_sizes: number of neighbors used to estimate the manifold.\n        :param clamp_to_percentile: prune hyperspheres that have radius larger than\n                                    the given percentile.\n        :param eps: small number for numerical stability.\n        \"\"\"\n        self.distance_block = DistanceBlock(session)\n        self.row_batch_size = row_batch_size\n        self.col_batch_size = col_batch_size\n        self.nhood_sizes = nhood_sizes\n        self.num_nhoods = len(nhood_sizes)\n        self.clamp_to_percentile = clamp_to_percentile\n        self.eps = eps\n\n    def warmup(self):\n        feats, radii = (\n            np.zeros([1, 2048], dtype=np.float32),\n            np.zeros([1, 1], dtype=np.float32),\n        )\n        self.evaluate_pr(feats, radii, feats, radii)\n\n    def manifold_radii(self, features: np.ndarray) -> np.ndarray:\n        num_images = len(features)\n\n        # Estimate manifold of features by calculating distances to k-NN of each sample.\n        radii = np.zeros([num_images, self.num_nhoods], dtype=np.float32)\n        distance_batch = np.zeros([self.row_batch_size, num_images], dtype=np.float32)\n        seq = np.arange(max(self.nhood_sizes) + 1, dtype=np.int32)\n\n        for begin1 in range(0, num_images, self.row_batch_size):\n            end1 = min(begin1 + self.row_batch_size, num_images)\n            row_batch = features[begin1:end1]\n\n            for begin2 in range(0, num_images, self.col_batch_size):\n                end2 = min(begin2 + self.col_batch_size, num_images)\n                col_batch = features[begin2:end2]\n\n                # Compute distances between batches.\n                distance_batch[\n                    0 : end1 - begin1, begin2:end2\n                ] = self.distance_block.pairwise_distances(row_batch, col_batch)\n\n            # Find the k-nearest neighbor from the current batch.\n            radii[begin1:end1, :] = np.concatenate(\n                [\n                    x[:, self.nhood_sizes]\n                    for x in _numpy_partition(distance_batch[0 : end1 - begin1, :], seq, axis=1)\n                ],\n                axis=0,\n            )\n\n        if self.clamp_to_percentile is not None:\n            max_distances = np.percentile(radii, self.clamp_to_percentile, axis=0)\n            radii[radii > max_distances] = 0\n        return radii\n\n    def evaluate(self, features: np.ndarray, radii: np.ndarray, eval_features: np.ndarray):\n        \"\"\"\n        Evaluate if new feature vectors are at the manifold.\n        \"\"\"\n        num_eval_images = eval_features.shape[0]\n        num_ref_images = radii.shape[0]\n        distance_batch = np.zeros([self.row_batch_size, num_ref_images], dtype=np.float32)\n        batch_predictions = np.zeros([num_eval_images, self.num_nhoods], dtype=np.int32)\n        max_realism_score = np.zeros([num_eval_images], dtype=np.float32)\n        nearest_indices = np.zeros([num_eval_images], dtype=np.int32)\n\n        for begin1 in range(0, num_eval_images, self.row_batch_size):\n            end1 = min(begin1 + self.row_batch_size, num_eval_images)\n            feature_batch = eval_features[begin1:end1]\n\n            for begin2 in range(0, num_ref_images, self.col_batch_size):\n                end2 = min(begin2 + self.col_batch_size, num_ref_images)\n                ref_batch = features[begin2:end2]\n\n                distance_batch[\n                    0 : end1 - begin1, begin2:end2\n                ] = self.distance_block.pairwise_distances(feature_batch, ref_batch)\n\n            # From the minibatch of new feature vectors, determine if they are in the estimated manifold.\n            # If a feature vector is inside a hypersphere of some reference sample, then\n            # the new sample lies at the estimated manifold.\n            # The radii of the hyperspheres are determined from distances of neighborhood size k.\n            samples_in_manifold = distance_batch[0 : end1 - begin1, :, None] <= radii\n            batch_predictions[begin1:end1] = np.any(samples_in_manifold, axis=1).astype(np.int32)\n\n            max_realism_score[begin1:end1] = np.max(\n                radii[:, 0] / (distance_batch[0 : end1 - begin1, :] + self.eps), axis=1\n            )\n            nearest_indices[begin1:end1] = np.argmin(distance_batch[0 : end1 - begin1, :], axis=1)\n\n        return {\n            \"fraction\": float(np.mean(batch_predictions)),\n            \"batch_predictions\": batch_predictions,\n            \"max_realisim_score\": max_realism_score,\n            \"nearest_indices\": nearest_indices,\n        }\n\n    def evaluate_pr(\n        self,\n        features_1: np.ndarray,\n        radii_1: np.ndarray,\n        features_2: np.ndarray,\n        radii_2: np.ndarray,\n    ) -> Tuple[np.ndarray, np.ndarray]:\n        \"\"\"\n        Evaluate precision and recall efficiently.\n\n        :param features_1: [N1 x D] feature vectors for reference batch.\n        :param radii_1: [N1 x K1] radii for reference vectors.\n        :param features_2: [N2 x D] feature vectors for the other batch.\n        :param radii_2: [N x K2] radii for other vectors.\n        :return: a tuple of arrays for (precision, recall):\n                 - precision: an np.ndarray of length K1\n                 - recall: an np.ndarray of length K2\n        \"\"\"\n        features_1_status = np.zeros([len(features_1), radii_2.shape[1]], dtype=bool)\n        features_2_status = np.zeros([len(features_2), radii_1.shape[1]], dtype=bool)\n        for begin_1 in range(0, len(features_1), self.row_batch_size):\n            end_1 = begin_1 + self.row_batch_size\n            batch_1 = features_1[begin_1:end_1]\n            for begin_2 in range(0, len(features_2), self.col_batch_size):\n                end_2 = begin_2 + self.col_batch_size\n                batch_2 = features_2[begin_2:end_2]\n                batch_1_in, batch_2_in = self.distance_block.less_thans(\n                    batch_1, radii_1[begin_1:end_1], batch_2, radii_2[begin_2:end_2]\n                )\n                features_1_status[begin_1:end_1] |= batch_1_in\n                features_2_status[begin_2:end_2] |= batch_2_in\n        return (\n            np.mean(features_2_status.astype(np.float64), axis=0),\n            np.mean(features_1_status.astype(np.float64), axis=0),\n        )\n\n\nclass DistanceBlock:\n    \"\"\"\n    Calculate pairwise distances between vectors.\n\n    Adapted from https://github.com/kynkaat/improved-precision-and-recall-metric/blob/f60f25e5ad933a79135c783fcda53de30f42c9b9/precision_recall.py#L34\n    \"\"\"\n\n    def __init__(self, session):\n        self.session = session\n\n        # Initialize TF graph to calculate pairwise distances.\n        with session.graph.as_default():\n            self._features_batch1 = tf.placeholder(tf.float32, shape=[None, None])\n            self._features_batch2 = tf.placeholder(tf.float32, shape=[None, None])\n            distance_block_16 = _batch_pairwise_distances(\n                tf.cast(self._features_batch1, tf.float16),\n                tf.cast(self._features_batch2, tf.float16),\n            )\n            self.distance_block = tf.cond(\n                tf.reduce_all(tf.math.is_finite(distance_block_16)),\n                lambda: tf.cast(distance_block_16, tf.float32),\n                lambda: _batch_pairwise_distances(self._features_batch1, self._features_batch2),\n            )\n\n            # Extra logic for less thans.\n            self._radii1 = tf.placeholder(tf.float32, shape=[None, None])\n            self._radii2 = tf.placeholder(tf.float32, shape=[None, None])\n            dist32 = tf.cast(self.distance_block, tf.float32)[..., None]\n            self._batch_1_in = tf.math.reduce_any(dist32 <= self._radii2, axis=1)\n            self._batch_2_in = tf.math.reduce_any(dist32 <= self._radii1[:, None], axis=0)\n\n    def pairwise_distances(self, U, V):\n        \"\"\"\n        Evaluate pairwise distances between two batches of feature vectors.\n        \"\"\"\n        return self.session.run(\n            self.distance_block,\n            feed_dict={self._features_batch1: U, self._features_batch2: V},\n        )\n\n    def less_thans(self, batch_1, radii_1, batch_2, radii_2):\n        return self.session.run(\n            [self._batch_1_in, self._batch_2_in],\n            feed_dict={\n                self._features_batch1: batch_1,\n                self._features_batch2: batch_2,\n                self._radii1: radii_1,\n                self._radii2: radii_2,\n            },\n        )\n\n\ndef _batch_pairwise_distances(U, V):\n    \"\"\"\n    Compute pairwise distances between two batches of feature vectors.\n    \"\"\"\n    with tf.variable_scope(\"pairwise_dist_block\"):\n        # Squared norms of each row in U and V.\n        norm_u = tf.reduce_sum(tf.square(U), 1)\n        norm_v = tf.reduce_sum(tf.square(V), 1)\n\n        # norm_u as a column and norm_v as a row vectors.\n        norm_u = tf.reshape(norm_u, [-1, 1])\n        norm_v = tf.reshape(norm_v, [1, -1])\n\n        # Pairwise squared Euclidean distances.\n        D = tf.maximum(norm_u - 2 * tf.matmul(U, V, False, True) + norm_v, 0.0)\n\n    return D\n\n\nclass NpzArrayReader(ABC):\n    @abstractmethod\n    def read_batch(self, batch_size: int) -> Optional[np.ndarray]:\n        pass\n\n    @abstractmethod\n    def remaining(self) -> int:\n        pass\n\n    def read_batches(self, batch_size: int) -> Iterable[np.ndarray]:\n        def gen_fn():\n            while True:\n                batch = self.read_batch(batch_size)\n                if batch is None:\n                    break\n                yield batch\n\n        rem = self.remaining()\n        num_batches = rem // batch_size + int(rem % batch_size != 0)\n        return BatchIterator(gen_fn, num_batches)\n\n\nclass BatchIterator:\n    def __init__(self, gen_fn, length):\n        self.gen_fn = gen_fn\n        self.length = length\n\n    def __len__(self):\n        return self.length\n\n    def __iter__(self):\n        return self.gen_fn()\n\n\nclass StreamingNpzArrayReader(NpzArrayReader):\n    def __init__(self, arr_f, shape, dtype):\n        self.arr_f = arr_f\n        self.shape = shape\n        self.dtype = dtype\n        self.idx = 0\n\n    def read_batch(self, batch_size: int) -> Optional[np.ndarray]:\n        if self.idx >= self.shape[0]:\n            return None\n\n        bs = min(batch_size, self.shape[0] - self.idx)\n        self.idx += bs\n\n        if self.dtype.itemsize == 0:\n            return np.ndarray([bs, *self.shape[1:]], dtype=self.dtype)\n\n        read_count = bs * np.prod(self.shape[1:])\n        read_size = int(read_count * self.dtype.itemsize)\n        data = _read_bytes(self.arr_f, read_size, \"array data\")\n        return np.frombuffer(data, dtype=self.dtype).reshape([bs, *self.shape[1:]])\n\n    def remaining(self) -> int:\n        return max(0, self.shape[0] - self.idx)\n\n\nclass MemoryNpzArrayReader(NpzArrayReader):\n    def __init__(self, arr):\n        self.arr = arr\n        self.idx = 0\n\n    @classmethod\n    def load(cls, path: str, arr_name: str):\n        with open(path, \"rb\") as f:\n            arr = np.load(f)[arr_name]\n        return cls(arr)\n\n    def read_batch(self, batch_size: int) -> Optional[np.ndarray]:\n        if self.idx >= self.arr.shape[0]:\n            return None\n\n        res = self.arr[self.idx : self.idx + batch_size]\n        self.idx += batch_size\n        return res\n\n    def remaining(self) -> int:\n        return max(0, self.arr.shape[0] - self.idx)\n\n\n@contextmanager\ndef open_npz_array(path: str, arr_name: str) -> NpzArrayReader:\n    with _open_npy_file(path, arr_name) as arr_f:\n        version = np.lib.format.read_magic(arr_f)\n        if version == (1, 0):\n            header = np.lib.format.read_array_header_1_0(arr_f)\n        elif version == (2, 0):\n            header = np.lib.format.read_array_header_2_0(arr_f)\n        else:\n            yield MemoryNpzArrayReader.load(path, arr_name)\n            return\n        shape, fortran, dtype = header\n        if fortran or dtype.hasobject:\n            yield MemoryNpzArrayReader.load(path, arr_name)\n        else:\n            yield StreamingNpzArrayReader(arr_f, shape, dtype)\n\n\ndef _read_bytes(fp, size, error_template=\"ran out of data\"):\n    \"\"\"\n    Copied from: https://github.com/numpy/numpy/blob/fb215c76967739268de71aa4bda55dd1b062bc2e/numpy/lib/format.py#L788-L886\n\n    Read from file-like object until size bytes are read.\n    Raises ValueError if not EOF is encountered before size bytes are read.\n    Non-blocking objects only supported if they derive from io objects.\n    Required as e.g. ZipExtFile in python 2.6 can return less data than\n    requested.\n    \"\"\"\n    data = bytes()\n    while True:\n        # io files (default in python3) return None or raise on\n        # would-block, python2 file will truncate, probably nothing can be\n        # done about that.  note that regular files can't be non-blocking\n        try:\n            r = fp.read(size - len(data))\n            data += r\n            if len(r) == 0 or len(data) == size:\n                break\n        except io.BlockingIOError:\n            pass\n    if len(data) != size:\n        msg = \"EOF: reading %s, expected %d bytes got %d\"\n        raise ValueError(msg % (error_template, size, len(data)))\n    else:\n        return data\n\n\n@contextmanager\ndef _open_npy_file(path: str, arr_name: str):\n    with open(path, \"rb\") as f:\n        with zipfile.ZipFile(f, \"r\") as zip_f:\n            if f\"{arr_name}.npy\" not in zip_f.namelist():\n                raise ValueError(f\"missing {arr_name} in npz file\")\n            with zip_f.open(f\"{arr_name}.npy\", \"r\") as arr_f:\n                yield arr_f\n\n\ndef _download_inception_model():\n    if os.path.exists(INCEPTION_V3_PATH):\n        return\n    print(\"downloading InceptionV3 model...\")\n    with requests.get(INCEPTION_V3_URL, stream=True) as r:\n        r.raise_for_status()\n        tmp_path = INCEPTION_V3_PATH + \".tmp\"\n        with open(tmp_path, \"wb\") as f:\n            for chunk in tqdm(r.iter_content(chunk_size=8192)):\n                f.write(chunk)\n        os.rename(tmp_path, INCEPTION_V3_PATH)\n\n\ndef _create_feature_graph(input_batch):\n    _download_inception_model()\n    prefix = f\"{random.randrange(2**32)}_{random.randrange(2**32)}\"\n    with open(INCEPTION_V3_PATH, \"rb\") as f:\n        graph_def = tf.GraphDef()\n        graph_def.ParseFromString(f.read())\n    pool3, spatial = tf.import_graph_def(\n        graph_def,\n        input_map={f\"ExpandDims:0\": input_batch},\n        return_elements=[FID_POOL_NAME, FID_SPATIAL_NAME],\n        name=prefix,\n    )\n    _update_shapes(pool3)\n    spatial = spatial[..., :7]\n    return pool3, spatial\n\n\ndef _create_softmax_graph(input_batch):\n    _download_inception_model()\n    prefix = f\"{random.randrange(2**32)}_{random.randrange(2**32)}\"\n    with open(INCEPTION_V3_PATH, \"rb\") as f:\n        graph_def = tf.GraphDef()\n        graph_def.ParseFromString(f.read())\n    (matmul,) = tf.import_graph_def(\n        graph_def, return_elements=[f\"softmax/logits/MatMul\"], name=prefix\n    )\n    w = matmul.inputs[1]\n    logits = tf.matmul(input_batch, w)\n    return tf.nn.softmax(logits)\n\n\ndef _update_shapes(pool3):\n    # https://github.com/bioinf-jku/TTUR/blob/73ab375cdf952a12686d9aa7978567771084da42/fid.py#L50-L63\n    ops = pool3.graph.get_operations()\n    for op in ops:\n        for o in op.outputs:\n            shape = o.get_shape()\n            if shape._dims is not None:  # pylint: disable=protected-access\n                # shape = [s.value for s in shape] TF 1.x\n                shape = [s for s in shape]  # TF 2.x\n                new_shape = []\n                for j, s in enumerate(shape):\n                    if s == 1 and j == 0:\n                        new_shape.append(None)\n                    else:\n                        new_shape.append(s)\n                o.__dict__[\"_shape_val\"] = tf.TensorShape(new_shape)\n    return pool3\n\n\ndef _numpy_partition(arr, kth, **kwargs):\n    num_workers = min(cpu_count(), len(arr))\n    chunk_size = len(arr) // num_workers\n    extra = len(arr) % num_workers\n\n    start_idx = 0\n    batches = []\n    for i in range(num_workers):\n        size = chunk_size + (1 if i < extra else 0)\n        batches.append(arr[start_idx : start_idx + size])\n        start_idx += size\n\n    with ThreadPool(num_workers) as pool:\n        return list(pool.map(partial(np.partition, kth=kth, **kwargs), batches))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "evaluations/canny_f1score.py",
    "content": "import matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nfrom PIL import Image\nimport os\nimport sys\nimport torch\nimport numpy as np\nfrom torch.utils.data import DataLoader, Dataset\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom autoregressive.test.metric import RMSE, SSIM, F1score\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\nfrom condition.canny import CannyDetector\nfrom torchmetrics.classification import BinaryF1Score\n# Define a dataset class for loading image and label pairs\nclass ImageDataset(Dataset):\n    def __init__(self, img_dir, label_dir):\n        self.img_dir = img_dir\n        self.label_dir = label_dir\n        self.images = os.listdir(img_dir)\n\n    def __len__(self):\n        return len(self.images)\n\n    def __getitem__(self, idx):\n        img_path = os.path.join(self.img_dir, self.images[idx])\n        label_path = os.path.join(self.label_dir, self.images[idx])\n\n        image = np.array(Image.open(img_path).convert(\"RGB\"))\n        label = np.array(Image.open(label_path))\n        return torch.from_numpy(image), torch.from_numpy(label).permute(2, 0, 1)\n\nmodel = CannyDetector()\n# Define the dataset and data loader\nimg_dir = 'sample/multigen/canny/visualization'\nlabel_dir = 'sample/multigen/canny/annotations'\ndataset = ImageDataset(img_dir, label_dir)\ndata_loader = DataLoader(dataset, batch_size=16, shuffle=False, num_workers=4)\n\n# Instantiate the metric\nf1score = BinaryF1Score()\nf1 = []\ni = 0\nwith torch.no_grad():\n    for images, labels in tqdm(data_loader):\n        i += 1\n        images = images\n        outputs = []\n        for img in images:   \n            outputs.append(model(img))\n        # Move predictions and labels to numpy for RMSE calculation\n        predicted_canny = outputs\n        labels = labels[:, 0, :, :].numpy() # Assuming labels are in Bx1xHxW format\n          \n        for pred, label in zip(predicted_canny, labels):\n            pred[pred == 255] = 1\n            label[label == 255] = 1\n            f1.append(f1score(torch.from_numpy(pred).flatten(), torch.from_numpy(label).flatten()).item())\n\nprint(f'f1score: {np.array(f1).mean()}')"
  },
  {
    "path": "evaluations/clean_fid.py",
    "content": "from cleanfid import fid\nimport argparse\n\ndef main(args):\n    real_data_path = args.val_images\n    gen_data_path = args.generated_images\n    cleanfid_score = fid.compute_fid(gen_data_path, real_data_path)\n    print(f\"The Clean-FID score is {cleanfid_score}\")\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--val-images\", type=str, required=True)\n    parser.add_argument(\"--generated-images\", type=str, required=True)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "evaluations/cocostuff_mIoU.py",
    "content": "import os\nimport numpy as np\nfrom mmseg.apis import init_model, inference_model, show_result_pyplot#, inference_segmentor\nimport torch\nfrom PIL import Image\nfrom sklearn.metrics import confusion_matrix\nfrom torchmetrics import JaccardIndex\n\ndef main():\n    config_file = 'mmsegmentation/configs/deeplabv3/deeplabv3_r101-d8_4xb4-320k_coco-stuff164k-512x512.py'\n    checkpoint_file = 'evaluations/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth'\n    \n    # build the model from a config file and a checkpoint file\n    model = init_model(config_file, checkpoint_file, device='cuda:1')\n    \n    # Image and segmentation labels directories\n    img_dir = 'sample/cocostuff/visualization'\n    ann_dir = 'sample/cocostuff/annotations'\n    \n    # List all image files\n    img_fns = [f for f in sorted(os.listdir(img_dir)) if f.endswith(\".png\")]\n\n    \n    total_mIoU = 0\n    from tqdm import tqdm\n    i = 0\n    num_classes = 171\n    jaccard_index = JaccardIndex(task=\"multiclass\", num_classes=num_classes)\n    \n    conf_matrix = np.zeros((num_classes+1, num_classes+1), dtype=np.int64)\n    for img_fn in tqdm(img_fns):\n        ann_fn = img_fn\n        i += 1\n        # if i == 4891:\n        #     continue\n        try:\n            img_path = os.path.join(img_dir, img_fn)\n            ann_path = os.path.join(ann_dir, img_fn)\n            result = inference_model(model, img_path)\n        except Exception as e:\n            continue\n        # Read ground truth segmentation map\n        gt_semantic_seg = np.array(Image.open(ann_path))\n\n        ignore_label = 255\n        gt = gt_semantic_seg.copy()\n        # import pdb;pdb.set_trace()\n        # print(np.unique(gt), np.unique(result.pred_sem_seg.data[0].cpu().numpy()))\n        pred = result.pred_sem_seg.data[0].cpu().numpy().copy()#+1\n        gt[gt == ignore_label] = num_classes\n        conf_matrix += np.bincount(\n            (num_classes+1) * pred.reshape(-1) + gt.reshape(-1),\n            minlength=conf_matrix.size,\n        ).reshape(conf_matrix.shape)\n        \n    \n    # calculate miou\n    acc = np.full(num_classes, np.nan, dtype=np.float64)\n    iou = np.full(num_classes, np.nan, dtype=np.float64)\n    tp = conf_matrix.diagonal()[:-1].astype(np.float64)\n    pos_gt = np.sum(conf_matrix[:-1, :-1], axis=0).astype(np.float64)\n    pos_pred = np.sum(conf_matrix[:-1, :-1], axis=1).astype(np.float64)\n    acc_valid = pos_gt > 0\n    acc[acc_valid] = tp[acc_valid] / pos_gt[acc_valid]\n    iou_valid = (pos_gt + pos_pred) > 0\n    union = pos_gt + pos_pred - tp\n    iou[acc_valid] = tp[acc_valid] / union[acc_valid]\n    miou = np.sum(iou[acc_valid]) / np.sum(iou_valid)\n    print(f\"mIoU: {miou}\")\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "evaluations/depth_rmse.py",
    "content": "import matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nfrom PIL import Image\nimport os\nimport torch\nimport numpy as np\nfrom torch.utils.data import DataLoader, Dataset\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom autoregressive.test.metric import RMSE\nimport torch.nn.functional as F\n# Define a dataset class for loading image and label pairs\nclass ImageDataset(Dataset):\n    def __init__(self, img_dir, label_dir):\n        self.img_dir = img_dir\n        self.label_dir = label_dir\n        self.images = os.listdir(img_dir)\n\n    def __len__(self):\n        return len(self.images)\n\n    def __getitem__(self, idx):\n        img_path = os.path.join(self.img_dir, self.images[idx])\n        label_path = os.path.join(self.label_dir, self.images[idx])\n        image = Image.open(img_path).convert(\"RGB\")\n        label = np.array(Image.open(label_path))\n\n        return np.array(image), torch.from_numpy(label).permute(2, 0, 1)\n\n# Instantiate the model and processor\nprocessor = DPTImageProcessor.from_pretrained(\"condition/ckpts/dpt_large\")\nmodel = DPTForDepthEstimation.from_pretrained(\"condition/ckpts/dpt_large\").cuda()\n\n# Define the dataset and data loader\nimg_dir = 'sample/multigen/depth/visualization'\nlabel_dir = 'sample/multigen/depth/annotations'\ndataset = ImageDataset(img_dir, label_dir)\ndata_loader = DataLoader(dataset, batch_size=16, shuffle=False, num_workers=4)\n\n# Instantiate the metric\nmetric = RMSE()\n\n# Perform inference on batches and calculate RMSE\nmodel.eval()\nrmse = []\nwith torch.no_grad():\n    for images, labels in tqdm(data_loader):\n        inputs = processor(images=images, return_tensors=\"pt\", size=(512,512)).to('cuda:0')\n        outputs = model(**inputs)\n        \n        predicted_depth = outputs.predicted_depth\n        predicted_depth = predicted_depth.squeeze().cpu()\n        labels = labels[:, 0, :, :]\n        \n        for pred, label in zip(predicted_depth, labels):\n            # Preprocess predicted depth for fair comparison\n            pred = (pred * 255 / pred.max())\n            per_pixel_mse = torch.sqrt(F.mse_loss(pred.float(), label.float()))\n            rmse.append(per_pixel_mse)\nprint(np.array(rmse).mean())"
  },
  {
    "path": "evaluations/hed_ssim.py",
    "content": "import matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nfrom PIL import Image\nimport os\nimport torch\nimport numpy as np\nfrom torch.utils.data import DataLoader, Dataset\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom autoregressive.test.metric import RMSE, SSIM\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\nfrom torchmetrics.image import MultiScaleStructuralSimilarityIndexMeasure\n# Define a dataset class for loading image and label pairs\nclass ImageDataset(Dataset):\n    def __init__(self, img_dir, label_dir):\n        self.img_dir = img_dir\n        self.label_dir = label_dir\n        self.images = os.listdir(img_dir)\n\n    def __len__(self):\n        return len(self.images)\n\n    def __getitem__(self, idx):\n        img_path = os.path.join(self.img_dir, self.images[idx])\n        label_path = os.path.join(self.label_dir, self.images[idx])\n        image = np.array(Image.open(img_path).convert(\"RGB\"))\n        label = np.array(Image.open(label_path))\n        return torch.from_numpy(image), torch.from_numpy(label).permute(2, 0, 1)\n\nmodel = HEDdetector().cuda().eval()\n\n# Define the dataset and data loader\nimg_dir = 'sample/multigen/hed/visualization'\nlabel_dir = 'sample/multigen/hed/annotations'\ndataset = ImageDataset(img_dir, label_dir)\ndata_loader = DataLoader(dataset, batch_size=16, shuffle=False, num_workers=4)\n\nmodel.eval()\nssim = MultiScaleStructuralSimilarityIndexMeasure(data_range=1.0).cuda()\nssim_score = []\nwith torch.no_grad():\n    for images, labels in tqdm(data_loader):\n        images = images.permute(0,3,1,2).cuda()\n        outputs = model(images)\n        predicted_hed = outputs.unsqueeze(1)\n        labels = labels[:, 0:1, :, :].cuda()\n        ssim_score.append(ssim((predicted_hed/255.0).clip(0,1), (labels/255.0).clip(0,1)))\n\nprint(f'ssim: {torch.stack(ssim_score).mean()}')"
  },
  {
    "path": "evaluations/lineart_ssim.py",
    "content": "import matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom transformers import DPTImageProcessor, DPTForDepthEstimation\nfrom PIL import Image\nimport os\nimport torch\nimport numpy as np\nfrom torch.utils.data import DataLoader, Dataset\nimport sys\ncurrent_directory = os.getcwd()\nsys.path.append(current_directory)\nfrom autoregressive.test.metric import RMSE, SSIM\nimport torch.nn.functional as F\nfrom condition.hed import HEDdetector\nfrom torchmetrics.image import MultiScaleStructuralSimilarityIndexMeasure\nfrom condition.lineart import LineArt\n# Define a dataset class for loading image and label pairs\nclass ImageDataset(Dataset):\n    def __init__(self, img_dir, label_dir):\n        self.img_dir = img_dir\n        self.label_dir = label_dir\n        self.images = os.listdir(img_dir)\n\n    def __len__(self):\n        return len(self.images)\n\n    def __getitem__(self, idx):\n        img_path = os.path.join(self.img_dir, self.images[idx])\n        label_path = os.path.join(self.label_dir, self.images[idx])\n\n        image = np.array(Image.open(img_path).convert(\"RGB\"))\n        label = np.array(Image.open(label_path))\n        return torch.from_numpy(image), torch.from_numpy(label).permute(2, 0, 1)\n\nmodel = LineArt()\nmodel.load_state_dict(torch.load('condition/ckpts/model.pth', map_location=torch.device('cpu')))\nmodel.cuda()\n# Define the dataset and data loader\nimg_dir = 'sample/multigen/lineart/visualization'\nlabel_dir = 'sample/multigen/lineart/annotations'\ndataset = ImageDataset(img_dir, label_dir)\ndata_loader = DataLoader(dataset, batch_size=16, shuffle=False, num_workers=4)\n\nssim = MultiScaleStructuralSimilarityIndexMeasure(data_range=1.0).cuda()\nssim_score = []\nwith torch.no_grad():\n    for images, labels in tqdm(data_loader):\n        images = images.permute(0,3,1,2).cuda()\n        outputs = model(images.float())*255\n        predicted_hed = outputs\n        labels = labels[:, 0:1, :, :].cuda()\n        ssim_score.append(ssim((predicted_hed/255.0).clip(0,1), (labels/255.0).clip(0,1)))\n\nprint(f'ssim: {torch.stack(ssim_score).mean()}')\n"
  },
  {
    "path": "evaluations/t2i/PartiPrompts.tsv",
    "content": "Prompt\tCategory\tChallenge\tNote\nbond\tAbstract\tBasic\tBiology-inspired concepts with multiple meanings\nelement\tAbstract\tBasic\tBiology-inspired concepts with multiple meanings\nmolecule\tAbstract\tBasic\tBiology-inspired concepts with multiple meanings\nlife\tAbstract\tBasic\tBiology-inspired concepts with multiple meanings\nprotein\tAbstract\tBasic\tBiology-inspired concepts with multiple meanings\nyin-yang\tAbstract\tBasic\tRelated to five elements\nwood\tAbstract\tBasic\tRelated to five elements\nmetal\tAbstract\tBasic\tRelated to five elements\nspace\tAbstract\tBasic\tRelated to five elements\nair\tAbstract\tBasic\tRelated to five elements\nfire\tAbstract\tBasic\tRelated to five elements\nwater\tAbstract\tBasic\tRelated to five elements\nearth\tAbstract\tBasic\tRelated to five elements\nforce\tAbstract\tBasic\tPhysics concepts\nmotion\tAbstract\tBasic\tPhysics concepts\ninertia\tAbstract\tBasic\tPhysics concepts\nenergy\tAbstract\tBasic\tPhysics concepts\nblack hole\tAbstract\tBasic\tPhysics concepts\ngravity\tAbstract\tBasic\tPhysics concepts\npeace\tAbstract\tBasic\t\nfairness\tAbstract\tBasic\t\ngender\tAbstract\tBasic\t\nintelligence\tAbstract\tBasic\t\nbias\tAbstract\tBasic\t\nhate\tAbstract\tBasic\t\nanger\tAbstract\tBasic\t\nemotion\tAbstract\tBasic\t\nfeeling\tAbstract\tBasic\t\nlove\tAbstract\tBasic\t\nartificial intelligence\tAbstract\tBasic\t\nmeaning of life\tAbstract\tBasic\t\n42\tAbstract\tBasic\tSimple numbers but challenging\n0\tAbstract\tBasic\tSimple numbers but challenging\ninfinity\tAbstract\tBasic\tMath concepts\nimaginary numbers\tAbstract\tBasic\tMath concepts\nFibonacci number\tAbstract\tBasic\tMath concepts\ngolden ratio\tAbstract\tBasic\tMath concepts\nan F1\tVehicles\tBasic\t\nparallel lines\tIllustrations\tBasic\tMath concepts\nconcentric circles\tIllustrations\tBasic\tMath concepts\nconcurrent lines\tIllustrations\tBasic\tMath concepts\ncongruent triangles\tIllustrations\tBasic\tMath concepts\na hot air balloon\tVehicles\tBasic\t\nThe Starry Night\tArts\tBasic\t\n300\tAbstract\tBasic\tSimple numbers but challenging\n101\tAbstract\tBasic\tSimple numbers but challenging\nU.S. 101\tWorld Knowledge\tBasic\tSimple numbers but challenging\ncommonsense\tAbstract\tBasic\t\nhappiness\tAbstract\tBasic\t\nhope\tAbstract\tBasic\t\ninsight\tAbstract\tBasic\t\ninspiration\tAbstract\tBasic\t\nderision\tAbstract\tBasic\t\nSalvador Dalí\tPeople\tBasic\t\na shiba inu\tAnimals\tBasic\t\na handpalm\tPeople\tBasic\t\nan espresso machine\tArtifacts\tBasic\t\na propaganda poster\tArtifacts\tBasic\t\nThe Oriental Pearl\tWorld Knowledge\tBasic\tCogView\nHa Long Bay\tWorld Knowledge\tBasic\t\nA Vietnam map\tWorld Knowledge\tBasic\t\nA bowl of Pho\tFood & Beverage\tBasic\t\na snail\tAnimals\tBasic\t\nbrain coral\tAnimals\tBasic\t\na walnut\tProduce & Plants\tBasic\t\na capybara\tAnimals\tBasic\t\na baby penguin\tAnimals\tBasic\t\na cup of boba\tFood & Beverage\tBasic\t\na photo of san francisco's golden gate bridge\tWorld Knowledge\tBasic\tDALL-E\nA picture of some food in the plate\tFood & Beverage\tBasic\tVQ-Diffusion\na chair\tArtifacts\tBasic\t\nthe Empire State Building\tWorld Knowledge\tBasic\t\nthe Sydney Opera House\tWorld Knowledge\tBasic\t\na hedgehog\tAnimals\tBasic\t\na corgi\tAnimals\tBasic\t\na robot\tArtifacts\tBasic\t\nrobots\tArtifacts\tBasic\t\na fall landscape\tOutdoor Scenes\tBasic\t\na sunset\tOutdoor Scenes\tBasic\t\na boat\tVehicles\tBasic\t\na fox\tAnimals\tBasic\t\na red cube\tIllustrations\tBasic\t\na panda\tAnimals\tBasic\t\na space elevator\tArtifacts\tBasic\tGLIDE\na city\tOutdoor Scenes\tBasic\t\na fog\tOutdoor Scenes\tBasic\t\na clock\tArtifacts\tBasic\t\na phone\tArtifacts\tBasic\t\nfood\tFood & Beverage\tBasic\t\na store front\tOutdoor Scenes\tBasic\t\nan armchair\tArtifacts\tBasic\t\na teapot\tArtifacts\tBasic\t\nan illustration of a teapot\tArtifacts\tBasic\tDALL-E\na tiger\tAnimals\tBasic\t\na bench\tArtifacts\tBasic\t\nan orange\tProduce & Plants\tBasic\t\na laptop\tArtifacts\tBasic\t\nan owl\tAnimals\tBasic\t\na train\tVehicles\tBasic\t\na cow\tAnimals\tBasic\t\na submarine\tVehicles\tBasic\t\na whale\tAnimals\tBasic\t\na t-shirt\tArtifacts\tBasic\t\na bowl\tArtifacts\tBasic\t\na flag\tArtifacts\tBasic\t\na cat\tAnimals\tBasic\t\na towel\tArtifacts\tBasic\t\na wall\tArtifacts\tBasic\t\na car\tVehicles\tBasic\t\na giraffe\tAnimals\tBasic\t\nan eagle\tAnimals\tBasic\t\na kangaroo\tAnimals\tBasic\t\na canal\tOutdoor Scenes\tBasic\t\nthe grand canyon\tWorld Knowledge\tBasic\t\nlily pads\tProduce & Plants\tBasic\t\na street\tOutdoor Scenes\tBasic\t\na house\tOutdoor Scenes\tBasic\t\na fish\tAnimals\tBasic\t\na city intersection\tOutdoor Scenes\tBasic\t\na circle\tIllustrations\tBasic\t\na red circle\tIllustrations\tBasic\t\na box\tIllustrations\tBasic\t\na yellow box\tIllustrations\tBasic\t\na red box\tIllustrations\tBasic\t\na sphere\tIllustrations\tBasic\t\na red sphere\tIllustrations\tBasic\t\na large blue box\tIllustrations\tBasic\t\na blue metallic sphere\tIllustrations\tBasic\t\na horse\tAnimals\tBasic\t\na pumpkin\tProduce & Plants\tBasic\t\na sword\tArtifacts\tBasic\t\na statue\tArtifacts\tBasic\t\na logo\tIllustrations\tBasic\t\na circular logo\tIllustrations\tBasic\t\na coffee mug\tArtifacts\tBasic\t\na pig\tAnimals\tBasic\t\na squirrel\tAnimals\tBasic\t\na hammer\tArtifacts\tBasic\t\na screwdriver\tArtifacts\tBasic\t\na handsaw\tArtifacts\tBasic\t\na power drill\tArtifacts\tBasic\t\na cocktail\tFood & Beverage\tBasic\t\na margarita\tFood & Beverage\tBasic\t\nan avocado\tProduce & Plants\tBasic\t\na kitchen\tIndoor Scenes\tBasic\t\nan iPhone case\tArtifacts\tBasic\t\na coffee maker\tArtifacts\tBasic\t\na banana\tProduce & Plants\tBasic\t\na violin\tArtifacts\tBasic\t\na room\tIndoor Scenes\tBasic\t\na mountain\tOutdoor Scenes\tBasic\t\na bird\tAnimals\tBasic\t\na TV\tArtifacts\tBasic\t\na Christmas tree\tArtifacts\tBasic\t\nThe Statue of Liberty\tWorld Knowledge\tBasic\t\nthe Eiffel Tower\tWorld Knowledge\tBasic\t\na zebra\tAnimals\tBasic\t\nthe city of London\tWorld Knowledge\tBasic\t\na koi fish\tAnimals\tBasic\t\na pineapple\tProduce & Plants\tBasic\t\na toaster\tArtifacts\tBasic\t\na sign\tArtifacts\tBasic\t\na red lego block\tArtifacts\tBasic\t\nteacup\tArtifacts\tBasic\t\nchair\tArtifacts\tBasic\t\nwaterfall\tOutdoor Scenes\tBasic\t\na pirate ship\tVehicles\tBasic\t\na dragon\tAnimals\tBasic\t\na present\tArtifacts\tBasic\t\na bottle\tArtifacts\tBasic\t\na book cover\tIllustrations\tBasic\t\na sweatshirt\tArtifacts\tBasic\t\nmatching socks\tArtifacts\tBasic\t\ncash\tArtifacts\tBasic\t\na wood cabin\tIndoor Scenes\tBasic\t\na clock tower\tArtifacts\tBasic\t\na chimpanzee\tAnimals\tBasic\t\na hat\tArtifacts\tBasic\t\nsneakers\tArtifacts\tBasic\t\na roast turkey\tFood & Beverage\tBasic\t\na turkey\tAnimals\tBasic\t\na plate\tArtifacts\tBasic\t\na ladder\tArtifacts\tBasic\t\na Tyrannosaurus Rex\tAnimals\tBasic\t\na Stegasaurus\tAnimals\tBasic\t\na Triceratops\tAnimals\tBasic\t\na Styracosaurus\tAnimals\tBasic\t\na Diplodocus\tAnimals\tBasic\t\na yellow sticky note\tArtifacts\tBasic\t\na ball\tArtifacts\tBasic\t\nred balls\tArtifacts\tBasic\t\nan ostrich\tAnimals\tBasic\t\na stone path\tOutdoor Scenes\tBasic\t\na wooden deck\tOutdoor Scenes\tBasic\t\nan F1 race car\tVehicles\tBasic\t\na taxi\tVehicles\tBasic\t\na road\tOutdoor Scenes\tBasic\t\na volcano\tOutdoor Scenes\tBasic\t\na large open book\tArtifacts\tBasic\t\na living room\tIndoor Scenes\tBasic\t\nan elephant\tAnimals\tBasic\t\na tree\tProduce & Plants\tBasic\t\na dolphin\tAnimals\tBasic\t\na rowboat\tVehicles\tBasic\t\na crown\tArtifacts\tBasic\t\na pick-up truck\tVehicles\tBasic\t\na key\tArtifacts\tBasic\t\na goat\tAnimals\tBasic\t\na chest\tArtifacts\tBasic\t\na coffee table\tArtifacts\tBasic\t\ntoy cars\tArtifacts\tBasic\t\na bookshelf\tArtifacts\tBasic\t\nthe moon\tOutdoor Scenes\tBasic\t\nthe Earth\tOutdoor Scenes\tBasic\t\nthe International Space Station\tWorld Knowledge\tBasic\t\nthe planet Jupiter\tOutdoor Scenes\tBasic\t\na tornado\tOutdoor Scenes\tBasic\t\na tidal wave\tOutdoor Scenes\tBasic\t\na laptop screen\tArtifacts\tBasic\t\nan airplane\tVehicles\tBasic\t\na butterfly\tAnimals\tBasic\t\na lizard\tAnimals\tBasic\t\na turtle\tAnimals\tBasic\t\nan octopus\tAnimals\tBasic\t\na book\tArtifacts\tBasic\t\na moose\tAnimals\tBasic\t\na kachina doll\tWorld Knowledge\tBasic\t\na doorknocker\tArtifacts\tBasic\t\na rabbit\tAnimals\tBasic\t\norange juice\tFood & Beverage\tBasic\t\na green pepper\tFood & Beverage\tBasic\t\nbeer\tFood & Beverage\tBasic\t\nTimes Square\tWorld Knowledge\tBasic\t\nthe Great Wall\tWorld Knowledge\tBasic\t\nthe Kremlin\tWorld Knowledge\tBasic\t\na pickup truck\tVehicles\tBasic\t\na shoe\tArtifacts\tBasic\t\na plant\tProduce & Plants\tBasic\t\na flower\tProduce & Plants\tBasic\t\na pair of headphones\tArtifacts\tBasic\t\na chemtrail\tOutdoor Scenes\tBasic\t\na tennis court\tOutdoor Scenes\tBasic\t\na ceiling fan\tIndoor Scenes\tBasic\t\na fire hydrant\tArtifacts\tBasic\t\na wooden post\tArtifacts\tBasic\t\na trash bin\tArtifacts\tBasic\t\na piano\tArtifacts\tBasic\t\na musical note\tIllustrations\tBasic\t\na harp\tArtifacts\tBasic\t\na tuba\tArtifacts\tBasic\t\nThe Alamo\tWorld Knowledge\tBasic\t\na windmill\tOutdoor Scenes\tBasic\t\nthe geyser Old Faithful\tWorld Knowledge\tBasic\t\na motorcycle\tVehicles\tBasic\t\na painting of black and white\tIllustrations\tBasic\t\nthe Great Pyramid\tWorld Knowledge\tBasic\t\nthe Parthenon\tWorld Knowledge\tBasic\t\nthe Millennium Wheel\tWorld Knowledge\tBasic\t\na marina\tOutdoor Scenes\tBasic\t\na team\tPeople\tBasic\t\na child\tPeople\tBasic\t\na man\tPeople\tBasic\t\na woman\tPeople\tBasic\t\na girl\tPeople\tBasic\t\na person\tPeople\tBasic\t\na boy\tPeople\tBasic\t\na boy and a tiger\tPeople\tBasic\t\na family\tPeople\tBasic\t\na father and a son\tPeople\tBasic\t\na portrait of an old man\tPeople\tBasic\t\na portrait of young girl\tPeople\tBasic\t\na scientist\tPeople\tBasic\t\nA dignified beaver wearing glasses, a vest, and colorful neck tie. He stands next to a tall stack of books in a library.\tAnimals\tComplex\t\nA solitary figure shrouded in mists peers up from the cobble stone street at the imposing and dark gothic buildings surrounding it. an old-fashioned lamp shines nearby. oil painting.\tArts\tComplex\t\nA punk rock squirrel in a studded leather jacket shouting into a microphone while standing on a stump and holding a beer on dark stage.\tAnimals\tComplex\t\nHorses pulling a carriage on the moon's surface, with the Statue of Liberty and Great Pyramid in the background. The Planet Earth can be seen in the sky.\tWorld Knowledge\tComplex\t\nA robot painted as graffiti on a brick wall. The words \"Fly an airplane\" are written on the wall. A sidewalk is in front of the wall, and grass is growing out of cracks in the concrete.\tOutdoor Scenes\tComplex\t\nA warrior wombat holding a sword and shield in a fighting stance. The wombat stands in front of the Arc de Triomphe on a day shrouded mist with the sun high in the sky.\tWorld Knowledge\tComplex\t\nA set of 2x2 emoji icons with happy, angry, surprised and sobbing faces. The emoji icons look like dogs. All of the dogs are wearing blue turtlenecks.\tIllustrations\tComplex\t\nA set of 2x2 emoji icons with happy, angry, surprised and sobbing faces. The emoji icons look like macaroons. All of the macaroons are wearing cowboy hats.\tIllustrations\tComplex\t\nA set of 2x2 emoji icons with happy, angry, surprised and sobbing faces. The emoji icons look like colorful macarons. All of the macarons are wearing cowboy hats.\tIllustrations\tComplex\t\nA set of 2x2 emoji icons with happy, angry, surprised and sobbing faces. The emoji icons look like pandas. All of the pandas are wearing colorful sunglasses.\tIllustrations\tComplex\t\nA set of 2x2 emoji icons with happy, angry, surprised and sobbing faces. The emoji icons look like pigs. All of the pigs are wearing crowns.\tIllustrations\tComplex\t\nA richly textured oil painting of a young badger delicately sniffing a yellow rose next to a tree trunk. A small waterfall can be seen in the background.\tArts\tComplex\t\nA portrait of a metal statue of a pharaoh wearing steampunk glasses and a leather jacket over a white t-shirt that has a drawing of a space shuttle on it.\tWorld Knowledge\tComplex\t\nA photograph of the inside of a subway train. There are frogs sitting on the seats. One of them is reading a newspaper. The window shows the river in the background.\tVehicles\tComplex\t\nA photograph of the inside of a subway train. There are lobsters sitting on the seats. One of them is reading a newspaper. The window shows the ocean in the background.\tVehicles\tComplex\t\nA photograph of the inside of a subway train. There are raccoons sitting on the seats. One of them is reading a newspaper. The window shows the city in the background.\tVehicles\tComplex\t\nA photograph of the inside of a subway train. There are red pandas sitting on the seats. One of them is reading a newspaper. The window shows the jungle in the background.\tVehicles\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of abstract cubism.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Egyptian tomp hieroglyphics.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Hokusai.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Madhubani art.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of pixel art.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of pointilism.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Rembrandt.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of traditional Chinese painting.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a tophat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Vincent Van Gogh.\tArts\tComplex\t\nA raccoon wearing formal clothes, wearing a top hat and holding a cane. The raccoon is holding a garbage bag. Oil painting in the style of Vincent Van Gogh.\tArts\tComplex\t\na statue of Abraham Lincoln wearing an opaque and shiny astronaut's helmet. The statue sits on the moon, with the planet Earth in the sky.\tWorld Knowledge\tComplex\t\na portrait of a statue of the Egyptian god Anubis wearing aviator goggles, white t-shirt and leather jacket. The city of Los Angeles is in the background.\tWorld Knowledge\tComplex\t\nA smiling sloth wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book. A shiny VW van with a cityscape painted on it and parked on grass.\tWorld Knowledge\tComplex\t\nA smiling sloth wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book. The sloth stands a few feet in front of a shiny VW van. The van has a cityscape painted on it and parked on grass.\tWorld Knowledge\tComplex\t\nA DSLR photo of a shiny VW van that has a cityscape painted on it. A smiling sloth stands on grass in front of the van and is wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book.\tWorld Knowledge\tComplex\t\na poodle wearing a baseball cap holding a dictionary in hand and writing bonez on a chalkboard\tAnimals\tComplex\t\na portrait of a statue of anubis with a crown and wearing a yellow t-shirt that has a space shuttle drawn on it\tWorld Knowledge\tComplex\t\nan oil surrealist painting of a dreamworld on a seashore where clocks and watches appear to be inexplicably limp and melting in the desolate landscape. a table on the left, with a golden watch swarmed by ants. a strange fleshy creature in the center of the painting\tArts\tComplex\tDescription of The Persistence of Memory\na portrait of a statue of the Egyptian god Anubis wearing aviator goggles, white t-shirt and leather jacket. A full moon over the city of Los Angeles is in the background at night.\tWorld Knowledge\tComplex\t\na portrait of a statue of the Egyptian god Anubis wearing aviator goggles, white t-shirt and leather jacket. the skyline of Los Angeles at night can be seen in the background.\tWorld Knowledge\tComplex\t\na portrait of a statue of the Egyptian god Anubis wearing aviator goggles, white t-shirt and leather jacket, flying over the city of Mars. \tWorld Knowledge\tComplex\t\nA photo of the Space Shuttle Endeavor painted yellow and flying over the Earth. The continent of South America is visible.\tWorld Knowledge\tComplex\t\nA close-up photo of a wombat wearing a red backpack and raising both arms in the air. Mount Rushmore is in the background.\tWorld Knowledge\tComplex\t\nA penguin wearing aviator goggles and flying confidently next to a bemused eagle. \tAnimals\tComplex\t\nA donkey is playing tug-of-war against an octopus. The donkey holds the rope in its mouth. A cat is jumping over the rope.\tAnimals\tComplex\t\nA wall in a royal castle. There are two paintings on the wall. The one on the left a detailed oil painting of the royal raccoon king. The one on the right a detailed oil painting of the royal raccoon queen. A cute dog looking at the two paintings, holding a sign saying 'plz conserve'\tIndoor Scenes\tComplex\t\nA single beam of light enter the room from the ceiling. The beam of light is illuminating an easel. On the easel there is a Rembrandt painting of a raccoon\tIndoor Scenes\tComplex\t\nThe Millennium Wheel next to the Statue of Liberty. The Sagrada Familia church is also visible.\tWorld Knowledge\tComplex\t\nA train ride in the monsoon rain in Kerala. With a Koala bear wearing a hat looking out of the window. There is a lot of coconut trees out of the window.\tWorld Knowledge\tComplex\t\nA photograph of a portrait of a statue of a pharaoh wearing steampunk glasses, white t-shirt and leather jacket.\tWorld Knowledge\tComplex\t\nAn oil painting of two rabbits in the style of American Gothic, wearing the same clothes as in the original.\tArts\tComplex\t\na blue cow is standing next to a tree with red leaves and yellow fruit. the cow is standing in a field with white flowers. impressionistic painting\tAnimals\tComplex\t\nA wombat sits in a yellow beach chair, while sipping a martini that is on his laptop keyboard. The wombat is wearing a white panama hat and a floral Hawaiian shirt. Out-of-focus palm trees in the background.\tAnimals\tComplex\t\nA high-contrast photo of a panda riding a horse. The panda is wearing a wizard hat and is reading a book. The horse is standing on a street against a gray concrete wall. Colorful flowers and the word \"PEACE\" are painted on the wall. Green grass grows from cracks in the street.\tAnimals\tComplex\t\nThe buildings of downtown Manhattan situated at below Mount Everest. The Great Pyramid is in the foreground.\tWorld Knowledge\tComplex\t\nAnime illustration of the Great Pyramid sitting next to the Parthenon under a blue night sky of roiling energy, exploding yellow stars, and chromatic blue swirls\tWorld Knowledge\tComplex\t\nAn anime illustration of Sydney Opera House sitting next to Eiffel tower, under a blue night sky of roiling energy, exploding yellow stars, and radiating swirls of blu\tWorld Knowledge\tComplex\t\nA close-up high-contrast photo of Sydney Opera House sitting next to Eiffel tower, under a blue night sky of roiling energy, exploding yellow stars, and radiating swirls of blue\tWorld Knowledge\tComplex\t\nthe Sydney Opera House with the Eiffel tower sitting on the right, and Mount Everest rising above\tWorld Knowledge\tComplex\t\nGreek statue of a man comforting a cat. The cat has a big head. The man looks angry.\tPeople\tComplex\t\na robot painted as graffiti on a brick wall. a sidewalk is in front of the wall, and grass is growing out of cracks in the concrete.\tOutdoor Scenes\tComplex\t\na portrait of a statue of a pharaoh wearing steampunk glasses, white t-shirt and leather jacket. dslr photograph.\tPeople\tComplex\t\na real flamingo reading a large open book. a big stack of books is piled up next to it. dslr photograph.\tAnimals\tComplex\t\nA photo of a hamburger fighting a hot dog in a boxing ring. The hot dog is tired and up against the ropes.\tFood & Beverage\tComplex\t\na blue cow is standing next to a tree with red leaves and yellow fruit. the cow is standing in a field with white flowers. impressionistic painting.\tAnimals\tComplex\t\nA cozy living room with a painting of a corgi on the wall above a couch and a round coffee table in front of a couch and a vase of flowers on a coffee table\tIndoor Scenes\tComplex\t\nPhotograph of a wall along a city street with a watercolor mural of foxes in a jazz band.\tOutdoor Scenes\tComplex\t\nA high resolution photo of a donkey in a clown costume giving a lecture at the front of a lecture hall. The blackboard has mathematical equations on it. There are many students in the lecture hall.\tIndoor Scenes\tComplex\t\nA black dog sitting on a wooden chair. A white cat with black ears is standing up with its paws on the chair.\tAnimals\tComplex\t\na Saint Bernard standing up with its paws in the air. A young girl is seated on the dog's shoulders.\tPeople\tComplex\t\na photograph of a squirrel holding an arrow above its head and holding a longbow in its left hand\tAnimals\tComplex\t\nAn empty fireplace with a television above it. The TV shows a lion hugging a giraffe.\tIndoor Scenes\tComplex\t\nan invisible man wearing horn-rimmed glasses and a pearl bead necklase while looking at his phone\tPeople\tComplex\t\na blue semi-truck and its trailer jumping over a row of motorcycles. there are metal ramps on either side of the motorcycles. \tVehicles\tComplex\t\na white rabbit in blue jogging clothes doubled over in pain while a turtle wearing a red tank top dashes confidently through the finish line\tAnimals\tComplex\t\na hot air balloon with a yin-yang symbol, with the moon visible in the daytime sky\tVehicles\tComplex\t\na photograph of a fiddle next to a basketball on a ping pong table\tArtifacts\tComplex\t\na racoon detective using a microscope while riding in a train\tAnimals\tComplex\t\na photograph of an ostrich wearing a fedora and singing soulfully into a microphone\tAnimals\tComplex\t\na cream-colored labradoodle wearing glasses and black beret teaching calculus at a blackboard\tAnimals\tComplex\t\na basketball to the left of two soccer balls on a gravel driveway\tArtifacts\tComplex\t\na cat patting a crystal ball with the number 7 written on it in black marker\tAnimals\tComplex\t\na cat licking a large felt ball with a drawing of the Eiffel Tower on it\tWorld Knowledge\tComplex\t\na giraffe wearing a white bathing suit and carefully stepping to the edge of a diving board and preparing to dive\tAnimals\tComplex\t\na paranoid android freaking out and jumping into the air because it is surrounded by colorful Easter eggs\tArtifacts\tComplex\t\na mixed media image with a photograph of a woman with long orange hair over a background that is a sketch of a city skyline\tPeople\tComplex\t\na black and orange yin-yang symbol with tiger's heads instead of circles\tIllustrations\tComplex\t\na painting of an ornate treasure chest with a broad sword propped up against it, glowing in a dark cave\tArts\tComplex\t\nRenaissance portrayals of the Virgin Mary, seated in a loggia. Behind her is a hazy and seemingly isolated landscape imagined by the artist and painted using sfumato.\tPeople\tComplex\tDescription of Mona Lisa\nOil-on-canvas painting of a blue night sky with roiling energy. A fuzzy and bright yellow crescent moon shining at the top. Below the exploding yellow stars and radiating swirls of blue, a distant village sits quietly on the right. Connecting earth and sky is a flame-like cypress tree with curling and swaying branches on the left. A church spire rises as a beacon over rolling blue hills\tArts\tComplex\tDescription of The Starry Night\nPainting of a panic-stricken creature, simultaneously corpselike and reminiscent of a sperm or fetus, whose contours are echoed in the swirling lines of the blood-red sky\tArts\tComplex\tDescription of The Scream\na propaganda poster depicting a cat dressed as french emperor napoleon holding a piece of cheese\tArtifacts\tComplex\tDALL-E 2\na white bird in front of a dinosaur standing by some trees\tOutdoor Scenes\tComplex\t\nSnow mountain and tree reflection in the lake\tOutdoor Scenes\tComplex\tVQ-Diffusion\na white robot, a red robot and a black robot standing together\tArtifacts\tComplex\t\na tree reflected in the hood of a blue car\tProduce & Plants\tComplex\t\na tree reflected in the sunroof of a blue car\tProduce & Plants\tComplex\t\na monarch butterfly hatching from its chrysalis\tAnimals\tComplex\t\na glass of orange juice to the right of a plate with buttered toast on it\tFood & Beverage\tComplex\t\na bottle of beer next to an ashtray with a half-smoked cigarrette\tFood & Beverage\tComplex\t\na pineapple with one beer to its left and two beers on its right\tFood & Beverage\tComplex\t\na pickup truck with a horse on its left and two dogs on its right\tVehicles\tComplex\t\na brown trash bin with a green compost bin on its left and a blue recycling bin on its right\tArtifacts\tComplex\t\na woman with long hair next to a luminescent bird\tPeople\tComplex\t\na tall man stooping down to enter a low red sports car\tPeople\tComplex\t\na black dog jumping up to hug a woman wearing a red sweater\tPeople\tComplex\t\na man and a woman standing in the back up an old pickup truck\tPeople\tComplex\t\na boy sitting on the shoulders of a woman who is wearing an elegant dress\tPeople\tComplex\t\na girl with curly black hair jumping off a boulder\tPeople\tComplex\t\na grandmother reading a book to her grandson and granddaughter\tPeople\tComplex\t\na young woman with glasses reading a thick book at a mahogany desk\tPeople\tComplex\t\na man in a business suit on a ladder that is leaning up against the side of a white house\tPeople\tComplex\t\na man pouring milk into a coffee cup to make a latte with a beatiful design\tPeople\tComplex\t\na woman using a sledgehammer to smash an ice sculpture of a goose\tPeople\tComplex\t\na painting of the mona lisa on a white wall\tWorld Knowledge\tComplex\t\na man eating a glazed donut and a woman eating a chocolate cake\tPeople\tComplex\t\nA teddy bear wearing a motorcycle helmet and cape is standing in front of Loch Awe with Kilchurn Castle behind him\tWorld Knowledge\tFine-grained Detail\t\nA teddy bear wearing a motorcycle helmet and cape is driving a speed boat near the Golden Gate Bridge\tWorld Knowledge\tFine-grained Detail\t\nA teddy bear wearing a motorcycle helmet and cape is car surfing on a taxi cab in New York City\tWorld Knowledge\tFine-grained Detail\t\nA teddy bear wearing a motorcycle helmet and cape is riding a motorcycle in Rio de Janeiro with Dois Irmãos in the background\tWorld Knowledge\tFine-grained Detail\t\nA punk rock squirrel in a studded leather jacket shouting into a microphone while standing on a stump\tAnimals\tFine-grained Detail\t\nA punk rock squirrel in a studded leather jacket shouting into a microphone while standing on a lily pad\tAnimals\tFine-grained Detail\t\nA punk rock squirrel in a studded leather jacket shouting into a microphone while standing on a boulder\tAnimals\tFine-grained Detail\t\nA punk rock frog in a studded leather jacket shouting into a microphone while standing on a stump\tAnimals\tFine-grained Detail\t\nA punk rock frog in a studded leather jacket shouting into a microphone while standing on a lily pad\tAnimals\tFine-grained Detail\t\nA punk rock frog in a studded leather jacket shouting into a microphone while standing on a boulder\tAnimals\tFine-grained Detail\t\nA punk rock platstumppus in a studded leather jacket shouting into a microphone while standing on a stump\tAnimals\tFine-grained Detail\t\nA punk rock platypus in a studded leather jacket shouting into a microphone while standing on a lily pad\tAnimals\tFine-grained Detail\t\nA punk rock platypus in a studded leather jacket shouting into a microphone while standing on a boulder\tAnimals\tFine-grained Detail\t\nA map of the United States made out sushi. It is on a table next to a glass of red wine.\tWorld Knowledge\tFine-grained Detail\t\nA blue Porsche 356 parked in front of a yellow brick wall\tWorld Knowledge\tFine-grained Detail\t\nA helicopter flies over the Arches National Park.\tWorld Knowledge\tFine-grained Detail\t\nA helicopter flies over the Grand Canyon.\tWorld Knowledge\tFine-grained Detail\t\nA helicopter flies over Yosemite.\tWorld Knowledge\tFine-grained Detail\t\nA sunken ship becomes the homeland of fish.\tVehicles\tFine-grained Detail\t\n A sloth in a go kart on a race track. The sloth is holding a banana in one hand. There is a banana peel on the track in the background.\tAnimals\tFine-grained Detail\t\na photograph of a bird wearing headphones and speaking into a microphone in a recording studio\tAnimals\tFine-grained Detail\t\nA teddybear on a skateboard in Times Square, doing tricks on a cardboard box ramp.\tWorld Knowledge\tFine-grained Detail\t\nA smiling sloth wearing a bowtie and holding a quarterstaff and a big book. A shiny VW van parked on grass.\tWorld Knowledge\tFine-grained Detail\t\nA smiling sloth wearing a bowtie and holding a quarterstaff and a big book.\tAnimals\tFine-grained Detail\t\nA smiling sloth wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book.\tAnimals\tFine-grained Detail\t\nA smiling sloth wearing a leather jacket, a cowboy hat and a kilt.\tAnimals\tFine-grained Detail\t\nA shiny VW van with a cityscape painted on it and parked on grass.\tWorld Knowledge\tFine-grained Detail\t\nThe Statue of Liberty with the Manhattan skyline in the background.\tWorld Knowledge\tFine-grained Detail\t\na cream colored labradoodle next to a white cat with black-tipped ears\tAnimals\tFine-grained Detail\t\nThe Great Pyramid of Giza situated in front of Mount Everest\tWorld Knowledge\tFine-grained Detail\t\nA photo of a Ming Dynasty vase on a leather topped table.\tWorld Knowledge\tFine-grained Detail\t\nA table full of food. There is a plate of chicken rice, a bowl of bak chor mee, and a bowl of laksa.\tFood & Beverage\tFine-grained Detail\t\nA map of the United States with a pin on San Francisco\tWorld Knowledge\tFine-grained Detail\t\nA map of the United States made out of sushi on the table.\tWorld Knowledge\tFine-grained Detail\t\na cute wooden owl statue holding a large globe of the Earth above its head\tAnimals\tFine-grained Detail\t\na photograph of the mona lisa drinking coffee as she has her breakfast. her plate has an omelette and croissant.\tPeople\tFine-grained Detail\t\nthe mona lisa wearing a cowboy hat and screaming a punk song into a microphone\tPeople\tFine-grained Detail\t\na young badger delicately sniffing a yellow rose, richly textured oil painting\tArts\tFine-grained Detail\t\na photograph of a blue porsche 356 coming around a bend in the road\tVehicles\tFine-grained Detail\t\nfairy cottage with smoke coming up chimney and a squirrel looking from the window\tOutdoor Scenes\tFine-grained Detail\t\npurple lego dollhouse with a pool and a swing\tArtifacts\tFine-grained Detail\t\nblack bearded dog with an injured leg wearing a cone\tAnimals\tFine-grained Detail\t\nbrown white and black white guinea pigs eating parsley handed to them\tAnimals\tFine-grained Detail\t\nThe Rosetta Stone lying on the ground, covered in snow.\tWorld Knowledge\tFine-grained Detail\t\na high-quality photograph of an armadillo playing a bagpipe while standing on one leg\tAnimals\tFine-grained Detail\t\na white robot with a red mohawk painted as graffiti on a red brick wall\tArtifacts\tFine-grained Detail\t\na panda bear playing ping pong using a blue paddle against an ostrich using a red paddle\tAnimals\tFine-grained Detail\t\nAnubis wearing sunglasses and sitting astride a hog motorcyle\tWorld Knowledge\tFine-grained Detail\t\na photograph of sand with a bucket, lots of scattered shells but no sandpipers\tOutdoor Scenes\tFine-grained Detail\t\na shiba inu wearing a beret and black turtleneck\tAnimals\tFine-grained Detail\tDALL-E 2\na handpalm with leaves growing from it\tPeople\tFine-grained Detail\tDALL-E 2\npanda mad scientist mixing sparkling chemicals\tAnimals\tFine-grained Detail\tDALL-E 2\na corgi’s head depicted as an explosion of a nebula\tAnimals\tFine-grained Detail\tDALL-E 2\na dolphin in an astronaut suit on saturn\tAnimals\tFine-grained Detail\tDALL-E 2\na teddy bear on a skateboard in times square\tWorld Knowledge\tFine-grained Detail\tDALL-E 2\nA Big Ben clock towering over the city of London\tWorld Knowledge\tFine-grained Detail\tCogView\nA Vietnam map showing Ha Long Bay\tWorld Knowledge\tFine-grained Detail\t\nA bowl of Pho served with bean sprouts on top\tFood & Beverage\tFine-grained Detail\t\na capybara sitting in a field\tAnimals\tFine-grained Detail\tDALL-E\na baby penguin wearing a blue hat, red gloves, green shirt, and yellow pants\tAnimals\tFine-grained Detail\tDALL-E\na collection of glasses is sitting on a table\tArtifacts\tFine-grained Detail\tDALL-E\nA bare kitchen has wood cabinets and white appliances\tIndoor Scenes\tFine-grained Detail\tVQ-Diffusion\nA black and white landscape photograph of a black tree\tOutdoor Scenes\tFine-grained Detail\tVQ-Diffusion\nan ornate, high-backed mahogany chair with a red cushion\tArtifacts\tFine-grained Detail\t\na whale breaching in front of the Sydney Opera House\tWorld Knowledge\tFine-grained Detail\t\na white country home with a wrap-around porch\tOutdoor Scenes\tFine-grained Detail\t\na corgi wearing a red bowtie and a purple party hat\tAnimals\tFine-grained Detail\tGLIDE\nrobots meditating in a vipassana retreat\tArtifacts\tFine-grained Detail\tGLIDE\na white robot passing a soccer ball to a red robot\tArtifacts\tFine-grained Detail\t\na fall landscape with a small cottage next to a lake\tOutdoor Scenes\tFine-grained Detail\tGLIDE\na cat looking out of a window at a squirrel on a fence\tAnimals\tFine-grained Detail\t\na white cat with black ears and markings\tAnimals\tFine-grained Detail\t\na white cat and a tabby cat looking at each other\tAnimals\tFine-grained Detail\t\na cat sitting on a stairway railing\tAnimals\tFine-grained Detail\t\na professional photo of a sunset behind the grand canyon\tOutdoor Scenes\tFine-grained Detail\tGLIDE\na large white yacht in a calm bay on a sunny day\tVehicles\tFine-grained Detail\t\na large white yacht tossed about in a stormy sea\tVehicles\tFine-grained Detail\t\na baby daikon radish in a tutu walking a dog\tProduce & Plants\tFine-grained Detail\tDALL-E\nan illustration of a baby daikon radish in a tutu walking a dog\tProduce & Plants\tFine-grained Detail\tDALL-E\na long wooden bench in front of a brick wall\tArtifacts\tFine-grained Detail\t\nan ornate metal bench by a nature path\tOutdoor Scenes\tFine-grained Detail\t\na white plastic bench with a high arched back\tArtifacts\tFine-grained Detail\t\na tall horse next to a red car\tAnimals\tFine-grained Detail\t\nan owl standing on a wire\tAnimals\tFine-grained Detail\t\nan owl standing on a telephone wire\tAnimals\tFine-grained Detail\t\nthe skyline of New York City\tWorld Knowledge\tFine-grained Detail\t\nbeautiful fireworks in the sky with red, white and blue\tOutdoor Scenes\tFine-grained Detail\t\na steam locomotive speeding through a desert\tVehicles\tFine-grained Detail\t\na submarine floating past a shark\tVehicles\tFine-grained Detail\t\na whale breaching near a mountain\tAnimals\tFine-grained Detail\t\nthe United States flag next to the flag of Texas\tWorld Knowledge\tFine-grained Detail\t\na giraffe with an owl on its head\tAnimals\tFine-grained Detail\t\nan owl on top of an elephant's back\tAnimals\tFine-grained Detail\t\nan eagle swooping down to catch a mouse\tAnimals\tFine-grained Detail\t\nan owl with its wings spread out swooping over a tree\tAnimals\tFine-grained Detail\t\na giraffe eating the bark of a tree\tAnimals\tFine-grained Detail\t\na car and a truck on the road next to a traffic light\tVehicles\tFine-grained Detail\t\na cityscape at night with a full moon\tOutdoor Scenes\tFine-grained Detail\t\nan owl gripping a squirrel in its talons\tAnimals\tFine-grained Detail\t\na bloody mary cocktail next to a napkin\tFood & Beverage\tFine-grained Detail\t\nan old-fashioned cocktail next to a napkin\tFood & Beverage\tFine-grained Detail\t\na long-island ice tea cocktail next to a napkin\tFood & Beverage\tFine-grained Detail\t\na margarita next to a napkin\tFood & Beverage\tFine-grained Detail\t\na room with two chairs and a painting of the Statue of Liberty\tIndoor Scenes\tFine-grained Detail\t\na mountain and its reflection in a lake\tOutdoor Scenes\tFine-grained Detail\t\na bird and its reflection in a fountain\tOutdoor Scenes\tFine-grained Detail\t\nThe Statue of Liberty on a cloudy day\tWorld Knowledge\tFine-grained Detail\t\nThe Statue of Liberty surrounded by helicopters\tWorld Knowledge\tFine-grained Detail\t\nthe Eiffel Tower in winter\tWorld Knowledge\tFine-grained Detail\t\na sunken ship at the bottom of the ocean\tVehicles\tFine-grained Detail\t\na sunken submarine at the bottom of the ocean\tVehicles\tFine-grained Detail\t\nthe Eiffel Tower in a desert\tWorld Knowledge\tFine-grained Detail\t\nGolden Gate bridge on the surface of Mars\tWorld Knowledge\tFine-grained Detail\t\nthe city of London on Mars\tWorld Knowledge\tFine-grained Detail\t\nthe city of London on the moon\tWorld Knowledge\tFine-grained Detail\t\na stop sign with a large tree behind it\tArtifacts\tFine-grained Detail\t\na stop sign knocked over on a sidewalk\tArtifacts\tFine-grained Detail\t\nteacups surounding a kettle\tArtifacts\tFine-grained Detail\t\na dragon breathing fire\tAnimals\tFine-grained Detail\t\na dragon breathing fire on a castle\tAnimals\tFine-grained Detail\t\na dragon breathing fire onto a knight\tAnimals\tFine-grained Detail\t\na view of the Big Dipper in the night sky\tWorld Knowledge\tFine-grained Detail\t\na view of the Orion constellation in the night sky\tWorld Knowledge\tFine-grained Detail\t\na teddy bear to the right of a toy car\tArtifacts\tFine-grained Detail\t\na toy car in front of a teddy bear\tArtifacts\tFine-grained Detail\t\na large present with a red ribbon\tArtifacts\tFine-grained Detail\t\na large present with a red ribbon to the left of a Christmas tree\tIndoor Scenes\tFine-grained Detail\t\na half empty bottle of red wine\tFood & Beverage\tFine-grained Detail\t\na wine bottle with a lit candle stuck in its spout\tFood & Beverage\tFine-grained Detail\t\na wine bottle with a red ribbon wrapped around it\tFood & Beverage\tFine-grained Detail\t\na kids' book cover with an illustration of white dog driving a red pickup truck\tIllustrations\tFine-grained Detail\t\nmilk pouring into a large glass\tFood & Beverage\tFine-grained Detail\t\nmilk pouring from a glass into a bowl\tFood & Beverage\tFine-grained Detail\t\nmatching socks with cute cats on them\tArtifacts\tFine-grained Detail\t\ncash on a wooden table\tArtifacts\tFine-grained Detail\t\na wood cabin with a fire pit in front of it\tIndoor Scenes\tFine-grained Detail\t\nview of a clock tower on a cloudy day\tArtifacts\tFine-grained Detail\t\na chimpanzee wearing a bowtie and playing a piano\tAnimals\tFine-grained Detail\t\na black baseball hat with a flame decal on it\tArtifacts\tFine-grained Detail\t\nblack hi-top sneakers with the Nike swoosh\tArtifacts\tFine-grained Detail\t\na roast turkey being taken out of the oven\tFood & Beverage\tFine-grained Detail\t\na bamboo ladder propped up against an oak tree\tArtifacts\tFine-grained Detail\t\na Tyrannosaurus Rex roaring in front of a palm tree\tAnimals\tFine-grained Detail\t\na Stegasaurus eating ferns\tAnimals\tFine-grained Detail\t\na Triceratops charging down a hill\tAnimals\tFine-grained Detail\t\na Styracosaurus displaying its horns\tAnimals\tFine-grained Detail\t\na Diplodocus standing in a lake\tAnimals\tFine-grained Detail\t\na tabby cat coming through a door\tAnimals\tFine-grained Detail\t\na cat's tail showing under a couch\tAnimals\tFine-grained Detail\t\na light shining on a giraffe in a street\tAnimals\tFine-grained Detail\t\na barred owl peeking out from dense tree branches\tAnimals\tFine-grained Detail\t\na great gray owl with a mouse in its beak\tAnimals\tFine-grained Detail\t\na snowy owl standing in a grassy field\tAnimals\tFine-grained Detail\t\na stone path leading away from a fountain\tOutdoor Scenes\tFine-grained Detail\t\na wooden deck overlooking a mountain valley\tOutdoor Scenes\tFine-grained Detail\t\na mouse sitting next to a computer mouse\tAnimals\tFine-grained Detail\t\na tiny dragon landing on a knight's shield\tAnimals\tFine-grained Detail\t\nan F1 race car in a Manhattan street\tWorld Knowledge\tFine-grained Detail\t\na chess queen to the right of a chess knight\tArtifacts\tFine-grained Detail\t\na white pawn attacking a black bishop\tArtifacts\tFine-grained Detail\t\na mountain stream with salmon leaping out of it\tOutdoor Scenes\tFine-grained Detail\t\na living room with a large Egyptian statue in the corner\tIndoor Scenes\tFine-grained Detail\t\na stone bust next to an egg and an eggplant\tArtifacts\tFine-grained Detail\t\nscraps of paper drifting in the wind\tOutdoor Scenes\tFine-grained Detail\t\nthe silhouette of an elephant on the full moon\tAnimals\tFine-grained Detail\t\na tree growing out of the middle of an intersection\tOutdoor Scenes\tFine-grained Detail\t\na can of Spam on an elegant plate\tFood & Beverage\tFine-grained Detail\t\na dolphin jumping over a rowboat\tAnimals\tFine-grained Detail\t\na pick-up truck rolling over a grassy field\tVehicles\tFine-grained Detail\t\na drop-top sports car coming around a bend in the road\tVehicles\tFine-grained Detail\t\nthe Taj Mahal at sunrise\tWorld Knowledge\tFine-grained Detail\t\na small garden with an apple tree behind it\tProduce & Plants\tFine-grained Detail\t\na old-time car with a large front grille\tVehicles\tFine-grained Detail\t\na blue wall with a large framed watercolor painting of a mountain\tIndoor Scenes\tFine-grained Detail\t\na yellow wall with a large framed oil painting of a car\tIndoor Scenes\tFine-grained Detail\t\nan old-fashioned phone next to a sleek laptop\tArtifacts\tFine-grained Detail\t\na motorcycle parked in an ornate bank lobby\tVehicles\tFine-grained Detail\t\na hot air balloon landing in a corn field\tVehicles\tFine-grained Detail\t\na wooden toy horse with a mane made of rope\tArtifacts\tFine-grained Detail\t\na beach with a cruise ship passing by\tOutdoor Scenes\tFine-grained Detail\t\na group of penguins in a snowstorm\tAnimals\tFine-grained Detail\t\na Scottish castle next to a loch\tWorld Knowledge\tFine-grained Detail\t\na full moon peeking through clouds at night\tOutdoor Scenes\tFine-grained Detail\t\na crescent moon viewed between tree branches at night\tOutdoor Scenes\tFine-grained Detail\t\na full moon rising above a mountain at night\tOutdoor Scenes\tFine-grained Detail\t\nthe International Space Station flying in front of the moon\tWorld Knowledge\tFine-grained Detail\t\na tornado passing over a corn field\tOutdoor Scenes\tFine-grained Detail\t\na tidal wave approaching a coastal road\tOutdoor Scenes\tFine-grained Detail\t\nan antique car by a beach\tVehicles\tFine-grained Detail\t\na water tower next to a deserted road\tOutdoor Scenes\tFine-grained Detail\t\na small airplane flying over rolling hills\tVehicles\tFine-grained Detail\t\nan airplane flying into a cloud that looks like monster\tVehicles\tFine-grained Detail\t\na blue airplane taxiing on a runway with the sun behind it\tVehicles\tFine-grained Detail\t\na car with tires that have yellow rims\tVehicles\tFine-grained Detail\t\na turtle upside down and spinning on its shell\tAnimals\tFine-grained Detail\t\nan octopus fleeing and squirting black ink\tAnimals\tFine-grained Detail\t\na moose by a mountain stream\tAnimals\tFine-grained Detail\t\na kachina doll with feathers on its head and wearing a white dress and brown boots.\tWorld Knowledge\tFine-grained Detail\t\na kachina doll standing in sand\tWorld Knowledge\tFine-grained Detail\t\na doorknocker shaped like a lion's head\tArtifacts\tFine-grained Detail\t\na silver doorknocker on a mahoghany door\tArtifacts\tFine-grained Detail\t\na rabbit with white fur and black-tipped ears\tAnimals\tFine-grained Detail\t\na glass of orange juice next to an empty pitcher\tFood & Beverage\tFine-grained Detail\t\na glass of orange juice with an orange peel stuck on the rim\tFood & Beverage\tFine-grained Detail\t\na bottle of light beer with a lemon slice wedged in the rim\tFood & Beverage\tFine-grained Detail\t\na helicopter hovering over Times Square\tWorld Knowledge\tFine-grained Detail\t\na traffic jam at Times Square\tWorld Knowledge\tFine-grained Detail\t\na prop plane flying low over the Great Wall\tWorld Knowledge\tFine-grained Detail\t\na view of the Kremlin on a sunny day\tWorld Knowledge\tFine-grained Detail\t\na view of the Kremlin with snow falling\tWorld Knowledge\tFine-grained Detail\t\na palm tree forest in front of the Kremlin\tWorld Knowledge\tFine-grained Detail\t\na Ferrari Testarossa in front of the Kremlin\tWorld Knowledge\tFine-grained Detail\t\na rusty red pickup truck with white wheel rims\tVehicles\tFine-grained Detail\t\na blue pickup truck with a rhinoceros in its flatbed\tVehicles\tFine-grained Detail\t\nan orange pickup truck next to a yellow Porsche 911\tVehicles\tFine-grained Detail\t\na pickup truck kicking up dust on a back road\tVehicles\tFine-grained Detail\t\na pickup truck going up a mountain switchback\tVehicles\tFine-grained Detail\t\na pickup truck at the beach at sunrise\tVehicles\tFine-grained Detail\t\na pickup truck under street lights at night\tVehicles\tFine-grained Detail\t\na pair of shoes on a tennis racquet\tArtifacts\tFine-grained Detail\t\na shoe with a sock draped over it\tArtifacts\tFine-grained Detail\t\na plant growing on the side of a brick wall\tProduce & Plants\tFine-grained Detail\t\na plant at the bottom of a shallow stream\tProduce & Plants\tFine-grained Detail\t\na cow eating a green leafy plant\tAnimals\tFine-grained Detail\t\na bundle of blue and yellow flowers in a vase\tProduce & Plants\tFine-grained Detail\t\na horse chewing a large blue flower\tAnimals\tFine-grained Detail\t\na yellow diamond-shaped sign with a deer silhouette\tArtifacts\tFine-grained Detail\t\na yellow diamond-shaped sign with a turtle silhouette\tArtifacts\tFine-grained Detail\t\na yellow diamond-shaped sign with a puma silhouette\tArtifacts\tFine-grained Detail\t\na yellow diamond-shaped sign with a wooly mammoth silhouette\tArtifacts\tFine-grained Detail\t\na pair of headphones on a pumpkin\tArtifacts\tFine-grained Detail\t\na pair of headphones on a guitar\tArtifacts\tFine-grained Detail\t\na pair of headphones on a statue of a horse\tArtifacts\tFine-grained Detail\t\na pair of headphones dangling from a tree branch\tArtifacts\tFine-grained Detail\t\na car's wheel crushing a pair of headphones\tVehicles\tFine-grained Detail\t\na chemtrail passing between two clouds\tOutdoor Scenes\tFine-grained Detail\t\na long chemtrail trailing an airplane in a blue sky\tOutdoor Scenes\tFine-grained Detail\t\na tennis court with a basketball hoop in one corner\tOutdoor Scenes\tFine-grained Detail\t\na tennis court that is very wet from lots of rain\tOutdoor Scenes\tFine-grained Detail\t\na rocking chair next to the net of a tennis court\tOutdoor Scenes\tFine-grained Detail\t\na ceiling fan with an ornate light fixture\tIndoor Scenes\tFine-grained Detail\t\nred and yellow balloons hanging from a ceiling fan\tIndoor Scenes\tFine-grained Detail\t\na sidewalk next to a wooden post with a blue '5' painted on top\tOutdoor Scenes\tFine-grained Detail\t\na harp with a carved eagle figure at the top\tArtifacts\tFine-grained Detail\t\na tuba with red flowers protruding from its bell\tArtifacts\tFine-grained Detail\t\nan elephant using its trunk to blow into a tuba\tAnimals\tFine-grained Detail\t\nThe Alamo with bright white clouds above it\tWorld Knowledge\tFine-grained Detail\t\na flock of geese in front of The Alamo\tWorld Knowledge\tFine-grained Detail\t\nan old-fashioned windmill surrounded by flowers\tOutdoor Scenes\tFine-grained Detail\t\na windmill farm next to a country road\tOutdoor Scenes\tFine-grained Detail\t\na family of bears passing by the geyser Old Faithful\tWorld Knowledge\tFine-grained Detail\t\nan old red truck parked by the geyser Old Faithful\tWorld Knowledge\tFine-grained Detail\t\nan inflatable rabbit held up in the air by the geyser Old Faithful\tWorld Knowledge\tFine-grained Detail\t\na Harley-Davidson motorcycle with a flame decal\tVehicles\tFine-grained Detail\t\na motorcycle in front of an rhinoceros\tVehicles\tFine-grained Detail\t\na chopper decorated with the Stars and Stripes\tVehicles\tFine-grained Detail\t\na painting of black and white with a red flower in the right corner\tIllustrations\tFine-grained Detail\t\na gorilla climbing up the side of the Great Pyramid\tWorld Knowledge\tFine-grained Detail\t\na beat-up truck at the base of the Great Pyramid\tWorld Knowledge\tFine-grained Detail\t\nsnow covering the Great Pyramid\tWorld Knowledge\tFine-grained Detail\t\nthe sun setting behind the Parthenon\tWorld Knowledge\tFine-grained Detail\t\nfireworks above the Parthenon\tWorld Knowledge\tFine-grained Detail\t\nthe Millennium Wheel in a snow storm\tWorld Knowledge\tFine-grained Detail\t\na marina with a herd of dolphins playing in it\tOutdoor Scenes\tFine-grained Detail\t\na volcano exploding next to a marina\tOutdoor Scenes\tFine-grained Detail\t\na team playing baseball at the beach\tPeople\tFine-grained Detail\t\na man standing on a street corner\tPeople\tFine-grained Detail\t\na crowd of people watching fireworks by a park\tPeople\tFine-grained Detail\t\na crowd of people watching fireworks by a city\tPeople\tFine-grained Detail\t\na smiling man with wavy brown hair and trimmed beard\tPeople\tFine-grained Detail\t\na woman with long black hair and dark skin\tPeople\tFine-grained Detail\t\na woman with long black hair and dark skin in a long white dress\tPeople\tFine-grained Detail\t\na man with long blonde hair, brown eyes and blue jeans\tPeople\tFine-grained Detail\t\nan elderly woman with straight hair and metal-rimmed glasses\tPeople\tFine-grained Detail\t\na man wearing sunglasses and business suit\tPeople\tFine-grained Detail\t\na girl with long curly blonde hair and sunglasses\tPeople\tFine-grained Detail\t\nan old man with a long grey beard and green eyes\tPeople\tFine-grained Detail\t\na woman with tan skin in blue jeans and yellow shirt\tPeople\tFine-grained Detail\t\na woman with a dog puppet and a cat puppet\tPeople\tFine-grained Detail\t\na group of skiers are preparing to walk up a sand dune\tPeople\tFine-grained Detail\t\na child eating a birthday cake near some palm trees\tPeople\tFine-grained Detail\t\na man with wild hair looking into a crystal ball\tPeople\tFine-grained Detail\t\nGandalf saying you shall not pass\tWorld Knowledge\tFine-grained Detail\t\na mosquito biting a man\tPeople\tFine-grained Detail\t\na witch riding a broom\tPeople\tFine-grained Detail\t\na knight holding a long sword\tPeople\tFine-grained Detail\t\na man reading a book with a prism on its cover\tPeople\tFine-grained Detail\t\na cricket team walking on to the pitch\tPeople\tFine-grained Detail\t\na cricketer standing next to a wicket\tPeople\tFine-grained Detail\t\nan elder politician giving a campaign speech\tPeople\tFine-grained Detail\t\na young girl playing piano\tPeople\tFine-grained Detail\t\na girl getting a kite out of a tree\tPeople\tFine-grained Detail\t\na politician giving a speech at a podium\tPeople\tFine-grained Detail\t\na politician speaking to a large crowd\tPeople\tFine-grained Detail\t\na child in the air while jumping on a trampoline\tPeople\tFine-grained Detail\t\nthe Beatles crossing Abbey road\tPeople\tFine-grained Detail\t\na girl riding an ostrich\tPeople\tFine-grained Detail\t\na river with people swimming in it as a boat goes by\tPeople\tFine-grained Detail\t\na selfie of an old man with a white beard\tPeople\tFine-grained Detail\t\na young girl wearing a tiara and frilly dress\tPeople\tFine-grained Detail\t\na ballet dancer next to a waterfall\tPeople\tFine-grained Detail\t\na judge delivering a sentence to the defendant\tPeople\tFine-grained Detail\t\npeople packed on a double-decker bus\tPeople\tFine-grained Detail\t\na man riding a camel on the beach\tPeople\tFine-grained Detail\t\na woman singing into a microphone\tPeople\tFine-grained Detail\t\na child unraveling a roll of toilet paper\tPeople\tFine-grained Detail\t\na girl examining an ammonite fossil\tPeople\tFine-grained Detail\t\na fairy flying over a girl's shoulder\tPeople\tFine-grained Detail\t\nTibetan priests ringing a bell\tPeople\tFine-grained Detail\t\na man sleeping in a hammock\tPeople\tFine-grained Detail\t\na library filled with kids reading books\tPeople\tFine-grained Detail\t\na scientist accepting an award\tPeople\tFine-grained Detail\t\nA tornado made of sharks crashing into a skyscraper. painting in the style of Hokusai.\tArts\tImagination\t\nA tornado made of sharks crashing into a skyscraper. painting in the style of abstract cubism.\tArts\tImagination\t\nA tornado made of sharks crashing into a skyscraper. painting in the style of watercolor.\tArts\tImagination\t\nA tornado made of tigers crashing into a skyscraper. painting in the style of Hokusai.\tArts\tImagination\t\nA tornado made of tigers crashing into a skyscraper. painting in the style of abstract cubism.\tArts\tImagination\t\nA tornado made of tigers crashing into a skyscraper. painting in the style of watercolor.\tArts\tImagination\t\nA tornado made of bees crashing into a skyscraper. painting in the style of Hokusai.\tArts\tImagination\t\nA tornado made of bees crashing into a skyscraper. painting in the style of abstract cubism.\tArts\tImagination\t\nA tornado made of bees crashing into a skyscraper. painting in the style of watercolor.\tArts\tImagination\t\nA television made of water that displays an image of a cityscape at night.\tArtifacts\tImagination\t\nA photo of a light bulb in outer space traveling the galaxy with a sailing boat inside the light bulb.\tArtifacts\tImagination\t\nA shiny robot wearing a race car suit and black visor stands proudly in front of an F1 race car. The sun is setting on a cityscape in the background. comic book illustration.\tIllustrations\tImagination\t\nA horse sitting on an astronaut's shoulders.\tPeople\tImagination\t\nThe collision of two black holes in the center of a galaxy.\tAbstract\tImagination\t\na super math wizard cat, richly textured oil painting\tArts\tImagination\t\nA group of farm animals (cows, sheep, and pigs) made out of cheese and ham, on a wooden board. There is a dog in the background eyeing the board hungrily.\tFood & Beverage\tImagination\t\nA giant cobra snake made from corn\tAnimals\tImagination\t\nA giant cobra snake made from sushi\tAnimals\tImagination\t\nA giant cobra snake made from pancakes\tAnimals\tImagination\t\nA giant cobra snake made from salad\tAnimals\tImagination\t\nA photo of an astronaut riding a horse in the forest. There is a river in front of them with water lilies.\tPeople\tImagination\t\nA rhino beetle this size of a tank grapples a real life passenger airplane on the tarmac\tAnimals\tImagination\t\na massive robot with a coffee cup head. it is standing in the street with one foot smashing a car.\tArtifacts\tImagination\t\nA large city fountain that has milk instead of water. Several cats are leaning into the fountain.\tOutdoor Scenes\tImagination\t\nA bowl of soup that looks like a monster knitted out of wool\tFood & Beverage\tImagination\t\nA bowl of soup that looks like a monster made out of plasticine\tFood & Beverage\tImagination\t\nA bowl of soup that looks like a monster spray-painted on a wall\tFood & Beverage\tImagination\t\nA bowl of soup that looks like a monster with tofu says deep learning\tFood & Beverage\tImagination\t\nThe 1970s logo for a london-area football club called \"The Rumbury Wanderers\"\tWorld Knowledge\tImagination\t\na swordfish and a narwhal fencing in an underwater sandy arena. a crap and a lobster are cheering.\tAnimals\tImagination\t\nA castle made of tortilla chips, in a river made of salsa. There are tiny burritos walking around the castle\tFood & Beverage\tImagination\t\nA city in 4-dimensional space-time\tAbstract\tImagination\t\nA high resolution photo of a rat working out in a gym.\tAnimals\tImagination\t\nA high resolution photo of a chicken working out in a gym.\tAnimals\tImagination\t\na dump truck filled with soccer balls scuba diving in a coral reef.\tVehicles\tImagination\t\na yellow dump truck filled with soccer balls driving in a coral reef. a blue whale looms in the background.\tVehicles\tImagination\t\nA photo of llama wearing sunglasses standing on the deck of a spaceship with the Earth in the background.\tAnimals\tImagination\t\nA high resolution photo of a large bowl of ramen. There are several origami boats in the ramen of different colors.\tFood & Beverage\tImagination\t\nan elf drinking orange juice through a straw of a giant orange next to a squirrel and an owl watching from above\tAnimals\tImagination\tConcept from an old children's book\nAn alien octopus floats through a portal reading a newspaper. DSLR photo.\tAnimals\tImagination\t\nA photo of an astronaut riding a horse in the forest.\tPeople\tImagination\t\nA photograph of a bird made of wheat bread and an egg.\tAnimals\tImagination\t\na horse corral with tigers standing in each stall\tAnimals\tImagination\t\na bike rack with some bike locks attached to it but no bicycles\tVehicles\tImagination\t\nA red dragon dressed in a tuxedo and playing chess. The chess pieces are fashioned after robots.\tAnimals\tImagination\t\nAn oil painting of a two-story house lifting off the ground like a rocket.\tArts\tImagination\t\na portrait of a postal worker who has forgotten their mailbag\tPeople\tImagination\t\na politician wearing a soccer jersey and holding a volleyball while giving a speech on a stage\tPeople\tImagination\t\na kangaroo hopping in the air between two identical large statues of warrior rabbits\tAnimals\tImagination\t\na impressionistic painting of a scholarly badger reading the Rosetta Stone\tWorld Knowledge\tImagination\t\nA black dragon perched on top of a tall Egyptian obelisk and breathing flames at a knight on the ground\tAnimals\tImagination\t\na photograph of a knight in shining armor holding a basketball\tPeople\tImagination\t\nDogs playing poker\tAnimals\tImagination\tDescription of \"Dogs Playing Poker\"\nDogs sitting around a poker table\tAnimals\tImagination\tDescription of \"Dogs Playing Poker\"\nDogs sitting around a poker table with beer bottles and chips. Their hands are holding cards.\tAnimals\tImagination\tDescription of \"Dogs Playing Poker\"\nSalvador Dalí with a robotic half face\tPeople\tImagination\tDALL-E 2\nan espresso machine that makes coffee from human souls\tArtifacts\tImagination\tDALL-E 2\npanda mad scientist\tAnimals\tImagination\tDALL-E 2\na snail made of harp\tAnimals\tImagination\tDALL-E\na giraffe made of turtle\tAnimals\tImagination\tDALL-E\na giraffe imitating a turtle\tAnimals\tImagination\tDALL-E\na cube made of porcupine\tIllustrations\tImagination\tDALL-E\na watermelon chair\tArtifacts\tImagination\t\na giant gorilla at the top of the Empire State Building\tWorld Knowledge\tImagination\t\na spaceship that looks like the Sydney Opera House\tVehicles\tImagination\t\na hedgehog using a calculator\tAnimals\tImagination\tGLIDE\na cat playing checkers\tAnimals\tImagination\t\na hamster dragon\tAnimals\tImagination\t\na futuristic city\tOutdoor Scenes\tImagination\tGLIDE\ncorgi pizza\tAnimals\tImagination\t\na clock with no hands\tArtifacts\tImagination\t\na baby daikon radish in a tutu\tProduce & Plants\tImagination\tDALL-E\na chimpanzee sitting on a wooden bench\tAnimals\tImagination\t\na smiling banana wearing a bandana\tProduce & Plants\tImagination\t\nan orange wearing a cowboy hat\tProduce & Plants\tImagination\t\na cat drinking a pint of beer\tAnimals\tImagination\t\na train going to the moon\tVehicles\tImagination\t\na subway train in an empty station\tVehicles\tImagination\t\na cow jumping over the moon\tAnimals\tImagination\t\na cat sitting in a car seat\tAnimals\tImagination\t\na friendly car\tVehicles\tImagination\t\ntwo cats doing research\tAnimals\tImagination\t\na red train is coming down the beach\tVehicles\tImagination\t\na small kitchen with a white goat in it\tIndoor Scenes\tImagination\t\na giraffe with a funny face\tAnimals\tImagination\t\na peaceful lakeside landscape with migrating herd of sauropods\tOutdoor Scenes\tImagination\t\na cat standing on a horse\tAnimals\tImagination\t\na horse standing on an elephant\tAnimals\tImagination\t\na cat chasing a horse\tAnimals\tImagination\t\na horse chasing a cat\tAnimals\tImagination\t\na cat with four eyes\tAnimals\tImagination\t\na sword slicing through a loaf of bread\tArtifacts\tImagination\t\na sword slicing through pouring milk\tArtifacts\tImagination\t\na coffee mug floating in the sky\tArtifacts\tImagination\t\na pig face with an eye patch\tAnimals\tImagination\t\na stork playing a violin\tAnimals\tImagination\t\na TV on a horse\tArtifacts\tImagination\t\na Christmas tree on a toy train\tArtifacts\tImagination\t\nThe Statue of Liberty with the face of an owl\tWorld Knowledge\tImagination\t\na zebra with blue stripes\tAnimals\tImagination\t\na zebra with alternating blue and red stripes\tAnimals\tImagination\t\na yellow tiger with blue stripes\tAnimals\tImagination\t\na tiger wearing a tuxedo\tAnimals\tImagination\t\nthe statue of Liberty next to the Washington Monument\tWorld Knowledge\tImagination\t\na koi fish flying in the sky\tAnimals\tImagination\t\na pineapple surfing on a wave\tProduce & Plants\tImagination\t\na toaster shaking hands with a microwave\tArtifacts\tImagination\t\nblue apples on a tree with yellow leaves\tProduce & Plants\tImagination\t\nsquare blue apples on a tree with circular yellow leaves\tProduce & Plants\tImagination\t\nsquare red apples on a tree with circular green leaves\tProduce & Plants\tImagination\t\na pirate ship landing on the moon\tVehicles\tImagination\t\na turkey walking in the kitchen\tAnimals\tImagination\t\na horned owl with a graduation cap and diploma\tAnimals\tImagination\t\na panda bear with aviator glasses on its head\tAnimals\tImagination\t\na nerdy bear wearing glasses and a bowtie\tAnimals\tImagination\t\na volcano spewing fish into the sky\tOutdoor Scenes\tImagination\t\na tree with leaves that look like purple balloons\tProduce & Plants\tImagination\t\na pony with a shooting star on its flank\tAnimals\tImagination\t\na half moon in the day sky\tOutdoor Scenes\tImagination\t\nthe moon with a smiling face\tOutdoor Scenes\tImagination\t\na tornado with a house carried along at its top\tOutdoor Scenes\tImagination\t\na penguin that is a car\tAnimals\tImagination\t\na bicycle wheel that is made of red yarn\tVehicles\tImagination\t\na rabbit sitting on a turtle's back\tAnimals\tImagination\t\na rabbit wearing a black tophat and monocle\tAnimals\tImagination\t\na full pitcher of beer with an elephant's trunk in it\tFood & Beverage\tImagination\t\nan elephant walking on the Great Wall\tWorld Knowledge\tImagination\t\na spaceship landing on the Great Wall\tWorld Knowledge\tImagination\t\nan ocean at the base of the Great Wall\tWorld Knowledge\tImagination\t\na herd of buffalo stampeding at the Kremlin\tWorld Knowledge\tImagination\t\na pickup truck missing its wheels\tVehicles\tImagination\t\na flower with a cat's face in the middle\tProduce & Plants\tImagination\t\na flower with large red petals growing on the moon's surface\tProduce & Plants\tImagination\t\na grand piano next to the net of a tennis court\tOutdoor Scenes\tImagination\t\na piano tumbling down a hill\tArtifacts\tImagination\t\na drawing of a series of musical notes wrapped around the Earth\tIllustrations\tImagination\t\na tuba made of flower petals\tArtifacts\tImagination\t\na spaceship hovering over The Alamo\tWorld Knowledge\tImagination\t\na motorcycle hanging on a garage wall\tVehicles\tImagination\t\na dragon perched on top of the Great Pyramid\tWorld Knowledge\tImagination\t\na flying boat gliding past the Parthenon\tVehicles\tImagination\t\nthe Parthenon in front of the Great Pyramid\tWorld Knowledge\tImagination\t\na diplodocus standing in front of the Millennium Wheel\tWorld Knowledge\tImagination\t\na child and a penguin sitting on the moon\tPeople\tImagination\t\nSuperman shaking hands with Spiderman\tPeople\tImagination\t\na man with puppet that looks like a king\tPeople\tImagination\t\na person with arms like a tree branch\tPeople\tImagination\t\na man riding a cat\tPeople\tImagination\t\na triangle with a smiling face\tIllustrations\tImagination\t\na square with an angry face\tIllustrations\tImagination\t\na concert without any fans\tPeople\tLinguistic Structures\tNegation\na summer tree without any leaves\tProduce & Plants\tLinguistic Structures\tNegation\na classroom without any students\tPeople\tLinguistic Structures\tNegation\na bookshelf without any books on it\tArtifacts\tLinguistic Structures\tNegation\na shoe rack without any pairs of shoes on it\tArtifacts\tLinguistic Structures\tNegation\na closet without clothes\tArtifacts\tLinguistic Structures\tNegation\na plate that has no bananas on it. there is a glass without orange juice next to it.\tFood & Beverage\tLinguistic Structures\tNegation\nA bird gives an apple to a squirrel\tAnimals\tLinguistic Structures\tDitransitive verbs\nA squirrel gives an apple to a bird\tAnimals\tLinguistic Structures\tDitransitive verbs\nA dog gives an apple to a squirrel\tAnimals\tLinguistic Structures\tDitransitive verbs\nThe sculpture rolled off the shelf because it wasn't level\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe sculpture rolled off the shelf because it wasn't anchored\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe large ball crashed right through the table because it was made of styrofoam\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe large ball crashed right through the table because it was made of steel\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe trophy doesn't fit into the brown suitcase because it's too small\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe trophy doesn't fit into the brown suitcase because it's too large\tArtifacts\tLinguistic Structures\tWinograd Schema Challenge\nThe coach smiled at the player tossed the frisbee\tPeople\tLinguistic Structures\thttps://en.wikipedia.org/wiki/List_of_linguistic_example_sentences\nThe rat the cat the dog bit chased escaped.\tAnimals\tLinguistic Structures\thttps://en.wikipedia.org/wiki/List_of_linguistic_example_sentences\nTo a squirrel, a dog gives an apple.\tAnimals\tLinguistic Structures\tDitransitive verbs\nA man gives a woman a laptop and a boy a book.\tPeople\tLinguistic Structures\tDitransitive verbs\nA robot gives a wombat an orange and a lemur a banana.\tAnimals\tLinguistic Structures\tDitransitive verbs\nA man sips a latte and a woman a beer.\tFood & Beverage\tLinguistic Structures\t\nA rabbit checks its watch, and so does a gecko.\tAnimals\tLinguistic Structures\t\nA boy holds and a girl paints a piece of wood.\tPeople\tLinguistic Structures\t\nA cat that has black fur bats a red Christmas ornament that has silver sparkles.\tAnimals\tLinguistic Structures\t\nThe mouse the cat watches is jumping in the air.\tAnimals\tLinguistic Structures\t\nFour deer surrounding a moose.\tAnimals\tLinguistic Structures\t\nsupercalifragilisticexpialidocious\tAbstract\tLinguistic Structures\tMary Poppins described it as the word to use “when you have nothing to say.”\nIncomprehensibilities\tAbstract\tLinguistic Structures\t\nPneumonoultramicroscopicsilicovolcanoconiosis\tAbstract\tLinguistic Structures\tLongest word: \"a lung disease caused by inhalation of very fine silicate or quartz dust.\"\na large stone pedestal without a statue of a horse on it\tArtifacts\tLinguistic Structures\tNegation\na brown mouse laughing at a gray cat because a 16 ton weight is about to fall on its head\tAnimals\tLinguistic Structures\t\na black dog sitting between a bush and a pair of green pants standing up with nobody inside them\tAnimals\tLinguistic Structures\t\nThe horse raced past the barn fell\tAnimals\tLinguistic Structures\tGarden-path sentences\nThe old man the boat.\tPeople\tLinguistic Structures\tGarden-path sentences\nWe painted the wall with cracks.\tPeople\tLinguistic Structures\tGarden-path sentences\nThe raft floated down the river sank.\tVehicles\tLinguistic Structures\tGarden-path sentences\nMary gave the child the dog bit a Band-Aid.\tPeople\tLinguistic Structures\tGarden-path sentences\nThe man who whistles tunes pianos.\tPeople\tLinguistic Structures\tGarden-path sentences\nOne morning I chased an elephant in my pajamas\tPeople\tLinguistic Structures\tSyntactic Ambiguities\nA tourist is looking at a whale using a binocular\tPeople\tLinguistic Structures\tSyntactic Ambiguities\nThe dog chased the cat, which ran up a tree. It waited at the top.\tAnimals\tLinguistic Structures\tWinograd Schema Challenge\nThe dog chased the cat, which ran up a tree. It waited at the bottom.\tAnimals\tLinguistic Structures\tWinograd Schema Challenge\nAn aerial view of Ha Long Bay without any boats\tWorld Knowledge\tLinguistic Structures\tNegation\na bench without any cats on it\tArtifacts\tLinguistic Structures\tNegation\na laptop no letters on its keyboard\tArtifacts\tLinguistic Structures\tNegation\na subway train with no cows in it\tVehicles\tLinguistic Structures\tNegation\na kitchen without a refrigerator\tIndoor Scenes\tLinguistic Structures\tNegation\nseveral lily pads without frogs\tProduce & Plants\tLinguistic Structures\tNegation\na street without vehicles\tOutdoor Scenes\tLinguistic Structures\tNegation\na house with no windows\tOutdoor Scenes\tLinguistic Structures\tNegation\na car with no windows\tVehicles\tLinguistic Structures\tNegation\na fish without eyes\tAnimals\tLinguistic Structures\tNegation\na city intersection without cars\tOutdoor Scenes\tLinguistic Structures\tNegation\na horse without a rider\tAnimals\tLinguistic Structures\tNegation\na banana without its peel\tProduce & Plants\tLinguistic Structures\tNegation\na bat landing on a baseball bat\tAnimals\tLinguistic Structures\t\na bird landing on a bat\tAnimals\tLinguistic Structures\t\na rowboat without paddles\tVehicles\tLinguistic Structures\tNegation\na harp without any strings\tArtifacts\tLinguistic Structures\tNegation\na marina without any boats in it\tOutdoor Scenes\tLinguistic Structures\tNegation\nZoomed out view of a giraffe and a zebra in the middle of a field covered with colorful flowers\tAnimals\tPerspective\t\nThree-quarters front view of a blue 1977 Corvette coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a blue 1977 Ford F-150 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a blue 1977 Porsche 911 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a red 1997 Corvette coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a red 1997 Ford F-150 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a red 1997 Porsche 911 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a yellow 2017 Corvette coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a yellow 2017 Ford F-150 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nThree-quarters front view of a yellow 2017 Porsche 911 coming around a curve in a mountain road and looking over a green valley on a cloudy day.\tVehicles\tPerspective\t\nA photo of a frog reading the newspaper named \"Toaday\" written on it. There is a frog printed on the newspaper too.\tAnimals\tPerspective\t\nThe frog found itself in the newspaper\tAnimals\tPerspective\t\nA cat dreaming about becoming a tiger\tAnimals\tPerspective\t\nA close-up of two chameleons wearing karate uniforms and fighting, jumping over a waterfall.\tAnimals\tPerspective\t\nA close-up of two mantis wearing karate uniforms and fighting, jumping over a waterfall.\tAnimals\tPerspective\t\nA close-up of two beetles wearing karate uniforms and fighting, jumping over a waterfall.\tAnimals\tPerspective\t\nA robot with a black visor and the number 42 on its chest. It stands proudly in front of an F1 race car. The sun is setting on a cityscape in the background. wide-angle view. comic book illustration.\tIllustrations\tPerspective\t\nA smiling sloth is wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book. The sloth is standing on grass a few feet in front of a shiny VW van with flowers painted on it. wide-angle lens from below.\tWorld Knowledge\tPerspective\t\nA smiling sloth wearing a leather jacket, bowtie, kilt and cowboy hat. The sloth is holding a quarterstaff and a big book. The sloth is standing on grass a few feet in front of a rusty old VW van with flowers painted on it. wide-angle lens from below.\tWorld Knowledge\tPerspective\t\nview of a giraffe and a zebra in the middle of a field\tAnimals\tPerspective\t\nAerial view of downtown Manhattan, but with Millennium Wheel next to the Statue of Liberty. The Great Pyramid is on a sandy island near the buildings.\tWorld Knowledge\tPerspective\t\nGround view of the Great Pyramids and Sphinx on the moon's surface. The back of an astronaut is in the foreground. The planet Earth looms in the sky.\tWorld Knowledge\tPerspective\t\nSaturn rises on the horizon.\tOutdoor Scenes\tPerspective\t\nMars rises on the horizon.\tOutdoor Scenes\tPerspective\t\nJupiter rises on the horizon.\tOutdoor Scenes\tPerspective\t\na close-up of a blue dragonfly on a daffodil\tAnimals\tPerspective\t\nlong shards of a broken mirror reflecting the eyes of a great horned owl\tArtifacts\tPerspective\t\nside view of a brown horse wearing a saddle. the number 55 is stamped in white on its rear flank.\tAnimals\tPerspective\t\nthree quarters view of a rusty old red pickup truck with white doors and a smashed windshield\tVehicles\tPerspective\t\nview from below of a tall white ladder with just one rung leaning up against a yellow brick wall\tArtifacts\tPerspective\t\na photo of the back of a covered wagon. a polar bear is sticking it's head out of the wagon.\tVehicles\tPerspective\t\na close up of a handpalm with leaves growing from it\tPeople\tPerspective\tDALL-E 2\na corgi’s head\tAnimals\tPerspective\t\nAn aerial view of Ha Long Bay\tWorld Knowledge\tPerspective\t\na macro photograph of brain coral\tAnimals\tPerspective\tDALL-E\na cross-section view of a walnut\tProduce & Plants\tPerspective\tDALL-E\nan extreme close-up view of a capybara sitting in a field\tAnimals\tPerspective\tDALL-E\nan overhead view of the Empire State Building\tWorld Knowledge\tPerspective\t\na pig face\tAnimals\tPerspective\t\na close-up of a bloody mary cocktail\tFood & Beverage\tPerspective\t\na close-up of an old-fashioned cocktail\tFood & Beverage\tPerspective\t\na close-up of a long-island ice tea cocktail\tFood & Beverage\tPerspective\t\na close-up of a margarita\tFood & Beverage\tPerspective\t\nthe back of a violin\tArtifacts\tPerspective\t\nview of a clock tower from above\tArtifacts\tPerspective\t\nview of a clock tower from below\tArtifacts\tPerspective\t\nan aerial photo of a carnival at night\tOutdoor Scenes\tPerspective\t\nan aerial photo of a baseball stadium\tOutdoor Scenes\tPerspective\t\nan aerial photo of a sandy island in the ocean\tOutdoor Scenes\tPerspective\t\nan ostrich's face\tAnimals\tPerspective\t\na close-up of an ostrich's face\tAnimals\tPerspective\t\nthe eyes of an owl\tAnimals\tPerspective\t\na close-up of the eyes of an owl\tAnimals\tPerspective\t\na top down view of a horse running in a field\tAnimals\tPerspective\t\ntall buildings seen through a window with rain on it\tOutdoor Scenes\tPerspective\t\ntrees seen through a car window on a rainy day\tOutdoor Scenes\tPerspective\t\na view of the Earth from the moon\tOutdoor Scenes\tPerspective\t\nan image of the moons of the planet Jupiter\tOutdoor Scenes\tPerspective\t\nthe eye of the planet Jupiter\tOutdoor Scenes\tPerspective\t\na close-up of the eye of the planet Jupiter\tOutdoor Scenes\tPerspective\t\nan aerial view of the Great Wall\tWorld Knowledge\tPerspective\t\nview of the Great Wall from its base\tWorld Knowledge\tPerspective\t\nan overhead view of a pickup truck with boxes in its flatbed\tVehicles\tPerspective\t\na close-up of the keys of a piano\tArtifacts\tPerspective\t\nan aerial view of the Great Pyramid\tWorld Knowledge\tPerspective\t\na view of the Milllenium Wheel from the Thames\tWorld Knowledge\tPerspective\t\noverhead view of three people looking down at the street from the top of a tall building\tPeople\tPerspective\t\ntwo people facing each other\tPeople\tPerspective\t\ntwo people facing the viewer\tPeople\tPerspective\t\na three quarters view of a man getting into a car\tPeople\tPerspective\t\na stack of three red cubes with a blue sphere on the right and two green cones on the left\tIllustrations\tProperties & Positioning\t\nA photo of a Persian Metal Engraving vase sitting to the left of a bunch of orange flowers.\tWorld Knowledge\tProperties & Positioning\t\nA photo of a Japanese Porcelain Imari vase on the ground below a wooden chair.\tWorld Knowledge\tProperties & Positioning\t\na pen-and-ink crosshatched drawing of a sphere with dark square on it\tIllustrations\tProperties & Positioning\t\na metallic blue sphere to the left of a yellow box made of felt\tIllustrations\tProperties & Positioning\t\na blue wooden pyramid on top of a red plastic box\tIllustrations\tProperties & Positioning\t\nconcentric squares fading from yellow on the outside to deep orange on the inside\tIllustrations\tProperties & Positioning\t\nA green heart with shadow\tIllustrations\tProperties & Positioning\tVQ-Diffusion\na red cube on top of a blue cube\tIllustrations\tProperties & Positioning\tGLIDE\na white flag with a red circle next to a solid blue flag\tArtifacts\tProperties & Positioning\t\na red circle on top of a blue square\tIllustrations\tProperties & Positioning\t\na yellow box to the right of a blue sphere\tIllustrations\tProperties & Positioning\t\na red box to the right of a green sphere\tIllustrations\tProperties & Positioning\t\na red box next to a blue box\tIllustrations\tProperties & Positioning\t\na red sphere on top of a yellow box\tIllustrations\tProperties & Positioning\t\na large blue box with three small yellow boxes on it\tIllustrations\tProperties & Positioning\t\nseveral red lego blocks and one blue one\tArtifacts\tProperties & Positioning\t\na red block to the left of a blue pyramid\tIllustrations\tProperties & Positioning\t\nthree small yellow boxes on a large blue box\tIllustrations\tProperties & Positioning\t\na black background with a large yellow circle\tIllustrations\tProperties & Positioning\t\na white background with a large blue circle\tIllustrations\tProperties & Positioning\t\na black background with a large yellow square\tIllustrations\tProperties & Positioning\t\na white background with a large blue square\tIllustrations\tProperties & Positioning\t\na black background with a large yellow circle and a small red square\tIllustrations\tProperties & Positioning\t\na white background with a large blue circle and a small green square\tIllustrations\tProperties & Positioning\t\na large yellow triangle above a green square and red rectangle\tIllustrations\tProperties & Positioning\t\ntwo small circles to the left of a red triangle that is on a green rectangle\tIllustrations\tProperties & Positioning\t\na green pyramid in front of a blue box\tIllustrations\tProperties & Positioning\t\na large yellow sphere behind a small purple pyramid\tIllustrations\tProperties & Positioning\t\na metallic blue sphere to the left of a brown cardboard box\tIllustrations\tProperties & Positioning\t\na yellow swirl next to a blue dashed line.\tIllustrations\tProperties & Positioning\t\na red swirl above a black dashed line.\tIllustrations\tProperties & Positioning\t\na green pepper to the left of a red pepper\tFood & Beverage\tProperties & Positioning\t\na brown trash bin to the left of a blue recycling bin\tArtifacts\tProperties & Positioning\t\na circular brown trash bin in front of a brick wall\tArtifacts\tProperties & Positioning\t\nten red apples\tProduce & Plants\tQuantity\t\nFour dragons surrounding a dinosaur\tAnimals\tQuantity\t\nFour cats surrounding a dog\tAnimals\tQuantity\t\ntwo baseballs to the left of three tennis balls\tArtifacts\tQuantity\t\na group of not more than five meerkats standing with the sun setting behind them\tAnimals\tQuantity\t\na basketball game between a team of four cats and a team of three dogs\tAnimals\tQuantity\t\nthe hands of a single person holding a basketball\tPeople\tQuantity\t\nseveral people putting their hands on a basketball\tPeople\tQuantity\t\na tiny football in front of three yellow tennis balls\tArtifacts\tQuantity\t\ntwo beat-up baseballs on either side of a yellow basketball\tArtifacts\tQuantity\t\ntwo baseballs next to three tennis balls\tArtifacts\tQuantity\t\n7 dogs sitting around a poker table\tAnimals\tQuantity\tDescription of \"Dogs Playing Poker\"\n7 dogs sitting around a poker table, two of which are turning away.\tAnimals\tQuantity\tDescription of \"Dogs Playing Poker\"\n300 movie titles\tArtifacts\tQuantity\tSimple numbers but challenging\na collection of glasses\tArtifacts\tQuantity\t\ntwo chairs\tArtifacts\tQuantity\t\nthree chairs\tArtifacts\tQuantity\t\nfive chairs\tArtifacts\tQuantity\t\ntwo wooden chairs and three metal chairs\tArtifacts\tQuantity\t\nthree black cats standing next to two orange cats\tAnimals\tQuantity\t\na bunch of laptops piled on a sofa\tIndoor Scenes\tQuantity\t\nfour owls standing on a telephone wire\tAnimals\tQuantity\t\nan owl family\tAnimals\tQuantity\t\na comic about an owl family in the forest\tArtifacts\tQuantity\t\ntwo cats\tAnimals\tQuantity\t\na comic about two cats doing research\tArtifacts\tQuantity\t\nthree elephants standing on top of each other\tAnimals\tQuantity\t\ntwo red boxes\tIllustrations\tQuantity\t\ntwo violins standing up\tArtifacts\tQuantity\t\ntwo violins standing up with their bows on the ground in front of them\tArtifacts\tQuantity\t\nthree violins lying on the floor\tIndoor Scenes\tQuantity\t\nthree red lego blocks\tArtifacts\tQuantity\t\nfour teacups surounding a kettle\tArtifacts\tQuantity\t\nthree small yellow boxes\tIllustrations\tQuantity\t\nbottles\tArtifacts\tQuantity\t\ntwo frosted glass bottles\tArtifacts\tQuantity\t\nfive frosted glass bottles\tArtifacts\tQuantity\t\nthree green glass bottles\tArtifacts\tQuantity\t\nfour green glass bottles\tArtifacts\tQuantity\t\ntwo wine bottles\tArtifacts\tQuantity\t\nthree wine bottles\tArtifacts\tQuantity\t\nfour wine bottles\tArtifacts\tQuantity\t\nten wine bottles\tArtifacts\tQuantity\t\ntwo wine bottles and three beer cans\tArtifacts\tQuantity\t\na pair of matching socks with cute cats on them\tArtifacts\tQuantity\t\na pile of cash on a wooden table\tArtifacts\tQuantity\t\na pile of cash on a stone floor\tArtifacts\tQuantity\t\ntwo red balls\tArtifacts\tQuantity\t\ntwo red balls on a table\tArtifacts\tQuantity\t\nfive red balls\tArtifacts\tQuantity\t\nfive red balls on a table\tArtifacts\tQuantity\t\nthree yellow balls and two red boxes on a table\tArtifacts\tQuantity\t\nan antique chest with three drawers\tArtifacts\tQuantity\t\nten triangles and five squares on a black background\tIllustrations\tQuantity\t\na pile of toy cars\tArtifacts\tQuantity\t\na full bookshelf with three shelves\tArtifacts\tQuantity\t\na bookshelf with ten books stacked vertically\tArtifacts\tQuantity\t\nthree airplanes parked in a row at a terminal\tVehicles\tQuantity\t\nthree green peppers\tFood & Beverage\tQuantity\t\nfive green peppers to the right of two red onions\tFood & Beverage\tQuantity\t\nTimes Square with thousands of dogs running around\tWorld Knowledge\tQuantity\t\nthree pickup trucks piled on top of each other\tVehicles\tQuantity\t\na pair of brown suede shoes\tArtifacts\tQuantity\t\ntwo red flowers and three white flowers\tProduce & Plants\tQuantity\t\ntwo parallel chemtrails in blue sky\tOutdoor Scenes\tQuantity\t\ntwo chemtrails forming an X in blue sky\tOutdoor Scenes\tQuantity\t\na tennis court with three yellow cones on it\tOutdoor Scenes\tQuantity\t\na tennis court with tennis balls scattered all over it\tOutdoor Scenes\tQuantity\t\na ceiling fan with four white blades\tIndoor Scenes\tQuantity\t\na ceiling fan with five brown blades\tIndoor Scenes\tQuantity\t\ntwo pianos next to each other\tIndoor Scenes\tQuantity\t\na series of musical notes\tIllustrations\tQuantity\t\na field with ten massive modern windmills\tOutdoor Scenes\tQuantity\t\ntwo motorcycles facing each other\tVehicles\tQuantity\t\nchildren\tPeople\tQuantity\t\none child on a couch\tPeople\tQuantity\t\nthree children on a couch\tPeople\tQuantity\t\nten children on a couch\tPeople\tQuantity\t\na crowd of people watching fireworks\tPeople\tQuantity\t\na parade with cars and people waving\tPeople\tQuantity\t\na family of four posing in front of a house\tPeople\tQuantity\t\na family of four posing at the Grand Canyon\tPeople\tQuantity\t\na family of four posing at Mount Rushmore\tPeople\tQuantity\t\na family of four posing on the moon\tPeople\tQuantity\t\na family of four walking at the beach with waves covering their feet\tPeople\tQuantity\t\na jungle gym with three kids on it\tPeople\tQuantity\t\nfour people riding in a convertible car\tPeople\tQuantity\t\ntwo runners crossing the finish line together\tPeople\tQuantity\t\na four-piece band on a stage in front of a small crowd\tPeople\tQuantity\t\ntwo sets of identical twins\tPeople\tQuantity\t\nSiberian husky playing the piano.\tAnimals\tSimple Detail\t\nA van parked on grass\tVehicles\tSimple Detail\t\na smiling sloth\tAnimals\tSimple Detail\t\nA shiny VW van parked on grass.\tWorld Knowledge\tSimple Detail\t\na farm scene with cows, ducks and a tractor.\tOutdoor Scenes\tSimple Detail\t\na lavender backpack with a triceratops stuffed animal head on top\tArtifacts\tSimple Detail\t\na dolphin in an astronaut suit\tAnimals\tSimple Detail\tDALL-E 2\na teddy bear on a skateboard\tArtifacts\tSimple Detail\tDALL-E 2\nA tiger is playing football\tAnimals\tSimple Detail\tCogView\nA Google map highlighting Vietnam\tWorld Knowledge\tSimple Detail\t\nA bowl of Chicken Pho\tFood & Beverage\tSimple Detail\t\nA bowl of Beef Pho\tFood & Beverage\tSimple Detail\t\na lovestruck cup of boba\tFood & Beverage\tSimple Detail\tDALL-E\na horse in a field of flowers\tOutdoor Scenes\tSimple Detail\t\nA green heart\tIllustrations\tSimple Detail\t\nThe sunset on the beach is wonderful\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nA red bus is driving on the road\tVehicles\tSimple Detail\tVQ-Diffusion\nA picture of a very tall stop sign\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nA movie poster of mountain and sea\tArtifacts\tSimple Detail\tVQ-Diffusion\nA giraffe walking through a green grass covered field\tAnimals\tSimple Detail\tVQ-Diffusion\nA green train is coming down the tracks\tVehicles\tSimple Detail\tVQ-Diffusion\nA living area with a television and a table\tIndoor Scenes\tSimple Detail\tVQ-Diffusion\nA red hydrant on the grass\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nSunset over the sea\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nA small house in the wilderness\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nSunset over the skyline of a city\tOutdoor Scenes\tSimple Detail\tVQ-Diffusion\nA heart made of chocolate\tIllustrations\tSimple Detail\tVQ-Diffusion\nA heart made of water\tIllustrations\tSimple Detail\tVQ-Diffusion\nA heart made of wood\tIllustrations\tSimple Detail\tVQ-Diffusion\nA heart made of cookie\tIllustrations\tSimple Detail\tVQ-Diffusion\na white country home\tOutdoor Scenes\tSimple Detail\t\nrobots meditating\tArtifacts\tSimple Detail\t\na robot kicking a soccer ball\tArtifacts\tSimple Detail\t\na cat looking out of a window\tAnimals\tSimple Detail\t\na cat coming through a cat door\tAnimals\tSimple Detail\t\na cat jumping in the air\tAnimals\tSimple Detail\t\na cat jumping in the air to catch a bird\tAnimals\tSimple Detail\t\na cat jumping in the air to get onto a table\tAnimals\tSimple Detail\t\na sunset behind the grand canyon\tWorld Knowledge\tSimple Detail\tGLIDE\na boat in the canals of venice\tWorld Knowledge\tSimple Detail\tGLIDE\na large white yacht\tVehicles\tSimple Detail\t\na panda eating bamboo\tAnimals\tSimple Detail\tGLIDE\na fog rolling into new york\tWorld Knowledge\tSimple Detail\tGLIDE\na green clock\tArtifacts\tSimple Detail\t\na photo of a phone from the 20s\tArtifacts\tSimple Detail\tDALL-E\na photo of the food of china\tFood & Beverage\tSimple Detail\tDALL-E\na baby daikon radish\tProduce & Plants\tSimple Detail\tDALL-E\na very fancy French restaurant\tIndoor Scenes\tSimple Detail\t\na tiger standing by some flowers\tAnimals\tSimple Detail\t\na bench next to a flower pot\tArtifacts\tSimple Detail\t\na bird standing on a stick\tAnimals\tSimple Detail\t\na blue sports car on the road\tVehicles\tSimple Detail\t\na red sports car on the road\tVehicles\tSimple Detail\t\na soccer ball flying over a car\tOutdoor Scenes\tSimple Detail\t\nthe finale of a fireworks display\tOutdoor Scenes\tSimple Detail\t\nbeautiful fireworks in the sky\tOutdoor Scenes\tSimple Detail\t\na subway train\tVehicles\tSimple Detail\t\na subway train coming out of a tunnel\tVehicles\tSimple Detail\t\norange jello\tFood & Beverage\tSimple Detail\t\na yellow t-shirt\tArtifacts\tSimple Detail\t\na blue t-shirt\tArtifacts\tSimple Detail\t\na flag furling in the wind\tArtifacts\tSimple Detail\t\na white towel\tArtifacts\tSimple Detail\t\na white towel with a cat on it\tArtifacts\tSimple Detail\t\na black towel\tArtifacts\tSimple Detail\t\na black towel with a dog on it\tArtifacts\tSimple Detail\t\na yellow wall\tArtifacts\tSimple Detail\t\na friendly car in the city\tVehicles\tSimple Detail\t\nan owl family in the forest\tAnimals\tSimple Detail\t\na kangaroo jumping through the park\tAnimals\tSimple Detail\t\na street in Paris\tWorld Knowledge\tSimple Detail\t\na canal in Venice\tWorld Knowledge\tSimple Detail\t\na small house\tOutdoor Scenes\tSimple Detail\t\na small house on a mountain top\tOutdoor Scenes\tSimple Detail\t\nthe grand canyon on a cloudy day\tWorld Knowledge\tSimple Detail\t\na house on a mountain\tOutdoor Scenes\tSimple Detail\t\na photograph of a house on a mountain\tOutdoor Scenes\tSimple Detail\t\na peaceful lakeside landscape\tOutdoor Scenes\tSimple Detail\t\na cat reading a book\tAnimals\tSimple Detail\t\na cat reading a newspaper\tAnimals\tSimple Detail\t\na cat reading a comic book\tAnimals\tSimple Detail\t\na horse reading a book\tAnimals\tSimple Detail\t\na horse reading a newspaper\tAnimals\tSimple Detail\t\na horse reading a comic book\tAnimals\tSimple Detail\t\na cat jumping down from a wall\tAnimals\tSimple Detail\t\na pumpkin with a candle in it\tProduce & Plants\tSimple Detail\t\na sword in a stone\tArtifacts\tSimple Detail\t\nan Egyptian statue\tWorld Knowledge\tSimple Detail\t\nan Egyptian statue in the desert\tWorld Knowledge\tSimple Detail\t\na massive statue in a temple\tArtifacts\tSimple Detail\t\na circular logo on a coffee mug\tIllustrations\tSimple Detail\t\na pig in a field\tAnimals\tSimple Detail\t\na horse in a field\tAnimals\tSimple Detail\t\na squirrel in a field\tAnimals\tSimple Detail\t\na tiger in a field\tAnimals\tSimple Detail\t\na pig in a forest\tAnimals\tSimple Detail\t\na horse in a forest\tAnimals\tSimple Detail\t\na squirrel in a forest\tAnimals\tSimple Detail\t\na tiger in a forest\tAnimals\tSimple Detail\t\na hammer on a table\tArtifacts\tSimple Detail\t\na screwdriver on a table\tArtifacts\tSimple Detail\t\na handsaw on a table\tArtifacts\tSimple Detail\t\na power drill on a table\tArtifacts\tSimple Detail\t\na bloody mary cocktail\tFood & Beverage\tSimple Detail\t\nan old-fashioned cocktail\tFood & Beverage\tSimple Detail\t\na long-island ice tea cocktail\tFood & Beverage\tSimple Detail\t\na tree surrounded by flowers\tProduce & Plants\tSimple Detail\t\na street with several cars on it\tOutdoor Scenes\tSimple Detail\t\nan avocado on a table\tProduce & Plants\tSimple Detail\t\na kitchen with a large refrigerator\tIndoor Scenes\tSimple Detail\t\nweeds in the cracks of a sidewalk\tArtifacts\tSimple Detail\t\na wood treehouse in an oak tree\tArtifacts\tSimple Detail\t\na metal treehouse in an oak tree\tArtifacts\tSimple Detail\t\na violin next to an apple\tArtifacts\tSimple Detail\t\na room with two chairs and a painting\tIndoor Scenes\tSimple Detail\t\na canal in Amsterdam\tWorld Knowledge\tSimple Detail\t\nred apples on a tree with green leaves\tProduce & Plants\tSimple Detail\t\na stop sign\tArtifacts\tSimple Detail\t\na yield sign\tArtifacts\tSimple Detail\t\na mountain with a cloud hanging over it\tOutdoor Scenes\tSimple Detail\t\na bottle of red wine\tFood & Beverage\tSimple Detail\t\nwine bottles\tFood & Beverage\tSimple Detail\t\nthe cover of a book about gardening\tIllustrations\tSimple Detail\t\na milk container on a table\tArtifacts\tSimple Detail\t\na milk container in a refrigerator\tArtifacts\tSimple Detail\t\na marine iguana crossing the street\tAnimals\tSimple Detail\t\ncash on a stone floor\tArtifacts\tSimple Detail\t\na half-peeled banana\tProduce & Plants\tSimple Detail\t\na black baseball hat\tArtifacts\tSimple Detail\t\nblack hi-top sneakers\tArtifacts\tSimple Detail\t\na roast turkey on the table\tFood & Beverage\tSimple Detail\t\na plate with white rice topped by cooked vegetables\tFood & Beverage\tSimple Detail\t\nslices of avocado on a piece of toast\tFood & Beverage\tSimple Detail\t\nslices of mango on a piece of toast\tFood & Beverage\tSimple Detail\t\na bamboo ladder\tArtifacts\tSimple Detail\t\na cat jumps over a baby gate\tAnimals\tSimple Detail\t\nan ostrich standing on a couch\tAnimals\tSimple Detail\t\na taxi driving in the countryside\tVehicles\tSimple Detail\t\na two lane road with a bright yellow line \tOutdoor Scenes\tSimple Detail\t\na road ruined by an earthquake\tOutdoor Scenes\tSimple Detail\t\na volcano erupting near a small town\tOutdoor Scenes\tSimple Detail\t\na volcano with lava pouring down its slopes\tOutdoor Scenes\tSimple Detail\t\na horse running in a field\tAnimals\tSimple Detail\t\na robot cooking\tArtifacts\tSimple Detail\t\na robot cooking in the kitchen\tIndoor Scenes\tSimple Detail\t\na compass next to a piece of fruit\tArtifacts\tSimple Detail\t\nthe silhouette of an elephant\tAnimals\tSimple Detail\t\na tree growing through a fence\tProduce & Plants\tSimple Detail\t\na butterfly kite stuck high in a tree\tProduce & Plants\tSimple Detail\t\na unicorn with a multicolored mane\tAnimals\tSimple Detail\t\na crown with a ruby in its center\tArtifacts\tSimple Detail\t\nan ornate jewel-encrusted key\tArtifacts\tSimple Detail\t\na goat wearing headphones\tAnimals\tSimple Detail\t\na small tree covered in white blossoms\tProduce & Plants\tSimple Detail\t\nan antique chest\tArtifacts\tSimple Detail\t\na coffee table with a magazine on it\tIndoor Scenes\tSimple Detail\t\na yellow wall with two framed sketches\tIndoor Scenes\tSimple Detail\t\na squirrell driving a toy car\tAnimals\tSimple Detail\t\na penguin standing on a sidewalk\tAnimals\tSimple Detail\t\na basketball hoop with a large blue ball stuck in it\tOutdoor Scenes\tSimple Detail\t\na racoon holding a shiny red apple over its head\tAnimals\tSimple Detail\t\na pair of glasses under a computer monitor\tArtifacts\tSimple Detail\t\na throw rug on a stone floor\tArtifacts\tSimple Detail\t\na beach with apartment buildings next to it\tOutdoor Scenes\tSimple Detail\t\na moose standing over a fox\tAnimals\tSimple Detail\t\na massive statue of Hanuman\tWorld Knowledge\tSimple Detail\t\na black t-shirt\tArtifacts\tSimple Detail\t\na small airplane\tVehicles\tSimple Detail\t\nan airplane taking off of a runway\tVehicles\tSimple Detail\t\na monarch butterfly\tAnimals\tSimple Detail\t\na lizard that just lost its tail\tAnimals\tSimple Detail\t\na golden doorknocker on a red door\tArtifacts\tSimple Detail\t\na pitcher of orange juice\tFood & Beverage\tSimple Detail\t\na glass of orange juice\tFood & Beverage\tSimple Detail\t\na green pepper cut in half on a plate\tFood & Beverage\tSimple Detail\t\na green pepper sliced into many pieces\tFood & Beverage\tSimple Detail\t\na full pint of IPA\tFood & Beverage\tSimple Detail\t\na half-full pitcher of stout\tFood & Beverage\tSimple Detail\t\nTimes Square during the day\tWorld Knowledge\tSimple Detail\t\nTimes Square at night\tWorld Knowledge\tSimple Detail\t\nthe Kremlin at night\tWorld Knowledge\tSimple Detail\t\na hot air balloon floating by the Kremlin\tWorld Knowledge\tSimple Detail\t\na black shoe with a lightning bolt on it\tArtifacts\tSimple Detail\t\na plant with small flowers with purple petals\tProduce & Plants\tSimple Detail\t\na plant with orange flowers shaped like stars\tProduce & Plants\tSimple Detail\t\na flower with large yellow petals\tProduce & Plants\tSimple Detail\t\na yellow diamond-shaped sign\tArtifacts\tSimple Detail\t\nan elephant in a tennis court\tAnimals\tSimple Detail\t\na silver fire hydrant next to a sidewalk\tArtifacts\tSimple Detail\t\na yellow fire hydrant in grass\tArtifacts\tSimple Detail\t\na red fire hydrant by a brick wall\tArtifacts\tSimple Detail\t\na rusty fire hydrant surrounded by dirt\tArtifacts\tSimple Detail\t\na fire hydrant with graffiti on it\tArtifacts\tSimple Detail\t\na snake curled around a wooden post\tAnimals\tSimple Detail\t\na grand piano with a white bench\tIndoor Scenes\tSimple Detail\t\na piano with Christmas lights all over it\tIndoor Scenes\tSimple Detail\t\na piano with an open song book above the keys \tIndoor Scenes\tSimple Detail\t\nan ornate gold harp\tArtifacts\tSimple Detail\t\na massive modern windmill\tOutdoor Scenes\tSimple Detail\t\na red sport bike\tVehicles\tSimple Detail\t\na painting of black and white vertical stripes\tIllustrations\tSimple Detail\t\na painting of black and white checkerboard\tIllustrations\tSimple Detail\t\na painting of black and white with a red border\tIllustrations\tSimple Detail\t\na team playing baseball\tPeople\tSimple Detail\t\nchildren on a couch\tPeople\tSimple Detail\t\na woman with long hair\tPeople\tSimple Detail\t\na man standing under a tree\tPeople\tSimple Detail\t\na smiling man\tPeople\tSimple Detail\t\nan elderly woman\tPeople\tSimple Detail\t\nan old man\tPeople\tSimple Detail\t\na man with puppet\tPeople\tSimple Detail\t\na boy going to school\tPeople\tSimple Detail\t\na girl going to a farm\tPeople\tSimple Detail\t\na family on a road trip\tPeople\tSimple Detail\t\na father and a son playing tennis\tPeople\tSimple Detail\t\na man heading a soccer ball\tPeople\tSimple Detail\t\na sad man with green hair\tPeople\tSimple Detail\t\na woman with sunglasses and red hair\tPeople\tSimple Detail\t\na man looking at a distant mountain\tPeople\tSimple Detail\t\na woman looking at a house\tPeople\tSimple Detail\t\na man riding a horse\tPeople\tSimple Detail\t\na man chasing a cat\tPeople\tSimple Detail\t\na man chasing a horse\tPeople\tSimple Detail\t\na pumpkin on a man's head\tPeople\tSimple Detail\t\nan angry man\tPeople\tSimple Detail\t\na frustrated child\tPeople\tSimple Detail\t\na laughing woman\tPeople\tSimple Detail\t\na woman running on a trail\tPeople\tSimple Detail\t\na boy jumping off a wall\tPeople\tSimple Detail\t\na girl diving into a pool\tPeople\tSimple Detail\t\na man banging on a door\tPeople\tSimple Detail\t\na comic book supervillian\tArtifacts\tSimple Detail\t\nDowntown Istanbul at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Seattle at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Beijing at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Rio de Janeiro at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown LA at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Sydney at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Sanfrancisco at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Singapore at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown NYC at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Austin at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Shanghai at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nDowntown Saigon at sunrise. detailed ink wash.\tWorld Knowledge\tStyle & Format\t\nA section of the Great Wall in the mountains. detailed charcoal sketch.\tWorld Knowledge\tStyle & Format\t\nThe Great Hypostyle Hall of Karnak. detailed charcoal sketch.\tWorld Knowledge\tStyle & Format\t\nA Mesoamerican pyramid surrounded by jungle. detailed charcoal sketch.\tWorld Knowledge\tStyle & Format\t\nTaj Mahal with its reflection. detailed charcoal sketch.\tWorld Knowledge\tStyle & Format\t\nA spaceship made of cardboard.\tArtifacts\tStyle & Format\t\nA old phonograph made of cardboard.\tArtifacts\tStyle & Format\t\nA castle made of cardboard.\tArtifacts\tStyle & Format\t\nA photo of a dragonfly made of water.\tAnimals\tStyle & Format\t\nA photo of a panda made of water.\tAnimals\tStyle & Format\t\nA photo of a teddy bear made of water.\tAnimals\tStyle & Format\t\nA photo of a crocodile made of water.\tAnimals\tStyle & Format\t\nA photo of a lotus flower made of water. \tProduce & Plants\tStyle & Format\t\nA photo of a maple leaf made of water. \tProduce & Plants\tStyle & Format\t\nA photo of a palm tree made of water. \tProduce & Plants\tStyle & Format\t\nA photo of a four-leaf clover made of water. \tProduce & Plants\tStyle & Format\t\nan abstract oil painting in deep red and black with a thick patches of white\tArts\tStyle & Format\t\nlight and happiness throughout and finding its way to every corner of the world, abstract oil painting\tArts\tStyle & Format\t\ntrying to find my way in a big confusing world, abstract oil painting\tArts\tStyle & Format\t\nthe door of knowing, a portal brightly opening the way through darkness. abstract anime landscape oil painting.\tArts\tStyle & Format\t\nA soft beam of light shines down on an armored granite wombat warrior statue holding a broad sword. The statue stands an ornate pedestal in the cella of a temple. wide-angle lens. anime oil painting.\tAnimals\tStyle & Format\t\nOil painting generated by artificial intelligence\tAbstract\tStyle & Format\t\nA heavy metal tiger standing on a rooftop while singing and jamming on an electric guitar under a spotlight. anime illustration.\tAnimals\tStyle & Format\t\nA funny Rube Goldberg machine made out of metal\tWorld Knowledge\tStyle & Format\t\nA funny Rube Goldberg machine made out of paper\tWorld Knowledge\tStyle & Format\t\nA funny Rube Goldberg machine made out of wood\tWorld Knowledge\tStyle & Format\t\nOil painting of a giant robot made of sushi, holding chopsticks.\tArtifacts\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Charcoal.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Child's crayon drawing.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Chinese ink.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Comic.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Marble statue.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Oil on canvas.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Photograph.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Watercolor.\tAnimals\tStyle & Format\t\nPortrait of a gecko wearing a train conductor’s hat and holding a flag that has a yin-yang symbol on it. Woodcut.\tAnimals\tStyle & Format\t\nA rusty spaceship blasts off in the foreground. A city with tall skyscrapers is in the distance, with a mountain and ocean in the background. A dark moon is in the sky. realistic high-contrast anime illustration.\tVehicles\tStyle & Format\t\nA photo of an Athenian vase with a painting of pandas playing basketball in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of pandas playing soccer in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of pandas playing tennis in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of pangolins playing basketball in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of pangolins playing soccer in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of pangolins playing tennis in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of toucans playing basketball in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of toucans playing soccer in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA photo of an Athenian vase with a painting of toucans playing tennis in the style of Egyptian hieroglyphics\tWorld Knowledge\tStyle & Format\t\nA shiny VW van in front of a cityscape. A smiling sloth stands on grass in front of the van and is wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book. High-contrast oil painting.\tWorld Knowledge\tStyle & Format\t\nA shiny VW van that has flowers painted on it. A smiling sloth stands on grass in front of the van and is wearing a leather jacket, a cowboy hat, a kilt and a bowtie. The sloth is holding a quarterstaff and a big book. ink sketch.\tWorld Knowledge\tStyle & Format\t\nWood engraving of the Greek letter Omega\tWorld Knowledge\tStyle & Format\t\na satellite image of a costal french city there is a large park on the west side and a mountain to the north. There is a cloud covering part of the image\tIllustrations\tStyle & Format\t\nA gundam stands tall with its sword raised. A city with tall skyscrapers is in the distance, with a mountain and ocean in the background. A dark moon is in the sky. realistic high-contrast anime illustration.\tWorld Knowledge\tStyle & Format\t\nHokusai's version of Animal Farm\tArts\tStyle & Format\t\nA photograph in a temple of a wall painting depicting pandas playing tennis, in the style of Egyptian tomb hieroglyphics\tWorld Knowledge\tStyle & Format\t\nan old raccoon wearing a top hat and holding an apple, oil painting in the style of van gogh\tArts\tStyle & Format\t\nportrait of a well-dressed raccoon, oil painting in the style of Rembrandt\tArts\tStyle & Format\t\nclose-up portrait of a smiling businesswoman holding a cell phone, oil painting in the style of Rembrandt\tPeople\tStyle & Format\t\na portrait of a man wearing sunglasses and a business suit, painting in pop art style\tPeople\tStyle & Format\t\na sport car melting into a clock, surrealist painting in the style of Salvador Dali\tArts\tStyle & Format\t\na stained glass window depicting a calm tyrannosaurus rex\tIllustrations\tStyle & Format\t\na tennis match in the style of Egyptian hieroglyphic tomb paintings\tWorld Knowledge\tStyle & Format\t\nvibrant portrait painting of Salvador Dalí with a robotic half face\tPeople\tStyle & Format\tDALL-E 2\nan espresso machine that makes coffee from human souls, high-contrast painting\tArtifacts\tStyle & Format\tDALL-E 2\npanda mad scientist mixing sparkling chemicals, high-contrast painting\tAnimals\tStyle & Format\tDALL-E 2\na dolphin in an astronaut suit on saturn, high-contrast painting\tAnimals\tStyle & Format\tDALL-E 2\nThe Oriental Pearl in sketch style\tWorld Knowledge\tStyle & Format\tCogView\nThe Oriental Pearl in Chinese painting\tWorld Knowledge\tStyle & Format\tCogView\nThe Oriental Pearl in oil painting\tWorld Knowledge\tStyle & Format\tCogView\na capybara made of voxels sitting in a field\tAnimals\tStyle & Format\tDALL-E\nan emoji of a baby penguin wearing a blue hat, red gloves, green shirt, and yellow pants\tIllustrations\tStyle & Format\tDALL-E\na professional high quality emoji of a lovestruck cup of boba\tIllustrations\tStyle & Format\tDALL-E\na dutch baroque painting of a horse in a field of flowers\tArts\tStyle & Format\t\nIcon of a red heart\tIllustrations\tStyle & Format\tVQ-Diffusion\nA cartoon house with red roof\tIllustrations\tStyle & Format\tVQ-Diffusion\nA cartoon tiger face\tAnimals\tStyle & Format\tVQ-Diffusion\nFace of an orange frog in cartoon style\tAnimals\tStyle & Format\tVQ-Diffusion\nA vector illustration of a tree\tIllustrations\tStyle & Format\tVQ-Diffusion\nan abstract painting of the Empire State Building\tWorld Knowledge\tStyle & Format\t\nan abstract painting of the Sydney Opera House\tWorld Knowledge\tStyle & Format\t\na painting of a white country home with a wrap-around porch\tOutdoor Scenes\tStyle & Format\t\nan oil painting of a cat playing checkers\tArts\tStyle & Format\t\na surrealist dream-like oil painting by salvador dalí of a cat playing checkers\tArts\tStyle & Format\tGLIDE\nan oil painting of a hamster dragon\tArts\tStyle & Format\tGLIDE\na high-quality oil painting of a psychedelic hamster dragon\tArts\tStyle & Format\tGLIDE\na painting of a fox in the style of starry night\tArts\tStyle & Format\tGLIDE\na stained glass window of a panda eating bamboo\tArtifacts\tStyle & Format\tGLIDE\na crayon drawing of a space elevator\tVehicles\tStyle & Format\tGLIDE\na futuristic city in synthwave style\tOutdoor Scenes\tStyle & Format\tGLIDE\na pixel art corgi pizza\tIllustrations\tStyle & Format\tGLIDE\na green clock in the shape of a pentagon\tArtifacts\tStyle & Format\tDALL-E\na painting of a phone from the 20s\tArtifacts\tStyle & Format\tDALL-E\na painting of the food of china\tFood & Beverage\tStyle & Format\tDALL-E\na photograph of a bust of homer\tPeople\tStyle & Format\tDALL-E\na drawing of a bust of homer\tPeople\tStyle & Format\tDALL-E\nan armchair in the shape of an avocado\tArtifacts\tStyle & Format\tDALL-E\na painting of the skyline of New York City\tWorld Knowledge\tStyle & Format\t\na drawing of the skyline of New York City\tWorld Knowledge\tStyle & Format\t\na cartoon of a train going to the moon\tVehicles\tStyle & Format\t\na cartoon of a cow jumping over the moon\tAnimals\tStyle & Format\t\norange jello in the shape of a man\tFood & Beverage\tStyle & Format\t\na comic about a friendly car in the city\tArtifacts\tStyle & Format\t\na painting of street in Paris\tWorld Knowledge\tStyle & Format\t\na painting of a canal in Venice\tWorld Knowledge\tStyle & Format\t\nan abstract painting with blue, red and black\tArts\tStyle & Format\t\nan abstract painting of a waterfall\tArts\tStyle & Format\t\nan abstract painting of a spaceship\tArts\tStyle & Format\t\nan abstract painting of a pond with a bridge\tArts\tStyle & Format\t\na cartoon of an angry shark\tAnimals\tStyle & Format\t\na cartoon of a happy car on the road\tVehicles\tStyle & Format\t\na cartoon of a bear birthday party\tAnimals\tStyle & Format\t\na drawing of a house on a mountain\tArts\tStyle & Format\t\na cartoon of a house on a mountain\tIllustrations\tStyle & Format\t\na painting of a house on a mountain\tArts\tStyle & Format\t\nan abstract painting of a house on a mountain\tArts\tStyle & Format\t\na painting of a peaceful lakeside landscape\tArts\tStyle & Format\t\na drawing of a peaceful lakeside landscape\tArts\tStyle & Format\t\na map of Australia\tWorld Knowledge\tStyle & Format\t\na map of Italy\tWorld Knowledge\tStyle & Format\t\na map of South America\tWorld Knowledge\tStyle & Format\t\na map of Texas\tWorld Knowledge\tStyle & Format\t\na map of Manhattan\tWorld Knowledge\tStyle & Format\t\nan impressionistic painting of tree and a building\tArts\tStyle & Format\t\nan abstract painting of a tree and a building\tArts\tStyle & Format\t\na watercolor painting of a tree and a building\tArts\tStyle & Format\t\nan oil painting of a tree and a building\tArts\tStyle & Format\t\nan abstract painting of three triangles in blue, red and white\tArts\tStyle & Format\t\nan abstract painting of three triangles in blue, yellow and red\tArts\tStyle & Format\t\nan abstract painting of three squares in blue, red and white\tArts\tStyle & Format\t\nan abstract painting of three squares in blue, yellow and red\tArts\tStyle & Format\t\na painting of a cute owl on a box\tArts\tStyle & Format\t\na horse in a field in Minecraft style\tAnimals\tStyle & Format\t\na drawing of a pig face with an eye patch\tIllustrations\tStyle & Format\t\na drawing of a hammer\tIllustrations\tStyle & Format\t\na drawing of a screwdriver\tIllustrations\tStyle & Format\t\na drawing of a handsaw\tIllustrations\tStyle & Format\t\na drawing of a power drill\tIllustrations\tStyle & Format\t\na cloud in the shape of a teacup\tOutdoor Scenes\tStyle & Format\t\na cloud in the shape of a elephant\tOutdoor Scenes\tStyle & Format\t\na cloud in the shape of a castle\tOutdoor Scenes\tStyle & Format\t\na footprint shaped like a peanut\tArtifacts\tStyle & Format\t\na drawing of a stork playing a violin\tIllustrations\tStyle & Format\t\nThe Statue of Liberty in Minecraft\tWorld Knowledge\tStyle & Format\t\nAn oil painting of the Statue of Liberty\tWorld Knowledge\tStyle & Format\t\nAn abstract painting of the Statue of Liberty\tWorld Knowledge\tStyle & Format\t\na diagram of brain function\tIllustrations\tStyle & Format\t\na diagram of the human digestive system\tIllustrations\tStyle & Format\t\na diagram of a suburban house\tIllustrations\tStyle & Format\t\na stop sign with a blue background\tArtifacts\tStyle & Format\t\na painting of a sport car in the style of Monet\tArts\tStyle & Format\t\na painting of a sport car in the style of Dali\tArts\tStyle & Format\t\na drawing of a space shuttle in the style of da Vinci\tArts\tStyle & Format\t\na coloring book page of a horse next to a stream\tArtifacts\tStyle & Format\t\na sketch of a horse\tIllustrations\tStyle & Format\t\na sketch of a skyscraper\tIllustrations\tStyle & Format\t\na sketch of a train\tIllustrations\tStyle & Format\t\na sketch of a camel next to a stream\tIllustrations\tStyle & Format\t\na diagram of the star constellations\tIllustrations\tStyle & Format\t\na thumbnail image of an ice cream cone\tIllustrations\tStyle & Format\t\na thumbnail image of a horse and cart\tIllustrations\tStyle & Format\t\nbackground pattern with alternating roses and skulls\tIllustrations\tStyle & Format\t\ngraffiti of a funny dog on a street wall\tIllustrations\tStyle & Format\t\ngraffiti of a rocket ship on a brick wall\tIllustrations\tStyle & Format\t\na watercolor painting of a snowy owl standing in a grassy field\tArts\tStyle & Format\t\na cute illustration of a horned owl with a graduation cap and diploma\tIllustrations\tStyle & Format\t\na cardboard spaceship\tVehicles\tStyle & Format\t\nthe flag of the United Kingdom painted in rusty corrugated iron\tWorld Knowledge\tStyle & Format\t\na diagram of the solar system\tIllustrations\tStyle & Format\t\na drawing of a pint of beer on a brick wall\tIllustrations\tStyle & Format\t\nan abstract painting of the lights at Times Square\tWorld Knowledge\tStyle & Format\t\nan abstract drawing of the Great Wall\tWorld Knowledge\tStyle & Format\t\na diagram of the Great Wall\tWorld Knowledge\tStyle & Format\t\na map showing the Great Wall\tWorld Knowledge\tStyle & Format\t\na still life painting of a pair of shoes\tArtifacts\tStyle & Format\t\nan impressionist painting of the geyser Old Faithful\tWorld Knowledge\tStyle & Format\t\na diagram of how the geyser Old Faithful works\tWorld Knowledge\tStyle & Format\t\nan abstract painting of the Great Pyramid\tWorld Knowledge\tStyle & Format\t\na diagram of the inside of the Great Pyramid\tWorld Knowledge\tStyle & Format\t\nthe silhouette of the Milllenium Wheel at dusk\tWorld Knowledge\tStyle & Format\t\na painting of ten children on a couch\tPeople\tStyle & Format\t\na painting of a man standing on a street corner\tPeople\tStyle & Format\t\na painting of a man standing under a tree\tPeople\tStyle & Format\t\na drawing of a man standing under a tree\tPeople\tStyle & Format\t\na cartoon of a man standing under a tree\tPeople\tStyle & Format\t\na comic about a boy going to school\tPeople\tStyle & Format\t\na comic about a girl going to a farm\tPeople\tStyle & Format\t\na comic about a boy and a tiger\tPeople\tStyle & Format\t\na comic about a family on a road trip\tPeople\tStyle & Format\t\na comic about a father and a son playing tennis\tPeople\tStyle & Format\t\na cartoon of a boy playing with a tiger\tPeople\tStyle & Format\t\nthe mona lisa\tPeople\tStyle & Format\t\na painting of the Mona Lisa with a frown\tPeople\tStyle & Format\t\na painting of the Mona Lisa with New York City behind her\tPeople\tStyle & Format\t\nthe Mona Lisa in the style of Minecraft\tPeople\tStyle & Format\t\na thumbnail image of a person skiing\tPeople\tStyle & Format\t\na thumbnail image of a gingerbread man\tIllustrations\tStyle & Format\t\nthe cover of The Beatle's album Revolver\tWorld Knowledge\tStyle & Format\t\nthe saying \"BE EXCELLENT TO EACH OTHER\" on a rough wall with a graffiti image of a green alien wearing a tuxedo.\tOutdoor Scenes\tWriting & Symbols\t\nA green sign that says \"Very Deep Learning\" and is at the edge of the Grand Canyon.\tWorld Knowledge\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. charcoal sketch\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. child's crayon drawing\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. Chinese ink and wash painting\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. color ink-and-wash drawing\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. comic book illustration\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. marble statue\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. oil painting\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. photograph\tAnimals\tWriting & Symbols\t\nPortrait of a tiger wearing a train conductor's hat and holding a skateboard that has a yin-yang symbol on it. woodcut\tAnimals\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of a map of United States. The other has latte art of a map of Africa.\tWorld Knowledge\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of a lovely princess. The other has latte art of a frog.\tFood & Beverage\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of a heart. The other has latte art of stars.\tFood & Beverage\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of the Eiffel tower. The other has latte art of the Statue of Liberty.\tFood & Beverage\tWriting & Symbols\t\nA sign that says Deep Learning\tArtifacts\tWriting & Symbols\t\nA bar of chocolate without a wrapper that has the word \"WRAPPER\" printed on it.\tArtifacts\tWriting & Symbols\t\nA glass of red wine tipped over on a couch, with a stain that writes \"OOPS\" on the couch.\tIndoor Scenes\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of yin yang symbol. The other has latte art of a heart.\tFood & Beverage\tWriting & Symbols\t\n\"G I G G L E\" painted in thick colorful lettering as graffiti on a faded red brick wall with a splotch of exploding white paint.\tIllustrations\tWriting & Symbols\t\nhigh-contrast image of the word \"WOMBAT\" written with thick colored graffiti letters on a white wall with dramatic splashes of paint\tIllustrations\tWriting & Symbols\t\nA plush monkey fording the Charles River on a log while wearing a Boston Red Sox hat with MIT in the background.\tWorld Knowledge\tWriting & Symbols\t\nthe letters P A X forming a very simple outline of an elephant's shape.  the elephant is facing left. vector art, orange logo.\tIllustrations\tWriting & Symbols\t\nA burger patty, with the bottom bun and lettuce and tomatoes. \"COFFEE\" written on it in mustard\tFood & Beverage\tWriting & Symbols\t\nTwo cups of coffee, one with latte art of the words \"LOVE\" written in one. The other has latte art of the words \"PEACE\" written in the other.\tArtifacts\tWriting & Symbols\t\nThe saying \"BE EXCELLENT TO EACH OTHER\" written in a stained glass window.\tIllustrations\tWriting & Symbols\t\nThe saying \"BE EXCELLENT TO EACH OTHER\" written in faded paint on the hull of an old wooden boat and reflected in the water. Wide-angle lens.\tIllustrations\tWriting & Symbols\t\nThe saying \"BE EXCELLENT TO EACH OTHER\" written on a red brick wall with a graffiti image of a green alien wearing a tuxedo. A yellow fire hydrant is on a sidewalk in the foreground.\tIllustrations\tWriting & Symbols\t\nThe saying \"BE EXCELLENT TO EACH OTHER\" written with carved letters on driftwood.\tIllustrations\tWriting & Symbols\t\na hot air balloon with chameleon logo. the sun is shining and puffy white clouds are in the background.\tVehicles\tWriting & Symbols\t\nA portrait photo of a kangaroo wearing an orange hoodie and blue sunglasses standing on the grassin front of the Sydney Opera House holding a sign on the chest that says Welcome Friends!\tWorld Knowledge\tWriting & Symbols\t\nAnime illustration of a kangaroo holding a sign that says \"Starry Night\", in front of the Sydney Opera House sitting next to the Eiffel Tower under a blue night sky of roiling energy, exploding yellow stars, and radiating swirls of blu\tWorld Knowledge\tWriting & Symbols\t\na group of cats in a meeting. there is a whiteboard with \"stack more layers\" written on it.\tIndoor Scenes\tWriting & Symbols\t\nA high contrast portrait photo of a fluffy hamster wearing an orange beanie and sunglasses holding a sign that says \"Let's PAINT!\"\tAnimals\tWriting & Symbols\t\na cartoon of a dog saying \"I see what you did there\"\tAnimals\tWriting & Symbols\t\na robot holding a sign with \"Let's PAINT!\" written on it\tArtifacts\tWriting & Symbols\t\na dog wearing a baseball cap backwards and writing BONEZ on a chalkboard\tAnimals\tWriting & Symbols\t\ngraffiti spelling BE KIND on white subway tile\tIllustrations\tWriting & Symbols\t\na grumpy porcupine handing a check for $10,000 to a smiling peacock\tAnimals\tWriting & Symbols\t\na boat with 'BLUE GROOVE' written on its hull\tVehicles\tWriting & Symbols\t\na store front that has the word ‘openai’ written on it.\tOutdoor Scenes\tWriting & Symbols\tDALL-E\na laptop with a maze sticker on it\tArtifacts\tWriting & Symbols\t\na yellow t-shirt with a dog on it\tArtifacts\tWriting & Symbols\t\na blue t-shirt with a dinosaur on it\tArtifacts\tWriting & Symbols\t\na bowl with a dinosaur on it\tArtifacts\tWriting & Symbols\t\na bowl with a cartoon dinosaur on it\tArtifacts\tWriting & Symbols\t\na flag with a dinosaur on it\tIllustrations\tWriting & Symbols\t\na flag with a drawing of a dinosaur on it\tArtifacts\tWriting & Symbols\t\na flag with three vertical stripes\tIllustrations\tWriting & Symbols\t\na flag with three vertical stripes that are blue, white and red\tIllustrations\tWriting & Symbols\t\na white towel with a cartoon of a cat on it\tArtifacts\tWriting & Symbols\t\na black towel with a cartoon of a dog on it\tArtifacts\tWriting & Symbols\t\na yellow wall with the word KA-BOOM on it\tArtifacts\tWriting & Symbols\t\na cat sitting on a box with a drawing of an elephant on it\tAnimals\tWriting & Symbols\t\nthe word 'mardefly' on a coffee mug\tArtifacts\tWriting & Symbols\t\na stop sigh with 'ALL WAY' written below it\tArtifacts\tWriting & Symbols\t\na sticker stuck in the middle of a stop sign\tArtifacts\tWriting & Symbols\t\nworld's best brother t-shirt\tArtifacts\tWriting & Symbols\t\nthe cover of a book called 'Backpropaganda' by I.C. Gradients\tIllustrations\tWriting & Symbols\t\nthe saying 'do unto others as they would do unto you' written on a white background\tArtifacts\tWriting & Symbols\t\na t-shirt with Carpe Diem written on it\tArtifacts\tWriting & Symbols\t\na sweatshirt with 'Batch Norm' written on it\tArtifacts\tWriting & Symbols\t\na yellow sticky note with 'BUY MILK' written on it\tArtifacts\tWriting & Symbols\t\na large open book showing text and an illustration of a cat\tArtifacts\tWriting & Symbols\t\na yellow wall with 'Hello, world.' written on it\tIndoor Scenes\tWriting & Symbols\t\na motorcycle parked in an ornate bank lobby with \"BUZZ\" written on its body\tVehicles\tWriting & Symbols\t\na logo of a wombat on a coffee mug\tArtifacts\tWriting & Symbols\t\na coffee mug with an ankh symbol on it\tArtifacts\tWriting & Symbols\t\na t-shirt with 'ANKH' written on it\tArtifacts\tWriting & Symbols\t\na t-shirt with 'Archaelogy Rocks!' written on it\tArtifacts\tWriting & Symbols\t\na black t-shirt with the peace sign on it\tArtifacts\tWriting & Symbols\t\na store front with 'Grassy Meadow' written on it\tOutdoor Scenes\tWriting & Symbols\t\na store front with 'AwesomePurchase' written on it\tOutdoor Scenes\tWriting & Symbols\t\na laptop screen showing an internet search\tArtifacts\tWriting & Symbols\t\na laptop screen showing a bunch of photographs\tArtifacts\tWriting & Symbols\t\na laptop screen showing a document being edited\tArtifacts\tWriting & Symbols\t\na book with the words 'Don't Panic!' written on it\tArtifacts\tWriting & Symbols\t\nthe words 'KEEP OFF THE GRASS'\tIllustrations\tWriting & Symbols\t\nthe words 'KEEP OFF THE GRASS' written on a brick wall\tIndoor Scenes\tWriting & Symbols\t\nthe words 'KEEP OFF THE GRASS' on a black sticker\tIllustrations\tWriting & Symbols\t\nthe words 'KEEP OFF THE GRASS' on a sign next to a lawn\tOutdoor Scenes\tWriting & Symbols\t\nthe word 'START'\tIllustrations\tWriting & Symbols\t\nthe word 'START' written on a street surface\tIllustrations\tWriting & Symbols\t\nthe word 'START' on a blue t-shirt\tArtifacts\tWriting & Symbols\t\nthe word 'START' written above the word 'SMILING'\tIllustrations\tWriting & Symbols\t\nthe word 'START' written in chalk on a sidewalk\tOutdoor Scenes\tWriting & Symbols\t\na wooden post with a yellow '3' painted on top\tOutdoor Scenes\tWriting & Symbols\t\na wooden post in front of a patch of tall grass\tOutdoor Scenes\tWriting & Symbols\t\na wooden post with a blue '5' painted on top\tOutdoor Scenes\tWriting & Symbols\t\na series of musical notes on a black t-shirt\tArtifacts\tWriting & Symbols\t\na series of musical notes on a computer screen\tArtifacts\tWriting & Symbols\t\n"
  },
  {
    "path": "evaluations/t2i/README.md",
    "content": "# Evaluations from [GigaGAN](https://github.com/mingukkang/GigaGAN/tree/main/evaluation)\n\n```\npip install git+https://github.com/openai/CLIP.git\npip install open_clip_torch\npip install clean_fid\n```\n\n```\npython3 evaluations/t2i/evaluation.py \\\n--eval_res 256 \\ \n--batch_size 256 \\\n--how_many 30000 \\\n--ref_data \"coco2014\" \\\n--ref_type \"val2014\" \\\n--eval_res 256 \\\n--batch_size 256 \\\n--ref_dir \"/path/to/coco\" \\\n--fake_dir \"/path/to/generation\" \\\n$@\n```\n"
  },
  {
    "path": "evaluations/t2i/coco_captions.csv",
    "content": "Prompt\nThis wire metal rack holds several pairs of shoes and sandals\nA motorcycle parked in a parking space next to another motorcycle.\nA picture of a dog laying on the ground.\nA loft bed with a dresser underneath it.\nTwo giraffes in a room with people looking at them.\nA woman stands in the dining area at the table.\nBirds perch on a bunch of twigs in the winter.\nA small kitchen with low a ceiling \nA group of baseball players is crowded at the mound.\nThis table is filled with a variety of different dishes.\nA toy dinosaur standing on a sink next to a running faucet.\na man standing holding a game controller and two people sitting\nThere is a small bus with several people standing next to it.\nA bottle on wine next to a glass of wine.\nA big burly grizzly bear is show with grass in the background.\nA man standing in front of a microwave next to pots and pans.\nThree men in military suits are sitting on a bench,\nTwo people standing in a kitchen looking around. \nA group of men playing a game of baseball on top of a baseball field.\nA traffic light over a street surrounded by tall buildings.\nThe snowboarder has jumped high into the air from a snow ramp.\nA smart phone with an image of a person on it's screen.\nA man talking on his phone in the public.\nA cheesy pizza sitting on top of a table.\nA dog sitting on the inside of a white boat.\nA guy jumping with a tennis racket in his hand.\na close up of a child next to a cake with balloons\nA man holding a camera up over his left shoulder.\nA plane flies over water with two islands nearby.\nA young boy getting ready to catch a baseball in a grass field.\nAn industrial kitchen with a strainer on the counter.\nA man getting ready to bunt the baseball\nA furry, black bear standing in a rocky, weedy, area in the wild.\nAfternoon at a dock with seagulls flying overhead.\nThree women in dresses, with two talking on the phone. \nA baseball game is going on for the crowd. \nThere is no image here to provide a description for.\nA woman in a trench coat playing with her kite\nA person doing karate in a field at night\nA sink is shown with a mirror and lights.\nA cat on a leather chair next to remotes\nA woman on a bench is hugging a giant teddy bear.\nThe clock tower is in the center of the building. \nBedroom scene with a bookcase, blue comforter and window.\nA toilet seat sits on top of a hole in the ground.\nA bus that is sitting in the street.\nA chicken sandwich in a wrapper near a cell phone.\nA cat licking drink out of a cup that is sitting on a table. \nA women holding a baby brushing its teeth.\nA cute little girl riding a skateboard in a store.\na fogy picture with a red light in the back ground\nA coffee table sits in the middle of a living room.\nA pile of oranges in crates topped with yellow bananas.\nA stop sign is mounted upside-down on it's post. \nAn unusual looking red bus going down a road.\nA herd of elephants walking through a lake filled with water.\nA group of people riding skis on top of a ski slope.\nan image  of people outside playing frisbee\nthere are three she eps standing together on the grass\nA rear view mirror on a bike is reflecting a poster on building. \nThree teddy bears, each a different color, snuggling together.\nA woman posing for the camera standing on skis.\nA kitchen with a refrigerator, stove and oven with cabinets.\na sandwich in a plastic food basket on a table\na zeebra running on a grass feild in a park\nA man on a skateboard is performing a trick at the park.\nA person up in the air, upside down while outside. \nA couple of baseball player standing on a field.\nLarge factory smoke towers shadowed by a large building behind them. \na male tennis player in white shorts is playing tennis\na green train is coming down the tracks\na bathroom wih a big mirror and a tv attached in the corner\nA man prepares to serve a tennis ball.\nA man and a boy are playing catch in a yard.\nAn elephant with a man and three children on its back drinking water in the jungle.\nA bus parked in a large parking lot \nThe stove has a coffee pot on the burner and a pot in the oven.\nA young man kneeling on top of a base.\nThe people are posing for a group photo.\nA large jet flying through a cloudy sky.\nA giraffe walking across a lush green field.\nA close up of a plate of food containing broccoli.\nA group of cows on a grassy field.\nA demonic looking President Barrack Hussein Obama clasping his hands together.\nA lot if birds are standing at the beach shore\nA living room has a couch, chair, fireplace, windows, and a potted plant.\nA young man wearing black attire and a flowered tie is standing and smiling.\nSeveral men in suits and military gear standing near a table.\nA banana that is sitting in a bowl on the table.\nTwo beautiful young ladies giving an elephant a bath in a river.\nAn antique train engine stands proudly in the glow of late afternoon light.\nView of a skateboarder igrinding a rail through a lens\nA woman standing over a sheet cake sitting on top of a table.\nA hut with a bed, lantern and pillows on the floor.\nA close up of several zebras grazing in a field.\n A man sitting under an umbrella next to a body of water.\nA beautiful woman taking a picture with her smart phone.\nKids playing a game of baseball while people watch. \nA baby in high chair with bib and cake.\nThe woman is looking at the tennis racket \nA woman holding a Hello Kitty phone on her hands.\nA clear vase with flowers sitting a little table.\nOpen book with images of various airplane models and shapes\nElectronic computer items displayed on wooden desk in office.\nsome children are riding on a mini orange train\nA man in a wetsuit with a surfboard standing on a beach.\nA purple and yellow train traveling down train tracks.\nA green vase filed with red roses sitting on top of table.\nA cat rubbing up against the camera persons legs.\nA boy sitting on a black couch with teddy bears. \nA meal is lying on a plate on a table.\nYoung man wearing glasses lounging on a sofa with three white laptop computers on his lap.\nA polar bear walking over rocks in its enclosure\nA giraffe bending over while standing on green grass.\nA person in a black jacket skiing through deep snow.\nA man in a wet suit stands on a surfboard and rows with a paddle.\nA computer on a desk next to a laptop.\nA plane parked in a large airplane hanger.\nA street scene with focus on the street signs on an overpass.\nThree sheep in a pasture with people standing by the fence.\nSmall bird sitting on a skateboard posed in front of dark blue background cloth.\nA woman carrying two skis and a couple of poles.\nA kitchen scene with an oven and a stove.\nA watery glass jar full of blooming flowers\nThe red, double decker bus is driving past other buses. \nA load of trash or work supplies in a dumpster outside.\nA black and white picture of a television set.\nA young girl on a beach chair kicking her leg out\nA man taking a swing at a ball on the court.\nTwo smiling young people playing a game of Wii.\nA piece of bread with wrapping around it with scissors.\nA man is holding a cell phone in front of a mountain.\nA toddler with a fork in her mouth and a picnic table and people behind her.  \nMen on a baseball field with the batter holding the bat sideways.\nA cat resting on an open laptop computer.\nA boat sailing on top of a body of water.\nA man riding a snow board on top of a snow covered slope.\nA person riding a bike in the rain while holding an umbrella.\nA truck that is sitting out in the woods.\nTwo very attractive women enjoy a glass of white wine.\nTwo planes flying in the sky over a bridge.\nAn intersection with a street sign and a building and palm trees in the background.\nA large green truck on a city street.\nA modern day bathroom with a unusual sink\nA zebra in the grass who is cleaning himself. \nA bunch of colorful umbrellas hanging from trees in a forest.\nWoman in a red hat covering half her face and tie. \nA piece of white hair, scissors and a rose.\nA man riding a wave on top of a surfboard.\na young elephant walks with adult elephants along a dirt path\nA hot dog is in a styrofoam box.\nA man holding a turkey that he murdered.\nA person that is flying a kite in the air.\nBoys playing soccer on the other side of a fence.\nA man tossing a frisbee over the ocean on the beach.\nA bedroom with a bed and small table near by.\na big purple bus parked in a parking spot\nA guy stops himself from falling off of his skateboard. \nA public restroom with a  garbage can and shower hose\nA truck with a horse trailer attached to it with horses on top of it.\nA bike leaning against an unmade and dirty bed.\nA man sitting on top of a bench near some pigeons.\nA large white bowl of many green apples. \nBatter preparing to swing at pitch during major game.\nA grocery cart filled with clothing and sheets sits next to some boxes under a tree on the sidewalk of a city street near a bench.\nA plate of finger foods next to a blue and raspberry topped cake.\nLots of sheep graze on a grass field.\nA group of people riding boards in the ocean.\nA man riding a skateboard up a colorful ramp.\nThere is a woman in a wetsuit in the water.\nTwo dogs curled up asleep on a couch. \nA little girl is eating a chocolate doughnut.\nA tennis player prepares to serve the ball.\n a little girl holding onto a tennis racket with both hands \nA pile of teddy bears and dolls in a toy box.\nThe elephant has a large white spot on its abdomen.\nA man on a blue raft attempting to catch a ride on a large wave.\nA sailboat docked beside a pier and other boats.\nA cat peering into a wooden bowl which is sitting on a table.\nMany small children are posing together in the black and white photo. \nA person riding on the back of a brown horse on a rocky hillside.\nA herd of elephants in the wild near a river.\nA penny behind three tiny flower vases on a wooden table.\nA white toilet sitting inside of a bathroom.\nA plate on a wooden table full of bread.\nA coupe of laptop computers with a cell phone\nA bench near a bank of water with posts in the water.\nA man flying through the air while riding skis.\nA man that is sitting on a couch with a dog.\nA full view of a dirty bathroom with no toilet available. \na close up of a street sign near buildings\nA clerk stands amid an ornate cupcake display.\nThe clock on the corner of the sidewalk reads 4:38.\nA person standing on top of a ski covered slope.\nA man hitting a tennis ball with a racquet.\na close up of a banana and a doughnut in a plastic bag\nDecorated coffee cup and knife sitting on a patterned surface.\nA man surfing some waves on his white surfboard.\na street light with the walk symbol on\na white train with a red stripe on its track\nA lot of zebras standing in the sand on a hot summer day.\nA group of people standing around each other.\nAn inlet filled with boats of all kinds.\nA dog holding a yellow frisbee in it's mouth.\nTwo bowls filled with broccoli soup on top of a table.\nA boat traveling down a lake next to a shoreline.\nThe sky is cloudy over a stop sign.\nA baby girl with beautiful blue eyes standing next to a brown teddy bear.\na group of young people getting ready to go ski\nTwo men walking through a field next to a large jet liner.\nA group of people riding skis down a snow covered street.\nA train traveling down train tracks next to trees.\nA marsh area with egrets and shrimp boats\nTwo colorful passenger trains passing near a platform.\nThe truck driver hauls an elephant down the highway.\na black white and orange cat lying on a blue chair\nA table topped with donuts and a small box of even more donuts.\nThree-quarters of a meat-lovers pizza with mushrooms with drink\nan airplane is getting ready to be loaded with passengers \na close up of a cat on a desk near a sandwich \na blue clock face with gold numbers set in a brick building\na white plate topped with a piece of chocolate covered cake.\nA blue bowl sitting on a table with a banana in it. \nA man riding a skateboard up the side of a wooden ramp.\nA woman is setting up an umbrella on a deck.\nThe white van is parked beside the sidewalk near a cone. \nA bus turning a corner on a city street.\na white couch a brown chair a person a ceiling fan and a table\na very large building with a clock tower near\nA young man bending next to a toilet.\nA pizza covered in veggies on a white plate sitting on a table.\nA woman riding a horse next to a group of people.\nA wooden bench on the ground next to some trees.\nCamera and computers set up on a desk\na group of people riding skis on a snowy surface\nA woman is taking a bite out of a hot dog.\nA couple paddling in a canoe on a river\nA clean white toilet with the toilet seat up.\nA man with a wristband on and a cell phone in his hand.\nA train sitting on some train tracks underground.\na person is doing a trick on a skateboard\nPeople in navy uniforms and one person talking on a walkie- talkie.\nAn empty bed in a bedroom in front of a small TV.\nThe man is wearing orange and black shoes.\nA herd of cattle standing on a lush green hillside.\nA teenager in a soccer uniform kicking a soccer ball.\nA bowl with rice, broccoli and a purple relish.\na person skating on some pieces of wood \nA man sitting on a touch holding a game controller.\nA man sticking his head out of a doorway into a rainy city street.\nA table with wine glasses and bottles of wine\nA bunch of bananas sitting on top of a wooden table.\nAn individual pizza with cheese, pineapple and sauce.\nPeople dancing and hanging out talking looking at their phones.\nA man is doing a trick on a skateboard\nRipe bananas sitting next to a laptop computer and plastic wrap.\nA black cat sitting on top of the hood of a car.\nthere is a woman sitting on a bed using a lap top\nApple in and over-flowing a bowl on a windowsill with a rose in a vase.\na woman wearing a cowboy hat face to face with a horse \nA brown cow laying on top of a lush green field.\nA table topped with six glasses of booze.\nWoman with bookin sat on sidewalk from the top view\nA bus is parked in front of a building.\na burger and salad are on a plate for dinner\nA street sign pointing the way to Jordan \nA man on a motorbike carrying a large stalk of bananas off a tree.\nA white boat floating on a lake under mountains.\nThe people are ready to go out on the water for their surfing lessons\na chicken meal with carrots broccoli and rice\nThere are several street signs in the highway\nA man wind surfs along an empty beach.\nTwo zebras who are grazing on some grass.\nTwo sheep standing next to each other in the snow.\nA small lamb with a blue rope tied around its head. \nA young girl in the foreground and a woman in a bridal dress and other adults in the background. \nA woman is playing with a Nintendo Wii.\nthree small children near one another with stuffed animals \nMany sheep are grazing in the green field.\nA woman holding a tennis racquet while wearing a straw hat.\nA group of people next to a bus with skis and backpacks.\nBaker proudly displays her white dog cake in her kitchen\nA baseball field full of baseball players standing on a field.\ntwo people in the ocean with a surf board.\nBlack and white photo of two men riding bikes.\na silver vase and some silver leaves and a green plant\nThe woman holding the video game remote looks shocked.\nLot of the building, behind the fence, full of garbage\nA table topped with trays full of hot dogs.\nA few bags laying around in a living room.\nA man is shaking hands with another man.\nA wall click with decorations hanging below it.\nA tennis player winds up to hit a serve to her opponent.\nA tennis player prepares to hit the tennis ball\nA woman wearing a green dress walking across a field.\nA cat rests on the hood of a blue car.\nThere is a tennis player about to hit a ball\nTwo adults and one baby elephant walking in the wilderness\nThere is a boy sitting near many baskets.\nA couple of young men standing next to each other on a street.\nA table set for two with salad and bread\nBlue dishes sitting on a shelf with a plant and flowers. \nPeople skiing and standing on a ski slope.\nA young man doing a skateboard trick outside.\nTwo birds that are sitting in a marsh area.\na giraffe in a field with a person near trees \nA kitchen that is in the process of having the floors done \nA man sits in a diner photographing his meal\nA bear walking through a field next to a forest.\ntwo people riding motorcycles on a city street \nA woman holding three bags stands by the open doors of a subway car, through which other people can be seen.\nA crowd of skiers gathers on the top of the slopes.\nA man sitting on the floor holding a plate of food.\nA dog laying on it's back among pillows and blankets.\nA man in a shirt and tie motioning with his hand.\na teddy bear wearing a green robe \nA man jumping up into the air on a sidewalk.\nA living room with a couch and chair.\nA delivery truck driving on a freeway with \"MOBEL PREISS\" painted on it's sides. \nA young boy riding a skateboard on a street in front of a house.\na woman with blonde hair posing with rope on a bed\nDinosaur statue in a park with various kites flying through the air.\nSeveral people snowboarding and one skiing in the snow.\nA crowd of people standing around a pile of bikes.\na woman with a hat swinging a tennis racquet\nA close up photo of parking meter on a street. \nA just married couple in the back of a car.\na man walks a dog by some park benches \nthis is a man playing in a field\nA group of boys playing soccer on a field.\nA man holding a baby up in a kitchen.\nA baseball player holding a bat next to home base.\nA man on a surfboard riding an ocean wave.\nA green bowl with two ripe bananas in it.\nZebras stand amongst bison in a large meadow\nA set of park benches near a lamp post\nA man standing next to a parked motorcycle.\nA man riding a surfboard on a wave in the ocean.\nA man is staring out of a boat window.\nA cat observing a computer screen next to a laptop and a cordless phone.\na man does a trick on a skate board as a young kid looks on\nTwo small young girls hold hands as they look into a bedroom.\nA white dish filled with lots of vegetables.\nA BLACK AND WHITE PIC OF A MAN AND A HORSE \nA group of people holding umbrellas in the middle of a graduation.\nA brown and white horse standing on top of a giant red chair.\nA woman in white and black dress with suitcase on train.\nA public bus parked at a bus stop\nA group of people cutting a ribbon on a street.\nA woman and a kid are standing on skis in the snow.\na tall tower next to a train track\nA passenger bus pulling up to the side of a street.\nA woman sits on a bed with pillows.\nA man in green shirt with cellphone reflecting in a mirror.\nA baseball player swinging a bat during a game.\nLarge tree with wooden picnic bench in wilderness area\na man paddling in the lake with a dog nearby\nA group of people gather to get on a bus at the bus stop.\nGroup of pedestrians walking in front of a domestic house. \nA soccer player trying to score a goal.\nA mama horse walking in front of a baby horse.\na long skinny bed with a floral blanket on it\nthis is a man riding a horse oin the dirt\nA pair of grizzly bears mating with each other\nMan and boys holding two surfboards getting picture taken.\nThe man is giving the young girl a ride on his motorcycle.\nAtv parked alongside rural roadway with trees lining landscape.\nA little baby eating food on a table with a bear on it.\nA man with at hot on that is in the water.\nA black and white photo of an older man skiing.\nA train sitting in a train station next to a loading platform.\na boat floating on a lake through a brick bridge\nA bathroom area with toilet, sink and black curtain.\nA lady holding an umbrella is walking with a lady in the wheel chair. \nA white toilet sitting next to a white sink.\nA piece of pizza that is on a plate.\nA passenger plane that is parked on the runway.\nOn a baseball diamond, a player holds a bat while in front of a catcher in gray and an umpire in black.\nA field full of players in action in a baseball game.\nA boat that looks like a car moves through the water. \na light brown bathroom with drawers sink and toilet\nA couple of giraffe standing next to a forest.\nA fire hydrant with a blue jacket on top of it.\nA person in black jacket on skis standing on slope.\nA group of people walking towards a beach while carrying surfboards.\nlarge mustard yellow commercial airplane parked in the airport\nA photograph of living room sofa, and dining set.\nA set of four scenes of people flying a kite over a field.\na man standing in front of a toilet taking a piss\nA little girl with her back turned flying a kite in the sky.\nA person on skis skiing down a mountain slope.\nA man walking down the street beside a big bus. \nA cutting board topped with bread, meat and vegetables.\nSelf photo in mirror of male with brown vest and jeans\nA black and white cat sitting on top of a pile of clothes.\na tennis player with a racket on a court \nA book on birds located in Australia sitting on a shelf..\nA field full of people standing on top of a grassy field flying kites.\nA pan filled with onions sitting next to a pan of stew.\nA large body of water sitting below a mountain range.\nA couple of cats laying on top of pillows.\nA stop sign that has been written on with a black marker.\nA boy flying through the air with his skateboard as it flips around.\nA little baby with blue eyes talking on a phone.\na young man in a grey shirt is going to cut his hair \na man outside a clothing shop taking a video\nA long passenger train traveling through rural countryside.\nA white parrot standing next to a jungle covered hillside.\na bird  with a long beak flying low over the ocean.\nTwo teenaged boys sitting on the floor posing next to a computer.\nA pack of horses stand in a field\nThe plate full of food is sitting on the table.\nSeveral views of mean playing with a white disc on grass.\nA box of donuts of different colors and varieties.\nA IMAGE OF A TOWER CLOCK WITH THE CLOCK ON IT\nTwo men wearing aprons working in a commercial-style kitchen.\nA laptop computer sitting on a  table, next to a rocking chair.\nA  bed with pillows and white sheets in a room \nA park bench on the side of a lake.\nA small cell phone sitting next to a glass of Pepsi.\nTwo bicycle riders riding in the city at night.\na close up of a baseball and a glove \nA man cutting up a large sandwich in a kitchen.\nA big teddy bear on a black motorcycle. \nA small group of sheep standing together next to a building.\na couple of giraffes that are walking around\nThere are bananas around another piece of fruit. \nA red bicycle is parked near a red fire hydrant.\nA group of surfers in wetsuits amid ocean waves.\nA boy that is standing next to an animal.\nA blue and white train is moving on the rails. \nA blue and white truck with pants in it's flat bed.\nThe stop sign is clearly visible at night for us to see.\nA train coming up to an intersection of rails\na black handled pair of scissors laying on something.\nA train traveling through a forest with tall trees.\nMan slicing a pizza with a pizza cutter, at home.\nA wall clock reading the time eleven twenty.\nA shower curtain sits open in an empty and clean bathroom. \nA dark table has a large arrangement of food.\nA train riding on a track near a forest and traffic signs.\nThe side of a cow with an injury visible.\nA pool next to a dock lined with lots of boats.\nA brown horse with blonde hair standing behind a fence.\nA silver colored necklace with a pair of mini scissors on it.\nA cat laying next to another cat in a piece of luggage.\nA knife sitting next to carrots on top of a cutting board.\nA surfer curls to balance on his board atop the foamy white crest of a wave\nA polar bear licking its paw while grooming.\nA zebra lying down on the grass eating and resting.\na person riding a surf board on a wave\nA baseball player holding a bat next to a base.\nA birthday cake fashioned to look like a beach with surfboard and palm trees.\nA cake on a pan with a spatula, a flower white with roses and a white beverage holder.\nA stone statue of an elephant near a large vase.\nA clock mounted near a city light on the road\nA woman dressed in military uniform speaks to a child.\nA crowd of people standing next to a bed on a sidewalk.\nA tabby cat wearing a tie is laying on a couch.\n A man jumping after hitting a ball while playing tennis.\nA room with two desk covered in computer equipment.\nA black and white image of a lot of round objects.\nThe torso of a man who is holding a knife.\nA woman that is laying upside down on a bed.\nThe back door with a window in the kitchen.\nA vase filled with a large yellow and black sunflower and other flowers.\nA zebra looking up as another grazes in a field.\nA set of orange road blocks sitting next to a traffic light.\nA father throwing a baseball to his child holding a bat.\nA woman in a black wetsuit sits on her surfboard near the water.\nA table with a light on over it.\nRow of buildings on empty street near side walk.\nA woman is stooped beside a fence, watching a polar bear.\nA man and a women posing next to one another in front of a table.\nA woman dressed up in a costume talking on a cell phone.\nA boarder is jumping high into the air with a sail.\nAn electric  tower in front of buildings on the road.\nA black and white picture of a building with a clock outside.\na couple of buckets in a white room\nTwo cows standing in water next to a grassy field.\nA bearded man with an earring wearing a black tie.\nA poster that indicates the letter S stands for sandwich.\nA white toilet bowl with a plunger standing near it\nthere is a man walking threw a hallway with his luggage\nA large steam engine train traveling down train tracks.\nAn adult polar bear is swimming in the water. \nA group of giraffes and a couple of deer stand in the dust.\nA man getting a kiss on the neck from an elephant's trunk\nMan posing in front of a pair of giraffes in background.\nA man presenting something to another man in a tent.\nA young boy hunched over a laptop computer.\nA white bowl filled with salad and plastic eating utensils.\nA group of young children sitting in the grass.\nA couple of people on a court with tennis rackets.\na woman in glasses and hat paddles a canoe\nA man doing tricks with a frisbee in front of a young lady.\nA little girl is holding an umbrella on a wet day.\nA yellow, gray and white train stationed at a city.\nA tray of a variety of donuts with glaze, sprinkles and coconut. \nA herd of elephants walking away from a watering hole.\nA group of people seated on the ground and holding black and white \"WWF\" umbrellas over their heads.\nBicyclists are riding on a trail beside other walkers. \nA woman washing a lam with a hose.\nSomeone's suitcase left outside against the wall opened up\nA pickup truck driving through a desert envirnonment\nA room filled with different types of items all around. \nA couple of people that are posing for a picture.\nA train car with blue graffiti on the side of it .\nthe sink, mirror and toilet in a white bathroom\nA glazed donut propped against a cup of coffee.\nAn old-fashioned motorcycle painted mint green and parked on a curb.\nA group of people with a cell phone the side of a building.\nwomen on a tennis court playing a game of tennis \nA gray pigeon is perched on the edge of an old gutter.\nA family is sitting around a dinner table.\nA white bathroom sink sitting under a mirror.\nthere is a male surfer that is riding in the wave\nTwo men smile as they ride horses on the beach.\nA white toilet bowl with an electronic brown seat.\nThe large clock tower can be seen down the street.\nA person that is playing in a baseball game.\na little in a pink shirt and khaki skirt playing tennis \nA Wii controller facing a TV with a video game on the channel.\nA red fancy bus is parked by a standing man.\nA young man riding a skateboard across leaf covered ground.\nA bus is going through an intersection in a city.\na small motor bike outside of the garage\nA man walking down a street holding an umbrella.\nA meal with noodles, chicken and vegetables. \nA red car driving down a mountain road next to a herd of sheep.\na corner of a James Smith & Sons store with various umbrellas lined up in the window\nA giraffe spreads its legs in order to get its head closer to the ground.\nA man is flying a kite at the beach.\nA man in foodservice holding baskets with food.\nAn adult zebra and a younger zebra in Savannah \nPeople in the water and parachutes overhead.  \nA coffee cup filled with different colored tooth brushes.\nThere is a mom zebra and a baby zebra on a large field\nA picture of a computer and a living room.\nA kitchen with a very messy counter space.\nA man in black doing jumps on a skateboard\nThe blue train is passing through a wooded area. \nA person rides a surf board in wavy rapids.\nA man in a tie and a fake moustache\nThree items of luggage of color blue, black, and red \nA cat lying in a white sink in the bathroom. \nA large red truck on a city street.\nA cat peers out of an open suitcase.\nThis is a large kite flying high in the sky.\nFresh pizza sits on plates, ready to be eaten.\na person laying in a bed with a window \nA narrow hotel room with two made up beds.\nA person on a motor bike travels around a sharp corner.\nAn illuminated floral display forms the centerpiece of the arrangement in this close up of a dining room table setting.\nThis pizza is laying inside of a steel pizza pan.\na woman on her cell phone in the middle of a market place\nA pedestal clock strikes 6:55 in a rainy sky.\nA baby sitting in the grass watching kites fly in the sky.\na shops table filled with apples oranges and other fruits\nA man is talking on his cell phone on the street.\nA truck crosses train tracks near an oncoming train. \nSome is holding a bottle of wine next to a huge hot dog covered in chili.\nA young man performing tricks on a skateboard.\nA snow boarder riding a ski lift up a snow covered ski slople\nA plate topped with baby carrots and beans next to a  peeler.\nA light blue airplane sits in the airport waiting to depart\nThe two blurry surfers are walking on the beach\nA fighter jet flying through a  cloudy sky.\nA presenter projected on a large screen at a conference.\nA boy and girl playing a game with remote controllers.\nTub and shower on platform in modern tiled bathroom.\nA baseball player swinging a baseball bat during a game.\nA bus parks close to a truck in front of a church.\nA team of young men playing a game of baseball.\nA blue and white giraffe reaching for food up in a tall tree.\nThere is a dog that is walking on the beach at sun set\nA refrigerator and a stove occupy a kitchen.\nA green traffic light above a street with a car on coming.\nA large airplane is on the airport runway.\na motorcycle parked in a field with a sky background \nAn old photo of an umbrella and chairs at the beach\na man standing on his surfboard riding a big wave \nYoung men balance on a sinking surfboard in a calm lake.\nA cookie sitting on top of a piece of paper.\nA couple of trucks on a city street.\nTwo men talking to each other on a street corner \nA building with a black and gold clock on it.\nA small white toilet sitting in a bathroom.\nThe meal consists of chopped chicken with cheese and brocolli.\nA narrow kitchen with a refrigerator at the end of it.\nA white and red train traveling over a city.\nA large dog sitting on top of a roof.\nTwo dogs are wearing winter attire and staring off to the distance.\nthree bears outside in the woods in the bushes \nA table topped with personal care items and tooth paste.\nA boy is holding up a bat at a baseball game\nA group of people are sitting on a bench\nA sickly cow and her calf grazing in a yard.\nItalian blood oranges for sale in a market\nA lady and woman addressing the press with microphones on the stand\nA surfer is at the peak of a wave and circling around.\nA man is holding skis and ski poles.\nA clock tower is in the middle of some grass.\nA man that has glasses and a hat.\nA silver airplane flying low in the sky. \na computer on a desk with many things stacked around it\nA group of men riding skateboards on top of cement.\nolder man standing in his kitchen reads book.\nThree people are moving a cart of luggage.\nAn adult and baby giraffe walking through a field.\nA young alpaca under a tree in the country.\nmany different slices of pizza with a white sauce.\nCars traveling on a three-way with large truck in the middle\nThe people walk along the path near to the stores. \nOne bird that looks like two different ones.\nA bedroom with a bed, lamps and a balcony. \nA wooden frame for a bed sitting next to a  mattress.\nThe two young girls are petting the two goats.\nA white teddy bear is posed to appear to be reading a book.\nA person sitting at a table with bagels and a donut.\nA breakfast bowl consisting of blueberry sconce and strawberry with side of coffee\nThere are three computers are on the desk.\nA pizza sitting on a pizza pan on top of a wooden table.\nStreet lights and a lit up street sign at an intersection.\nA male skier has fallen in the snow.\nA bedroom has many posters on the wall.\nA man holding a brown dog and a video camera.\nA man in costume standing next to a building.\nA small girl with face paint in front of a table of decorated cakes.\nSmiling lady standing by two bunches of bananas on a table.\nA man riding skis down a snow covered slope.\nA cooler with several bottles of S. Pellegrino sparkling water.\nA bunch of airplanes are parked on the runway. \nA red brick building with a graffiti covered front.\nA couple of chairs and a counter in a room.\nA young boy riding a skateboard on a sidewalk.\na laptop head phones and an mp3 player\nA group of sausages that are sitting on a cooker.\nA man riding a wave on top of a surfboard.\nThere is a freshly made pizza out of the oven\na man returns the tennis ball with his racket\nThe man grins in a restaurant holding a glass of wine.\nA very cute cat near a bunch of birds.\nThe dinner plate has asparagus, carrots and some kind of meat.\nA variety of fruit is displayed in a market.\nA man in suit and tie standing by a white wall.\na bird standing on some rocks near the ocean\nTwo ducklings sit next to each other in grass.\nA Subway Sandwich with chips, raisins and a coffee cup.\nA cat drinking out of a white toilet bowl.\nA man riding down a snow covered slope in the snow.\nA clock and a lamp post on the street with a bridge in the background.\nA woman holding a tiger kite with people standing around watching and talking.\nA group of vases sitting in a shop window with other home decor.\nA zebra grazing on a lush green field.\nA clock tower sits on top of an old building.\nA kitchen with a black automatic dishwasher next to a  doorway.\nA cart of finger foods including sandwiches with a group of teddy bears around the plates.\nA young girl eating a piece of cake off of a plate.\nA single pillar with a clock is near approaching traffic, including a police car. \nA picnic with alcohol, a large cooler, a blender, and mixers.\nA few school buses are parked near other vehicles. \nA toilet in a restroom next to a toilet paper dispenser\nA young boy sitting on a field next to a soccer ball.\nMan preforming a trick with a disk toy.\nA bus stop next to a curvy road surrounded by traffic lights.\nA large assortment of pizzas out for display\nA pitcher getting ready to release a pitch\nA group of people that are sitting in front of laptops.\nA group of men and boys in suits and ties.\nA small plane flying through a cloudy blue sky.\nA little girl holds up a big blue umbrella.\nA little kid playing second base at a baseball game.\nA brown and white cat sitting next to a pile of shoes.\nA giraffe standing in a field of grass.\nA man in a suit standing next to a control board and computer.\nThere is a lot of graffiti on the train cart\nA very big pretty horse hooked to a cart by a building.\nA picture of a messy desk with an open laptop.\nZebra grazing on dry grass in a fried up field.\nThere is a bird that is on a branch sitting looking\na couple of giraffes that are knick knacks\nA group of people sitting around a wooden table.\nA herd of cows walking along a grass covered field.\nA man riding a board over the top of a wave.\nthere are many men preparing to cut a red ribbon\nA kitchen filled with appliances and a wall mounted picture.\nA suitcase bag packed with roller skates hanging from the top and back of it.\na couple of red and white planes are on a runway\nA beach scene with chairs and umbrellas and birds in the sky.\na close up view of a keyboard and a mouse\nA snowboarder buried up to his waste in snow.\nTwo people standing next to each other, one holding a phone and the other pointing at it. \nA street sign above mailboxes in a snowy, icy winter scene.\nThe pick up truck is plowing the snow. \nA person is taking a picture of a hotel bathroom.\nA golden clock rhino sculpture sitting on top of a fireplace.\nA man holding a Nintendo Wii game controller.\nA person near a bike and a car on a street.\nA gray and white sitting in front of a TV.\nA woman guiding a horse that is pulling a carriage\na cat sitting on a floor in front of a laptop\nThe lamp is on next to a bed with a quilt. \nThe man is loading luggage suitcases onto the cart in the parking lot. \nA hotdog and fork sitting on a plastic plate\nA plate of food which includes onions, tomato, lettuce, sauce, fries, and a sandwich.\nThe two men are looking at the upright surfboard. \nA guy on a skateboard and pushing a stroller on the sidewalk.\na room that has a really big window on it\na vintage photo of a baseball player \nA city bus parked next to a crowd of people.\nThe young man is practicing his tricks on his skateboard. \nA very large tower has a clock on it.\nA group of soldiers standing next to a bench.\nA city bus on a city street transporting people.\na zebra standing in a field in under the shade of a near yb tree\nA green netted bed in a light filled bedroom.\nA group of men riding on the back of a motorcycle.\nThere is a dog sitting down and yawning.\nA picture of a very nice kitchen that is white.\nA room filled with furniture and curtains on top of carpet.\nA woman swinging a tennis racket at a tennis ball.\na man sits at the table an leans over to blow out the two candles on a cake \nA man on skis posing for a photo.\nA cook slices up food while preparing a dish.\nA woman sitting at a table smoking cigarette.\nThe man is playing video games in the living room\nThree giraffes that are standing in the grass.\nA woman serving the tennis ball on the court\nA quesadilla wrapped in plastic sitting on top of a table.\nA white dog laying in the grass next to a red Frisbee. \nAn old woman sits on a bench and raises her hand\na red fire hidrent with red leaves everywhere surrounding it \nan empty living room with a fire place and a mirror\nA bathroom with a blue shower curtain and blue walls.\na fridge is open with some food inside of it \nA gray cat standing on top of a black car.\nGuy takes a picture with his back to the river and mountains\na man is riding a white bike down the street\nA stuffed bear sitting on the pillow of a bed.\nA large clock tower over a church next to trees.\nA sink is shown in front of a frame covered wall.\nA display in a store filled with ripe bananas.\na helicopter is flying upwards in the sky\nthere are many baseball players greeting each other on the field\nA group of three elephants are standing in the water.\nA woman with red hair sitting on a bench.\nA couple of people sitting and standing in a field flying a kite.\na kid riding his skate board on the edge of a concrete wall\nA black and white photo of a woman asleep on a park bench surrounded by foilage.\nThree giraffes are standing tall as their necks stretch up to the tree line.\na plate of meat topped with potatoes veggies and gravy\nA man standing on a tennis court next to a young boy.\nA woman is holding something out of a box presented by a man.\na track without a door near an ocean\nA bathroom sink sitting underneath a mirror in a bathroom.\nA baseball player scratching his balls while he stands on the field.\nA skateboarder leans while going down the street\nA bright patio umbrella stands out against the plain white building.\nA man riding a wave on top of a surfboard.\nan image of a woman holding an umbrella with her coat on\nA cat stares from behind a large TV.\nA man riding a large wave on a surfboard in the ocean.\nA group of people socializing at a dinner table in a restaurant.\nA man standing in a living room holding a Nintendo Wii game controller.\nA horse stands tethered to a wall. \nA catches crouches on a patch of dirt.\na little girl holding onto a teddy bear tight\na little boy wearing a tie and a fake mustache\nA little girl with bows in her hair eating a plate full of broccoli.\na red train parked in front of a train station.\nA bathroom with a sink, counter, toilet and shower curtain.\nThree zebras standing in a line in the tall grass.\nA woman sitting in a car holding a smart phone.\nSoccor players approach a ball that is in the air.\nA kitchen filled with lots of counter top space.\nTwo hotdogs in open aluminum foil with various condiments.\nA car and traffic light on a city street.\nA close up of a street pole with several signs.\nAn albino elephant with its baby standing in a marsh area with others.\nA blue motor scooter parked in front of a brick building.\nA group of people sit and stand in a circle while drinking in a living room. \nA bath and a toilet in a small room.\nThe group of many different people are sitting together. \nA small room with a bed and window letting in light.\nA father and son play Wii in the living room.\nA slice of pizza that is sitting on a paper plate.\nGirl looks back as she fixes flower on boy's suit\nAn experimental airplane flying through a  cloudy blue sky.\nA series of photos showing a woman sitting down with different digital devices.\nAn elderly  man and woman look at something out of the camera's view. \nA red stop sign behind a chain link fence.\nA man standing next to a bikes and a motorcycle.\nA purse sitting next to its contents and a laptop\nA large cow walks over a fox in the grass.\nA kitchen view of a dining table with a bowl with bananas.\nSomeone walking down the street while holding a pink umbrella\nPeople walking outside of a red brick building.\nA computer workstation with a keyboard and multiple mice. \nA man prepares to cross the street at a crosswalk\nSomeone prepares salads as part of a healthy meal.\nA giraffe has it's face in a silver bucket.\nA woman sitting on the back of a couch next to a man wearing glasses.\nA counter with several plates of food on it.\nTrain on track as it approaches a bridge.\na table top with some appliances on it \nView of a train coming in on the far side tracks\nDifferent assortment of noodles and vegetables sitting in a pot and tray. \nMan and woman holding glasses of wine in front of a television.\nThe little boy sits on the ground next to the skateboard.\nA living area with tables, a sofa and multiple windows.\nA white bed topped with pillows and blankets.\nMan standing in front of the ocean in a wet suit with a surf board.\nTraditional view of crowded city residences with big bridge at the end of the street.\nA close up detail of an ornate brickwork cathedral\nA large elephant walking next to a man\nAn Aer Lingus plane touches down on an airport runway.\nA kitchen countertop is cluttered with various kitchen items.\nA black bear walking across a lush green field.\nA branch stretches in the air while an airplane flies in the distance.\nThe two teddy bears are posed together to take a photo. \nA man dressed very nice posing for a picture.\nA double deckers buss full of people taking part in a parade.\nA sculpture of two women stting on a bench with their purses on the ground while people standing in a line behind them. \nA metal plane flying through a blue cloudy sky.\nA hot dog on a bun with pickles and tomatoes is displayed.\na man wearing leather riding on a motorcycle \na bear walking in the woods next to some trees\na tennis player with a racket on a court\nThe white horses are pulling the trailer for the farmers. \na stack of traffic signs on a pole next to a street.\nA woman about to catch a frisbee on a beach.\nTwo men, one holding a book, looking off into the distance.\nA dog on top of a person so you cannot see the person.\nTwo women are imposing together as one holds her luggage.\nInside a tram waiting to go out the door. \nA clock that reads 9:11 is sitting against the wall. \nA golden stoned elevator has a clock above it. \na toilet a sink and a bad mirror\nA glass of red wine sits beside the bottle for a refill as a piece of cake goes untouched in the back.\nA group of zebras walking away from trees.\nOlder model stop light on a street corner in a tropical city.\nA kid that is holding a toothbrush in her hand.\nA camera sits on a tripod connected to a laptop.\nA motorcycle with a trailer parked in a spot\nTwo trays hold fruit, vegetables, cheese and cookies.\nA small bedroom has striped wallpaper going floor to ceiling\nA very close up picture of some food.\nA red double decker bus parked next to a tall building.\nA close up of two street sings above the back of a stop sign.\nA man in a red shirt doing a trick on a skateboard.\nA male baseball player swinging to hit a ball.\nA large white sheep standing next to other sheep.\nA man without a shirt tossing a frisbee into a brown trash can.\nA man that is laying down underneath a cat.\nA toilet bowl with a sign on the top\nMan in a coat walking with other people in the background.\nA couple of women playing a game of tennis on a tennis court.\nA guy performs a skateboard trick in the air.\nA toddler eating food with a bib on the table. \nA couple of horses grazing in a grass field.\nA giraffe standing on a lush green hillside.\nA little boy plays with a racket and ball.\na couple of giraffes that are standing in a fence\nA baseball player holding a baseball bat during a baseball game.\nA car and a van parked side by side.\nA plate of food that includes meat and broccoli.\nA crowd of people standing next to each other.\nSome cars are traveling on the streets on a cloudy day. \nA purse is sitting on top of a cutting board.\nA little girl is in store with an umbrella.\nAn airport with a woman carrying a piece of luggage.\na couple of giraffes are standing on a trail\nA toilet and two rolls of toilet paper in a small room with ledge and window.\nThis kitchen contains a stove with an exhaust hood, many cabinets, and a microwave.\nA woman riding on the back of a white horse.\na man wearing black is riding a red and silver motorcycle\nA man riding on the back of a motorcycle.\nA plate of food sits on a white table.\nTwo girls on a ski lift on the mountain\nA white cat sitting on top of a laptop computer.\nA baby is laying down with a teddy bear.\nthree empty docks some water and some clouds\na small cake decorated with birds on top\nThat small plane looks like it is ready for takeoff.\nChildren in a green field flying a kite.\nTwo elderly people are sitting on a city bench.\nA group of three bath tubs sitting next to each other.\nA baseball player swinging a bat at a ball.\nA counter top in a kitchen with various items on it.\nA woman sitting at a table topped with pizza.\nA little boy about to hit a baseball during a game.\nThe traffic in this city is busy this time of day. \nThe telephone has a banana where the receiver should be.\na lady holding a glass of wine and a man holding a beer\nA crowd of people standing around each other.\nA living room is furnished with old furniture\nA crowd of pedestrians around a French monument.\na big long bridge walkway over some green trains\nA person taking a picture of a decorated tree with a cellphone.\nA boy and girl laying on a bed shaped like a cat.\none motorcycle rider riding going up the mountain two going down\nA man and child next to a horse.\nA scene from the show Mad Men and some appliances.\nA cat and a dog or playing with a ball.\nTwo men are walking towards the ocean with their surfboards. \nA man on a skateboard performing a trick.\nan image of taxi cabs parked and stationed thru out the city\na girl looking closely at her cell phone holding her cat\nA vase filled with pink flowers on top of a table.\nBaseball players playing a baseball game on a baseball field\nA living room filled with furniture and a black piano.\nA man is posing for a great photo shop. \nThe people are at the airport with their bags\nA man riding a board on top of a wave in the ocean.\nA person is on there skate board in the street\nA desk topped with a laptop computer and speakers.\nPeople walking around downtown and a man riding his bike.\nA man standing on the side of a commuter train.\nA large clock tower with a clock on it's face.\nA dog on a leash, relaxing on the ground.\nA man does a skateboard trick in the air.\nA woman chopping vegetables in the kitchen looking at a recipe\nA cyclist and bus splash past one another on the street.\na banana is laying on a small plate\na person jumping a jet ski in the air\nMany controllers set on top of a table. \nA man and a young boy working on laptop computers.\nAn locomotive blowing out a cloud of steam.\nA pair of men wearing waders stand in shallow water.\nAn orange has been sliced in half and is being displayed.\nTwo men standing next to each other in front of a table full of alcohol.\nA sign stating there's a fire hydrant next to it\nThe high speed passenger train is bound for New York.\nBoy in college shirt riding skateboard along curved rail.\na man is working on a hub cap on the ground\nA young man with long hair, wearing all black, doing stunts on a skateboard.\nA family sitting at a dinner table with bowls of soup.\nA black-and-white photo of two teddy bears sitting on a piano.\nA group of people hold up Frisbees for the camera.\nA clown riding a bike down the street\nA vase mounted on a wall filled with green plants.\nA red stop sign stands out against the view of a mountain.\na large air plane on a terminal \nTwo people stand using laptops in a dark room with big stars on the wall.\nA man doing a trick on a skateboard on a street.\nCats lie on a desk next to a keyboard.\na close up of a street parking meter\nA railroad conductor looking off the side of the train\nA harbor with many boats and city in the background.\nA plate topped with broccoli and a red onion.\nSeveral sinks lined up by a brick wall \na train sits on a railroad track as a metal awning covers it\nTwo people doing a skateboard trick above a concrete set of stairs.\nTwo street signs are shown against more buildings.\nThe man in the brown suit is holding a coffee mug.\nA white plate topped with mint angel food cake.\na nude person sitting on a bed with sheets and pillows\nA young man riding a skateboard on a stone wall.\nA woman bending down to pet a baby elephant.\nA piece of chocolate cake on a plate.\nA 6 year old's birthday cake with horses on a top.\nA small round ceramic glass vase on a surface.\nMAN WITH GLASSES KNEELING IN FRONT OF A FIRE HYDRANT\nA young woman wearing a suite and hat holding a cell phone.\nA man sitting in front of a laptop computer in an office.\nA girl with blue socks sitting on a blue bench.\na group of people that are playing some wii\nA white toilet sitting in a bathroom next to a white wall.\nA person standing in shore of beach with a frisbee in the sky.\nA man at a table with two pairs of scisors\nA close up of a country sign, the picture is a personified bus that is freaking out because it is about to hit a biker, and the sign below reads 'danger traversee de route'.\nclose up of a chicken sandwich and fries on a plate\nA large brown bear laying down inside of a cave.\nA young person holding a frisbee while standing on a field.\na black and white photo of a long bench for sitting near a building\nA very cute looking black dog laying on the floor.\nA boy in a black cap is suspended in the air above a skateboard and a small staircase.\nSeveral shots of a man in various positions with a tennis racquet.\na room that has some furniture and a table in it\nA man driving a horse drawn wagon next to a red bus.\nTwo zebras are seen running on a path together.\nA green an White train car traveling past a road filled with heavy traffic.\nA white plate topped with meat, vegetables and fruit.\nA man with eyeglasses  working on a laptop computer\nA pan filled with meat and vegetables cooking on a stove top.\nA sign hanging on a pole by the sidewalk\nA man sits at a full dining table.\nA cat stands on top of a blue electric device.\nA person laying on a beach next to a  white surfboard.\nA kitchen with hard wood floors and a yellow smiley face balloon.\nA person walking and holding onto a skateboard.\nA group of people playing in the water next to a beach.\nA older man sitting at a laptop with a fireplace behind him\nA small black dog watching an animal on a TV screen.\nA man skate bording going up on a ramp. \nskiier jumping with skis split in a v-shape over the olympic circles\na male skateboarder in a blue shirt doing a trick\nA woman walks past street posters and graffiti. \nA man sitting on a train at a table using a laptop.\nA beautiful little girl laying on top of a bed.\nTwo men walk down the street in a city.\nA man with an umbrella standing on the corner of an old village.\nTwo giraffes are walking and standing in the open field\nA close-up of a zebra looking back behind him.\nA blurry image of a busy city street at night\nA fancy bathroom with a large tub, separate shower, and double sink.\nA cat sleeping on a bed with a small TV in a bedroom.\nA house boat along the water has bicycles on deck.\nA laptop computer sitting on top of a table.\nA crowd stands around motorcycles parked beside each other.\nThe hull of a boat that is producing a wake\nA modern bathroom design with a skylight above the toilet.\nA man pulling a pizza out of an oven.\nA steel truss bridge carries a roadway over a rail yard.\nA man in blue hat pointing towards a street.\nA baby wears sunglasses and plays with a pink suitcase.\nSome people in a grass field flying a kite in the sky.\nan image of a train that is going down the tracks\nA group of young kids petting a couple of giraffe.\na red and black train is coming down the tracks\nA group of people sitting on top of a sandy beach.\nA large brown stuffed animal laying in the aisle of a retail store.\nA train traveling down train tracks next to a building.\nA man riding skis with ski poles down a snow covered slope.\nA man looking at a cell phone he is holding.\nA building displaying a clock showing the time to be 6 oclock.\nA tennis playing reaching to hit a tennis ball.\nA small propeller airplane flying through a cloudy sky.\nA man is brushing his teeth with a toothbrush.\nA monkey that is holding a banana and a bottle. \nA picture painting on a wall of a man with an umbrella. \nA woman is enjoying a sip of wine while cooking dinner.\nA woman wearing a coat, sitting down next to a table. \nA dog running along a stone wall next to a beach.\nA living room with a couch in front of a TV.\nA picture of man in the air on a snowboard.\nMany cows laying down in a dirt parking lot.\nThree light sheep are grazing on grass in a ring and a dark sheep is eating by himself.\nA sinister SOB smoking a cigarette holding a blood soaked baseball bat in a dark demonic oom.\nA hotdog is sitting with fries in a paper car on a plate.\nA news paper sitting on a floor next to a toilet.\nA black and white image of quite a few Zebras. \nA back pack by itself next to a backpack with beer, fruit and snacks.\nA brown and white animal laying on top of a bed.\nA river with boats docked and houses in the background.\nA park bench siting next to a tree next to a  park.\nA skier stands next to skis stuck into the snow.\nStop signs on a school bus are opening up.\nA cow getting relief as it is being milked. \nA man holding his song while he brushes his teeth.\nThere are pictures of flowers in the bathroom.\nA small cat laying on a couch in a room.\nA baby girl sitting in a chair holding a white teddy bear.\nA picture of a man that is posing for a picture.\nSeveral people are at a podium holding a frame while a man in a suit looks on.\nA man leading two elephants down a road.\nA restroom filled with graffiti and two toilet stalls.\nA tennis ball is coming toward a man\nA man holding a white frisbee standing on top of a field.\nTwo boys with glove and helmet playing baseball\nA man riding skis down a snow covered slope.\nA man holding a cell phone with a pack of Marlboro Lights on his lap \nA man that is standing on a skateboard in the street.\nTwo cats staring out a window at a squirrel.\nA laptop that is sitting near a desktop.\nTwo peanut butter and jelly sandwiches sliced in half\nA giraffe drinking water from a  river on a beach.\nA bird that is on a tree limb.\nA man and woman lie on the couch as a cat sits between her lap.\nA man and a woman sitting on a bench at a tennis court.\nA piece of chocolate swirled cake on a plate.\nA stop sign with a suggestive sticker below it.\nA table is neatly made with whine glasses. \nThese platters display healthy food choices of two entrees with a side  vegetable and fruit\nA white vase filled with purple and green flowers.\nA cake cover is made to look like a wire birdcage. \nA cat laying on top of a table in front of a mirror.\nA red light is a wonderful contrast to the pink leaves on trees\nA white plate topped with broccoli and a dumpling.\nTwo zebras standing outside grazing on some grass.\nA man in a wet suit riding a surfboard on a wave.\nA group of people sitting at a table with food.\nA yellow bus is on a street near a black guard rail.\nMan and two boys sitting in a corner booth of a restaurant.\nA large bed sitting next to a small Christmas Tree surrounded by pictures.\nA stop sigh on a post with two buses in the background.\nA man standing on top of a base on a field.\nA cat laying on top of a couch next to a computer mouse.\nBuses parked on a road outside a large bus station. \nTwo bears with their mouths open in the water.\nA meal consisting of french fries, a hot dog and condiments.\nA woman standing on ice holding skis in flip flops.\nTwo zebra standing next to each other on a lush green field.\nA city street with many signs including street signs, no parking signs and traffic lights.\nThe cat is standing by the rocking chair in the living room. \nA bearded, bald man wears a multicolored tie.\nTwo speed motorcyclers turning a corner very sharply\nshirtless skateboarder going down a ramp on clear day \nA herd of elephants standing on the side of a river.\nA little girl putting a carrot in her mouth.\nTwo giraffes that are standing in the grass.\nthere is a man on a surf board in the ocean \nBicyclists riding down the middle of a city street.\nThere is a yellow fire hydrant on the side of a street.\nA hawk is standing over the remains of another bird.\nA man holding a tennis racquet as a tennis ball approaches him.\nA couple of elephants standing next to each other.\na jetblue plane sits on the tarmac at an airport\nA woman sitting in front of a white refrigerator freezer.\nA hotdog is in a bread sandwich bun.\nMale tennis player about to deliver hit to tennis ball.\nA fire hydrant is standing amid some grass.\nA few birds are on the roof of a house.\nA young boy rides his skateboard amongst pedestrians.\nA man riding a snowboard down the side of a snow covered slope.\nA stop sign is sitting in piles of snow.\nA man in a red shirt in a bathroom with two mirror and a photo\na close up picture of a giraffes head\nA person that is holding  a surfboard in their hands.\nKids enjoying the skateboard park on a sunny day\nTwo rows of various makes of parked motorcycles.\nA twin door refrigerator in a kitchen next to cabinets.\nTwo young men playing a game of frisbee on a lush green field.\nA wooden counter with broccoli, onions and chicken on it\nA red fire hydrant sitting in the middle of a sidewalk.\nCook preparing a meal in folded bread at a food stall.\na kid is riding a skateboard on a ramp\nA restroom hanging off the side of a building over a mountain.\nA room filled with furniture and hardwood floors.\nA cupcake on a plate on a red checkered tablecloth\nTwo giraffes in a outdoor shelter under a net.\nA woman exercising a brown horse in a riding ring.\nA man sitting on a couch in a black suit and tie looking impatient. \nA cat with a yellow bow tie on.\nA cow is laying in the middle of a field with flowers.\nTwo elephants are touching trunks through a fence.\na lady that is laying down on a blanket\nA woman holding a child and standing near a bull.\nAn outdoor area with many animals inluding a zebra and a rhinoceros.  \nThe grey cat with white feet sits on a televsion set.\nA row of wine glasses sitting on top of a table.\nA group of elephants walking across a grass covered field.\nA young man playing frisbee while people watch.\nA man who is making some gestures in front of a street sign.\nA man is holding a wii controller while a Super Mario Bros book appears in the background.\nFive yellow bananas and one orange orange together\nA dog is laying on a dirty bathroom floor.\nA dog laying on the dashboard of a vehicle.\nTwo giraffe standing next to each other on a grass covered field.\nThere is a white horse pulling a trolley behind it.\nA man holding the bridles of a horse.\nTwo women looking at three giraffes behind a fence.\nA low flying commercial plane passing tall  buildings\nA man sitting on top of a bench with a newspaper.\nA little boy is holding a carrot stick.\nA person on a skateboard on the road.\nA woman holding a racquet on a tennis court.\nA young man is doing a trick over some stairs.\nA man with a surfboard is in a crowd by a tent.\ntwo kids standing outside flying a kite during the day\nThe pancakes are topped with jelly and whipped cream. \nA dog by a bench in a park \nA man sitting down at a table having a sandwich.\nYellow flowers in a vase on a windowsill. \nA small desk with lamp, phone, and laptop on it.\nA bunch of surfboards that are in the sand.\nTwo green freight trucks parked on the side of the road.\na number of baseball players on a field\nA man posing for a picture while holding a skateboard.\nA red and white train traveling along a mountain road.\nA sheep standing on top of a rock. \nTwo women are on a set of brown stairs.\nDoorway view into a bathroom with a sink, toilet and mirror.\nA cross country skier passes an individual on a trail\nSeveral people dressed as knights on horses in a courtyard.\nA woman is standing in front of a stove\nTwo men sitting on a couch, one holding a Wii controller.\nA girl with blue hair is taking a self portrait. \nA large tall tower with a clock on the top.\nA mouse sitting on book, with a Microsoft logo on it.\nA street sign that has been altered with graffiti.\nA large brick building is sitting behind a tree. \nA large gray elephant standing on a lush green field.\nA herd of zebra standing next to each other in a field.\nA dog sitting in front of a brown wooden door.\nA piece of paper sticking out of a rock with a pair of scissors on top of it.\nA pizza next to two calzone's in boxes on a table.\nA guy on a snow board up in the air.\nTwo adorable dogs side on opposite sides of a pot filled with beautiful flowers.\nA line in front of a black lunch truck.\nTwo black bears climbing up a lush green tree.\nA person walking through the snow near a fence.\nA small model figurine set for Back to the Future. \nA filled plate of Chinese food with broccoli\nA man wearing glasses lays in bed next to a cat.\nA player is attempting to catch a Frisbee.\nThe kitchen is clean and ready to be used. \na man is on his laptop and so are others\nAn orange detour sign hanging from a metal pole under a cloudy sky.\nA couple of men riding on the back of an elephant.\nA pair of rusted scissors stuck in a stone sculpture.\nA snowy city street with a french stop sign.\nA room with a fireplace and a wooden table.\nA carrying a surfboard while walking across a beach next to the ocean.\nA guy riding a skateboard on the road with a long pole.\nA car that seems to be parked illegally behind a legally parked car\nA giraffe walks leisurely through the tall grass.\nA man riding a skateboard down a street.\nA group of people cross country skiing through a forest.\na dog jumping to catch a frisbee in a yard\nA very cute giraffe making a funny face.\nTwo people walking down the sidewalk with each other near a Street\nA whole lot of zebra's standing in a field.\nThe older woman is admiring the peacock walk.\nTwo zebras are standing together next to the fence.\nA plate topped with a sandwich and french fries.\nHorses communing with each other on a shady street.\nA couple of cats in a small room.\nA brown desk with a wooden chair in a classroom.\nA parked silver subway train next to a platform.\nA bus stuck in traffic on a busy highway.\nA light brown bathroom with a white toilet and sink.\nA man riding a bike next to a bus down a street.\nA large group of birds in the water.\nA police office standing on a street corner next to a power box.\nA group of lawn chairs sitting on top of a beach.\na male is typing on a laptop and there is also a paper and a cellphone on the table\na large gray elephant standing next to a crowd of people.\nA cop on brown horse on sidewalk next to truck.\nA man pointing at something by people with glasses and wine bottles.\nA red train on tracks next to a building.\na couple of dogs that are sitting in a boat\nA woman and a man walking down a street carrying luggage.\nTwo people on skis in snowy area next to a barn.\nA black table topped with food and a smart phone.\na flat screen TV embedded in a restroom mirror.\nA place mat is displaying an ornate glass along with a bottle of liquor.\nThree people with a video game remote in their hands. \nA man sitting on a bench with a tall building behind him.\nA tennis player in an orange shirt and black shorts holds black tennis racket on a tennis court surrounded by onlookers.\nA baseball player swings through the pitch while the catcher awaits the ball.\nA woman hitting a tennis ball with a racquet.\nTwo men are playing tennis one of them is serving the ball.\nA red stop sign sitting on a street topped with two green street signs.\nSeveral cars are parked in front of a building.\nA shot shows pale blue wall over a well-stuffed blue couch that dwarfs the already small, fluffy dog resting face-forward on one of its cushions. \nA long red boat traveling under a bridge on a river.\nA bed covered in a ten sitting on a beach.\nThree boats travel around a calm, clear harbor.\nFood on a train with a pie and some vegetable\nThree horse drawn carriages in front of a huge house with a clock on it. \nSmall child in black outfit riding on the back of a skateboard. \nA swan is floating down the river by the boat.\nblack teddy bear placed in front of mirror\nA young woman holds a cell phone to her ear.\na hummingbird flying above a bunch of small red and white flowers\nA fire hydrant sitting on the side of a street.\nA dinner table with candles and vases of flowers.\nA man is standing on the beach playing with a Frisbee \nThere are bikes parked next to the cars.\nan old woman is in front of some food on a table\nA man standing next to a light and a sign.\nWell stocked refrigerator with food and beverage items.\nLilies in a vase are set at the foot of a white canopy bed.\nA dog curled up on a mans shoes.\nA group of five people holding tennis rackets with a tennis ball.\nA very tall castle sitting under a cloudy gray sky.\nA bunch of groceries are piled onto a table. \nA large kite with three orange, white and black fish.\nThe zebra is confined within the wire fence.\nChild cutting piece of pink paper with scissors.\nA group of cows walking back out of the water\nA cooked pizza sitting in a pizza box.\nThe horses are walking side by side in the grass\nThe side of a chartered bus painted with a red horse.\nA blue street sign with a cartoon cop warning about drinking and driving.\nA kite flying over a wave filled ocean under a cloudy sky\nA large black dog sitting on to of a trucks flat bed.\nThe batter prepares to run to first base after hitting the ball.\nA boat traveling down a canal with a blurred background.\nA herd of sheep standing on a grass covered hillside.\nA dog in a cage looking out of the cage.\na man holding a piece of pizza in front of a kid \na vintage photo of some people waiting for a bus \nA black and yellow fire hydrant on a city sidewalk.\nA woman in green sweater eating a hotdog by campfire.\nA sexy young lady holding a tennis ball and tennis racquet.\nSeveral horses are seen milling about this grassy area.\nA close up of a teddy bear laying under a blanket.\nA vase filed with flowers and plants on a book shelf.\nA train traveling down the train tracks along the country side. \nA tennis racquet next to a pair of boots\nA little girl taking a bite out of a apple. \nA gold and white clock on street next to a building.\na person riding a surf board on a wave \nSeveral buses and cars driving down a busy street.\na group of people sit around a big table \na child is brushing her hair in the mirror \nA woman that is sitting on a motorcycle in the grass.\nA close-up of a plate of pasta containing broccoli.\nMan on a beach holding a red and yellow surfboard.\nA refrigerator filled with food and almond milk. \na man waiting for a bus at a stop on a corner\nA tie that is sitting on top of a shirt.\nA group of guys in a field holding discs.\nA wooden bench sitting on a lush green park.\nseveral motorcycles are parked next to each other\nA boy catches a ball as a player slides to the base.\nA young man riding a skateboard down the side of a ramp.\nA large sign sitting in a field with a broken down fence.\nMushrooms are used in many variety of dishes\nA farm with a herd of cattle grazing on it's green open fields.\ntwo brown dogs are laying next to each other\nA woman standing in front of an oven near another woman.\nA burger sitting on a table, with another next to it.\nA man that has fallen off a bucking horse at a rodeo.\nA man that is holding an umbrella in the grass.\nA group of people standing around a lake.\nA baseball player holding a bat standing near home plate.\nA group if oeople gathered together to take a picture in the office\nA snowboarder in the snow smiles at the camera.\nA motorcycle parked near a fence by a beach.\nArtistic photograph of architecture and frost-laden trees at dawn\nA man in a suit with a blue tie and vest.\nA river with lots of trees on the river banks and a bridge in the middle of the river.\nA hot dog on a plate with sauerkraut and some small green pickles\nA man in white shirt on bicycle with a dog riding in the back.\nA snowboarder is high in the air holding onto his board with one arm flailing.\nPeople are lounging on the beach under umbrellas.\nA cat sleeping with its head resting on a sneaker.\nA green utility truck is parked on a street while a man climbs inside.\nA woman holding a case with a  laptop inside\nThree giraffes are eating and grooming each other.\nA group of giraffes inside of an enclosure.\nA wooden bench in front of some trees.\nA cat curled next to various items and accessories. \nA woman in white shirt climbing onto an elephant.\nA tired cat lies on a couch next to a laptop.\nA kitchen full of stainless steel cookware. \nA young girl eats a pastry in front of a mural of Paris.\nA small boy pushes a pizza into an oven.\nAn airport with large jetliners and a bus traveling on a tarmac.\na man standing in front of a blue wall \nThere is a two level tour bus in the street.\nSmall kitchen with white cabinets and white appliances with a city view. \nA guy holding a horse while a little girl pets it. \na team of pizza makers holding a fresh pizza\nA large bird that is standing on some rocks by a river.\nA red light that is on a pole.\na hydrant at the street well closed with chains\nA sign warning bike riders to reduce speed.\nA man and a lady holding up some cameras near each other.\nA couple of zebra standing next to each other.\nMany small motorbikes are parked along the street. \nA man and a woman floating on a surfboard in the ocean.\nthree women holding up teddy bears taking a picture\nA statue on top of a giant clock tower near a flag.\na group of guys showing off a cow to an audience. \nA bus driving down a road next to a park.\nOranges and a leaf are in a silver colander.\nA field filled with baseball players playing a game of baseball.\nA raw piece of broccoli with something growing from it. \nA table topped with a cake and eating utensils.\nA man kite boarding over a large body of water.\nA photo of a grassy hillside with several sheep grazing.\nA picture of two kids eating some food.\nA group of skiers on a snow covered hill.\nA cat and dog walk alongside each other.\nA city street with no traffic line with traffic lights.\nAn adorable cat rolling around on it's back while holding a toothbrush in it's mouth.\na person swinging a tennis racket hitting a tennis ball\nA man sitting on a wooden bench near a lake.\nBlack and white photograph of officers on horses.\nA collection of items from a bag laid on floor.\nTwo blue bowls of food next to a bottle of cinnamon and sugar.\nA COUPLE WEARING HEAVY COATS LAUGHING WHILE EATING PIZZA.\nA sea gull walking along the sand and surf.\na man playing tennis going for a low ball\nA man sitting at a table in front of bowls of food.\na motorcycle is hanging in the air with plants on it\nA young man jumps to catch a Frisbee on a playing field.\nA group of people playing frisbee in the grass.\nThree giraffes in an enclosure are in different poses.\nA road where cars and motorcycle are parked at the side.\nTwo rooms of a house are left in disarray on moving day.\nA man carefully places the food on the pan as a small crowd watches.\nA metal sink with a cupboard of knives sitting on it. \na male in a brown and white shirt eating a sandwich\ntwo women loading their bicycles onto a bus rack\nA stop sign that is decorated in a tropical environment. \na bunch of computers  on a desk with a phone\nToothbrush holder that contains three toothbrushes and a tube of toothpaste\n a partially eaten sandwich and a soda\nA living room display at an Ikea store\nA man sitting on a bench with his tennis racket getting ready to play a match.\na man riding a red bicycle watching a bird in the water\nA busy street at night with parked cars on the side.\nTwo trucks parked on the side of the road near each other. \nA woman holding a tennis racquet on a tennis court.\nTwo soccer teams playing against each other on a field.\nGroup of people outside and one pointing up to the sky.\na business man posing for a stock photo and cheesin mad hard\nA table full of food including bread, vegetables and fish.\nA brown glass on the table for display art\nA thick piece of pizza with two mugs of beer.\na person feeding seagulls on a beach near a lighthouse\nOne person standing and another bending over in the foreground.\nA white toilet tin a bathroom sitting next to a sink.\nA vase that has wheat inside of it.\nA bed sitting on a hard wood floor.\nTwo pretty zebras grazing together near a metal structure.\nA group of motorcycle cops riding down a street.\nSliced apple in a bowl covered in cinnamon.\nThese are two very red sporty cars that are parked in the lot.\nA woman with a hat, tie and striped halter smoking a long cigarette.\nA couple of kids sitting in front of some pizza.\nA man riding a kiteboard over the ocean under a cloudy sky.\ntwo calfs walk side by side in a pen on a sunny day\nA plate containing servings of meat, broccoli and beans.\nA man holding a bat to hit an incoming baseball during a game.\nA picture of a night time scene featuring a building with a large clock.\nA living room with sofa, chairs and a television.\nTwo zebras graze on grass inside of an enclosure. \nA child that is playing on a toy out in the park.\nMan using a hair dryer in a small bathroom\nThe fire hydrant has some writing on its side.\nA man surfs outside in the rushing rapids.\nA mother zebra with a baby zebra as it nurses off her tit.\nA man holding a book while sitting down.\na couple of people are standing around a fridge\na family is gathered around a table for dinner\na person on skis with ski poles skis in snow\nThe man has enjoyed many years as a surfer.\nA cat laying on top of a blanket on a bed.\nBears lope over the ground in a dry landscape.\nA man standing with an umbrella in one hand and a flashlight in the other\nA measuring cup with melted butter is inside the microwave.\na bus that is parked next to a street \nA man riding a wave on to of a surfboard.\nA young man is sitting in a chair playing a video game.\nA bicycle sitting beside a black door and steps.\nA young child squats down in front of a bowl.\na person on a snow board laying on a snowy surface\nAerial tricks performed on red bike over stacked skateboards with photographer in background.\nA pile of broccoli sitting on display in a grocery store.\nA pigeon is sitting on a stone ledge.\nA train traveling down tracks next to a  building.\nA photo of a marina with boats at dusk.\na stuffed animal is on the table nest to some leafs\nA man is coming down a ramp on a skateboard.  \nA dog is lying in bed with its head on a pillow and it is sleeping.\nTwo men playing a game of frisbee together.\nFoot long hot dog in a bun with cheese sauce.\ntwo giraffe heads standing close to each other\nA laptop computer sitting on top of a desk.\na large piece of pizza on a big white plate\nTwo teenage boys are flying kites on top of a hill.\na toilet with many rolls of toilet paper next to it\nA crow approaches a cardboard pizza box on the ground and opens it\nA teddy bear laying on top of a bed next to a table with beers.  \nA person on some skis in the snow.\na group of boats parked next to a dock in the water\nSmall children are eating from plates of pizza.\nA shorn sheep behind a chicken wire fence\ntwo mid size police vehicle parked with two man standing outside them\na yellow stuffed animal a black purse and a one dollar bill in a suitcase\nA woman sitting at a counter putting icing on a cake.\nA woman in a store examines one of many suitcases.\nBurger with broccoli, pickle, and fork on orange plate \na man sits in a trunk while petting a dog \nA person is riding a motorcycle with dogs in a cage on the back of it.  \na close up of a bath room counter with items\nA group of people with umbrellas walking down the street\nFiretrucks are on a rescue mission next to a market.\na person riding on a horse drawn carriage\nA couple of young men standing next to each other.\nA airplane that is sitting on a runway.\nA woman hovering over food on a wooden table.\nThe stop light has a picture of a bike. \nA toilet sitting on the ground near a wall.\nTwo adult zebras near a baby zebra eating grass. \nA group of people walking down a sidewalk holing umbrellas.\nA banana, peanut butter and turkey sandwich sitting in a container.\nA table is adorned with cake, berries and bagels along with other empty dishes. \nA collection of several items that are placed near each other. \nA couple of hotdogs are on a plate\nA group of white appliances sitting next to each other.\nA woman looking at the screen of an apple laptop.\nA room full of guys and girls sitting a various tables, some have laptops and food. \nAn old rusty truck is parked on a grass field.\na tennis player attempting to reach a tennis ball\nA polar bear balancing on a barrel in the snow.\nA blue and white bus parked in front of a motorcycle.\nA woman holding food up to her mouth.\nthere are two very large beds inside of this room\nA blue vase filled with an orange flower.\nA man hitting a ball with a bat while two other men watch.\nA cool looking kite that is on the sand.\nA white toilet and some tools in a room.\nThe computer desk has a small pad of notes, and an mp3 player on it.\nSheep grazing in large grassy field near hillsides.\nA black train with smoke coming out of it on a track. \nA cat eating a part of a person sandwich \nA beautiful beach scene with a young man approaching with his surf board\nThe couple are dressed up and posing for photos.\nA woman sitting at a table inside of a kitchen.\ncars that are stopped at a traffic light\nA girl is flying a kite high in a blue sky.\nTwo apples and a bowl and jar of applesauce on a cloth.\nA white toilet sitting inside of a bath tub.\nPerson surfing on surfboard with waves and trees\nA person surfing in the middle of a wave.\nthree little girls and one has a tennis racket\na pizza next to a glass of beer \nAn elephant walks through the grass of a field.\na stuffed animal sitting on a chair in front of a laptop\nA young girl is watching a movie of some sorts on a flat screen. \nA mirror reflecting a crowd of different people.\nA green street sign sitting below a large tree.\nThree people ride an elephant near a wall.\nA couple of cats laying on top of a brown chair.\nA yellow plate topped with bread and slices of fruit.\nA man walking next to a girl holding a pink umbrella.\nA group of three vases sitting next to each other.\nA car parked on a lush green field.\nA dirty table has incense burners on it.\nA baseball player is waiting his turn to catch the ball.\nA yellow and white train traveling down train tracks.\na white red and blue jet some lights water and a hill\nAn adorable little blonde girl standing on top of a box.\nCrackers with spread on table with remote in background\nA man wearing a leather jacket with a bald head.\nA sliced pizza with cheese on it is shown on a plate.\nAn opened fire hydrant spewing water into the street.\nA person preparing a WII remote in order to play a game.\nA man in a suit is wearing a lit up tie.\nA woman flipping over in the air while riding skis.\nMixed assortment of fish rice and vegetables with carrots.\nA rainbow cake with white frosting and a slice cut out.\nA little boy sitting on the floor in his pajamas.\nA parking lot filled with buses parked next to each other.\nA couch and a chair in a small living room.\nThere is a broken pink fire hydrant on a sidewalk\npeople at a restaurant with a plate with cheese cake\na brown brick house with so many windows\nMotorcyclists and a bicycle are parked on a yard.\nA woman hitting a tennis ball on the tennis court \nA man riding a skateboard down the side of a ramp.\nA man slicing up an apple on top of a wooden cutting board.\nA woman is laying on top of a suitcase. \na person walking across the street with a traffic light above\nThe ocean inlet is a favorite place for boaters.\nthere are many surfers that are in the water\nTHIS IS A HUGE SHIP THAT HAS LOTS OF PEOPLE ABOARD\nA man riding a horse in front of a fence.\nA man is leaning over a fence offering food to an elephant/\nA man on a snowboard flying through the air\nA man wearing a helmet suspended from the air by ropes.\nTwo women stand and talk on the beach while holding surfboards\nSeveral umbrella's and chairs gathered around at a beach.\na snowboarder and a snow skier are posing for a picture\nA group of people in ski wear and skis standing in the snow next to each other.\nA couple of people sitting at a dinner table filled with food.\nA large elephant standing on the side of a lake.\nA bear that is latching on to a tree\nA man balancing on a skateboard in front of a graffiti covered wall.\nA boy swinging a tennis racquet on a court with other kids.\nA white plate topped with onion rings and a corned beef sandwich.\nsome males a playing with a white frisbee\nOrange sitting on a plate next to bananas on top of a table.\nThe people are feeding the giraffe at the zoo.\nA shelf with a vase filled with green plants next to a vase with a face.\na red white and green fire hydrant and a fence\nA sandy beach filled with lots of people standing on top of it.\nA bamboo bench with a backpack sitting on top of it.\nA kitchen with white appliances and a window.\nThe front of a house is next to some trees.\nA single cow laying in a grassy field\nthere is a white van that is stopped on the road\nA single toilet on black and white tiles.\nA dog is sitting on an unmade bed with pillows.\nAn old church with a clock on it is seen here.\ntwo people make a purchase at a bakery\nA flat screen TV next to a fire place in a living room.\nA group of people standing on a grass covered shore.\nA large blue train on a steel track.\nA double decker bus sitting in front of a bus stop.\nA herd of giraffe standing next to each other near a forested hillside.\nPeople are standing in front of a building across the street from the western sign \nA man riding a wave on a surfboard in the ocean.\nA glass mug being used a vase for white and yellow flowers.\nA woman is taking her picture in a mirror.\na man sitting at a desk in front of a laptop computer\nA clock tower is in the middle of the city with clocks\na plane flying by a bright moon in the sky \nKids smiling and showing sportsmanship after a little league game of baseball.\nA library or store is full of books.\nA man standing next to an elephant who stole his hat with it's trunk.\nA very clean bedroom with two beds, lights and a TV.\nA plate of Asian meat next to a bowl of white rice and a cup of tea.\nThe bowl of cereal is next to a smaller bowl of fruit. \nA knife about to cut a birthday cake in pieces.\nThe skateboarder wears headphones while jumping to grab his board.\nA bird perched on top of a leafless tree under a blue sky.\nA plate with a sandwich with an egg and French fries.\nA person riding a wind-sail on top of a body of water.\nsome purple flowers are in a green vase\nA couple of sheep standing next to each other on a field.\na cow standing by a tree and looking at other cows \nan athletic dog playing with a frisbee in a grassy field\nA kitchen with an oven and a dishwasher.\nCloseup of a cellphone device with various buttons.\nA view of a snowboarder's own legs and feet with a snowy hillside behind.\na person holding a surf board on a beach \nA man is standing next to some train tracks\nA fire hydrant sits in front of office buildings. \nA man is taking a picture of his bathroom sink.\nA row of wooden benches sitting under a covering.\nA light house on an island surrounded by sail boats.\nA man on a motorcycle that is on a road that has grass fields on both sides and a stop sign.\nA man with a green tie has his arms around the shoulders of two boys.\nA plate of bread with jam and powdered sugar on it. \nThe woman in the dress is holding her drink.\nThe airplane flies low to the ground during sunset.\nThe building has a tall tower with a clock.\nFive pure brand toothbrushes in a closed package\nA rear view mirror sitting on the side of a yellow bus.\nA large calico cat resting on a pillow.\nAn orange carved to look like a jack-o-lantern is next to a knife.\nA public bathroom with a bunch of urinals.\nAn airplane close to the ground with its landing gear dropped\nA pretty lady wearing sunglasses holding a white frisbee.\na beach with people and sand with a view of the water\nA little boy that is standing in the dirt next to a basket.\nThe man is surfing on the water with his yellow board\nA potted vase of fresh wildflowers on a table in front of a rock facade.\nCooked broccoli and cauliflower covered with creamy cheese.\nA group of military men cutting up a sheet cake.\nA fresh pepperoni pizza seems to have a couple of slices missing. \nThree dogs standing together, they all have leashes on.\nA large black dog is laying on a rug.\nA cats sits on the table with a dog outside.\nA sepia toned photo of a baby snuggling with a giant teddy bear.\nA girl chasing after a soccer ball with an opposing team member close behind\nA white toilet in a white tiled bathroom.\nGiraffes in their wood and grass zoo enclosure\nA group of people are unloading from a bus.\nA cow that is grazing on some grass.\nA blender filled with liquid sitting on a kitchen counter.\na few big buildings with roads next to them\nThree pieces of luggage sitting on a floor in front of a curtain.\nA brown horse poses on a very green grassy field.\nA man riding on the back of a brown horse.\nA red and white train with graffiti on it.\nA young woman holding a tennis racquet on a tennis court.\ntwo men dressed in suits covered in images of clouds under umbrellas\nA man poses his tennis racquet as a ball comes towards him.\nA man is standing on top of two horses and holding the reigns.\nA man is flying a kite in the air.\nTwo men are riding horses down a city street.\nA family of swans swimming on top of a lake.\nA woman looking into a refrigerator filled with food.\nA close-up of grains and pastries on a table.\nA Calico cat laying on the hood of a Mercedes.\nFour male surfers carrying their boards on a sandy beach.\nA plate topped with pasta and and onions.\nA large cake shaped like a cup covered in coco powder sitting on a white cutting board.\nA giraffe that is laying on the ground.\nA man flying through the air while riding a snowboard.\nThis motorcycle is parked on the side of the grass.\nA bus stop is decorated with blue brochures.\nA man standing near an elephant with its trunk outstretched.  \nA group of zebras are standing in a field.\nAdult man sitting at table while using electronic equipment.\nA hotdog is smothered in cheese and mustard and sitting next to onion rings.\nA group of people that are sitting in a boat in the water.\nA computer and keyboard sitting on a cluttered desk.\nA woman sitting on a bus while holding a brown dog.\nA tennis player in an orange skirt walks off the court.\nA man playing tennis leans in to swing at the ball.\nA boy holding a bat while standing next to a baseball base.\nHis and her bathroom sinks underneath a large mirror.\na cat next to a blue chair and a deck\nA lot of people that have some animals.\nA toilet and bathtub in a dark room with abnormal plumbing.\na person is jumping up with a tennis racket\nA row of bathroom toilets by a green wall.\nA little boy in a hoodie holds a racquet\na calico kitty sleeping in an orange chair \nThe motorcycle is tilting as he turns through a cave. \nA statue of a person holding an kite next to a child.\nA person on a surfboard jumping out of the water\nAn old green pickup truck on a flatbed truck behind a fence.\nAn assortment of fruits and vegetable all set together\nA man wearing glasses standing next to an airplane.\nTwo people sitting on a dock eating sandwiches\nA red motorcycle is parked in between white lines.\nA plate topped with slices of banana next to a  knife.\nA train traveling down train tracks near a city.\nKid seductively eating a hot dog at a baseball game.\nA man at a skate park showing a trick on his skateboard\nThree young men playing Wii on a projection television.\na small sheep is laying in a field\nA pair of zebra's eating grass on a field with flamingos in the background.\nA full view of an outdoor space with many things to see. \nA man flying through the air while riding a skateboard.\nA locomotive is on the tracks along side some trees.\nA class picture of the Goodmayes Boys' School in April of 1929.\nA kite flying over a city park on a windy day.\nThree cross country skiers make their way across a snowy field.\nA close up of a small nice looking pizza on a plate.\nThis room has a wall with a mural on it.\nA picture of a bathroom with a sink and tolet.\nA group of people and elephants on a street.\nA full view of a home office with many computer screens. \nA man riding a snowboard off the side of a ramp.\nA man in a necktie smiles for the camera at a table with other people. \nA guy is windsurfing on a cloudy day.\nA pizza sitting on top of a pizza box covered in cheese.\nThe group of people are skiing on the snow. \na yellow bus that is next to a curb\nPizza on a wooden table being cut into slices.\nA shaggy haired sheep looking up in a field.\nA large pepperoni and mushroom pizza being cut\nThe girl is sitting inside the broken fridge on the side of the road. \nA dog in a mirror with a person in a room.\nA couple of horse, zebra mutants standing in a field of grass surrounded by a crowd.\nThe young girl runs toward the net to meet the tennis ball.\nA bathroom area with a  sink, cabinets and a tub.\ntwo people on motorcycles car and trees and water\nA man seated at a dinner table with a laptop computer having a conversation with a gentleman. \na woman seated on a toilet with a magazine\nA couple of men standing next to each other at a ribbon cutting ceremony.\nOn a small stage, a stylish motorcycle sits on display.\nA woman using a blow dryer on a ball of newspaper.\nAn old red truck sits in a driveway.\nA boat sitting on someone's lawn near an abandoned brick house. \na brown horse with a mask behind a fence\nA black cow with horns standing on a field.\nA  single street sign with information regarding parking.\nA bus is driving down a road with cars behind it.\nA close up view of a giraffe in front of a palm tree.\nA surfer riding a wave in the ocean on a sunny day.\na couple of players are out in a baseball field\nA couple of teddy bears dressed as astronauts.\nA large blue bus parked by a tree.\nThere is a man looking at a lot if hot dogs in a bun in a pan\nA woman holding a tennis racquet on a tennis court.\nA woman riding on a boat filled with supplies.\nA disorderly living area is free from decorative elements.\nA red stop sign sitting on the side of a street.\nLooking into the mirror of a residential bathroom\nA group of cattle grazing in a field behind a fence.\nA white train passing on bridge over cars and trucks.\na desk with a couple of computer screens on it.\nA deep dish pizza sitting on top of a white plate.\nA clock tower looms over a valley below. \nI am unable to see an image above.\nA young child with an orange piece around their head.\nA plane has its wings folded up towards the body.\nA panda bear with its hand to its mouth.\nA bathroom with tan walls and fake tiled flooring. \nA picture of two stop lights that are red at a busy intersection. \nA man with his bangs covering his eyes while wearing a tie and dress shirt.\nA laptop computer sitting on top of a wooden desk.\nA herd of elephants standing on top of a field.\nA small white boat floating on top of a river.\nA bathroom scene with a bathtub and a sink.\na man with a jacket and tie with his arms spread out \nA man with a phone raised to his ear with other men.\nA bathroom with a glass door and a sink.\nA male competitive speed skier coming around a curve.\nA standing toilet sitting inside of a bathroom stall.\nA rowing team looks ready to begin on a calm stretch of water.\nA man without a shirt in a park holding a beer and a frisbee. \nTwo men skateboarding in the middle of the street.\nA young boy cuts into a cake shaped like a skateboard.\na cat laying under an umbrella on the ground\nPeople are walking in front of a line of parked buses.\nA cat standing on top of an open laptop computer.\nA zebra grazing on food behind a metal fence.\na collage of photos with people playing frisbee \nThe tennis player is extending his reach to hit the racket. \nA zebra standing on a dirt hillside next to a tree trunk.\nA little girl holding a red frisbee while wearing a pink visor.\nA hand holding a remote control next to a bottle of pills.\nA train station with an awning is depicted with a train on the right platform.\nthere are two elephants that are walking in the wild together\nA plate has oranges and a chocolate donut.\nWaffles on a plate have a gravy on them as they sit near a spoon.\nA woman sitting on a surfboard in the ocean.\nTheir is a boy reading a book and sitting down.\nAn old church building in an urban environment\nA smiling woman sitting on a stationary motorcycle.\nWhite and orange flowers in a glass vase.\nA painting of a woman holding a blue frisbee.\na plate of ripe bananas and red apples\nA train with cars going down the tracks in the country.\nA group of people are watching boys play soccer.\nA white and black bird captured in flight.\nA sign for a restaraunt and bar outside\nA man sitting on a train next to a woman.\na couple of men in ties are outside\nBartender opening a bottle of wine while patron waits patiently\nA man hitting a tennis ball with a tennis racquet.\nA bench overlooks a lush, green valley below.\nA street scene with two buses and a car.\nA vintage truck is parked at an outdoor event.\nA very cluttered area with several books and tools. \nA person sitting on a sled at the top of a hill.\nA woman playing with a tennis ball and racket.\nA lone surfer riding a very nice wave.\nA white plate topped with a fruity dessert.\nA plate of food with a sandwich and fries.\nPeople stand in a city street at a rally.\nAn ambulance and police cars are stopped at the scene of an accident.\nAn orange and white cat standing in front of a flat screen TV\nA stop sign on a post at a public street.\na woman is cooking some food outside on a grill\nA girl with some food and drink at a table.\nA woman holding a pink donut covered in sprinkles.\nA child holds a plastic object while another person cuts it.\nMany flowers are decorated outside of a building.\na male and female and she is holding a white umbrella\nPeople on a boat looking at a plane in the water.\nA macaroni dish with broccoli, onion and tomato\nA large body of water covered with boats.\nAn old fashioned doll is on a narrow bed.\nTwo elephants in a dirt area next to concrete walls.\nA train is moving along train tracks through the woods.\nThe bow of a wooden sailing ship moored at a dock\nA couple of glazed donuts on a plate.\nA lady holding a pan with a big turkey in an open oven.\nA family of five takes a ride on an elephant.\nThe paddle surfer is looking for a big wave.\nA yellow fire hydrant sitting on the side of a road.\nA skier skis down a slope near a ski lift.\nA close-up of the person using a laptop with an extra keyboard.\nA mountain bike leaned up against a bus stop bench.\na man with some drink in hand stands in front of a counter \nA pretty young lady riding a pink scooter on a street.\nSix old men, four sitting on a bench and two standing, conversing.\nSmall baskets of food are seen in this picture.\nA blue love seat sitting on a trailer attached to a bike.\nA boy holding a red frisbee with bushes in the background.\nA bunch of items that are on a counter.\nA small black dog playing with a frisbee.\na child sitting on the ground with a flower\nThe little boy is practicing riding a surfboard at the carnival.\nA traffic light next to a very tall building near a street.\nA baseball player swinging his bat while his team watches,\nAn old Acme factory that is by a stop light.\nA man walking an elephant inside of a circus ring.\nA long line of white urinals in a public restroom.\nThree men are packing fruit in containers in the middle of a factory.\nA red and white boat floating in front of a small brown boat.\nA brown bear standing next to a giant rock.\nA lone zebra stands with some trees in the background.\nA person is walking through the snow on skis.\nAn ornate set of towers n an old church.\nA man with a surfboard walking on the shore near an ocean.\na close up of a vase with different flowers in it\nA large building with two white towers with a crowd of people next to it..\nA street filled with lots of traffic next to tall buildings.\nA red all terrain vehicle next to a man with a green dirt bike.\nThe train is on a railroad track, under a signal light.\nA herd of giraffe walking across a grass covered field.\nA very large double door refrigerator in a kitchen.\nA group of three elephants standing next to each other.\nA person playing with a dog with a frisbee.\nA man in a blue uniform kicking the soccer ball\nAn older man takes a pizza out of the oven. \nA couple of brown horses standing on top of a dirt hill.\ntrain pulling up the track while people wait on the sidewalk\nA pizza box with slices of pizza on it.\nA baseball player standing at home base with a bat.\nA  beach blanket is set up near an umbrella and a stroller\nA group of people fly kites into the air on a large grassy field.\nA counter, sink, and cabinets in a kitchen\nThree small skiing figurines posed on cauliflower. \nA laptop computer sitting on a desk next to a smart phone.\nA planter filled with lots of yellow and red green leafed flowers.\nA double deck tour bus riding below the Big Ben Clock Tower.\nTwo men playing a game of frisbee on top of a green field.\nBASEBALL DIAMOND WITH PITCHER ON MOUND READY TO THROW THE BALL\nsomeone that is standing on top of a skateboard\nExtremely modern bathroom renovation with wood and porcelain\na person holding the string of a kite flying in the sky\nToothbrush sticking up out of water in sink drain.\nA woman on a surfboard riding a wave.\nAn office desk with a row of books and a desktop computer and laptop computer on the desk.\nA crowded street in an Asian country is full of people with umbrellas.\nA Nintendo Wii game console box sitting on a table.\nA city street line with very tall buildings.\nCarrots in a bowl on a metal surface.\nA surfer in black is riding a wave in the ocean.\nA mother zebra letting her baby feed from her. \nA couple posing in front of a bush embraces, touches noses, and laughs. \nThere is an unmade bed in a Victorian style room.\nSomeone is using a small grill to melt his sandwich. \nA dog sitting in the passenger seat of a car.\nA herd of zebras standing together in a field.\nA girl is flying a kite and a woman is walking away from her. \nA dog that is laying down holding a stick.\nA green white with a sandwich on top of it.\nA man is high in the air as he skateboards on the ramp.\nA woman holding a toothbrush looking through a doorway. \nA dog sitting in the sidecar of a motorcycle.\nA white van covered in spray paint next to buildings.\nA man and a woman walking down a street carrying dogs, a kid and luggage.\nA bed suspended over a pile of luggage.\nA mother elephant nuzzling her young, baby elephant.\ntwo dogs hogging a bed by them selfs\nA street sign showing they are making improvements\nTwo cats are sitting on a laptop computer.\nA couple of giraffe standing next to each other.\nA black and white photo of people at a train station \nA cat sitting on a window sill near a window.\nA man in white shirt and black shorts playing tennis.\nA cup with two toothbrushes and toothpaste in it \na close up of a street sign on a street corner\na small boy in an orange shirt a baseball glove and ball\nA dog lies in the road chewing on a toy or a donut.\nAn orange fire hydrant with a face and bow tie drawn on it. \nA bunch of suitcases that are on a cart.\nA gray tiger cat sitting at a wooden table on a chair.\nA giraffe looking over a bar inside a building.\nLOTS OF PEOPLE AT THE AIRPORT WAITING TO GET THEIR LUGGAGE\nTwo motorcycles parked next to each other on a lush green field.\nSome people are sitting around a table and sharing a meal.\nTwo pizzas sitting on top of a wooden cutting board.\nA zebra standing behind a fence in dirt.\nA mama elephant and her two babies are standing alone in their habitat.\nA towel hangs beneath a sink in a bathroom.\nA white and black cat rubbing against a leg.\nA very long kitchen looks kind of messy.\nA little girl playing with an interactive gaming unit.\nA woman taking a picture of kites being flown\na woman sitting on a brick wall while listening to something on a cell phone \nWe are looking a train in the distance.\na brown teddy bear is sitting on a green bed\nA red water hydrant in the field next to a road\na big bear stands next to a lake \nKitchen with refrigerator, range and vent, and white colored cabinets with an oak top.\nTwo white teddy bears sitting next to each other wearing crowns.\nA pan on the stove with vegetables, tofu noodles and water in it\nCloseup of a white plate with a maggot in a piece of broccoli.\nA woman dragging a suitcase on wheels down a cobble stone sidewalk.\na zebra that is standing around in a field\nA picture of a plane that is in the air.\nThe giraffe is sitting in the middle of the grass alone\nTwo sheep one with a bell tied to its neck walking in a green field.\nA giraffe standing outside of a building next to a tree.\nA group of people standing around a red stop sign.\nA cat sitting on top of a seat behind a steering wheel.\nA woman is punk rock school girl combo style walks across a street talking on her phone.\nA cute young woman pets the head of a baby elephant in a zoo.\nA group of people walking on a street and sidewalk.\na big slice of cheese pizza on a white plate \nA person holds a flip phone displaying the screen.\na person standing on a city sidewalk holding a dog leash\nAn old couple sits on a bench by a body of water.\nA small sport utility vehicle that is loaded down with a bunch of luggage. \nA couple of young ladies sitting next to each other.\nA kid standing with a glove by a fence.\nThree people standing next to each other holding ski equipment.\nA woman blow drying her hair, in he mirror.\nMan lighting candles on a white cake held by a woman.\nAn ornate vintage clock with several faces. \nThere is a plate of vegetables that have been cooked\nFour people are looking at a cell phone.\nTwo men are moving and speaking in a park.\nA panting dog sitting down in the shade with a Frisbee\nA laptop sitting on a desk next to a chair and another computer.\na bunch of motorcycles are parked on the street together\n A row of white urinals in bathroom below windows.\nA vase of fresh, colorful flowers on a table\nA red fire hydrant sitting on top of a lush green hillside.\nA boat is traveling in a body of water.\nA person is eating pizza with a knife and fork.\na table with a laptop and asoorted wires on it \nA female tennis player holds her body and racket poised. \nA stop sign sits in front of a billboard in a quiet area.\nA traffic light glows red on a cloudy day\nA bus which is part of the Metropolitan Transit System.\nThree people standing on a grassy hill flying a kite.\nThere are several boats floating in the harbor.\nA man holding a Nintendo Wii game controller.\nA boy putting something in his mouth and smiling for a picture.\nA dual sink vanity with mirrors above the sinks.\nFour people compete on horseback playing playing polo.\nA train passing by an empty platform. \nBlack and white photograph of people at train station.\nA road sign next to a car in a city\nA catchers mitt sitting inside of a blue baseball hat.\nThree pots of flowers are placed on a window sill.\nA bus and taxis on the road in the city. \nA large woman sitting on a bench outside. \nA man in a red shirt rides a yellow surfboard on light blue water.\nA dog walking down the middle of a street next to a store lined sidewalk.\nA small bathroom with marble tiles and counter.\na large castle in front of a clear sky\nA toilet is just inside a bathroom doorway.\nA herd of zebra standing next to each other drinking from a river.\nA picture of a very tall stop sign.\nA giraffe walking through the forest in the wild. \nA bicyclist is riding past a bus that is parked. \nA train with lights on riding down a track in front of buildings.\na person holds a bird on its fingers \na blue sign in the sidewalk of a walking trail\nAn airplane flying through a cloudy sky flying over the ocean..\nA skateboarder doing tricks by a statue at night\nA person standing next to the ocean while flying a kite.\nA pretty lady riding a surfboard while wearing a tight wetsuit.\na white sink and cabinet in a home bathroom\nA passenger train that is traveling down the tracks.\na miniature kitchen with a little fridge, stove and small table and stools\nBlue tram in a city with people boarding\nThe little black kitten is sitting inside a black bag. \nA white clock tower at the top of a tiled building.\nA group of people standing under a white tent on a beach.\nA green truck traveling down a road with a wooden flatbed.\nA doughnut sitting on top of a napkin next to a cut of coffee on top of a doughnut table cloth.\nCar mirror with dog's head reflected on sunny day.\nA street with various buildings on each side and a clock tower.\nA seaport with many boats near some houses.\nA plane parked next to a truck next to a house.\nA group of elephants are standing in the trees.\nAn open refrigerator door on a kitchen floor.\nA pitcher, a catcher, and a man up to bat. \nA table topped with breakfast food and a cup of orange juice.\nA traffic sign in front of large trees and a building.\nA kitchen with many pots and pans hanging on the wall \nOne of the three giraffe is eating from a tree. \nColorful passenger cars are parked at an empty station.\nA soldier hanging form the side of an army transport truck.\na person riding a surf board on a body of water \nCouple wearing hats enjoy a calm elephant ride with tour guide in front\nChives, radishes and other vegetables on a white cloth.\na train near a platform and people walking\nA giraffe peeks from behind a low-hanging branch.\nA clock that is on top of a pole.\nA girl making weird face and holding a lighter.\nthe bike is coming down the street with his lights on\nPeople are throwing a frisbee in the grass near houses.\nA kitchen area with a stove, sink and microwave.\nA woman and two young children holding Nintendo Wii game controllers.\nA man flying through while riding a skateboard.\nA man standing with his arms folded while smiling. \na man that is holding a long hot dog in hand\nA bicycle resting outside of a building door\nA group of people sitting at a table in a room.\nTwo large cows standing next to a small cow in a fence.\nA giraffe and a zebra are in a grassy field.\nA door open to a bathroom with the vanity showing.\nA picture of a bunch of bananas sitting on a table. \na giraffe behind a fence on grass licking the fence\nA bench partially buried in sand on a beach near the ocean.\nA young person riding a skateboard in an empty water channel.\na big bed with a lamp and bedside table and sliding glass leading to a balcony \na close up of a bowl of different fruits\nA horse in bridle being led out of a stall.\nAn adorable dog resting in a chair on a furry mat.\nA baseball player swinging a bat near home plate.\nPeople stroller through the walkway near a giraffe.\nA cat is sitting on a white toilet.\na black bear holding onto a tree as he reaches for a coconut with his mouth\nA partial close up of a computer keyboard and some electronics.\nA red stop sign sitting on the side of a road.\na couple of yellow poles are on the street\nA man riding a surfboard on top of a wave.\nA kid in a field with a muffin.\nBig Ben towering over the city of London with it's massive clock.\nA man riding on top of a wave in the ocean.\nAn upside down and right side up picture of a boy holding a phone.\nSnowboarder sitting for a majestic scenic photo \nA sign for a state fair is under a street sign.\nA little girl is holding a large loaf of bread. \nA view of a bedroom with a very nice setup.\nA sitting man holding a cell phone near a ship.\nA herd of sheep standing on top of a grass covered field.\nA large clock tower illuminated by lights and topped with a pyramid..\nA sweating man hits a tennis ball with a racquet.\nA group of four people standing next to each other.\nA woman standing a surf board using a paddle. \nA white bird walking through a shallow area of water.\nA horse is on a deserted sandy beach with umbrellas.\nA man riding a horse drawn carriage on a race track.\nAn airplane flying through the gray sky with smoke pouring out it's back.\na toilet sits in front of a bath tub\nA red pole with multiple street signs hanging from it's sides.\nA red train is in a train station.\na dog sits in front of a body of water \nA bed in a bedroom next to a slide glass door.\nA white bull is standing still in a clearing.\nA green cake that is shaped to be a train\nThis pizza is cut into eight equal slices.\nA guy bites into a donut while standing beside a waterfall. \nAn orange cat laying on top of a wooden table.\nA large brown dog standing on the side of a white wood fence.\nA person wearing orange pants standing on a bench\nA bench sits in the a garden park. \na close up of a pot with a cell phone \nThe dark skinned man is throwing a fresbee in the park.\nA woman that is sitting down in the snow.\nA man holding up a yellow frisbee while smiling.\nA small bathroom has a toilet, sink, mirror, and a small trash can.\nA bird that is playing in the snow.\nA man with a white shirt and dress pants outside in the rain with an umbrella.\nA young giraffe peers inquisitively at the photographer.\nAn oriental meal of rice, meat and vegetables in black boxes.\nA man sitting at a table with his eyes closed.\nA girl in a soccer uniform playing a soccer game.\nA man and boy in grassy area with a kite.\nA tennis player at a match prepares to return the ball.\nA suited man strides past ornate architectural feature.\nTwo horses with red feathers on top of their heads.\nBlack and white cat sitting on a man's head in front of a storefront.\nA train is going down a hill through a town\nTwo No Parking Signs emphasize the law on this street.\nA room with a couch, table set with dinnerware and a television. \nA skillet contains diced meat and mixed vegetables.\nA red fire hydrant on a concrete block.\nA yellow fire hydrant on a busy sidewalk next to buildings.\nA plate topped with three hot dogs on top of a table.\nThree giraffes in grassy field next to trees.\nAn empty kitchen of a house during the day.\nA photo of a dining venue outside complete with tables, chairs and umbrellas.\nA small girl plays with a soccer ball in the yard\na young boy is holding up some balloons \nA man riding a red motorcycle next to  buildings in front of a street.\nTwo young people laying in two beds in a bedroom under blankets.\nA woman is holding a small bunch of fruit.\nA dinner plate with grilled veggies and some bread.\nA street sign on a tree lined Japanese street.\nTwo people sitting at a table having a conversation. \nA single broccoli floret in a larger garden.\nA bicycle is lying on the sidewalk beside a fire hydrant.\nA young girl is preparing to swing on a tennis court.\nA group of people wading around a large body of water.\nThree metal containers of food, one with meat and pasta, one with fruit and one with bread and dates.\na very larg pizza with some nice toppings on it\nA woman smiling with a cell phone in her hand. \nA sign in front of an airplane warning of no smoking.\nThe wake boarder surfs through the waves on a cloudy day.\nA person using a mouse on a laptop.\na girl with a hat flying a kite on an open range\nIndian man getting ready to serve a yellow ball.\nA grey military jet traveling down the runway.\nCows graze between a peaceful river and a farmhouse.\nAn open laptop computer sitting on top of a desk.\nA large cat laying next to a large orange pumpkin.\nthere is a man that is riding his skateboard on the street\nSeveral older electronics, including cellular phones and a palm pilot with a  broken screen next to each other in white box enclosure.\nA kitchen filled with a stove top oven and a refrigerator.\nSome luggage against the wall of a hallway\nA bathroom with a white toilet sitting next to a white ball.\nA boat traveling on water under a large bridge.\nA green and yellow train riding down the train tracks. \na white tub is in an outside area\nA plate of food and a drink on a table.\nA man hugging a teddy bear while laying on a couch.\nTwo men are using laptops and a child is walking around.\nA passenger train is coming down the tracks\nA cat standing on top of a toilet seat next to a sink.\nThere is an empty cup of coffee next to a laptop and open book at a cafe. \nThe fire hydrant is across the street from street lamps. \nA man raises his tennis racquet as a tennis ball comes towards him.\nA pile of cell phones sitting on top of a table.\nA commuter train pulling into a busy train station.\nFour giraffes in the wild eating from trees.\nA bathroom with a tub, toilet and sink.\na bunch of bowls of soup sit next to a bowl of fruit \nA pickup truck towing a boat on a trailer.\na bed with a pillow and a blanket and some books\nA beautiful white horse pulling a green carriage.\nA large church tower with a clock mounted on it's face.\nA train in a trainstation with many people nearby. \nA black and brown dog digging at an object on a dirt ground.\nA person riding skis down a snow covered slope.\nAn old style portable phone and the bag it sets in.\nA person on skis jumps down a snowy hill.\nA man with a bear wearing glasses in a business suit.\na few drag queens make some cake and eat it\ntoy of tracks arranged in a straight line\nA brown and white cat lying on a bed\nA dog is looking out the door to the outside\nAn horse without a saddle or bridle faces the camera.\nA dog sits in the cab of a state pickup truck.\nDog lying on bottom of enclosed area with people.\nA woman riding a brown horse across a sandy beach.\nThe train engine number 6309 is operated by BNSF. \nMotor vehicles on roadway in urban city setting.\nA man taking a selfie between two mirrors\na man sitting on the end of  a bed in front of a small TV.\nA person riding skis down a snow covered slope.\nA plate filled with a bowl of vegetables and two slices of bread with a spread on them.\nA coaster is shown next to a remote.\nA double decker bus at night on a London street.\nA person with an orange blanket covering them, sleeping on a wooden park bench.\ntwo horses that are standing near each other and having an interaction. \nA beautiful young lady taking a selfie in a mirror.\nA bed topped with lots of pillows next to a table.\nA giraffe stands next to a tree and a lake.\nThis is a picture of a white refrigerator with several magnets on the doors. \nA kitchen scene with a microwave, window, and decorations.\nTwo unattended motorcycles parked somewhere near a red car.\nA group of four bowls sitting on top of a wooden table.\nA woman laying on a bed holding a handbag. \ntwo giraffes are walking around in their pen \nthere is a male baseball player that is at bat at a game\nThe muffins are ready fresh out of the oven. \nMany oranges have been placed inside a bowl.\na white laptop is on a wood desk\nA crowd of people walking down a street next to a traffic light.\nSeveral clocks display the time in different time zones.\nA newly married couple cutting their wedding cake.\nThe living room has pictures of trees on the wall\nA large brown dog laying on top of a couch.\nA vase with various flowers in it on a display case.\nA young man is sitting down with his skateboard. \nA person on a motorcycle is next to parked bicycles on the sidewalk.\nA skateboarder is on top of a cement bowl.\nA man wearing a blue tank top holds out his arm toward a hovering Frisbee on a beach near a lake.\nA young person using a hair dryer near bunk beds.\nChristmas decorations surrounding a clock tower in a town square.\nA person jumps in the air with a tripod in hand.\nThree demonic looking dummies standing next to each other on a snow covered slope.\na couple of people standing on top of a field.\na black and gray spotted cat is sitting on a windows sill\nSkier dressed all in white carrying his skis over his shoulder. \nPerson on tennis court preparing to return a volley.\na person standing with a broken umbrella \nA train pulling out of a train station.\nMixed group of vegetables sitting on a counter top.\nLiving room with white chairs and couches, fireplace and books on bookshelves.\nThree horses are standing outside in the show.\nthree zebras in a field near bushes \nThe lamp shines next to the made up bed.\nA surfer carries his surfboard beneath a tall cliff\nA group of older people around a long restaurant table.\nA flock of swans swims in a bay.\nA surfer in a wetsuit kneels on her board at the end of a ride\nTheir are cars under an over pass at a red light\na large light brown and gray cat sleeping with a television remote\nA group of people eat a meal at an outdoor event\nYoung men playing frisbee in a grassy field.\nA cat sitting on the dashboard of a car.\nThe man is sitting in the small kitchen on a stool. \nfour fighter jets flying through the air in formation\nA woman tending to a brown cow with a rope wrapped around it's mouth.\nA boat sitting on the ground, where their use to be water.\n boy is looking at soetihni or someon at the park with shades on \nA group of rescue workers helping an overturned car\na girl at a kitchen table looking at a laptop computer\nA man flying through the air on top of a pair of skis.\nA fridge with an ice maker in it against wall\nTwo zebra stand near an elephant, and a herd of water buffalo.\nan image of two stacks of pizzas in a box\nSeveral vases on display behind a glass case.\nSome small boats are tied up by a wall.\nI am unable to see the image above.\nTwo refrigerators sitting next to each other in a kitchen with items stored on top of them.\nA bride and groom cutting their wedding cake.\nA box filled with cakes next to other boxes of cakes.\nA bed sitting in a room next to a  lamp and chair.\na variety of vegetables and dip being displayed on a dish\nA boy on a skateboard doing a jump at a skate park \nA bathroom with a small white toilet under a skylight.\nA man riding a horse through rural country side.\nA man kneeling over a white surfboard on the flatbed of a truck.\nA number 41 bus heading to Mt Airy on a road.\nA girl standing on the beach and posing with a surfboard.\nA white toilet in a bathroom with a digital arm rest.\nA red living room filled with furniture and two windows.\nA field filled full of sheep, grazing and eating in the pasture.\nA dog laying down on a pillow and a cat in the suitcase with a water and food bowl nearby.\nThere is one tug boat in the water by the docks.\nTwo red buses driving in a black and white photo of a mostly empty street.\nA demonic looking chucky like doll standing next to a white clock.\nTwo computers that are sitting on a desk.\nMeal of egg \"salad\", apple, yogurt parfait, and lemonade on a narrow countertop.\nA man riding a motorcycle while eating food.\nA skier coming to a stop in white powdery snow.\nA statue of a cow sitting under a sign on grass.\nA group of different appliances sitting on top of a table.\nA group of people sitting on the back of a truck.\nA cat standing on top of a bag of luggage.\nA person on a motorcycle passing a mountain on a road.\nA bed in a bedroom topped with a colorful blanket and two pillows.\nA pizza sitting on top of a white plate on a table.\nA woman is showing off a cake she baked while a man looks on. \nA girl is on her cell phone while waiting for her food order.\nA model standing next to a scooter in the middle of a room of people\nA group of three rams going through the grass.\nA woman smiling with a white birthday cake and a man standing nearby holding a baby. \nA large cheese pizza being served to customers.\na flat bread pizza topped with vegetables on a grill\nA dog standing next to an address marker and a woman holding an umbrella.\nA man making the live long and prosper sign from star trek.\nA woman holding a tennis racquet on a tennis court.\nTwo zebras grazing on some grass with some shrubbery around them.\nMany colored umbrellas hanging from an outdoor open grid ceiling.\nA pretty young lady sitting on a sidewalk next to an older man.\nA man wearing glasses while holding a piece of luggage.\nA horse figurine that is used as a key chain. \nThree giraffe standing next to two zebra on a lush green field.\nThere are some dirt bike riders taking a sharp turn\nA man sitting on top of a toilet with a toy on his lap.\nA motorcycle parked behind a truck on a green field.\nA white toilet sitting next to a toilet paper roller.\nA picture of a kid picking up a ball.\nA look at a white refrigerator and brown cabinets. \nA couple of people with snowboards in the snow.\nTwo people are smiling holding empty wine glasses.\nTwo men playing a video game in a room.\nA pretty young lady flying a kite in the sky.\nTwo teddy bears on a couch with a pillow\nA sign sitting above a store front entrance.\nA man in a blue outfit holding a white frisbee.\nThere are five remote controls lined up together.\nA giraffe and a zebra are on the grass near trees & cars. \na man on a skate board is at a park\nA young woman taking a selfie in front of a bathroom mirror.\nA woman combing her hair with a brush outside at night\nan old man petting a black and white cow\nPedestrian with rolling suitcase heading towards busses in urban setting.\nA man riding a wave on top of a white surfboard.\nA woman standing on a tennis court holding a racquet.\nSheep grazing on grasses on mound on nice day.\nA cat sits in a living room with a television in the background. \nAn old time photograph of a young man.\na desk top with a bunch of electronics on it \nFood and beverage sitting atop a white table top.\na child in an orange shirt and a teddy bear sitting on a bench\nA green shuttle bus taking a turn on a mountain road.\nA birthday cake with a knife in it\nWe are looking at a model train coming down the track.\nA dog and a cat sleeping next to each other.\nA giraffe standing in a lush green field with lots of plants.\nA pair of giraffes and standing with a skyline in the background.\nA statue of a giraffe in a park setting.\nThe man is sitting down on the floor playing a video game. \nA baseball player hitting a ball in a professional game.\nA woman and a child flying a kite on top of a beach.\na group of giraffes run across a field\na person jumping a pair of skis in the air\nA man on a bike looking at a line of semi-trucks in the street. \nAn air plane wing flying over a very large mountain.\nA man that is walking next to a train.\nA very upscale looking hotel room with large bed and a bathroom in the next room.\nA bird resting outside of a boat window. \nA tennis player aims for her return on a blue tennis court. \nA man climbing on a toilet bowl in a closet\nA man holding an umbrella in a  hallway.\nA man holding a stick standing next to a  green hillside.\nThe living room is decked out with various types of black leather.\nA dog looks out through a wire mesh hole in the fence.\nfour men are posing for a picture at an event\na toilet on the ground outdoors in front of a house\nSome very cute cows all lined up in a row.\nA group of people standing around a kitchen next to appliances.\nA street that has all the traffic stopped at a traffic light.\nAn older man standing next to a woman.\nA woman is seen cleaning a perfectly white bathroom.\nAn elephant on a grassy field during the day.\nA red train engine with a large golden bell\nHot dogs in buns with beans and coleslaw is standard fair at most cookouts.\nA woman staniding on the shore holding two umbrellas.\nA kitchen sink sitting next to a toilet.\nA picture of a wooden container with crosses on it.\nA person playing a game of tennis with a racket.\nPeople playing video games while someone watches in a library\nA black and white cat lounging with sleepy eyes.\na little child on little bitty skis in the snow\na living room with a lot of chairs and a little bar in the corner \nA man standing on a beach on a cloudy day with arms spread wide \nA group of people flying many kites in the sky.\nA small child posed in a chair with a teddy bear.\nA bus traveling across a bridge next to a white fence.\nA group of people standing around each other in skis.\nA semi truck is driving down a street.\nA few meters are sitting near an Air plane. \nMan playing tennis in motion with crowd and tennis court\nA street sign with mount pleasant rd. and 630.\nA broken cell phone laying on carpeted ground.\nThere s a van with grafting on thevoutsidevif the van\nA man hitting a baseball with a bat.\nThe entrance for a subway on a city street.\na pizza is on a silver serving tray on a table\nA woman holding a tennis racquet in the air\nA bathroom with a white bath tub and two sinks.\nAn India-design living room features warm reds and oranges and an ornate cabinet. \nThree people are sitting on a bench in the subway.\nA room with marble floors and the door open.\nA man that is on a tennis court with a racquet.\nA cake for a 1 year old elaborately decorated with a bear made out of frosting.\ntwo people with two dogs on a surf board and one dog swimming \nA woman is walking her two dogs on the beach.\nA street lamp post with a parking sign on it.\nA child is pushing a loaded luggage cart.\nA semi truck pulling a large blue boat down a road.\nCloseup of a black and gold clock with blue sky in background.\na small bird is standing on a tree outside\nTourists will find blue signs like this in Great Britain.  \nA herd of cattle is grazing through the field beside houses.\na man walks and talks on his cell phone\nA fan is on the floor next to the nightstand beside a bed.\nA woman observing something on a kitchen stove.\nA little girl holding a red frisbee standing on a lush green field.\nBenches line the sidewalk of a city park in autumn.\nA bedroom area with a draped bed and a desk.\nA pizza sitting on top of a pizza pan.\nA person riding on the back of a white horse through a dirt field.\nTwo people flying a kite in a green grass covered field.\nA green umbrella sitting on top of a sandy beach.\nTwo giraffes are standing next to a building.\na toy elephant sitting in a toy cage with toy people standing outside\nA young man is trying to pull off a skateboarding trick over a large rock. \nA wooden park bench with a remote control on top of it.\nA boy swinging a baseball bat at a game.\nThe living room is clean and empty of people/ \nThis living room has a sectional couch. \nA motor bike on a road with people seated on the roadside\na man assisting a woman shearing a sheep with several children watching\nA beautiful woman standing next to a man holding a Nintendo Wii controller.\nA man sitting on a chair in front of a computer.\nA bus, old cabin cars, and motor cycles with people \nA woman standing in front of a kitchen sink on display.\na young girl is holding a teddy bear \nA man riding skis on top of  a snow covered field.\nA teddy bear is positioned to read a text book.\nThis is a bathroom with a toilet and a tub with a clear shower curtain,\nA kitten on a bed in a blanket and a hand holding an electric toothbrush. \nA close view of the round part of a tablespoon shows a wilted piece of lettuce resting on the spoon.  \nThe pink Frisbee is laying on the snow covered ground. \na person on skis doing a backflip high in the air.\nSeveral people standing in the sand under kites.\nA simple, fenced in garden containing several kinds of plants.\nA large flower is sitting in the vase on the shelf.\nA man walks with his head and racket down as he crosses a tennis court.\nPerson down hill skiing in well groomed snow\nThe man is making a cheese pizza in his kitchen.\nThe photo of the double parking meter has a blurry city in the background.\nA small pair of scissors sitting next to a penny.\nA tree has a no parking sign taped to its trunk.\nA house being built with lots of wood.\nA white microwave oven sitting inside of a wall.\nA stuffed bear that is in a train seat.\nA basket of red fruit, a basket of ginger, a basket of bananas, and a basket of seed pods.\nLit up night traffic is zooming by a clock tower.\nBathroom area with towel rack, sink and a mirror.\nTwo people posing next to a giant suitcase in front of a building.\nA giraffe stands among some trees and looks toward the camera.\nA young child is flying a kite in a spacious field.\nA person wearing a banana headdress and necklace\nA teddy bear has some pizza boxes on it.\nA painting of two bears with a mountain in the background.\nTwo desktop computer monitors sitting on a desk with a keyboard and mouse.\nCloseup of a plate of food that includes chicken, mushrooms and broccoli.\nA man doing something to a kitchen window.\nA man flying through the air on a skateboard.\nA person riding a motorcycle down the street.\nA man is standing with a skateboard in his hand.\nA market display case filled with different colored vegetables.\nA young couple has just gotten married. \nA little chihuahua puppy laying with his stuffed bear\na man throwing a white frisbee in a gym.\nPeople working behind glass in a doughnut making factory.\nA dairy cow leaned over eating some grass from a field.\nA man riding a snowboard down a snow covered slope.\nA young skier headed down to the ski lodge.\nA woman unpacks a box in a kitchen. \nA man bending over in the woods with a frisbee in each hand.\nTwo television remotes sitting on the arm of a chair.\nPeople are at the beach near the ocean edge.\nTwo men standing in a living room playing video game with remotes.\nA home with lots of wood darkly stained.\nA parking meter sitting behind a blue truck.\nA vase filled with flowers on top of a golden table.\nA tennis player is on a blue and green court.\nA person on a snowboard on a mountain slope.\nA wooden fireplace mantle topped with a wooden clock and a candle.\nA close-up of a hawk with a group of people in the background.\nA bed is scattered with papers and a remote control.\nTwo chairs at the foot of the bed have books and a purse on them.\nA chili cheese dog sitting on a red tray next to french fries.\nA clock tower of some sort inside a museum.\nA red and white fire hydrant that is next to parking lot. \nLarge amounts of desserts set on different platters. \nA few people that are standing with skateboards.\nA zoo keeper on a scale holding a giraffe with a \"me gusta face\" \nA group of guys on a couch watching tv\nA couple of sheep sitting on top of a lush green grass covered hill.\nA giraffe standing alone next to some trees.\nA single toothbrush sits in a handmade toothbrush holder.\nA boy and a dog in a necktie\nA white toilet sitting next to a white sink in a bathroom.\nTwo guys and a girl sitting on a couch playing video game.\nA truck hauling a large load to a job site on a winding mountain road.\nA baseball player swinging a bat over home plate.\nA plate topped with rolls next to a bowl of food.\nA small and near bathroom that's inside someone's house.\nA large white and black dog laying on top of a couch.\nA man dressed as a town fryer walking across the street using a cell phone\nA man standing next to a woman while flying kites.\nA bathroom sink underneath a medicine cabinet next to a window.\nA close up of shoes preparing to stand on a skateboard.\nA construction crew repairing electrical wires over a busy intersection.\nA clock hanging from the ceiling of a building.\nA white urinal in a small red tiled bathroom.\nA fire hydrant stands alone in the middle of the concrete.\nA picture of a person on the side of the road.\nA pack of \"Hiragishi Donuts\" in a plastic container wrapped in a rubber band.\nA kitchen with a counter and a table with chairs.\nA man and a woman standing next to each other.\nHalf eaten pizza sitting on a small white plate. \na big body of water with a freeze be next to it\nA man has stopped in the middle of the street and his hands are full.\nA book on a wooden bench on a street.\nAn open refrigerator containing various fruits, vegetables and jars.\nA couple of giant teddy bears sitting next to each other.\nA beautiful young lady walking down a street in the rain.\nA passenger train pulling into the train station.\nAn older man sitting at a desk looking at a laptop.\nA fire hydrant on the street by a building.\nA group of little leaguers sitting on top of a bench.\na sleeping child in a bed with a black and white cover\nA cat sitting on a pan in an oven.\nA woman holding a blue umbrella while she walks beside other two women. \nRed fire hydrant on grass in front of a black street.\nClose-up picture of pizza and salad on wooden\nthere are cars coming down the street to a green light\nA couple of women standing next to each other.\nA group of people standing beside a food truck.\na white seagull is standing alone on the sand\nA person on a skateboard rides down a ramp.\na tennis player crouching down near the net\nA muffin in a black muffin wrap next to a fork. \nA standing toilet sitting underneath a window in a room.\nA white toilet sitting inside of a bathroom.\nA plate of food sits on a counter top.\nthere is a tennis racket and a laptop on the floor\nA giant Amoco sign sitting above a gas station.\nA woman sitting on a bench with cars behind her.\nA stove back splash with a granite design.\nStairs are leading down into the streets where there is a bus.\nSome green bananas are hanging from a metal bowl.\nA long table set with a variety fruits, vegetables and baked goods.\nA parking lot filled with cars next to a large traffic light.\nBlack and white image of a skier in a mountain forest.\nA young boy seems to be trying to feed a giraffe. \na room that has a red couch and a t.v.v\nThere are very few people inside of the large train station.\nA black and white dog sitting on a park bench\nAn elephant raises its trunk to grab some twigs\nThe dog with a cartoon collar is looking out of a car window.\nA mouse sitting on the side of a computer monitor.\nA pair of men enjoying a Nintendo Wii in a living area.\nMan in a restaurant kitchen preparing a meal.\nA bathroom with a bathtub, separate shower, sink, cabinets and mirror.\nA lady with a young girl standing in front of a few english muffins. \nAn elephant mother with a baby elephant beneath her reaches for branches with her trunk.\nCafe tables with table cloths and orange umbrellas over them.\nTwo traffic attached to a pole on a tree lined street.\nA cow and a person on a horse in the dirt.\nA man laying in a bed with a dog and green blanket.\nA mostly eaten cake sitting on a table next to a knife.\nEating a donut makes for a quick and easy breakfast.\n'A pizza topped with cheese and meat with bacon.\nA woman rests against pillows as she uses a laptop.\nThe men standing in the ocean while another one surfs.\nA long tour cruise boat with potted plants on the windows\nA man wearing only a tie standing next to a lamp.\nA clock tower where the clock is not at the top.\nA large tree sitting next to two benches.\nThis office area is organized with many notes and materials.\na couple of pans you would use to pee in\nA zebra statue in front of a business sign.\nA man with glasses holding a donut while seated on a desk\nAn elephant walking behind a man in a park.\nA frozen fire hydrant spewing ice out into a street.\nWoman standing in living room using video game controls.\nA train sitting in front of a tin building and a dry grass field.\nAn office scene with laptops, printers and chairs.\nVase with water holds a bunch of flowers in front of window\nElephants swimming in a water hole in the sun\nThree birds eat from a hanging bird feeder.\nSeveral people crossing at an intersection with traffic lights. \nA black and brown dog laying on a grass covered ground next to a yellow fire hydrant.\nA sloping street in a small mountain community.\nsome red and yellow leaves and some thin green trees\nA street sign sitting on the corner of a sidewalk.\nA row of different colored motor scooters sitting in front of a store.\nA statue with two stuffed animals on top of it sitting in a patch of dirt.\nThe large blue truck is old with rusted parts.\nA man swinging a racquet on a tennis court.\nA large pizza sitting on top of a cutting board.\nthe animal is laying down in the grass\nA blue and green bird perched on a branch\nThree red double decker buses parked side by side.\na person that is snowboarding down a hill\nthe people are standing on a train track \nA woman playing tennis in front of a blurry crowd.\nA bathroom with a shower and a sink.\nA person drives a bus on a busy road. \na kitchen with a small refrigerator and a microwave oven\nan orange and white cat is sitting under a car\nA male get together with two men playing chess at a table.\nA airplane moving on the run way of a air port. \nProfessional tennis players in a match beginning a point.\na woman handing a boy a piece of cake on a plate\nA pot full of beef and broccoli stew. \nA woman wading through water holding a surfboard.\nA cat standing inside of a dresser drawer.\nA man standing over a bag of luggage.\na jacket sits on a bench in a park\ntree is a male skateboarder that is riding a ramp\nA pile of carrots and parsnips on the pavement next to a truck. \na festival with entertainers on stilts walking around\nDifferent kinds of food rest on a plate.  \nTwo birds looking at their reflections in side mirror\nA woman kicks a soccer ball away from two opponents. \nA very big teddy bear is next to a woman.\nA beach lined with lots of parked boats.\nA man pushing a cart filled with lots of ripe bananas.\nClose up on bunches of yellow ripe bananas.\nThe view from the inside of a jetliner looking out over the earth.\nTwo tall elephants standing behind a fenced in area\nA grey cat wearing a tie sitting on a computer desk.\nThere is a female tennis player wearing white shorts and a white bra\nA large jetliner parked an airport near a passenger loading terminal.\nthe people are all in a restaurant some are sitting \nA large gray elephant with large white tusk.\na pizza cut into slices on a plate\nA white bus parked in a parking lot next to a car.\nThe airplane is about ready to get take off from the runway. \nThere is a man and a young girl snowboarding \nA street sign sitting on the side of a road.\nVarious people eating in a restaurant at a table.\nA group of women are standing together on the wall in the background while a man stands alone near them.\nA group of four women walking down a street in the rain.\na close up of a small older cell phone\nTwo people sitting at a table eating plates of food.\nSomeone in sandals is standing over a broken cell phone in pieces. \nA bedroom with a picture frames on the wall and lamp next to it. \nThe Big Ben clock tower towering over the city of London.\na box of doughnuts on a table \nA black dog laying on a couch with a floral pattern.\nA motorcycle parked in a courtyard in front of a small restaurant. \nA man is riding a horse and buggy on the beach.\nA parked snow mobile siting on the side of a train.\nA man holding a racquet on a tennis court.\nA baseball player standing next to home plate.\nA spacious living room with three windows and a wooden floor.\nA parking meter on the side of the street with a ring for attaching bicycles.\nA baseball player has just hit the baseball at this game.\nTwo people play video games while sitting on a couch.\na cat on a keyboard on the ground\nA cat sitting on top of a TV peering out a window.\nthere is a red and a yellow bus parked under a tree\nAn older gentleman in a white shirt and black bow tie.\nA large black dog sitting in a room.\nA man on water skis prepares to jump the pole\nA bathroom sink with a bottle of cleaning solution on it. \nA piece of cheesecake and 2 pieces of an English muffin.\nBlack and white cows stand around in a farm yard.\nThere is a woman looking at two vases that are on display in a glass case.\nA woman making a weird face playing tennis\nA motorcycle parked next to a  car in a  parking lot.\nA man riding on the side of a motor bike.\nAn orange motorcycle is parked next to a car.\nA person at a skatepark in mid air on a skate board\nAoold rustc sign is standing upright in some grass\nA young sexy woman holding a tennis racquet on a tennis court.\nA laptop that is sitting on a table.\nA giraffe sitting on a rocky dirt and grass covered ground.\nA tall tower with a clock in it.\nA man on skies going through the woods.\nTwo trains, side by side, waiting at the train station\nA man and woman standing in a living room.\nthere is a animal walking down a narrow road\nThere are two cats sitting on a window ledge. \nAn adorable little girl riding on the back of a brown horse.\ntwo giraffes on a dirt ground near a wooden fence\nTwo men waiting for something cooking in an oven.\nA man standing in a living room next to a chair.\nA crowd shot of a tennis match at night time. \na close up of a sheet of pizza on a table \nAn assortment of fruits on display at a market place.\nA little girl sitting at a table with lots of fruit and cake.\nA substance on a pair of q-tips in a persons hand.\nA man holding holding a giant remote control.\nsome baseball players are playing baseball a batter and a catcher\nHorses graze in front of a large building amid snow.\nA woman sitting on a fence holding an open umbrella.\nA train sitting under a display inside a building.\nA cup of coffee surrounded by orange juice, fruit and bread. \nThere are two snowboarders in the air completing stunts.\nsmall birds on tree branches with a sky background\nA cat sitting on a laptop computer with it's mouse reaching for the mouse pad.\nThere is a stop sign and two street name signs on one poll\nA table topped with different flavored and colored cup cakes.\nA plate with a chocolate dessert sits on a table.\nA little boy holding a brownie sandwich over a plate.\nA cat behind flowers in a vase, small pumpkins, a wine bottle and a glass of wine.\nThere are lots of suitcases in a single room\nA wooden desk with a laptop computer sitting on it.\nA person on dirt bike riding down a hill with mountains in background.\nThe dining table near the kitchen has a bowl of fruit on it.\nA young boy riding a skateboard down the side of a ramp.\nA pair of red scissors sitting on top of a piece of paper.\nA woman wearing skis holding two ski poles.\nA girl in pink shirt eating a chocolate frosted donut.\nA dog standing in the grass near a flying frisbee.\nA boy holding an umbrella standing on a street.\na baseball player swings a bat at a baseball \nA close up view of a bunch of electronics.\na cat on top of different kinds of electronics\nA young boy holding a toothbrush in his mouth.\nA part of a peeled orange right next to the whole orange\na woman is throwing a tennis ball to serve\nA float in a parade on a sunny day.\nA woman looking at her phone next to a car being towed.\nAn office with a computer, printer, scanner and many other technologies.\nA red fire hydrant on a city sidewalk.\na couple of zebras that are standing next to a fence\nA white toilet sitting next to a trash can in a restroom.\nA young woman brushing her teeth in front of a mirror.\nTwo baskets of strawberries, cucumbers, broccoli, carrots and potatoes gathered togethered.\nA living room where people sit and talk and without a television.\nTwo large elephants and a small elephant walking off a road.\nA man on his skis on a snowy slope. \nthere are many people on this field playing with a frisbee\nA boat floating on a river next to a city.\nA white tanker truck driving down a street next to a bus.\nA truck that is next to a curb with coin meters.\nA pan with a pastry covered in meat and veggies.\na skier is prepared to go down a mountain.\nA refridgerator with popular gaming characters on it\nA picture of an Apple computer with a black background.\nPlane in window with cloudy sky and chairs \nA cluttered computer desk in a messy room.\na small gray and black raccoon and some broccoli\na person standing up in the living room playing an interactive video game\nA couple of sinks and some toilet in a room.\nA cloudy sky , red traffic lights and power lines\nA couple of donuts sitting on top of a tray next to a cup of coffee.\nA single elephant standing in a large grassy field\nA class room filled with students sitting in front of computer.\nA red and white wings black bird sitting on wood\nTwo busses on street next to cars with buildings in the background.\na close up of a cat on a rug on the ground\nA baseball player holding a bat standing on a field.\nA couple of people carrying bags of luggage.\nTraffic on a busy city street at night.\nA picture of a lone clock tower standing in a school yard.\nCity skyline showing a tall lighted building that has a clock and the name of the company on it. \nA downtown area with cars parked at parking meters.\nA wall containing many different types of clocks.\nA bus arrives to the bus stop at two twenty p.m. \nA man is performing in a tank with dolphins\nA tray topped with a Micheal Jackson hat and matching glove.\nA desktop computer with it's monitor sitting on it's side.\nq close up of three men wearing suits and neck ties\nA skateboarder flying off of the top lip of a ramp\nA white toilet sitting in a bathroom next to a wall.\nThe umbrella is inside of a potted plant on the wooden balcony.\nThe bow of a ship on land with another on the edge of the water.\nA young boy holding a teddy bear by it's ears.\nA woman in striped shirt holding a plate with a bagel on it.\nThe oriental signs are pointing in all directions.\nA person sits at a table with a hot dog.\nA large golden cake is on a cooling rack.\nA group of people standing around a giraffe.\nA small kid reaching by a very big plate of food.\nA couple of large kites on a beach.\nA woman wearing a blouse and devil horns hold a cell phone to her ear.\nA man sitting on a bench next to a slug.\nA towel rack in a bathroom topped with two stuffed animals.\nA young boy eating mushrooms near a pizza.\nA cat perched on a car dashboard travelling on a street.\nA wooden bench in the middle of the wild.\nan elephant on a dirt path with trees in the background\nA view into a bathroom from inside a kitchen.\nan image of a tourbus picking up passengers \nAn outdoor garden with a brick wall behind it and many plants in pots.\nTwo Zebras grazing together in a grassy area.\nA woman riding a horse while it eats grass\nA man riding a bicycle with a boy on the back of it.\nA very cute cat sitting by  a very pretty umbrella.\nA woman in a white dress marrying a man in front of a field.\nTwo white plates topped with meat and veggies next to bottles.\nA living room with a small television and a fireplace.\nThe person is standing on a snowboard wearing goggles.\na little girl in front of a book shelf and chair\nThose horses have stopped to rest along the side of the road.\nA large jet sitting on top of an airport tarmac.\nA wooden desk with a cat and lamp on it.\nA kitchen with lots of clutter a door with a large window.\nA group of people holding some hot dogs in his hand.\nA couple of plates with eggs and folded pancakes are sitting on a table. \na couple of street signs are on a pole\nA man holding up a mustard covered hot dog to his own face.\nA person walking their dog on the beach\nFour young adults standing and playing a video game.\nA man is jumping over a hole in the sidewalk.\nA picture of different types of herbs and vegetables available from the CSA.\nChildren sitting on the floor decorating and putting together kites.\nA very pretty girl working with some food in a kitchen.\nA man sitting at a table with a laptop computer.\nA woman is kneeling down next to a toilet.\nSeveral containers are on a shelf next to a mini-fridge on a counter.\nA man prepares to fly a kite in a grassy area.\na man is holding a tennis racket on a court\nA large bus parked on a handicapped parking space.\na couple of zebras are standing in a field\nA picnic table on a porch overlooking a body of water.\nSpectators watching as competitors play a double tennis game.\na couple of doughnuts are wrapped in paper\nTwo sheep are looking over a cement wall.\nA big green Ford F250 Pickup truck parked in the city lot\nPainting of a ship in grass with lighthouse in background.\nSomeones living room with a sewing machine and plants. \na woman walking on a tennis court holding a tennis racket.\nA variety of cars on a street with buildings.\nA white table topped with two desktop monitors.\nLarge metallic appliances sitting next to each other in an outdoor kitchen.\nA man dressed in mostly all black riding on a black motorcycle.\nA couple of men standing in a living room holding Nintendo Wii game controllers.\nA woman wearing a white shirt and neck tie.\nCake topped with fruit and whipped cream sits on a plate.\nA full veggie pizza near a couple of plate of fries, are all ready to be eaten. \nA woman that is standing on a tennis court with a racquet.\nA black cat laying next to a box of donuts.\nsome zebras standing by a wall and looking at the people on the other side \nA person on a skateboard does an air trick.\nThe view from a platform at a train station.\nA tennis player in white wearing a white cap holds a red tennis racket.\nA close-up of a woman's high heels and legs and the suitcase.\nA breakfast of bagels, eggs, friend potatoes and fresh fruit along side glasses of juice and water, with a basket of jelly packets to the side. \nA backpack and a line of supplies laying out.\nA train traveling through rural countryside lined with trees.\nPizza on a table with a cup and a fork\nA pizza is shown in a box uncovered and cooked.\nA man holding a Nintendo Will controller in a living room.\nA danish dessert with frosting that is partially eaten\na skateboarder in a black shirt doing a trick\nTwo children who are sitting next to each other naked.\nA person para-sailing in the water with mountains in the background. \nA couple of cats laying on top of a pink blanket.\nA pot on top of a stove next to a large metal ladle.\nA person is surfing in a wave pool.\nTrain on the tracks that has a lot of smoke coming out of the engine car.\na bird ready to take off an edge made of cement \nA British bus makes its way down the road. \nA white polar bear standing on top of a puddle of water.\na close up of a cat in a sink\nA man holding a Wii game controller in front of a projector.\na table with electronics and a television on it \nA group of men standing next to each other without a shirt.\nSurfer in green suit riding breaking wave in open ocean.\na man riding a big wave on his surfboard\nA little girl that is in the grass with an umbrella.\nThe door of a public bus with a reflection of a woman's photo in the side window of the bus.\nA couple of men riding on the back of a horse drawn carriage.\nA woman and small child are trying to fly a kite.\nA young boy taking a swing at a tennis ball\nA messy room with door and bed and chair.\nA man dressed as a nun rides a skateboard on the sidewalk.\nA bedroom contains a bed, a table with a computer, and speakers. \nThese are the three types of pizza toppings available.\nA low shot of a man on a snow board.\nA yellow, blue, and purple train passes on the tracks.\na man in red is skiing in the snow\nthis living room has many paintings on the walls\nA person jumping a horse over a box.\nA stone building has a tall clock tower.\nA cat sitting behind a pair of slippers on a blue towel.\nA white toilet sitting under a water tank.\nA narrow, one-lane street and a stoplight by a low wall\nA couple of people sitting under an umbrella.\nA yellow fire hydrant sits by the side of the road.\nTwo giraffe standing next to each other on a grassy field.\nRows of gray and black keyboards make up several different pictures.\nan elephant walking near a fence with trees on the other side \nA large clock tower sitting next to a red brick building.\nthere is a monk standing in front of a building\nThe skier is going down the snow covered hill. \nA young man holding up two skis on top of snow.\nA baseball player preparing to swing the bat.\nA pair or hot dogs sitting on a white plate next to condiments.\nA kitchen filled with furniture and a stove top oven.\nThere are fruits in a blend and a carton of icecream next to it.\nA church with lots of wooden pews and an illuminated crucifix on the wall.\nA guy on his surfboard surfing through the ocean.\nAn older picture of a large kitchen with white appliances.\nThe single propelleor airplane slowly takes off from the airport.\na street with some vehicle on it pass in front of a market \nA couple of people are preparing to water ski.\nA long stretch of highway over a river.\na street light is hanging on a pole\nA couple of women playing a game on the Wii.\nA bus driving down the road near a church and traffic light.\na couple of giraffes eating out of a basket\nA crowd of people shopping at a farmers market filled with fruit and vegetables.\nA person riding down a trail in front of a person on skis.\nA small room with wooden cabinets and two beds.\nA man staring ahead at the camera with a neutral expression.\nan old stone building with a clock mounted on the side.\ntwo people are cutting a cake and plates \nA young boy laying in bed with a pacifier in his mouth\nA decorative Asian lantern sculpture in the garden with flower ornaments.\nthere is a young guy about to fall in dirt\nA selfie taken of a person with a cell phone laying over one eye.\nA woman holding a white and purple umbrella.\nA computer monitor sitting on top of a desk.\nA bowl of chicken and vegetables is shown.\nA pitcher winding up to throw a pitch in a San Francisco uniform.\na tour boat resting in  the water next to a dock and underneath a bridge\nA tall giraffe standing next to a tree filled forest.\na couple of naked guys in a room together\nA very close shot of what seems to be three birds on a Giraffe. \nA car with a wheel lock on its wheel next to a parking meter.\nSheep are in a field near a fence and on a tractor.\na man is outside holding a ball and a racket\nRaw cookies in a pan on the counter and baked cookies in a pan on the stove.\nA group of people enjoying a day at the beach.\nA young girl walking through a flower garden.\nA man in an English suit and bowler riding a horse.\nA large roasting pan in an oven filled with stew.\nA woman riding a gray horse in the middle of a street.\nA man flying through the air while riding a snowboard.\nA black and white photo of a group of horses. \nA little boy drinking out of a bottle.\nA traffic light at an intersection with a skyscraper in the background.\nA parade on a street with several officers on motorcycles riding while confetti falls from the sky on them.\nThree white flowers in a vase with flower images on it.\nA large bull with long horns sitting on a beach.\nA man is sitting at a harbor with a market place.\nTHERE ARE SOME THINGS THAT ARE IN A TRAY \nA soccer player is preparing to kick a soccer ball.\nA clock that is on the side of a tower.\npeople enjoy swimming in the waves of the ocean on a sunny day at the beach.\nPhotos of two ferrets sleeping in a pet bed\nA white cat is laying by some tennis shoes.\nTwo cats eating food from bowls on a black and white checkered tile floor.\nA picture loaded with numerous things all inside.  \nA small airplane is flying against the blue sky.\nTwo people eating pizza and drinking a soft drink \nA train traveling through a tree filled countryside.\nA cat wearing a sweater and glasses under a book shelf.\nA person riding down a sidewalk on a skateboard.\na room with a small desk and bed, there is a cat laying on the bed.\nTwo wooden benches sitting on top of a lush green grass covered park.\nclose up of three bananas on top of a bowl of fruit\nA young girl tossing a frisbee to an older man\na close up of a person cutting plants \nThe road sign says \"East 278 Queens Bronx\"\nA plate holds prepared food, including bread and vegetable.\nA room with large curved desk with lots of chairs.\na group of people are crammed in a small area on motor bikes \nA couple of men on a field playing baseball.\nA man in black shirt doing a trick at a skateboarding park.\nA car with open doors is towing boating equipment.\nA burgundy low-rider show-quality, hot rod Chevy truck.\nThree cows standing on a grass field under a cloudy sky.\na lady that is on some skies on some snow\nA slice of layer cake on  a plate that is garnished\na skier and a snowboarder in front of a large house\nA road sign on the side of a road.\ntwo service truck parked at an airport \nA bathroom with a walk in shower next to a toilet and a sink.\nSomeone who has one foot on a skateboard.\npizza on a plate with one slice separated from the rest\nA group of stuffed animals standing and sitting next to each other.\nA painting of a person walking along a field holding a kite.\nA bird aggressively protects his patch of turf.\nA bedroom with built in television and open fireplace\nA young woman is eating a piece of pizza.\nThree birds walking around a dry grass field.\na young child on a skate board indoors\nA couple of zebra standing next to eachother\nA cut in half sandwich sitting next to a pile of fries.\nBoats floating close together in a calm body of water.\na small boat in a body of water near building\nA group of people on snow shoes posing for a photo.\nA picture of a large building with people milling about.\na jeep driving up to another car. \nSome colorful umbrellas somewhere in a shaded area during a sunny day.\nA person wrestles with an inside-out umbrella on a roof.\nA very big city bus on a big street.\nA woman in sunglasses and hat standing by plant.\nA young man is dressed in a school skirt outfit.\nA zebra standing in an empty field on top of dry tall grass.\na public transit bus on a city street\na traffic light with all green lights over a street.\na white plane is going low to make a landing\nSmoggy picture of many trains in a busy train station.\nA kitchen that has different types of pots, and pans on a stove.\nA person on a surfboard in the water.\nThe man with black outfit and royal blue necktie poses for a photo at the event\nMany people are walking along a crowded market place.\nThere are two yellow lemons and five green lemons and also two oranges\nTow men with dog in park playing with flying disc.\nA group of people sitting on top of a sandy beach.\nA baby elephant is nursing while another elephant eats hay.\nA toilet sitting in a room surrounded by personal items.\nTwo zebra standing next to each other near a forest.\na man jumps in the air as he catches a frisbe \na polar bear partially submerged in a body of water\nTwo women laugh while sampling multiple glasses of wine.\nA white toilet sitting next to a white bath tub.\nA forest filled with lush green leafy trees.\ntwo people posing for a photo holding wine glasses\nA runway for airplane with one dual propellor plane parked on the runway and a person walking away from the plane.\nA passenger bus that is driving down the street.\na male with a black tie and a boy in a red white and black shirt\nA white cat standing next to a cluster of palm trees.\nan overhead view of many people on motorcycles \nA very tall Clocktower ascending into the sky\nA group of three children sitting on a lush green field.\nA kitchen with a center stove top island.\nA train on some tracks with power lines above it.\nA man falling off a surfboard while riding  a wave.\nA couple of small children standing on top of a sandy beach.\nA small sandwich sitting on a white china plate.\na person lifting a little stool with their feet and a person holding a cell phone \n\"Head shot\" of a zebra against a stark background.\nA man riding a wind sail over choppy ocean water.\nA clock sitting on top of a wooden table next to a window.\nRailway car on snow covered tracks approaching urban area.\nLarge shower sectional of a bathroom in a brown and white photograph.\nCats sitting next to each other on furniture.\na person in a kitchen preparing food on a pan\nA person riding the waves on surf board.\nSnow piled high around pipes with people walking in background\nThe fresh fruit is left out on the counter. \nA man riding a snowboard down a snow covered slope.\nSmall child in a green shirt standing inside of a suitcase. \na crowd surrounding a large pizza with four sections of different toppings\na number of people washing an elephant \nA couple of people walking across a green tennis court.\nA shadow of a man watching the clock on the wall.\nMan doing a skate trick during a competition event with a audience. \nA middle aged tennis player is posed for action.\na man sitting down and facing a big window \nA black and white picture showing small children in a dormitory setting.\nA brown hamster standing on a hair brush.\nA man sitting and interacting with his phone\nLounge beach chairs near umbrella on sand at sunset.\nAn empty street is lined with large umbrellas. \nA woman in a white shirt and pink skirt playing tennis.\na woman sitting before a plate of ham slices and a camera.\nThis is a computer generated image that depicts a surfer riding a wave.\nA dog sitting on a couch looking to its side.\nA cow is laying in the grass next to the water.\nA corner street sign with a tow sign and a art piece\nA teddy bear sits by a keyboards and microphone.\nAirplanes set to take off at a city airport\nA woman riding waves in the ocean on a surf board\nA group of people standing on top of a snow covered ski slope.\nA cat laying down on a black skateboard inside.\nA plane is somewhat distant away from the green grass. \nA group of bikers traveling down a road past a store.\nSeveral people are running in a grassy field playing with a frisbee.\nA young boy wearing a blue shirt standing next to a woman.\na computer on a desk surrounded by papers\nA man is walking down the street in front of a red door.\nAn elephant picks up an object with its trunk\nA picture of several people in a sail boat in the ocean.\nTwo zebra standing next to each other on a field.\nA man in a suit speaking at  a podium\nA large fount sitting in the middle of a city.\nThere is a clock above a shelf of knickknacks.\nA TV sitting on top of a counter inside of a store.\nA white table with various plates and dishes of food.\nA couple of giraffe in a field near some trees.\nAn orange train traveling past tall buildings and a crowd of people..\nA cheesy hot dog with a large green pickle next to an iPhone.\nA cat looks at the camera while sitting on the laptop.\na boat sitting under a rusty metal roof \nA baseball player is in mid air jumping toward a base.\nA man flying through the air while riding skis.\nA surfer in a hoodie holds a surfboard on a porch.\nVehicles parked under a tree in a small yard.\nTwo tennis players are sitting on the bench.\nA very cute dog sitting by a bright monitor.\nAn apple, sharp knife, with some cut up apples. \nA giraffe looks out over a tall fence with trees in the background.\nA large clock tower siting next to a tall building.\nLaptop on a desk with an external mouse attached\nA dog that is on the back of a motorcycle.\nTwo surfers catching two different waves, one after the other.\nA baby and adult elephant are standing by large rocks.\na traffic light on the same pole as a street light \nA close up of a grill loaded with burgers and hot dogs.\nA flock of ducks splashing and playing in the water.\nA man kissing a baby elephant on a dirt road.\nA vase filled with lots of white flowers.\nA man riding a skateboard on the side of a planter.\nPeople walking in the dirt where buses and vehicles are parked.\nA restaurant table with a plate of vegetable pizza and garnishment\nTwo small dogs playing on the grass covered ground.\na man holding a tennis racket and playing tennis on a tennis court.\nA bird with a berry in its mouth sits on a rock\nGUY SKATE BOARDING DOWN THE STREET IN THE DARK\nA man riding on the back of a green motorcycle.\nA large white bear walking on top of a log.\nA man on the side of the road holding a frisbee.\nA bunch of people sit in an open court yard\nA batter that is watching the ball go past them to the catcher. \na baseball player with a bat on the field \nA red teddy bear wearing a santa hat sitting on a cocktail table.\nA very large commercial plane flying in blue skies.\nA herd of cows standing in a field grazing\na vintage photo of man standing in the middle of some waves\nA cat sits on top of a laptop keyboard\nA baby girl sitting on top of a green grass holding a cell phone.\nthere is some sort of animal that is in the waves on the water\nA photograph of a sidewalk covered in snow.\nA man being threatened by a yellow banana.\na couple of sheep graze on some grass \nA bathroom containing a toilet and a sink.\na person in a field flying a kite in the sky\nA batter getting ready to hit his pitch.\nA small stove is shown with pots and pans.\nA man standing over his dog on a beach while holding a surfboard next to the ocean.\nA Siamese cat sitting on a bed it's reflection in a mirror.\nThe man has dipped something in the bowl.\nA wooden table topped with a pan containing a pizza.\nA plate of food with sandwiches and some fries on it.\nA close up of a street pole with no parking signs.\nA man making a goofy face while sitting near a cake.\nSome people are sitting at a table and making sandwiches.\nA row of wall mounted sinks in a restroom.\nA street sign that has been modified so the name is changed.\na brown and white cat hanging of of a bed\nA man riding skis down the side of a snow covered slope.\nA small vase sitting on a sidewalk next to a brick building.\na bicycle leaning against a stop and a yellow car\nGroup of people watching something with man recording in room\nA train rounds the bend in a lush green mountain setting.\nA woman walking across a street with two baskets full of items.\nA brown teddy bear sitting in a red chair.\nA large truck on the side of a street.\nA man in glasses wearing a shirt and tie.\nA refridgerator with its door left open full of food.\nA man riding a skateboard on top of  street.\nTwo men sitting at a table, one with a bottle in his hand and the other has a bow tie on. \nA bottle of water sits on an empty bench. \nA caretaker looks after a small brown elephant\nA woman eating a giant doughnut covered in sprinkles.\nA woman with a snowboard with a man standing next to her on a ski slope.\nA couple of people standing in front of a TV.\nA young boy sitting on the back of a cart filled with luggage.\nA polar bear dives off a rock into a river.\nA collection of apples growing on a tree. \nA pizza with several types of vegetables on a white plate.\nThe room has many potted plants in the window. \nA metro bus at night at a bus stop letting people off on the sidewalk.\nTwo men work in the kitchen of a restaurant.\nA black refrigerator freezer sitting next to a dishwasher.\nBEAUTIFUL CANAL WITH BRICK BRICK WALLS AND  CASTLE LIKE BUILDING IN BACKGROUND\na boy carrying a big bag of food across his shoulders \nsome people and a dog under an open umbrella\nA kid bikes with his bag attached to the back.\nA large metal green clock hanging from the side of a building.\nA bathroom with a large white tub and his and her sinks.\nA man and a woman, who are dressed nicely, are posing for a silly picture. \nA brown teddy bear laying on an asphalt ground.\nA group of young women kicking around a soccer ball.\nA kite shaped like a jet flys through the air.\nA big blue two level bus at a bus stop with people.\nA display of toothbrushes and other dental hygiene products\nA man wearing a black hat and a red neck tie.\na stop sign and railway crossing sign on a pole\nA couple of zebra and a group of deer standing on top of a grass field.\nA man riding a paddle board out on a body of water.\nA person riding skis through a forest covered in snow.\nA man coaching a tee ball practice. \nA man holding a phone up to his ear.\nA group of motorcycles parked on the side of a road.\na tiled floor with a trash can and a urinal sitting inside of it \nAn older person standing next to a brown horse in a dirt field.\nA man wearing glasses standing next to a black cow.\nA boy doing a trick on a skateboard off a ramp.\nA tall giraffe standing next to a fence under a tree.\nA flying plane with smoke trailing behind it.\nvery delicious looking food and a man and woman are eating.\nA group of animals grazing on a lush green field.\nA couple of motorcycles parked next to each other.\nThe Big Ben clock tower towering over the city of London.\nTwo birds sitting on top of a branch on a tree.\na person jumping in the air with a skateboard\nA bunch of bananas are sitting next to several pairs.\nA white plate topped with fish, vegetables and a fork.\na baseball player hitting a baseball with a wooden bat\nMakeshift skate park set up on a blocked off city street\nA city street filled with traffic and buses.\na person is holding a tennis racket on a court\nA man riding on the back of a horse near a plane.\nIn what country do they allow bicycles on a passenger train?\nA tall clock tower sitting between a couple of buildings.\nA group of children eat cake with adults standing in the background.\nA woman skiing down a snow covered slope next to two brown dogs.\nA reflection of a large building in a window.\nA group of sheep standing in a field.\na person in a wheel chair swinging a tennis racket\nA group of boats are perched on dry docks.\nA plate that has a piece of pizza and a fork.\nThe mirror is reflecting a dog on the bed.\nthree men dressed like cowboys riding on horses\na big mama elephant with her baby in a natural setting\nA white bed topped with a book surrounded by large windows.\nA pile of bananas, oranges and pears sitting next to each other.\nA white toilet sitting on top of a bathroom floor.\nA dog running past the waves into the ocean.\nA woman holding a wet umbrella glances over to the right.\nThis messy pizza is covered in cheese and mushrooms\nA girl in white and pink shirt riding on a horse.\na couple of buildings grouped together next to some power lines \nA couple of men in the water on surfboards.\nA man drinking wine at a wine tasting.\nA woman's reflection of her taking a picture of a sink and toilet.\nA couple of men riding on the back of an old truck.\nA couple of cats taking a nap on top of a bed.\nA woman on a small motorcycle waits in traffic.\nA tennis player is holding his tennis racquet up.\na man riding a skateboard with his dog.\nA pug dog is looking away from its image in the mirror. \nA break room has a table, phone, lamp, sink and other appliances.\nA tiger cat sleeping on a bed next to an open laptop computer.\nA small black cat sitting on the ground.\nA kitchen filled with a wooden cabinet and a large window.\nA large exit street sign laying on the ground.\nA bunch of flowers is arranged nicely in a vase.\nA woman in red pajamas is hugging a cute dog.\nA window on brick wall with vases in the sill.\nA baboon is sitting eating a banana on the ground.\nThe boy is playing with his colorful kite.\nA young boy bending over holding a catchers mitt.\nA whimsical child's bedroom with a purple spinner hanging over the bed.\nA computer sitting on top of a glass table.\nA snow skier is on the white snow.\nCars parked at side of road in front of a building at dusk or night.\nA person is holding a cell phone sideways in their hand.\na bedroom with a bicycle, television, refrigerator and microwave\nA bunch of lambs standing around in a field behind a fence. \nA table with some oranges and some cups.\nThe Big Ben clock tower towering over a city at night.\nSheep in a forest after the snow has melted\nA young woman relaxes while checking her smartphone.\nA zebra walks by himself in the brush. \nI hope the surfboarder does not fall under that huge wave.\na close up of a person holding up a plate of food\nSeveral birds searching for food at the water's edge\nA HAM SANDWICH WITH LETTUCE IN A PAPER BAG\nA calico cat sits on a cushion on a bench.\nA group of people and  dog riding surfboards in the ocean.\nTruck and car passing each other in a suburban neighborhood\nA view A large metal structure near the side of a building\nA brown cat is sitting in front of a mirror.\nA batter has just attempted to hit the ball being pitched to him while waiting at home plate.\nA woman with a life jacket on holding onto a rope while engaging in a water sport. \nA blue train passes in front of a palm tree filled night sky.\nA display of different vegetables is seen in a store.\nMan walking across the empty beach holding his surfboard\nCars drive on a busy street around a rear view mirror.\nA battered refrigerator stands open in a dirty room.\nA man in a striped shirt hitting a tennis ball\nTwo laptop computers sitting on top of a desk.\nTwo elephants standing in grassy area with trees around.\nA large cat laying on top of a computer keyboard.\nSome delicious noodles are being cooked on a pan. \nA snow covered forest on the side of a mountain.\nAn updated kitchen with modern stainless steel appliances.\nA table with a sandwich and two cups of coffee.\nThree surfers standing on their boards in a wave.\nA black cat laying on top of a suitcase in a room. \nA group of women enjoying wine and cheese.\nA young boy who is holding a tennis racket.\n2 teams of young kids playing soccer against each other.\nA long haired, black cat with yellow eyes lays on a black suitcase.\nA couple of large suitcases on the ground.\nA great picture of a person in the stillness motion. \nA bicycle parking sign on a pole at the corner of a street.\nA close up picture of a group of bananas.\nA stop sign posted in a foreign language \nA man standing in front of a mirror shaving\na small air plane on an air plane run way\nA laptop and a desktop computer sitting on a table.\nA little girl sitting on top of a bed next to a lamp.\na motor bike carrying very many people on the street\nA stop sign that looks likes it made of crinkled paper.\nA couple of women standing on a  tennis court.\nAn worn out rainbow colored park bench seat\nthis is a tennis player about to hit a tennis ball\nA woman in grey shirt standing n grassy area next to black fence.\ntwo zebras are walking in a field next to some plants\na happy looking polar bear swiiming in water\nA batter ready to swing at home plate with an umpire and catcher behind him \nA church with grey clouds and cars moving down the street\nA man riding a skateboard across a street.\nA cat laying on top of a wooden bench.\na close up of two zebras in a field with trees \ntwo giraffes a tree dirt and a hill\nA young man standing next to a skateboard.\nA pitcher getting ready to throw pitch at a game.\nAn adorable leashed dog sitting on a bench.\nA cat eating a bird it has caught.\nA row of several purple buses at a bus station\na number of sheeo in a field standing close to one another\na sugar glazed donut on a brown and white plate\nA view from an airplane flying over a mountainous region.\nTwo boys in beds with a bookcase in between them.\nThe basketball player is jumping to take a shot.\nA hand holding a sandwich above a plate.\nTwo little girls sitting on the side of a white boat.\nA view into a bathroom with a white toilet, tub and a wooden cabinet sink.\nA man riding an elephant down a dirt road.\nThe two yellow trains are coming down from the mountain.\nA pristine modern bathroom, toilet, sink and bathtub.\nA group of people in a bar playing Wii\na bike that is parked next to a brick wall\nA photo of a building with a clock tower on top.\nThe two surfers are ready to go out on the water\na piece of cloth is laying on the floor\nA banana sitting on top of a black record.\nA pizza that is on a wooden platter.\nA person on a surfboard rides on a wave.\nA woman sitting next to a parking meter.\nA small elephant standing next to a white bird.\nTwo long metal tables sitting inside of a kitchen.\nA sheep standing in grass next to a rock wall.\na car at on intersection who has the green light\nA white bowl holding ramen, broccoli and carrots.\na number of birds on a beach near the water \nA baseball player taking a swing at a ball.\nA household bathroom with vanity sink, toilet and tub and shower.\nA motorcycle leaning on a car in street.\nA man standing along side of a truck trailer.\nA grey and white cat outside looking into a window.\nMany people are playing a game and having fun. \na small boy is chewing on something yellow\nA bear is sitting in the grass in front of a rusty chain-link fence\na dog and a cat sit on chairs near each other\na train getting ready to go into a tunnel \nA man walking up the side of a snow covered ski slope while wearing skis.\nThe back of an iphone in front of a destk.\nA small child is sitting on the couch playing with a phone.\nSeveral sheep are standing beside a road while one walks on it.\nBoy holding skinny horse near jeep with tow hook.\nA man stands out in the rain underneath an umbrella.\nA man holding a cell phone in his hand.\nA pond of water with three giraffe walking in the dirt.\nA bed sitting inside of a room next to a window.\nA herd of giraffe standing on top of a grass covered field.\nA dining table has a large pizza and wine glasses.\nA cat standing on the edge of a sink drink water.\nMen sorting through a toppled over train car. \nA hand holding a remote control is shown in close up with a television in the background.\nthere is a white bowl of food that is on the table\na nice day at a small clean clear beach\nA group of girls play frisbee outside together\nMan in green jacket walking towards bus stop sign.\nA green fire hydrant on a city sidewalk.  \nA group of small stuffed animals sitting on top of a table.\nA man in a black snow suit sits in his snowmobile in a snowstorm. \nStuffed teddy bear strapped into child safety seat.\nTwo giraffes stand side by side in a fenced in enclosure.\nA man stops by a truck with a dog.\nA group of people standing in the snow holding empty boxes.\nA pillow laying by a window in front of a green wall.\nA young man and woman sitting at a table.\nA dog standing next to a fire hydrant on a sidewalk.\nThe baseball player in the orange jersey is swinging a bat.\nA white bus route sign hanging from the side of a black pole.\nOlder style station wagon from ford during a parade.\nA black cat playing with a pair of shoes on a stool\nSome hot dogs are outside in a baggie.\nMultiple people on a beach, some playing with kites.\nA man standing on a tennis court holding a tennis racquet.\nA woman sitting at a desk with an older woman.\nThree people in suits posing outside of a bus\nA person with glasses and a shirt in a room.\nA red train is going past a station marked with signage.\nthere is a small bathroom that is white and has a toilet\nA man shaves a sheep on pavement near a fence.\nA family sitting down at a dinner table eating food.\nSome people sit in a carriage pulled by a horse. \nA man holds an umbrella for a new bride\na black and yellow trains engine pulling its cars\nA flower in a tree that is blooming.\nA line of people is getting on to a bus.\nA clock sits on top of some books.\nA bathroom with a shower next to a large mirror.\nA clock on the wall between benches and tables on a stone floor.\nThree young children holding tennis racquet on a tennis court.\na sexy naked woman on a bed in front of a window\nA broken bathroom with a white sink and toilet.\nA white bowl filled with veggies and two lemon wedgies.\nA partial cake and chopsticks are on the table with a lego man.\na couple of kids are holding stuffed animals\nTwo slices of pizza with toppings and a beverage on a table. \nA women who is bouncing a tennis ball.\nThe two cyclists are going down the country road.\nA series of collectible items are sitting on display.\nA train traveling through a dark tunnel next to green brush..\nThe table has a sandwich, a mug of coffee and custard cream on it.\nA dog stands near toys outside in the yard.\nA boy walking into the ocean with his surf board in tow.\nWoman in a shop with wine and beer looking at her cellphone.\nA man lies on the beach while someone else holds a kite.\nA freshly baked pizza sitting on a cutting board while being cut.\na black table and stools sitting next to two windows with shutters\na bathroom with two sinks two mirrors and a bath tub\nA bedroom with a full size bed and wooden headboard with  matching drawers on the side.\nA bald headed man eating a slice of cake.\nA yellow banana sitting on top of a cutting board.\nA man standing behind a brown horse carrying lots of luggage.\nA blue lighted bridge over water at night.\nA group of three people sitting at a table with food.\nA picture of a counter and some chairs.\nA kitchen filled with lots of counter space.\na man with a teddy hanging on his shirt\na sunset over the water with birds in the air\nA white dog carrying a red frisbee in it's mouth.\nA pair of slippers sits on the bathroom floor.\nA person sitting indian style on top of a bed.\nA man walking a down down a sidewalk.\nA person skiing down the side of a snow covered field.\nA open fridge that has different items inside of it.\na person sitting at a table with a laptop\nA cake sitting on a kitchen counter next to two stuffed animals.\nA yellow boat sitting on top of a body of water.\nA person riding on top of an elephant near a tree.\nMan sitting at a dinner table eating a chocolate piece of cake. \na bunch of people on skis going through the snow \nsome zebras dirt tall brown grass bushes and trees\nA foot wearing a pointy pink flat shoe rested upon a bench.\nA woman tennis player swinging a tennis racket with both hands, on a hard surface court.\nA clean bathroom with black marble counter top.\nA long yellow bus advertising a musical play\nA herd of antelope next to some zebra's grazing in a field.\nA pile of lots of different oranges with stickers on them.\nA woman in a red shirt holding a pink vase.\na photo of a stampede of cows in the street\nA giraffe stands in front of a verdant, lush group of trees. \na young girl is on her phone outside\nTwo men are cutting a cake at a function.\nSeveral wine glasses lined up on a white counter\nA zebra looking at the camera with other zebras behind it in the wild.\nA couple of elephants standing next to each other.\nA woman standing next to a young boy holding a knife.\nSmall grey cat crawling over a woman's stomach. \nA laptop computer on a desk along with some other things.\nElephants are in a ring with a person near bleachers.\nA cat laying on top of a bag filled with items.\nStreet signs at the corner of Wadsworth and Amherst\nChildren play basketball and ride skateboards behind a housing complex.\nA group of people on horses racing together.\nA man standing in the snow while talking on a cell phone.\nA beautiful woman sitting in a blue chair writing a paper.\nA small one way road is filled with moving cars and pedestrians watch. \na baseball player is swinging a bat at a ball\nMan on a snowboard, mid air going down a snowy slope.\nMan laying on bed with shirt open looking into device for picture.\nThis is a black and white photo of a girl under a pedestrian traffic signal.\nA group of beautiful women sitting around a wooden table.\nA stand features several fresh fruits in baskets, and hanging.\nA kitchen has a dining table with a lime green chair.\na close up of a plate of broccoli and sauce\nA man swinging a golf club in a grassy area.\ntwo dogs sharing a frisby in their mouth in the snow\nA goat with very long horns standing in front of a tree.\nA man is taking photo of a baby.\nA group of boys in baseball uniforms on a ball field.\na group of people on motorcycles drive down the road\nA giraffe leans over a fence to eat from a happy woman's hand.\na close up of a box wit ha sign on it on a bench\nThere are two giraffes located in a natural setting.\nA group of people getting off an air plane.\nA table with two chairs with a pink hairdryer on top.\nA metallic refrigerator freezer sitting in a kitchen.\nA flock of sheep graze on a hillside.\na kitchen with a sink a shelf and a chair\nA young adult parasurfing over the water in the air. \nA dirt bike parked near a tent in the woods.\nA giraffe eating leaves from a giant rock.\nA clock that is on top of a sign.\nA pitcher is warming up while the other team watches.\nA couch that is sitting near a window.\nA very large airplane sitting on a runway.\nA man talking on a cell phone walking next to a woman.\nA train sitting next to a loading platform with people standing on it.\nA woman in riding gear riding a horse in a dirt arena.\nA train car has steps placed on the side of it.\nA city lined with tall buildings covered in hanging letters.\nWoman sitting at table at outdoor venue with additional photos of food served for consumption.\nA bike and a dog on the sidewalk outside a red building.\nA giraffe standing next to a pile of stones.\nA motorcycle parked near a harbor filled with boats.\nA stuffed animal in bed with the remote control.\nA couple of people sitting in a living room in pink chairs.\nA number of boats are in the water near the beach.\nA white sink sitting under a bathroom mirror.\nA child tennis player prepares to hit the ball\nA man riding skis down a snow covered slope.\nA street sign on top of a pole next to a large green tree.\nA person sitting in front of a wooden desk with a laptop.\nA man with his shirt off sitting by the shoreline sunning himself. \nA horse in a pasture of tall grass observing an energetic dog.\nThe people are walking in around in town\nA dog laying on its back on a made bed.\nA woman riding a biek down a sidewalk.\nA stove top oven sitting inside of a kitchen.\nA bicycle is on the shelf in a display\nA woman standing on a balcony in front of an elephant float.\nThe contents of a bag placed out on a blanket.\nA woman hitchhiking while another woman sits on a suitcase\na green vase with flowers and a calendar sitting on a table\nAn incredible picture of an individual in the stillness movement.  \nThere are plenty of leftovers on the stove.\nA person with a flying kite on a beach.\nthree luggage bags piled up on top of one another \nA wooden sail boat with white sails floating on a body of water.\na white bird sitting on a grassy hill\nA red train with its doors closed near the platform. \nA young man kicking around a soccer ball on a field.\nA male tennis player jumping in the air to serve a ball on a clay court with spectators looking on.\nA large clock mounted to a brick wall.\nAssortment of kitchen appliances displayed in white cupboard.\nA woman with a box of chicken has an umbrella hat.\nA black and yellow bike making a turn on the track\na person riding a wave on top of a surfboard.\nA man flying through the air while riding a snowboard.\nA large clock hanging off the side of a tall building.\nA child baseball player tries to hit the ball\nA horse with a saddle tied up to a fence.\na boy is preparing to serve a volley ball\nA herd of cattle and zebra standing next to each other on a  field.\nthree people running on a beach with waves and lots of birds in the background.\nA group of travelers are about to board a bus.\nA little cat looking at itself in a mirror.\nThis doughnut has chocolate icing and sprinkles on it.\nA black and white photograph of luggage lined up on a sidewalk.\na couple of people on some motorcycles \nBlue road sign directing traffic to the left.\nA red medical ambulance bus parked and waiting for people to board.\nA person sitting down and eating some pizza.\nA man hitting a tennis ball with a racquet.\nA man in shirt and tie holding an umbrella.\nA teddy bear next to a wood stick and wood wall.\na bathroom simply designed with pale neutral tan colors\nThere is a lot of expensive recording equipment on the table.\nA traffic light sitting next to the side of a building.\nLooking out over a bay with many tourist boats moored\nTwo young boys sitting in bed together under blankets.\nHand reaching for one of the doughnuts on the table.\na man with a cup is standing near a cow\nA wooden desk with a lap top computer and a computer monitor with a keyboard and mouse. \nA crowd of people standing on a green field before a capital building.\nA brown and white cow in a green pasture.\nPassenger bus stationary in traffic on city street.\nA silver and red bus in parking lot next to cars.\nA shirtless man walking a bike down a rural street.\nTwo men on stage with an image on a screen. \nA group of bunches of bananas are shown hanging together.\nA man and a woman cross country skiing on a snow covered trail with mountain peaks in the background.\nSmall train running down the tracks in the middle of a field.\nA man riding skis across snow covered ground.\nCreative centerpiece floral arrangement at an outdoor event\nthere is a cutting knife and cut up foods on the cutting board\nA large metal clock tower below very tall building.\nAn old red fire truck parked at a car show with on lookers.\nThe market is selling bunch of bananas. \nA skateboarder flipping his skateboard going down a ramp\nA flock of seagulls walking along a beach.\nA herd of sheep standing on top of dry grass in a pen.\nThe table is holding, pizza, eating utensils and glasses of orange juice.\nA person rides a surfboard on a wave at the beach.\na herd of zebras stand on some green grass \nSeveral different avatars near a fence on a video game.\nA man holding a kite on a beach during the day.\nThe fresh vegetables are growing in the garden.\nA white tub sitting next to a toilet in a bathroom.\nA piece of art that has been cordoned off, that looks like a baseball player.\nAn old iron square steam train pulling gray passenger cars down a track past a bicyclist.\na bunch of cars that are paying a toll\nA black fence guarding a building next to a trash can.\nA  man guiding a pony with a boy riding on it.\nAn antique stove is standing in a kitchen.\nA table with jewelry and a bear covered in various writing.\nA woman standing on a tennis court holding a racquet.\nA mounted police officer riding down a city street past parked cars.\nA slice of deep dish pizza sitting on a  white plate.\nA carriage with people in it being pulled by two horses in the street.\npitcher standing on the mound watching runner on field\nA filthy sink and toilet are seen from above.\nA creepy Spinx statue suspended to the front end of a dump truck.\nThe scene is three large racks of skis on a mountain.\nA red fire hydrant in the middle of the grass. \na couple of people walking with their surfboards at the beach\nA red train traveling through a rural countryside.\nMany people are walking near some very colorful buildings. \nthis bathroom has a green tub and a toilet chair\nA couple of pans filled with bagels with holes in the middle of them.\nTwo different flavored donuts sitting on top of a white plate.\nA two truck towing a brinks money truck.\nAn orange is hanging on a green tree\nA kitchen that has various stainless steel appliances.\nA baseball player waiting to hit the ball.\nAn old brick city has water and a clock tower.\nA boy carries a stuffed animal as he walks beside some flowers.\nA bathroom with a narrow toilet and hanging towels. \nA person wearing a wetsuit with a surfboard under one arm.\nA close-up of an orange on the side of the road.\nA man and woman are riding down the street in a parade wearing patriotic hats.\nA person is laying tennis with racket in hand\nA large red double decker bus traveling down a busy street in London.\nA kitchen with an oven, stove , sink, microwave and refrigerator.\nA person riding a wave on a surfboard.\nA man smokes a cigarette outside on a building.\nPeople putting luggage onto a bus outside beside a building\na woman tosses a frisbee in a public park\nA white truck is near some trees in the background.\nam empty bowl and three empty beer bottles in front of a man\nTwo twin beds with no comforters on them.\nA lot of food that is on top of a table.\nA bed filled with different types of stuffed animals.\nA fat man is playing golf on the Wii.\nA bowl filled with lots of oranges on a counter.\nA pan filled with broccoli and onions with oil.\nA group of people flying a kite in a field.\ntwo males on computers and a gray keyboard\nA person riding a wave on top of a surfboard.\nTwo boats floating on top of a river next to a  rock mountain\nPerson with a red and blue umbrella by a small pond.\ncakes on a plate on a table along with a cup and a fork\nTwo people in a speed boat on a body of water.\nA large red brick clock tower with a clock on each of it's sides.\nPeople playing and people watching a game of basketball. \na dining room table with a plate of food next to a wine bottle and some glasses \nA cat looking like it is using a laptop \nA white refrigerator on the side of a road next to cars.\nA keyboard rug lies on the floor by two chairs.\nSome people out in the grass throwing a frisbee\nA woman with a concerned look talking on a cell phone.\nA hand holding a hotdog over a paper tray.\nA street view of on coming traffic underneath a street light.\nA herd of cattle that are grazing on some grass.\nA black cat standing inside of a piece of luggage.\nA bus that has been burned is sitting in pieces on the street.\nA teddy bear sitting in between a display of books on a table.\nA man holding a surfboard while walking into the ocean.\nThere is a blue and yellow transit bus stopped to pick up passengers.\nA sandwich roll filled with meat on top of tin foil.\nAdult lying obscurely on park bench in wide open area.\nThe view of a large bathroom with a walk in closet.\nA man and a woman sitting on a couch together.\nA couple of men running across a lush green field.\nA long train moves down the tracks on a cloudy day\nA brown horse peering over green bushes under trees.\nA baseball player tossing a bat next to home plate.\nA cat is sleeping on the couch cushion\nA bedroom has wooden brown floors made of planks.\nThree muffins sit on a chair and one muffin is missing a bite.\nA large brown bull with long horns standing on a grass covered field..\nSmall horse standing behind a large group of horses eating. \nA man is surfing on a small wave.\nA woman is talking on the phone while on the bus\nThree decorated, carved jack-o-lanterns, one with pink flowers and a vase inside it\nVehicles are traveling down a snow covered hill. \nA man holding a hotdog in one hand and a bun i the other.\nfour plants being grown outside in a planter\nA counter top with a plate containing a slice of pizza.\nSoup, salad and sandwich sitting on a plate.\nTwo pictures of a dog sitting next to a wooden chair.\nBunches of bananas are hung on a chain beneath a pipe.\nA female surfer lying on her surf board in the water as a wave pushes her\nA man holding a skateboard in front of a sun setting.\nA series of images of pots filled with chocolate and desert.\nA group of men carrying surfboards on a beach.\nThe wing of an airplane flying above a beach.\na couple of kids are standing by the bushes\nMany pots and pans are hooked on a kitchen wall.\nA pile of fresh produce sitting inside of a store under a scale.\nA man leans back while riding on an elephant in deep water.\nA zebra standing in a field grazing as another looks alert.\nA plate of colorful vegetables and a cut of meat.\nA black trash bag in a restroom next to a sink.\nA baseball batter at the end of the swing.\nA young girl watches a laptop on a bed. \nPeople are lying down watching television with their socks on.\nBoats floating down a river surrounded by trees.\nA small biplane flying through a bright blue sky.\nbig city with tall buildings and lots of people on the street\nA man skiing down the side of a snow covered mountain.\nA bed in a hotel is carrying sheets and pillows as it sit next to a lamp.\nA white toilet and sink in a room.\nA white couch sitting in a living room next to a book shelf.\nthe woman prepares her horse for a jumping competition\nApples, fresh granola, cream and a wooden spoon\nfour lambs grazing in a fenced in pasture\nA orange and white cat sitting underneath a white bush.\nA pole with a sign explaining the traffic signs. \nA man enjoying a bite of fresh pizza in a pizzeria\nTwo small children holding onto teddy bears in the grass\nA person on skis does a trick on a rail.\nTwo zebra standing next to each other on a  hillside.\na wall with a bunch of graffiti on it\nA man on a surfboard riding a wave in the ocean.\nMany sheep are grazing for food in the grass.\nThe yellow fire hydrant is next to the bushes.\nPeople are boarding a bus parked at a stop.\nA person standing by a building with a doughnut.\nA yellow and blue plant flying in a gray sky.\nA horse eating hay standing in a mowed field.\nA man wearing a backpack waits for a train.\nA man getting a drink from a water fountain that is a toilet.\nthree tennis players on a court playing tennis\nA room with an older model television in it.\nTwo baby ducks following an adult duck from behind.\nA couple of large giraffe in the tall grass.\nA woman riding a red motorcycle wearign a helmet\nProfessional skier performing tricks for a group of people at a ski resort.\nA bed in a hotel room with doors leading to a balcony.\nTwo people having a conversation while holding red umbrellas.\nWoman walking on train platform as train filled with passengers prepares to leave.\nthis is a table in the middle of a room\nA small child is on snow skis in the snow.\nA picture of a living room that has a computer and a bicycle.\nA black and white cat sniffs a laptop computer.\nThe old man literally has a toothbrush mustache.\na guy doing a jump with his skateboard\nA hummingbird sits perched alone on a branch. \nA man flying a kite over the ocean on a beach.\nSeveral benches in a park area, with flowers and an umbrella above a table\nTwo women comparing info on their phones in the room\nA giraffe grazing in pen next to a tree trunk.\nA jetliner wing flying over the top of a parking.\nA child holding a pink toy cell phone with \"Princess Aurora\" inside it.\nA young woman walks in the rain, smiling and holding an umbrella.\nPeople sit in the sand or take boards out into the water on a small beach.\nTwo zebra standing next to each other in a dry grass field.\nTwo wooly sheep are standing in a pen.\nA person that is going out in the water.\nA large mirror reflecting a bus driving down a street.\nA laptop computer sitting on top of a table next to a tree.\na cow stares as it stands next to a body of water \nLooking in to a straw lined pen of cows\nA woman standing while holding a pole on snow\nA little girl is standing outside eating a piece of pizza.\na man sitting on a dirtbike in a circus ring\nA person standing on top of a yellow fire hydrant.\na dog on a lawn chair with a banana in its mouth\nChildren taking a ride on an enjoyable ride on an elephant.\nParking meters are lined up on an empty lot.\nTraffic on a dock next to a moored sailing ship.\nA fresh homemade pizza sitting on the stove.\na bunch of people that are skiing down a hill\nA man holding a child next to other adults.\nA group of people standing around a table with plates of food.\nA woman sitting down at a table to a couple of pizzas.\na red and a black suitcase a rug  and some flowers\nRed wrong way sign in front of a church\nA container filled with broccoli and cheese and a spoon.\nAn airplane sits on the tarmac of an airport, with a disconnected boarding gate.\na clock tower sits in the sun on a nice day\nA slice of pizza covered in olives on top of a pizza pan.\nA side view of a train passing through a mountain trail.\nA man skillfully shows off on his snowboard.\nA house and a lighthouse is located near the water.\nA meal in a container consisting of an orange, meatballs, carrots, and peas.\nBarren mountains dotted with green beneath a cloudy sky.\nA small cow is walking down a path with an adult cow while a man in a red shirt watches.\nA tv screen with sponge bob on it's display.\nA street sign sitting in the middle of a road.\nThere is a dog holding a Frisbee in its mouth.\na small cat stands on some snowy plank \nWatched by her father, a little girl plays a video game.\nA box filled with all types of different types of donuts.\nA sign warning drivers that there are children at play.\nA bus heading to Mission Ferry Plaza waiting for passengers.\nA woman standing next to two smiling men.\nA person standing next to a large elephant.\nA group of women in military outfits helping other women in a kitchen.\nA baby grabs for a bite of pizza that a man is eating.\nThe giraffe are walking through a wooded park trail.\nthere is a older man sitting and using a lap top\nA baseball player hitting a ball during a baseball game.\nA hand holding a piece of cinnamon roll\nA computer desk topped with two desktop computers.\nFour horses with people riding them in the water. \nA tennis player has just attempted to hit the ball.\na white structure with a building in the background\nA group of people riding a wave on top of  surfboards.\nA lady is eating a salad before digging into a huge pizza sitting in front of her.\nThere are billboards on the side of the road.\nStreet signs at an intersection of roads in front of a brick building.\nA pretty young girl standing next to a boy in front of a birthday cake.\nMan is holding up a photograph and smiling \nBlack dog laying down near a black and white cat. \nA boy smiles next to a birthday cake. \nTwo men standing in a living room next to each other.\na person riding a motorcycle on a city street \nSome elephants grazing around outside in front of  brick housing.\na person riding a surf board on a wave\nA group of girls all colorfully dressed dress with umbrellas.\nA man is holding a Wii controller as if it were a baseball bat.\nA man sitting down at a table using a computer.\nA young male baseball player is about to swing for the ball.\nA man wearing a beret while using a laptop computer.\nA fuzzy photo shows a simple bathroom and bathtub.\nA bus that is sitting on a sidewalk.\nA fighter jet flying through a blue sky with smoke behind it.\nA cat sitting on top of a television.\nA large pink frosted cake sitting next to cups of coffee.\nA red painted wall is against a television.\nA person riding the waves on a surf board.\nA kitchen counter with a pizza ready for the oven.\nA view of a vase with purple flowers in it.\nA toilet sitting underneath a medicine cabinet in a bathroom.\nA dog with a hat and a person in a truck.\nPeople standing around a two story build with a clock on top of it.\nA young boy admiring a toy railroad display.\nthis modern urban kitchen has white painted accessories\nA young man sitting on a bus up against a window.\nA train covered with graffiti moves along an urban track.\nA crowd of teddy bears link a wall and on top of a surface. \nA large gray elephant standing on a pool of water.\nA group of people standing on ski's in the snow.\nA cat sleeping on the tv with his paw hanging down.\nThe young man is practicing on his skateboard. \nA bloody unconscious man being looked after in a hospital. \nA man riding a kiteboard on top of the ocean.\na boy attemping a jump with his skateboard in a parking lot \nA man standing next to a small airplane with two dogs.\nA white stove top oven sitting inside of a kitchen.\na cutting board with a knife, tomato, and lettce on it \nA tall giraffe studding next to a  parked truck.\nA boy walks along the beach carrying his surfboard.\nskateboarder who is about to land from a jump of some type\nBlack and white picture of a man carrying a surf board.\nA father and son play a video game on the Nintendo Wii.\nSome people sitting around at various tables, with a railing dividing them\nA large plane flies in the sky while a reflection shines from the wings.\na personnear a table with many plates and boxes of pizza \nA box filled with donuts with frosting check marks.\nThree zebras eating hay from a trough at the zoo.\nThree zebras are running out on the plain\na picture of a cellphone on a cellphone\nTwo zebra standing next to each other in a park.\nA tall building with a large clock tower projected onto it's side.\nMen holding tennis rackets are shaking hands above a net.\nTwo children sit at the kitchen bar waiting for their meal.\nOval shaped picture of buildings with a truck outside and blue sky.\na woman on skis with a red shirt is posing for a picture in some snow\nA pink bedspread is featured in this bedroom.\nA child eating a piece of cheese pizza.\nA pretty red white and blue parking meter by some shrubs.\nA young boy holding a baseball bat and a  stick.\nA woman and man playing a game with Nintendo Wii controllers.\na fire hydrgon that is out in the bushes\nA distant shot with people approaching the bus. \nSeveral motorcycles and cars parked on a city street.\na tow truck pulling a white card down the road \nA woman opening up a laptop computer gift in her living room\nA container filled with different types of food.\nThe zebras are standing around and grazing in the pasture.\nA messy kitchen in a wooden house in the country.\na man that is surfing on some water\nPeople with horse drawn carriage on side of city street.\nA dirty laptop turned off on a wood table.\na small statue is by a red sign\nA person is seen using a snowboard on the packed snow.\nBrown dog holding up a teddy bear in its mouth on the floor. \nA group of men on a field playing baseball.\nA giraffe walks through a line of cars in a parking lot.\nA professional baseball player getting ready to throw the ball\nA bedroom with a large window, bed and floor lamp.\nA lady looks out onto the city from behind a giant clock.\nA group of people is socializing at a table.\nA couple of cats laying on top of a bed.\nPeople getting ready to board a light plane on an airstrip.\nA white table topped with two pans of pizza and a black paper plate topped with a slice of pizza.\nA empty living room area with a mat on the floor, and balloons.\na building with a clock above the front doors \nan image of a plate of meat with veggies on it\nA trolley stopping at the curb to pick up two passengers.\nA group of metal sculptures sitting on top of a white table.\nA bunch of ripe bananas sitting on a plate.\nA man is about to throw is disk golf frisbee. \na sandwich is cut in half with sodas\nA thin crusted pizza dish cut into four slices\nA man with a skate board is posing in an elevator.\nAn open laptop computer sitting on a wooden desk.\nA plush alligator on a bed covered with a bedspread and pillows with a lamp on above the bed.\nA long red and white train going down the track\nTwo people with snow gear on, carrying equipment.\nThe action in an organized youth baseball game.\nA wooden table with a white plate with a doughnut on top of it.\nA mirror sitting on top of a wooden dresser.\na shake is sitting next to a cake\nTwo zebra's standing next to one another eating grass.\nA train is passing another train sitting on a track.\nBrown, white and tan horses grazing in an open field.\nOrnate wedding cake ready at the hotel reception\nA brown dog standing next to a white rabbit.\nThe woman is dipping food out of the pot to eat.\nThe dog is achieving high jumps in the yard.\nA couple laying on a big bed in a bedroom.\nA woman holds a pink and blue kite in her hand\nA man preparing a pizza inside of a kitchen.\na guy gliding down the road on a skateboard\nA group of muddy elephants standing by rocks.\nA person is typing on their laptop computer.\nTwo large and one baby elephant walking through the marsh.\nAn old photo of a bride and groom in front of a stone building.\nA man kiteboarding over waves in the ocean.\nA woman in a white dress playing a game of tennis.\nThree young boys sitting down with some luggage.\nA man in shorts riding a surfboard in  a pit\nTwo men watch as yellow aircraft flies over a lake.\nthere is a young girl running and playing tennis\nA white plate holding a sandwich and a salad.\nCouple of people standing in room playing with the Wii\nTwo people walk on a path carrying umbrellas.\nCluttered blue carpet with notebooks and video games.\na woman with a rope leading a horse\nA small boy leaning up against a window on a train\nA group of three microwaves sitting on a counter top.\nA wedge of crumb cake on a white plate with a fork.\nA city street with cars and street lights.\nA metallic toilet sitting in a small bathroom.\nan image of  plate with food on it\ntwo guys and two girls watching a computer\nA couple of sandwiches in a food basket\nA bunch of different bikes on a wooden floor.\nThree white sheep traveling down a paved residential street.\ntwo boys standing by a fence getting ready to ride their skateboards \nA view of a kitchen with a burner top stove.\nA single giraffe looks over the green brush.\nBaseball player swinging at an approaching ball with catcher at the ready.\nA close shot of what seems to be a public restroom. \nFlowers are in flower pots as a lace table cloth covers a small table.\nSkateboarder practicing on homemade wooden obstacles in a grassy field.\nPeople and a dog riding a decorative boat on a waterway. \nsmall boats parked in the ocean at sunset\nTwo children smiling on top of luggage in parking lot\nThe cover of a magazine called \"Fast Company\" featuring toddlers with smart phones\nA yellow and blue bus traveling down a road next to a park.\nA group of young people sitting on a couch next to a guy playing a Nintendo Wii.\nThe cows are standing on the hay in a meadow. \nThe man looks eagerly at a huge pizza in front of him. \nA bird floating on top of a body of water.\nA group of black and white cows in pen in a barn.\na person in front of a tv with a gun\nA bird is perched on a large rock near the shore.\nA desktop computer sitting next to a keyboard.\nA woman bathing a baby near a kitchen sink.\nsome one about to take a picture with a camera\nA pink plate topped with two sausages on a bun.\nCrowd of airliners parked at a terminal with service vehicles.\nCat sitting right next to keyboard on laptop\nA group of teddy bears sitting around a table sharing drinks.\nA large clock that is in between two pillars. \nA man holding a paper bag while showing the camera a toothbrush.\nA bare kitchen in the midst of a paint job.\nA blue and white train parked next to a loading platform.\nA BOY IS LOOKING AT THE VEGETABLE STAND \nA brown bear is grazing in the grass.\nA woman posing with her husband and two children.\nA black cow standing next to a brown cow on a lush green hillside.\nA group of cows stand next to a fence.\nA bathroom with a white toilet next to a walk in shower.\nA blue double decker bus driving down a street.\nHAM AND EGG ON A PANCAKE, WITH A DISH OF YOGURT\nA little girl holding a dog on a leash.\nthere are two zebras eating on a little bit of loose grass\nA guy with a messy hairdo wears business attire.\nA cat sitting on a windowsill stares at the camera.\nA man playing baseball on a field of some sort.\nA pelican near some boats that are docked.\na man is playing tennis and is going to return the ball\nA sports motorcycle is parked on a gravel road by a river.\nA child standing up holding a piece of luggage\nA man standing in the middle of the room, with clutter all around.\na number of luggage bags on a cart in a lobby\nA big white book shelf that is tipped on one end.\nA family of elephants standing on a grass covered field.\nA group of people riding horses across a beach near the ocean.\nA motorcycle parked next to a yellow thing and tree.\nthis is a woman on a tennis court\nHorses kicking up dirt and grass, behind a fence.\nA room with a kitchen table and lots of wooden chairs.\nFish eye angle view of small kitchen with fire extinguisher at far end.\nThis photo could double as a scrapbook page with these souvenirs of travel.\nA view of a bunch of apples sitting on a stand.\nA gray cat is laying on a pink duster.\nA flower arrangement is sitting in a black vase.\nTwo people wearing skis holding onto ski poles.\nA person sits next to their bike while birds walk nearby.\nThe bowl of a white porcelain bidet with the seat raised.\nA potato dish with cheese on a black plate.\nLooking out of a commuter bus at a small town grocery\nA table with a couple of bears on it.\nA group of sheep walk along a dirt path.\nA tall sandwich with pickle on a white plate.\nA large long bus on a city street.\na food platter with white rice carrots and some pieces of pork\nTwo computer monitors on a desk with a keyboard and mouse\nA picture of people is on the floor near a urinal.\nA grey and white cat sitting at foot of a doorway.\nA surfer is moving through a small wave.\nA man wearing glasses while holding a banana.\nA girl holds a teddy bear while an adult stands behind her.\nA neon green walking sign has an arrow under it.\nA modern sink is on top of a bathroom counter top.\nA knife is sitting on a plate of food\nA little girl crying with one hand on a laptop.\nThe man in the tie is looking away from the camera.\nA black and white still life of a branch with flowers in a vase\nA man sitting at a desk with a computer holding a cell phone.\nA group of people that are holding onto sheep.\na close up of a cat laying on the ground with something on its head\nA train on bridge passing over water with city in the background.\nA gray bird is standing on small brown branch.\nA bird is perched on a boat which is anchored in the water. \nA dining table with a pasta dish and pizza in a restaurant.\nAn old time car is parked at the curb near a stop sign.\nA young man in a white shirt is playing tennis.\nA wooden bench with snow in a  forest.\nA tasty looking pie that is sliced up and ready to eat.\na big park bench that is next to a building\nA black cat laying on top of a brown piece of luggage.\nA woman handing another woman a birthday cake filled with candles.\nA man has thrown a frisbee into a metal structure.\na brown donut on some white paper on a red counter\nA dog is asleep on the floor next to a couch.\nLone zebra as seen through narrow opening in enclosed area.\nA banana sitting next to an orange and apples on a wooden table.\nPeople are riding horses and a woman is on a cellphone. \nA military air craft flies in the sky with landing gear down. \nTwo construction workers are walking in front of a cone and parked cars. \nMan on a bicycle riding on the road next to a river.\nTwo giraffes are in the grass by some rocks.\nA street light and some trees on a street.\nOddly dressed people standing by each other posing towards camera.\nA man in sunglasses and chains is holding a microphone to his mouth.\na man in a chefs outfit standing by a big donut\nA brown horse grazing in an open plain.\na black and white cat looks at the camera and there is a TV in the background\nA blurred train is going under a bridge.\nA pair of computer monitors display contrasting sets of angel wings.\na woman stares as a bird flys through the air \nTop down view of a bathroom with a toilet and trash can.\nA parking meter sitting on the side of a road.\nA white microwave oven sitting on top of a counter.\nAn adult elephant is pictured walking with a baby elephant.\nA stainless shiny serrated knife sits in front of a sliced loaf.\nA baseball batter is swinging a bat at an incoming pitch.\nAn open suitcase on the floor next to a cell phone.\nA red traffic light above a street in down town Los Angeles.\nSomeone cutting a piece of carrot cake with a knife\nsome giraffes rocks plants trees and a building\nA view of a bathroom with a huge pipe behind it.\nA school bus and a silver car waiting at a railroad crossing for a train to go past.\nLittle girl holding up a big stuffed animal with other children in background.\nA man riding down the side of a ski slope on a board.\nA pile of chopped up broccoli sits next to bottles of sauces. \nA partially eaten banana face down on cement about to be stepped on by a shoe.\nTwo teddy bears are sitting together in the grass.\nsome people on skis ride on the snow \nOld baseball bats are turned into a seat.\nA white refrigerator freezer sitting inside of a kitchen.\nA rusted out train engine sitting next to a green forest.\nA woman walking down a street holding an umbrella.\nA young girl holding a piece of food and her hand over her mouth.\nA man flying through the air while riding a skateboard.\nA person standing on a street with a cell phone.\nPeople riding down the street on their bikes. \na giraffe is standing in a grassy field \nA group of zebra on a grassy field.\nBananas, Coconuts, and other fruits at a market stand.\nA zebra eating grass next to a wire fence.\nA room filled with clutter and a laptop computer.\na red and yellow fire truck and some buildings\nA train that is sitting on the tracks.\na crowd watching a girl ready to hit the tennis ball\nA small brown bird is sitting inside by a window.\nThe office desk is still a mess and the computer is left on. \nA green and yellow train sitting under a metal structure.\nA group of people in a field flying a kite\nAn airplane with its landing wheels out landing. \na number of people holding a number of open umbrellas\nA bathroom with urinals that have graffiti above them\nA cat is resting peacefully on a laptop while surfing the web.\nA standing toilet sitting inside of a stone and cement room.\nA baby laying inside of an open suitcase.\ntwo sets of skiis covered with a bit of snow \nA woman sitting at a table with others using laptops.\nA man walking under a tree while talking on a cellphone.\nTwo very cute fuzzy young sheep on  a grassy hill.\nA lady with green hair and red boots sitting in the grass near a horse.\na boy is sitting down on a skateboard ramp\nA painted vase is holding several colorful tulips.\nA man riding a wave on top of a surfboard.\nA group of women playing a game of soccer on field.\nAdults with childern walking in the rain with umbrellas.\nTwo sun shaped mirrors are above bowl shaped sinks.\nThe group paddles the boat down on the water.\nA man and two women walking their dogs and hiking in the woods.\nBuildings with a clock and a crane over head are in this picture. \nmany people on a beach with a kite flying in the sky\nA cat and a kitten laying on a bed next to a laptop.\nA sleeping grey husky wearing a green bandana.\nsome baseball players playing baseball on a field\nsome dessert is laying out on a yellow and white plate\na lady eating at a table holding up the peace sign\nA narrow city street has a leaning one way sign.\nA couple of slices of a cinnamon roll on a white plate.\nA tree sitting on top of a hillside near a bench.\nA picture of a young woman holding hands with a dog.\nA dog asleep on the couch with its paw on the remote \nBoy running around bases with boy looking other way \na bathroom with a big mirror above the sink\na person next to a small elephant \nA rear view mirror that has a large truck showing in it.\nA little child standing next to a toy dump truck.\nA person holding a toothbrush under the running water of a faucet.\nA parking meter with a zone 3 sticker on it.\nAn orange and white cat laying on top of a sink.\ndifferent slices of banana cut in halve length wise\na bus that is driving down the road\nA white bathroom mirror mounted to it's wall.\nSeveral people walking on a platform next to a train.\nA cat laying on top of a pillow on a bed.\nPeople walk through the street with umbrellas to shade the sun.\na close up of many toy sheeps on a table \nA group of people standing on top of a green field.\nA blue bus sitting in the middle of a street.\nA flock of birds flying in an overcast sky\nA small brown bird standing on a patch of grass.\nA giraffe sticking it's head in a van.\nA half eaten hot dog being held in a hand at a baseball game.\nA man at a restaurant is waiting to serve customers.\nA colorful umbrella sitting under a blue sky.\nA remote controller hitting a signal on a television.\nA red bus traveling down a busy city street.\nA luxurious bathtub in front of a window with a red carpet and marble walls\nA man on a skateboard is jumping over a pile of blocks.\nA clock in near the triangular roof of a large building.\na young woman with a slice of pizza in her mouth\nA person standing in a living room with a fire place.\nA herd of elephants standing next to each other.\nTwo people sitting on a bench silhouetted against the sea.\nA woman is holding a spoon in a blue bowl of food.\nA refrigerator filled with lots of soft drinks.\nA bathroom with blue walls, a white commode and a contemporary white sink without faucets.\nAn elephant with tusks standing in a rock strewn grassy area with two birds perched on top of it.\nA bird standing on top of a beach next to water.\nA child is shown holding a kite in the air.\na teddy bear under tree branches and plant life with trees in the background\nA man wearing a suit and tie and red hat with a silver buckle.\ntwo public transit buses on a city street\nSome people are standing on a crowd crowded sidewalk\ntwo black and white clocks on a black clock tower and clouds \nA large wooden pole with a green street sign hanging from it.\nA man on a surf board riding the wave.\nA green train traveling through a train yard.\nThere is a clock right outside of the tall building.\nA boy playing a multicolored piano on the street.\na street sign on the corner of a city street \nA man wearing a helmet while holding a banana next to a woman wearing a helmet.\nA train parked at a train station next to another train.\nA skier is jumping down a snow covered mountain.\nA kitchen area with refrigerator, counter and a microwave.\nA bunch of umbellas sitting on a beach, during the day.\na guy riding a skateboard at a skate park\nA cow eating a mix of vegetables on a piece of paper next to a bird.\nA toilet is in a dirty bathroom with a sink.\nA person riding a skateboard next to the ocean.\na bath room with a toilet a stool and handle bars\nA dog with a blue frisbee in it's mouth.\nThe bench is empty at night in the park\nA man eating raw oysters at a picnic table by the water.\nA wooden table topped with two monitors and a laptop computer.\nsome kind of room with some weird things in it\nA large clock and a sign on top of a building.\nA public restroom in a state of disrepair.\nA mountain area with rocks and grass, and a large ram standing in the grass.\nA wooden table filled with wine glasses and a bowl of salad.\nA little girl with a baseball bat is waiting for the pitch.\nA Christmas tree sitting in a  living room.\nA train is traveling down the railroad tracks. \nPeople gather around a truck parked on a boat. \na woman holds a kite over her head \nA group of people looking at some kind of show or exhibit \nThis photo shows four copies of the same fire hydrant.\nThere are stop signs and one way signs at this intersection.\nA couple of birds fly through a blue cloudy sky.\nWoman wearing glasses eating a large slice of cheese pizza.\nA skateboarder is near the edge of a skateboard ledge.\nA woman riding a motor scooter with a woman on back.\na young man on skis glances at a frozen parking meter dispenser\na bunch of cows under a tree on a field \nAn elephant at a zoo standing before a wire fence.\nAn elephant looks at  the camera while outside\nA city with tall buildings filled with tall buildings.\nA man riding skis down a snow covered mountain.\nA large kitchen with wood cabinets and black accents.\nA group of giraffes stand together feeding on leaves in a large park.\na couple of sheep walking across a grass covered field.\nPeople on corner with cars on street and stoplight with building\nA street sign saying S. Gay st while a traffic light is yellow.\na public bathroom with a clock tower in the background\nLamps are the only lighting in this kitchen. \na cat is laying on a window ledge\nmopeds parked in a parking garage with a green floor.\nTwo Nintendo Wii game controllers sitting next to each other.\nA woman holding two rainbow slices of cake.\nA man is among a crowd and holding his ear to hear on a cellphone.\nA table topped with a laptop computer next to a plate of food.\nA multi colored dish with broccoli and white twisted pasta in it.\nWoman in wet suit considers waves near forested coastline.\nA black dog catching a frisbee in grassy area.\nA busy street covered in various traffic signs and advertisements.\na long passenger bus turning the corner by a building \nAn empty refrigerator with freezer with both doors open.\nAn adult and a child cross the city street at night.\nA table topped with lots of vegetables of different color and kind.\nPeople holding surfboards while standing in the ocean.\na couple of people that are standing up by a surfboard\nNumerous boats in a street lined body of water.\nAn umbrella is placed inside an old microwave. \nA group of people dressed in an elephant costume.\na bathroom with a both a toilet and bidet\na white cat covering itself with an umbrella\nA man in glasses wearing a tie with aliens\nThere is a lovely bathroom with a full-size sunken Jacuzzi.\na man in a purple shirt and a tie\nA street sign is filled with various stickers.  \nA woman twirling a floral print parasol umbrella.\nA person kiteboarding over waves in the ocean.\nA PERSON PERFORMING A SKATING STUNT WITH MULTIPLE FRAMES COMBINED.\nA chocolate donut and  a cup of coffee.\nA yellow commuter train parked at a train station.\nCars driving on a road near a traffic light.\nTwo opponents are playing during a soccor game.\nA man riding skis down a snow covered slope.\nA bowl filled with granola and banana slices.\nA white bus driving down a street next to power line.\nA man holds a black plate with a square skull in front of his face.\nA bicycle with a covered cart in the front\nA man on skies with a parachute attempting to ski with it.\nA small black and brown dog standing next to a cow.\nA hot tub sitting under a window in a room.\nA large white bed with a wooden headboard.\nA person uses their hands to operate a cell phone\nA newly married couple standing in front of a cake.\nA white pony with black speckles grazing in a field.\nA pizza cutter shaped like a spaceship ready to cut a pizza. \nA zebra in front of a group of large rocks standing next to a tree.\nA man sitting on the park bench in the forest \nA large clock mounted to the side of a building.\nA small bathroom with a shower curtain and toilet\na roman numeral clock with extra hands showing \nA man walking across a baseball field with a small child behind him.\nA pole with signs on it in the street out side.\nA man flying into the air over a bed.\nA very nice looking deck area with a small table and a laptop.\nA man is approaching a seagull on the beach.\na couple of bowls of food sit on a table \nA tray of biscuit, egg, bacon, hashbrown,milk, orange, apple, and ketchup\na white wall with some writing saying what park it is \nA batter at a game playing in a baseball game.\nSomeone props their feet up on a foot rest in a messy living room. \nA man is enjoying a day snow skiing. \nA man sitting on a couch in a hotel room that also has a bed and desk.\nA smiling woman looks to be playing a Wii.\nA man waits in bed while watching television and holding something.\nA large silver double decker bus driving down a street.\nA young girl inhales with the intent of blowing out a candle. \nFour boxes of pizza are opened on the table\nA baseball player who is running to home plate.\nA purple truck parked in parking lot next to an apartment.\nA brown cow lays down in the grass\nA man is sitting outside on top of a mountain of luggage. \nTwo people resting beneath a tree near several green street signs.\nA sign pointing to different streets in London.\nA bathroom with a walk in shower currently under repair.\nTwo zebras in an open field with grass.\nA grey and black cat next to keyboard and monitor.\nSome cows that are wandering around a lot of pigeons.\nA dog in a a cage with a bed and bowl\nA Spirit airplane takes off in to the air.\nFive oranges with a red apple and a green apple.\nA lone horse walks through a desert plain.\nA train traveling through rural countryside under power lines.\nA group of baseball players cluster together while wearing blue and white uniforms.\nThe young boy is playing in the living room of his house. \nA group of people standing in a room.\nA man holding a tennis racquet on a tennis court.\nTwo zebras running on a path next to trees.\na plate of rice and broccoli with meat\nA large airplane flying over a lush green hillside.\nA man riding a skateboard into the air.\nA man holding a racquet on top of a tennis court.\na wireless  computer mouse on a wooden table \na couple of computers that are on a counter\nA computer desk topped with three monitors and keyboard.\nA young boy sitting on the ground next to another boy.\nA dog sits in the basket of a bicycle leaning against bleachers.\nA herd of black and white cows eating dry grass.\nA beautiful woman standing in front of  two baseball players.\nThis shot is of a crowded highway full of traffic\nA large jetliner flying over a small farm near a forest.\nThe man is holding a teddy bear over the ledge of a bridge.\nan airport with one plane flying away and the other sitting on the runway\nA large white polar bear holding onto an object while floating in blue water.\nA train going down the track near a city\nA red table holding a black laptop with red rope on it.\nA little boy sits in front of several tortilla pizzas.\na kitchen with a nasty dirty kitchen with a light beam through the window\nA orange and white cat sleeping on top of a blanket on a bed.\nA man on a cell phone eating food at a coffee table\nSeveral children attentively play a game of curling together.\nA bathroom with a sink and a toilet. \nPuppy chewing on toilet paper in the bathroom. \nA cat sitting on top of an antique record player.\nA couple of men racing up the side of a snow covered slope.\nA woman standing under an umbrella looking up.\nPeople enjoying a nice day in the park.\nTwo bears standing on a grassy hill facing each other. \nA street going through a city with tall buildings.\nA man skis over a plastic contraption on a ski slope. \nThree elephants standing in the grass near water.\na man standing on a surfboard near the shore\na couple is sitting on a statue of a horse and some plants\nA sandwich sitting on top  of paper filled with food.\nSomeone is holding the door open to a large industrial freezer.\nMan smiling looking at the camera while he talks on his cell phone.\nA man standing on train tracks as a train approaches.\nThere is a very large white plane at the airport\na teddy bear shaped cake resting on a cutting board\nA picture of some food on a plate\na business truck with graffiti written on it\nA man holding out two hands as if pulling on something\nthere is a man sitting at a table using a lap top\nA passanger train moves on the rails of the city.\nA bed sitting in a bedroom next to a window under pictures.\nA giraffe eating the bark off of a tree.\nThe young men in suits are posing on a staircase.\nA WHITE AND BLACK COCKER SPANIEL UNDER A COMPUTER TABLE\nthere is a woman about to ski down a hill\nTwo women are cooking sweets in the kitchen.\nA walk in a shower sitting next to a sink under a mirror.\nA medium sized dog is lying inside an open suitcase.\nA man is playing frisbee by herself on the beach.\nA pair of parking meters with a coffee cup between them\nA bird standing alone in the water looking\nA person is looking in the mirror of a motor bike\nA white toilet sitting next to a bathroom sink.\nA man riding a bike down a dark city street.\nWoman in black jacket staring at flag and building with columns.\nThere are clothes all over a desk and a bed.\na green double Decker bus stopped on the street\nA big full view of several people gathering. \nA group of people skiing down a snow covered slope.\nA photo of a bus driving down the road.\nA PERSON LAYING ON A BED WITH THIGH HIGHS AND HEELS\nGuy sitting down stuffing his face with food\nA large metal clock hanging with chains from a roof.\nA beautiful blond woman laying in bed with a laptop.\nA man paints scenes at a fair stand.\nGiraffes standing next to zebras on a lush green field.\nA man is surfing down a waterway in front of a stone bridge as a crowd watches from above.\nAn image of a hotel bathroom that is ugly.\nA large building with Christmas wreaths hanging from wall-to-wall.\nSome people stand together near a lake. \nA Ma and Pa statue outside some high rise office buildings \nA boy at a skate park practicing on his skateboard. \nThree young men prepare to race bicycles back in the early nineteenth century as a crowd of mean watch.\nHorses stand and drink from pond water near the road.\nA table with a piece of construction paper, scissors and sewing thread.\na man standing next to sheep on a lush green park.\nAn elephant standing next to a tree outside.\nA man on a surfboard that is in the water.\nTwo parking meters on a city street. \na bath room with a toilet a bath tub and a sink\ntwo animals grazing in an open field next to some trees\nThe basketball players are playing in a game\nA hand holding a piece of food at a table.\nA group of elephant statues standing on top of blue bases.\nFirefighters are riding in the back of a fire truck.\nA harbor filled with boats surrounded by buildings.\nA boy in a tie is bending down over a bowl.\nTwo brown horses grazing on green grass next to a lighthouse.\nA living area with a television, CD rack and various posters.\na man standing on a red boat out on a large body of water.\nTwo giraffe walking next to each other in a forest.\nA baseball player holding a bat standing next to home plate.\nTwo surfers on their boards on a calm day.\nBlack and white cat sleeping on blankets with collars.\nA man wearing a baseball hat talks on his cellphone.\nA  vase of flowers displayed at the front windows of a store.\nthis is a bathroom that has a sink and toilet\nA brick building with an open window next to a few colorful bushes.\na red and white fire hydrant is sitting by a curb\nTwo trains beside each other on two tracks that run beside each other.\nA young soldier has his picture taken with a young lady with an open jacket and brazier showing.\nA man with a grey shirt and black jacket takes a picture of his bathroom while standing in the mirror.\nA park bench sitting in the middle of a forest.\nA small kitchen has a stove and a blender.\nModern commuter train on a well maintained track \nA polar bear sticks its head in another polar bear's butt.\nA guy in funny hat holding a very big bird.\nSeveral plates of food are set on a table.\nGroups of people moving down road on skis\nThe man sleeps with his laptop on his stomach.\na bunch of boys that are kicking some balls\nA taxi cab parked next to a fire hydrant.\nA plane that is flying in the sky over two houses.\nit is snowing outside and many people are holding umbrellas\nA woman standing on top of a tennis court.\na female in a green top and a laptop\nTwo girls are posing outdoors under an umbrella for a photo. \nThe bus stop is lined up with buses and people walking on the sidewalk. \nA jet in the air flying in a dark sky.\nsix different shots of horses and people standing on the street\nStreet sign on the corner of Maciel Ln and Wonder Stump Rd.\nA young man is taking a picture of a large pizza.\nA person holding a cell phone in their hand with three other phones around. \na man that is walking through some water\nA metal pole with two blue street signs mounted two the top of it.\nA group of zebra's eating hay from a trough.\nThe person is walking in the alley alone \nA man holding a red snowboard while standing in snow.\nthree giraffe stretching there necks to reach high leaves\na bunch of animals that are runing in a field\nA man doing a trick on a wall with a skateboard.\nA baseball player in uniform holding a baseball bat.\nMany sheep are inside a wire fence near a large hill.\nA man driving a luggage cart sitting on top of a runway.\nA kitchen has gold counters and a microwave.\na couple of people are flying kites in the snow\nMany families are sitting down with their dogs. \nMan with food items walking on sidewalk while listening to audio.\nA boy wearing a cap and green t-shirt holds a baseball mitt.\nA man in a kilt stands before a white board.\nA surferboarder is surfing on a small wave.\nA surfer is riding a wave in light blue water.\nTwo men sitting at a table with smiles on their faces.\na man and some people riding on a raft \na hotdog on a bun with a pickle and brown mustard\nA big rock walkway is on a hill beside the ocean.\nTwo horses are walking in the snow to their carrier.\nA clock sits in the window on the side of a white house.\na single zebra standing by some rocks while eating some grass \nA man riding a surfboard while flying a kite.\nA couple of men walking along a river.\nA frisbee sitting in a sports bag sitting on the ground.\nA close up of black and white zebra stripes.\nA man with a white shirt with a blue tie. \nA bathroom vanity sink with person products around it.\nA gray and black bird sitting next to the ocean.\nA young man ready to hit a home run.\nA couple of horses standing on top of a grass covered field.\nTwin baby girls wearing hats eat ice cream.\nA smiling man is on a white laptop computer.\nA man stands on a snowy hill with skis.\nA cat that is standing looking through a glass.\nA woman flying through the air while riding a snowboard.\nA group of people enjoying a day at the beach.\nA tennis player in a red shirt is serving the ball.\nA laptop computer sitting on top of a white desk.\nA scared boy holding a baseball glove out towards a baseball.\nThe person is riding a bike on the road\nA living room with red leather furniture in it\nA young child standing next to a large box.\ntwo people riding skate boards on a city street\nA kitchen area with counter, sink , stove and windows.\nA bunch of vegetables that are on a table.\nComical picture messages are on the restroom wall.\nThere are cups and plates on the dish drainer.\nSeveral green and red apples lying on ground.\nTwo computers sitting on top of a desk.\nA group of men playing soccer in a park.\nA cell phone sitting on top of a wooden table.\nA woman with a computer is eating a doughnut.\nA meal on a plate is sitting on a table.\nA train with it's doors open sitting next to a platform.\nA PINK TOILET AND A PINK BATH TUB IN THE BATHROOM\nTwo people walking towards a beach holding surfboards.\nThe little boy on the skateboard is wearing a helmet. \nA person that is riding a skateboard on the street.\nA group of people sitting around a wooden table.\nA black and white cat is sitting in the sink.\nYoung teenage boy on his skateboard on the street with people on the curb.\nA young zebra is sniffing the ground in a dusty area.\nA woman holding a plate of cake covered in frosting.\nAn orange cat looks at a green light shining on a bag.\nA couple of sheep standing in the tall grass.\nA young boy carrying two skateboards across the street\nA man has a crow sitting on his hand.\nA flock of ducks floating on top of a lake.\nPeople riding an elephant through crops next to an odd shaped mountain.\nTwo people playing frisbee on the grassy field.\nA batch of bread slices sitting on a plate.\nAn older woman walking behind a bus on a city street.\na couple of birds swimming in a lake \na large field full of sheep out in the outdoors\nA man standing in front of a refrigerator freezer.\nA banana tree in a forest of trees.\nA scary man wears a hat made out of bananas.\nThis is a clock, which seems to represent artwork.\nA kitchen with a refrigerator freezer next to a sink.\nA grey and black bathroom with an odd shape vanity.\nA silver piece of luggage sitting next to a wall.\nA person in the street carrying a cart and an umbrella.\nA boy in black jacket jumping a ramp on a skateboard.\nA woman standing at a table preparing food.\nFour identical motorcyclists viewed from the back as they look over their shoulders.\na keyboard and a screen on use by a hand\nA pelican on the shore near a body of water.\nA brown tray topped with a plate of food next to potatoes and a drink.\nA group of giraffes next to a fence.\na black plane is sitting on a runway\nA man behind the counter showing a tie made of wood.\nThis photo depicts someone cross country skiing in the mountains.\nTWO PEOPLE IN A VERY SMALL APARTMENT SIZE KITCHEN\nThree zebra and four giraffe inside a fenced area.\na street sign attached to a metal pole next to a street.\nA female toddler in a flowered dress feeding herself some pastry\nA pile of bananas sitting on top of a white table.\nTraffic signals and sign on pole at roadway intersection.\nA person on a court with a tennis racket.\nA close up shot of horse, with it's baby in the back.\nA cruise ship is sailing close to the shore as two adults and a child walk through the sand.\nA skier posing on a steep snowy hill.\na man in the kitchen trying to draw water with a  pipe\nA parking meeter next to a wall that reads \"tie.\"\nThin-striped zebras huddle near the wall of their zoo enclosure\nA group of jets sitting on top of an airport tarmac.\nVARIOUS ANTIQUE CHAIN CLOCKS KEPT ALTOGETHER ON A TABLE.\nA black and white photograph of a female tennis club.\nA man with a tie that has nuts and bolts on it.\nA set of women's personal care items sitting on a bed.\nA wooden table topped with white plates filled with food.\nA yellow and blue train stopped at a train station.\nA man riding a skateboard down a ramp.\nA horse drawn carriage traveling down a cobble stone street.\nA large propeller airplane flying through a blue sky.\nA picture of two men in the service on a table below a clock. \nA large sandwich filled with meat on a plate.\na person and a dog are standing near some cliffs\nthere is a male tennis player about to hit the ball\nA face car driving past a parked motorcycle.\na dougnut sitting on a plate next to a glass of orange juice\nA giraffe that is standing in the grass.\nA woman that is standing in front of a tray of food.\nThere is a stack of plates sitting next to a platter of vegetables.\nA decorative container with mini roses is sitting on a pedestal. \nThe clock on the building is in the shape of a coffee cup.\nA group of people stand together and smile.\nA beautiful woman standing in a field on green grass.\nA train that is on a track next to the trees.\nA couple of zebra standing on top of a grass covered field.\nA man smiles maniacly while putting a dog into an oven.\nA sign hanging off the side of a wooden pole.\nThe woman is playing Frisbee outside in the field. \nTwo children who are on wake boards in the ocean.\nA couple of people who are standing in the street.\nA young man wears a fake mustache in a kitchen decorated for the New Orleans Saints.\nTwo piles of trunks sitting next to each other.\nA umbrella sitting over lawn chairs on a beach.\nA skateboarder flips his skateboard as he flies through the air.\nA large group of motorcycles that are parked in a lot.\nA woman trying to fly a kite in a lush green field.\nPanda bear chewing on bamboo in a forest.\nA book and a watch in the background and glasses in front of them.\nA person in a park holding a kite.\nA man with a football being chased by another man.\nA view of a bedroom with the bed unmade.\nA zebra staning in grass and looking at the camera\nAn old looking white fridge in a big rock wall.\na messy bathroom with a toilet and toilet paper\nA woman is sitting on a bench in front of the water.\nA man hitting a tennis ball with a racquet.\nA man walking while holding an umbrella on a wet sidewalk.\nGirl wearing Girl Scouts uniform holding an object in her hand near a fence.\nA brick clock tower with an ornate clock.\nThe woman playing on the clay court has hit a tennis ball. \nA pair of rams graze through the snow on the side of a hill.\na little kid is brushing his teeth and smiling\nA makeshift tent is constructed at a camp site.\nA clean, orderly living room with high ceilings and with many windows.\nTHERE IS A TOILET THAT IS DECORATED \nA woman is walking with an unusual umbrella.\nA yellow and green object with a brown bird perched on top of it.\nA green and white bus traveling down a road.\nTwo open laptops on a desk pointing in different directions.  \nKids are skateboarding at a skate park and one them has fallen down.\na black red and green train engine on a track\nA dirty kitchen floor with soot on the tiles.\nsome boats docked in the water and a person in a yellow raft\nA football game is going on in a park.\nA man and a dog are in a yellow kayak.\nA red classic body truck with hood opened with engine showing.\na lady wearing ski equipment in the snow\nA pizza sitting inside of a card board box.\nA spotted dog is chasing another dog outside\nA person is standing in front of a dog.\na dog with spots on a bed and a stuffed animal\nA group of giraffe Standing up against a dirt wall in front of a crowd of children.\nA mother elephant bumping her trunk against her baby's forehead.\nA dog driving an SUV in an open grass covered field.\nTwo tall giraffe standing next to each other on a  field.\na little teddy bear sitting by a pillow \nTwo men in room playing a game with Nintendo Wii controllers.\nA couple of people in the water with a kite.\nA highway sign sitting on the side of a highway.\nA painting of a zebra on a concrete wall.\nA small giraffe laying in the sand by a fence\na group of people siting a a table with plates of food \nA woman holding her umbrella in her hands\nA woman in black shirt and skirt playing a game of tennis.\nA group of flowers growing out of a white clothing button.\na man in a room watching television and a wooden table\nA baseball team playing a baseball game in front of a crowd.\nMan playing with a lighter, over his cellphone, in a local bar.\nA man flying a kite above in a blue sky.\nA young boy getting ready to blow out candles for his birthday.\nPizza with mushrooms, pepperoni, and tomatoes in box\nA toilet that has its seat open with water in it.\nTwo people stand with Wii remotes in their hands.\nA commuter Amtrak train on the tracks \nTwo people sit together in a restaurant at a wooden table.\nA glass and vase sit on a table overlooking the ocean.\nA large train is coming down the track between a beautiful mountain.\nA woman leaning on a building talking on her cell phone \nA sandwich on a bun with a pickle on the side.\nA couple of monitors, a laptop, keyboard, mouse and a printer.\nA person riding a surfboard in the ocean.\na vase with some drooping flowers in it \nSeveral zebras from behind standing on grass plain with distant trees.\nThe father and daughter are under an umbrella on the beach.\nA Nintendo Wii controller sitting on a white table.\n A set of three vases filled with water and flowers.\nA surfer surfing on the surfboard with an oar in the ocean. \nA brown bear sitting on a bunch of fallen logs\nAn old yellow train is waiting at the station.\nA woman standing in front of window next to a bug and a stop sign.\nan assortment of some colorful vases on display on a table \nA woman holding up a wine glass in a dining room.\nA large green banana plant sitting next to a wooden fence.\nTwo framed photos of two toddlers next to a lemon and a plant\nA young male skateboarder practicing a ramp stunt.\nA batter for the Boston Red Sox walking on the field.\na number of people in a kitchen preparing food \nA person wearing a snowboard jumping in the air over snow.\nThe stop sign has writing on the front side of it. \na man holding a blue snow board in his hand on the snowy mountain \nA stop sign out in the middle of nowhere with large, rolling hills.\nA large black cat laying on top of a pink piece of luggage.\nA hot dog restaurant with neon lights in front of it.\na person holding a camera up to the window\nA woman holding a pink umbrella over her left shoulder.\nA truck full of oranges riding on a street.\nA cat walking on a bed with several books on it. \nTwo croissants are on a plate with orange juice and coffee.\nA brass clock mounted onto a building near a patch of trees.\nHe follows the track used for cross country skiers.\nA young boy holding a snow board and a pair of shoes.\na cat sleeping on the floor with a little toy\nGroup pf people learning how to surf on the beach.\nA road sign on top of a stop sign \nA white plate topped with pasta and chicken with broccoli\nA city block with people, cars, buses and a street vendor. \nA half eaten plate of pizza is still ready to be finished. \nA group of young men catching a frisbee.\nThe adult elephant is in the field next to the baby elephant.\nA cat sitting underneath a blue and white umbrella.\nA group of women on various color surfboards in water.\nA city street with a storm drain, fire hydrant, and manhole cover.\nAn old fire hydrant in the middle of the woods.\nThe large bird is walking in the water.\nA bed topped with three white pillows covered in a canopy.\nA man standing on top of a baseball field.\na street sign on a sidewalk next to a stone wall\nA young cat sitting on a wooden and metal chair on top of leaves.\nCouple of sheep relaxing in a fielder brown\na bathroom with a toilet and a stand up shower\nTwo teddy bears lie propped up against a wall.\nA plate with cabbage and carrots with a shadow of a V on it.\nA desk area with a computer monitor, keyboard and mouse.\nA woman eating a plate of food at a table.\nA happy couple playing Wii in a bed room\nTwo surfboards on a beach in an urban setting.\nA land with a lot of different animals.\nA plate topped with banana slice covered pan cakes.\nA coupe of road signs near a downtown area or highway. \nA man is standing in a train in a train station.\nA bunch of cellphones that are on a table.\nA lady is holding a pretzel with a cheese backing.\nA woman holding a smart phone at a table.\nA tall zebra standing in a lush green field.\nA elephant that is standing in the grass.\nA white plate topped with meat veggies and rice with sauce.\nA man looking at himself through the mirror. \nA kitchen with a screen glass door next to the counter.\n A whimsical artistic toaster has eyes, a mouth, a nose, spoon feet, spoon ears, and a mixing beater tail.\nA blue bathroom has an updated sink and toilet.\nA baby girl is holding a pink brush as she scratches her head. \nSeveral rows of donuts sitting on a table.\nA train carrying army trucks with men standing on it.\nThe two dogs are laying on the bed.\nan image of a parking meter with colorful designs\nA store filled with merchandise with workers and customers standing inside of it.\nA large brown teddy bear sitting in a wooden chair.\nKite surfing is a sport for many ocean goers.\nA man standing next to a very old domed hallway.\nA pizza with toppings sitting on a tray.\nclose up of a plant with large, gray leaves\nAn old man holding a plaque next to a motorcycle.\nA cat is sitting on a basket under a bench.\nThe cat is resting on the chair on the porch of the house. \nA group of people standing around a couple of elephants.\nA three wheeled motorcycle parked with some other old vehicles.\nA man brushing his teeth and taking a self portrait in a mirror.\nA white cat sitting in the drivers seat of a car.\nA street scene with a double decker bus.\nA woman sitting on a wooden bench on a wall.\nA woman standing in a room holding a Nintendo Wii game controller.\nA man riding a motorcycle with a brown long horn bull behind him.\nA lot of people that are looking at a pool.\nA group of people riding snow boards on top of a slope.\nTwo shake boarders playing on the street with one individual sitting under a tree.\nA red stop sign sitting above a four way sign.\nA cat laying in an open suitcase that is on a bed. \nA male skater jumps in the air at a skate park.\nA close-up picture of a man wearing a tie.\nA Qatar airlines plane on an airport runway. \nTwo birds sitting on a branch in the woods.\nA pair of men fly a kite in a grassy field.\nA group of people gather in an open area and fly kites. \nA bird perched on top of a tree branch.\nA baseball game is happening as people look on. \nA man standing on top of a tennis court.\nA birthday cake features a syringe, band-aids and pills.\nA group of giraffe walking across a dirt field.\nA truck that is sitting in the road.\na large air plane flying in the air\nA group of young people holding hands standing in front of a tall building.\nA boy holds two small dogs each in a large sneaker.\nNot really a good choice for this shirt and tie combination.\nA computer keyboard sitting on top of a table.\nA group of people sitting and standing around a pot of food.\nGroup of people riding on the back of large elephant. \nA room with urinals lined up on both sides.\nA white toilet sitting in a bathroom next to a tp dispenser.\nA group of elephants by some buildings on the water.\na small air plane on a run way\nThree giraffes are sitting on the ground. \nA group of horse back riders on a wooded trail.\nA large jet flying through a cloudy blue sky.\nA restaurant with patrons in the outdoor eating area.\nA man with glowing shine has a violin.\nThe restaurant presents a gourmet breakfast of eggs and toast.\nA white and blue train with various graffiti on it.\na sandwich that is sitting in a bowl\nA bathroom sink with wood finish cabinets. \nIn the evening, a store front sign sits on the sidewalk near a blue car parked at the curb. \nSeveral adults engaged in arts and crafts with children.\nTwo yellow pieces of luggage sitting on a sidewalk.\nA boy stares at a pizza with a birthday candle in it.\nA group of boats floating on top of a lake.\nA bathroom with three white wall mounted urinals.\na close up of a scooter parked indoors\nLamb chops over a bed of carrots and potatoes\nA long sheet of pizza sitting on top of a table.\nA zodiac for the coast gaurs about to launch into water\nA park bench submerged in water in a flood.\nA small boy is swinging a baseball bat a tee.  \nA couple of people walking across a beach with a surfboard.\nA clock displays a time for the public to see.\nA dark red train traveling down train tracks past a train station.\nTwo people are in the snow on snow skis.\nA blue car making a right turn at an intersection.\nBox of donuts glazed in different types of toppings. \nA small girl smiling and sitting behind a large round pepperoni pizza in a  restaurant.\nA man wearing glasses with a bird over his right shoulder.\nA man with gray hair and a hat carries a black kite.\nA clock tower with multiple sides in a snowy area.\nA cat laying on top of a blanket near a wall.\na dog with a plate of food on the ground\nA woman standing on a  tennis court holding a racquet.\nA couple of trains traveling down train tracks.\nA group of animals that is standing in the grass.\nsome oranges are stacked up in a bowl\nA dog in a small bathroom with an orange shower curtain.\nA tennis play is being watched by a small crowd.\nA  pair of people sitting on a motorcycle, in the grass.\nan empty street and signals that are red\nA boat that is out on top of the grass.\nA pair of men dressed in civil war outfits riding horses.\nA subway terminal with passengers and luggage traveling.\nA woman standing in front of a TV in a living room.\nA living room filled with furniture and a window.\na person is on some skis going down a hill\nAn air mattress, plastic chair and bike decorate this room.\nA giraffe stands with several birds resting on it's neck. \nA group of people standing in the sand with a kite.\nA man riding a skateboard up the side of a ramp.\nA long train travels past some trees along the railroad tracks\nthese two men in suits are shaking hands\nA man goes through the water on a parasail.  \nA father reads a story to a child while lying in bed.\nTwo twin beds pushed together with white blankets and pillows on top of them.\nA herd of sheep standing below very tall buildings.\nA plate of spaghetti with red sauce and broccoli. \na couple of chairs and beds in a room\nA green train traveling down train tracks with steam pouring out of it.\nA white sail boat sailing towards a desert island.\nBananas are on sale for 47 cents per pound in the produce section.\nA bike parked in front of a window on the side of a building.\nThe baseball player is participating in an intense game,\nA pizza sitting on top of a plate covered in cheese and tomatoes.\nA group of men kicking around a soccer ball.\na black and white photo of children siting posing for a photo\nBlueberry stuffed beanie teddy bear sitting on a table.\nAn apple computer with a keyboard and mouse underneath it.\nA glass vase filled with lots of flowers.\nA woman and man dance while smiling. \nA photo of the tail of a jet engine airplane on the tarmac.\nTwo horses stand in the desert while small desert hills stand in the background.\nThree buses pulled in front of a bus station loading passengers.\nA man holding a snowboard next to two ski poles.\nA group of people are all holding up there phones\nGuy jumps off the steps doing a flip trick with his skateboard\nA little boy that is sitting in front of a laptop.\nA man and a boy standing next to a tall giraffe.\nBaby sits inside an empty suitcase on top of a bed.\nA street sign with the name of a street on it, and next to it is a post with various names up and down the post.\nA very cute small fire hydrant by a small road.\nA child tries to feed an adult a piece of food\na close up of a stuffed animal near a book\nA keyboard, mouse, and wires on a desk.\nA brown bear sitting on top of a seat next to luggage.\nA computer monitor sitting on top of a wooden table.\nA kitchen that has carpeted floors and wooden cabinets.\nA blue road sign with arrows and the words Atlas Rd Pretoria.\nAn old car in a parking lot with a surfboard strapped to the top\nA group of people sitting next to each other in front of a TV.\nA cat that is sitting on the hood of a car.\nA full plate full of delicious food sets on top of the table. \nA trio of zebra's leaned over eating hay on the ground.\nA man riding a paddle board along a river.\nThe snow is very crowded with snow skiers.\nA man peers over a small plate behind a napkin lined with pieces of fruit.\nA leaned over stop sign in a snowy parking lot.\nMan and woman sitting on a wooden park bench together. \nTwo children look at a large black bear in a zoo.\nThe laptop is sitting close to the air conditioner.\nA dog is in a living room sitting on the back of a couch.\nA brown dog sits in the snow near a red table and black chairs.\nThree zebras standing in front of a wall.\nA bathroom sink surrounded by a stone counter top.\nA red traffic light with a sad face drawn over it.\nA couple of men sitting at a table having dinner together.\nA man riding a bike down a street.\nA person swinging at bat at a ball on a baseball field.\nmany people walking into an opened air plane\nTwo men wearing suits and hats are walking together.\nthis is a bathroom and a tub with tile\nA man and a woman eat doughnuts from a box.\nCows with horns are sitting down in the open field\na wooden and metal bench near a over grown bush\nA laptop computer sitting on top of a desk.\nThe bathroom toilet with the cover up, sink, and bathroom items are shown.\nWoman throwing a rope towards horse at rodeo\nA kitchen that has a sink and cabinets in it.\nA woman standing in front of a fruit stand.\nthere is a stop sign at the end of this cross walk\nA large white public bus parked on the street.\nA group of people that are standing on a tennis court.\na snowboard instructor teaching students how to snowboard \nA white toilet and towel in a room.\nA plate full of food is ready to be eaten.\nA stack of books and binders in front of a bed.\nTwo halves of an orange sit on wood.\nA turkey that is cooking in a large roaster oven on the counter. \nTwo little kids standing next to each other in snow.\nthere is a close up picture of a train going down the tracks\nA smiling old lady holds a pizza on a plate.\nA table full of many different types of food.\nAn airplane is flying against a partly cloudy sky.\nA man jumped into the air at an angle. \nA man cooking some square food in an oven.\nA motorcycle parked on a lush green field.\nA slice of pizza sits on top of a plate.\nA lot of wooden shelves filled with lots of clutter.\nA group of people cutting cake at a table.\nInside a restroom stall, a rag floats in the toilet water.\nA purple flower is in a watering can on the window sill.\nColorful parrot sitting on top of a peace award in a restaurant. \nA man yelling to the driver of a truck\nA train's door is open for its oncoming passengers.\nan empty city street with trees and mountains in the background\nA vase sitting on top of  a table filled with flowers.\nAn old monumental building with a clock and a statue on its wall.\nA doll sitting at a small desk making a New Years sign.\nA man and his dog riding a boat in the middle of a lake.\nDinner plate with pork chop, pasta and vegetables on it.\nA pair of sneakers hang in the background at this street corner.\na couple of people that are in a kitchen\nThree people on the beach standing with surfboards.\nTraffic jam at a busy hotel parking lot.\nA statue of an elephant hanging off the side of a building.\na red, blue and tour bus with people standing outside of them\nA blue boat docked on a green lush shore.\na dog running with a Frisbee in its mouth\nA man riding a wave on top of a surfboard.\nA restaurant full of people sitting on benches\nA woman in a short pink skirt holding a tennis racquet.\na table that has some food on top of it\nMade up clock reading too late on a window showing snow.\nGiraffe standing in the shade of a tall covering \nA metal pole with a bunch of street signs hanging from the side of it.\nA baseball player standing in a field with red shoes.\nThree adult zebras walk calmly along close together.\nA horse has a cover over its mouth\nPhoto taking in a building looking at a staircase.\nThis studio apartment has a twin size bed by the wall.\nA couple cutting their red and white wedding cake\na park bench that has a teddy bear on it\na lady that is standing by some flowers\nA green and yellow train traveling past a platform.\na man cts into a small cake with his sharp knife\nFive kids playing with frisbees on a sunny day.\nSeveral birds stand and lay near the water.\na blue bus is coming down a road\nPeople are standing and talking on a city street.\nA man with an evil smirk on his face wearing a vest.\nThree sheep are standing on a rock of a hill. \nA road is covered with snow with some tire tracks.\nA package of tooth brush shaped gum on a table.\nA cat laying on the arm of a chair in a living room.\nThe laptop is on a desk near an office chair.\nAdult woman with yellow surfboard standing in water.\nThe bathroom has a sink, toilet, and glass shower.\nA train has been tagged with colorful graffiti.\nA man sitting in a chair holding a baby who is chewing on a remote.\nA group of men and women standing around a TV.\nA crowd watching baseball players at a game.\nA yellow school bus filled entirely with dogs.\nA table topped with white plates covered in food.\nA woman and a dog tussle over a frisbee.\nA zebra and its foal eating hay from a basket.\na white handbag a camera a cigarette case and a flask\nAn animal standing on concrete in an enclosed area.\nA train parked in front of a train station.\nA small pizza on a plate with a fork beside it on a table.\nSeveral brown horses are standing in a field.\na plate of waffles with bananas and condiments\na person using a remote control next to a cup\na group of elephants near a body of water \nA couple of women sitting next to each other.\nA group of people sitting at tables next to each other.\nA wake boarder getting major air on a very sunny day.\nSeveral people on skateboards riding between cones on the pavement.\nSmall motorcycle with several bicycles tied to the back of it. \nA man standing in the ocean filled with waves.\nA cozy bed stands between two windows within an upstairs bedroom.\na small dog is tied up to a bike outside\nA man sitting at a table with plates of food.\nA lone woman stands at an empty train station.\nA large airplane sits on a wet airstrip on the other side of barred windows.\nA group of men riding boards on top of waves.\nWoman adjusting man's tie in occupied room with others.\nA work desk with a silver laptop propped up on top of the desk.\nA woman preparing to hit a tennis ball while a man watches.\na person is holding up a small child\nA man cutting a kids hair with scissors.\nA woman with beautiful breast sitting next to another woman and pizzas.\nA man in black hoodie playing with a dog.\nA couple of little girls sitting in front of laptop computers.\na view into a kitchen with  counter tops and wooden floors\nThere are horses pulling a man and a cart.\nTwo girls in a room playing a Nintendo Wii.\nA cat sleeping next to a large white teddy bear wearing birthday hat.\nA man standing on top of a field wearing a baseball uniform.\nA large jumbo jet with huge wings is on the runway.\nA pizza on a metal pan with people sitting around a table.\na bird on top of a cross on top of a building \nA meal at a restaurant of a salad, a toasted sandwich and a pickle\nTwo cowboys on horses chasing a steer in an arena\nA family riding on a horse and buggy ride near the White House.\nTwo dogs and a cat sleeping on their human's bed\nA motorcycle sits in a graveled area with a steep hill in the background.\nA kitchen with a refrigerator, stove, and microwave. \nsome black and white sheep a fence dirt and grass\nA small living room is prepared for painting\na road filled with cars, horses, and people \nPeople watch while two people are on a small ramp covered with snow with snow skis on.\nTwo young girls sit and face each other on a bed.\nHe was standing in the kitchen by the stove talking on the telephone.\ntwo trains go side by side down a street\na big train passes next to a side walk \nA chubby toddler is chewing on a toothbrush.\na young boy playing with an elephant while a baby elephant watches\nan over head view of cars parked below\nA man is surfboarding right up to the steep shoreline.  \nA clean bed in a hotel room with towels and soap laid out\na chair with a pillow a mirror on the wall and a set of curtains\nYoung girl holding a cupcake up to the camera.\nA stuffed Christmas bear is laying on the floor next to its arm that has fallen off. \nA large screen monitor on a desk hooked up to a laptop.\nA man doing a jump on a skateboard\nTwo guys standing and leaning playing a video game.\nA man riding a surfboard on a wave in the ocean.\nA group of people are standing in the snow on skis.\nA toilet that has its seat open in a bathroom.\nStuffed animals sit on top of the Christmas garland.\nA man is walking down the street next to a pole with a clock.\na close up of a cat laying on a napkin\nlemons and limes in baskets in the produce section\nA cat sitting on top of a pile of white towels.\nA young man taking a swing at a baseball\nA large airplane museum with old war planes.\na small boat in a body of water\nA laptop on a porch next to steps\nA kids birthday cake siting on a table.\nA man holding a motorcycle helmet is moving a chair in a public place.\nTwo buses driving by people in a city.\nTwo black bears captured together in night vision.\nA cake sitting on top of a table with a cake clock on top of it.\nA guy playing tennis about to hit the ball. \na family sitting down at a meal and saying a prayer\nA view from the street of two traffic lights and a building. \na fire hydrant with a hose inside of it \n a guy doing a skateboard trick along a concrete railing\nA mini fridge with an open door and a white interior.\na person riding a bike on a grass field with rocks\nA woman holding a purple umbrella near flowers.\nA white plate topped with food sitting next to a bowl of salad.\nA plastic container with mustard on one side and a chili cheese dog on the other half\nA man who fell asleep with phone on face\nA green mailbox with graffiti on the side\nSkiers waiting for their turn to make a run on a slope.\nA man in a wheelchair and another sitting on a bench that is overlooking the water.\nWoman with big hair about to receive a hand stamp\nMini pizzas on a tray before going into the oven. \nA park covered in leaves filled with lots of trees.\nA picture of a room with a TV and a bathroom.\nA bowl sitting on top of a table mat filled with food. \nSet of several sail boats gliding down a river.\nA city street at night with a green signal.\nA picture of three computer screens with two on.\n a bright yellow restaurant sign with a green dragon on it \nA couple of kids that are on a baseball field.\nHospital display of different bed setups and a nurses uniform. \nA woman sits at a table for a meal.\nA woman works the counter at a bakery.\nA young man sitting on top of a metal and wood bench.\nA man that has a happy new  year hat on.\nA man dressed in a black vest suit is modeling in front of a building. \na pizza smothered in cheese and meat with french fries.\nThe wooden plate has a banana, peaches, and a green apple.\nThe young man in the cap jumps up on a skateboard.\nA group of people at a table with computers and laptops.\na tree surrounded by a little bench with someone sitting on it\nA clock is shown at the top of a building.\nThe young boy is practicing his tricks on his skateboard. \nA man gets ready to throw a frisbee.\na yellow and blue fire hydrant by the curb\na toilet sits next to a shower an sink \nA train pulling passenger cars on a train track.\nA couple of cows tied to a fence in a city area.\nA person is taking a slice of pizza inside.\nSeveral sailboats in the water docked at a marina. \nthere are two very tall giraffes in this zoo by the water\nA group of people sitting at a table together.\nTwo white birds sitting on sand with water in the background.\nTwo giraffe standing together and looking towards an area of trees and bushes.\nSome cute little boys at a little table eating together.\nA woman sitting on the couch playing wii with a dog sitting next to her.\nA cloudy day with a few airplanes waiting to take off.\nA herd of cows walking down a small country road.\na man is doing a trick on a skateboard\nA dining room table and four wood chairs.\nThe two teddy bears are sitting together on the red tablecloth.\nthis is two men in a soccer match\nA young man playing with frisbee on a sunny day\nA large jetliner sitting on top of a tarmac.\na group of ball players playing on a field in front of an audience\nA man hitting a tennis ball with a racquet.\nA bicycle parked next to a snow covered park bench.\nA plastic serving tray with food and drink on it.\na dog laying on a bed with a tv in the background\nA group of children posing for a picture with two adults.\nThere are many flavors of donuts on the paper.\nA person riding a surfboard on a wave in a wet suit.\nA person who is playing piano under an umbrella.\nA red double decker bus parked in front of a tall building.\nA dilapidated bicycle frame underneath a Pedestrian Zone Sign.\nA red and white tug boat drifting in the water.\nA sparse hospital room with an open window.\nA huge hole in the middle of a bathroom. \nA bathroom with two large white dressers and sinks\nA small boy on a skate board on a ramp.\nThe clock for sale has  birds displayed on it.\na man sits on a toilet in a bathroom.\nClock on a stone wall reading 9 o'clock.\nA ted sitting in a room next to a heater and a window.\na purse a pair of shoes and a horse behind a display glass\nA pile of assorted donuts and pastries for sale\nthere are many young boys that are playing baseball\nTwo brown teddy bears sitting side by side.\nPeople standing around looking at a small train on a track\nBunch of people out on the small hill flying kites\nA clock with two little chefs on either side of it.\nA person talking on a phone with a tree in the foreground.\nThe people are riding motor cycles down the street.\nA group of men stand together in suits.\nTwo girls and a boy eating food and laughing.\nTwo men are checking out several wines in a crowded room.\nSeveral tables are set up with laptop computers.\nA red bus driving in front of a double decker bus.\nThree elderly people sit together and eat desert.\na brown and white kitchen with a silver refrigerator\nAn open refrigerator including bottles of various food.\nA woman riding a wave on top of a surfboard.\nHot dogs on a BBQ being grilled in a backyard.\nA couple of men standing next to each other near surfboards.\nA street scene with a horse and carriage.\nAirport workers loading luggage onto into an airplane's cargo hold.\na little teddy bear stands on a table next to a chocolate dessert\nA cat is sleeping on a computer desk.\nA man making donuts at a grocery store\nA man swinging a baseball bat over home plate.\nA woman in black jacket next to a black horse.\nA few pieces of luggage sitting on top of a chair in an airport.\nWoman walking down the side walk of a busy night city.\nTwo young boys sitting on a bench texting on their cell phones.\nA plate filled with dessert sitting next to a small Christmas tree.\nA young girl sitting at a table that has two pizzas and a pepsi beverage glass on it.\nA naked little girl holding a cell phone.\nStuffed teddy bear sitting in the bars of fence with flowers growing\na couple of people in uniforms are sitting together\nA small blue and yellow plane sits at an airfield.\nMan on street appearing to be dancing or skipping sideways. .\nA young person posing for a picture while on skis. \nAn old tower-like building made of wood hosts many decorations.\nA man with an umbrella hat stands next to another man.\nA cat lying between a computer keyboard and monitor. \nA back that has a skull and two swords on it.\nA box of glazed doughnuts with a year on them\nA white toilet sitting in between tiled walls.\nA baseball player holding a baseball bat during a baseball game.\nA woman riding water skis on top of a lake.\na guy that is sitting on a park bench with a news paper\nA herd of giraffe standing next to each other on a  field.\na woman standing beside a fire hydrant and posing for the camera \nBlack cat lying on smooth tiled kitchen floor.\nThe batter recoils just after swinging, as the catcher sits crouched with his glove out in front of the plate.\nA couple of men standing on either side of a surfboard.\nA livingroom with coffee table sofa and wingback chair\ntwo giraffes playing in their sandbox exhibit \na tower with some clocks on the top of it\na dog is getting petted in front of a book case\nA cat, trying on its owner's high-heeled shoes.\nA couple of people riding down a snow covered slope.\na person and a dog in a fake train\nA large dog laying on a blanket on a couch.\na couple of people that are dressed in red\nA sidewalk next to the outdoor sitting area of a restaurant.\nAn old building with a giant clock at the top\na man with a tennis racquet swinging at a ball\nA woman hitting a tennis ball with a racquet.\nThere stoplight in front of the buildings is green. \nA person walking down a street while holding an umbrella.\na woman with a red hat is eating a hot dog\nA couple of men standing next to a bush on a rural road.\nA bathroom with a large bathtub and sink under a large mirror.\nA man standing next to another man as they prepare food.\nA street scene with a pole with the clock on top.\nA large pizza sitting on top of a table covered in cheese\na man on a skating board jumping very high\na person standing next to many luggage bags\nSurf boards adorn the windows of a dessert shop. \nA counter in a kitchen line with black metal stools.\nA group of jet skiers being pulled across the lake\nTwo women standing next to each other in a train station.\nA cat sitting up on its hind feet on a park bench\nA boat sails through frigid water with icebergs.\ntwo people riding on top of two horses \nThis is a case full of yellow bananas. \na man wearing a silly mask while using a cell phone \nA small gold clock on a mantle with a mirror.\nA snowboarder in mid air after a jump \nA little boy in a baseball uniform holds the bat ready to swing.\nA blender full of a green colored smoothie\nCars parked on a beach with people watching hot air balloons.\nA beach with dining tables and huge straw umbrellas.\nA white airplane is parked on a green runway.\nA man washing an elephant in a body of water.\nA man on a skateboard performs a trick on the ground.\nA  man standing on a beach while holding a white surfboard.\nA bedroom suite with tile flooring and two lamos\na couple of horses grazing on some green grass\nSoccer players are sprinting neck and neck for the ball.\nA cargo train is sitting at a train station.\na man in glasses is holding a wine glass\nFour different angles of a persons hand holding a small remote control in various positions.\nA large blue boat sitting on top of a sandy beach.\nA parking meter on the side of a street near a window.\nA cat laying on a cushion on top of a table.\nA box with a variety leafy green and root vegetables in it.\nThere are people who are getting their food.\nTwo young people playing a game of tennis.\nA man and woman are sitting, being pulled by a horse.\nA television that is sitting on a stand.\nPeople flying kites on a sandy beach while a bucket sits in the sand.\nA man covered in tattoos talking on a phone.\nA man is trying to hit a baseball with a bat.\nTwo ducks floating together on a body of water. \ntwo flatbread pieces covered with different ingredients in between a flight of beers\nA picture of a painting and a couch.\nA group of people sitting on the backs of elephants.\nWe are looking in the door of a bathroom stall.\nA silver train passing under high beams and trees.\nA white and black bird on a chimney next to sky.\nA man riding skis on the top of a sky slope.\nA man riding a skateboard over a metal rail in a parking lot.\nA person sitting on the side of a mountain with a snow board.\nAn open laptop equipped with a webcam in front of a television. \na train on a track near a building \nA group of young children playing with a soccer ball.\nA wooden crate holding bananas under a roof area.\nA man and woman cutting the umbilical cord of a baby.\nthree people on bicycles lined up behind one another along a road.\ntwo guys sitting in a restaurant with a large half eaten pizza \nTwo women stand under an umbrella at the beach. \nTwo men using poles to push skateboards up a hill.\nA big guy with a bear flying a kite in the sky.\nThe bedroom has stuffed animals and a stop sign on the wall.\nA small white toilet sitting next to a metal trash can.\nA woman naked laying in bed with a cat.\nA wooden park bench sitting in the middle of a forest.\na close up of street signs with buildings in the background\nA bear with a flat head stands in an enclosure. \nA wooden park bench siting next to a  park.\nA large bathroom with an enclosed toilet and a large sink.\nA fighter jet doing tricks with smoke trailing behind it.\nA large red and white boat floating on top of a lake.\nA zebra is standing outside in the snow\nA wooden bench that is next to a meter.\nA person doing tricks on a  bench with a skateboard\nA room full of a group of people and their laptops.\nA woman sitting on top of a bench looking beautiful.\nA herd of cattle laying in the grass on the ground.\nA man swinging a tennis racket at a tennis ball.\nTwo people that are walking a dog together.\nA desk with a keyboard, mouse and computer monitor.\nA man show a huge doughnut covered with melted chocolate and sprinkles.\nA pile of lots of vegetables and produce.\nA person in a jeans jacket flying a colorful kite.\nThere are a lot of trees and plants beside the house.\nA giraffe is poking its nose into a girl's beverage cup.\na large number of people parasailing on the water \nA table topped with wooden combs and plastic display cases.\nTwo horses that are standing in the grass.\nA bedroom is fancy and has many fancy things in it.\nA sign letting tourist know where to file elephant complaints.\nA man walks on the beach holding a surfboard on his head.\nA pizza with Canadian bacon and pineapple in a fluted pan.\nA herd of zebras grouped together on a dusty plain.\na close up of a street sign with buildings in the background\nA man surfs a wave in the water. \nA man touching bread sitting on top of a counter.\nA woman stooping down to catch a frisbee while wearing a dress\nAn empty road with buildings on each side.\na computers keyboard and the bottom of an apple mouse\nA cat that is laying near a pair of slippers.\nThree cats are lieing on a big soft pillow. \nThe elderly man in a cap is sitting on a wooden bench. \na purple red and white bus a man walking and some buildings\nA couple of brown horses standing on a grass covered field.\nSmall group with hand held video controllers interacting with out of frame screen.\nA pizza and a salad are sitting on a table.\nA group of well dressed women sitting next to each other with small children.\na man is standing in front of a table\nA children play area absent of any children.\nA dog going to the bathroom in the park.\nan image of two men standing in front of a Christmas tree\nA man leads a long-haired bull with a rope in a competition.\nThis bird is looking at a toy photographer.\nA grey vintage truck on street next to a house.\nAn ornate clocks sits on a counter in front of a design.  \nThe cat is sitting underneath the parked car. \nA train on some train tracks near some trees\nPeople are on surfboards near the shore in the water.\nA moose is standing out by a river\nA man on a bed with a couple of dogs.\nA group of people standing on a tennis court.\nA person on a surfboard rides on a wave.\nA brown bear cub walking in a forest area next to a rock.\na couple of bears are standing by a fence\nKites and balloons in the sky and one on the ground in an open field with spectators standing in the distance.\nA church filled with rows of wooden seats.\nA man smiles as he holds a baseball bat in an historic photo.\nA plate topped with a cake and a hat.\nSome colorful fresh fruit and veggies cleverly arranged.\nA group of people posing together at a party.\nA bicycle is parked next to a bench. \na white and red boat with a bunch the people on it\nA black bear climbing out of a pond \nA chandelier hanging from a ceiling over a table.\nA man riding a brown horse down a city street.\nA giraffe that is standing up in the grass.\nA woman sitting next to a man holding an umbrella.\na toddler sitting on the bed holding onto a book\nPeople walking down a side walk in the middle of a city.\nthere are many giraffes in a fenced in area\nA small boat in the ocean with four seagulls standing on it.\nA lot of broccoli sitting in a bowl\na sanctuary sign and a tall clock tower\nA hairy brown cow laying on top of a field.\nTwo men wearing ties holding glasses filled with beverages.\nA young boy holding a frisbee in one hand against his cheek. \nA man holding a turkey he has just taken from the oven.\nA clock mounted on the side of a building next to a street.\nAn intersection of wires and cables stretching over a traffic light.\na man on a motorcycle driving down a track \nTwo birds flying in a gray sky next to a mountain.\nA dark skinned child getting ready to be pushed on a swing.\nA white plate that has a sandwich cut in half\nA flock of birds sitting on top of a green field.\nA clock with the word \"Frisco\" written on top. \nA man and a woman walking away from a house after getting married.\nA small elephant rubbing up against a tree.\nWinter breakfast meal ready for one person at a cafe\nA bed is lying in a small room.\nA double decker bus driving past very tall buildings.\nA dog is sticking it head outside of a car window \na girl in black wet suit  in a kayak with lots of water splashing  \nA giraffe is fenced in next to a large city.\nA baby and adult elephant walk around their pen.\nTwo tennis players shaking hands on the court \na close up of a monitor with a mouse and cotrol\nThe train could be going as fast as lightning\nA table with a plate of food and cups of liquid.\nA group of three people riding a ski lift over a snow covered slope.\nA black and white cat laying on top of a couch.\nCanning tongs lifting a jar out of the water bath.\nA close up of a banana next to a cup with liquid.\nthe man is working on his laptop while he waits for the train.\nA woman pointing a video game controller directly forward.\nA siamese cat laying on top of a white sink.\nTwo women and a man share drinks together.\nA large blue bus on a city street.\na funny cat in front of a tv monitor\nA train with headlights traveling on a track past pedestrians.\nA group of people on a field playing baseball.\nA stop sign that has various stickers on it.\nLiving room setting with furniture, fireplace and lamp\nA wooden bench sitting in front of a park.\nA group of people walking around parked buses.\nA pen is sitting on top of a laptop.\nA man posing with a mouse and keyboard\nA woman pulling her luggage past an orange fire hydrant.\nA commuting train movig through a rail yard with tracks on\nSkiers perform on a lighted half-pipe beside a mountain.\nA lady and two small kids flying a kite.\nThree zebras eating grass on a dry grassy slope.\nTwo legs with work boots on poking out of a truck window.\na laptop besides an alarm clock maroon in color\nA group of giraffes inside an enclosure with an antelope in the shade. \nA grey bird on beach with water and pier in the background.\na man standing by his bike with his hands on the seat\nThe baseball pitcher has wound up his arm to pitch that ball.\nA  yellow fire hydrant on a green piece of grass next to a road.\nA man on skis skiing down a mountain slope.\nA man reading a newspaper standing beside a wagon filled with bananas\nA man holding a plate standing inside of a kitchen.\ntwo people riding horses on a sand road \nA jockey riding a horse as it leaps into the air.\nSeveral types of houseplants sitting on a window ledge to receive light from the sun.\nA bear that is walking in the water.\nThe side of an airplane that is parked, and an Air China sign on the side of the plane.\nA beige wall has a light switch on it.\na wooden weaving machine a window and some books and cds\nSeveral pieces of ancient pottery painted with designs.\nYoung person practicing first aid technique with others on grassy area.\nA two story boat sailing on a crystal blue body of water.\nA brown bear standing next to a tall brown tree.\nsome little girls presenting leis to service men\nA vase full of flowers and knitted rabbits.\nFlowers in a glass vase sitting in a window.\nA man in a black outfit sleeping on a small bench.\na person skateboards down the street near hay\nA green commuter bus pulling into the bus station \na white cow walking down the street next to some motorcycles \na couple of people that are sitting on a couch\nThese two cats are playing in a room that has a large TV and a laptop computer.\nAdolescent standing in the living room in a tuxedo. \nA white plate topped with food and eating utensils.\nan orange trolley traveling down a brick street.\nSomeone is holding a container of garlic mayo near his sandwich. \nMany people standing in a field flying kites.\nA woman holding a Nintendo Wii game controller.\nA vase of flowers sits on a table near a book.\nA zebra standing in the grass next to a tree.\nA bathroom is shown with a toilet, sink, and shower.\nA family standing in front of a sign while wearing skis and holding ski poles.\nAn elephant walking down the street with a saddle\nPeople holding racquets playing tennis on a court.\nA cat sleeping on a bed next to a laptop computer.\nA man and woman holding surfboards close to the sea\nA group of people sitting on benches having lunch together at a curbside garden area.\nA group of people on motorbikes sit at a crosswalk.\nA couch and television in a small room.\nA young boy holding a tennis racquet on a tennis court.\nA slice of pizza that is on a plate.\nA man is taking a picture in a rear view mirror.\nA man riding a snowboard on top of  snow covered ground.\nA couple of people sitting at a wooden table.\nA large truck on the side of a street.\nA mini car mouse is sitting on a mousepad with the headlights on.\nA small bathroom with a roll of toilet paper and a toilet\nSmall child on skiis stands still on a snow trail. \nThe green bus has a large front window and a yellow license plate.\nPeople partaking in food and drink at a restaurant.\nA group of people standing around a store selling kites.\na car is sitting at a red light in traffic\nA plate with a slice of bread, green peppers and meat on it. \nA few boats are parked near the shore line. \nA man plays with a Frisbee while a crowd looks on. \nA very colorful room with models of cows afixed to the ceiling.\nThe inside of a refrigerator with lots of food in it.\nthree photos of a male doll slowly getting undressed\nA white fire hydrant next to a red newspaper dispenser.\na grey cat biting into a frosted donuts\nBenches on a paved deck overlooking a waterway\nA bathroom showing the bathtub and the sink and mirror.\na photo of a light pole near a city street \nA man and young child stand in the snow giving thumbs up.\nThe baseball player in an orange cap is throwing a pitch.\nsomeone that is skiing across some white snow\nA cat sits in front of television intently looking at it. \na fire truck on a city street \ntwo women sitting in two separate train cars.\nPeople standing behind a clock in a clock tower filled with massive golden bells.\nrefreshed and unable to see image, have had this problem before\nA baby boy is laying on a couch.\nA mini-fridge stands open, with bottles visible inside.\nA group of elephants in a grassy area next to a tree.\nA clean kitchen island with plants on the island.\nKitchen utensils and appliances have been left unattended\nmany fruits arranged in large containers indoors near a weall\nA man standing next to a parked motorcycle.\nLooking up at the steel struts in the ceiling of a train station\nThe shelves above the cabinet have porcelain dishes on them.\nA small airplane taking off from an airport runway.\nA baseball player is being tagged out during a game.\nThree women sitting on a park bench next to each other.\nA brown and black cat laying on laptop next to a chair.\nA gray cat lying on a desk near a telephone.\nSurfers on surfboards ride in a row on the ocean waves.\na big bus driving down the road next to another bus \nA person cutting a pizza with a pair of scissors.\nA yellow fire hydrant in front of a bike leaning against four poles\na close up of a woman next to a horse\nA woman standing next to a cat laying on top of a floor.\nHorses standing and laying down in the grass on a hill above a lake.\nA sheep standing in the middle of a field.\na large plane is coming in to land near a big balloon man\nA restroom with toilet basins and a mirror\nSail boats sail over a body of water while people stand near the shoreline. \nA large jetliner sitting on top of an airport tarmac.\nA group of people standing outside of a bus.\nA young man throwing a baseball bat as he runs across a field.\nA baseball player swinging their bat on the field\nA boy with a bat at a batting cage. \nA bus drives down the middle of a street. \nA woman holding a large sheet cake in front of a screen.\nA man with a scarf on his head standing in a big grass field.\nA guy squatting and holding a baseball bat at home plate.\nPeople sitting on a patch of grass in sand with an umbrella\nA grey and white cat sitting next to keyboard and computer monitor.\nA group of motorcycles on display for a crowd.\nA cat sitting next to a laptop computer on a table.\nA woman with an umbrella walking beside a stone wall.\nFood in a pain is shown up close. \nA dog standing on the back of a brown car.\nA group of people posing on sidewalk with a plaque.\nA young man kissing the top of a young woman's head.\nA group of people siting around a pizza\nA railroad train passing a field of cows\nA woman with sunglasses is on her cell phone.\nA passenger train that is going over a bridge.\nA tennis player hits a high ball in front of an audience. \nA gorgeous display of food on the table.\nA cat sitting next to a row of shoes.\nA highway sign posted on a pole next to a street sign.\nA strange plant hanging off a banana tree.\nThat aircraft is for display not for riding.\nA city street with delivery trucks and a bus.\nThree giraffe standing next to each other on a field.\nThis is a blurry image of a man looking at something yellow and roundish.\nBlack motorcycle sitting outside a wooden door on bricks. \nA kid on a surboard riding a little wave\nA fire hydrant sits in the middle of the park\nA statue of a bear sitting in the middle of a sidewalk.\nA young male sitting and eating next to a skateboard.\na woman playing tennis with many people watching \nA red-headed man with glasses is looking at his laptop.\nA clean room with a made up bed.\nA man serving a tennis ball on top of a tennis court.\nBear cubs play among the fallen tree limbs.\nThere are two giraffes sitting together in the wild\nA woman standing in a kitchen preparing food.\nA picture of a person and another person laying down.\na dog following a man on his horse in a field\nA man in blue shirt wading in water with building in the background.\na wooden post holds up a sign off of a road \nA group of people riding on the back of an elephant.\nA busy city street filled with people walling and street signs.\nThe mountains past the fence are covered in snow. \nA pot on the stove is filled with food.  \nA man riding on the back of a brown horse.\nA airplane that is flying in the sky.\nA boy in a bath tub with a toy in his mouth.\nA man standing on top of a baseball field.\nA dog looking up in at a frisbee.\nA red stop sign sitting next to a forest.\nA bathroom with bathtub, sink, toilet and washing machine.\nThree piece fixture bathroom with window over the bathtub.\nA bathroom toilet nestled in a cubby is turned into a room for darts.\nToy animals displayed with small trees in outdoor setting.\nOffice space with office equipment on desk top.\nA bench next to a stone wall and a dirt road.\nA man riding a wave on top of a surfboard.\ntwo zebras some dirt brown grass and trees\nA women who is holding a small child in a room with lots of luggage.\nWilderness scene with animals grazing out in an open field.\na pair of giraffe standing in a big open area\nThe side of a train showing the entrance and two doors.\nSome people standing in front of a large building.\nA giraffe standing in the middle of a field.\nA little boy wearing a white shirt, tie and blue pants is smiling as he sits in a white chair in the middle of the grass. \nA white plate topped with a sandwich and a bowl soup.\na close up of two bananas with bottles in the background\nA mouse is wrapped in its own cord and wrapped in a backpack.\nAn alarm clock is showing the time at 6:53.\nA room with some chairs and a bookshelf.\nA partial view of a toilet and sink in a bathroom.\nA person is holding a video game controller.\nA woman standing in front of a counter with a plate of food.\nA red truck parked on top of a dirty ground.\nA red traffic light sitting over the top of a street.\nThe moon shining down on a harbor full of ships.\nTwo bikers, one in front of a building, the other in the city.\nThe orange fire hydrant is beside an old shack.\nA man sitting at a table, holding a foot long hotdog topped with chilli\nA herd of zebra standing next to each other.\nThe interior of a bathroom with crumpled and torn toilet paper on the floor along with a toilet roll that has been pulled.\nAppliances lined up on the cement next to a fence. \nA room with two couches, a table, several pillows and two pictures on the wall. \nA green street sign on top of a metal pool.\nA living room with a large tv and pictures all around.\nA purple and green fire hydrant next to a black and green fire hydrant.\nLong row of elephant, with blue eyes, statues.\nSeveral bags are covered with see through umbrellas on a beach.\nA man, a woman and a child ride a motorbike together in front of a small building.\nPickup truck on a ramp preparing to merge with heavy Interstate highway traffic.\nA black puppy with a ball in its mouth sitting in a bicycle basket.\na tennis player hitting a serve on a court\nThe skateboarders practiced their jumps on the road.\na basket with a few things of fruit in it\nTwo young sexy women holding tennis racquets and tennis balls.\nThe men are working on the yellow fire hydrant. \nA group of fire fighters working on a fire hydrant.\nA toilet with a blue seat cover with a note that reads \" Please Don't Use Sorry\".\nA tennis player wearing white holds out his tennis racket as a ball floats in the air near it.\nA large outdoor clock with two faces and various designs and numbers on the faces.\na small black laptop is on a table\nA brown teddy bear sitting at a table with colored pegs.\na bed room with a bed with a canopy\nA yellow train traveling down tracks surrounded by large bushes.\na train on a train track at a train station \nA man in a parking lot doing a trick on a skateboard.\nsome people walking on a platform between two trains \nA group of people sitting around a table in the kitchen.\nA man wearing skis holding two ski poles.\nA person riding skis on top of a snow covered slope near a dog.\nA boy playing tennis in a tennis court.\nA little boy that is sitting on a toilet using a toothbrush.\nsome parked bicycles and two women on a bench and a book\na tennis ball is resting on a racket outside\nA black cat wearing a black beanie while laying on a red couch..\nA sink with cups and towel next to it\nThree people on a motorcycle in the middle of a city.\na man snow boarding with snow gear on \nTwo elephants that are standing next to each other.\nTwo tourists standing in front of an old historical building with statues on pedestals.\nA brown donut on a thin piece of white paper.\nA large green truck parked on top of a desert field.\nA motorcycle parked on the side of a road.\na close up of a tennis player holding a racket and a ball\nA woman prepares to hit a tennis ball on a tennis court.\na number of animals in a field of grass near one another\nThe man is holding up  fresh green bananas\nA boy in a tie holding a small suit case.\nThe carrot cake has white frosting and is sprinkled with walnuts.\nA white plate topped with meat, rice and veggies.\nA couple of little girls sitting at a table with a cake.\nA picture of an alter holding bananas, skeletons, candles and flowers.\nThe small stuffed bear is propped into the car dashboard.\nA man holding a bat under a dark chem trail filled sky.\nA snow man has lemons for eyes and a carrot for a nose.\nsome lightening is striking off in the distance\nA man riding a horse up the side of a tree.\nMan with large bunches of green fruit at outdoor marketplace.\nA child is petting a small horse that he stands beside.\nAn empty handbag lying flat on a table.\nA hipster carrying an umbrella and a white hat.\nA skier that just made a jump several feet up in the air.\nA dog sitting on top of a made bed. \nA woman stands leaning on a brick wall as she holds a cell phone to her ear.\nA kitchen with a wooden table next to a metallic refrigerator freezer.\nHorses and their riders are racing in a horse race.\nA cat sitting on top of a bench in a field.\nA person is trying to ski down a snowy slope.\nA couple of sub sandwiches are in a basket. \na baseball player holding a bat in a field\nA group of giraffes standing in front of people taking pictures.\nA pretty woman sitting at a desk using a laptop computer.\nA cyclist checks his wrist heart rain monitor in front of a stop sign.\nA man standing in front of a mirror above a counter.\nA parked black motorcycle in front of a brown house.\na young girl swinging with her teddy bear\nA table is set with the fixings for bacon, lettuce and tomato sandwiches.\nAn orange tabby cat is curled up fast asleep on the top of a sofa cushion.\nA woman sitting in a living room in front of a window.\nA man stands on a tennis court while holding a tennis racket.\nA man checking his phone while a woman takes a photo of the water.\nA child taking a bite of a pizza slice on a plate.\nA KITTEN NAPPING ON THE KEYBOARD OF A LAPTOP.\nTwo people, a woman with pink hair and a man, hold wine glasses and the shelf in the distance is filled with bottles.\nGiraffes eating foliage in a wooded zoo setting\nA statue and other pieces of art are along a wall.\nA black and white photo has two baseball players.\nA woman with a red sweater, seated and holding a small dog over a railing while looking into a body of water.\nA truck parked on the side of a road next to another truck.\nA black and white photo of a camera, on a bench.\nA couch sitting on top of a field of grass.\nA tree with balloons tied onto it and candles at the base of it.\nBatter up! Three men in the midst of a baseball game.\nA polar bear walking down the snow in the day.\nA young boy standing on a  tennis court holding a racquet.\nA man leans over his motorcycle and rests one hand on the leather seat.\nA young couple sharing an umbrella in pouring rain.\nthis is horses racing each other on dirt\nA metallic red microwave on top of a fridge-freezer\nA ground in front of a monument where many people have gathered to visit it.\nA pizza topped with fresh tomatoes greens and cheese\nA black and white train passing over a body of water.\nA girl in pink shirt sitting at a table with green cup.\nA green and beige bus traveling down a busy city street.\nPlates with blue leaves hold many food dishes including peas, noodles, broccoli and other things.\nThe skier wearing goggles is riding through the snow with ski poles. \nA kitchen which looks like its been updated recently.\nCity setting with food truck parked near roadway with pedestrians.\nA close up of a pair of rusty scissors and wrench.\nthis is a stuffed animal on the concrete\nA couple of giraffe standing next to each other.\nA tan utility truck with a blue interior.\na bed with white bed sheets and pillows \nThree plates of various food sit on a table\nThe plane is flying through a clear blue sky.  \n A display case filled with lots of different vases.\nA cat sitting and curled up on a red couch\nA large point tower towering over a traffic light.\nA woman holding an umbrella while standing on top of a wooden deck.\nA group of people scrubbing down their elephants\nA large black bird wings spread flying over the woods\nOld luggage cases. One is brown and one is green.\nA computer with cables plugged in is shown.\nA boy ollies his skateboard at an outdoor skate-park.\nSomeone about to cut and birthday cake with blue and yellow frosting. \nA tennis player in action on the court.\nA large black dog with long hair standing on steps.\na person presents some big doughnuts in a box\nA white plate topped with donuts sitting on a stove top.\nA group of people riding skis in the snow next to a ski lodge.\nA group of people are eating at a restaurant.\nA little kid holding an umbrella on a street.\nA group of business people pose for a picture.\nA black computer keyboard on top of a white surface.\nA wooden bench sitting on a beach next to the ocean.\nA large jetliner flying over a traffic filled street.\nThere is a white toilet with red tiled floors\nA red umbrella is an asian garden setting.\nFour kids sitting on surfboards with man in background.\nA counter top with a bowl of oranges next to a bowl of apples and a lamp.\nA toucan perches behind a the bars of a cage.\nA black cat laying down on a bed.\nA man riding a skateboard down the middle of a street.\nA multi colored train traveling past a small town.\nA living room scene with a wire chair and a television.\na train that is on a rail road track\nA merry go round with lots of colorful giraffe and other animals.\nA male holding video game accessories in front of his face.\na man takes a bite of a doughnut \nTwo very large birds pose outside on white chairs, side by side\nA teddy bear and a stuffed raccoon sitting on a faded wooden outdoor chair.\nA modern flatscreen television sits upon a nostalgic console model.\nA couple of zebra standing next to each other.\nSeveral books are stacked on a table. \na couple of men are standing on a snowy mountain\nA white fishing boat goes under a bridge.\na kite flying high above in the sky\nA brown dog standing next to bicycles in front of a store.\nA fancy clock hung up on a decorated wall.\nA man on motorcycle driving past cows on the street\nA very small white bathroom with some sort of electronic apparatus beside the commode. \nA clock on the side of a door in a room.\na couple of zebras are standing in a field\na statue of a man on a horse outside of england\nA courtyard has a clock in the middle of it.\nA hot dog covered in mustard and cheese sits next to french fries.\nTwo men sitting on the backs of two large elephants.\nAn Oscar Mayer truck is parked at a festival.\nA wagon with supplies sitting on top of it.\nA plate full of food with an assortment of food on it.\nA couple of beds sitting in a bedroom under paintings.\nA stuffed teddy bear hiding behind plants next to a house.\nTennis player wearing white outfit slinging the ball. \nA toilet with a red seat sitting next to a paper towel dispenser.\na man sits in a recliner with his laptop\nA large cheesy pizza sitting on top of a white plate.\nA living area with a fan and furniture covered in white blankets.\nA boat parked on top of a beach in crystal blue water.\nA red stop sign with a sticker of a man holding up a sword.\nSunny day on beach with umbrellas and loungers with beachgoers\nA small car is parked in front of a scooter\nA cement bench near a railing that overlooks a large body of calm water.\ntwo dogs brown white and black and some people\nSome people are enjoying themselves playing game. \nA bird is walking right through a dining room.\nA tall clock tower sitting next to a restaurant.\nA dog in the air with a frisbee in its mouth. \nA person that is surfing in the water.\nA man is kite surfing in the ocean.\nCity neon signs at dusk with a lot of those signs in Chinese.\nA black and white photo of a person riding a horse jumping over obstacles. \nA bed and window in a small room.\nTwo buses passing each other by while traveling under a bridge.\nA hot dog that is sitting on a napkin.\nA very cute looking small dog by some food.\nA group of commuters standing around a train station.\nA giraffe sticking its tongue towards a cracker. \nPaddle boats parked at the edge of a river or lake \nDog on leash sitting with cushions while a person is calming him.\nA man and dog that is sitting in a ski lift.\nSeveral seagulls sitting on a sandy beach looking at the ocean.\nA red trolley car driving down a parking lot.\nThe two young people are heading toward the water.\nA tray of food sits on an outdoor table. \nA person standing in a field next to trees flying a kite.\nA traffic light in South Venice with road signs\nA brown cow standing on a field with long horns.\nA close shot of a cow standing in the wild. \nA pair of woman paddling on surfboards in the ocean.\nA group of men standing around holding game controllers.\nTwo men watch another throw a Frisbee in a field. \nA group of people standing in front of an airplane.\nAn elephant is walking around its kept quarters on display.\nA group of people sitting around a wooden table in front of a projection screen.\nA bicycle leaning against the hull of a boat\nTwo people sitting and laying on top of a park bench.\nNice arrangement of furniture in old styled house\na screen shot of a televised new weather report\nCouple sailing a large sailboat on calm water. \nA tall, stone clock tower rises above green trees\nA microwave oven sitting on top of a blue table.\nA man sitting in a  hospital bed hooked up to an IV.\nAnimals trying to either move or go around fallen tree branches\nA couple of kids preparing food while standing in a kitchen.\nA person approaching a kite on a grassy field\nZebras crossing a bitumen road in the savannah\nA white plate topped with salad and onions.\nA woman holding a racquet on top of a tennis court.\nA truck is parked on the side of a busy road.\nTwo big plates filled with some tasty looking food.\na large airplane that is parked in a runway\nA mirror on top of a pole on the street\nA man standing next to a robot with a camera.\nA baseball player in batting stance on the diamond.\na person jumping a skate board in the air \nThree kids are trying to fly their kites.\na street light that is covered in dirt and rust\nStreet view with cars going by and people walking around,\nA man in a wet suit riding a wave on a surfboard.\nA black leather sofa in a living room with a batman poster hanging in the wall.\nCloseup of a computer dashboard with flashing lights and numbers.\nA cluttered desk in an office cubicle near other cubicles.\nA man wearing skis posting for a picture at night in the snow.\nA cat curls up on a soft and comfortable bed.\nA worn out street sign is at an intersection.\nA group of ducks swimming on top of a lake.\nA plate topped with steaks, broccoli and carrots.\nA woman with her head lowered cuddling a stuffed animal.\nA BBQ topped with lots of sausages sitting side by side.\na person wearing a blue jacket is wearing skis and snowy trees\nA small elephant standing next to a tree stump.\nA bench in some grass that is next to a building.\na close up of a bowl of fruits and vegetables \nseveral people on the top of a mountain with skis\nA bookshelf with a bear toy and various books.\na yellow and black train is on some tracks\nA Mac mini and a keyboard are on a table.\na clear desk with a laptop and computer on it\nA lone brown cow stands on an empty beach.\na group of zebras are all drinking from a river\na person riding a snowboard down a hill \nA man with umbrella is exiting a triple-decker bus.\nA man and a little girl sitting at a table eating pizza.\nSeveral bags are grouped together in a waiting area.\na laptop sitting in a chair next to a big tv\nThe brown bear is sitting on the ground scratching its ear. \nA man standing in a kitchen holding a glass full of alcohol.\na sign a street a green car and a person with a black umbrella\nThat pizza is four times the size of a normal pizza. \nA bunch of red and white umbrella hanging from ceiling.\nA concrete building with towers, a steep in the middle and a clock underneath.\na picture of a vase with flowers coming out of it\nA child is playing with a ball in a batting cage.\na street with people and vehicles in the middle of it\nA giraffe is sitting down in the wild. \nsome oxen and a zebra laying on the ground \na person riding a skate board ata skate park\nA young woman riding a white surfboard on blue water in the ocean.\nA photo of a skinny road between buildings.\nBaseball game in large stadium with ball flying toward batter\na women combing her young daughters hair \nA bathroom with white tile and a beige toilet.   \nA refrigerator that has been fitted with a tap and a thermometer.\nA man holding a phone up to take a selfie.\nA windsurfer riding on top of a wave.\nA tall green street sign sitting on the side of a road.\nA large cat climbing up the side of a window.\na man riding a skateboard down a curvy road.\nA bear standing at the border between the shade and the sunshine.\nLarge brown and white horse standing on dirt path\nA stop sign and a fire hydrant on the corner of a grassy sidewalk.\na red and white bus and some cars in the rain\nAn orange fire hydrant with a black hat on top.\na hot dog on a bun with ketsup and lettuce on a plate\nA group of women in kitchen next to pot.\nA white bowl filled with meat and vegetables.\nA boy with an earring and a hat wearing a tie.\nA crowded airport filled with people carrying luggage.\nA cat with it's head inside of a brown shoe.\nA young child and cat in a living room.\nA bench on top of stone tiles surrounded by trees.\nan odd looking blender with three serving glasses \nA slice of pizza sitting on top of a white plate.\na big plate of food that has some bread on it\nA motorcycle driver sitting next to his motorcycle. \nA bed and a laptop in a room.\nGirl siting on a bench in the woods in the fall.\nMan holding up three almost empty glasses of wine. \nA boat dock with two planes floating on the water.\nA woman walks out of the ocean towards a beach chair and umbrella.\nA skateboarder grinds down a railing in front of buildings.\nA pizza with mushrooms, sauce and cheese is shown.\nA man in a wetsuit is holding a surfboard on a dirt path. \nA man walking through an empty subway concourse\nA group of men sitting next to each other.\nA woman dressed in leather poses on a motorcycle.\nTwo people on bicycles riding next to a building.\nA statue sitting on top of an old stone hill.\nA freeway sign at freeway entrance detailing 3 freeway options.\nAn elephant walking around its enclosure at the zoo.\na cat laying on a luggage bag on the ground\nPlate of food with meats, potatoes, eggs, and fruit.\nA woman walking down a street at night holding a red sheep umbrella.\nA little boy is being held on a lap while eating.\nSomeone dressed in a costume pressing the buttons on the microwave .\nA white train sitting in a train station next to a Bologna sign.\nA group of people seated at a table in a large cellar\nA stack of suitcases rest beside a couch.\nA New York Yankees player swings at a pitch\nA cat curled up in the shade on a door stoop.\na jet on three pillars in front of a building\nA group of men riding motorcycles in street with American flags.\nTwo people on skies in the snow \nA cat sits between a window and a large birdcage.\nA person in white and red jacket jumping in air on skis.\nSheep and lambs with green paint on their backs.\nA group of children holding racquets and tennis balls.\nA large passenger jet flying through a cloudy sky.\nBunches of bananas are displayed in a shop.\nTeddy Bear sitting on a radiator wearing a hat.\nA close-up of a television on white wall.\nA blue sign sitting on the side of a road next to a tree.\na dog is herding some sheep and some people are watching \nA red and white street sign mounted on a red pole with a pedestrian traffic light.\na couple of people on surf boards ride in the water\nA clock sitting in the middle of a walkway.\nTwo giraffes that are standing in the dirt.\nTwo females throwing a Frisbee in a grass area.\na group of people picking out bananas from carts\nA hand holding a sandwich wrapped in black and white checkered wrapping.\nPeople are holding wine glasses next to each other.\nA train parked in front of a train station.\nA couple people flying kites on a beach.\nthere is a cat that is laying inside a luggage\nTwo skiers in the snow out in the open \nAn airplane flying in a blue sky with it's landing gear down.\nA group of people are seated around a dining table.\nA few people working on various computers in an office.\nA cow standing inside of a red brick house peeking out a small window.\nA woman is entering a green lit room via wheelchair while talking to another lady.\nA dirt road with people walking a a motorcycle driving.\nA woman sitting in a stream using a frisbee to sift sand\nA white plate topped with an icing and sauce covered dessert.\nMan sitting on toilet top holding hat and cigarette\nA sink under a mirror next to a door way.\na close up of a zebra walking on a dirt ground \nA GIRAFFE IS NURSING ITS YOUNG IN THE ZOO\nRed train on the rails in a train yard.\nA little girl standing on a tennis court holding a racquet.\nAn old picture of a family on their farm.\nA commuter train at a stop in a major city.\nAn image of a very cute girl with face piercings.\nA white plate topped with bread covered in leafy greens.\nA woman holds a basket with a hot dog while she is surrounded by two other people.\nA brick oven with two serving trays and a stack of logs.\nA road sign next to a parking lot that reads \"FLAMING LIPS ALLEY\".\nA single green motorcycle Ina full parking lot\nAn old bus is next to an old train.\nA man taking his picture in the reflection of a microwave.\nA tractor trailer truck being loaded with cargo.\nCross country skiers on snow covered course during race.\nThere is a polar bear swimming in the water.\nNaan bread, soup, and a drink are served on a cafeteria tray.\nA man in a tuxedo is holding a beer\nA stop sign is viewed from a low angle.\nA box of different doughnuts with icing on each.\nA good looking pizza has a piece missing.\nA blurry image of a dark colored bus at a bus stop.\nPicnic tables on the shore of an ocean \nA commercial bathroom stall with empty toilet paper holders.\nA man kite surfing while riding a wave in the ocean.\nA teddy bear laying on a rock next to a bundle of trash.\nA small bathroom with a white toilet sitting next to a sink.\nA gray suitcase is empty while clothing is strewn around it.\nA decorated kite with tail flies in a gray sky. \nA woman preparing food at a cart next to the street.\npeople standing in line on a hill in snow gear\nA woman holding up a yellow banana to her face.\nA clock that is perched on clothing to make it look like a head.\nA picture of a birthday cake on a kitchen counter.\nThree boys are looking over the middle kids cellphone.\nA clock sits against a window in a white wall.\nMixed assortment of vegetables on a wooden plate with several different types of vedgies. \nA young man taking a swing at a tennis ball.\nA child holding an umbrella in the rain. \nA young girl sits inside of a luggage bag.\nA simple but fully stocked and well designed kitchen\nThe couple is skiing down the hill together. \nA woman and boy playing a game with remote controllers.\nTwo horses grazing on grass in the sun \nA baby sits on a bed, laughing, with a laptop computer open.\nA little girl holding a green umbrella on a sidewalk.\nA guy standing in a horse stance holding a tennis racket.\nA plate of sprinkled doughnuts with a persons mouth open in the background.\nA kite sitting in the middle of a large body of water.\nA blue motorcycle parked on the side of a road.\nA plate of food looks delicious with broccoli, onions, and potatoes.\nOne bear and two cubs in the grass while birds fly behind them.\nThis is an RV kitchen area next to a tv.\nA group of people sitting around a bar with drinks.\nA yellow double decker bus driving under a bridge.\nA batter is swinging his bat while a catcher squats behind him.\na cup that has a pair of scissors pens and markers in it\ntwo men sit side by side both on their mac books \nA couple of beautiful topless women standing next to each other.\nA group of men playing a game of soccer.\nA close-up of the top of a fire hydrant with a train in the background.\nA bike with tanks on it sitting next to cars.\nA cat standing over a blue plate with food on top of it.\nA beautiful bride standing next to a her husband as they cut their cake.\nA large cat rests beside a window sill.\nA woman skiing poses on a snow slope. \nA large brown dog standing next to a cat on a bed.\nA car and a public transit vehicle on a road.\nA BABY BEING HELD WITH A TOY IN HIS MOUTH \nA man in living room with sofa, windows and a fan.\nA WOMAN STOPS HER CAR ON TH SIDE OF THE ROAD TO FEED A HORSE\nA bathroom sink sitting under a large mirror.\nA bedroom trashed and filled with clutter and junk.\nThe large green train is approaching a platform.\na large building that has a clock at the top\nA large bird flying underneath a cloud blue sky.\nA kitchen with a stove, microwave and refrigerator.\nA computer screen is lit up on a computer desk.\nA beach filled with law chairs and a blue umbrella.\nA baseball game in progress with a young player swinging the bat.\nA group of people walking down a rain soaked street holding umbrellas.\nA white horse grazes in a fence in area.\nWoman in green jacket holding up a bicycle in a park. \nA flock of cute sheep in a rocky field at twilight.\nA large jar filled with white flowers behind chairs.\nA man serving a tennis ball on top of a tennis court.\nA white passenger train traveling down train tracks.\nThere is a sign in front of a brick house.\nA couple of people riding skis on top of snow covered ground.\nA herd of giraffe standing around a lush green tree.\nA cloth bag is on the keyboard of a laptop.\na train travels o some tracks next to some water \nA shaggy haired sheep with its lambs next to it.\nA man with goatee opening a fridge with shot from inside fridge.\nA elephant in the sand with a white animal on top of it.\na couple is taking a bite out of a wedding cake\nA wooden desk with a wooden chair under it.\nA wooden center island in a kitchen next to two flat screen TVs.\nA catcher is returning the ball to the pitcher while the batter waits. \nA couple of people riding a pair of skis down a snow covered slope.\nA woman in a blue dress holding an artistic vase.\nThe large building has many windows and a white door.\nThe bedroom has two pink chairs near the bed.\nThere is a yellow fire hydrant I. The street\nA smiling toddler on a surfboard with a fake wave simulating surfing.\nA bus that is pulled next to a sidewalk near a large building\nA smiling lady sitting by a cake with a lit candle.\nAn image stacked with much brilliant sustenance on plate. \nA young woman holding a tennis racquet on top of a tennis court.\na white plate and a piece of white cake \na tennis player jumping and swinging a racket to hit a ball\nA large umbrella and a chair on a street.\nThree computer monitors, a phone and a key board sit on a desk.\nA man standing behind a woman holding a bat.\nSomeone who is teetering on one foot while holding a tennis racket.\nA person on a skateboard and bike at a skate park.\nthere is a man and a woman standing in a kitchen \nA man drags a tree behind him through the snow\nA white teddy bear sitting in a chair.\nA woman and her child sitting nest to a man on a park bench.\na yellow tram some mountains snow and trees\n a polar bear in the water holding a carrot\nA man in costume talking on a cell phone.\nA cake is shown decorated with icing and fondant.\na bed two lights  two white pillows and some drawers\nthe fire hydrant has on the side of the road\nA crowd of people flying kites under a cloudy sky.\nA girl sits on a pillow thinking and writing into a notebook.\nA set of train tracks with a street sign next to them that reads 34th Street.\nA red and white bus traveling down a street.\nThere are people in wet suits who are surfing in the ocean.\npretty cat hiding inside of a brown suitcase\nTHERE IS  A PLATE WITH FRUITS ON THE PLATE ON THE TABLE\na big clock tower sits in the middle of a road \nA baseball player taking a swing at a ball\nA clock on display on a shelf in front of a mirror.\nThree beautiful women riding a paddle board on a large body of water.\nA pizza sitting on a pizza pan on top of a white counter.\na red truck is parked in a lot\nTraffic is stopped on the road because of a red light.\nThe red bus has an anime girl on it. \nA cow sitting in a penn inside of a building.\nA cat sitting next to a television watching a bird on the screen. \nA bunch of cows walking on the side of the road\nA young man riding a skateboard with an older man.\nThree young men playing Frisbee on the sand\nA fire hydrant covered in snow on a sidewalk.\nSheep grazing on a grass covered field side by side.\na public transit bus on a city street\na cell phone painted on a wall near a bike\na picture of a bunch of train cars colored red.\nA couple of people that are in the grass.\nA white toilet sitting next to a bathroom sink.\nA kitchen table is lined with cooking materials. \nFlowers are in a vase of water on a tabletop.\nThe wildebeest herd walked through the zebra herd.\nA person walking down a walkway next to a tree.\nA white cat sitting on a bed next to a night stand.\ntwo people standing near one another on a city street\nThe front and back cover of a book.\nAn old building with two rusty, very old pick up trucks parked in front.\nA boy in a white shirt jumping a gap on a skateboard.\nA dog's head pokes over the foot board of a bed.\nPeople riding on elephants that are walking through a river. \nA large glass vase with some flowers near a big window.\nA man walking across a beach holding a frisbee.\nA woman is holding a piece of food up.\nTheir is a hadron and their  in this lot,\nA little boy playing a Wii game in his living room.\nTwo people walking through the snow on skies.\nA table with carrots, peppers, radishes, broccoli, pears and an orange.\nA bus getting ready to get off a bridge on the highway.\nA lady is riding a bicycle while talking on a cell phone.\nA look of a bathroom sink through an open door.\nA man holding a surf board in his hands walking towards the beach. \nA train with several cars is going around a corner.\nthere is a black motorcycle parked outside in the dirt\nAn old time car with a suitcase on the back is on the field with other car.\nA composting toilet is shown for sale at a store.\nMultiple plates of different types of food on a  table.\nA laptop computer sitting on top of a wooden desk.\nA man on a snowboard at the bottom of the slope.\nA red and white painted fire plug on the sidewalk.\nA young man holding a game controller in his hands.\nA steam train coming through town with houses in the back.\nA picture of a rock, a book, and a pair of scissors.\nAn adult and child zebra that are standing together in a field.\nA PERSON IS SKIING ON THE SNOW BANKS \nA bunch of teddy bears all lined up in a row\nA plate with hash browns, bacon, sausage, eggs and tomato next to coffee, milk and orange juice.\na man riding a small motorcycle in the bustling streets\nTwo guys sitting on couches in a living room\nSigns proclaim the famous Haight Ashbury intersection and district.\nA double decker sight seeing bus is driving on the road. \nA wooden desk topped with a monitor and a laptop.\nTwo elephants with their trunks attached to each other\nMan yawning and lady looking the other way at a table with wine and food.\nA horse drawn carriage driving down a small road.\nA plate holding a grilled cheese sandwich and bowl of soup.\na person on a skate board getting pushed by someone else \nA boy skateboarder making a high jump in a parking lot.\nA woman posing in front of a sculpture at a bar.\nA small pizza sitting on top of a blue plate.\nA duo of women playing against each other in frisbee.\nA baseball player swinging a bat during a game.\nSome street signs near a road with a truck.\nA man riding skis on top of a snow covered slope.\na table that has a bunch of computers on it\na decorated vase is sitting on the table top\nSee-through Boy skateboards over orange partition at dusk\nA large yellow school bus stopping on a road.\nThe young man is outside playing a game of Frisbee. \nA snow skier is going down a mountain slope.\nA graffiti covered truck parked in front of a building.\nA light that is shining on a sign.\nTwo little boys are wearing helmets, goggles and snow gear as they stand and sit in the middle of the snowy terrain.\nA large jetliner sitting on top of an airport tarmac.\nThere are four groups of fruits setting on a stone bench.\nA stove and a window in a room.\nA kitchen with a black stove top oven.\nMs Williams is participating in the championship tennis match.\nA picture of a broken down stop sign.\nA group of people set on the ground talking in a park.\nA picture of a man with old style tie and glasses.\nA box with pizza in it that has different toppings. \nA water fountain sitting in the middle of a lot of green plants.\nTwo dogs are playing on the beach catching a Frisbee. \na man on a sail board rides through the water \nThat is a great place filled with things to see. \nA clean bathroom that has a sink and a bathtub.\na couple of pictures that have some people and some fire hyrdons\nTwo cross country skiers heading onto the trail\na big baseball field with people on it\nA person wearing a grey and red shirt is playing tennis.\na pedestrian walk sign among these billboards signs\nBlack and white photo of a boy with a dog.\nA red light and street sign in front of a palm tree\nA lady making a funny face in a restaurant.\nA man and his dog sit at the park.\nA three way sign is posted on an outdoor pole.\nA man serving a tennis ball on top of a tennis court.\nThe Sony remote is aimed at the television.\nA kitchen being remodeled covered in lots of clutter.\nA small parking meter between two gold plated pieces of metal.\nSeveral young children play soccer with two older men.\nA man with an umbrella is standing in front of a shop.\na living room with a couch and piano \nA snowboarder jumps in the air over a snow embankment.\nA table with a glass of white wine on top of it. \nA man on skis poses for a picture while on the snow\nFemale snowboarder riding down a trail smiling at camera.\nA couple of women standing in a kitchen preparing food.\nA cute brown dog laying on a blanket.\na close up of two giraffes with a rock background\nA group of people standing around a picnic table.\nA young girl standing on a field with a flock of birds.\nA man is smiling while holding the baseball bat. \ntwo dogs are at a door trying to get outside\na man and woman and some people looking at them\nA pole with a speed limit traffic sign posted on it.\nA man holding a gigantic sandwich with both hands.\na vase that has some flowers in it\na table top with some laptops on it \nA cat wearing a hat while resting it's paws on top of a chair.\nA series of photos of bowls filled with cake mixes.\na close up of a person cleaning a toilet\nGirl tennis player getting ready to serve ball. \nPerson on skis on a snow covered path.\nA man holding a baseball bat preparing to swing it\nThe motorcycle racer leans down to the road while making a turn. \nBlack and white picture of two blond women walking on beach with surf board.\nA white horse standing in an open field.\nThe adjacent computer screens near the keyboard show different displays.\na baseball player holding a bat on the field\nA child holding a knife admires a pizza. \nA young man in full racing gear standing by his bike.\nA small bath room with a sink and toilet.\nDecorative pedestal water fountain located near the beach. \nA vase of white roses in front of a bookcase.\nan image of a cat sitting on a couch\nA man on a skateboard on a ramp. \nHamburger with lettuce and tomato on a plate.\nA walking street sign under traffic light covered with stickers\nThe man is holding his tie with his right hand.\nA bus is traveling along rolling hills in the countryside.\nthis is giraffes standing around in the dirt\nA tray of fruit and a muffin on a table.\nA sandwich filled with meat with a knife sticking out of it.\nA cat is asleep on top of a bed.\nA couple of silver cars parked around a fire hydrant.\nThis man is cutting a large sheet  cake at the party.\nA train station with a blue train at the station.\na boy and girl are eating doughnuts in bed\nA evil little doll hovering over a pile of small pumpkins.\nA street sign is affixed to a traffic light and a tree looms in the background.\nThe personal pizza is next to a plate of french fries.\nA small  red bowl with ingredients in it\nMany blowup kits being flown at a beach\nA crowd of people sitting down next to each other.\nA bunch of cows grazing in a dry field together\nA waffle with cream and strawberries sits on a plate. \nThe man is sitting on the arm of a bench near a woman.\nThe tablet is next to a pair of scissors. \nA city street filled with traffic next to buildings.\nAn old clock with Roman numerals in a tower.\nA toilet seat behind a tree in the open outdoor.\nA shiny metal pot filled with some diced veggies.\nA plate of food with a bite taken out of the hamburger.\nA man in a parking lot talking to the driver of an army green pickup truck.\nA large cake sitting on a yellow plate covered in raspberries.\nA woman eats some food at a social gathering on the patio.\nPerhaps he's a magician who will pull a rabbit out of that hat.\nAn indoor train platform and tracks with a passenger train pulled up next to the platform.\nTwo dogs are playing together on the grass\nTwo lounges are pictured next to a beautiful private pool.\nA white vase filled with roses sits near a fridge. \nA skateboarder doing tricks in the air on pavement\nA wooden bench on a fence and plants surrounding it\na large teddy bear that is next to a log\nA Wii remote is in s hand with a thumb on a button\na car moving on the street an ad bike parked outside\nTwo dogs who are playing with a Frisbee. \nA white and grey cat laying on a pair of shoes.\nA woman cutting a young mans hair on the deck.\nThe city is filled with one way streets.\nsome boats are in the water buildings and a person\nTwo young people holding tennis racquets on a tennis court.\nAn Amtrak passenger train is making it's way down the tracks next to some large hills.\nA couple of zebra standing on top of a lush green field.\nA black and white cow stands in a paddock with firewood in the background.\nA large black bear traveling across a grass covered field.\nA white bathroom sink sitting under a bathroom window.\nA little boy playing with a toy sword in a park. \nA sandwich cut in half next to a drink.\nA train on the tracks out in the country \nThe picture of three buses on a lot.\nA small living room with couches and an old tv\nAn old lady smiling in a pink kitchen.\nA blender sitting next to a field full of grass.\na woman is striking a ball with a racket\nA man in the air on a snowboard above a blue bed. \nTwo cats are laying down together sleeping. \nA man standing near a fire hydrant next to a city street.\nThe image is a closeup of a computer keyboard.\nA dog sitting on the grass looking at a fake cow that is lit up at night.\na close up of a dog sitting wearing a hat\nA passanger bus passing under a stoplight at dusk.\nThe woman is playing tennis on the court. \na plane flys through the grey sky \nA thing is in the outline and it shows up like something  \nA pile of oranges with a pile of apples on top of them .\nA red bus on street next to buildings.\nA picture of a boat being built inside.\nSeveral beached boats on the sand with orange balls hanging over the sides.\nA wooden bench sitting in front of a white building.\nA woman crossing the street carrying a surfboard under each arm.\nTwo brown teddy bears wearing costumes standing next to each other.\nA decorated hair salon cake with brush, comb, razors, scissors and shaving cream \nA couple of red trains parked in a train station.\nThe girl was on a court playing tennis with her mom.\na picture of a nice dressed man in front of a car\nA woman and little girl with a doll holding an umbrella.\nThis intersection has more pedestrians than vehicles near it.\nranodm bus pulled over on the side of the road\nA colorful fighter jet flying through a blue sky.\nBlack and white photograph of elephants walking through a street.\nCluttered apartment with packing being done with clothes\nA man standing next to a dummy wearing clothes.\na blonde cat is standing by a laptop\nA white bowl filled with lots of green broccoli.\nA grocery basket full if fruit and vegetables walking in a store \nA little girl is mixing in a  kitchen bowl while standing on a chair.\nA couple of brown cows standing by the side of a road.\nA vase filled with white flowers on top of a table.\nThree women sitting on top of a couch next to a black cat.\nOld man in a dress white shirt and black bow tie. \nlots of people are on skies on the snow.\nsome people playing with some kites on a quiet beach \nCLOSE UP SHOT OF A BOTTLE AND A WINE GLASS\nA double decker bus with a man posing by the door.\nA living room with a brown sofa and large window\na little boy is on the beach sitting on a board\nA young man holding and looking at a large orange bone.\nFive men are selling a large amount of bananas.\nA room filled with a metal rack with white pieces of cloth resting on it.\nA man riding skis down a snow covered ski slope.\nA person riding a surfboard doing a flip over a wave.\na couple of men that are posing for a picture\nA young man holding a catchers mitt next to another boy holding a bat.\nA passenger train that is leaving from the station.\nA modern formal dining room looks out glass doors to woods and ornamental grass. \nA white refrigerator freezer sitting next to a stove top oven.\nTwo little boys in vests with a football.\nA man standing on top of a green soccer field.\nSome very cute sheep by some very big trees.\nA giraffe standing in the grass near a tree.\nA group of jets flying overhead in tight formation.\nA woman making sandwiches on a kitchen counter top.\nA room with a couch, chair and television.\nA clock with statues on either side of it under a white sky.\nAn SUV with pennants and decals supporting a sports team\nA giraffe standing outside of two white doors.\nA living room has a couch and a rustic chest for a coffee table.\nA guy with a scissors cutting the cast off the arm of another guy.\na young boy slices a pizza in the kitchen\nA cat drinking from a white bowl of water.\nA girl eating an apple and reading on a bench.\nA microwave and counter in a small room.\nA dog standing in a kitchen with a toy. \nA group of baseball players standing on top of a field.\nA chef is in a restaurant making sushi.\nA monorail train is traveling on a track.\nA stop sign with a persons thighs on it\nA group of people exercising on the beach.\na living room with a couch a table and a chair\nGuy out in the water rides through a wave on his surfboard\nSeveral women gathered together posing with 6 pizzas in take out boxes.\nA cook standing in a professional kitchen preparing food.\nA plate topped with a cheesy pizza on a  table.\nA woman playing game with Nintendo Wii controller and Wii Fit board.\nTwo zebras walking together with trees in the background.\na group of sheep are all outside in the soil together\nBaseballs players sliding to base and jumping during the game.\nThe two teens are playing video games in the rec center.\nTwo street signs are seen on a small street.\nA couple of giraffe standing next to a tree.\ntwo children sitting at a table with bananas \nA man with hoodie skateboarding on a lonely road.\nA large group of sheep stand near the water all looking down eating\nA bird with a long neck sitting in a tree filled with leaves.\nThe woman is holding the dog between her legs.\nA very clean kitchen has stainless steel appliances.\na desk with a monitor and keyboard and mouse\nA red stop sign sitting next to a light pole.\nA man riding a motorcycle down a busy city street.\nBaseball players in striped pants huddle together to talk.\nSeveral cows huddled in a patch of dirt. \nAn orange bowl filled with lots of noodles and beef.\nTwo jets fly overhead while the crowds look\nA car that is slightly driven off the road.\nRed and white commercial truck parked on open lot.\nAn open window overlooking a city in a bedroom.\nThree zebras, possibly Jacksonville-Grevy, two facing camera with one in background.\nA man in a uniform kicking a soccer ball on a green field.\nTwo large birds walking through a field together. \nA man in black shirt and tie standing next to fence outside.\nA carton of brown eggs sits amid fresh produce\nA display of various hot dogs in serving platters.\nMan wearing suit with sign surrounded by people. \nA man in black tie sitting next to a brown dog.\nPicture of an exterior place that looks wonderful. \nThe lady is outside in the sun eating.\nA giraffe sticking its head in a feeding basket with trees in background.\ntwo big sea crabs some greens and noodles and two drinks\nA couple of cats sitting on top of a couch.\nA herd of sheep laying next to each other on lush green grass.\nA police vehicle is driving on a city street.\nA swimming pool with lanes marked for racing on the water's edge across from a large city.\nA zebra standing next to a  zebra laying on the ground.\nA man standing next to a boy in front of a tree.\nThe rams are sitting on the rocks and boulders. \nOLD RUSTED BOXCARS STILL SITTING ON A SET OF TRACKS\nA man who is sitting in an office chair next to a laptop computer.\nFloor length urinals in a tiled public restroom.\nA bathroom mirror with a chrome towel holder and faucet and a window above.\nA white dog having its hair blown dry by a man.\na man well dressed posing at the photo\nAn adult and baby elephant grazing in the green grass.\nA tall building sitting next to a cathedral.\nA bathroom with a white toilet sitting under a window.\nThree plates, spoons and glasses on a dining table\nEleven carrots that were cleaned on a cutting board.\nThe bike appears to be chained to the railing.\nA baby girl chews on a stick with a teddy bear in hand.\nHundreds of people gathered around looking at motorcycles.\nA green bowl of soup sitting next to a long spoon.\nA giraffe's head is pictured in this clear, colorful photo.\nA train sitting next to a platform in a tunnel.\nA bathroom with a white toilet and a sink net to a shower.\nA green bus parked in a parking lot next to others buses.\nA beach area with several chairs and umbrellas.\nSome very pretty brown cows eating near a fence.\nA bird flying in the ocean with the sun in the background.\nA black and white cat laying on top of a desk.\nAdvertising photograph of a surf-themed birthday cake from a bakery\nA few sliced of olive pizza sitting on a white plate.\nA parking meter with a wooden stick figure on top.\nA woman in a wet suit is carrying her surfboard in the water.\nTrio of roses ascending from a white table top canvass\na cat playing with a stuffed toy on the carpet\nConstruction worker holding a stop sign on the side of a road on a sunny day.\na group of cars parked on a street nest to street signs\nA doll in a dress standing between two parking meters.\nA clock at the top of a tower with a statue in front.\nThe man on the toilet is reading the paper.\nA man holding and pointing to a jumbo remote control in clear package in a store aisle.\ntwo kayakers enjoy the clear open water \nA herd of sheep grazing on a lush green hillside.\nA small formation of mounted guards practicing a routine.\nA clock mounted on a stove top oven.\nTwo men riding brown horses down a small road.\nA bird is perched on the arm of a bench. \nA young man holding a bottle of beer while wearing a suit.\na train that is on some kind of tracks\nA herd of cows walking down the street.\npeople standing on a beach with a kite flying in the air\nA clock hanging off the side of a  all building.\na room showing a fridge well cleaned and a microwave\nA table of desserts that include cakes and pastries.\nA giraffe eating leave from a small tree.\nA baby elephant walking in sand at the zoo \nA little girl standing beside a dirty fire hyrdrant\nA red street sign hanging off the side of a building.\nA herd of zebra and buffalo standing on a dry grass field.\nA man eating a layered chocolate cake with chocolate frosting.\nA building with a sign that reads One India Buildings.\nassorted animals like giraffes and zebras standing by a river\nA white plate topped with a pile of fries next to a cut in half sandwich.\nA group of people out on a boat and a man on a jet ski \nA town square is full of people riding their bikes and skateboarding.\nA woman para sailing on a beautiful crystal clean ocean beach.\nA couple of soldiers standing on top of a boat.\nA pizza is prepared with cheese, tomato sauce, and broccoli. \nMan in white suit, riding white horse in ceremonial procession.\nA couple flying a kite at dusk on the seaside.\nThe cows are looking at the orange laying on the post.\nA giraffe standing on top of a lush green field.\nA table at a function with a note saying \"Reserved for Adults\"\ntwo females in soccer uniforms kicking a soccer ball in a field\nA young boy looks in the fridge with mom and grandma\nA scene from the zoo with giraffes in an enclosure\nA bunch of bananas are sitting on table at the market.\nA man sitting on a bench holding a wooden guitar.\nTwo zebras in the zoo by some trees.\nA selfie of a woman laying in bed.\na cat is sitting on a wooden bench outside\nA large brown and beige cat is lying down in a suitcase.\npeople walking and skiing along part of a hill\nTwo adults sit with two children playing video games.\nA couple of plants sitting inside of a pot near a window.\nA polar bear with his chin raised lies on a rock.\nA man attacked a group of children armed with shields and spears.\nA hand holding a piece of pizza with more pizza on a plate.\nA baseball player is getting into his batting stance.\na man standing on the beach with a long colorful kite \na man and female standing side by side with a cake cutter in their hand\nAn airplane on a runway with snow on it.\na small child and older adult sitting on a couch reading a magazine\nThe kitchen features a table in the middle of the room.\nWoman holding a purse and walking a dog passing in front of a big building. \ncows are laying down on a patch of grass\nA cart full of bananas next to boy in red hat.\nA photographer is setting up his lighting equipment. \nPhoto of a two bathroom fixtures and a vinyl shower curtain.\nThree young boys dressed in formal clothes, two are standing one is sitting\nA kitchen filled with hard wood flooring and appliances.\nSigns along a street on a rainy day.\nA blue sky and a line of hills loom in the distance before a pair of young skateboarders, one of whom is much further ahead of the other.\nA kid sitting at a computer wearing headphones.\nA dog with a hat on top of his head.\nThe blue trailers are being hauled by a train.\ntwo people in a kitchen making food on a table \nA man in blue shorts putting together a blue and purple kite on a blue towel at the beach. \na man in red is playing a baseball game\nA black cat with white paw laying in a hanging cat bed.\nA street scene looking down at cars and motorcycles parked.\nA man standing in a living room with a woman and a child.\nA white toilet sitting next to a window in a bathroom.\nA cowboy leads a cow through a paddock.\nA piece of bread with a hot dog in the middle is shown.\nA small dog is jumping into the air and catching a frisbee.\nTwo zebras and two wildebeests stand next to a watering hole.\nA giraffe is walking up a grassy and rocky hill.\nA flat screen TV sitting on top of a TV stand.\nA clock mounted on the side of a building.\nA plane parked on the tarmac with with a connection for loading attached to it.\nA bear standing in grass next to rocks, behind a wire fence.\nTwo boys are standing in front of a train with backpacks. \nA couple of men sitting down to have a meal.\nA shot of an elderly man inside a kitchen.\nA clock is near a light post on a street.\nA person relaxes with a laptop on a balcony overlooking a street.\nA peron riding a surfboard on top of water.\nA man taking  a swing at a tennis ball\nA woman holding a birthday cake with lit candles.\nA lady with a flower in her hair taking of picture of herself in a mirror.\nThe clock has been made with great detail.\na couple of zebras are standing in a field\nA group of six cinnamon rolls sitting inside of an oven .\nA kitchen with granite counter tops and a large oven.\nA broken truck hauling a lot of junk. \nit is raining and a man in a rain coat is standing outside\nA group of women and children walking across a street.\na group of zebra stand in a grass field\nA man wearing a brown suit and brown tie.\na green plant  is in a glass vase\nA man in a wet suit riding a wave on a surfboard.\nA young boy wearing a tie while using a cell phone.\na white and blue jet is flying in some clouds\na collage of a skateboarders trick on his skateboard\nA boy swinging a baseball bat at a ball.\na tennis player on a court wit ha racket\nA bunch of kids skateboarding off of various objects in a skate park.\nA group of bicycles on a subway train.\na person cutting a cake on a table \nA group of people that are standing in a living room.\na close up of two cups on a table \nA bronze horse and fountain decorate this old palace.\nA pitcher throws a ball to the batter in an open field.\nA boat that is sitting in the water.\ntwo street signs on a red and white pole next to street.\nA large crane truck driving on top of wet mud.\nA group of people racing down a snow covered slope.\nA wood table topped with a laptop computer next to a couple of boxes.\na woman carrying a handbag and tennis racket walking her dog\nA fluffy sheep stands in a large field and looks at a fence.\nA group of brown teddy bear sitting at a brown wooden bench.\nSome people sitting at a table eating in a restaurant.\nA mall girl and boy sitting in front of a pan topped with pizza.\nA cat standing next to a plate on a computer.\nA white kitchen with marble countertops and stone floors.\nA white city bus traveling down a street with traffic.\nTwo zebras made of Lego stand in a field.\na young child in glasses is wearing a baseball glove\nA man riding a skateboard outside of a building.\nA man holding a tennis racquet on top of a tennis court.\nA couple of black cats laying on top of a bed.\nBullet holes in a stop sign in a rule area\nA man tosses a red frisbee at an unknown object.\nA pair of small dogs lying on a bed.\na baseball player getting ready to run to first base\nan oven and a small table in a home kitchen\nSome fancy dressed folks on some horses in a crowd.\nA bowl of pizza, a bowl of green beans, a bowl of carrots, and a bowl of bread and berries.\nThe bathroom is multi-colored containing black, white, and green. \nA photo taken in a car looking at a dog in the back seat.\nLarge clock tower sitting in front of a park. \nA train with a yellow front is on the tracks.\nA yellow and red train on the railroad tracks.\nA toddler in a yellow jumper is holding a teddy bear.\na shop with a bunch of signs sitting out front\nTwo men holding onto a knife about to cut a cake.\na couple of anmails standing next to a truck\nA tall giraffe standing next to a Barron tree in a forest.\nAn elaborate memorial and clock in a shopping area\nA white cow standing in front of a pink building.\nA man sleeping next to a dachshund puppy.\nChild wearing a helmet and holding a tennis racket.\nA yack and a baby in the forest with long white horns\nOrnate cabinet displayed next to kitchen sink in residence.\nA man rides a black motorcycle around a curve.\nA white statue holding open a newspaper while sitting on a bench.\nA large cat sitting in a bathroom sink under a mirror.\nA brown bear runs in the grass beside a body of water.\na couple of people are standing outside with umbrellas\nA large black and brown dog sitting in  a dog bead.\nA bunch of glasses that are sitting on a table.\nA group of people descending a snow covered hill.\nA large blue bench sitting next to bottles.\nA baseball player swinging a bat near home base.\nA person riding skis across snow covered ground.\nA chocolate cake is next to a bottle of beer.\nA man ridding a horse and leading another horse through some water.\na group of giraffes that are inside the fence\nA cat that is by a bicycle wheel.\nThree elephants and a zebra standing outdoors together.\nA table topped with apples, oranges and pears.\nA fluffy Siamese cat sitting on a table next to a computer monitor.\nTwo men listen as another man speaks to them.\nA bunch of doughnuts that are on a plate.\nA woman standing next to a pile of luggage.\nA young man in a hat holding a cup of coffee and a pastry.\nA sidewalk lined with parked cars next to tall buildings.\nA person in a green jacket skiing down a slope\nA young man skateboarding while listening to music. \nA couple of cats standing on top of a desk.\nA power line with lots of different components.\nA display in a grocery store filled with broccoli and peppers.\na piece of luggage has a tag on it.\nYoung man holding a tennis racket while standing in front of a fence.\nA man standing in front of a counter talking on a phone.\nA parking lot is on the side of the ocean.\na man trying to zip a woman into a suitcase \nGroup of people in dress clothes sitting around a conference table. \nA dog sitting on a sandy beach next to the ocean.\nA brown dog laying next to a bottle of wine\nA man is typing at his laptop computer.\nA mother looks after a baby elephant in the wild.\nTwo messy toilet stalls with toilets where one lid is raised. \nA man swings a tennis racket and falls onto the grass.\nA group of people standing around sheep on a field.\nan image of a man with a dog on his back\nThe little girl is watching a polar bear.\nA red vase sitting on top of a glass table.\nPeople are standing on top of a snowy mountain.\nA yellow fire hydrant with a wet paint sign.\nA bird with red eyes perched on top of a tree branch.\nPlayers at home plate during major baseball game.\nA man on skis is posing on a ski slope. \nA pizza and grapes sit on a tray next to a drink. \nA traffic light with a pedestrian crossing signal.\nA european city in nice a sunny bright day\nA hot dog is covered with kraut and ketchup.\nA pitcher winds up to throw the ball.\nA skier stands posing on a flat area in front of the lodge.\nA bed covered in pillows and a comforter.\nFour picture collage of a snowboarder wearing a red jacket and brown pants going down a snowy mountain side.\nA lot of blue and yellow umbrellas sitting under a clock.\nThe view from a platform of the surrounding trains and tracks.\nA red sign sitting on the side of a road.\nA man opens his mouth wide and holds a piece of food.\nFour young men in a sitting area stand looking towards the opposite side of the room.\nA red fire truck driving into a parking lot.\na couple of people are sitting on a boat\nthere is a man that is eating a very large slice of pizza\nA walk in shower next to a white sink.\nA picture of a person that is holding some food.\nA child is shown eating a scoop of yogurt.\na colorful double decker bus doing down the road beside a semi\na giant rainbow piercing the sky while zebra's eat \nA woman takes a picture of herself in a mirror placed on her bed.\nA man in black shirt riding a skateboard on a sidewalk.\nA pile of oranges with on sliced on top.\nA flock of ducks walking along a muddy road.\nA woman riding a bike past a store.\nA couple of skiers racing on a snow covered hill.\nLarge tower with clock on the front of it. \nA pick up truck filled with wood in it's flat bed.\nA sign siting next to a parking meter near a parked car.\nA giraffe in an enclosure standing by a tree.\nA commercial Hawaiian airlines airplane from side view on pavement of airfield with a building in background.\nthe wall is green and there is a pot on the stove\nA man walking on a sidewalk while holding an umbrella.\na person in a white t shirt cooking on a stove\nA plate of food with a cream sauce on it\nA bunch of people riding kiteboards on top of an ocean.\nA man ina  yellow rain coat waits in the rain\na take out box is filled with food near some ketchup.\nA person standing next to the water and a umbrella.\nA man in a wagon drawn by two draught horses.\nA table topped with a train styled cake.\nA house's address is visible through a cracked windshield.\na kid is doing a skateboard trick down some stairs\nA pile of rusted metal junk laying in the weeds.\nthere are three vases made of clay on a table\nDigital painting of a tabby cat and large dog touching noses.\nA young man with a laptop bag travels on a skateboard.\nAn elephant swimming in a lake at sun set.\nA young man swinging a baseball bat over a base.\nA double decker bus is shown that is not in service.\nA man pitching a baseball from a mound on a field.\nA cheesy pizza sitting on top of a table.\nA red stop sign next to a blue street sign.\nA mug sitting on a warmer next to a mouse. \nThis cake is decorated with a graph on it. \nA man and woman with surfboards on the sandy beach near an ocean.\nA table topped with a book, umbrella and other items.\nA man in black jacket walking on beach with a clock tower in the distance.\nA picture of a teddy bear with a map behind it.\nFathers and children playing sports in a back yard\nA little kid standing in front of a paper plate with pizza.\nLots of boats anchored in a harbor. \nthere is a cat sitting on a wooden chair\nA kitchen filled with appliances and track lighting.\nTwo and a half hotdogs on paper plates are on a counter. \nA kitchen with a stove, sink, microwave and various other items.\nA rear view mirror has the reflection of a truck.\nA group of women standing next to each other in an office.\nan image of a woman smiling at the camera and behind her is a giraffe\nthere is a small black train and people looking at it\nWhite flowers sit on a ledge next to vases and candles.\nThree back packers with heavy packs and a dog hiking on a hill side.\nThere are people watching other people play table tennis.\nA banana, peanut butter, and crackers is sitting on a white plate. \nA blue and white VW bus driving down a street.\na couple of elephants are in a pin\na white living room with blue furniture and decorations \nBrown horse pulling a white and red cart on a street.\nA young boy holding a tennis racquet on a court.\na close up of a plate of food consisting of pasta and vegetables\nA zebra standing on a lush green field.\nA duck paddling through a shallow body of water.\nPlate of mixed colorful vegetables sitting on white table. \nA red and yellow train with two very large eyes.\nA toilet bowl with a tall white tank has a plunger type flush button.\nA boy draped in a blanket holds a remote control on a couch\nWild bird standing out at the water's edge\nA small white bird standing on top of a pond of water.\nA cat sitting in a blue and white bag. \nA person on a horse chasing a cow.\na man sitting in a chair watching tv\nAn airplane on the runway either just landed or ready to take off.\nThe young woman seems to be very happy about her food.\nA small kid and a man with some food.\nA dog sitting in front of an open door looking outside.\nA man is performing a trick on skis.\nA brown bear sitting up against a tree on a green grass covered field.\nA man sitting in the snow riding a snowboard.\nThree elephants walking along a river near a jungle.\nthere is a very colorful bus coming up the street\nA woman is sitting outdoors eating some food. \nThree people flying kites at the beach, with one kite on the ground.\nLooking down at a meal of freshly barbecued food for two\nA woman walking across a street holding a pink umbrella.\na couple of teddy bears that has a wine bottle near by\nA couple of women standing next to each other in front of a store.\nA sign that is on the door of a refrigerator.\nA man with skis and ski poles is standing next to a hill covered in snow\nA man sits at a desk and uses a laptop on it\nHot dogs with ketchup and plain chips \nA blue brush gliding through beautiful brown hair.\nA woman is crossing the street with a bouquet of flowers.\nA large white polar bear swimming in a pool of blue water.\nA cat sitting on a wooden bench outside.\nA commuter train movig non bridge over water\nTHERE IS A PARK BENCH FACING A SNOW COVERED MOUNTAIN \nA bathroom sink with lots of lights above it.\nA woman in a dress is standing on a gravel road holding a suitcase.\na clean bathroom with tiled walls and a sink\nA kitchen filled with wooden cabinets and a microwave oven.\nThe two young children are playing with a plastic chair.\nAthlete on red clay court preparing to return ball.\nA train traveling down tracks next to a train station.\nA car parked by a parking meter in front of a building.\nA dark city street lined with stone buildings\nA black cat sits contentedly in a suitcase.\na compact kitchen with stainless-steel cabinets behind glass blocks\nTwo elephants are eating some leaves by the road.\nA stove top oven sitting next to a tiled wall.\nThe red tow truck is pulling a yellow double decker bus.\nA sandwich with tater tots, ketchup, vegetables and a spoon.\nYoung man on top of a snowboard wearing maroon jacket. \nA glass dining table with a cutting board full of cut veggies.\nA family of grey elephants walking through a lush green field.\nA TV sitting in a living room on top of a TV stand.\ncows inside a pen reaching for a woman\nA group of people standing around a woman flying a kite.\na baseball player is running down a field\nStacked washer dryer in kitchen near fridge and stove.\nA person on a street next to a motor bike.\nA person holding up a smart phone in their hands.\nA young woman sits on a park bench wearing a hat.\nA man sitting on the ground looking like a zombie.\nCherry tomatoes, cheese, beans and broccoli on a table \nThis is a city street with a lady carrying an umbrella\nA hotel room complete with a bed, desk and television.\nA full view of a nice and comfortable bed with pillows. \nThere is a woman holding a remote control and a man looking at it.\na guy and his dog sitting on a surf board\nA wall with different types of decorations of art pieces. \nA table filled with plates of food sitting next to each other.\nsome kids in a bedroom with a lot of beds in it \nA train is traveling down the train tracks during the day.\nA horse standing in front of a fence outside of a building.\nTwo elephants walking on cement next to wall\nA group of officers are on horseback traveling in formation.\nTwo men walking through a forest on a trail.\nA man riding a skateboard at a skate park.\nA traffic light under a cloudy blue sky.\nTwo men jump off the ground while enjoying a game of soccer.\nMany different dishes of food on a table.\nA car with a snowboard on it's ski rack parked in a foggy parking lot next to two cars with empty ski racks. \nthere is a man that is holding a phone wearing a hat\nA view of a bed, chair, and window treatments.\nLaptop setup with desktop spread across two screens.\nA man sitting on the head of an elephant.\na white blue and red jet against a blue sky\na yellow pipe next to a bricked pavement and a bush.\nA black and white photo of city street with cars parked.\n1 military jet fighter flying in formation alongside a 1 military propeller pilot. \nA beautiful woman playing with a small green bird.\na plate with some veggies and meats on it \nA group of people in a living room playing Wii.\nA busy street with lots of car traffic.\nThere is a man throwing something at a target.\nA blue, white and red fire hydrant sitting on a sidewalk.\nA white demon hovering next to a red stop sign under a one way street sign.\nA large white double decker bus traveling past a tall building.\nA picture of dinner of steak and potatoes by a keyboard.\nThree people are loading a horse into a horse trailer.\nA group of men using poles to push themselves on skateboards.\nA person sitting down eating a sandwich next to a street.\nLaptop and desktop computers next to each other on a desk. \nA crowd of people standing in front of a window.\nA slice of cheese pizza on a white and gold plate.\nMan standing under banner that reads \"Run for Rights\"\nThree laptop computers and a desktop computer sit next to each other.\nA slice of pastry with a cream filling.\nThis is a picture of a kitchen in a poverty area of a town.\na table with many plates on it with a bread basket\nA man posing for a picture beside his bike. \nA couple of men standing near a sailboat.\nA plate with chicken,carrots and mashed potatoes with silverware.\nA man is playing with a Wii controller as his friends watch.\nA hamster in a glass container with a piece of broccoli. \na person riding a horse with trees in the back ground\nA stove that is decorated with lights is displayed in the evening.\nA group of friends standing next to each other.\nA man is walking towards his kite on the ground. \nTwo black and white dogs in front of an abandoned truck in a wooden area. \nA young black bear moves across a grassy field.\nThe back of a man has something in mid air he's looking at.\nClose up from behind of a young giraffe standing with front legs splayed and head the ground by a fence outside.\nTwo brown and black birds staring on a curved wire.\nAn old, weathered street sign that says One Way\na male with glasses and a green helmet is eating a banana\nA person riding a skateboard on top of a blue floor.\na young child holding a ball and a catchers mitt.\nA black and white image of a young man waiting to take his swing. \nA cat puking into a white toilet on top of a bathroom floor.\nA family climbing up the side of a snow covered mountain with ski equipment.\nTwo zebras pushing against each other in a field. \na person at a table with a plate of food\nA table with a plate that has food on it and a mug. \nA large clock tower in the middle of a street.\nSheep in field by barn with fence and car.\na green and white bus pulling up to a bus stop in a city\nThis person is about to eat a banana.\na clock tower with many buildings in the back ground\nA life-size palace guard-dressed teddy bear outside a shop \nCars parked and driving in front of a school.\nA traffic sign that has a picture of a man holding a surfboard on it.\nA dimly lit dinning table with a flower centerpiece \nA large passenger jet sitting on top of an airport runway.\nA large airplane and a truck next to a building.\nA couple of people in the snow on some skis.\na guy falling backwards during a jump on a skateboard\nA white piece of cake sitting on top of a plate.\nA large white bird standing next to a large body of water.\nA man in a dress riding a tiger motorcycle.\nBanana bunches are shown on top of a truck.\nA bird is standing on the small branch outside. \nA lush green field with people flying kites over it.\nElderly man sitting on a bench facing the beach. \nA collage of boys dressed as baseball fans.\na group of people sit on top of a grassy hill \nA variety of produce on a table including carrots.\nStainless steel refrigerator in kitchen area with several spaces covered with green curtains.\nA teenaged boy poses on the beach with his surfboard.\nThree giraffes grazing in a forested area. \na small kitchen with a lot of counter space \nA cat curiously looking sideways at a television.\nA man playing a game of tennis on a tennis court.\nA small cat lies on a fluffy white blanket.\nFront diagonal view from hips up of a woman holding a beer out at side, face to face with a man wearing sunglasses with his tongue out, both wearing neckties, by a wooden wall.\nThree children taking a photo together in a back yard.\nA room with a toilet, a door and shoes in it. \nA woman sitting in a chair at the beach. \nA beautiful woman and a man with a beard holding Nintendo Wii controllers.\nA microwave oven sitting on top of a kitchen counter.\nA small herd of cattle in a large field.\nThere is a person in the picture by itself. \nA herd of sheep standing next to each other on a lush green field.\nPlates  of food and glasses of wine sitting on a table\nA bowl of noodles, meat and broccoli with a fork.\nsome planes on an air port run way\nA woman is standing in front of a large red and white sign.\nA person sitting at a table with a carrot.\nA person trying to get on a train, but the door shut.\nA group of people crossing a street next to tall buildings.\nseveral food items on a table, including soup, salad and a meat entree.\nA young boy riding a wave board in the water\nTwo people laying on top of green grass under a white umbrella.\nA group of women standing at the side of a building\nA man looking through a book on top of a table.\nA stop sign at an empty intersection in the country side.\nA young boy holding a kite while running across a field.\na person swinging a baseball bat at a baseball\nA cat has its paw on a game controller remote.\nA person skiing in an open area of snow.\nA man wearing sunglasses and eating a pastry.\nMiniature fruit and chocolate chip cookies are ready for the doll house occupants.\nthere is a old rusted train sitting on the ground\nA tray holding various boxes and bubble wrap.\nA man standing on a patch of grass near a neon frisbee.\na checkers board sits in a jail cell\na crowd of surfers are all on a beach\nA motorcycle parked in front of a graffiti covered building.\na couple of girls embracing each other with a teddy bear.\nA man without a shirt wearing a neck tie.\na couple of guys that are in some suites\nA large crowd of motorcycle enthusiasts at a motorcycle event.\nA stack of different electronics devices on a table.\nA person bending over a table with a lamp on it.\nA baby boy sitting at a wooden table in front of a white plate.\npeople in a store looking at old looking items on a table\nA mean leaning against a metal rail next to an airport.\na lift truck sits parked next to a pine tree \nA small dog sitting next to a chew toy that looks like a lion.\nA blue cake has an orange bear with a red shirt on top.\nA large truck stops on an infrequently traveled wooded road.\nTwo red buses, headed to the same place, are right next to each other on the road.\nA hand holding a remote control in the palm.\nSkateboarder performing trick on side of ramp while his shirts off\nA transit bus stopped at a street side that's filled with snow.\nA man with a skateboard flying a kite.\nA person standing on the curb by a skate board.\na young boy standing in front of a counter with dougnuts \nA cat next to a television in a room.\nA clear bowl of broccoli and chopped nuts.  \nA woman standing next to a sign on top of a snowboard.\nMen standing in their boats that are in the water.\na piece of broccoli laying on a couch\nnice picture of two signs in front of mountains \nA couple of bathrooms one with a standing toilet next to one with a sitting toilet.\nA baseball player swinging a bat on a baseball field.\nA man in uniform prepares to kick a soccer ball\nA person with skis in the snow with two dogs.\nA boy is eating donut holes while sitting at a dinner table. \nA vase filled with white and yellow flowers.\na woman holds a phone to her ear \nSiblings playing with toys on the floor of a living room\nA car stopped by three cows crossing a road.\nSmall group of giraffes traveling through dense green brush\na clock that is sitting on top of a table\nA group of sheep in grassy area next to trees.\nComputer desk with two desktops and a television with large mess of wires behind\na lady and three kids laying on a bed and reading.\nA boat parked in a field with long green grass.\nA persons hand touching a plate full of food.\na couple of different types of signs on the outside\nA couple of women standing on a tennis court holding racquets.\nA large black dog sitting on the sandy with a ball.\nA cat sitting next to  a wii controller, upside down.\nIn this scene we see a person flying a kite with a flag attached.\nA truck that is sitting in the street.\nA cat laying on top of shoes on a floor.\nA group of people riding snowboards down a snow covered slope\nA traffic light in front of a road through a tunnel.\nA cutting board topped with vegetables and a jar.\nTwo people in an ocean playing with a yellow Frisbee. \nFast food burger and fries sitting on the wrappers.\nA traffic light by a Lutz road sign. \nA plate holds pasta and broccoli in a light sauce.\nA woman on a brown and white horse rides near trees.\nTwo young girls at a table using a laptop\nPortion of eggs, bread, and vegetables sitting on a plate. \nA black motorcycle parked in front of trees.\nThree small items sit on an outside bench. \nA well lit living room with sofas and coffee table.\na brown and white dog lays on a bed\nA store bought pizza baking in the oven.\na child cutting a soccer themed cake on a table \nA mattress laying on a floor next to a wall.\na close up of a person holding a wine glass\na blue boat in the water and a factory and a dock\nA family standing next to each other while holding frisbees.\nA crowded ski slope filled with people riding snowboards and skis.\nA long train traveling through a train yard.\nA stop sign on the corner in front of a row of stores.\nA man standing on top of a snow covered ski slope.\nA brown bear trying to open a picnic cooler. \nA stuffed teddy bear is sitting with the bananas\nsome people standing around a line of tennis courts \nThe lamb is nursing for milk from his mother.\nA distant airplane high up into the sky.\nFour young men in a living room, playing golf on a Wii.\nA man is grabbing the tie of another person that appears in the mirror.\nA built in desk with two mid-century modern chairs.\nMounted horseback riders going down a street in a parade.\na man sitting in a restaurant eating a meal with others in the background \nA bird perched on top of a tree filled with leaves.\nBrown dog laying on top of a bed with white sheets covering him. \nan equestrian riding a horse jumping an obstacle \na blue truck and a male in a purple shirt and a tree\nHappy people are dressed up and holding umbrellas.\nThree white castle hamburgers sitting in a white castle food bag.\nA woman sitting at a table having a drink.\nThere are meats and vegetables on a flatbread\nA dark and gloomy winter day in the city\nA display of teddy bears on a table top.\nA woman walking down a street talking on a cell phone.\nSome zebras are seen grazing in the field.\nA group of people walk with a surfer down a beach\nEntertainment room with rack of dvds, tv and seating area.\nA large group of people standing in the street.\nAn older woman playing Wii Bowling with another girl.\nA plate of cooked green vegetables and hot chilies. \nA tennis player is biting his towel as he walks to the back of the court.\nA row of wooden poles with seagulls resting on them.\na living room with a brown couch by a big window \nA tray of food with an asian entree, rice, vegetables and a drink.\nA bathroom that has a toilet and a trash can in it.\nThese children are sleeping in the same bed.\nArtistic black and white photo of man on a motorcycle.\nA baseball player holding a bat on top of a field.\nA large green airplane in a stationary position.\nTwo women each feeding a giraffe at their enclosure.\nA group of people waiting to cross a traffic filled street at a crosswalk.\nA group of people standing next to a portable golf course.\nA blue car driving down a street past parked cars.\nTwo signs that are on a pole in the snow.\nA city area with various signage and busses.\na big bus that has some people by it\nA vase with colorful flowers is sitting on a glass table.\nA baseball player holding a bat while standing on a field.\nA group of people standing outside of a small airplane.\nA oool lookign stop sign by a murky bog hill\nThe single train car is painted purple and yellow.\nSome very pretty zebras walking on a dirt road.\nA local hero rides through the streets of town on his motorcycle with stuffed animals.\na couple of red lights are on a pole\nA group of statues holding metal umbrellas near flowers.\nThe view from the commercial airplane includes the wing and mountains and water. \nGroup of people watching kites being flown. \na big bear plays with another bears neck\nFour air planes are flying in the air leaving fog. \nA water bird stands on the shore as the tide comes in.\nTwo birds standing side by side on a branch\nA woman leaning over a laptop on top of a table.\nA group of giraffe standing next to each other.\nA baby grabs his mother's robe as she gently brushes his hair.\nA cat sitting on the back of a sofa looking out a window.\nA kitchen counter covered in metal bowls and dishes filled with food.\nA cell phone with a smiley face against a plastic figurine\nA teenager wheeling a suitcase down a crowded street.\nA blender that has had some liquid come out on the counter.\nA dog resting his head on the edge of the pool next to an apple.\nA clock sitting below Trump Tower in Manhattan.\nA bunch of very cute signs hanging by a business.\nA man in a cubicle with an Indiana Jones T Shirt talking on a cell phone.\na pole with several street signs by a building\nThere is a car with bicycles on the top of it.\nA bathroom with a run down looking shower next to a sink.\nA young man standing next to a bike\nRoom with wood covered wall and floor with two beds.\na busy street with people a red double decked bus and a clock tower\na close up of banana peels near a drink\nA cat standing next to a bike parked against a wall.\nA giraffe eating some leaves from a tree at the zoo\nTwo elephants standing next to each other in a grass field.\nAn airplane flies high above in the sky with telephone lines in the picture as well. \nA large white horse walking along side the road.\nA group of men on a field playing baseball.\nA television remote control is shown on top of a table.\nIvy is growing up the walls of a building.\nThree people are sitting on a bench in front of a train.\nA pizza is being cut into on a sheet.\nTwo men riding on a motorcycle with a young girl.\nAn open laptop computer sitting on top of a wooden table.\nA man in glasses is adjusting his tie.\nA mother elephant leading a baby elephant on a clear day.\nA toy train is crossing a bridge near pine trees.\nA soccor player trying to kick the ball but kicking the other player instead.\nA group of people are waiting beside the small blue bus. \nTwo bears are playing in the stone surroundings. \na cow walking next to a person on a city street\na work desk with a monitor and keyboard\nYoung girl gets ready to blow out candles as family watches\nA gray truck parked in a driveway in front of a house..\nGiraffes and a Zebra under a locust tree.\nA woman riding a snowboard across a snow covered slope.\nA man holding a slice of cheese pizza in his right hand.\nA person on a motorcycle in the dirt doing tricks. \nCloseup of various flowers in vase next to window.\na picture of a water hydrant with many snow. \nA child on a horse riding down a busy city street.\nA couple of people standing in a large kitchen.\nHorse drawn cart with women and children in urban area.\nWoman on a motorcycle with a sidecar in front of scenic backdrop in a showroom.\nA white dog walking on a beach in front of a black dog.\nA brightly colored red and green bus is parked.\nTwo people riding a motorcycle to the beach.\nTHERE IS AN ADULT CAT THAT IS LOOKING AT SOMETHING \nthere is someone holding a remote in there hand \nA living area with counter, chairs, windows and an air hockey table.\nThere are several horses getting ready to race.\nA boat going through the water in a canal.\nA group of baseball players with a bat and ball at the pitch\nThe back of a large, blue motorcycle and rider\nA yellow bedroom with with a bedspread that is half and half.\nA man in glasses with a mustache standing in front of stairs to a doorway.\nSome kids are playing in a baseball game\nA man kneeling down to pet a small dog.\nA man kiteboarding over the top of the ocean.\nFive doughnuts are left in the open box.\nA pink stuffed bear and some wraped presents\nthere is a dog playing frisbee in the snow\nA computer, keyboard and mouse sitting on a desk.\nA light colored sheep looking ahead in a road.\nAn empty kitchen filled with dishes and appliances.\nAn airliner is descending over the water to an airport.\nApples sitting in front of a hookah pipe.\nA white toilet sitting in a bathroom next to a shower.\nTwo giraffes are looking at each other in a wooden room.\nA family of giraffes standing next to a pile of logs.\nA large white bus drives through an intersection. \nSome glazed donuts have chocolate frosting with sprinkles.\nmany horses st a horse stable with people walking by\na bottle a glass and utensils behind a stove\nDog in parking lot and on a leash.\ncars wait on a street at a red light in a city\na large group of people at a ranch\nA person in a red jacket holding an umbrella.\nA man in holds a Frisbee in the parking lot by the river.\nYoung girls sitting on wooden decking with decorated cake.\nA skier barrels down a slope while kicking up snow.\nA boat in the ocean  near a red light house.\nMany people with skateboards on a large sidewalk. \nA wooden bench sitting near a group of buildings.\nA man holding a birthday cake in a pan with friends. \nA person in a gray parka sitting in the snow\nThe living room has two couches and an easy chair. \nA street devoid of traffic surrounded by tall buildings.\nBearded skateboarder maintains balance while skating up wall.\nA couple of gray elephants standing next to each other in a wire cage.\nA young child poses for recognition while wearing a tie.\nA den with chairs, a table, couch and television.\nA metal plate holding a pizza with cheese and vegetables.\na close up of two elephants rear end\nA bedroom with a giant clock hanging in the wall.\nElectronics, organizers and keys are laying in front of a bag.\nTwo tables filled with food under a red tent.\nFour officer are riding motorcycles with giant letters on them.\nTwo male chefs cooking in a kitchen while another staff member uses a mobile phone. \nA woman returns a ball on the tennis court.\nA car's side mirror shows a dog sticking his head out of the window.\nTwo ladies are standing near a few toilets. \na plate holding a sandwich on a bun next to some short little french fries \nA man riding on the back of a motorcycle next to a muscle man.\nA young man holding a pink frisbee on a beach.\nA zoo animal is standing beside a tree.\nCommuter train stopped on tracks at red light, green light further up the track.\nA large wholly yak with big horns is standing in the grass.\nA construction truck parked near a storage shed.\nA bathroom with a shower and a sink.\nThe giraffe has it's head against the tree trunk.\nVarious bouquet of flowers in a vase outside.\na bed room with a window and a night sand\nA pair of scissors standing up with wispy smoke in the background.  \nA man riding a skateboard up the side of a ramp.\nA black and white photo of four young children.\nThe skier is headed towards the architecturally -unique ski lodge.\nBlack and white photograph of a woman using a sewing machine.\nA group of young people playing a game of soccer.\na public bathroom with several sinks and mirrors\nA spoon filled with peanut butter on top of a banana.\nThe man is skiing alone on the snow\nA woman and child stand next to a table with cake on it.\nA person with a parasol is walking on a crosswalk.\nA young man seems to be holding a Wii remote near the flower.\nA boy in grey jersey holding a baseball bat.\nA woman is in action on the tennis court.\nA kitchen counter top sitting next to a stove top oven.\nA herd of animals traveling down a country road surrounded by a lush green landscape.\nTwo men are standing in the living room and holding wii remotes.\nthree people riding horses on a beach near a body of water \nA woman throwing a frisbee as a child looks on.\nA brown dog on a bed looking towards a bright window.\nA bathroom with two sinks sitting under mirrors.\npeople at a ski lodge walking around in the snow\nA salad with half a sandwich and salad dressing.\nA modern bathroom is shown with a square sink.\nA kitchen with a center island surrounded by wooden stools.\nA young boy flying a kite in a blue sky with clouds.\nA boy does a skateboard trick in front of street art.\nA man is laying in a bed next to a window.\nA living room with pink and red chairs and a colorful couch.\na person standing close to an elephant \nA man riding skis on top of a snow covered slope.\nA cat on a toilet seat of some sort.\na truck on a city street with many houses in the background\na cat laying on the floor of a kitchen\na pitcher throwing a ball from the mound \na person riding a horse on a track\na person standing near a building with an open umbrella\nAn old couple is sitting down on a bench together.\na glass walled shower in a small bathroom\nA refrigerator and a stove in a small kitchen.\nA man kneeling down in front of an oven.\nTwo well equipped men with dogs at a pier.\na woman is sitting with an umbrella over her\nA man and child flying a kite in a field.\nLarge group of cattle moving around a field together. \nTwo urinals in wall with a white divider.\nPerson riding on the back of a horse on a gravel road. \nA couple of people on skis in the snow.\nCattle grazing in field of brown grass in landscape\nA brown and white bird is about to fly from a branch. \nA toilet in a bathroom next to a window and toilet paper dispenser.\nA large chicken walking through a grass covered landscape.\nA dog has made a bed on a stack of plastic chairs.\nA cat is curled up, asleep, on a chair. \nA tennis player stands on the court in an empty stadium. \nA man wears a pub cap, dress shirt, and tie and takes a photo of himself in a parking lot.\na baseball player swinging a bat on the field \nA sign is next to an ornate white gazebo.\nA MAN IS PLAYING ON THE BEACH WITH A FRIEND\nA box of donuts, some that are jelly filled, coconut, frosted, and have sprinkles.\nA close up of a blackberry cell phone.\nA pinewood and green modern themed kitchen area.\nZodiac on back of large boat in a lake.\nA man standing behind a bench with something in his hands.\nTwo planes flying in a clear blue sky.\nA car stopped at a traffic light with it's brake lights on.\na modern kitchen with an oven, stove, and a fridge \nA group of people are playing some musical instruments.\nA guy in a white t-shirt rides on his skateboard.\nball is pitched from the mound and is the way to the batter\nA dog looking up at a frisbee while standing in a field.\nA man wearing a tie and suspenders is standing with his hands in his pockets.\nA tennis player stands on a court holding a racket and smiles.\nA man on snowshoes looking down a pathway.\nA couple of zebra eating a small pile of hay.\nA woman holding two halves of a banana sandwich.\nThe man is pushing a cart with his suitcases on it. \nA basket filled with ripe bananas sitting on a counter.\nA table with wine glasses, and plates filled with pastries.\nThere are two elephants standing near the water.\nA boy jumping his skateboard over a tilted iron post.\nA collection of fruits and vegetables sitting on a stove top.\na bath room with sinks and mirrors \nA woman standing on a tennis court holding a racquet.\nA table topped with sliced brisket next to salad and sauce.\nA bear walks through tall grass near several trees.\nA plate is filled with broccoli and noodles.\na baby giraffe walking away from the shady area \nA person holding a computer mouse next to a computer keyboard.\na white cat a television set and a brown cabinet\nA truck parked near a tent and a stadium. \nA group of people riding on the back of a boat in the water.\nA group of bikers riding on the back of motorcycles.\nA living room with hard wood floors and a book shelf.\nA white plate served on a multi colored table cloth\na small herd of sheep and a ram eating grass\nA stool sitting next to a white umbrella near a brick wall.\nA trio of race horses going down the track at top speed.\nTwo women in english riding outfits on top of horses.\nGiraffes are grazing on the grass on the side of the road.\nMan flying a colorful dragon kite in a blue sky\nA small white and blue bus traveling down a road.\nSix people hold up wine glasses at a dinner table.\nA man taking a selfie in front of a mirror.\na couple of elephants walking off a path\na stop sign and a white and green street sign and a tree\na stove in the corner wit ha refrigerator near\nA man standing in a field holding a small parachute.\nA living room filled with brown furniture and a flat screen TV..\na toilet with glitter paint on it \nA yellow and black caution sign sitting on the side of a wall.\nA bathroom scene with a toilet, sink and a mirror.\nA group of people that are fine kites.\nA bowl filled with food and a white spoon.\nA humorous street sign is pictured in this image.\na yellow and black train sitting on track \nA smothered fish dinner with wholesome vegetables \nA group of blueberry muffins sitting on a tray.\nA stop sign and a cart on the side of the road.\nA man wearing a demonic joker shirt using a smart phone.\nA man holding a smart phone in his right hand.\nA pretty young lady riding a red surfboard in the ocean.\na salad that looks like a boat is next to a fork\nSomeone is holding an orange and black Iphone.\nA half a sandwich sitting on top of a plate.\nA group of dressed up people pose in front of a building.\na person skiing down part of a hill in front of some rocks and trees \na plate with meat and potatoes on it \nA green refrigerator sitting inside of a kitchen with a fan.\na split screen image of two cats playing together\nSeveral small blue boats side by side out in the open.\nA horse stands still attached to a passenger coach. \nA simple white residential kitchen with breakfast bar\nWe are looking at a black and white shot of a train platform.\nA man and woman hold hands as they are skiing.\nA man and woman standing in front of a cake.\nA small bathroom has an open toilet seat.\nA train sitting in the middle of a train station next to a platform.\nA group of young men standing on top of a sandy beach.\nThe stop sign at the corner of North Main and Schoolhouse\nA person that is sitting on a bench.\nA white bowl filled with meat, vegetables and broth.\nThe car is speeding past a girl on a bike.\nCows crossing a paved road in the fog\nA dorm room with a single bed and a desk. \nA folk of birds flying over a military ship.\nA man riding a skateboard on a parking lot.\nA colorful clock tower along a street and near apartments.\nA passenger jet filled with purple and blue seats.\nA young man playing Nintendo Wii while girlfriend is taunting\nthis is an image of a man playing tennis.\na young kid performs a grind trick on a skateboard \nA street sign with direction lights covered in black\nA desk with a laptop, monitor, keyboard, mouse and speakers.\na toilet and a microwave sitting out for the trash\nA Jet2 airplane parked out on the edge of the tarmac\nA metallic refrigerator freezer sitting inside of a kitchen.\nA dog draped in a blue blanket on a boat. \nA man walking next to a bench holding a colorful umbrella.\nA surfer is riding on a big wave.\nA  street with pedestrians, bikes, a jitney and a bus. \nA table filled with some tasty looking pizza.\na bottle of tequila sitting next to an orange cat.\nA women holds onto a Nintendo wii-mote and nunchuck\nLooking at the back end of a zebra while it's walking.\na kitchen with a refrigerator a stove and a window\na closeup of a slice of pizza covered with various ingredients\na plate of pizza on the edge of a table\nA group of people on skis standing around.\nBirds flying in the sky over the trees in the mountains.\nA tilted square photo of a book shelve full of books and a teddy bear with a bow tie in the middle.\nA woman serves a ball with a clock in the background.\nBathroom sink has a long counter space and 3 piece mirror.\nA dog chasing a kite that is flying.\nA bear made out of gummy bears sitting on a counter.\nA bunch of tables with blue cloth on them sitting in a big courtyard. \nA white plate with a cut in half sandwich on top of it.\nTwo queen size beds in a white room with white sheets\nA woman holding a glass is looking at her phone.\nAn older black and white picture of a cue of people boarding a bus\nThere are several differently colored train cars shown.\nA man carrying a surfboard on top of the ocean.\nA man riding on the back of a boat filled with people.\nA busted fire hydrant spewing water out onto a street.\nA red fire hydrant sitting on a sidewalk.\nA flock of geese being chased by a dog.\nElephant displayed in window of city building near roadway.\nA father holding his little child upside down.\nA hand holding a piece of meat filled pastry.\nA man kite boarding in the ocean next to a sandy beach.\nA picture of an old creepy man standing next to an old creepy woman.\nA baseball player holding a bat next to home plate.\nA person that is catching a frisbee in a gym.\nan elephant using its trunk to blow the dirt off its face\nA person surfing on a surf board on some waves\nA toilet with plastic over the toilet seat. \nA little girl sitting at a table eating pieces of cake on plates.\nA white bus driving past a tall building.\nTwo slices of pizza have been placed on an plate on a coffee table.\nA man in a black hat with his tie in a coffee pot.\nA man by a park bench is taking off his pants.\nA family is sitting at an outdoor picnic table.\nA small bathroom stall with a toilet and wash basin.\nA large passenger airplane flying through the air.\nA chicken dish with broccoli and mashed vegetable with bordeaux wine\nThe car is traveling down the road while the dog watches.\nA guy posing with a guitar while making a song.\nKids are riding the ramps with their skateboards\nA modern bathroom is designed to be useful.\nA young man standing on the tip of a surfboard.\nA couple riding on a horse drawn wagon.\nA woman taking a drink and a man eating a banana in a kitchen.\nA living room featuring a comfortable seating arrangement of chairs and tables.\nA man holding a donut in a napkin up to his mouth.\nSteak and crab cakes served with grilled peaches.\nA group of girls standing around a table making pizzas.\nTwo trains passing each other on seperate tacks.\nA man doing a trick on a skateboard on a sidewalk.\nThe stuffed teddy bear is sitting near the wall.\nA baseball player has swung his bat during a game. \nSeveral vehicles turning the corner on a busy intersection.\nA group of kids and adults eating cake at a table. \na man in a hat is in a crowd\nA white and green kitchen filled with dishes and appliances.\nA dog sitting up straight on a bed looking stoic.\nA man riding an ATV  with a dirt bike on the back of it.\nA tabby cat siting on an orange chair\nA kitchen with a washing machine under the counter\nA man sitting at a table on a balcony, using a laptop.\nA group of horse drawn carriages line up with each other.\nA large blue octopus kite flies above the people having fun at the beach.\nA man walking a dalmatian on a red leash.\nA person standing next to a  wooden bench near street lights.\nA police officer directing traffic in front of a yellow double deck bus.\nA living room with a fireplace and wooden floors. \nA clock that is hanging underneath a glass arch.\na pregnant woman standing holding on a white fridge \nA kitchen filled with jars of orange juice next to donuts.\nA man and woman eating slices of pizza at a pizzaria\nThree people riding on horseback by the beach with a dog following. \na large green toy truck on a sidewalk in front of benches.\na number of motorcycles in a lot \nTraffic lights and people walking as other on a crane continue with their work\nPot of different colored flowers on a wooden table.\nThe large green city bus is driving on a road.\nBlue plate holding a mound of chocolate deserts. \nA man and child near a short stop sign.\nA actress standing near an elephant on a sunny day. \nA couple of children sleeping in a bed together under a blanket.\nA horse and carriage ride near a pink building and traffic signs.\nA man that is sitting on a motorcycle under a carport.\nA vase on a table stands next to a hanging picture. \nTwo men standing around a table with bottles of wine.\nA bird sitting perched on a tree branch.\nAn elephant in the river holding something with its trunk\nA woman, man, and a dog standing in the snow. \nA sign above a doorway with a bench in front\nPeople sitting at outdoor tables on the street.\nA young boy riding a skateboard across a parking lot.\nFour pizzas sitting on a counter in a kitchen  \nA lone zebra standing near some leaves in the grass.\nthis is a giraffe running in  a pen\nA young boy standing in front of a parking meter.\nhalf of a birthday cake with an angel decoration on the top of it \nA man swinging a baseball bat during a baseball game.\nThe light shines above the pan rack on the kitchen counter.\nA black cat sits in a car and looks out.\nA man riding skis on top of snow covered ground.\nA white motorcycle is next to a store front that says \"Macau welcomes you\".\nA bowl contains baby carrots and other food.\nBathroom with white pedestal sink, bathtub and shower, and commode.\nA woman puts her fork to a plate with an omelette and toast. \na blender with some food in it ready to blend\nA mama and a baby duck are swimming in the water. \nElephants walk in a line down the middle of the street\nA man standing on one foot holding a skateboard behind him.\nThe water the boat is in is reflecting the sun.\nTwo men being drug on buggies by dogs.\nA woman riding a horse with number 26 on it\nTwo green duffel bags of two different designs. \nA man dressed in  suit and tie holding a wine glass in his mouth. \nA woman smiles with a bite of pizza in her mouth.\na street sign on a road near a building\nThe double decker bus is heading south through the mountainous region of California.\nAn old stove and trash bags sit on the curb.  \nA woman opening the bathroom door with the room chained off.\nNumbered row boats lined up along a small dock\nA pretty young lady standing in front of a couch behind a wooden table.\nA bathroom sink sitting under a large mirror.\nThe man is wearing coveralls and holding a snow board.\na surfer guy wearing sunglasses standing on some rocks holding a surfboard\nA dog carrying a water bottle that is empty.\nA woman playing tennis and leaning back with her racket to hit a ball.\nA plate topped with two pieces of cake and strawberry.\nA toilet in a small room with a window and unfinished walls.\na man riding a surfboard on top of a wave.\nA bird flying over the beach to the water\ntwo giraffes standing next to each other with a fence between them\nA group of giraffe standing next to each other.\nThis kitchen features dark colored cabinets, nice counter tops, and pendant lights.\nA man standing on a snow covered field holding skis.\nA dog is walking past a row of park benches.\nLots of boats tied together sit in the water.\na surf board leaning on a wheel barrel \nA person wearing a helmet on a skateboard.\nA team of young children playing soccer. \nA plane is on display near the water.\nA group of friends sitting around a table eating pizza.\nConstruction equipment seen at work site in urban area.\nPeople are sitting on the top of a blue trailer.\nA living room with a black couch sitting next to a table.\nTwo men are playing Frisbee together on a field.\na little boy that has a baseball bat in hand\nthere is no picture in this particular one.\nFour zebras facing the same way drinking from a water hole.\nA tray has a cup and a plate with fries and a hotdog on it.  \nA man standing on a tennis court holding a racquet.\na blue and yellow train and some people and a building\nZebra roaming through the grass with others in the distance\na apple sits on a floor with a knife stuck inside of it \nA man walks on the beach with his kite. \nA bus traveling past a traffic light next to a tree.\nA group of people walking through a field under the sun.\nA woman flying through the air while riding a skateboard.\na person holding a nintendo wii remote with a white background\nArtistic toilet piece sitting in the center of a museum gallery. \nA person sits at a table in a kitchen. \nA stop and street sign on the side of the street.\nThe keyboard and computer mouse are sitting on the desk.\nRiding a motorcycle down a street that has no one else on it.\nA girl is dancing in the bathroom to music on her lap top. \nA man doing a trick on a skate board.\nA small child climbs atop a large motorcycle\nA pair of scissors sitting on a strap.\nA man holds a controller and keyboard with his hands\nA pizza sitting on top of a cutting board on a counter.\nA man riding a skateboard down a set of steps.\nA group of giraffes in a fenced in enclosure.\nTwo people on motorbike passing by a clock facade.\nA small group of people sitting at a table participating in a meeting.\nA tree in bloom with pink flowers near a rural area.\nThe young man is catching a Frisbee over his back.\nA couple of horses pulling a cart with a person.\na view of an air plane wing in the air \nA meat sandwich cut in to three different parts\nsome pieces of pizza sits on a pizza trey \nA white bowl filled with soup on top of a plate.\nA kitchen with a stove, table, cabinets, and other items \nA red bus on side of street next to a building.\na dried out tree with fruit hanging on it\nA black cat with a hat on the ground.\nA plate of cheese bread next to bread sticks and wine.\nA policeman, cameraman, and reporter stand near a police checkpoint.\nA rotten door leading into a restroom covered in filth.\nIced carrot cake on a table with odd type of cola.\nA dog laying on top of a bed in front of a red book.\nA large painting of zebras and hogs standing next to deer.\nA man who is holding a Frisbee in his hand.\nTwo elephants are standing by the trees in the wild. \nA small bird sitting on a tree branch.\nTwo cows in a field eating from a food bowl\nA display case of different types of doughnuts in it.\nRows of suitcases on carpet with crate in background.\nA man standing on his front lawn throwing a Frisbee.\nThe laptop has been placed next to a tray of tea.\nA train that is on a rail over a bridge.\nA group of horses about to gallop in the grassy field. \nA girl and a large stuffed bear at a table.\nCute girl sitting on a skateboard in the driveway \nTwo surfers in wetsuits carrying surfboards along the beach.\nThis is an image of a man flying a kite.\nA motorcycle sitting in a parking lot showing a green lawn in the mirrors.\nA sign explains the toll on a toll road.\nTwo toilets are in a restroom with a vanity with dual sinks.\nTwo men sitting on a couch playing a game system.\nA woman on a court with a tennis racket.\nA dog sleeping on a floor on top of a blanket.\nA bow of fruit, such as bananas and apples.\nA bed and a window in a room.\nA bicycle parked on top of a bed in a bedroom.\nA cat sleeping on top of a laptop keyboard.\nA cat is sitting in the window on a rail.\nA tennis player swinging his racket a low ball.\nTwo toothbrushes in  packages with a mans face on them\nA small dog standing next to a potted plant wearing a collar.\nA man is sitting in a chair and holding an umbrella over his head.\nPeople outside a building on a street with a gay crossing, girl with bicycle, and a motorcycle rider with helmut.\nFlowers in a vase in a dimly lit room.\nTwo elephants cross tusks in confrontation in a field\nThe blooming yellow flowers are in the copper vase.\nFrench fries, two hot dogs, a pickle, and cup on a table.\nA cat watching a television show about migrating geese.\na woman is out in a field with sheep \nA person making an ugly face holding Nintendo Wii game controllers.\nA blue and yellow colored bird perches on a tree branch.\nAn elephant and a rhinoceros stand not far from each other.\nCars are lined up in traffic at a red light.\nA black and white photo of a propeller plane.\nAN orange version of the Eiffel tower in the middle of a city.\nA cat sitting between two bikes  sitting next to each other.\nA man holding a sausage dog and looking at the sausage dog\nA group of men standing and sitting next to each other.\nA pizza sitting on top of a metal pan on a stove.\nA couple of brown horses standing in front of a building.\nUrinals are lined up on a wall in a bathroom.\nThe landing gear is down as the airliner comes in for a landing. \nA red kitchen with metallic appliances and paintings on the wall.\nA young boy throwing a frisbee in a grassy field\nA man in a red shirt standing next to an airplane.\nA large gray elephant walking through a marsh.\na dog surrounded by a bunch of papers and books\nA man riding a skateboard on top of a skate park.\nA man holding a tv remote and wii controller.\nA woman walking down a street holding a gray umbrella.\nAn animal that is in the snow by themselves.\nSeveral motorcycles lined up in a row in front of a old building.\nThe blue bus is riding across the street.\nA flock of birds sitting on top of a dirt ground.\nA man holding a tennis racquet and a ball on top of a court.\nA man riding a brown horse at a rodeo.\nTraffic sign on W 28 St with photo of bicycle in the top.\nA bathroom with a large mirror above a white sink.\nA square reflective glass building sitting next to a street light.\nA white paper topped with square slices of pizza.\nA young man holding up a green bottle as he drinks\nA large living room with yellow curtains and couches\nA man sitting on a box on a walkway in a busy city.\nA case with a pink and green pattern.\na little cat house in the yard with a kitty sitting in it. \nA man is throwing a Frisbee on the beach.\nA colorful bird is sitting on a tree.\nAn adorable husky dog sleeping in a dog bed next to a fan.\nA man riding a surfboard on a wave in the ocean.\nSculptures of a group of people with umbrellas.\nA person sitting next to a toilet that is sitting on a sidewalk and filled with papers.\nA hand holding a piece of cake with a bite out of it in front of a black and white cat.\nA row of white urinals mounted to a restroom wall.\nA kite with a long tail flying in the air\nA man standing in front of plates of food on a white counter.\nA man resting his injured leg while he talks on the phone.\nThis is a living room with a gray couch and yellow chair.\nA small metal motor boat on a lake.\nA yellow clock that is on the floor.\nA portrait is hung over the stone fireplace.\nthree different donuts one is pink one is brown and one has white sprinkles\nAn elephant walks next to a bus down a busy street.\nA bunch of donuts sitting on top of metal rack covered in glaze.\nA very nice looking rest room with a nice tub.\nA teddy bear leaning against a tree next to the road.\nA toilet in the ground next to a trash can.\nA cat standing on top of a wooden bench.\nA giraffe standing next to a brick building.\nA cute fuzzy sheep standing in a very big field.\na person with ski poles and skis in the snow\na clock on a pole on a city street near buildings\nA group of people who are standing outside by a plane and a car.\nA puppy playing fetch along the shore of a lake\nTwp cake pans sitting and cooling on the stove\nThe cake is in the shape of a long train. \nA little girl standing at the kitchen counter holding a spoon in a can.\nA red double decker bus driving down a street.\nA Street sign standing next to a palm tree.\nA bowl of granola with raspberries and honey on top with a spoon.\nAn all white kitchen with an electric stovetop. \nA person riding a snow board down a snow covered slope.\nA car covered in various empty toothpaste tubes.\nA garage with a table, refrigerator and metal shelf.\nA game at an outdoor fair called \"Ball In The Bog\"\nA plate of food with sauce and chopsticks. \na person standing on top of skis holding ski poles.\nA group of people on mopeds in a busy street.\nA group of red and yellow buses parked side by side in a parking lot.\nA group of young and old are skiing on the snow.\na freeway traffic sign writtien in an asian language\na bunch of food is loaded on to a plate\nZebras and rhinos out in the wild on a sunny day \nA skier with poles on the hill of snow.  \nTwo giraffe standing next to each other behind a wire fence.\ntwo people standing in a living room playing nintendo wii\nA metal pole with a traffic light attached, red right arrow illuminated, with green grass, green trees, and white sky in background.\nMany people are walking along through the hallway.\na crowd of people getting on a  tour bus \nCommercial jet passing overhead on bright cloudless sky.\nA tow truck driving past a very old stop sign.\nThe freight train is passing underneath the bridge. \nA woman walking on a city sidewalk, talking on a cell phone.\na nurse watching a newborn baby hooked up to tubes\nA man in an elevator listening to music on his iPhone. \nA woman bathing her dog in the sink\nA man standing next to another man wearing headphones.\nA girl putting her hands in the water spraying from a fire hydrant \nThe line of people are riding horses through the plains. \nClocks on a light pole on a city street.\nA young girl using a cellphone while sitting next to luggage.\na man flying through the air while riding a skateboard.\nA tiled bathroom containing a vanity sink, toilet and bathtub.\nA bathroom sink under a mirror in a bathroom.\nA man and a woman sitting on a couch with laptops.\nA man brushing his teeth with a tooth brush.\nA man who is leaping in the air to catch a Frisbee.\nA bathroom sink sitting next to a white toilet.\nA baseball player in a ball hitting stance.\nA snowboarder with his snowboard attached to his feet sitting on a slope.\nA small animal craft sitting on top of a pine cone.\nA stop sign located at a cross section in a rural area. \nColorful slice of pizza sitting on top of a white plate. \nA couple of large elephants standing next to a baby elephant.\nThe dinner table has grilled hamburgers, steaks, and hotdogs on it.\nTwo big giraffes walking in a grassy area with a baby giraffe. \na large plane is docked at the airport and connected\nA giraffe walking in a grassy area next to trees.\nA dog is lying on the back of a small boat.\nA person is making a pattern on the floor with tape.\nA person in blue jacket falling on hill with a snowboard.\na small little bathroom with a toilet in it\nA bus traveling down a street next to a tall building.\nA bedroom with a white bed on a frame next to a window.\nTwo men can be seen out in the water and one is on a surf board.\nTwo motorbikes outside of a glass window with a bike next to them.\nA white sink sitting next to a toilet.\nA man standing on a tennis court holding a tennis racquet.\nA remote control sitting on a dash of a car.\nA motorcycle is parked in a bushy field.\nA large black bear walking across a field.\nA flock of birds flies in the sky.\nA painting of a man smiling behind a table with fruit\ntwo elephants this one looks like his ear is ripped \nThe modern made toilet is next to a small bidet.\nThere are three donuts on a white plate\nA street corner flanked by a display board.\nA man and woman are playing a video game together.\nA bottle of wine sitting on top of a table next to a glass of wine.\nA stove top oven sitting on a pile of junk outdoors.\nGiraffe chewing on grasses looking over wire fence in zoo enclosure.\nA TV mounted inside of a wall between two shelfs.\nA bathroom with a sink and toilet and a window.\nTwo rows of cars parked next to a boat.\nA passenger train is going across a bridge\nPeople standing and sitting around at a pier\nan older male in a gray sweater a knife and cake\nA boy wearing a white dress shirt and sweater with shorts\nBird perched on a high branch in a tree\nTwo elephants in leafy area eating grass and leaves.\nA church steeple that has a clock on it\na single black bear standing beside some shrubs \na toddler brushing his teeth while holding a baseball hat.\nTwo pictures of a guy with a black shirt and hat on with a skateboard.\nA television sits on the counter in a small room.\nEdward, the number 6 baseball player, waiting to bat.\nA group of people riding a raft down a rapid river.\na small child and a group of cows\nA girl standing next to a man in a room.\nA laptop sits on a stack of books on top of a messy desk.\nA toddler smiles in front of a toy train set on a table.\nA close-up of two cows standing in the dirt.\nA bull is on a farm walking around a pen.\na man that is riding a bike on some concrete \nThree young men holding surfboards walking on a beach.\na number of plates of food on a table \nA tall building with a massive golden clock on it's face.\na hand sitting on a horse that is being lead by two other people\nA man riding skis down the side of a snow covered mountain.\nA person holding up a flip phone in their hand.\nA traffic light on a street with some people.\nSeveral vehicles wait for a toll arm to be raised. \nTwo dogs relaxing out on the dirt road\nA couple of zebras are walking through undergrowth.\nA bird flying over a field with lots of grass.\nA man in orange shirt holding various kites next to cabinet.\nA man is sleeping with the covers pulled up high.\nA bus on driving down a street with other buses \nA man preparing food on top of a table.\nA young woman falls while surfing in the ocean.\nTwo men standing over a table eating food.\nThree cakes decorated with flowers on the top and the words \"best wishes\" written on the cakes.\nThe vases are displayed in the glass case.\na cut in half sandwich sitting on top of a plate.\nThree people walking across a beach carrying their surfboards. \nA large elephants reflection in a cars side view mirror, with other elephants in the distance.\na big yellow truck parked next to a building\nCharacters from Cat in the Hat in front of a man and child.\na large train station with several trains docked\na cake with some cup cakes around it\nAn elephant in an enclosure is touching a woman in a pink dress.\nA man riding a skateboard down a hall.\nAn airplane can be seen traveling through the clouds.\na group of children standing in front of a cage\nTwo men standing on street next to a tree and building.\nA group of boats floating on a body of water next to shore.\nA baseball player swinging at a pitch with the catcher behind him waiting for the ball.\nA white bowl filled with vegetables on top of a wooden table.\nA skateboarder jumping over a cone at a skate park.\n man riding on water skis being towed behind a boat.\nA man in the snow has a blue snowboard.\nA guy on skis with another skier farther behind him.\nA couple of white bathroom sinks sitting next to a toilet.\nTwo law enforcement officers patrol a street on horses.\nCat lying on ground between pair of  parked bicycles \nA park bench on a beach of white sand looking out to the ocean.\nPassengers waiting for their bags at a luggage carousel.\na person holding a game remote next to another one holding a beer\nA sexy young woman holding a tennis racquet on a tennis court.\nA man riding on the back of a wagon being pulled by two horses.\nAn olden styled Good Humor ice cream truck.\nA man raising a foot over a brief case\nA black and white picture of accessories in a store. \nTwo sheep are bent down grazing on grass.\nBright orange flowers in a jar partially filled with water.\nA lady walks down a street with an umbrella.\na baby giraffe sniffs an adult giraffe \nA long large train on a steel track.\nTwo trains running along a set of tracks. \nTHERE IS A BOAT IN THE WATER UNDER THE SKY\nThe man is taking a bite of a humongous sandwich.\nThe man holds a ping pong paddle under the shelf on a wall.\nA traffic signal and signs attached to a pole.\nA dog in the water has a purple Frisbee in his mouth.\nA horse pulls a carriage through city streets\nA young man dribbles a basketball as his companion talks on a phone.\nA large double decker bus driving under traffic lights.\nA wooden table topped with a bunch of green bananas.\nThe cat is lying on the window ledge.\nA guy is returning a tennis ball that was hit to him. \nA woman touching a decoration on top of a batman cake.\nSeveral different ties hand over a tie rack.\na tennis player standing on a tennis court\nA tall building with a clock on it near a cemetery. \nThe elderly man is roasting hotdogs on a grill. \nA hand holding up a cell phone that is taking a picture. \nthree adult brown bears standing around staring at something\na person in a clothing store wearing a hat\na young boy in blue is standing in the snow\nA group of people standing around a table with bottles of liquor.\nA doctor is standing over a hospital bed holding a woman's hand.\nHorses walk along a beach while boats ride at their moorings offshore.\na metallic suit case in front of a couch\nA giraffe walking around in a fenced area in a zoo.\nA man sitting on a bench next to a star wars storm trooper.\nA small dog that is sitting in a sailboat panting.\nA male professional tennis player engaged in a match.\nA green bus is parked near a city curb.\na cat sitting on an open striped umbrella \na car is headed down a street in an asain country\nA beach with waves coming in, and two people in wet suits and carrying surfboards, from the back, walking to the water.\nA black and white photo of a man helping a woman cross the street while riding a skateboard.\nsome cats laying on a dock with their chins laying over the end \nA cat is on papers on a computer desk.\nA sea plane about to land on a lake near a boat\nA man stands on skis on a snowy hill.\nA slice of cake on a plate decorated like the bottom of the ocean.\nA red, white and blue train next to satellites.\nA woman standing next to a brown horse and small dog.\na red motorcycle that is going down the road\nA bunch of bins that are on a wooden table.\nthere is a very tall tower that has a clock on it\nAn Oriental meal is uneaten on a table.\nA man standing next to a stone wall while holding a skateboard.\nsome gray walls a toilet a dartboard and some pictures\nA water hydrant is seen on the footpath.\nA group of people riding skis down the side of a snow covered mountain.\nA person in the snow on a snowboard.\nA red, grey and white airplane passes overhead.\nA half eaten cake with a rabbit drawn on top sits on a dish.\na person is holding up an old cellphone\nA bus and a tram pass each other on a city street\nA young man sitting in front of a laptop computer.\nA couple of women soccer players are on the field.\nTRAY WITH HALF EATEN CAKE, COFFEE, AND OTHER DISHES\nA man running with tennis racquet in hand trying to hit the tennis ball.\nA wooden spatula in a bowl with shredded carrot.\nA young woman with pretty eyes eating half an orange.\nA boat traveling into a water filled tunnel.\na man is riding a wave on a surfboard\nA young man laying on a sofa using a laptop.\nquaint kitchen with pink flowers on a small central table\nA skateboarder rides his skateboard across a parking lot.\nA wall full of pictures in frames of various subject matters.\nA basket filled with lots of fresh produce.\nA table topped with different types of tools.\nA bench out by a hedge by the woods \nThere is alcohol and ginger ale on the tray.\nA woman touches her butt with a tennis racket in hand.\nA man riding skis while holding two ski poles.\nA German language street directional sign that reads Bauminghausstrasse. \nA little girl putting decorations on top of pink cup cakes.\nA very young boy on snow ski's holding a flag.\nA hand is holding a carrot for a llama to chew. \nA woman standing in a living room holding a Wii controller.\nAn evening city scene with blurred images of cars driving by\nSmall dog sitting on a carpet with a rubber doughnut toy.\nPeople are in a large building with luggage.\nA man tying a boat to a shore line by the water.\nBrown bear sitting in upright position in grassy field.\nthere is a side of a building with many pictures on it\nThree zebras munching on grass in their natural habitat.\nA plate of fruit such as bananas, lemons, apples, and oranges.\nA couple pieces of pizza sitting on a plate.\na close up of a plate of food on a wooden table\nA man holding a Nintendo Wii game controller.\nThree teddy bears laying in bed under the covers.\nA lone kite flying in a city plaza near people.\nA large ship sailing across a lake next to shore.\nA knife being used to cut a dessert on a plate\nA dog was dressed up in a princess costume before falling asleep on the couch\nWoman in sunglasses preparing to take a bite of a sandwich.\nAn adult poses with a young child on the sidewalk for a picture.\nThe happy couple are cutting the cake together\nA shelf in a room full of books\nA man drives fast in a motorcycle with kids in the sidecar\nSmall train with locomotive in front and trees lining trail.\nA man cuts a cake with a rather larger knife.\nA mama and a baby horse are standing near one another in a field. \nseveral young students working at a desk with multiple computers\nTwo plastic containers next to a banana on a table.\nChef preparing meals doe guests at restaurant or oriental foods.\nA person kiteboarding in the ocean under a cloudy sky.\nTwo zebras and a deer grazing in a grass field.\nTwo cows are beside a group of people standing near a parking lot. \nA dog that is wearing a red hat.\nThe book was laying on the unmade bed.\nA fluffy cat sitting on a laptop keyboard. \nA couple is sitting at a table eating pizza.\nA group of surfers rinse their boards before leaving the beach.\nA man in water waiters sits in a river as he watches a baby bear run by.\nA small personal pan sized pizza on a plate.\nA man riding a skateboard while a woman videotapes it.\nA group of students sitting in front of laptop computers.\nAirplane with vintage bus in front of air plane hangar\na line of red double decker buses driving down the road \nA couple of beds sitting next to each other in a room.\nA large boat with people on the back in the water.\nThe tower of the building has a clock displayed on it.\nThe hands, shirt, red necktie and jacket of a man\nA beige bathroom with a phone beside the toilet.\nA plate that has four hotdogs and buns with a bottle of ketchup and mustard next to it.\na kid poses on a side walk as a baseball player \nA long red wall with car brake lights reflecting off it\nA couple of teddy bears sitting on top of a red heart cake.\nChildren involved in a soccer game in motion trying to move the ball.\nDog jumps over a woman to catch a frisbee in a dog show.\nAn audience watches as a bird spreads its wings.\nThe young man is practicing his tricks on his skateboard. \nA woman stands in a field holding a kite.\nTwo young boys sitting in the back of a truck while holding tennis racquets.\nPeople inside a commuter train, with their luggage and bicycles.\nA man is doing a trick at the skatepark.\nBirds are eating from a bird feeder with a pine cone on it.\nA pizza sitting on top of a white plate on a wooden table.\nThe cat is sleeping underneath the clock. \nA group of people riding motor scooters down a street.\nA window sill with multiple plants on the ledge.\nA woman that is standing on ski's in the snow.\nA herd of zebra walking across a dirt road.\nThe bathroom has white and green tiles on the wall, and green tiles on the floor, along with a white porcelain toilette, and a white garden style tub with a shower hook up.\nA woman sitting on top of a red bench next to a man on a bike.\nA table filled with cakes, cupcakes, pies and whip cream.\n A computer and miscellaneous items on a wooden desk\nA train with smoke coming into the train depot\nA woman holding up measuring cups and a cat watching on the counter.\nThree furry calves standing in a fenced area.\nPeople walk out of the glass doors carrying luggage bags.\nMen in a park with frisbee, with trees, portable toilets, fence, bags, and other people in background.\nA bathroom area with a tub, shelves and a sink.\nA man with a wrench turning off a fire hydrant.\nBaseball players fielding a hit in the infield.\na stop sign sits on the corner of a street \nA pizza with cherry tomatoes in on a pan.\nA living room filled with furniture both in the day and the night.\nA parking meter sitting next to a street with parked cars.\nA man holding a white frisbee while standing on a field.\nMany sail boats sail through the water in a row\nA lady sitting on a wall talking on her cell phone.\nAn adult elephant and two baby elephants are in a lake. \nA bed sitting in a room with a white covering.\nA kitchen area that includes a stove, sink and cabinets.\nMen playing baseball with the batter swinging the bat\nA large brown bear standing next to a large river.\na yellow white and black bird and a bird feeder\nCaucasian girl talking on a cell phone in public.\na child in a bed with a striped sweater and colorful blanket\nA few pieces of luggage sit, stacked neatly, on the ground.\nA baseball player standing next to a base.\nA brown teddy bear standing next to bottles of honey.\nA dog sniffs food in plastic bags in a refrigerator. \nSet of bananas hanging off of a banana tree.\nA woman in a full body ski suit and goggles, skiing on a snow covered slope with a mascot on the side.\nA cheesy pizza sitting on top of a white plate.\na close up of two sheep laying on hay\nsome people standing on a hill with a kite flying above \nThere are Christmas decorations strung up over the street.\nA girl sitting on a stone wall and eating.\nA person standing by a fence with a sheep.\nA baby is looking at a teddy bear that is next to it.\nA black and white cat sitting on top of cabinets.\nPeople stand under umbrellas in the rain next to a motorcycle.\nSkateboarder dressed in animal costume in the middle of a stunt at a skate park.\nA man holding a tennis racket while playing a game of tennis.\nA green military jeep, and motorcycle on display.\nA small child standing with a toothbrush in hand.\nA street sign showing a person walking with a child and a bike sits on the sit of the road. \nA Styrofoam cup of coffee with a wooden stirrer in it is nearly half drank.\nTennis player on opposite end of court waiting for the ball.\nA couple of kids leaning up against a brown teddy bear.\nA plate with a banana and slices of cheese.\nA woman with a cigarette standing, while a group of people with luggage walk towards a bus.\nA small dog lies on a pillow near a toy banana.\nA lady explains the process of milking a cow.\nsome people and kids riding on a small train by some trees \nCouple of elephants standing near the gate at their zoo habitat\ntrain pulling up on the tracks next to a stationary double decker train\nA couple standing in the middle of an old delapitated building.\nA very tall building sitting on top of a sandy beach.\nA baseball player swinging a bat with the catcher and umpire behind him.\nTwo zebra standing side by side next to a pile of stones.\nA man riding a white surfboard on a wave in the ocean.\nA golden clock in a case on display.\nA herd of sheep grazing on a hill side near a tree.\nTwo orange cats on steps with a  bench in the background.\na person walking down a sidewalk holding a colorful umbrella\nCows are grazing in a field in the shade.\nTall green pine trees in back of large grassy field.\nA bird sits on a roof with a tree nearby. \na train of many colors is coming down the track\ntwo people riding surf boards on a body of water\nA group of people converse in an office setting.\nA fire burns while a person rides a green motorcycle and several motorcycles are flipping in the air.\nAn airplane flying in the sky with smoke coming out of it. \nThree zebras walking in a row through dirt.\nTwo palm trees sitting next to a building.\nA  lawn sitting on a snowy sidewalk by a hydrant.\nA colorful pizza sits on a wooden cutting board\nA boy standing in the snow with skis\nA table topped with bags of luggage and purses.\nA public transit train on the train tracks.\nA fenced area with an attached sign housing a zebra.\nHe does have control of the motorcycle while pulling a wheelie.\nThere is a cloth heart on the stuffed teddy bear. \nA man riding a motorcycle down a road near a forest.\nA couple of bikers riding on top of motorcycles down a street.\nA zebra standing next to a rock covered hillside.\na cell phone sits next to a plastic toy \nA woman squatting on the ground brushing her hair.\nA young girl flying a kite in a field.\ntwo men playing a video game with controllers \nA group of three men standing in front of a double decker bus.\nA man standing in front of a picture of a building in plaid shorts.\nA man riding a wave on top of a surfboard.\nPeople snowboarding down a hill in the mountains.\nA man that is sitting on a motorcycle.\nA man riding a horse while other men look on. \nA baby girl places her hand upon a baby boy's forehead. \ncows and  bulls on grass grazing for food.\nTwo people sitting at a table eating food\nA photo of a restroom containing two toilets.\nA dog laying down on top of a couch cushion.\nA herd of elephants walking down a dirt road.\nWooden table with two plates full of cheese pizza.\nA group of young women standing under trees in a park.\nA flat screen TV with an image of a baseball player holding a baseball bat.\nA lemon piece of pie sitting on top of a blue and white plate.\nBaseball player standing on diamond with bat raised.\na person taking a bite of a personal pizza pie covered with pineapples and ham\na male in a black shirt  playing frisbee on some grass\nTwo men are playing together in a park.\nA person at a table with a bowl of food.\nA small glass filled with alcohol sitting on a table.\nA tan clock tower shows the time of 6:34.\nA brown dog laying next to a black and white dog on top of a bed.\nvarious food items in bowls on white counter\nA group of people sitting around two couches.\nA little girl sitting on the floor holding a Wii remote \nA brown, white and black cat looking at a laptop.\nA man in black wetsuit on white surfboard riding wave.\nA dog walking along a beach next to a man on a kiteboard.\nA man on a surfboard riding a wave.\nThe Sun Valley Market on the corner of 10th Ave and Irving.\nCupcakes decorated with hearts and edible toy bears.\nA group of men standing in front of a bar having a conversation.\nA street intersection with old buildings in the background.\nTwo well dressed standing together while on writes a note.\nA tennis player holding a racket and ball\nAn baseball player is swinging at a moving ball while the catcher behind him is ready to catch it.\nThree men are playing a video game together.\nSeveral people who are riding motor scooters, stopped at an intersection.\nA man pushing a cart with lots of luggage on top of it.\nA couple of people that are standing in the sand with a kite.\nAdults walking along with kids, all carrying bags\nThere are four brown and white cows in a row and a couple more behind them.\nA crowd of people standing around the american flag\nA room filled with desk and laptop computers.\nA man and two women standing around a wooden table.\nsome woman standing on stage doing a dance with umbrellas \nThe boy is on his surfboard in the water riding it.\nmeat and veggies in a wavy purple bowl\nA group of men riding up the side of a skateboard ramp.\n A wooden cutting board filled with chopped vegetables.\nA very large pizza covered in cheese and toppings.\na pair of yellow scissors a ladle and some oven mitts\nThese are a few animals out in a field. \nA small tablet attached to a key board, with a mouse.\nA plane is flying through a clear sky\nYoung men standing around together next to a building.\nA large jetliner flying through a cloudy blue sky.\nTwo giraffe standing next to each other around a tree.\ntrees in fall colors and a stop sign to the right. \nA traffic signal flashing red at dusk with a building behind it. \nA group of children sitting at a table eating pieces of cake.\nA man asleep on a park bench, with another empty bench next to him.\nView of a baseball game in action from behind home plate.\nso many people using laptops at a meeting\nA bowl filled with food on top of a wooden table.\nThe clock is built into the side of a brick wall near a statue of two cranes. \nTwo youngsters in the snow with helmets and skis.\nMan hiking in snow in the woods with a backpack.\nTHERE ARE PEOPLE THAT ARE ON THE LAP TOPS IN AN OFFICE \nAn oven filled with three pizzas covered in cheese.\nA white toilet with a  control panel on it's left side.\nA silhouette of a man surfing over waves.\nA woman riding in a boat down a river.\na motorcycle that has some sticks on his back\nAn entire pizza on a serving platter with a spatula.\na small child is getting his hair blow dried \nAn old victorian style bed frame in a bedroom.\nA couple of doctors sitting in front of a sound board.\nA large cheese pizza coming out of an oven.\nA desk with a chair, laptop, two computer monitors, and a keyboard.\na woman in a black dress on a skateboard\nA Macbook laptop showing a flickr webpage on a table next to two remote controls.\nA group of zebras stay close to each other near a log. \nA double decker bus driving down a street past a tall building.\nA neatly made double bed accented by a pair of teddy bears.\na cake made with diapers for a baby shower\nA man riding a motorcycle on top of a race track.\nA train with a flag flying near the tracks\na train car parked in a train yard\nCommode in brightly lit  area of old building. \nThere is a small cargo boat in this river that is surrounded by buildings \nA cat leans over a desk and paws at an army knife. \nGrape tomatoes, apples, and an onion are on a table.\nA large bus driving past a few stores.\nA woman sleeping on a sofa cuddling a teddy bear.\nA woman sitting on a hospital bed is smiling for a photograph.\na tennis player getting ready to hit a serve \nA couple of people standing on top of a sandy beach.\nA train driving on the tracks near trees.\nA mostly empty train station with two trains ready to depart.  \nA snowboarder is in the middle of a jump through the air. \nA photo of a giraffe standing next to trees.\na person jumping a skate board in the air \nA zebra walks in his enclosure in a zoo.\nThree people standing in a parking lot smiling to take a picture.\nA person in a silly shirt sits at a table so they can eat some pizza \nAn adult elephant and a baby elephant are walking.\nA dumpster sitting in front of a building covered in graffiti.\nThree slices of french toast with orange juice on a restaurant table\nA very nice looking motorcycle parked near some bushes.\nA cropped photo of an outhouse with a man in a chicken costume, military men and a polar bear.\nA red motorcycle on display at a show. \nA woman and a man holding Nintendo Wii controllers.\nThe train is rounding the bend of a track on the mountain side. \nAn individual holding a surf board near the shoreline.\nA pair of pizza rolls for sale are on a plate.\nA toilet seat with a fake foam butt on top of it.\na lady on her phone sitting on a curb\nA group of skiers is headed towards the slope\nA man on bicycle carrying bunches of bananas through street.\nA baby sitting on a bed between two laptop computers.\nA bird sitting in a field of beautiful purple flowers.\nA group of people standing on top of a snow covered slope.\nPairs of scissor sitting on top of a bed with a sewing kit.\ntwo people sitting on a couch playing nintendo wii\nA persons foot standing next to a dogs foot.\nA series of images of fruit, cake and other items sitting next to each other.\nA beautiful woman and a man standing in front of a pile of berries.\nA stop sign with two street signs above it.\nTwo cats sitting in the dirt under a tree.\nA motor bike stationary in a parking lot.\nA portable bathroom has a gray plastic urinal.\nA little girl sitting on her dads back.\nThis cat is sitting on a porch near a tire.\nA couple of men playing a game of frisbee in a park.\nA toddler celebrates his birthday with a cupcake.\nThis person is riding their horse near the water. \nStraight and round silver objects on top of each other.\nA man is riding with a box on the back of his bike.\nA little girl hugging another child next to a picnic table with food.\na female wearing black a sink and a bed\nA group of families with lots of children in a park.\nA person riding a snowboard down a snow covered slope.\nA man in front of a Christmas tree with his dog.\nA bunch of men smiling for a camera at a crowded table.\nA room with a chair, a piano, and a laptop.\nA bathroom with towels draped of the curtain rod \nA large commercial aircraft flying in the sky\nTwo men standing in a living room holding game controllers.\nthere is a female surfer that is riding a small wave \nA man riding a snowboard down a snow covered slope.\nOdd red fire hydrant with an Asian lady standing next to it.\nA baseball player holding a baseball bat during a baseball game.\nA desk topped with a bag and other items.\nA man on pier with dog jumping for frisbee into water.\nA bald headed man standing next to a woman in a office.\nA red people ferry cruises along the pay with a load of passengers. \nA row of urinals stand on a wall in a bathroom area.\nA man changes a light bulb in a darkened bar.\nA view of a building with two clocks on it. \nA young girl in a white top poses with a yellow tennis racket.\nA woman is seen in the mirror drying her hair.\nA person standing on a walkway area and flying a kite in the air above him.\nA kitchen with lots of objects on the counter.\nA red fire hydrant in front of a window with large windows.\nA pizza on top of a white plate covered in greens.\nOne zebra is lying down and another is standing near it.\nA giraffes peaking over a rock with trees in the background.\nA gray and white cat sitting in blue bowl.\nA kitchen filled with wooden cabinets and a table.\nA man looking in the refrigerator with a cat also looking inside \nA toilet and towel rack are in a bathroom.\nA woman wearing red top and black skirt holding umbrella\nPerson plying video of female athlete on handheld tablet.\nAn office cubicle with clutter on the desk\nA farmers marked filled with lots of  fresh produce.\nA group of young girls kicking around a soccer ball.\nAn image of a bedroom with a bed in the middle if the room\nA man thinks as he stands in front of a sign.\nA group of young men playing a game of frisbee.\na table with a keyboard and a mouse on it\nA bunch of men standing near a table filled with wine glasses\nthis is a very dark picture of a room with a shelf\nA man with glasses and a tie clip sits in his car.\na building with a very large clock on the side of it\nA couple of black horses pulling a wagon along a road.\nA woman sitting on a couch in a public restroom. \nPlayer making a goal during the soccer game match\na couple of horse that are next to a fence\nA side by side comparison of the same room in the past and present.  \nA table of food that includes peanuts and two hot dogs.\nA group of children with teddy bears lined up for a photo.\nA couple of people walking across a lush green field.\na couple of cows are laying in a field\nA person who is taking a picture of something with his phone. \nA big wooden dining table filled with lots of food.\nA LIVING ROOM WITH FURNITURE, A FIREPLACE, AND A LARGE SCENIC WINDOW\nA person that is laying down on a surfboard in the water.\nHot dog on a roll with cheese, onions, and herbs.\nThe large room has a kitchen and a living space in it.\nA giraffe and several elephants at the water's edge.\nA blue and white street sign that reads \"Othello.\"\nThe soccer player jumps to hit the ball with his head. \nA plate of food containing fruit, bread, cheese and an egg.\nA crowd of people flying kites on top of a field.\nA man standing next to a woman on a tennis court.\nA bunch of bicycles parked on the street with items sitting around them \nA giraffe trying to lick a little girl.\nA hallway with yellow painted walls and a light mounted on a wall.\nA spotted kitten sitting on a wooden bench.\na couple of trains sit parked under some power lines \nA sad, young girl sits on her bed, moping. \nA man is looking at his laptop screen reading live posts.\nThree cats are lying on an unmade bed.\na person jumping a snow board in the air\nAn elephant with a large trunk sitting on top of a ground.\nsome elephants in a field of grass near a tree\nA Texas Longhorn bull grazing on grass. \nSome colorful kites are flying against the cloudy sky.\nA man riding skis on top of a rail.\nA wooden table topped with four white bowls.\nA man on a surf board riding the waves in the ocean.\nA warning sign among the tall evergreen trees.\nA purse sits on a counter in a kitchen.\nA baseball player swinging a bat at a ball.\nA male tennis player in a green shirt during a match.\nA woman flying kites in a cloudy sky.\nThe bus is going through the traffic light.\nA gray fire hydrant sitting next to a brick wall.\nA plane flying in the sky during the day.\nThere is a pizza with some slices taken out of it\nMan riding surfboard ahead of breaking wave at ocean.\nA woman standing on a green field flying a colorful kite.\nA woman walking down a street while holding an umbrella.\nA blue and white train passing by other trains and buildings.\na table that has some food on plates\nA man holding a tie across his face with a formal outfit on.\nA person sitting at a table with some drinks.\nA woman laying on a bed without sheets.\nA young man poses for a photo with his mouth open.\nA couple of kites are flying in the sky\nLady standing in airport with luggage in front of her \nA woman with a baby being held on a skateboard\nA zebra eating some grass in some open area.\nA woman riding skis down a snow covered slope.\na close up of a cat on the ground near a chair\na yellow and white fire hydrant near a building\nA man sitting on his skateboard in a field.\nA couple of people in a room with a Frisbee.\nA couple of red motorcycles parked next to each other.\nA hand holding a blue and black cellphone.\nA herd of cows standing on a grass covered hillside.\na fruit market with bananas hanging above head hieght\nA woman petting a horse in a enclosure.\nA cat sitting on a table in front of a vase of flowers.\nThe men are up to their knees in the water.\nA tower that has a clock on the side of it.\nA man throws a frisbee to his wild dog\nAn airplane flying through the clouds in the sky. \nA woman sitting in a chair while holding a young child.\nThe bathroom has wood trim and white furniture.\nA man flying a black and yellow kite\nA man in a red shirt leaning up against a road sign with a camel on it.\nTwo wine glasses and bread on top of a piece of paper\nBaseball player swings his bat at a baseball.\nA clock sits by itself in front of trees\nA zebra standing next to a fountain and a wooden fence.\nA person is holding a surf board in their hand\nThe sleek fighter jet is flying sideways through the air. \nA cat sprawled out over the top of a laptop computer keyboard.\nA young man jumping up, doing a trick on a skateboard.\na train sitting on a train track next to some trees\nA cats tail sitting on to of a laptop computer on a desk.\nA couple of people with a laptop at a table.\na male paddle boarder water and a swimmer\nA gold bus traveling on a single lane road\nTwo benches on a sidewalk in front of a urban street and some houses.\nA desert with icing and a sliced apple beside it.\nA batter misses a baseball while a empire tries to catch it .\na spotty banana sitting on top of an orange and some other fruit \nMany appliances on the shell of a store with containers\nA herd of sheep grazing on a lush green filed.\na man talking to a group of people and standing in front of a screen\nA young boy reaching into a bowl sitting on the ground.\na kid is in the air on a skateboard\nA beautiful woman standing on the side of a rad next to a street.\nTwo well dressed men amongst a group of people watching and carrying microphones.\nA man and woman holding a tennis racket over another mans head.\nA black and white dog laying on a bed.\na kitchen with a  sink surrounded by a bunch of cluttered items\nMany suitcases are lined up on a floor\nA shirtless man on a tennis court holding a tennis racket.\nA herd of elephants walking down a river with people riding on their backs.\nA square of cheesecake on a marble cutting board with a two-pronged fork.\nSomeone is preparing many donuts at one time. \nSomewhere in Asia a man holding the lead to a cow in a rice paddy\nA bunch of four bananas that is turning red.\ncars wait at red light at an intersection by mountains\nCups, fruit and a person in a white t shirt\nA black and white photo of a man holding his child in the water.\nTwo white bird sitting on top of a street light.\na nice sandwich and a nice salad onn a plate\nstuffed animals are sitting together in a street corner\nA cat sitting on top of a wooden desk.\nA yellow train passing by a train station's loading area.\nThis photo has a blurry background but you can see some nice wooden benches in the foreground.\nA man dressed loudly is using his cell phone.\nA boy doing a skateboard trick on a street.\nSome young skateboarders are riding down the sidewalk.\nFive cows graze in front of a two store white building.\nA person holding a skateboard overlooks a dead field of crops.\nA dummy in a display case wearing a suit and tie.\na tennis player stretching to hit a tennis ball \nBaby cow eating apple from hand with wood fence\nA motorcycle with a red seat is on top of a stand. \nAn older gentleman flying a kite at a park\nTwo zebras are sitting on the ground. \na man in a wheel chair smiles as he open a oven\na red white and black plane parked inside a building \nA man sits at a desk with two computers.\nA man sitting at a table with lots of items on it.\nA brown and white cat resting on wooden furniture\nA toilet bowl with no toilet seat in a restroom\na man walking out of the water with his surfboard\nA steel oven is pictured in this image.\nA freshly made pizza is on an oven rack.\nA man riding on top of a wave on a surfboard.\nA view out of a window that shows a winding river.\na large white boat floating in the middle of a lake.\nA bathroom sink under a mirror and lights.\nA family of ducks floating across a lake.\nA living room filled with furniture next to a fire place.\na man putting his bike on a rack in front of the bus\nthree snow skiers in full gear headed down the mountain\nThe man stands in front of a television playing a video game.\nA man cutting a wedding cake in a kilt with his bride.\nA few small kids playing a game of Wii.\nA survival kit containing a variety of items.\nA sandwich with a pickle in a container.\n A baseball player is running home from third base\nA lot of traffic on the road in the city.\nA man holding a silver flip phone open in front of his face.\nA girl with a drink sitting on the toilet.\nA man in a baseball uniform throwing a baseball bat.\nA decorative vase with some yellow flowers in it.\nA picture of a clock tower with small bells.\nLeftover deserts line a very long plate. \nStreet sign on overhanging post displayed above roadway.\nA woman smiling while holding a sandwich while sitting down.\nA yellow teddy bear on a little girls bed\nA young boy wearing a yellow shirt holding a bat.\nTwo television that are sitting on stands in a room.\na boy skating very high on the walking steps\nA bathroom that has a microphone and amplifier in it.\nA long stone wall at a church with a cemetary.\nA clock on wood wall above various gaming machines.\nAn airplane flying through a smoggy gray sky.\nA group of people skiing around a snow covered slope.\nA bed in a bedroom between two lamps.\nA man riding a bike while talking on a cell phone.\nA street has a traffic light, a parked bicycle, and a car on it.\na living room with hardwood foors , a tv and table\nA pair of children sit on a giraffe while other children stand nearby.\nA man riding a wave on top of a surfboard.\nA small group of people stand at the side of the sidewalk by a metal statue\nA tray topped with two plates of food and a drink.\nA woman is holding a bowl made of bananas on her head\nTwo men stand in front of a television playing video games.\nA large large floating out in the water with an airplane flying over it.\nA variety of old motorcycles on display in a shop\nA train is on the track waiting in the middle of the afternoon.\nA bench sitting in a grassy area. \nA brown bear is sitting hunched over and his paws are together on a grassy area.\nA close up of a sandwich with a drink in the back.\nThe dog is standing on the boat staring at something.\nA group of people playing a game of soccer on top of a field.\nThe dog is standing on the boat deck.\nA red fire hydrant with a green cap with a bird on top of it.\nA group of elephants standing next to each other .\nA herd of zebra standing near some bushes and rocks.\nA desk sitting next to a showroom of cars in it.\nA man wearing a North Carolina basketball jersey performs skateboard tricks\nA city full of buildings under a smoggy sky.\nA white church with a giant clock tower mounted to it's sides.\nA boy kneeling down by his skateboard and holding up his arm cast.\nThe baseball player is trying to throw the ball. \nA frying pan on the stove containing broccoli.\nA group of men traveling on horses in the water,\nA black duck floating in a wavy pond.\nA white plate topped with steak and eggs and a fruit cup.\nA large white airplane flying beneath a blue sky.\nA large group of people who are waiting at a luggage carousel. \ntwo cats in an office space looking at the camera\nA couple of people sitting on top of a elephant.\nA large tower with a clock on it near a busy city street.\nA red and white bus parked under an over pass.\nA white road sign suspended over a highway.\nA surfer ridding a wave crouching down on their surfboard.\nA desktop computer that is sitting on a desk.\nA motorcycle parked next to an office desk.\nA large boat sailing across a large lake.\nA group of men standing on a street corner next to a stop sign.\nA white plate full of food with meat and veggies. \nA white bathroom with a sink, towels and tub.\nA horse drawn carriage parked on top of a field.\nA giraffe walking across a lush green field.\nA rather large heard of elephants, including a baby. \nThere are two men that are out playing baseball.\nA young child wearing a jacket and eating a donut.\nA seagull swims toward a rocky shore in a lake.\nBirds perched up on a tree branch next to a window.\na woman is sitting with an umbrella outside\nA green motor bike with an odd leather seat sitting on a road.\nA couple of girls sitting next to each other.\nClose up of dog holding a soft frisbee in it's mouth\nSeveral boats out off the shore of a lake.\na person operating a blender hooked up to a small motor\nPeople get on a bus on a street next to a building. \nA wooden table with an inverted umbrella on it.\nA man brushes his teeth in the dark of night.\nA couple of hipsters standing next to each other.\nA dog carrying packs on his back while being walked. \nA man standing on a surfboard with a paddle.\na couple of buses that are lined up by some buildings\nOffice space with cat on the television and work.\nThere is a man skateboard on the side of a wall.\nA living area with table, chairs and a sofa.\nA pizza is being eaten with a knife and fork.\nA group of elephants standing in the water.\nCity bus on an empty city street near a STOP sign. \na person riding a surf board on a wave \nA cake sitting on top of a table next to a pie.\nYoung Giraffe peeking his head into a crevice in the exhibit wall.\nA man riding skis down a snow covered slope.\nA tennis player with his leg up in the air and a racket in one hand.\na plate that has a orange slice on it\nTwo young boys eating carrots while sitting on a bed.\nGrown cat sitting in front of a closed door leading outside. \nA person on skis in the snow pulling on a cord.\nThis hazy picture depicts traffic on a busy street.\nA woman and a man sitting to each other  blue couch.\na close up of a tray of food with a sandwich on a table\na man that is surfing in the ocean\nThere are a lot of appliances stacked in the room.\nA women who is carrying a young girl wearing snow skis.\nA very cute child sitting on the commode with his pants on\nA man is sitting in a bathtub cowering and naked.\nA polar bear stands over an orange disc in his enclosure. \nA man standing on top of a field holding a bat.\nA kitchen that has many things in the sink and on the counter.\nA group of people that are at the beach hanging out.\nA surfer riding their surfboard through waves in the ocean.\nBunches of garlic and bananas hanging from a stall.\nA group of people sitting at a table eating food.\nTwo giraffe standing next to each other in a field.\nA sweet potato cut in half next to a banana.\nTrain cars on railroad tracks with graffiti on the side.  \nA group of people stand in shallow water near a wind farm. \nA woman is sitting in a chair with an umbrella.\nA counter topped with bowls of food and a cutting board.\na couple of buildings that has some cars outside of them\nA young man on a skateboard doing tricks\nA person standing in front of another who is sitting on a coach.\nThe people are walking through snow in a wooded area. \na person riding on a bicycle on the street in front of some cars\na baby elephant walk next to some adult elephants \nA man with a beard riding skis while holding ski poles.\nLots of cows eating grass on a large field.\nA Boston Red Sox player up to bat.\nA kitty cat standing on a sink playing with a mirror.\nTwo people skateboarding down a roadway in a downhill descent.\nTwo men taking care of an elephant near stairs.\nThe bottom half of a tennis player holding a racket.\nA small boy with blonde hair eats an apple\nTHERE IS A BOAT THAT IS IN THE WATER \na vehicle got an accident and a police officer looking\nThe group of people are flying their kites in the field. \nThree men holding snowboards on top of a mountain\nA group of people standing in a field.\na parking area for motorcycles and bicycles along a street\nA city street with traffic at a stoplight \na kite with a long tail some people and a black truck\nA no turning sign sits on a residential street\nA man holding a Wii game controller in his hands.\na cat laying down stretched out near a laptop\nA man is in a kayak in a pool with a ball.\nBlack and white photo of a man in a tie smiling.\nThe cat's gaze is focused on something above his head.\nA close up of a person holding the Wii remote.\nA man riding a wave on top of a surfboard.\nA bunch of trains that are on a track.\nTWO LADIES ARE OUT SPENDING THE DAY SKIING\nA black and white photo of a man wearing several ties.\ntwo rams walking side by side walking across the road\nA boy in blue hat riding on a carousel.\nA wooden table topped with a computer monitor and two keyboards.\nA sign is shown at the edge of a street.\nA table with scissors and a bottle of podge next to a cutting board.\nA bus going to crosstown parked on side of road.\nA guy on a surf board in the water.\nWoman in a white uniform holding a pencil to wall. \nA stop sign is lit up in the dark of night.\nA man in a black shirt and orange bow tie.\nA little kid riding a green skateboard with yellow wheels.\nA blurry photo of two laptops and a computer monitor.\nA living room with wooden floors and a brown couch.\nAn animal standing on the side of a grass covered field.\nA small white bard with  a long beak on a branch.\nA statue of a person and a elephant on a street.\nThere is a man picking bananas next to a street.\na couple of people that are surfing in some water\nA large kitchen with white cabinets and two tables.\na man rides on a horse near a blue car\nTwo adult pheasants walking slowly across a street\nThree people and a dog are riding on a horse drawn carriage.\nA cat lying under a laptop and beside another computer. \na narrow fridge sitting next to a big window \nA classroom of small children eating pizza. \ntwo zebras are standing together in the woods\na small boy standing in front of a boat\nA laptop computer is on a cluttered desk.\nAn adult giraffe sits down while a baby giraffe investigates.\nA large red umbrella on a metal pole.\nA baby elephant next to an adult elephant\nA group of people sitting next to each other .\na wooden desk outdoors with pink flowers in front of it.\na cooked pizza near an uncooked pizza \nRed and white fire hydrant sitting on the side of a city street. \nTwo horses in a field with mountains in the background. \nA herd of elephants walking along a lush green field.\na person cutting a pizza with a knife\nA stop sign on a beach with everyone in the water\nBlow drier and brush sitting on top of newspaper.\nA large black semi parked in a parking lot.\nA kitchen sink and part of a stove with a doorway leading into an adjacent room\nA person on a skateboard rides on a platform.\nA yellow and black train on a track.\na baseball player on a field with a bat \nA calico cat is curled up on a mat taking a nap.\nThis is an image of a sign to pay here to park.\nA man with his foot on the face of someone lying on the ground.\nA crowded city street filled with traffic at night.\nA bowl of broccoli with sauce over it.\nA group of people walking down a walkway.\nA close up of an elephant's orange eye. \nAn elephant standing next to a smaller elephant.\nA big truck going down the street with graffiti on it.\nA man taking a selfie while brushing his teeth and looking in the mirror \nA close up of an orange in a red serving bowl.\na man is holding a racket looking up at the ball\nMany people bike through the streets at night.\nA man and woman under an umbrella on a sidewalk at night.\nA table with four bowls of food on the top.\na few birds eating stuff off the ground\nA small bird sitting on a beach next to the ocean.\nA zebra and baby grazing on a grassy field.\nA guy looking into an empty refrigerator.  \nTwo horses racing down a grass track with number 13 horse ahead of the number 9 horse.\nA mother standing behind two baby boys sitting at a table.\na parking meter is in front of a vehicle \nthere are two sandwiches that are on two white plates\nA train is traveling fast down a track. \nA group of people holding up wine glasses.\nA glass filled with different flavored candy canes.\nA beautiful woman in a wedding dress cutting cake with her husband.\na giraffe checking out the bark on a tree\nA TV with two cows standing in a forest displayed on it's screen.\nA white bathroom has a white shower curtain.\nA female tennis player in the distance prepares to serve. \nA brown dog walking across a grass covered field.\nSmall bird standing on rope near open ocean.\nA couple of hotdogs on a paper plate.\nThe dog brings the baseball bat back to the dugout.\nA gray and white cat drinking milk from a bottle.\nA kitchen area is shown with a bar.\nTwo young girls riding on a horse together with an older girl walking next to the horse.\nA sky view looking at the clock tower of a building.\na stuffed teddy bear sitting on a stool\nA table topped with a multi layered cake.\nTwo pictures of streets with cars on them. \nA cat laying on top of a cat bed.\nA street and the buildings on it and some construction.\nThere are carrots, apples and two full cups on the cutting board. \nSeveral stacks of individual bananas in aluminum trays.\nvarious items from a woman's purse, including change, wallet, planner, music-player, knitting project, and more\nA cooler and fishing gear on a fishing pier.\nA computer mouse sitting next to a keyboard.\nBroccoli and plants growing in an outdoor garden setting\nA table in a small room with some pots.\nBoys in a skate board park built in a parking lot.\nA stop sign that is by a lot of plants.\nsandwiches on a bar wit beer and a bartender \nA train that is going through a city.\nA man sitting at a table in front of a laptop computer.\nTwo trains passing in different directions in a train yard.\nA street sign that is on the side of a pole.\nA toilet sitting next to a bathroom counter.\nTwo kids in blue shirts playing a game of baseball.\nA boy with a monkey backpack throws a Frisbee.\nTwo giraffes standing outdoors near a brick building.\nA woman straddling a surfboard in the water with a camera on the surfboard.\nA display of flowering bushes in pots on a backyard patio.\nA man gets ready to launch a colorful kite on the beach.\nA man is jumping in the air catching a Frisbee.\nA orange tabby cat laying down on a black car\nA baseball player from the turn of the century poses for a baseball card.\na room that has some cabinets and a window in it\nA couple of lawn chairs sitting on top of a beach under an umbrella.\nA kitchen that has a counter with a laptop on it.\nSmall white toilet sitting next to a small white sink. \nA group of people standing next to bags of luggage.\na catcher and a batter in a baseball field\nA woman checking out her surfboard at the beach.\nTrain traveling through countryside near tall brick structure.\nA shopping mall filled with lots of different shops.\nAn older woman standing next to two children.\nA baby cow standing in a pen next to another cow.\nA young boy in a helmet with other boys on skateboards behind him.\nA restroom view of a toilet, sink, and shower curtain.\nA living room with a large green couch and office desk.\nA fenced in pasture with four horses standing around eating grass. \na woman attempting to grab a frisbee with her head on the beach\nA kitchen area with a table, dishwasher and stove.\nSome parents sitting behind a fence watching a baseball game\nA dog sitting on a couch while staring out a window.\nA green, yellow and blue truck driving down a street.\nA couple glasses of wine and some food.\na person in a dress on top of a horse\nA man wearing a blue bow tie and a fedora hat in a car. \nA boy at the beach rinses off a Frisbee in the water.\nVarious vehicles driving on a road surrounded by trees.\nA baby in a play chair in a living room.\nMan riding a surf board across the crest of  wave\ntwo children on a field of grass playing frisbee\na person riding a surf board on a wave\nA desk holds a couple computers and some speakers.  \nA person on a beach with a surf board.\nA pool full of men and woman having drinks.\nA blue cutting board with a piece of toast that includes peanut butter and jam.\na man and woman sitting on a stone bench under umbrellas\nThe bus and the car are driving down the street.\nTwo zebras standing side by side in a field. \nA man laying on top of a wall next to a bike.\nA metal pole with four different street signs hanging on it's side.\nA recliner chair sitting next to a table with a lamp.\nA road work sign stands near a curb on a residential street.\nAn end table has several vases and photographs\nA small, well organized desk with a computer and books.\nA young man standing near a picture frame. \nA bathroom with a white toilet sitting next to a bathroom sink.\nA row of white teddy bears on shelf next to DVDs.\nA flat screen tv sitting on top of a wooden dresser.\nA clock attached to a building outside for others to see.\nA young man riding a skateboard up a black ramp.\nCattle grazing on grass near a lake surrounded by mountain..\nA monitor with an ipod, keyboard, mouse, camera, speakers and hard drive tower.\nA yellow fire hydrant is standing in the snow. \nA baseball player holding a bat on a field.\nAn attentive dog sitting along the back of an overstuffed sofa, with another dog sniffing while standing behind a curtain.\nA kitchen counter topped with ripe bananas and chocolate.\nA pug chews on a large water bottle. \nA man in an Arabic type outfit on a cell phone.\nA rear view mirror shows an elephant walking down the road.\nA collection of teddy bears bearing Swiss flags\nA large neon sign sitting next to a green traffic sign.\nA very tall clock tower with clocks on each of it's sides.\nA man in a brown shirt is playing a video game. \nA zebra standing on top of a grass covered field.\nA baby sitting on a bed using a laptop computer.\nthere are two slices of different pizzas on a paper plate\ncloseup of an aquarium full of water and fish\na person walking on a snow covered field.\nA street sign sitting on top of a snow covered traffic lights.\nA black and white dog wrapped in a white blanket.\nan image of a water barges that are docked\nA tray of doughnuts is sitting next to a fryer.\nA man holds up his phone and looks at the phone. \nA vase filled with a colorful flower on top of a table.\nA red white and blue train is pulled up at the passenger station.\nTwo black children wearing baseball hats and holding bats.\nTwo brown and white dogs running in a park. \nThree brown bears walking and standing near a snowy mountain. \nA pizza sitting on top of a white plate covered in cheese and veggies.\nA tray filled with two foot long hot dogs and a regular hot dog next to onion rings.\nA man flying through the air while riding a skateboard.\nA bench with potted plants sitting on top of it. \nA group of boats floating on a body of water.\nThere is a multi colored train pulling into a station.\na red fire hydrogen next to a road in front of a bus\nA Samsung phone is being put in a pocket.\nA bird perched up in a tree covered in green leaves.\nA blue truck with tarp covered trailer drives down the road.\na fancy white train parked by the platform \nA man standing next to a woman inside of a room.\na woman riding a bike in the street and a building with a clock in the background\nA man riding upside down on a skateboard on the side of a ramp.\nThis plastic container has a piece of mean in it along with some broccoli and mushrooms.\nA guy wearing a wetsuit surfing a wave. \nA black and white cat stares downward at a window.\nA blue and yellow fire hydrant next to a yellow cone.\nA group of buses sitting in a rural area.\nA man standing behind a car next to a tent.\nSeveral parked bikes sitting in the grass near a tree.\ntwo women sitting and looking at a cell phone \nA man holding a beer next to a man in a blue shirt.\nA plate with a bowl and food on it. \na close up of a person operating a cell phone\nIt doesn't appear to be a beautiful day outside.\nA man preparing food in a restaurant kitchen. \nA tray of cupcakes is set on top of a kitchen counter.\nA living room with dark colored furniture and a fire place.\nA sign labeling donuts in a bakery with donuts\nTwo black cows facing each other with woods behind them.\nA long train parked in front of a train station next to a  loading platform.\nA blue bike parked next to a red fire hydrant.\nA cat laying in a green bowl on a wooden table.\nA four-picture collage of three elephants interacting with each other. \nAn airport filled with large passenger jets parked next to each other.\nA group photo of boys in front of a building.\nA white clock mounted to a white wall next to a curtain.\na group of people are eating pizza at a long table\nPeople in a grocery story that sells fruit and drinks.\nAn open toilet with a sign posted on it.\nA piece of luggage is ready to go with cold wear on top for quick usage.\na person is riding a horse by the beach\nA hotdog with toppings served in a red basket\nA woman dancing in front of a large mirror.\nA big billboard is painted onto the side of a brick building.\nTwo big trucks are parked in a parking lot.\nA traffic light sitting next to a cluster of traffic cones.\nA person that is riding a wave while surfing.\nThe two figurines and bells are under the clock.\nA young boy tossing a soccer ball across a field.\nA bird that is flying over the sand.\nThe dog is perched on the seat of the car looking out the window\nA man standing next to a bear on a Chain leash.\nA very large train is traveling down the railroad tracks. \nA young man standing on top of a tennis court holding a racquet.\nFour differently colored teddy bears on a couch\nA cat sitting in front of a giant TV looking at fireworks.\nA child sits at a table with stuffed toys.\nA giraffe running across a grass covered field.\nThree elephants in a grassy area with trees around.\nA group of guys in  a dugout with their gear \nA man is about to take a swing at the Tennis ball. \nA couple of people walking down a street holding umbrellas.\nlittle dude shredding the gnar on flat ground\nA vintage photo from the 1950's of a small town street lined with parked cars.\nA luggage cart sitting inside of a brick building.\nA red stove top oven sitting next to a building.\nA cat sleeping on top of a wooden bench.\nA young boy with a bowl haircut holding  a Nintendo Wii controller.\nElephant eating leaves from tree standing on grass.\nSeveral bottles of wine on a display table.\nTwo kids playing baseball, one of them is catching the ball. \nTwo birds going up the back of a giraffe. \nA crowd of people standing next to each other.\nA young person kneeling down on a grassy park.\nThe cat is looking through the window at  the animal eating the seed in the feeder.\nA chocolate cake topped with lots of raspberries.\nA woman with a polka-dotted umbrella and a grey shirt reading a pamphlet.\nA man with a white cap and clothes holding something.\nA red stop sign sitting under a couple of street signs.\nGroup of motorcycle riders looking over traffic on the street\nA tennis player with racket and a bag with a baby\nA group of people standing next to each other on snow.\nThree giraffes are eating food from the feeder.\nSeveral motorcycles riding down the road in formation.\nA couple of airplanes that are sitting on a runway.\na tiled bathroom with a toilet and bathtub inside of it \nGrandpa enjoying the day playing flying disc with his granddaughter\nA bench sitting along side of river next to tree.\nA baby walks down a brick sidewalk as she carries a blue umbrella.\nA kitchen with a microwave, a refrigerator, and a dishwasher.\nThe people are looking at the giraffes in the field.\na long wooden bench on a sidewalk next to a street.\nA man sitting on a bench near a pole.\nA picture of a plane is flying in the air.\nA custom cake featuring a fisherman for a man's 65th birthday. \nTwo younger boys playing baseball together on a field.\nA white plate topped with sliced up fruit.\nA clock sitting in a yard behind a fence.\nA toilet room in the process of being renovated \nThe walls of a room painted blue with white clouds\nTwo people are sitting beside one another working on their laptops.\nA kitchen that has a checkered pattern floor.\nA man taking a swing at a tennis ball\nA long green and yellow train traveling down tracks.\nThe tables at the restaurant are very crowded with people. \nA man holds a surfboard at the beach.\nA man holding a kite with a sea of people behind him. \nA big building perched atop a hill with a sign in the foreground.\nA motorcycle parked outside in a parking lot near the beach.\nA MAN IS ON STAGE SINGING WHILE SOMEONE HANDS HIM A BEAR\nA table full of food and two glasses with drinks .\nSmall black and white pig on wheeled cart with protest sign.\nAn airplane sitting on the tarmac in front of a hanger.\na spoon with some foam and a tomato sitting in it \nA couple of women that are holding umbrellas.\nthere is a small white pizza that is on a small plate\nA baby sits at a white table and on the table are a baby bottle and a cupcake with a one sitting on it.\nA kitchen filled with metal appliances and a window.\nA white plate with pizza, chicken wings, an egg role, and ranch dressing.\nA block of pigeons gathered  around a person sitting on a park bench.\nA couple of men playing a game of frisbee.\nA woman holding a tennis racket in her hand\nA large collection of boats parked in the waters of the dock. \nA woman standing around a group of dogs.\nA living room with a couch next to a  table and a lamp.\nA group of people sitting around a table filled with food.\nTwo men riding snowboards in a snow storm down a slope.\nA fire hydrant next to a bush at a park.\nA couple of kids standing around a red fire hydrant.\nA cow standing in the shade of a tree.\nA pizza that is sitting on a plastic tray.\nthe black cat is sitting on top of the old suit case.\nA white plate of food tha includes meat and vegetables.\nThis is an aerial view of the nearly-finished bathroom  in a house still under construction.\na baseball player catches a ball in his glove \nA man riding a skateboard on a sidewalk.\nA woman in black wetsuit on a blue and white boogie board.\nA row of surfboards sticking out of the sand sitting next to each other.\nA line of buses waiting to take passengers where they need to go.\nA man in blue shirt and white shorts playing tennis.\nA big basket that is holding a lot of ripe bananas in it..\nA gray cat eating a treat from a humans hand.\nA cat stares at a television from close up.\nA giant chair with a horse statue on it\nAn office with a leather couch surrounded by books.\nA heard of cattle grazing in a field of grass.\nPerson looking at video on cell phone in crowded area.\nA wooden stick figure is surrounded by fruit.\nA train next to a train station with city in background.\nOne way signs at N 11 St and Brewers Row near a brick building.\nA commuter train passes people sitting on a bench at a train station.\nA girl with a black eye and pig tails sits in a suitcase.\nA large truck drives up to an airplane.\nA man on a surfboard jumping over a wave.\na parked truck behind a railing with its hood open\nA man hiking through a snow covered forest \nA cat laying its head against a teddy bear.\nA white and blue bus driving past houses on a city street.\nA rowboat set next to a dock in a river.\nA large gray elephant with huge white tusk.\na black cat lying under a black umbrella\nthis is a group of giraffes walking together\nBike racks lined up along a road, filled with bicycles.\nA hand holding a smartphone with a small screen.\na man surfing a small wave on part of a river\nthere are two cats that are laying inside of a tub\nA woman looking at a picture on a computer\nA group of children standing around a table together.\nA girl playing with a toy on a room floor.\na white plate of food and a drink on the side\nA road with two people walking with umbrellas.\nA person rests his skateboard on his toe.\nA brown horse standing in the middle of a forest.\nthere are two brown bears that are playing together in the water\nVolunteer firemen with their truck shooting out a jet of water\nA tall building with set  of two entrances.\nA baseball player bobble head next to two computer monitors on a desk.\nA person wearing skis on a mountain top.\nA tractor trailer on one side of a road and a car travelling behind another car can be seen in the car's mirror. \nA bedroom with open doors to a bathroom.\nLate night food carts are open for business.\nA green bus with a smaller bus sitting on top of it.\nA tennis player prepares his swing by extending his arm up.\nA pizza sitting on top of a white plate covered in cheese and sauce.\nA sign directs people towards four waiting lanes ahead.\na man that is on a snowy trail\nThe bus has bikes on the front of it \nA woman in a colorful shirt is skiing while holding poles.\nA team of baseball players playing a game of baseball.\nA large living room with leather couches and wood flooring\nThe school bus is remodeled with bright paint.\na person talking a pic of pizza on the counter\nA wooden floored room with various chairs around it.\nA brioche, cantaloupe and cup of tea on a table. \nAn old rusty bus is parked next to a small church\nA metal bowl filled with wet juicy oranges.\nThe Hogwarts Express is ready for the luggage\nA pod of elephants in the African plains\nPeople loading onto a orange and silver metro bus.\nVarious stuffed animals behind a pane of glass\nA group of people sitting at a table eating plates of food.\nA bathroom with a white toilet next to a shower.\na toy holding a paper umbrella on a tight rope.\nView of the street with a traffic signal and shops.\nI am unable to see the image above.\nFast moving male skateboarder against light colored background.\nThe plane is flying high in the sky.\na bunch of heart shaped cakes are on display\nSome very cute stuffed animals in funny costumes together.\nMan being silly and jumping on the bed.\nA person on a surfboard in the water.\nA dog wearing a red bag on his shoulder runs in the snow.\nA floral arrangement with flowering twigs in an orange vase.\nAn adorable child wading in water while holding onto a boogie board.\nA woman sitting on a bench next to a child in a stroller.\nA group of red, yellow and orange fruit  mixed together.\nA young child sits eating between two adults.\nA small plan is parked half on a cement area and half in a field while the ground is wet.\nMan in mid air reaching between his legs to reach a frisbee. \nA plate has a waffle, some fruit and ice cream on it.\nA photo taken from a boat with a long bridge in the background.\nA man holding one water ski at the lake.\nA gray and white cat sitting in window next to a tiger cat.\nA man that has a skateboard in the air.\nA man picking up trash with a garbage bag at a food court.\na baseball player talks with an umpire \nA young girl standing under a red tarp on street.\nSparrow bird on branch, with beak inspecting leaves on branch\nAn white oven with cookies being baked inside.\nA black and white photo of two teddy bears posing near two cameras.\nA couple of parking meters sitting on top of a patch of grass.\nThe shirtless man with a skateboard has a shirt wrapped around his head.\nA bus that is sitting by a car in the street.\nA kitchen with an odd shaped counter top with a metallic stove oven.\nA woman kneeling down near an elephant to touch it's trunk.\nTwo birds sitting a cage perched on top of a branch.\nA city at night with a well lit blue building.\nA man riding a bike down a street next to a street sign.\na car is stopped in the street for people to cross\nA brown baskets filled with lots of remotes and game controllers.\nA young man is sitting on his blue motorcycle. \nA train pulling out of a tunnel near a tall building.\nA bath tub sitting next to a sink in a bathroom.\nA herd of zebra stand on a plain in the wild.\nA hotdog stand with outside seating and bright lights.\nDouble-decker bus driving down a crowded city street.\nA brown and white cow standing on a lush green field.\na burnt tea spoon sits on a wooden surface \nYellow Train stopped at the station in front of a bench.  \nThe two cats are sitting on the blue chair.\nA large clock tower rises up above the surrounding buildings.\nA group of people on a gondola underneath a bridge.\na tennis racket with a tennis ball on it \nA dog tied to a white fire hydrant on a sidewalk.\nA number of trains sitting in a warehouse\na bath room with a toilet and toilet paper \nA cat is laying on the floor with its paws in a shoe.\nA large bird perched on top of a tree branch.\nA group of cows grazing in a field near a body of water.\nThree men wearing black and ties stand and smile at something out of the frame. \nA large elephant stomps around on the dirt covered ground.\nA woman standing on a beach next to the ocean.\nTwo small children holding remote controls while sitting on a floor.\nA man standing on a snow covered mountain in a heavy jacket.\nA couple of men riding horse drawn carriages.\nLarge blue and gold clock on the side of the street.\nA red fire hydrant on a city street sidewalk.\nSkiers going up and down a snowy mountain.\nA living area with several chairs and a lot of color\nFour girls pose in front of a bus advertising The 1 Second Film.\nA sofa, television and a bike are sitting in a room.\nA very large clock tower sitting above a street light.\na large elephant that is standing up eating\nA red fire hydrant sitting in the middle of the grass.\nA man holding up a cardboard sign next to a woman.\nSnowboarders walking through the snow carrying their boards\nA close up of a zebra grazing in the leaves. \nHorse figurines next to walk on a table.\nA man flying over a set of steps near a hill.\nA woman is seen eating at an outdoor table with a bowl of soup and a roll and a beer in the foreground in front of her.\nTwo people on a tennis court swinging to hit a tennis ball.\nA small stack of antique leather bound books with a pair of glasses and a pocket watch.\nA lady in pink sitting on a bench next to a man standing in a beige suit.\nUpward view of street sign and traffic light in front of office building.\nA man is dressed like a clown magician while pointing at a picture on his cell phone.\nA person holding an old phone showing it to the camera.\nA man riding a horse over a red and white striped pole.\nA living room with furniture and a lamp in a corner.\nA man that is standing in the grass near animals.\nPeople walk through a buffet line of bottled water and fruit. \na man that is typing on his laptop\nA long white couch in front of a wooden table.\nA white pick up truck parked in a parking lot.\nan gray and white horse at the beach\nA man riding skis while flying through the air.\nA keyboard and computer monitor and a mouse.\nA woman standing on top of  a lush green field.\nA bare-chested man on turbulent ocean waves surfing\nA man standing next to a woman in front of a table.\nA man sits in a car with a cat in his lap.\nA top of a ski resort and lift with people going down the hill.\nA group of men sitting around a dinner table.\nA street sign with the words Manuel and Idalgo on it.\nBlue and orange large birds on tree with metal pot.\na man is swinging a baseball bat at a game\nthere is a bus going down the street and many cars going behind it\nA group of people walking on skis in the snow.\nA powder room in Morocco with an arched doorway and white towels on a brass stand.\nA fighter jet flying through a sky above water.\nA kitchen table with two chairs against a wall.\nTwo girls playing with an interactive gaming unit.\nA man who is on a surfboard in a river.\nA man playing a game in the living room. \nA group of hot women laying in a white bed.\nA computer desk holding a monitor and keyboard in front of blinds.\nAssortment of vegetable being cooked in metal pot.\nTwo people standing in the grass flying a kite.\nTwo trains sitting on parallel tracks waiting at a station.\nA boy on a field with a baseball glove.\na man on a surf board riding a small wave\nA woman adjusting a mans tie as he stands at an exit.\nTwo people walking on a beach with surfboards.\nA school bus and pedestrians crossing a bridge in a city.\nA sign on the side of a busy street outside a shopping center\nbedroom of a girl and her dog laying on bed\nThe person crossing their legs is wearing socks with colorful dogs on them. \nA woman standing next to two bags of luggage.\nA woman is leaning against a stop sign next to a road way.\nCars riding on the street across a train on the tracks\nA sandwich is sitting on a paper plate.\nA laptop and two controllers on a small table in front of a couch.\nAn old church building with clocks built into the tower and an arched doorway. \na man that is drinking something out of a glass\nA blue train rides down a wooded track.\nA mack truck is pulled up to a station area where an employee opens the door. \na little puppy dog in some kind of bag\na table covered wtih two taptops and a phone and assorted accessories\na group of cows grazing in a green grass wire fenced pasture.\nA model of a group of cars traveling into a tunnel.\nA kitchen with a lot of cabinets and stuff on the table. \nA person sitting on a large cement planter.\nA yellow train on the tracks with several cars\nA pitcher about to pitch in a baseball game.\na boy making a face while running to get his kite in the air\nA man punching an innocent giraffe in the side of it's head.\nThree fish and vegetables on a silver tray.\na giraffe with a man sitting in front of the girraffe\nA foreign bus traveling down a street in front of jeep.\nTwo benches sit in front of a large store.\nA group of people standing outside of a blue train.\ntwo people on a tennis court at night\nSeveral men are playing sports on a field near some trees, wall, bus, and several buildings in the background.\nA street sign next to a large building.\na man is shaving in a mirror in a bathroom\na table top with some food on it \nA little boy is all grins as he is shown a toad sitting on a Frisbee.\nA horse and bug-gee is riding next to the buildings. \nA skateboarder jumping off a skateboard ramp performing a trick.\nTwo men sitting next to each other on a wooden bench.\nA group of young men sitting next to each other holding racquets.\nA man pulls a rolling suitcase and is wearing a suit.\nEven old people with knee injuries can enjoy a nice game of tennis.\nA statue of a baseball player in the middle of a park.\nA tray full of food including orange juice and bananas.\nA man in a kitchen instructing a woman on what to do \nA large cat sitting on top of a bathroom sink.\na day of the dead offering with fruit\nA large black steer walking away with a small stuffed teddy bear in a pile of brush.\nThree sets of train tracks with trains on each of them.\nA toddler reaches into a bowl of grapes in a sink.\nTwo zebras and two monkeys walking on the grass. \nA large bathroom features tiled walls, two mirrors and two sinks.\nA young child in the yard holding up a bat.\nthis is a street with a brick building\nA baseball player holding a bat next to a base.\nA cat sitting in front of a large computer monitor.\na desk with a cup plate laptop monitor and keyboard\na man riding a surfboard close to the shore \na close up of a stuffed animal near car pedals \nTwo containers filled with food and sweets on a table.\nAn open laptop computer sitting on top of a table.\nA couple of birds standing on top of  a wooden bench.\nA grey and white dog sitting in the passenger side of a car.\nA bakery with customer at the counter and various types of donuts in the display case in front of the customers.\na group of pictures with baseball players in it\nA person is organizing food on to platters\nAn aerial view of a train on train tracks.\nhistorical buildings and people walking in the streets\nA man sitting at a table eating donuts.\nThe browned cracked crust of a baked berry pie.\nA group of airplanes in the sky in formation. \nA herd of oxen lounging in a field.\nan image of a sandwhich that is not eaten\nThree people walking down a sidewalk while holding umbrellas.\nA large building with a clock on the front of it\nA man wearing a hat and a gray jacket.\nA family of elephants walking through tall grass.\nPeople on the shore as boats sit in the water.\nA man riding a motorcycle down a street with a person.\nA dog laying down with its bed on its head .\nA BRICK TOWER WITH A BIG CLOCK IN THE MIDDLE OF IT.\na stuffed teddy bear scrunched up in a chair\nThe broccoli florets are blue and green in color before cooking.\nThe park has a outside clock displayed. \na number of people riding skis on a snowy surface\na man skiing along a rail on the snowy hill \nA pizza sitting on top of a plate on a table.\nA person on a bike is next to a train on the tracks. \nA woman wearing a hat bites into a pastry.\nRow of motorcycles parked at curb in outdoor area.\nTwo elephants that are standing in the dirt.\nA girl riding a horse is jumping the log.\nA computer animated girl brushes her teeth while two adults watch.\nA sign says fashion district near some buildings.\nA man standing at a kitchen counter working.\nDogs drinking water next to a statue of a dog.\nA vegetarian dish of food on a napkin\nA group of people are standing playing Wii. \nA man taking a large bite from a sausage sandwich.\nA man with oil changing items next to a motorcycle.\nA woman with pink hair eats a banana in a kitchen.\na slice of bundt cake sits on a white plate\nA woman is holding open scissors in front of her face.\nTwo Hanggliders parachuting over the ocean in foggy weather\nA man that is standing on a tennis court.\nCows are laying down in a field of grass.\nTHERE IS A ZEBRA THAT IS EATING GRASS IN THE YARD\nA woman walking a bike next to a river with a boat in it.\nA kitchen counter with a blender of ground gingersnaps.\nCat sitting up with a fake tie around it's neck.\nthere is a young boy eating a candy and taking a picture\nAn empty park bench next to a small lake.\nThere's a yellow fire hydrant with blue trim o ntop\nA clean kitchen with pans hanging from the ceiling.\nA white keyboard and mouse provide contrast to black desktop.\nA woman standing on top of a ski slope covered in snow.\nLarge clock tower with ornate brick work and windows.\na man is sitting down playing video games\nA yellow tray topped with a cup of coffee and a donut.\nA person laying in bed in front of a TV.\nA motorcycle rests against the side of a deserted road near a kangaroo crossing sign.\nThe two bowls have a salad in them.\nA large hotel room with a television on the wall\nBLACK AND WHITE PHOTO WITH THREE MEN AROUND A PRODUCE STAND AND PRODUCE IS IN COLOR\nA group of people flying kites over the top of a beach.\na couple of big buildings that are next to each other\nCut open meat loaf sitting on aluminum foil in an outdoor setting.\nA kid is getting ready to hit a baseball.\nA blue bus is parked on the parking lot next to another bus. \nAn old fire truck with an old sign in the back of the truck bed.\nYoung girl with an apple on unmown grass.\na man is playing video games on a screen\nA man holds up a glass of wine with a smile.\nA man that is on a box with a skateboard.\nCreamed filled donuts on top of cupcake holders.\nA bug sitting on the side of a laptop computer.\nmany people watch a person fly a kite with a young person\nA refrigerator mostly empty with only a few bottles of water inside.\nA bus with no roof has lots of seats in back.\nA green tile bathroom with sink, drawers, toilet, and window.\nA table filled with lots of different bowls of food.\nA clock sits on top of a stand in the middle of the station.\na glass vase with three pink flowers and a drink\nA  white dog is looking at the camera\nA group of people enjoying a barbecue near some trees.\nTwo draft horses pulling plow, color, under cloudy skies with trees and other horses in background.\nA white paper plate holding two pieces of pizza.\nA very tall brick clock tower sitting under a blue sky.\nA photo of a person carrying a surf board out of the waves.\nA person in winter gear riding a snowboard.\na television set a brown couch a table and pictures\nA girl taking a swing at a baseball during a game.\nA woman holds the reins of a saddled horse\nA cat laying on a bed by a window.\nA young man sitting on top of a white bench.\nThese four zebra are walking in a field.\nA baseball player is swinging and about to run. \nThe large bear is looking in the direction of the camera.\nA cook in a restaurant kitchen putting chopped vegetables in a bow.\nThere is a woman talking on the phone.\nA very white toilet that is in a clean room.\nSome people are sitting in a model train.\nA sky filled with lots of colorful flying kites.\nPark full of trees with a table and umbrella in the middle.\nA cat that is laying in a basket.\nTwo vegetables are lying on a napkin on a table.\nA man who is performing a trick on a skateboard.\nSteam rising from a hot plate of vegetables.\nMan performing skateboarding trick on cement in daylight\nA dog chewing on a box on the floor \nA man riding an elephant in the jungle.\nA man that is standing in the dirt.\nGroup of people riding on seats on top of elephants.\nTwo zebra standing next to each other on a dry grass field.\na number of items laying on a surface near one another \nA large church tower with a clock mounted on each of it's sides.\nA man and a woman standing next to a motor cycle.\nTwo baseball players standing on the field during a game. \nA man in black surfing in wild choppy water. \nA wet view of a street with people crossing in front of buses.\nTwo men who maybe spear fishing one is on a surf board.\na stuffed bear and dog are on a ledge\nA city view of an E-train on a track\nA man riding a motorcycle with a woman on the back.\nA man standing in a batting cage on top of astro turf.\nThe phone is laying on the desk with all of the other stuff.\nA pitcher in black looking at the opposing teammate on third base.\na carrot some celery and a knife on a plastic cutting board\nA large brick tower with a clock on the two showing sides.\nYoung man up to bat during a ball game.\nthree white brown and black oxen are eating \nA cow walking through the middle of a crowded sidewalk.\nNight time view of empty streets in commercial district.\nA tennis player lunges on a tennis court.\nA group of scattered sheep move down a country path.\nA zebra in the sun on a dirt road \nA white parking meter sitting on the side of a road.\nA window sill with a white vase filled with flowers.\nGraffiti written on an all way stop sign.\nA man with a tennis racket standing on a tennis court\nA living room with a fire place and a mantel.\nSea faring bird flapping wings while standing on wooden railing at beach.\nsome oranges and lemons sitting together on a table \na very tall building with a city clock on it\na group of people take a rest near their luggage\nA marina filled with boats floating in crystal blue water.\nA large elephant standing next to a small elephant.\nA man holding a tennis racquet on a tennis court.\nBlack and white dog laying down on bed.\nA car parked on the dirt, with a bunch of airplanes behind it.\na couple of guys that are eating some food\nA young man riding a skateboard down a sidewalk.\nA man with thick sunglasses and multiple piercings sits with his mouth open.\nTwo zebra standing next to each other next to a building.\nA small orange bird standing on a collection of rocks. \nsome people are on skateboards at a skate park\nA sliced pizza on a metal pan on a table.\nA man holding a tennis racquet on a tennis court.\nA laptop and phone on the table of someones balcony. \nTwo people relax by the ocean on the beach.\nA plate of a roast beef soda and cola in a glass cup.\nTall flower arrangement in a pitcher by a window.\nA double decker bus driving while it snows.\na kitchen next to a wood floored living area\nthere is a person holding a big sandwich in there hand\nPeople walk down the platform next to an Amtrak train.\nSoriano lashes a double down the left field line \na number of baseball players in a field \nA person looking at a train going by.\nA horse is standing next to a metal box.\nMany young plays are playing soccer in the sand. \nA large group of bicyclists on a city street.\na big boat is going down a small river\nA large red fire truck standing in front of a building.\na white woman wearing a white hat and uniform\nA plate with a piece of food next to a pile of cheese broccoli.\nAn open laptop sits on a desk in front of a window.\nThe old, adult elephant stands near a wire fence.\nA parking meter sitting on the side of a sidewalk.\na small boat in a body of water \nA baseball batter is getting ready to hit the ball.\nA young child sitting on top of a race car.\nA living room with chairs and a wall of windows looking to a patio.\nA man is sitting on a bench next to a bike.\na person holding a dog sitting on a couch \nTraffic and street signs sit on the pole\nA pizza that is half pepperoni and half chicken.\nA black cat sleeping in the sun on a bench\nA zebra in a zoo pin looking down at the ground.\nA young calf drinks from its mother's udders\nA blue bus driving down a city street.\nA peacock with very large feathers walking down a street.\nA tall building towering over a red fire hydrant.\na child on a platform near a train\nA parade on the street with a person riding an elephant.\nA woman talks on her cell phone on the busy sidewalk.\nA lady is in the hospital and sitting in a chair smiling.\nA group of vehicles driving down a city street.\nA young boy is playing tennis at the tennis courts.\nA yellow duck boat floating on top of a lake.\nA man and woman holding electronic devices in their hands.\nA couple of guys standing up and playing Wii together.\nThe boats navigated around the curves of the attraction.\nsome baseballs players watching a batter at home plate \nTraffic signal on wall attached to cement structure.\nA double decker bus driving down a street next to a tall building.\nA street sign standing on a corner in front of a building.\nA passenger train traveling through rural mountain countryside.\nbowls filled with different foods next to a plate of broccoli.\nA pair of horses grazing in a field behind a fence.\nA passenger jet aircraft flying in the sky.\na couple of elephants fighting in a grass area \nCows grazing in a pasture ringed with trees.\nA table that has menus and glasses sitting on it.\nA calico cat drinking from a sink faucet.\nA person riding a snowboard down a snow covered slope.\nFour people on horses walk down a trail.\nA small dog laying on a bed next to a laptop computer.\nSome very cute giraffes in a big grass field.\nA group of people sitting on top of a white blanket next to a bar of chocolate.\nA giraffe laying on the ground next to birds on rocky ground.\nZebra sleeping on the ground next to standing zebra.\nPeople sitting on benches next to each other.\nA tennis player in white is in action with the ball.\nA herd of zebra standing next to two giraffe on a lush green field.\nA young boy doing a trick on a skateboard\nA young elephant walks near a herd of other elephants.\na retro image of women in aprons, some holding clipboards, in a giant industrial kitchen\nA plaque mounted to the side of a building with a clock on it.\nthere is a all black motorcycle that is parked on the street\nA white plate topped with a hot dog, french fries and condiments.\nThere is a variety of vegetables for sale.\na bus and some cars at a park like setting\nA woman and a man in a wheel chair sitting in front of a table with a cake.\nA man on skis gliding through the snow.\nAn single orange is sitting on a table.\nA girl is blow drying her long hair.\nKite flying between water area and building complex, probably Japan.\nAn airplane flying through a blue sky next to a helicopter.\nA black and white photo of a snow covered bench.\nA brown bear in a rocky zoo display \nA young man is using his cell phone.\nA lady in a shop with a piece of cake with lit candles.\nA tray of food on a dining table.\nA group of people playing Frisbee in a field.\nThe child in a racoon stocking cap is eating a banana.\nA white toilet with a black seat in a small bathroom.\nA canoe in water, with one person swimming.\nA young woman wearing makeup looking at a cell phone.\nCenter city street lit up by a series of light displays. \nA newspaper covered in candy, fruit and goodies.\nA man holding a tennis racket in one hand and bouncing a tennis ball wit the other.\nA woman standing on a tennis court holding a racquet.\nAn elephant in the zoo behind a large fence\na young boy wearing a blue shirt holding a tennis racket\nA table topped with four plates filled with food.\nA couple of people flying a kite on top of a sandy beach.\nA close up of a black and white cow with three cows in the background.\na person doing a headstand on a concrete floor\nA man talking in front of a crowd of people. \nA white toilet sitting under a bathroom window.\nTwo road signs are viewed from inside of a vehicle windshield.\nA brown teddy bear sitting on top of a table in front of a white plate with a piece of pie.\nthere is a very tall giraffe standing in the wild\nA dirty bathroom consisting of a toilet, bath tub and sink. \nA person on some skis in the snow.\nA large mirror above a sink in a bathroom.\nFast commuter train moving past an outdoor platform.\nA woman with glasses drying her hair with a blowdryer.\nSkiers going down a mountain and riding on the lift.\na headphone jack sitting next to a keyboard \nBirds with long legs walking in the water near a beach.\nA man wearing a white shirt and a flowery tie.\nA pizza that is laying down on a plate.\nA kitchen that has wooden cabinets and lots of pots and pans.\na train is next to a city by the mountains\nThree people on horseback ride along the beach while waves come in.\nA couple of traffic lights hanging over a city street.\nA group of people walking down a sidewalk past a parking meter.\nA cat laying on a bed in front of a book shelf.\nA large jetliner flying over a dry grass field.\nA baseball game is in action at the plate.\na baseball pitcher throwing a baseball from the pitchers area\nA table topped with a tray full of cookies and a vase filled with flowers.\nA large crowd of people around a very large illustration.\nA cake with icing and cartoon cake toppers.\ntwo people standing in a strong snow storm\nA parking meter on the side of a road.\nA table with a plates of food and drink arranged on top.\nA zebra and boar running through a field.\nA street sign on top of a pedestrian crossing sign.\nAn army jeep with an American Flag sitting at an airport.\nA stove top oven with a tea kettle on top of it.\nA bird is sitting on a berry bush.\nA furry long haired dog standing near a car\nA set of three wall mounted urinals with pictures of men on top of them.\nSeveral green plants that have grown rather tall.\nTwo people are walking up a snow covered hill.\nA cat laying on a couch with a remote.\nA toilet sits next to a window and in front of a shower.\nScrambled eggs are accompanying dinner foods on a plate.\nA child holding a Motorola cell phone in its hand \nA salad of vegetables and nuts in a white bowl on a table.\nA tall man is talking to a girl while eating\nA small blue car on a city road.\nTwo people who are walking under the same umbrella.\na mirror is on a pole by a light\nA man drying a pan with a dish towel.\nA tennis player is getting ready to hit the ball\nBows of food with spoons in them sitting on a table.\nA bike leaning up to a parking meter.\nA suitcase is open and sitting on the ground.\nA distant view of a surfer riding the ocean waves.\nA hot dog on a bun with pickle and tomato.\nA plate full of doughnuts and bananas in the background.\nMac fans enjoying a drink and a joke\nFemale soccer teams playing a game of soccer.\nA man fixes a kite as he stands with his friend on the beach.\na man holding two fingers up with both hands\nA woman holding an umbrella while standing next to a river.\nThe kitchen is lit with overhead lights, shining on the cupboard and sink\nA crowd of people standing on cement ground flying kites.\na teddy bear sitting inside a toilet bowl\nA store selling lots of vegetables and fruits.\nA white plate topped with mean, veggies and mashed potatoes.\nA young man about to kick a soccer ball on a green field\nA nice spacious bathroom with light brown tile.\nLarge white yacht in the sea with windsurfers nearby.\nThree motorcycles stop at an intersection at an oriental restaurant.\nA bike behind a rail for safety on a train ride.\nThe motorcycle procession made their way down the crowded street.\nTwo planes are close together in the sky.\nA flower in a vase next to a window.\nTwo zebra standing next to each other in a  forest.\nA man riding on the back of a dirt bike in the air.\na stuffed chicken is sitting next to some flowers\nA tiny dog in a doggy bed covered with a blanket.\na little girl touching the nose of a horse\nA red fire hydrant sitting in a lush green field.\na kid performs a trick on a skate board \nA living room furnished with light-colored furnishings is pictured.\nA man and woman that is sitting down in a raft.\nA desk with both a laptop computer and a desktop computer.\nA large stone building with a clock on it\nA skillet with two pans containing eggs and ham.\nA red and yellow train is shown on the train tracks.\nA stuffed bear is sitting next to a computer monitor.\nThe stainless steel black and aluminum toilet is opened.\nA brown teddy bear sitting next to a blue piece of luggage.\nLaptop and mouse sits on desk in front of computer monitor\nThe view of a giraffe through some vegetation. \nPark with grass, chair and bird on sidewalk.\nAn array of images shows the steps to making a cheesecake, from recipe, all the way to a finished fruit-topped cake with  a wedge missing. \na bathroom with some orange walls, and a black and white counter \nA couple of giraffe standing next to each other.\nA food cart sitting on the side of a crosswalk.\nTwo zebra feasting on a dead animal in a dry grass field..\nTwo open suitcases filled with a variety of snacks\nA person wearing glasses while using a smart phone.\nThe bananas on the tree are not ready to be picked. \nA man wearing a red shirt is throwing a frisbee \nA zebra walks next to a chain linked fence.\nAn elephant statue has pink accouterments on it.\nA white bed with a turquoise blanket, with a two piece painting hanging above it. \nA hotdog on a bun with sour kraut, ketchup and mustard.\nA plane flying between two large buildings in black and white.\nA large pizza with topping served on a wooden board\nA cat is standing on a board game\nA white wedding cake with blue and red butterflies all  over it.\nA display case in a store filled with apples and oranges.\nA gentleman and child in a vintage picture with a horse. \na women that is posing for the camera\nA person skiing next to blue check points.\nA kitchen with a bright window and house plants\nThe Stop sign has been hit and is leaning to the side.\nA stop sign with graffiti on the 600 block of Newport Street.\nA man that is standing up holding a suitcase.\nA group of two men standing inside of a bar.\nA group of school supplies and various electronics including a laptop computer all laid out in a display.\nA line of decorative benches on a boardwalk.\na stove with a tea kettle and cooking pot on top\nA baseball player with one leg kicked up preparing to throw a ball\nA desktop computer sitting on a desk next to big speakers.\na red double decker bus with a movie poster on the sign of it\na close up of a baby wearing a bow tie\nA couple of motorcycles parked next to each other.\nA bird perched on top of a wooden power pole.\nBoats floating beneath a bridge on the water\nA few people are participating in water sports and some are in a boat. \nA lap top sits on a small desk with jars and candles around it\nSome assorted fried foods layed out on a plate\nAn umbrella is opened over a table at an outdoor market. \nA baseball team playing a baseball game on a baseball field.\nA group of people sitting at two long tables in room.\nA woman sitting on a toilet wearing pink shoes.\nPieces of patterned floral fabric are lined up next to each other.\nA man on a motorbike rides down the street.\nA woman sits at a desk with a lap top that has a post it on it\nA dog is in a bathroom with chewed toilet paper.  \nA train travels around the bend of a grassy area.\nA person on a skate board in a very dark room.\nTwo brown cows standing in some tall grass.\nbaseball players practicing their batting skills in a filled arena \nTwo men walking down a street by a blue bicycle.\na small bowl of fruit on a table \nA white toilet sitting underneath a window next to a tub.\nA rock wall next to a green tiled room.\nA woman in black biting a hot dog near flowers.\na toilet a toilet paper roll and a newspaper\nA plate of Italian food with vegetables sitting next to a fork\nThere are keyboard keys on a wooden table.\nthe girl is sitting by the window eating\nA couple of police motorcycles parked next to each other.\na person in a beanie is taking a picture\nA large truck driving past a shopping center on a rain covered road.\nThe skier has a red coat on that makes him visible. \nA boy is sitting on a skateboard on the street.\nThe large platter has a bagel, fruit, butter and sour cream.\nA man who is looking at a baseball bat.\nA bathroom with a sink, toilet, and window.\nA toilet that is in a bathroom under a pole.\nA box with varieties of  donuts on the table\nA tray containing five different flavors of donuts.\na group of cows standing on the side of a road.\nA group of people standing and sitting around a living room.\nA small girl is holding a large triangular kite.\nBaskets of oranges and a basket of pears.\na dog with shoes and a backpack standing next to car\nA small white airplane flying high up in the sky.\nA dog holding a pink Frisbee in it's mouth.\nThree pedestal plates holding oranges on a table.\nit looks like a hand of a small child with pink and white top\nA man hitting a tennis ball with a racquet.\nAn empty living room in an apartment with several chairs sitting in the middle of it.\nA man flying through the air while riding a snowboard.\nA baby laying in bed next to a brown teddy bear.\nA yellow taxi cab driving down a street near a bridge.\nA train caboose is sitting beside train tracks.\nA cat laying down on a surface in a room.\nSeveral large trucks parked outside among many tree's.\nA baseball player is getting ready to hit a ball.\nA cup of starbucks tea sitting on top of a table next to scissors and a pile of books.\nA man holding a tennis racquet on a tennis court.\nA woman holding a hot dog on the street.\nA owman is posing next ot wine bottles at a bar.\nA view of someone in the sky parachuting to the ground.\nA color kite flying over a large body of water.\nA man reaching into a freezer while standing next to a woman in a park.\na tennis player wearing a red shirt  is playing tennis\nA man flying a kite on a lush green field.\nA desk with a laptop, monitor, mouse and a hand bag.\na man smiling with shots and a plate of food on the table\nA man draped over his bed with his head hung low.\nBlack and white photo of a boat full of rowers.\nA group of five people steering a raft down a river.\nA silver motorcycle parked next to a forest filled with lots of trees.\nA man standing next to a pile of luggage at an airport.\nA boy and a man in batting cages.\nA bathroom is shown with a mirror, sink, and shower.\nA surf sailer gathers his gear and walks along grass.\nA cat is laying in front of a laptop and a monitor.  \na cat laying in a box next to an open suitcase\nA group of people walking on a rain soaked parking lot.\nA brown kitchen table with four chairs next to a counter.\nA couple of people walking behind a stop sign near bushes.\nA small bird sitting on the handle of a car door.\nA man standing on a plane wing to board the plane.\nA large group of skiers standing around with race bibs. \nA cat playing with a red couch, with its eyes closed.\nA large bird perched on top of a rock\nA group of children dressed in purple at a tennis practice.\nAn umbrella on top of the desk in a home office.\nAll of the cows are poking their heads out, eating some hay. \nA man is off the ground catching a frisbee.\nTwo toilets that are sitting on a tile floor.\nA man riding on the back of a blue motorcycle.\nA dog is staring at a picture on a flat screen tv.\nA building and a road sign in front of a bridge\nThis is a bird looking in the direction of a tree. \nA young boy on the skateboard at the skate park.\nA yellow and green fire hydrant in Canada.\nPeople preparing to ski down a snow covered slope.\nA hand holding open a pouch with a cell phone inside.\na bird flying thru the sky with mountains in the background\nA building with a roman numeral clock hanging from it. \nA man on a surfboard riding a wave.\nWoman walking on a sidewalk in front of a street with a black vehicle.\nA motorized cart fills a train with luggage\nA long marble sink in a public restroom\nPictures of Queen Elizbeth the second riding a horse.\nA kite is being flown in the air at the park\nIntersecting roadways with marked straight lines and squares.\nTwo standing zebras both looking in opposite ways from each other.\nA group of trains parked next to each other.\nA red double decker tourist bus goes around town\nSome food is sitting on a stove top in a kitchen area.\nTwo zebras are pictured in a grass-less area.\na skateboarder in a black shirt  is doing a trick\nA living room filled with furniture and hard wood flooring.\nA man with glasses sits on a gray chair in front of a black laptop.\nA man surfing on a wave that is very big.\nA toilet that is on the ground in a bathroom.\nA pizza is topped with ham, pineapple, mushrooms, and extra cheese.\nA plane flying over several houses and lots of trees. \nA young boy with his father spending time with his father. \nGray cat lying on a chair looking at the camera.\nA cubicle desk with two laptops on it. \na person riding a snow board on a snowy surface\n bridge spanning over the width of a river next to a city.\nA red van with a surfboard strapped to the top, parked on a street.\nA PICTURE OF PEOPLE GETTING OFF OF A WHITE BUS \nA baseball game is being played on a bright day.\nA cheesy pizza, topped with chicken and vegetables.  \nA living room filled with furniture and a flat screen TV.\nA train is pulling in to a train station.\nThree ladies seated on a dining table with a plate and cups\nBaseballer standing with mitt in fenced field and grass\nA door opens to a bare, white bathroom. \nA dog running around the field with sheep in the background. \nTwo pizzas on wooden plates on a table with a pizza cutter and drinks\na hand feeding food to two giraffes behind a fence\nA child on a sidewalk rising a skateboard.\nAn old man making duck lips while holding an orange.\nTwo elephants with seats tied to their backs for people to ride on.\nA bathroom has a light above the toilet.\na stone top with a clock inside of it \nA man in glasses and suit on his cellphone\nA baby in pajamas is chewing on a toy. \nA woman on a tennis court holding a racket.\ntwo guys riding skateboards  outside of a building\nA train is driving down the tracks in front of a building.\nA couch with a small dog sitting on top of it.\nA man with a tattoo on his back and a frisbee in his hand. \nA group of orange slices sitting on top of a table.\nA burrito sitting on top of a white plate.\nsome horses grazing in front of a church\nA toaster oven sitting on top of a counter.\nA lush green field with lots of animals grazing on it.\nA table topped with a tray of food and a cup of sauce.\nMany old fashion nick-knacks are all neatly placed. \na cow on a field next to a fence\nA man flying a blue kite in an open ground\nA man riding a white scooter down a street with a woman on the back.\nA dog is reaching up to grab a Frisbee in his mouth.\na policeman on a motorcycling driving on the road smiling\nA woman is drinking out of a wine goblet.\na long train going along the train tracks\nA white plate on top of a table covered in food.\nAN IMAGE OF A FIRED HYDRANT ON THE STREET\nA baseball player is up to bat at the plate.\nA large green trunk sitting on top of a wooden floor.\nA large arrangement of teddy bears are on a wall.\nPeople at the baggage claim area of an airport.\nA BMW motor cycle parked next to shrub..\nA bus on a street that only allows buses.\nA group of men standing on the side of a street.\na woman with short hair eating a banana \nAn underground sign stands nearby the Big Ben tower in London. \nthese cupcakes are decorated green with small horses\nA girl sitting on a brown and white giraffe\nA person is standing on a snowy hill overlooking a valley.\nA man in a living room playing a video game. \nA man looking to his side while he holds his arms up to catch a frisbee. \nPeople playing a game of Frisbee in the park. \nA truck kicking up dust from driving on the desert. People standing near the road waving.\nA clock that is on the side of a tower.\nstreet lights on a city street with no one around\nA long red and yellow train traveling down tracks.\nthis kitchen is very big and has wood cainets\nA man on the tennis court is about to use his racket. \nThe view of a bathroom with a wall mounted sink.\nTwo giraffes stand in sand inside an enclosure. \nA large piece of fruit is growing on a tree.\nThe person walks toward a vehicle with skis and ski poles.\nA boy laying on the beach behind a man flying a kite.\nA large round piece of bread on a metal pan.\na room with a bed and multiple items in it \nA boy wearing  helmet and uniform swinging a baseball bat.\nTwo dump trucks driving down a road past a white pick up truck.\nA man watersurfing on a white board in choppy water\nA white plate on top of a table topped with fruits and vegetables.\nA picture of children's toy reading story. \ntwo people moving a refrigerator next to two cars\nTwo men in skis are standing on a ski slope.\nA large white bus sitting in front of a tall building.\nA boy is dressed up in a tie and is holding a stick.\nA kitchen with canisters on the neat counter \nA bunch of elephants playing together in a field.\nPeople are waiting for the bus near a bus stop.\nOn a baseball field a player wearing white and a player with a black shirt and white pants are near each other.\nA young boy holding a Nintendo Wii game controller.\nA man riding on the back of an orange fork lift.\nA sink under a large mirror in a bathroom.\nA street scene with a person on a motorcycle.\nSome horses are grazing in a field next to the water.\nA man in a purple shirt holding a soccer ball next to other soccer players.\nLarge group of people traveling on a boat with no covering. \nzebras graze in a field with sparse grass, in front of trees.\nA young woman lays a hand on the neck of the horse she is riding.\nA couple of young men holding Nintendo Wii game controllers.\nA man holds a plate and walks through tall grass with his friend. \nA squadron of four fighter jets flying through a blue sky.\nTwo magazine photos of a motorcycle and rider.\nA pot and some vases on a table in a room.\nFour elephants standing in an open area surrounded by brush.\nA young boy with a cell phone up to his ear\nThere is a banana split with whipped cream and a cherry.\nA man on skies skiing down slope wearing protective gear.\nA close up of a very small teddy bear. \nA black and white panda playing with a rusted sink.\nWoman riding her bike down a small side path.\nA figurine of a little boy riding a snow board in yellow pants.\nA footlong sandwich on a piece of paper next to a serrated knife.\nTwo girls in stand on grass and one holds a bat as the other holds a pink cup.\nThe elephant is standing on the grass in the clearing.\nSix people in a boat rowing on a body of water.\nA herd of cattle grazing in a dry field with snow off in the distance.\nA large gathering of people is sitting around a wooden table.\nThere are two cars on the road at this intersection.\nA man in blue is holding a brown umbrella.\nA piece of wood that is on top of a block.\nA white bed sitting on a wooden floor in a bedroom.\nLunch pails packed with healthy and unique foods\nA man with camera taking a photo of sheep \nA vendor covered by a tent near a van.\nA group of men standing around a pile of luggage.\nA bus and car wait at an intersection on a city street.\nA man and a woman ride an elephant for the first time.\nA tall church sitting next to a lush green field.\nA small tug boat is gliding in the ocean.\nA passenger train stopped at a stop next to a grassy field.\nA man riding a bike down the middle of a street.\nA painted sign of a blue bird in a tree in the woods.\nA living room filled with furniture and a flat screen tv.\nA cat calmly sitting on a counter next to some scissors.\nA close up view of some fresh produce.\nA train engine at a station with vehicles beside it.\nAn airport with lots of people walking to and fro.\nA lady flying a kite in a neighborhood while there is daylight.\nA pie is sitting on the ground outdoors.\nA tall brown building with a large white clock.\nA pretty young lady holding up a pink doughnut with sprinkles.\nA bird flying solo over a large body of water.\nSomeone has crawled under the plane to check that everything is operational.\nA dog laying on grass near a flying disc.\nThe bird is perched on a dying flower outside. \nThe animal food tray and cage is empty.\nA boy playing a WII game at Christmas time.\nA man is standing at an open refrigerator door.\nAn arrangement of donuts and other food sits on a table.\nSeveral people with bicycles on a sidewalk outside a restaurant.\nA bathroom with white urinals amd sinks and brown stall doors.\nThe crowd is enjoying the late baseball game.\nA woman holding an umbrella while crossing the street.\nMopeds and bicycles parked next to parking meters.\nA girl in the snow wearing vintage ski equipment.\nA chocolate donut filled with cream and custard.\nA homemade pizza rests on the counter. \nA man standing under a large clock tower next to the ocean.\nA pair of scissors and some fabric rest on the table\nA plate of eggs and toast next to a plate of bacon and french toast.\nA group of men on a field playing baseball.\nA made up dinner table with a flower vase on the table. \nA man wearing glasses while standing in front of a microphone.\nA laptop and a keyboard on a desk.\nThe front of a church with two bell towers.\nA pile of bananas for sale in a local market. \nA colorful vase sitting on top of a table next to a picture on a wall.\nThe boy holding the Wii controller has a smile that will light up any room.\nA number of people riding bicycles in a metropolitan area.\nA vehicle displays a customized license plate and milk advertisements.\na work desk with display with graphs, notebooks, and keyboard\na guy siting down in a chair eating\nA person is riding a horse around on grasses\nA white horse drawn carriage in front of a yellow building.\nTwo born bears walking though a forest surrounded by trees.\na view of a nuclear power plant from a train stop.\nTwo large red blanket covered beds in a  bedroom.\nCouple of zebras eating out of the food bin at the zoo\nA group of people sitting around a table under an umbrella.\nA man and woman are playing a video game near each other.\nA man cutting a slice of birthday cake.\nA couple different pastries on a pastry dish.\nA motorcycle is parked on a dirt road in a forest.\nAn old mattress near parked trucks in the grass\nA clear, glass vase full of fresh cut tulips\nA cake that has paw prints and miniatures dogs on it.\na big sail boat in the sea with other boats\nSign over city street above traffic lights by a building.\nA motorcyclist relaxes in full garb leaning on the vehicle.\nA man looks somewhat blurry on bike as others look on. \nPeople enjoying the beach during a sunny day.\nA military jet with a bomb on the runway.\nThree zebras standing in the middle of a plain in the wild.\nA train engine carrying carts over a hill side.\nA cowgirl rounding up a steer in a competition. \nLarge spread of many different kinds of food.\nthese man are standing near a fire hydrant\nMultiple airplanes sit parked on the busy runway.\nThe baby birds in a next tucked up under an eave.\nA group of donkeys on the side of the road.\nA man is preparing to swing his bat for baseball.\nA couple of birds standing in the water.\nA group of women wearing hats while standing at a dessert table.\nA family on the back porch sitting around a table.\nA man that is sitting on a motorcycle.\nA brick building with a tall clock tower beside it.\nA living room next to a kitchen and a dinning room.\nA mixture of vegetables are cooking in a pan.\nA long yellow and red train traveling down tracks.\nThree giraffes and one zebra graze is in part of the grasslands\nPeople carrying stuff down the street while a guy stands at the ATM\nTwo elephants walk in the grass together by trees.\nA giant elephant standing next to a small elephant.\na person smiling eating a piece of pizza \nA city bus drives down a dark city road.\nA young man riding a wave on a surfboard.\nA plate of food with rice and a banana on it.\nA large jetliner sitting on top of an airport runway.\nmany kites with different shapes all laying on the ground\nTwo soccer teams playing a soccer match in a stadium.\na person sitting on the ground with a laptop \nA pair of stuffed animals sitting on a bench in front of lake Michigan.\nA white surf board sitting on top of a beach next to the ocean.\nThe clock is on display on the side of the building outside.\nA woman orders food from an outdoor vendor.\nUpward closeup of crossed street signs in a winter setting.\nA little baby that is sitting with a toothbrush.\nA cute little blond girl sitting next to a pizza.\nA man readies to swing his tennis racket. \nWOMAN AND CHILD STANDING IN THE ALL WHITE KITCHEN\nA couple of guys that are sitting on couches.\nA dog in an enclosure with a  herd of sheep\nHot dog with bun and sauces, along with fries and sauce.\na close up of a plate of food with vegetables\nA man holding a camera and talking on a phone.\nA flock of birds flying over a beach near the ocean.\na person that is skiing across some snow\nA giant desert covered in chocolate sauce next to cups of coffee.\nA door with a sticker of a cat door on it\na woman is standing in a room taking a picture of herslf\nA woman sticking her tongue out to a young boy.\nA brown teddybear sitting next to a christmas tree.\nZebras eat from a trough set up in their zoo enclosure\nA refrigerator door is open and it is full of foodstuffs.\na close up of some books on a table next to a vase of flowers\nYoung man on skateboard passing a man in a black shirt.\nA man throwing a tennis serve into the air.\nA wooden desk filled with a laptop and computer monitor.\nA pan with three pieces of pepperoni pizza.\na large bowl full of pasta with many other foods\nThis girl is texting while walking down the street.\nAn abandoned teddy bear outside of a closed shop on the sidewalk.\nA yellow motorcycle passing by people behind a barrier.\nTwo bulls laying in hay with various people standing around.\nA group of horses carrying a back hoe with a seat.\nA bear is taking a walk through the forest. \nA white pony standing on its back legs with feather wings.\na woman swinging a tennis racquet on a tennis court\nWarning signs outside a fence at a transit station\nA blue piece of luggage sitting on a hard wood floor next to pairs of shoes.\nA small boy wearing wading boots poses with his Winnie the Pooh doll.\nTHERE ARE ANIMALS THAT ARE GRASSING IN THE FIELD \nTwo insects on a tree that look similar to peeled bananas.\nA small brown dog sitting next to a rabbit eating a carrot.\nThree dogs exploring a stream and rocks in nature. \nA group of people in the ocean on surf boards.\na man on a board in the ocean water \nA distant airplane flying between two large buildings.\nA large cargo van parked in front of a smart car.\nA mechanical street light and a traffic sign in the street next to a moving car.\nSepia photograph of two women petting a horse.\nA woman that is sitting on the back of a horse.\nHorses are racing next to motorcycles on a dirt track.\nA woman pours a man in a suit a glass of wine from behind a temporary bar.\nEach of the three bathroom stalls have trash cans beside the toilets.\nFlock of ducks standing on a rocky shore.\nThe person holding the doughnut is looking through its hole.\nA zebra standing next to two moss covered rocks.\nA man sitting between a group of surfboards.\na bath room with a toilet a large mirror\nThe simple white shelving unit is against the white wall.\nA close-up of a misshapen piece of pizza and a can of soda.\nSquare table with a table top on three sides.\nThree different teddy bear on a blanket on a chair.\n2 people are flying a kite in the middle of no where in the winter. \nPeople are waiting at the airport with their luggage\nA woman riding a surfboard on a wave in the ocean.\nA white toilet sitting under a window next to a sink.\nTwo laptops, many papers, desk chair, file cabinets, overheard cabinets, and other small objects fill a carpeted cubical space.\nA person with a helmet on a blue motorcycle.\na couple of ssigns on a pole by a building\nA tennis player in action on the court.\nA pizza with vegetables and cheese resting on a board.\nsome people are standing around a table with bananas\nA sandwich lies in a basket with a toothpick through each half.\nA red four door car pulling into a parking space with a meter.\nA plate of food sitting on a black tray\nShelves of stuffed animals of various color and shapes.\nA giraffe standing next to a pile or rocks.\nA fire truck near a yellow fire hydrant. \nA group of young people playing a game of soccer.\nA woman holding a roasting pan filled with a turkey in an open oven.\nA computer on a table with four chairs in a bay window.\nA living room area with a number of couches\nA baseball game is in progress in a stadium.\nMultiple vehicles on a city street near a light.\nA young woman stands by the post with a pink umbrella.\nA large horse in an enclosed field eating grass\nA blue street sign next to a power pole.\nA person on a motor bike on a street.\na bathroom with a sink and a toilet\nA white toilet with a blue seat on a display platform.\nAn adult skier towing a small child by a ski pole.\nA man riding a skateboard through the air next to a palm tree.\nThere are multiple pictures of the same man standing in the kitchen\na close up of two cats on a bath room sink\nA city filled with lots of vehicles and pedestrian traffic.\nA few pieces of pizza sitting on a plate\nA cat rolling around a chair on it's back.\nA box full of different kinds of doughnuts.\na close up of a head of broccoli in a garden\nA motorcycle parked at a store parking lot.\nSome people on a roof who are flying some kites.\nA man jumping a horse over an obstacle.\nTwo kids are smiling playing in a bathtub.\nA group of people that are around a elephant.\nA stone clock tower juts out from the fog below.\nA couple of vehicles are side by side. \nA clock sitting in the middle of the city, in front of a building.\nA man that is  sitting down on a bench in front of a table.\nA baseball player waits for a pitch while an umpire looks on.\nPeople look at various food trucks in the city.\nA man cooks pizzas in a fire kiln.\nA man flying through the air while riding a surfboard.\nA man with earrings, a nose ring, a beard and a grey tank top with a bunch of bananas in his hand.\nA red motorcycle riding down one side of the street and a cow walking down the other side of the street.\nTHERE IS A CAT THAT IS SITTING ON THE PORCH \nTwo cows and a puppy sitting in the grass.\nA baseball player hitting a ball with a bat.\nA cat standing on top of a carpet on a TV screen.\nThis photo depicts a brown and white dog in the sand.\nA bus driving down a street past a parked motorcycle.\nTwo snow boarders during a snowy day at the hill.\nA man laying in bed next to another man holding a camera.\nA group of tables and chairs covered by umbrellas.\nA piece of bread with sausage, onion, corn, tomato, and bamboo shoots.\nan arrangement of different types of bread at the table.\nA black cat sitting in front of a desktop computer monitor.\nAn orange and white cat laying on top of black shoes.\nA stereo sitting on a metal shelf next to a bright light.\nA small pizza with cheese, sauce and vegetables.\nA man standing on a tennis court holding a racquet.\nA couple of people walking up the side of a snow covered mountain.\nA man standing in a  field holding a frisbee.\nA bird reaches into a cup to take a drink.\nTwo boats that are sitting in the water.\nMan riding on an elephant with a seat on its back.\nA man riding on the back of a surfboard next to kids.\na green blanket a white bed red pillows and pictures \nA red rose sticking out of a glass vase.\nGroup of people on laptop while in business meeting \nA kitchen with black stove and white cabinets.\nKites being used by people on a beach.\nA baseball player swinging a baseball bat during a baseball game.\nA guy on a surfboard riding a wave in the ocean.\nA little boy riding skis next to an adult riding skis.\na person on a surf board jumps in the air over snow\nA two wet mangos surrounded by yello, wet bananas.\nA woman tennis player in a blue skirt holding a tennis racquet in one hand and touching the wall with her other hand.\nA man holding a cookie or doughnut next to his mouth.\nA lady and man on a park near the road\nA man and giraffes are sitting on the grass.\nA boy is standing in an inflatable pool on a surfboard.\nA man holding a plate of food while standing next to other people.\nA little girl sitting at a table with lots of food.\nA small gold and black clock tower in a village.\nA stop light that has a street sign on it.\nA kid gets ready to return a hit with a paddle.\nA yellow and blue train traveling along tracks.\nAn elephant walking across a lush grass covered field.\nAn airplane on the tarmac and the glass passageway leading to its door\nA man is skateboarding on a ramp in a basement.\nThree dishes of food on a green surface.\nA living room with a green chair next to the window. \nSeveral different types of vegetables laid out on a tabletop.\nSeveral skiers can be seen making their way down the slope.\nA man riding a board through the air under a blue cloudy sky.\nA group of surfers dressed in black riding small waves.\nA corner of a bedroom with a lamp, a bed, and two wall hangings.\nA man on a dirt tennis court is crouched in position.\nA catcher crouches as the batter swings to hit the ball in a baseball game.\nA man is performing skateboard tricks in a public area.  \nA bathroom with a poster of an ugly face above the toilette.\nThe skier in the helmet moves through thick snow.\nA herd of cattle grazing on a dry grass covered field.\nsome people and a snowboarder in a blue jacket\nA couple of women are taking some shot drinks. \nA piece of cake on a plate on a table.\na man with a drink wearing  a suit and green tie\nA man holding a pan filled with hot dogs in buns. \na living room with a brown coach, leading into dining room with big window.\nTwo men are on horses in the street near other people.\nA plate topped with food next to trays of drinks.\nA brown vase filled with yellow, purple and pink flowers on a table.\nA herd of white cows on a grassy field.\nA person stands in shallow water at the beach and looks at the ocean.\nA young man doing tricks with his frisbee. \nA group of bikers riding motorcycles across a bridge.\nA dark street with a bicycle near a tree on the side of a building. \na tennis player swings his tennis racket \nA cook is in the kitchen preparing a big pot of food.\na person riding a motorcycle on a race track\nA stuffed teddy bear laying on top of a bed.\nA herd of sheep standing between a train and a river.\nA bunch of fresh carrots still covered with dirt in a basket.\nA group of boats parked on a small body of water.\nA couple of motorcycle cops driving down a street.\nA train ambling down the tracks with shrubbery on both sides\nA collection of products displayed on a bed.\nA brown miniature pony next to a wooden fence.\nA little dog is smiling yet panting with a frisbee at his side.\ntwo plastic cases for a wii, for different purposes\nA cat looking at a dog on a TV.\na couple of dogs that are playing with a frizbee\nArray of dishes with fruit inside them on the kitchen countertop\nTwo cats in a vehicle with one laying in the dashboard and one perched looking out the side window.\na bus parked on a rail way under a walking bridge.\na woman holding a birthday cake filled with lit candles.\nA person on a motorcycle doing a burnout.\nA young woman is attempting  to fly a kite \nA ceramic coffee cup inside of a silver microwave oven.\nA political candidate advertisement on the side of a coach bus.\nA stop sign in the middle of the road\nA woman with amble breast holding a glass with a drink.\nA group of people standing and sitting on top of a field.\nA cow walking across a river as a boat approaches on the water.\nThe living room wall has many framed pictures above the sofa.\nA group of carrots with an organically grown strip tag around them.\nA group of people watching a woman cutting a cake.\nA street sign that reads broadway on  a traffic light.\nA view of the harbor with ships moored on a very foggy day.\nA white toilet sitting next to a window in a bathroom.\nA plan sitting on top of a sandy beach.\nA couple of people at a table with a cake.\nA small glider flying through the sky with a pilot.\nA small airplane flying through a blue sky.\nA herd of zebra standing on a lush green field.\nThe control station inside of a technology center.\nLighted bar sign mounted near traffic signal in front of a building.\nbroccoli being sauteed in a pan with a wooden spoon\nA pastry and a cup of coffee on a plate set by a laptop.\nTwo children sit on a couch holding toy wheels.\nA group of children playing soccer on a field.\nTwo giraffe walking through a lush green field.\na public transit bus on a city street \nthis is a man swing a bat at a ball\nPeople sitting on a train with one person looking up at a mirror and taking a photo of the reflection with a camera.\nA man is looking at the fruit at the fruit stand\nA motorcycle and people looking a travel vehicles.\na laptop sitting on a big blue box\nA woman riding a bike with a basket on it.\ntwo slices of pizza sit on a white plate \na window shoing a man standing alone on a train platform\nA person with a blue ring eating a doughnut\nA guy is standing in an airport with several bags of luggage.\nA young surfer in green shorts riding a wave.\nA zebra walking on the dirt with trees in the background\nTwo people with pizzas on a picnic table outdoors.\nA woman and a man riding on the back of an elephant.\na couple of vases that are on some kind of mat\nA fried and breaded sandwich is topped with preserves.\nSkillet filled with salami, broccoli and other vegetables.\nColorful room with two bouquets of flowers on a table.\nBaseball players are in their positions to play the game. \na man standing on a surfboard in the ocean\nA basket full of broccoli sitting next to other fruits and vegetables.\nA bed with pillows in a small room.\nTwo ducks swimming in a grassy pond together\na group of people playing soccer on a field\nA picture of a street light through a rainy lens.\nLocomotive pulling cars on tracks in outdoor area.\nA dog jumps and catches a red frisbee\nA hand with finger on a blender filled with liquid.\nA person riding a pink motorcycle down a street.\na close up of a toilet and a bath tub with toys\nA woman sitting on the floor with a box of food.\nA bathroom with white painted walls and white fixtures, including a toilet with the seat raised up.\nElderly woman looking over boxed pastry items at outdoor venue.\nA person skis past two people and a dog\nA man eating a hot dog covered in ketchup and mustard.\nA bedroom area with a bed, mirror and window to patio.\na woman surfing as a man comes to join her \nPeople around a purple truck loaded with a vehicle.\nA man standing on a boat in very clear waters.\nA young girl jumping into the air while holding an umbrella.\nTug boats do a good job handling water emergencies.\nA crowd of people at the beach flying kites.\nA baseball player wearing a catchers mitt on top of a baseball field.\nThis is an image of the inside of a nice bathroom.\nA big pizza and some other assorted food items.\nA child in a room with a remote in hand.\nA street scene with a trucking going by.\nA bus that is sitting in the street.\nTwo giraffe standing next to each other in a forest.\na bed with a white veil sitting over it \nA group of people are looking at a plane being removed from a field by a bulldozer.\nDonald Duck talking to Minney Mouse at Disney World at Christmas.\nA man sits with his bike on the beach\nA blue clock on the top of a stone building.\nA parking meter that still has fifteen minutes on it.\nA black and white photo of an old locomotive.\nThere is a bus and a car on the road.\nIt looks like there is writing on the bottom of the Stop sign.\nA stone building with a clock displayed on the outside. \nA living room filled with furniture and two windows.\nA man wearing his collar up with a untied neck tie.\nA kitchen area with a dining table and counter.\ntwo men one is surfing and the other is giving him a signal to go right\nA counter containing two silver vases with colorful flowers. \nan old keyboard sits next to some headphones and a mouse\nA surfer carrying his surf board out of the ocean.\na man that has a medal around his neck\nA wooden park bench sitting in the  middle of a park.\nMany skateboarders going down a very wide city street.\nA dog catches a firsbee in the middle of the air. \na table with many plates of food and drinks\nA desk chair sitting up against a desk.\na person riding a snow board on a snowy surface\nA herd of elephants walking among the grass.\nTwo young boys riding skis down the side of a snow covered slope.\nA small airplane flying over a field over crops.\nA close up shot of scissors and tape.\nTwo woman sharing an umbrella as they walk\nA time lapsed image of a skater doing a jump trick.\nA time lapse photo of a man skiing down a hill.\na bird is standing on a green bench\nSliced oranges, a juicer, a glass and a paring knife used to make orange juice.\nA bear searching for food near the river.\nA cat sleeping on a grey tarp on top of a car.\na parking meter with a pink candle on top of it\na stainless steel fridge in a cluttered kitchen\nA living room decorated for Halloween with a large window with closed blinds.\nCluttered white shelf with tootbrush, toothpaste and hairbrush.\nA few items sit on top of a toilet in a bathroom stall.\nthree men standing in the park while talking to each other \nTwo surfers in the water riding the waves.\nA black dog in a bathroom drinking out of the toilet.\nA pile of surfboards and kayaks sitting on a storage lot.\na small toys with so many people in it\nThe dog is swimming in the lake on a sunny day.\nTHERE IS A CLOCK THAT IS ON DISPLAY IN THE CITY\nA group of woman sitting around at a picnic.\nA man pushing a four wheeled art full of bananas.\na black and white photo of a person riding a dirt bike\nA red stop sign topped with street signs.\nA group of men standing around a UK surfboard.\nA small white room with an unmade bed that has a backpack and a pair of glasses resting on it.\nA smiling young man laying in a parking spot.\nA bowl full of broccoli and tomatoes being cooked. \nA gray and white cat sitting on a grey office chair.\nWoman standing in her snow boots with an umbrella. \nA man at a baseball field, dressed in team uniform, holding a bat.\nFour green traffic lights on an empty road.\nRunning track and playing field in a mountainous landscape\nA white plate topped with a cut in half sandwich.\nA young man trying to catch a neon frisbee.\nA photo of chalk writing on the sidewalk next to a white fire hydrant.\nA room that has a bed and a bathtub.\nA large lake filled with small white boats near a forest.\nA man riding a wave on top of a surfboard.\nA man sitting at a table wearing a shirt and tie smiling.\nA dog licking the top of a  beer bottle\nTwo adult dogs play with frisbees in the snow.\nA man with a backpack on ski's hiking up the side of a mountain.\nA young man riding through the air on top of a skateboard.\na train sitting on a train track at a stop.\nA street scene with a large truck driving by.\nThree airliners are preparing to load passengers onto a plane.\na large clock tower towering above a city under a cloudy blue sky.\nA small elephant standing next to a house.\nA fan that has the light on over a table.\nA view of a sheep staring at the camera, its flock is behind it.\nA man standing next to a bike inside of a building.\nA WOMAN SITTING ON A BENCH EATING PIZZA WITH A LITTLE BOY \nA guy on a surf board riding a wave.\nA close up of food, cigarettes and a remote controller. \nA fork full of food including carrots and tomato is being held up to the camera.\nA sink that is hanging underneath a mirror.\nA man sitting in a chair opening empty luggage. \ntwo people at a bar holding drinks \nA person is in the grass holding a frisbee.\nA man walking into the ocean while holding a surfboard.\nA man riding  skateboard into the air.\nA group of skiers trudging up a snow covered hill.\nA man riding a snow board on top of a snow covered slope.\na purple towel is hanging in in a white bathroom\nA group of three men standing next to each other.\nA golden lab puppy wearing a red bow tie.\nA couple stands next to a wedding cake. \nA beach chair and umbrella sit for another day at the beach.\ndifferent segments of the same person riding a skate board\nA cat on the ground with a shoe.\nA young child is holding a blue skateboard.\nAn outside photo of a fire hydrant in between two poles.\ntwo children being entertained by preparing pizza at home.\nA kitchen with lots of counter space and black and white appliances.\nA man standing on one foot holding a controller.\nPizza on a cutting board is next to goblets with a beer bottle.\nA green street sign next to a dirt field by a playground.\nA series of different photos showing different kinds of food.\nA person holding a computer mouse next to a keyboard.\nThe front of a business that sells teddy bears.\nA zebra laying on a dirt ground next to a wooden fence.\nA little boy is standing near a lot of toys.\nA living room with a white couch and flat screen TV.\na conveyer belt full of doughnuts rolling down the machine\nA living room filled with lots of furniture and seats.\nTwo kids playing in a room with a beach ball. \nA woman bounces a tennis ball on a tennis racket.\nA airplane flying high in the sky next to a set of white smoke lines. \nA woman digging through the storage compartment on her moped.\nA couple of clocks next to a wine glass\nWomen in orange skirts walking on a tennis court while people watch in stands.\nA man with glasses skating alone on a snow covered field\nAn elephant is walking along with another elephant.\nA picture of a yellow Cam-am three wheel motorcycle. \nA woman hitting her coaches fist with her first on the court. \nSoccer player returns the ball from the goal.\nA room with wooden slatted walls adorns two shower knobs, a trash can, a soap dish with soap and a sink.\nA strange brass statue holding a clock on a bureau\nA beautiful young lady laying on top of a park bench.\nA person riding a skateboard up the side of a ramp.\nA cat laying next to a stainless steel bowl.\nA dog is looking at a pink, flowered, multiple layered cake.\nA clock hanging from a white wall in a kitchen.\nA red frisbee flying past a tree in a park.\nLaptop and desktop computers in use on a cluttered desk.\na close up of a bed with pillows and sheets\na red train is docked at the station\nA pitcher pitching a baseball during a game.\nA person is riding a skateboard on a curved ramp.\nA passenger train traveling on rail road tracks.\nA man flying through the air over a skateboard.\nA girl hanging on a street light pole that has quite a few lights on it.\nA young man does a trick on a skateboard in a bowl while other children with bikes and scooters watch.\nA woman using a laptop in the dark on a bed\nThree tropical bird perched on top of high bare branches \nA bald man holding a hot dog in a white wrapper.\nA display case filled with fruit in paper wrappers.\nA plate with a hot dog and french fries on it. \nA man standing next to a woman as they both eat hot dogs.\nA man is cooking in a crowded kitchen.\nA man on a laptop while sitting on a couch.\na room wit ha chair a bed multiple windows \nTwo white plates topped with lots of desserts.\nTwo hot dogs covered in cheese and tomatoes in a carton.\nA black and white cat laying on top of a bench.\nA large jet flying over some small foothills.\nA flower vase that is very colorful. \nA modern bathroom with a spacious tub and shower\nA person looking up at the sky where a kite is flying.\nTwo guys are checking their messages on their phones.\nA monkey runs past some giraffe standing by the trees. \nA couple of white toilets in a small room.\nA kitchen refrigerator with numerous pictures held up by magnets, next to counters and a dining table and chairs.\nA wooden bench with a black box on top of it.\nA group of bikers parked in the middle of a street.\nA person on a skateboard up in the air.\nA man wearing a black jacket, tie and sunglasses.\nThe two surfers are read to take on the waves.\nA woman riding skis on top of snow covered ground.\na man wearing an apron in front of a table filled with ingredients\nA chef scooping out a blender into a pot.\nA group of skateboarders sitting outside on some concrete.\nYoung adults lying on fold away bed in living area.\nA picture of a busy downtown intersection with a tuning bus.\nSome food that is on a glass plate.\nA small bus parked in front of a bus stop.\na close up of a pair of scissors on a counter top\nA stir fry bowl of broccoli and a bowl of meatballs.\nA black and white dog is catching an orange frisbee.\nA fire hydrant that is partially buried in snow.\na park bench that has some trees around it\nA sign in the grass stating the next highway. \nA plate that has a piece of cake and ice cream on it.\nA yellow fire hydrant with a cartoon face drawn on it.\nA man in a trench coat, hat, and carrying an umbrella pointing to the shirt collar of another man.\nA young boy using a computer on a kitchen table.\na man sitting on a red and black motorcycle\na female skier wearing a backpack skiing over the snow \nSeveral people in a green field flying kites.\nA bus driving across a cross walk near a tall building.\nA woman is taking notes in front of her laptop\nTwo plane flying over a sea and island\nA group of people riding surfboards in the ocean.\nA cat in a dark room standing up on all fours.\nA group of people sitting together holding Nintendo Wii controllers.\nA bunch of very pretty umbrellas very close together.\nA man and women rest as there dog stands on the trail.\nLittle girl observing three octopus kites being flown\nA woman with outstretched hands and an umbrella above her head.\nA  train traveling on a snow covered track.\nMany birds fly around, above an empty beach\nA bathroom that has magazine rack and small cabinet.\nA fire hydrant on a cart with a hose attached to it.\nLarge sized kitchen with a dining room section.\nA rack with lots of ripe bananas hanging from it.\nAn elephant standing in the middle of a tent.\nA couple of boats and car on a street.\nThe train image on the wall is beautiful.\nA pile of donuts sits beside a cup of coffee.\nA glass of wine on a wooden table.\nA person in a shirt and tie is holding a can.\na cat licking its lips while holding onto a toy in the shape of an elephant\nA man flying through the air while riding a skateboard.\nFemale tennis player getting ready to serve the ball\nA flock of birds floating on top of a boat.\nA young man riding a skateboard down a metal hand rail.\nA man holding a pizza paddle taking a pizza out of an outdoor oven\nA group of horses standing next to each other in a barn.\nA man riding a surfboard on top of a wave in the ocean.\na public transit bus on a city street \nPeople gathered taking pictures with a cell phone.\nA plate with salad, oranges and a sandwich with silverware arranged next to it.\nA woman walking while carrying bananas on her hat.\nTwo trucks parked next to each other on a dirt road.\na motorcycle is parked near a building by the curb\nA white plate topped with a chocolate cake and a lemon wedge.\nA baseball player leans on a bat with his hand on his hip.\nThree dogs are sitting looking outside of a window\nA picture of a street sign with various posts on it.\na man getting a hair cut takes a photo of himself \nA half bitten doughnut next to several baskets of strawberries.\nA green pasture with lots of animals in the foreground and mountains in the back.\nA parking meter next to a parked car.\nA person on  skis heading down a snowy slope\nA warehouse filled with light fixtures in it.\nA man taking his picture in the mirror with a camera.\nA person flies a kite on a stormy day.\nA stop sign that has some graffiti on it.\na women eating some kind of food in a restaurant.\nA beach with umbrellas, boats, and people biking or walking.\nA person sitting on a wooden bench outside.\na man on a motorcycle that is in some grass\nA group of children playing baseball out side.\na fake sheep on green grass and flowers in the background\nA person holding a cell phone in their hand.\nA brown cow stands at the edge of a roadway.\nA red plate sitting on top of a table with food on it.\nA plane just having taken off from the ground \nA man standing next to a white frisbee flying over a field.\nA baby chooses on a toy while someone gives him a bath. \nA LOT OF PEOPLE ARE RIDING ON THE ELEPHANT \nA WOMAN IS SITTING IN THE CHAIR READING \nA black tray with various plants and flowers in it.\nA man standing next to a woman in a room.\nAn adorable cat attempts to hide in a purse to steal the persons identity.\nA parking lot filled with cars parked next to each other.\nA baby in a carriage on street next to market.\nAn elephant and a punk are standing next to a river.\nA group of birds eating at a bird feeder\nA yellow school bus parked  near a tree.\nA man holding a tooth brush up to his face.\nA couple of people walking over a bridge going over a street.\nSome very cute zebras in a grassy field.\nA man with safety equipment next to a fallen tree and red fire hydrant.\nA green truck parked in the middle of a garage.\nA clock tower next to a building and trees.\nA close-up of a plate of food that has been eaten.\nA white and orange cat sitting on top of a sidewalk.\nA black and white picture of a busy street, only red is in color, a red double decker bus drives down the road. \nsome people are riding motorcycles down the street\nA blue airplane with a propeller is sitting on a runway.\nTwo suitcases on top of a luggage holder\nA young man holding a bunch of green bananas inside of  a store.\nA couple of giraffes being feed by people at the zoo.\nThree men are wearing identical black suits, vests, ties and shiny black shoes.\nA brick oven with logs and a uncooked pizza next to it.\nsome cups are sitting on top of a toilet\nA photograph is against a wall near a door, a plant, and a clock.\na table that has some computers on it\nMan with a hot dog in a paper rapper in his hand.\nA power tool sitting next to a computer keyboard.\na bike chained to a metal pole on the sidewalk\nTwo yellow fruits hanging on branches full of leaves. \nAn older Dodge pickup sits parked next to another older pickup.\na big train that is on a rail way\na boat is sitting next to a dock\nA cat sitting on a hard wood floor in front of a large library of books.\nA person in a wet suit on a surfboard\nsome white and blue porcelain designer toilet bowls\nTwo zebra grazing on grass next to each other.\nA young boy with a downed kite on a string\nA line of wagons with vendors selling fruit.\nThe plate with many compartments has two orange bowls with food in them.\na man on a dirt bike next to some vehicles\nA man that is standing on a tennis court with a racquet.\nA plate of food including bread and vegetables.\nA street light sitting next to a building on the side of a road.\nA train traveling down tracks near a small town.\nA black and white picture of a young boy on a skateboard. \nThe two gentlemen are talking with each other.\nA box contains six donuts with varying types of glazes and toppings.\nA striped cat sleeping on someones white purse\na bear that is sitting on a table\nA biilboard with a railcar in front of it. \nA small, brown dog holds a green toy in his mouth as he runs in the dirt.\nA person surfing on snow between the snow clad trees.\nThere is a mountain behind the light house.\nA white plate holding various sized doughnuts on a table.\nTwo small airplanes parked on a lush green field.\nA baseball player warms up with his bat before he is up to hit. \na truck and two double deckered busses near a building\nA beautiful woman looking over a mans shoulder in front of a computer.\na bunch of people are in the water at the beach\nA group of men washing a baby elephant in a river.\nA kitchen with a stove, microwave, telephone, table and chair. \nA pile of stuffed animals hanging from the ceiling of a store.\nThe jail cell looks run down and dirty.\nThe computer monitor has a framed picture near it.\nAn elephant under a canopy with a fence in background.\nA close up of an apple next to a knife\nTwo zebras in the standing next to each other rubbing noses.\nA girl flies a kite in the air outside.\nCross-country skiers are getting their workout for the day.\nSome type of bread that is cut in half\nClutter stands on top of a storage cabinet in a corner\nA bathroom with both a toilet and a urinal in it.\nA train on a track on a sunny day.\nA yellow moving truck on a snow covered street.\nA picture of a fire hydrant that is cut in half.\nA young person riding a skateboard at a skate park.\nThe stop light found at a Hocken avenue intersection.\nA gold circular clock and temperature display atop a building.\nAn old motorcycle rests near a rundown building. \nSailboats parked at a dock on a calm lake on a clear day.\nALL THE DELICIOUS TREATS DISPLAYED IN THE DELI.\nA woman holding a child on her hip in the water\nA pile of vegetables on a green crate that is sitting on bed.\nA pizza topped with lots of cheese and toppings.\nA man jumping into the air while riding a skateboard.\nAn old man is trying to use his cell phone.\nA bathroom area with sink, mirror and various toiletries.\nThe man plays on the beach with his two dogs, one of which is a black standard poodle.\nA teenager riding a skateboard down a street.\nA train engine carrying carts down a track.\na vintage photo of a couple of people sitting on a bench\nThe birds are sitting next to each other on a tree branch,\nA plate of vegetables with carrots and eggplant.\na close up of a person holding a cat wearing a tie\nAn elephant walking down a street next to a crowd of people.\nthis image does not have a picture associated with it to describe\nOld dirty freight train parked by itself near the tracks.\na close up of a rusted ol car in a field\nA man riding a wave on top of a surfboard.\nA woman playing  with a toilet seat and putting a normal chair over it.\nA picture of some people on their computers.\nA small elephant is walking in an enclosure by the fence.\nA herd of cattle grazing on a lush green field.\nA giraffe and two zebras are standing in the grass.\na man with a surfboard hooked up to some parachute. \nA grey and white bird in water with a fish in its beak.\nA man kneeling down next to a brown cow.\nA man doing a trick on a skateboard\nA large building with a tower and clock on top.\nA service vehicle sits on a tarmac in front of a jet. \nA large jumbo jet is flying above trees.\nA park bench overlooks the ocean in the snow.\nMany cows are fenced into the green plains.\nA wooden box wit clock hanging from ceiling of building.\nThe hotdog is next to the cup that is on the table. \ntwo zebras eating grass in a very big field.\nA pizza with bacon and chives on it on a plate.\nA woman standing in front of a bathroom mirror taking a picture of herself.\nA couple of trees beside a roar with some cars.\nthere is a old train that is coming up the tracks\nA horse standing in the grass in a fenced in area.\nA man that is holding a camera in both of his hands.\nA school bus on the road with traffic lights next to a forest.\nA woman in vintage clothing carrying an umbrella\nA dinner table with salad, pizza and wine on it\nA snowboard sitting on a snow covered slope.\nFamily and friends are together at the beach.\nAn orange cat sitting on the ground next to a  purse.\nA chick inside of an oven covered in herbs and seasoning.\nA group of people walking down a sidewalk.\nSeveral buses stopped on a night time street.\nA man stands beside his motorcycle in front of a store.\nHuman being having fun and enjoying some life.  \nTwo giraffes are standing outside of a door.\nA tall, stone clock tower seen from below\nA group of skiers in the mountains reach a sign.\nA person passes an expanse of snow on skis while another watches in the distance.\na keyboard a monitor a brown desk and headphones\nA person with a hooded jacket is working on a laptop while sitting on a bench in the park.\nA large bed with a brown giraffe print headboard.\nA man is sitting next to a Christmas teddy bear.\nTwo people playing tennis on a blue court.\nA giraffe stands between trees while other giraffes walk behind him.\nA metal container catching doughnuts as they fall.\nMan bending down to check out a model plain that is parked in the grass\nTwo dogs survey the framing of a house addition\nAn older woman sitting at a table with a cake\nThere is a motorcycle parked against a wall.\nA woman sitting on top of a bench while reading a book.\na snow skier in full gear coming down a mountain\nA lone man sitting on a bench on hill next to a large tree\nan image of ripe bananas being hung in the air at an outdoor market\nA baby giraffe is lying down in an enclosed grassy area while a larger giraffe is walking around.\nA woman using a laptop computer at night.\nA white tub sitting underneath a couple of windows.\nA person carrying several sacks under an umbrella.\nA table holding a variety of beverages at an outdoor party.\nA man sits in a car while on a phone.\nDifferent views of a man who is skateboarding.\na room with a clock on the wall and a small table \na small boy is wearing a blue and white tie\ntwo gray stove burners and a wooden bowl with four apples\nA bus sitting parked on the cement near a building.\nA paper with a hot dog on it next to a cup of beer.\nA group of air planes sitting on a runway.\nPair of giraffes walking on grassy area in enclosure.\nA dining room table set up for a fancy dinner.\nA dead end street sign sitting next to abandoned furniture and garbage\na close up of a bunch of bananas and a container of garlic \na bear walks on a rocky surface \nA living room has a television, a table, and a painting.\nAdults with pickup truck next to field with sunflowers.\nA man putting a pan inside of an oven with his bare hand.\nA man flying a kite on the beach. \nA hotel room filled with beige and blue furniture.\nA large stone bench sitting next to rose bushes.\nClock tower over a crowd of people standing on a bridge.\na blue and white passenger train coming to a stop\nThe clock shown above has someone's name on it.\nA snowboarder stands next to a person in skis.\nA close shot of someone holding a small pair of scissors. \nA large predatory bird sits on a tree branch in an exhibit.\nA group of people standing on the side of a beach.\nA woman taking pictures on a busy street.\na wooden bench with some yellow and green leaves \nA man skiing down a snow covered slope.\nPerson in a black wetsuit surfing on the ocean.\nA man is plowing the field in preparation.\nA man winding up to throw a frisbee in the park\nA clock sitting in the middle of a room illuminated.\nA group of people walking across a crosswalk.\nA person holding birds in an aquarium full of spectators.\nA train sitting on a track in a field near a bridge.\nA man sitting on his surfboard looking out into the ocean. \nA city with people on a fountain and in a grass field.\nA man riding a skateboard on a basketball court.\nA stuffed pink teddy bear laying next to a doll in a dress.\nA stop sign with a sign above it that reads, \"David\". \nTwo adult zebras and a baby are in an enclosure.\nA white open toilet seat with signatures sitting amongst posters.\nA red fire engine truck on the street in a parade.\nA small herd of young elephants are standing in water.\na man flying through the air while riding a snowboard.\nA man carrying a surf board that looks like it was splattered with paint.\nA red truck driving down a rural country dirt road.\na guy skate boarding on the edge of a wall\nA large passenger jet flying over a mountain.\nA newspaper that has sunglasses on top of it sitting in front of books.\nA dead fish laying on a platform next to a knife and pliers.\nnumerous signs attached to a post with bald trees behind them\nA person riding a skateboard down a stair rail.\na bird walking on the beach in front of the surf\na line of kids that are in baseball uniforms\nA group of baseball players that are walking in the outfield.\nMan on phone and drink with red hue standing next to a woman\nA beautiful bird with brown wings, glides over the water\nA group of people waiting at a table at a restaurant.\nPeople on a beach fly colorful kites on a sunny day.\nA dog walking away from a stone wall with a man on it.\nthere is a small dog that is looking threw the glass\nA traffic light hanging from the side of a wooden pole.\nA white dog wearing a red coat on a sidewalk.\nA blue snowboard sitting on top of a snow covered slope.\nA man holding a tennis racquet on a court.\nA bathroom with a row of wall mounted sinks.\nA man standing next to a woman in a living room.\na giraffe behind a fence eating grass from a feeder\nA white toilet sitting in front of a brick wall.\nA man with a beard in a vest  plays Wii.\nA red and white bus on street next to a building.\nA man riding a wind sail over water.\nA man holding a baby in a white baptism outfit.\nA group of young men standing on top of a lush green field.\nThe scissors are on the table next to the coffee mug. \nA parked motorcycle in front of a small store.\na train is passing a lake by a mountain\nA group of people sitting down to eat and having conversations.\nA woman in glasses eating a chili dog with umbrellas behind her.\nA small bathroom with a toilet and a sink.\nA truck pulled over on the side of the road.\nA red double decker bus traveling down a street.\na black and white photo of a train \nA large truck parked next to palm trees on a street.\na child is holding a white umbrella and some trees\nA blurry photo of a kitchen and a dining room.\nGreen illuminated walk sign on a pole in a city.\nA long wooden table with a woman sitting under an umbrella.\nA train traveling along train tracks next to another set of tracks.\nThe reflection of a dogs head out of a car window in one of the cars wing mirrors\na couple of people are standing out in the snow\na head shot of an elephant with a man sitting in the back ground\nPeople skiing in the snow on the mountainside.  \nA picture of two people sitting on a bench.\nA round swimming pool has privacy trees around it.\nA tall glass vase on a balcony. \nA group of boys play a game of soccer outside. \nA man kicks a soccer ball on a soccer field.\nWhite dog sitting on a unmade bed with blue sheets.\na cow standing on a dirt ground with trees in the background\nA man kiteboarding on top of waves in the ocean.\nA man in a jean jacket riding a motorcycle on a road.\nA pitcher in baseball throws the ball to the hitter.\nA bike is parked alongside the lake shore.\nLarge open field in the middle of a stormy area.\nA young woman prepares to slice a giant birthday cookie!\nA bench with a green umbrella on top of it.\nA person on a snow board high in the air.\nA man in a suit smiling at the camera \nPeople and their loads of luggage in line at an airport\nAn old creased photo of a group of boys and men\nAn elephant in a field surrounded by trees.\na person riding a skate board in front of a brick structure\nSheep with numbers painted on them in a green grass field together.\na brown wood counter with sink in a bathroom\nA man and woman cutting a cake near a window.\nA very tasty looking pizza with some black burnt spots.\na blue black and white bus some cars trees and buildings\nA girl holds a plate of food while eating a piece of it\nA small round table with half eaten sandwiches and drinks.\nA dark night at a market with bananas hanging from a stand.\na number of birds flying near a nest \nA bed with blankets, and pillows on it.\nA fire hydrant with a tire underneath it.\nA man holding a half eaten hot dog and a dollar.\nA man at a desk gestures before a laptop while holding a phone to his ear.\nA group of friends hanging out around a swimming pool.\nA large traffic light suspended over a road.\nA man riding a wave on top of a surfboard.\nA group of young people are sitting on a concrete divider.\nThere are some colorful contraptions sitting in the sand on a beach\nA man with sunglasses on with sandwich at a table.\nA living room with tv and speakers, sofa and coffee table\na red and white sign a fence grass and a building\na little kid that is eating a big cake\nTwo women in wetsuits pose with a surfboard. \na sugar donut with a bite taken out of it\nA jumbo jet airplane in flight on a sunny day.\nTennis player serving  a tennis ball on a clay court\nA woman standing next to a white horse on a lush green field.\nfive sheep standing on a wide open field\nA necklace surrounding a large glass stone in the middle of a table.\nA small bird perched on some metal bar \nA herd of animals grazing on a dry grass field.\nA case is sitting on top of a bed.\nA computer desk with a green mat sitting on top of it.\na white toilet sits next to a dresser \nA bike in the middle of an empty parking lot next to trees\nA herd of giraffe and long horned goats laying in a zoo.\nfresh vegetables picked from a garden and a gardening tool\nSilhouette of a herd of elephants walking across the field\nBananas sitting on a green fence with gourds. \nSome cut vegetables are kept in a tray on the table.\nThree gray and white baby birds are sitting in a nest.\nSeveral slices of pizza on a white paper plate.\nA giraffe standing on a grass covered field.\nA black and white image of a woman catching a bird\nA man in a jacket and hat stands near a street sign.\nA man and woman standing on top of a snow covered slope.\nA man standing on top of a blue tennis court.\nAdult elephant standing next to wire fence outdoors.\nA couple of food trucks parked in a parking lot.\nA boy touches a frog on an orange Frisbee.\nThe pizza has mushroom, sausage, and black olives.\nA person standing near two cars is watching a jet take off from a field.\nA wooden shelf with lots of books on top of it.\nThe thin pizza is sitting on the plate.\nA vintage trucks towing a trailer next to a classic car.\nSome very colorful and large kites being flown on a beach.\nTwo motorcycles parked in a grassy area next to a tree.\nTwo birds are standing in the water together.\nA clock tower at night near a bridge and several lit buildings.\nMeat sitting on a plate with green vegetables on the side.\nA woman is holding a hot dog up to a man's mouth.\na woman hitting a tennis ball with her racket\nA picture of a dog on a bed.\nLittle birds sitting on the shoulder of a giraffe. \nA couple of men riding skis across a snow covered ground.\nA stop sign before a traffic control booth on a highway.\na black cat standing in front of a motorcycle\nThe group of young men is playing a game of Frisbee.\nA woman is sitting at a table and eating with two children.\na man is in the air on a skateboard\nSeveral people playing in a field and flying kites.\nA photo of an old clock tower next to some buildings.\nA Star wars storm trooper holding a pink umbrella.\ntwo giraffes are standing together outside a barn\nA person is cutting an item of food. \nA clear glass vase of yellow flowers against a blue background.\ntwo big stuffed bears sitting behind a chained fenced\nBaseball players seen playing the game through the fence. \nMany of the kites ascend high into the clouds.\nTwo cows standing close to one another near a wire.\na living room with a leather sofa , flat screen television, throw pillows and a wood slatted coffee table.\nA man and woman are looking at a television while playing Wii.  \nPeople sitting in chairs and on the floor at an airport terminal.\nA woman standing over a pile of vegetables under hanging banana.\nA plae with a sandwich cut in half and french fries.\nA close shot of a unique looking plate of food. \nA man is playing with a Frisbee on a balcony.\nA computer desk topped with a computer and two monitors.\nA row of wooden benches sitting on the side of a road.\nA woman with suitcases waiting for a train.\nA woman riding a paddle board with a little boy.\nA group of men in suits sitting at a table using laptop computers.\nA close up of a stop sign with two hand written notes taped to it.\nfemale surfer riding a large ocean wave on a surfboard \nA flat screen TV sitting in a living room next too a shelf.\nA woman walking down a street topless holding an umbrella.\nA wide blue vase is holding an orange daisy.\nA close up photo of a person holding a skateboard.\nA girl hitting a softball with a bat during a game\nSide of meat sitting on a white plate on a dinner table. \nTwo toothbrushes and a tube of toothpaste are in a cup.\na batter after he has hit a pitched ball before he is going to run\na living room containing a rug a table and some sofas\nA man riding a bike across a cross walk with a dog.\nAn ornate wood clock with carvings on the face.\nA surfer carrying the board underneath it's arm.\nA man tossing a frisbee on top of a green park.\nA brown cow walking along side of a man.\nman on blue tennis court preparing to make serve\nThe building has a light pole with for lights in front of it.\nDog statue wearing a hat, sunglasses and stars and strips bunting.\nA baseball player throwing a pitch onto the field\na man sitting at a table with some laptops on it\nA woman is hitting a ball with a tennis racket.\nA small train ride with little tracks through the grass\nCows are grazing in the countryside with a bridge in the background.\nA animal laying in the sand on a beach.\nA man riding a wave on a white surfboard in the ocean.\nA octopus, shark and monster kite flying above a crowd.\nA man holding a tennis racquet and two tennis balls.\nA glass cup full of some drinks set on a table counter.\nBlack and white photograph of a young man on cell phone.\na close up of many plates of food on a table \nA cat laying on a blanket in a cage. \nA kid tossing a blue frisbee towards another kid.\nA herd of cattle standing on top of a grass covered field.\nA young man riding a skateboard into the air.\nA person walking in the rain holding an umbrella.\nA small white tow truck parked to another small white tow truck.\na few people that are standing on a beach\nThe animals are grazing and eating in the grass.\nA man walking a dog across a wet street.\nA cat that is sitting down on a porch.\nSome players in action on the baseball field.\nA group of people standing on a snow covered hill.\nA woman is playing tennis on a brown dirt court.\nA white bed with a rucksack and bag on it.\nA baseball player pitching a ball on a field.\nA man on a court swinging a racket at a ball.\nA man standing in the ocean while holding a surfboard.\nA man riding a skateboard up the side of a ramp.\nSeveral pieces of fruit including:  a pineapple, apples and pears.\nA bus driving down a street past tall houses.\nthe elephants are  all next to each other under the tree\nA woman sitting at a table with a  pizza in front of her.\nSeveral different types of electronics sprawled out on a bed.\nScissors are next to a pie crust in a dish.\nA mans reflection in a side view mirror.\nThere is a toy owl sitting next to books on a shelf.\nA cell phone and some key on a table.\nA cat curled up on a bed sleeping with a man sitting in the back ground holding a laptop and watching the cat.\nThe man eating a sandwich is walking beside a talking woman.\nAn empty bathroom with a shower next to a toilet.\nGauges attached to pipes displayed in dimly lit area.\na kid stands on a hillside while flying a kite \nA person setting in a chair in a living room with a fireplace and windows.\na bathroom with a wooden water box for the toilet\nA dog wearing a protective cone around it's head watching TV.\nA clean bathroom with blue tiles on wall and counter.\nA black desk with a desktop computer monitor and keyboard sitting on top of it.\nA small boy trying to fly a small kite\nA view of a TV and a statue laying on the ground, next to a window.\na close up of two people sitting near one another\nA purple and yellow bus driving down a street.\nthere is a man holding on the a kite that hes flying \nThe hikers make sure they are out of range of the black bear.\nA motorcycle carrying a bicycle is parked in the gravel. \nA woman standing in a kitchen with a dog.\nA dinner table with wine, glasses, and bread. \nAn old, rickety wooden  bench near the woods.\nClose up of the flower extending from a banana tree stalk\nWoman listening on her phone while smoking a cigarette.\nA tour bus parked in front of a building with a large advertisement painted to it's side.\nA laptop on a desk with a cat laying on it.\nA few different computers are placed on the desk. \nTHERE IS A WALL WITH FLOWERS ON IT AND A BIRD \nA person is standing over a dirty toilet in a bathroom stall. \na man rides a motor cycle across a field\nA man is holding a device playing a video game.\nA group of young ladies kicking around a soccer ball.\nA group of people walking on the beach carrying their surf boards.\nA big white plate filled with some sort of food item.\na couple of young kids play a game of basketball\nCar waits as person on bike crosses the road\na pizza with some pepperoni and mushrooms \nA view of a street, with a church in the horizon.\nA young man is playing frisbee in the woods.\nA sewage lid on the ground with a para sail chute in the background.\nTwo people holding each other while at dinner\nYellow umbrellas are scattered around the beach along with one chair.\na large cow stairs across the snowy fields\nMAN STANDING NEAR TABLE WITH A BASKET OF APPLES\nA man is sitting down with a piece of chocolate cake in front of him with a fork in his hand.  \nTwo people eating a variety of food together.\nA sheep standing in a dry grass field.\nA man kicking a soccer ball whle standing on a field.\nSurf boarder riding on a big ocean wave.\na teenager playing in a skate park with a skateboard \nA dog laying under an office desk with two computers, a bag and other small objects.\nThe three giraffe stand next to a pile of logs.\na close of up a clock that makes the moon look small next to it\nA small white bird standing on top of a dirt field.\nA man holding a slice of pizza at a wooden table.\nA lady jumping after the ball at a tennis match.\nA television sits on a cabinet in a room.\na boat with a rainbow umbrella sitting in water \nThe bathroom is small and white and gray.\nan upclose photo of a cake with chocolate pieces\nA man standing on a tennis court holding a racquet.\nA man riding a skateboard up the side of a ramp.\na black cat is laying on a couch\nA stoplight on yellow during a snowy day.\na person at a table with a pan of food \nA police officer rides a motorcycle next to a beach.\nA young boy stands around a busy area, wearing a white shirt with a yellow tie and a name tag\nThe orange cat is sleepy on the window sill.\nA professional baseball player in batting stance with bullpen in background.\nA cake sitting on top of a white plate.\nA group of people walking on top of a sandy beach.\nThe street is blocked by a truck and a crane.\nThere are two zebras standing next to each other.\nA train station with three trains and men waiting to board.\nan image of a church that is on a steeple\nA bus parked in front of a bus stop.\nA train pulling into the station in a city.\nA man standing in an airport with lots of luggage.\na green traffic light a street  some buildings and some other lights\nA women is cutting into what it appears to be snails.\nTwo people watch as the man jumps on the skateboard. \nA couple of kids holding Nintendo Wii controllers while standing in a room.\nA small town grocery store beside a road.\nA ADULT BROWN BEAR IS IN THE GRASS\nThe living room has a leather couch near a dining table.\nAn elephant walking across a green grass covered field.\na keyboard is in front of a laptop\nPizza with toppings baking in oven with steel\nA small bathroom with a checker board  wall.\nA young woman sits on a bench with shopping bags.\nA traffic light hanging over a street next to cross walks.\nA park filled with lots of people standing under trees.\nA pizza with sauce, spinach and cheese on a pan.\nA bowl of pudding sitting on top of a white plate.\nA yellow white and green train traveling down train tracks.\nA zebra in captivity grazing in its exhibit.\nA Chinese couple is posing for a photo. \nMeat item with sauce and vegetable and side dish on table.\nPeople out on a city street in the rain, many with umbrellas.\nA little kid that is eating some food on the table.\nA woman sitting next to a yellow hydrant on a sunny day.\nSeveral goats are resting at the base of a tree.\nA flock of white birds flying over small boats.\nA person holding a sandwich in their hands.\na guy on a bicycle and a guy flying a kite\nA gray cat on top of a fridge with some foodstuffs\nA dog rides in a cart pulled by a man on a bike.\nA cute dog is taking a nap on a very large cushion. \nA man walking near a building with a brick wall next to a table covered in pizza.\nA man in a white pants and a white shirt and colorful tie.\nA group of people standing around at a rodeo.\nA couple of men and one young man eating pizza.\nA late night, long-exposure picture of a city street.\nTwo pizzas are sitting in boxes with only one slice missing.\nA man petting his dog on a boat. \nTwo older men stand in front of a plaque on a church.\nAn edible teddy bear is sitting on a small cupcake.\nA fighter jet flying through a cloudy sky.\ntwo boats on the beach separated from one another \nA woman that is in the air with a frisbee.\nSheep graze in a large field with trees behind them.\nTwo people in yellow vests and helmets riding horses.\nA young man holding a racquet on a tennis court.\nPiles of different types of fruit in a grocery store.\nA little boy sitting next to an elephant with a long trunk.\nA beach next to the ocean covered in a rainbow.\na massive variety of pots and other objects are displayed along a long kitchen counter with a sink and a clock on the wall.\nA woman standing in a field flying a kite.\nA woman standing in front of an outdoor wall decorated with images and clocks.\nTwo metal warning street signs under tree branches.\nThere are abundance of fruits and vegetables being displayed.\nA tall giraffe standing next to a tree stump.\na bunch of people in a kitchen getting food ready\nA woman takes a selfie in front of a bathroom mirror.\nA batter holds the bat behind his head for a powerful swing.\nA street sign near many cars at a stop.\nA chair in the corner on a boat.\nA woman in a white coat in the snow wearing skis. \nA herd of sheep grazing closely together in a field.\nThree people wade waist-deep in the ocean while playing Frisbee.\nA large passenger jet with it's landing gear down.\nA black lab waits at a picnic table for it's master.\nWhite wooden bench next to reddish orange bricked wall.\nA desktop computer sitting on top of a wooden desk.\nA highway with a Rue Paul St. sign beside it.\nMan sitting on a living room with green couches. \nA group of buses parked in front of a tall building.\nA girl rared back with her racquet on a court.\nThe lone sail boat is in the water near a snow covered mountain. \na black toilet some toilet paper and brown tiles\nA pizza sitting in a pizza box topped with pepperoni.\nA black clock tower with a white sky in the background.\nA boy sitting on the floor in a living room holding a game controller.\nA sign for a dancing club is hanging from a building.\nA couple of cows standing and sitting on top of a field.\nA white computer monitor on top of a wooden desk.\nA woman is admiring a mans little dog. \nA shelf containing candles, flowers and a mirror.\na kid on a surf board rides some waves \nA heavily glazed donut sitting on the counter\nPerson cutting cake at a theme restaurant characters in background.\nMan in suit and tie standing next to a woman with glasses.\nA fresh produce market on a river as a man talks to the woman.\na large pizza is in a cardboard box\na train on train tracks at a train station\na crowd of people on a beach by the ocean\nA surfboard and paddle are along the shoreline.\nA woman flying a kite on the beach.\nA display case inside of a bakery filled with bread.\nA construction worker holding up a stop sign.\nA flamingo standing in front of water and plants.\nA small bathroom with a striped tile floor.\nA cowboy riding a horse beside a herd of cattle.\nA group of people standing outside of a white store.\nSeveral fruits with Chinese characters written on them.\nA vase sitting on a hard wood floor with flowers sticking out of it.\nA yellow fire hydrant sitting in a patch of green grass.\nA toilet sitting in a bathroom next to a mirror.\nA female wearing a helmet is riding a horse down a street with stone buildings behind her.\nA group of people sitting around a long table\nA black bird landing on the leaves in the water\nTwo cranes on top of an island surrounded by water.\nPeople on a boat with two males under an umbrella.\nA large television and couch in a room.\nA red rose in a glass vase on a table\na man and a woman are holding video game controllers\na truck painted like a a shark sits in a driveway with a horse statue in the yard\nA team mascot that represents a lightning bolt with boxing gloves.\nA bunch of giraffes that are standing in the dirt.\nA giraffe is bending its neck over a wood log.\nThe man is curious about what is on the laptop computer.\nA person walking across a street in the rain.\nA large jet flying through a gray sky with four engines.\nA Nintendo Wii remote is being used to control a projector\nA white plate topped with two hot dogs covered in ketchup.\nAn adorable little girl holding a Nintendo Wii game controller over head.\nA young man stands holding a laptop open, while another holds a toy truck, and a third man examines something behind screen of the open lap top, near a sandbox play area.\nA white gazebo surrounded by landscaping and trees.\nA bathroom with a walk in shower next to a toilet.\nA baseball player holding a wooden bat standing on a baseball field.\nThree giraffes standing up in a field eating leaves off of trees.\nA dog is jumping to catch a Frisbee.\nThe young child is cutting up some paper.\nA sail flying in the air over water.\nA street intersection in an Asian country during the day\nVarious sink cabinets lined up in a warehouse\nA red plate topped with a piece of cake.\nThe officer is riding a horse threw the streets. \nA couple of teddy bears sitting on top of a table.\nFour mountain goats standing on a hill in front of the country side.\nA man holding a giant pair of black scissors.\nA hand holding a bunch of ripe nearly rotten bananas.\nA stack of old trunks and luggage against a wall.\nan elephant in a field near many bushes \nA man at a podium with another holding an umbrella over him.\nA group of people launching and flying kites.\nThe train is pulling passenger cars down the track.\nseveral men on a street corner repairing a street sign\nA sign for oranges for sale that read twenty five cents per pound.\nTwo people playing Frisbee in a field of grass.\nA couch that over a carpet in a living room.\nA person riding skis down the side of a snow covered slope.\nA man riding a skateboard on a ramp.\nThe people are roller skating down the road.\nThere is no image here to provide a caption for.\nA woman on a ski slope wearing her skis\na close up of flowers in a vase near a wall\nWhite bowl full of chopped carrots and broccoli.\nA cay laying on top of an open laptop computer.\nA girls bicycle leaning against a street sign\nA person wearing a helmet is riding a motorcycle on a dirt road. \nA couple of plates with sandwiches on them sitting next to an open can of spam.\nA green sign sitting on the side of a building.\nTwo different styles of buses parked side by side.\nA man playing with an interactive video game, with a cat next to him.\nA man sitting at a table holding a baby.\nA few goats eating grass in a grassy field\nTwo brown horses standing in front of a red brick building.\nA group of wine and liquor bottles that are lined up next to one another on a table.\nA man hits a tennis ball during a tennis game.\nA pair of people stand with a soccer ball in the middle of them.\nWoman sitting at table with beverages consuming sandwich. \nA woman swinging a tennis racket during a match.\nThe view of a living room couch, windows, fireplace, and television set.\nA boy preparing to fly a kite on a beach.\nA man talking on a cell phone while walking down a street.\nAn elephant strolling through a trail with two people on its back.\nThe silver refrigerator is across the kitchen from a black stove.\nA group of zebras standing and grazing in a field.\nA bus stop sign on a city street.\nA clock tower by street next to cars at night.\nA group of men standing around a table of food in wooden room.\nProfessional speaker on stage pointing out his coworker\na pepperoni pizza with some green toppings and a fork\na cat that is standing on a toilet and next to a sink\na bird that is flying high over the sky\nA woman is sitting on the toilet in the restroom.\nA stainless steel refrigerator that is in a kitchen.\nA plate with meat and fruit next to a bowl of salad. \nA pizza sitting on top of a pan under a glass counter.\nA group of zebras drink from a watering hole. \nGiraffes eating the branches of the trees in the field.\nA man sits on a bench and talks on the phone.\nA cooler attached to a sled near some skiers \nA tennis player is swinging at a volley during a match.\na close up of a tv with a man wearing s suit and shirt\nA snowboarder balances themselves with their arms spread out as they lean over on the board.\na table that has a train model on it with other cars and things\nA man standing in a living room holding a Nintendo Wii game controller.\nA bagel sandwich with scrambled egg and bacon.\nIndirect lighting in a darkened room plays across a table covered with the remains of a meal, thereby giving everything, including the table, a basket, plates with uneaten food, utensils and glasses with liquid, a reddish patina.\nA man holding a tennis racquet on a tennis court.\nYoung girl in purple sport short and white pants about to swing tennis racket.\nA child's train traveling down tracks with lots of children riding on it.\nTwo black cat sitting in front of a window facing the backyard. \nA guy is near a busy street in a foreign country.\nA cell phone and a smart phone lying side by side.\nAn orange cat laying on the black shoes of a person standing.\nA skier leaping into the air as an onlooker watches.\nSix uncooked doughnuts sit on a baking tray.\nA little girl stands on one leg as she plays with a remote while another person lounges in the background on a couch.\nPeople loll inside and outside of a small blue boat docked to a pier. \nA very orderly office with a bed in it was very well lit cause of open windows.\nA young boy wearing a baseball uniform holding a baseball bat.\nA bird walks on sand during the day\na number of small birds on a body of water\nwoman studies a map while standing on street\nA bench sitting next to a green patch of grass.\nSomeone preparing a few bananas in a bowl.\nTwo litle girls laying in a bed with beige sheets.\nA group of women cooking in a restaurant kitchen.\nA red stop sign has a street sign on top of it.\nsome peeled oranges sitting in a clear blender\nA white toilet sitting next to a white sink in a bathroom.\na white cat sits underneath an umbrella \na little blue over night bag on a counter\nA desk that has two computer monitors on it.\nA young man with crazy hair sitting in a chair.\nA bus is displaying rider information pamphlets at the front of the bus.\na sky lift for skiers coming down the mountain \na person riding a surf board on a body of water\nA young man jumping up into the air to catch a Frisbee.\nthere are many giraffes that are seen here\nA kitchen filled with lots of dogs near a dishwasher.\nA tablet sitting on top of a computer desk.\nOutdoor show with sheep prominent on grass field.\nA man standing next to a yellow fire hydrant.\nA man riding a skateboard over some steps.\nmany people holding umbrellas walking across a street\nA person standing on top of a snow covered slope.\nA group of people walking across a sandy beach.\nAn ornate dessert sits on a plate, waiting to be eaten.\nA blender sitting on a kitchen counter top.\nBowls of bananas and apples for sale in a cafe\nA bike sitting next to a cup filled with coffee.\nBunches of bananas for sale at an outdoor market\na man is holding some stuff standing by the curb\nThe kitchen area is clean and ready to be used.\nSeveral stuffed bears wearing crowns line the table.\nA black computer keyboard with one red button on a table top.\nA person is shown riding a bicycle down the side of the road.\nA cat laying on a wooden table under a umbrella.\nA large plane is parked outside an airplane hangar.\nThe dog is thinking about eating the sandwich.\nA man serving the ball to the opponent in a tennis match.\nA group of people wait in line to use a machine.\nA person riding a wave on top of a surfboard.\nA man and child wearing skis in the snow.\nA woman holding a colorful kite on top of a green field.\nPerson airborne over a skateboard as the sun is setting.\nA PICTURE OF A ELEPHANT WITH A CART ON ITS BACK \nA blue and yellow train progressing on a track.\nA stop sign is at an intersection on Morgan Rd.\nA woman is cutting into a cake with a large knife.\nPerson in a wetsuit holding a white surfboard and several fishing rods.\nA couple are taking a ride on the horse and bug-gee. \nA whit toilet sitting under a picture in a frame.\nA large clock on a wall in a building.\nTwo big white city buses parked near the curb.\nA group of animals grazing on grass in a field.\nA living room with a large stone fire place and furniture.\na surfer wearing a wet suit is surfing on a sunny day\nA spring form bird feeder filled with corn to eat.\nA bedroom with clothes on top of the bed and a clothes drawer.\nA pizza covered with various toppings and some fruit wedges.\nA bathroom toilet sitting next to a counter and a roll of toilet paper.\nA bathroom has a large mirror and black wall.\nAn orange cat is laying on the couch.\nA fire hydrant on a sidewalk along a street.\nA person is taking a picture of three people with a camera.\nA couple of men standing next to a blue truck.\nMan taking a photograph of a black and silver motorcycle. \nAn orange living room filled with a red couch and a brown chair.\nA train that is sitting on the tracks.\nBlue barrels are on the ground near trucks.\nsome outdoor tables sitting next to  some umbrellas \nA vase filled  with yellow flowers next to a window.\nA couple of skis beneath two ski poles.\nA pair of zebra's leaning over eating grass in a field.\nCars are travelling on a foreign city street.\nA man is riding on a street on his skate board.\nA red building standing against a grey sky.\nTwo people preparing a meal in a kitchen.\nA person in a field flying a kite in the sky.\nSeveral people helping to load luggage onto a train.\nAn intersection and three sets of traffic signal light.\nTHERE IS A MAN ON A RACE HORSE JUMPING OVER A FENCE \na red icebox that has some fans beside it\na large dump truck on a dirt road\nA dog rests on a bed in a bedroom where one person is also sitting.\nA lark dog sitting on wood floors in a living room.\nThe narrow corridor of a restroom for men with stalls and urinals. \nA large clock tower with a wind indicator on top.\nA group of books on top of a book shelf.\nA food vending machine with food inside of window boxes.\nan image of a bedroom scene with furniture\nan elephant with a saddle on its back\nA woman with a tennis racket and a ball in front of her.\nA white bus traveling down a road next to a car.\nA person on a court with a tennis racket.\nA laptop computer sitting on top of a wooden table.\nA high speed train is seen in the station.\nA plate of steak, rice, and vegetables is shown.\nA woman grabbing a piece of cake off the top of a plate.\na man with a surfboard near a kid\nA group of jets sitting on top of an airport runway.\na giraffe is standing by a tree line\nA plenty shot in a game of soccer being made.\nA skateboarder is balancing on a short half pipe.\nA white refrigerator freezer covered in magnets and pictures.\nA meatball sandwich is smothered with melted cheese.\nA man falling off a surfboard on top of a foamy wave.\nA smiling little girl hugging a teddy bear.\nTwo young boys playing with a disc in the sand.\nA man in a white shirt riding on a skateboard.\ntwo people a black backpack snow and mountains\nA cat that is laying with its head down on a mouse.\nA skiier  travels down the snow before a scenic view.\nA couple of kids laying on top of a bed.\nA giraffe and a zebra checking each other out.\na number of people at a market with umbrellas\nA sandwich on a napkin next to a drink\nAn overview of land and snow capped mountains.\nDouble decker buses pass Big Ben in London.\nA close up of a pizza pie sitting on a table.\nA blue sky with puffy white clouds and the top of a stop light.\nA road filled with traffic led by a big blue bus.\nA while plate holds a large sandwich and pickle.\nAn elderly couple view the trees from a bench by the lake.\nA table with bread and cheese and plates and knife.\nA blue sculpture with a clock on it outside.\nA man riding a skateboard down a wet street.\nA man sitting at a table eating a hot dog near an american flag.\na fire truck with a long crane on top of it \nthe soccer player has the ball right next to his feet \na man in black opening a fridge smiling\nA man on a motorcycle riding in the desert.\nThree plates topped with different desserts on a table.\nThere is two men riding on a skateboard on the street.\nA giraffe standing in front of a stone building.\nOne hairy dog with sharp teeth riding with his head out the car window.\nA group of elephants standing next to a cement tower on a dirt field.\nA couple of double deck tour buses parked at a street side.\nA large inflatable whale sitting on top of a beach.\nA red truck driving along a snow covered street\nan image of a banana tree in the air\nA car parked before a red traffic light.\nTrucks for MARCP on a street with people in shops.\na small white toilet is in a tiny bathroom\nA very large building with a large clock on it .\nThe computer screen of a laptop open to a website PRU13\nA person holding skis standing in front of a cabin\nA man is sitting on a bench reading a book.\nA young man skating near a residential area\nA bunch of paper is covering the walls of a bedroom\nA silver train traveling past a train stations.\nA bowl of food with meat in a sauce, broccoli and cucumbers. \nA zebra laying next to another zebra on a dirt covered floor.\na couple of giraffes walk next to a stone wall \nA woman standing next to two parked motorcycles and a child.\na woman sits in a chair while using a laptop\nA couple of people on a small boat in the water.\nA white plate sitting on top of a plate filled with food.\nTwo people standing in the sand together flying a kite on the beach. \nA chair next to a desk with a lamp, a monitor, a notebook and paper items.\nA man and a woman pose next to a small dog which is wearing a life jacket.\nAn commerical airplane is flying high in the sky\nA man playing Wii bowling in a living room.\nA young girl sits in front of a computer holding a phone. \nA clock that is on the side of a tower above a building.\nA boy throwing an orange frisbee in a park. \nA guy standing underneath an umbrella on a rainy day.\nA bird on top of a large clock.\nA toothbrush with toothpaste next to a tube on a counter.\nA baseball player holding a bat next to home plate.\nA table topped with two pizzas covered in sauce and toppings.\nA very blurry image of a person sitting on a bench.\nThe man stands next to a child standing on a canoe with a paddle.\nA bunch of cars driving down a street surrounded by tall buildings.\na close up of a person brushing his teeth \nA boat on the water with a lighthouse in the background. \nA desk with a small stool underneath a desk with a computer on it\nA flock of sheep graze beneath trees in a green pasture filled with wildflowers.\nthere is a woman that is riding a surf board in the water\nA white speed boat on a lake next to a shore.\nA pizza covered in lots of cheese and toppings.\nA woman is in a tennis swing stance. \nA LOT OF PEOPLE ON THE GRASS FLYING KITES\nA black and white striped zebra grazing on grass next to a pond.\nA sliced cake on a dining table with a knife next to it\nBaseball team holding batting practice on the field\na little locomotive in a museum all shined up\nThere is a group of benches with umbrellas\na banana sitting next to a can of tomato soup \nBunches of bananas sitting on a wooden table beyond a metal gate.\nRainbow colored umbrella blocking the sun on a beach.\nA girl lies on a couch with food in her hand.\nA large boat floating down a river next to a walkway.\na man smile at a table with a pizza on it\nA train traveling down train tracks surrounded by forest.\nThe little girl is dressed in pink and holding a umbrella. \nA pair of scissors sitting on top of a wooden box.\nPicture of an outside corner that looks amazing.  \nThree skiers posing for a picture on the slope.\nA sky full of a flock of birds on a cloudy day.\nA woman holding a red and white umbrella while standing in a cave.\nA couple of airplanes flying under a cloudy sky.\nA great shot of a full kitchen and partially a table. \na bunch of donuts placed around some photos\nA black and white photo of a woman standing next to a cows rear\nA black and white photo of a child putting on gloves next to a suitcase.\nTwo skiers sliding down the hill on the pathway.\nA curse word written on a traffic sign.\nA bowl of vegetable soup sitting on top of a table.\nA red bicycle with a basket on front next to a train.\nlarge dog retrieving the frisbee for his owner\nA yellow train traveling down tracks next to a green field.\nA motel room bathroom with soap, shampoo and clean hand and face towels.\nA row of smart phones sitting on top of a wooden desk.\nA train is near a track switching station.\nA black train engine pulling a white train in the rain.\nA large cow laying on the ground in the woods.\nMotorcycles parked curbside in front of a run down repair shop.\nA couple of dogs fighting over a red frisbee.\nA table topped with plates of food and wine glasses..\nA laptop on the arm of a chair\nA couple of large long trains on a track.\nHere is an image of an outside city with a clock. \nA large passenger jet sitting on top of a tarmac.\nA living room filled with nice furniture and a persian rug.\nSeveral displays of flowers are on a table.\nA woman and three men at a table with most of the pizza gone. \nA man holding a surf board standing on the shore of the beach \na little bird taking a bath in a bird bath \n25 images of dogs are formed into a square grid.\nA kitchen with wooden walls and cabinets with lighting.\nA man riding on the back of a brown horse.\nA church spire with a  clock rises above a hedge.\nA German shepherd resting its head on the floor. \nA woman standing next to a man in a kitchen.\nA zebra standing on top of a lush green field.\nA boy is sitting on the grass with a frisbee.\nA skateboarder is in a parking lot doing a trick.\nA cow inside a brick building with people looking at it through the door way.\nA sandwich with a pickle on a plate. \nA brown dog sitting in a mans back pack.\nA man in white jacket rowing a yellow surfboard on water.\nA man leans back and gets ready to fall during part of the game. \nA man riding a wave on top of a surfboard.\nA coo coo clock mounted to the side of a wall.\nA person holding a donut inside of a plastic bag.\nThe bathroom is in the middle of a renovation project.\nA dog laying on the floor under a pile of hats.\nA group of people flying kites on top of a beach.\nA room with kites hanging from it's ceiling.\nA train turning a corner around a hill outside of an ocean.\nA large sliced pizza on a plate on a table.\nA woman in gear skiing down a snowy slope\nA man flying through the air while riding a skateboard.\nThe healthy food is ready to be eaten. \na man outside cooking with a sub in his hand\nA large bunch of ripening banana type fruit.\nThree cats sitting in a window waiting for their master to return. \nA twin bed with a purple compforter and blue walls.\nA woman standing on a tennis court holding a racquet.\nA giraffe is walking on a roadway with cars on it.\nA woman that is standing up in the grass.\nA parent standing up and playing Wii in their living room\nA young man riding down a hand rail on a skateboard.\ntwo women are cutting and preparing a pizza\nA women and three kids laying on a bed.\nA picture of a building and some grass.\nDifferent people are doing skateboard tricks and riding.\nA white bowl sitting on top of a table.\nTrain with four cars traveling through the wooded area.\nThree people in white shirts and ties on skateboards.\nA sign with teddy bears on it is advertising a tea room.\nA bus is seen coming up to a bus stop.\nA young person is doing a skateboard trick.\nA creepy woman holding a clear umbrella next to a forest.\nThe woman is eating a piece of cake.\nA gas stove next to a stainless steel kitchen sink and countertop.\nA motorcycle is parked on the sidewalk outside a tattoo shop.\nA wooden bench is sitting next to a grassy field.\nA couple of people with ski's standing in the snow.\nA narrow white room with a white mattress on the floor.\nBaseball players standing at home plate making a play at a ball. \nA flat screen TV sitting on top of a step in a bathroom.\nA large hairy dog on a leash next to a crowd.\nA small plane that can land and take off from water.\nSome onion and mushroom pizza baking in oven.\nA small bathroom with focus on the shower curtain.\ntwo people standing next to a table with a cake\nA kite is stuck in a bare tree branch.\nA small green sign for a state line by the road.\nA couple of people that are holding an umbrellas.\na male skateboarder in a black and white shirt doing a trick\nA parking meter sitting in front of a brick building.\nA man that is standing on the court with a racquet.\nThe ugly tie with flowers is hanging up\nA girl smiles while holding a baseball glove.\ntree are two woman standing in the rain under a pink umbrella\nKites flown in large grassy open area with numerous onlookers.\nthis woman is getting juice from a fruit\nA group of people that are walking down by the ocean.\nTall building with clock and spire behind white bricked building.\nA bird perched on top of a tree branch.\nA man who is performing a trick on a skateboard.\nA woman walking down a street past a doorway.\nA western square sign on top of two wooden poles.\nA herd of elephants standing on top of a dirt road.\nA couple of people walking down a street past tall buildings.\nA crew of workers performing work on a train.\nA child sitting on top of a chair holding a teddy bear.\nA man wearing a white tshirt hits a tennis ball.\nSmall white toilet with a small window above it. \nA girl that is sitting on a horse.\nA wild animal on a rocky hill with a few plants\nA bathroom stall that has very dirty walls.\nSugar donuts sitting in a white paper bag.\nA white toilet in a bathroom next to a white sink.\nA group of people standing in a bathroom while man puts on a tie.\nA monument of a lion that is in a wall.\nA surfer riding the bottom of a five foot ocean wave.\nCattle grazing on grasslands beneath a power tower. \nTHERE ARE PEOPLE PLAYING A SOCCER GAME ON THE FIELD\nThe workers are trying to pry up the damaged traffic light. \nA bike parked on top of a cement floor.\nA man on a skateboard is trying to jump over a wall.\nA female tennis player on the court holding a racket.\nA  person approaching a public transportation bus through the snow.\nA white plate topped with four donuts covered in frosting.\na group of people seated around a dining table outdoors.\nA yellow vase with a red painted top that has two flowers that are bloomed in it.\nA young woman holding a white frisbee while standing on a grass field.\ncars setting at traffic light leading to capitol building\nA large motorcycle is on display at a gathering of people\nA hand holding a bunch of different types of clock sand watches.\nA group of four people standing next to each other in the snow.\na clock hanging from rafters of a building \nA plane is parked near the pretty blue ocean. \nA young lady is on her phone as a lady in the background looks on. \nA foggy view of an airplane sitting in a yard.\nA boy is surfing while a grown man who is also in the water looks on\nA car's lights on a traffic sign at night. \nA ducks is flying over a body of water.\nThis is one man with two different sides to him.\nA woman giving the finger while holding a smart phone.\nElephant emerging from tree line walking through forest\nA group of people flying kites on a grassy field next to buildings.\nThe steam boat is docked next to a three story building. \nThere's an outdoor dining area featuring a fountain. \nTwo giraffes standing around on the grassy plains.\nA little girl sleeping with her teddy bear and quilt.\nMan sitting outside in a blue coat about to stand up from lawn bench.\nA large group of people in a field with kites.\ntwo people jumping up to try to catch a frisbee\nA young person standing on a snow covered ground while wearing skies.\nAn airplane taking off from an airport at night.\nA display filled with glass vases sitting next to each other.\nTwo women are talking to a guy who is wearing a hat and tie at a window.\nA cat crouched over sitting by a brick wall.\na rustic kitchen with lots of stonework and wood accents\na red bus that has stuff wrote on the outside\n a small child holding a tennis racket with two hands\nA laptop is on a shelf above a stove with a pot on it.\nsome people a green wine bottle a table and glasses\nA man in a neon green shirt and black pants holding a pink umbrella.\nA white toilet sitting in a bathroom next to a wall.\nTwo people pose for a picture while holding up their skis.\nA laptop computer sitting on top of a desk.\nA man stares at another man tying a tie.\nA giraffe standing next to a zebra on a field.\nA close up image of a green plant that looks like lettuce. \nthere are two polar bears standing near each other\nCut sandwich portions on plate displayed on blue surface.\nPeople are walking in front of some shops.\nA game of tennis on a blue court with an audience.\nA man standing by a large air gondola that is docked in a station\nThe decorated bench is sitting among the flowers.\nA desk with a small white computer set up on it.\nA colorful airplane flying though a blue sky.\nTwo zebras standing together while one zebra swishes his tail.\npeople riding bikes near a beach and others swimming\nA surfer is about to catch a wave.\nA metallic freezer refrigerator in a kitchen next to wooden cabinets.\na pair of vases with flowers are under a chandelier\nA young child has a cell phone up to their ear.\nA colorful bird is perched on a branch.\nA cake is lit with tall yellow candles.\nA group of people getting their surfboards and heading for the ocean.\na close up of a dog wearing a yellow clone hat\nA woman standing in front of a table with lots of salad.\nA brown table with white plate holding a pizza.\na woman sitting at a wooden dining table eating french fries.\nA person riding some skis in the snow.\nThe young man is holding a clear Frisbee.\nA man and two dogs laying on top of a bed.\nThe bench on the side of the street is empty. \nA table topped with lots of different foods and sandwiches.\nMan hold paper heart on toothbrush, back ground out of focus\nA trio of clocks are attached to the semi-circular frame by wires.\nSeveral pieces of food on a wood table including several apples.\nA pizza sits on a plate with one piece taken out of it.\nA bathroom door is open showing a shower with the shower curtain mostly open.\nA man holding a piece of food by a string.\nA cat sitting inside of a black bag near a tile wall.\na church tower with a clock on it \nA businessman is sitting in a chair and smiling for a photo.\nA dirty dog holds a stick in its mouth in the winter.\nTwo people sitting at a table with the desserts and a sparkler.\nA cat laying on top of a desk next to a mouse.\nA pretty young girl standing next to another pretty young girl on a beach.\na group of people skiing on a hill \nTwo zebra standing next to each other in a grass covered field.\nBeans are spilling out of an already piled dinner plate.\nThe fur on this dog is long enough to cover his eyes.\nFour kids playing in the leaves on a fall day.\nA clock tower sitting beside a large building.\nA girl on a scooter rides in a park.\nA black and white cat sitting on top of a bed next to a cell phone.\na square plate with all kinds of vegetables on the plate\nMany suitcases lined up in a small room.\nTwo women sitting on a bench on an open boat.\nAn assortment of items including a miniature boom box, chair, banana and flashlight.\nA big flatbed truck with the flag of the United Kingdom. \nA baby is sitting on a bed playing with a laptop computer.\na creepy doll sits in a yellow basket \nA zebra and an elephant investigating each other in a grassy area.\nAn ostrich and zebra fenced in with each other. \nA field full of flower sculptures next to a forest.\nA surfboard sitting next to a shopping cart.\nA kitchen with a cluttered counter and wooden cabinets\nA young man riding a skateboard down a curvy sidewalk.\nA desktop computer sitting on top of a wooden desk.\nA pizza on a cutting board topped with bacon and vegetables.\nA white toilet sitting next to a shower.\nSome shirtless guys hanging around near each other.\nAn umbrella that is standing in the sand.\nA man is riding waves with his surfboard.\nA teddy bear in a pink dress and pink shoes. \nA group of people with luggage waiting by a door\nPeople are sitting at a table and eating some pizza.\nA large wooden block with roman numeral numbers.\nA black and white cow standing on a train car.\nA truck is going down a windy mountain road.\nA group of men riding on the back of a boat.\na red fire hyrdant next to two red poles \nThe tennis player wearing white is swinging his racket.\nA computer desk with a laptop computer on top of it.\ntwo black and white skate boards under a black steel bench\nA skateboarder practicing a jump at night under lights\nA young man riding a skateboard in a parking lot.\nAdult and baby buffalo graze on a plain.\nA person holding a tennis racket and a tennis ball\nThree motorcycles parked next to a motor home.\nA woman shopping for different bottles of wine. \nMany different objects are placed on the beach. \nFour cows standing in the grass near mountains.\nA bend sitting in a park along a dirt road.\nTwo men are riding an elephant, a driver and a passenger.\nA man and a woman standing in front of a mirror.\nA pizza on a wooden cutting board being cut with scissors.\nA picture of pink bathroom sink and a mirror.\nAn old building with a clock tower in the middle.\nA green plant that is growing out of the ground.\na living room with a long couch in it \nA white food truck driving down a street at night.\nA man pictured with a hotdog in his hands with people passing by. \nA fancy birthday cake made to look like 3 pigs in the mud\nA blue double parking meter sitting next to a street.\nA guy on a snow board in a snowy hill.\nA child on skis is skiing on the snow. \na truck with a small cabin built on the back of it\nA man holding his face up to a TV with a video game on display.\nA man riding skis down a snow covered path.\nA woman sitting at the end of a table with a plate of food.\nA man's legs are laying on a bed as he watches a game called \"Avengers\" on the screen.\nA pizza in a box with toppings that are divided into thirds.\nA brown and black dog laying on a bed.\na man and woman stand next to a wedding cake \nLittle girl is outside ready to play with someone.\nA dinner plate with sliced beets and bread.\nA man with a snowboard next to a man with a mask.\nTwo draft horses pulling a large sleigh and a dog in front of them\nA bus driving in a city area with traffic signs.\nA pizza topped with fresh basil is on display.\nTwo giraffes are standing together under the trees.\nA young man poses with a surfboard next to water.\nA large bear laying on the side of a rocky\nA cracked and broken blue Frisbee lying on the grass.\nA refrigerator door left open that has a lot of bottles on the door.\nA man standing in front of a pile of bananas.\nA toothbrush that is sitting inside of a cup.\nTwo men holding skis standing on a ski slope.\nA white traffic sign with black letters at night.\nRoom of people sitting at long tables with an overhead projector in front.\nUnplugged old style tube television sitting on a floor.\nA large black counter top sitting next to a sink.\nA bright red fire hydrant near a stop sign.\nTwo giraffe standing next to each other on a field.\nSliced bananas sit on top of a pastry dish on a plate.\nA little league baseball game with a runner on third base.\nA baseball player holding a bat during a game.\nA couple surfers catching waves in the water\nA boy on the beach playing with a green Frisbee. \nA large brick tower with a massive clock on it's side.\nA green car traveling down a street next to a  bus.\nA man cutting a cake with a knife.\nA person on a snow ski slope with skis on.\na couple of animals walk through the grass \nA man drives a motorcycle down a road in the fog.\nthree people walk along the sand, two with surfboards\nA group of people gathered in a town square with an individual doing a stunt on the pavement and umbrellas strewn around.\nEven a giraffe looks next to a sauropod.\nAn eating area with a table and a few chairs.\nSmall cars move to pass around a London bus. \nA blender is shown on a kitchen counter next to a sink.\na child hitting a baseball with a baseball bat.\nA trash can filled with a hot dog, a banana and other garbage.\nA woman is sitting on a horse next to the steps\nSlices of ham on a black tray next to a knife\nThis is an image of a row of scooters\nPlates of steak, vegetables, potatoes and bread are on a table.\nA yellow and red train traveling down train tracks.\nA rusted silver fire hydrant next to two poles.\na child with a laptop on a table \nA shower curtain is pulled back in a bathroom. \na dog in a field near a fence \nMen and women are gathered together outdoors on a sunny day\nThere is a clock tower with colored embellishment on top\nfive vases covered in flowers in front of a woven screen\nA spiral of bananas sitting inside of a large bowl.\nThere is some food in the baking pan on the counter.\nA group of men standing next to each other on a stage.\nA bowl filled with ripe fruit sitting on top of a table.\nA bench sitting in front of a group of vending machines.\nTwo green and white jetliners sitting on top of an airport runway.\nTwo horses grazing outside behind a thin wire fence. \nA man in patterned jacket standing on ski slope.\nA small room with a heater and a desk filled with clutter.\nA large tiger cat sitting on top of a pair of shoes.\nA picture of water with an intersection as a backdrop.\nA giraffe stretching outs its tongue to get a carrot being held out by a woman.\nA clock tower is seen in front of a tall building.\nFive bagels laid out on a oven rack\nA white  and gray water fixture sitting on top of cardboard.\nA woman standing on a tennis court holding a racquet.\nA wooden table with a vase of flowers and a television.\nA skateboarder catches major air during this stunt.\nsome skate boarders using an empty swimming pool\na computer desk with three monitors on it\nA group of men and women riding horses in the dark.\nA group of fur ducks walks along a wooden walkway.\nA metal pole with street signs attached to it's sides.\nA cat drinking out of a glass on top of a table.\nA couple of cows and some birds flying in the sky.\nA display at grocery store filled with fruits and vegetables next to jars.\nMirror view of a bathroom with a sink and tub.\nA man flying a kite while standing next to his small white dog on a beach.\nAn evil villain sitting in front of a laptop computer.\nA person skiing alone on snow covered mountain\nA large and wide street covered in lots of traffic lights.\nMastering the art of skateboarding is profoundly beneficial.\nA person at the door with a desk at the center of the room and a potted plant\nA group of people standing on top of a snow covered ski slope.\nBeef and vegetables on a plate sitting on a table.\nA bunch of very pretty assorted clocks on a wall.\nA young guy using his computer and talking on his phone.\nA table in a bookstore's cafe with a laptop\nA herd of cattle grazing on the side of a hill.\nA traffic light sitting on the side of a road next to a tree.\nA room that has two televisions in it.\nA private parking sign under a bridge with writing.\nan empty train station has very nice clocks. \nA white bath tub sitting next to a bathroom sink.\nA Freightliner train moving through a train yard.\nA young girl posing on a chair with a cell phone\nA large orange hanging in an orange tree.\nA large statue of an elephant is attached to a business sign.\nA computer desk topped with a desktop computer and a scanner.\nA bunch of people in a big field filled with bananas.\nA person in  a white jacket skiing down a slope\nAn elephant standing on top of a rocky hillside.\na person standing next to a barrel of food\nA big elephant makes its way across the road with onlookers in the car.\nBaseball team attempting to catch ball and tag player out.\nHands that are holding a piece of cake.\nSigns posted on poles on a sidewalk next to a street.\nA group of people riding on a double decker bus on a bridge.\nAn elderly woman is holding onto the arm of an elderly man.\nA piece of pie and a fork sit on a white saucer.\nA Rail Freight engine on a railroad track.\na person riding a skate board at a skate park\nmany cows in a field of green grass behind a fence\nA woman taking a picture of herself in front her her computer\nA small green train traveling down train tracks.\nA woman is helping another play a video game.\nA group of people sitting down at a dining room table next to dishes.\ntwo people standing near one another playing nintendo wii\nA boat goes across the water in front of buildings.\nA big brown dog sitting in the back of a red truck.\nA beautiful young lady eating a candy apple on an amusement park ride.\nA woman holding a dog in front of a mirror.\nA pizza is shown with forks next to it.\na close up of a person wearing a bow tie \nA man standing next to a red and silver fire hydrant.\na person riding a skate board on a rail \nA locomotive train driving down railroad tracks by water.\nA teddy bear sitting on top of an arch.\nPeople are riding ramps on a skateboard in a fenced area.\nan image of a night scene with a cat on top of a car\nA couple of adult elephants with a baby one following along.\nsome broccoli and shredded carrots sitting on a cutting board with a knife \nMany zebra and one wildebeest on a savanna \nthe bench is completely covered in snow so is the tree\na doll with a bonnet and a book on a pillow\nA semi truck unattached to a trailer sits in park\nA person talking on a phone next to a statue.\nTwo cows are head butting each other in the pasture.\na big white plate of some kind of food\nA bench that looks like a round hut.\nA vase siting on top of a wooden shelf near a map.\nDrawing of a surfer riding a large wave.\nA young person playing a Nintendo ds while laying on a bed.\nA boy doing skateboard tricks on a wooden object.\nA pitcher getting ready to hit a baseball.\nA person walks on a bridge with a kite.\nAn old wooden  clock attached to the wall\nA man riding a black hose in the snow through a forest.\nA red fire hydrant located beside a river of water.\na lit up counter with two fancy sinks on it\nThe man hold the electric guitar in front of the ornate teddy bears.\nA large body of water filled with lots of boats.\nA white toilet in a bathroom next to a white sink.\nZebra and giraffe roaming through a forest of trees.\nA man on a bicycle watching someone on stage\nA dog skims across the water chasing something.\nA stop sign at the intersection of Lyndon Ave and South.\nA bathroom sink sitting under a bathroom mirror.\nAn airplane flying in a cloudy blue sky.\nAn airplane from Jetairfly is soaring above the clouds.\nA stuffed bear and a vase by a headstone.\nA sandwich with nachos and a salad on a plate.\nPiles of  fruit sitting inside of a farmers market.\nA large navy propeller plane is boarded on the tarmac\nA person is walking on the beach carrying a surfboard. \nA tiered kite flies above a plaza of people\nA gray and white cat sitting next to a pink teddy bear.\nGroup of Asian young males and female smiling and laughing while looking in the same direction.\nA medium sized pizza on a platter with about half of it gone\nA man taking a swing at a tennis ball\nA sign and clock on the side of a street.\nA black and white zebra looks like it's made of legos.\na silver toilet and some toilet paper and a green switch\nA woman holding a big spoon while cooking spaghetti.\nA baseball player holding a bat on a field.\nA man washing a black elephant at a zoo.\nThe skateboarder is trying his trick in the garage.\nA cat eating a birthday cake on top of the table. \nTwo ducks are swimming in the water of a pond.\nThe desk by the window has two laptops and a keyboard on it.\nThe Asian woman is standing on the beach holding an opened parasol in each hand.\nA large bed with white sheets is unmade.\nA white cat laying inside of a black boot.\nA green street sign mounted to a white street light pole.\nA kitchen with a toilet, sink and a bathtub.\nA black and yellow bird with a colorful beak\nA toy action figure holding a plastic mini teddy bear and a cocktail glass decoration on the snow.\nsome people water buildings and a skateboarder doing a trick\nMany different foods on dishes on a table \nA young man riding a wave on his surf board.\nA lit street lamp at an intersection with a stop sign.\na lady preparing pizza on a wooden table\nTHERE IS A GOAT STANDING IN THE YARD \nLuggage sitting on the ground on a dirty and grass field.\nA ca teating green stuff off the floor\nA stack of plates on a counter next to a pan of vegetables.\nA radio sitting on a table next to a record player.\nA person on a surfboard in the water.\nsome cars on a wet street buildings and traffic lights\nan elephant stading behind some tall grasses and staring at the camera\nA cat that is laying on a bed looking at the wall.\nA man jumping a brown horse over an obstacle.\nA wooden table topped with two sandwiches and other food items.\nCommercial jet airplane flying in clear blue skies.\nA picture of large glass door trimmed in white and a large beige structure beside it.\nA man standing on top of a snow covered ski slope.\nA car and a bus are near a street light at night.\nThe girl with blue hair stands under the umbrella \nA white toilet sitting next to a red counter with a  sink.\nA young man on a skateboard at a skate park\nA cook book for making donuts with donuts and coffee pictures on it's cover.\na yellow lifeguard truck sitting on the beach \nAn old clock is illuminated at night on a street corner.\nTwo men playing Ultimate Frisbee, with one holding the disc upside down.\nTwo people outside of a stone building near a red fire hydrant.\nA man riding skis down a snow covered slope.\na couple of people that are cutting cake\nA man sitting at a table in front of bowls of spices.\nA person holding a Nintendo Wii Remote Controller.\nA black and white cat sitting inside of a cage.\na red humming bird outside at a humming bird feeder \nA cat that is laying on top of a bed.\nThese two trains are workhorses necessary to care for other trains.\na traffic light on a pole on a side walk\nthere is a small glass vase that has purple flowers in it\nPeople in public playing with video game controllers.\nA turkey or chicken cooks inside a kitchen oven.\nA very cute cat sitting on a toilet.\nA doughnut sitting on top of a brown napkin.\nSmall brown bears by a large log in their zoo enclosure\nA person sitting on a motor bike on a street.\nTwo people are talking in a mall area.\nThere are two refrigerators in this dirty, rundown kitchen. \nTwo polo players on horses on a polo field near parked cars.\nA road traveling along a field under a cloudy sky.\nA white toilet sitting in a bathroom next to a sink.\nA women who is laying in bed with her laptop.\nA woman is looking over a ledge where a small bird is perched.\nA man wearing headphones using a computer at a cyber cafe.\nA lot of food that are in some baskets.\nTwo boys carrying a surfboard on the beach.\nA gray cat laying inside an opened suit case.\nTwo cows stand in a field near one young cow laying down.\nMan putting on a giraffe patterned neck tie at an outdoor event\na green bus is driving down the street\nA man riding a snowboard down the side of a snow covered slope.\nA person standing in the kitchen holding a ladle above a bowl while reading a book.\nA well-dressed woman rides a white horse at a racetrack.\n A man riding a skateboard on to of a wooden bench.\nA DAD IS WITH HIS SON HAVING FUN\nA tray with different types of pizza on it\nTwo people play tennis at night on a tennis court.\nThere is a crowd of people waiting for the train. \nA dog sniffing a plate of bread with figs on it.\nA cat lies asleep on top of a remote control.\na living room with a couch a table and chairs \nCute little cat sitting inside of a bidet\nA rose that is laying down on a bed.\nA small cat sitting on a chair by a window.\nA woman wearing a creepy  mask standing next to a child.\nA pink motor scooter parked in a parking space.\nAn omelette, oranges, and tomatoes on a plate.\nA couple of people that are standing at a table with various objects.\nMan sitting at a table looking at silver cell phones in a circle. \nA little baby sitting on the floor with a cell phone.\nTwo young children fly their kite in the blue sky.\nA boy is jumping in the air with his skateboard at the top of a skateboard ramp. \nA golden plate topped with strawberries covered in sauce.\nA man sitting next to a little girl on a wooden floor.\nA television is on a tv stand next to a bureau. \nA couple of girls riding on top of surfboards on a wave.\nThe parking meters are posted beside a cement wall. \nA yellow and blue train engine next to a building.\nMIXTURE OF FRUITS KEPT IN A BIG BOWL.\nA man throws a baseball on a baseball diamond.\nPeople on different parts of the beach flying kites. \nA couple of people walking down a sidewalk with stars.\nA banner in a metropolitan area reading \"spring in the city\".\na bed with some white bed covers and some books\nA man in sunglasses, a suit and rope noose tie wearing black gloves.\nA busy city street with dimly lit trees at night.\nA man riding a surfboard on top of a wave.\nA simple apartment living area, with a couch and a television.\nA clock on an old stone building next to a window\nA black and white panda bear walking down a dirt road.\nA person and some vehicles on a road.\nA dog on a leash in front of a closed door\nA man flying through the air while riding a skateboard.\nthe dog has a green frisbee behind it's head\nLambs grazing in a green pasture near the seaside.\nA man is wearing baseball gear and standing on the field.\nChildren playing a game using Wii on a 13 inch TV.\nBig clock  hangs on the front corner of a building\na redhead woman is eating dessert at a table\nA person flying a kite high in the sky.\nBoy on surfboard on a wave in the ocean. \nA man standing up against a wall with his hands clasped together.\nWoman holding a banana pointed at the camera.\nDesk sits in corner next to the couch with a computer monitor and keyboard on top. \nTwo vases show ladies appearing to look carefree.\nA bathroom shower, toilet and mirror that is decorated in tan tile.\nA woman riding on top of a wave on a  surfboard.\nA black bear standing on top of a rocky hillside.\nA pretty young lady tossing a blue frisbee.\nA group of people standing on top of  a snow covered slope.\nThe hot dog, side, and drink are sitting on the table.\nA pig and cow are standing out in the grass.\nA little girl sitting on top of a bench in a  park.\nA clock shows it is just after 10:00 o'clock. \nA big rig truck in a parking lot without a trailer.\na close up of a plate of food with meat \na small room with a ladder fridge and microwave\nA woman walking a dog down a street.\nA man in hat made of bananas standing in room by men.\nThe plate is empty on the table. \nA gray fire hydrant sitting next to a green hedge.\na bird trying to eat out of a bird house \nA beautiful girl holding a giant banana in her hands.\na desk with a laptop and extra keyboard on it \nA couple of young men sitting down sharing a pizza.\nA 50s style fridge with a couple magnets on it.\nThe view from an airplane window looking down on clouds and mountains.\na close up of a person riding a motorcycle \nA slice of pie sitting on top of a white plate.\nMen on bikes riding alongside a car on the street\nA person in a hat is riding a horse.\nA young child and an old women on a bench.\nThree ladies working in a confectionery with baked goods behind them\nA stop sign has been bombarded with bumper stickers.\na green two sided clock hanging on a building\nA plate of beans with salad with side sauces.\nA tiled shower, molded plastic bathtub, shelf, mirror, wooden vanity, lamp, and sink make up a beige colored bathroom.\nA man jumping in the air catching a frisbee on a field.\nThere's a crossing sign that shows you can't make left turns\nA young boy wearing a colorful umbrella hat.\na person wearing a suit and tie next to a couch\nA wall mounted with a list and other papers.\na guy that is stretching in some kind of park\nA large body of water in front of a shoreline with a long train bridge.\nA little girl is wearing a coat and boots while holding an umbrella on a dirt road.\nTwo people ride on horses past a shallow stream.\nThe men are in the kitchen preparing the meal.\nA group of snow boarders on a snowy white hill\nRed car on roadway in large city area.\nMan dressed in leopard robe next to a bed.\nA single rail kart not moving on the tracks. \nA man in black wetsuit surfing on a wave on surfboard.\nA group of three people standing side by side holding Nintendo Wii controllers.\nA bus driving down a street in a small city.\nA bunch of giraffes that are standing in the grass.\na bunch of people posing for a picture\nDog smiles while sleeping in a bed room.\nA  group of people playing football on a field\nA cruise ship in the harbor with mountains in the background.\nPeople are watching a performance by the clock tower.\nA large elephant crossing a narrow shallow river.\nA person windsurfing with a grey sky in the background.\nA pack of mountain goats climbing up the side of a mountain.\nA very clean and tidy bathroom sits empty. \nA person is watching two basketball games at once.\nAn old Mustang sits parked next to a parking meter with a sign on it.\nsome food is on a white plate on a table\nA birthday cake with candles sits on a table.\nA pile of broken stoves on a parking lot.\na woman sits on a chair with a laptop on her lap \nInside of a bedroom with a bed and lamp.\nA man who is about to server a tennis ball.\nA man walking a dog down a road while holding an umbrella.\nA zebra is standing away from two adult giraffe.\nA pay phone sitting on the side of a street.\nRoad construction and street signs in Cape Town, SA\nA plate with a peanut butter sandwich, ham, and tomatoes. \nA sun spot is the only mark in a clear sky with a plane traveling over a snowy expanse with a bunch of detritus on it.  \nSurfers holding boards standing in water at ocean.\nA yellow bus is parked near people on the side of the road.\nA woman standing in a kitchen in front of a washing machine.\nSeveral horses hold their heads down toward water in a pond.\nA man sitting on a bed with a dog while holding a cell phone. \nA pair of trains parked at a station.\nA stove with the top unit with ehating elements removed \nA plate with a breakfast sandwich, eggs and a fork next to two coffee mugs.\nthis is a meal oina wood picnic table\nA building sitting along side of a street.\nThe girl is cutting pizza in her kitchen, the melted cheese clinging  to the knife.\nA young lady sitting at a table covered in food.\na couple of elephants are standing behind a fence\nA man wearing a black water suit surfs through the water\nA red double decker bus driving past a tall building.\nFive birds nestled together on a tree branch sleeping.\nA man sitting at a park working on a laptop computer.\nBirds flying over a sandy beach and landing on a platform.\na man riding a wave on top of a surfboard.\nA round window showing a man's face in the upper corner of a building.\nA dog is standing next to a toilet playing with tissue\nThe black dog is asleep on the couch. \nOn a beach, there is a clock in the middle of the sand.\nA man carrying apiece of luggage on a sidewalk.\nPRESIDENT BARACK OBAMA WALKING NEAR A WHITE BUILDING.\nA stone statue of an elderly woman sits upon a wooden bench.\nA group of people standing around playing video games\nA group of men sitting around a wooden table.\nA group of people sitting on yellow benches next to a tall building.\nA person is skiing down a snowy hill.\nA brown and gold fire hydrant in front of a brick building.\nAn orange stripe cat sitting on top of a wooden bench.\nA cat sits on a table and watches television\nA coo coo clock with colorful art painted on top of a clock.\nA stuffed bear laying on the ground in some water.\nA table topped with glasses and eating utensils.\na large group of people are gathered around the table\nA woman pouring glasses of wine sitting on top of a table.\nA pizza, silverware, and a drink sitting on a table.\na couple cutting a wedding cake in front of them \nA man standing on a baseball field holding a bat.\nSeveral horses on a beach near a tent with the ocean in the background.\nThree yellow coach buses parked in a line.\nA chair with a cloth sits beside a table with a pot on it.\nA single yellow rose in  a small glass vase\nthere is a clock that is all gold an is inside a glass case\nAn unfinished bathroom with a boarded window and exposed pipes.\nA surfer in a wetsuit stands with his surfboard and bicycle at the beach.\nA person on a motor bike on the street.\nThe skilled skier is taking the downhill route.\nA young man doing a flip on a skateboard in the middle of a busy street.\nA cluttered bathroom with a toilet and sink.\nA man standing on the beach playing frisbee \nAdults tasting wine while standing outdoors at winery.\nA parking lot with a car, three buses, and a semi.\nSmall cheese pizza sitting on a white plate on a table. \nSome sort of figure in fur walking upright on two feet.\nCommercial logging transport truck on dirt road near forest.\nHorse and riders walking on a trail in the woods.\nAn old fashion red truck has its hood up near a dog and lady. \nBlonde haired boy doing a jump while riding a skate board.\nGuys on motorcycles rides along side cars and behind a truck filled with people in the back.\nThe brown dog looks threw the diamond openings on the bench. \na large herd of sheep walking down a dirt road.\nA person sitting in front of a laptop computer.\nA man and a dog on a boat in the water.\nA tall giraffe standing next to a tree in a field.\nThe person is riding their snowboard down the hill.\na blue bedspread and a blue curtain on the window\nA red stop sign in front of a small house surrounded by palm trees.\npeople walking around and looking at assorte motorcycles \nA number of tourists atop two colorful trucks.\nA well lit area of the bathroom with white paintings. \nA large blue tow truck towing a large tractor.\nA couch in a living room with walls lined with a bookcase and pictures.\nAn orange cat sitting on top of a white bench next to a bike.\na couple of people that are standing up in a room\na person in bed  eating and holding a bowl of food.\nA man is in action with the ball on a tennis court.\nA young man standing in front of a zebra in an enclosure.\na close up of a cat laying on a bench\nTwo surfers at the beach standing at the coastline.\nTwo tennis players chat while a man in red stands by the score board.\nA group of cows are eating grass in the pasture. \nA man throwing a Frisbee while the dog watches.\nTwo red buses are passing on the street.\nSkateboarders in a permanent park near a waterfront.\nA kitchen and dining room mixed together \nA variety of desserts arranged in a row.\nA city bus driving down a road with bikes fixed to it's front.\ntwo men riding in the back of a blue truck while driving down the street.\nA group of giraffe standing around each other.\nThe bunk beds are made up with the same bedding. \nA yellow train parked at a train station next to a platform.\nA group of chairs sitting around a white umbrella.\nA pitcher and glasses made out of pottery\nCounter top inside a house designed with different colors. \nA man wearing a green sweatshirt with a tie around his neck.\nA tennis player running forward during a tennis game.\nA woman who is blow drying her hair.\nThere are four fruits balanced on the neck of the bottle.\nTwo trucks carrying logs are traveling up a hill.\nA herd of zebra standing around a tall wooden tree.\nA bench sitting on top of a grass covered hillside.\nA tall green and blue sculpture sitting in a park next to a skateboarder.\nTwo tall giraffe standing next to a green leaf filled tree\nA young man sitting on the windowsill of a store front talking on his phone.\na park with flowers on a sunny day.\nA person swimming in the waves of a body of water.\nA cat in between two cars in a parking lot.\nA restaurant filled with customers sitting at tables.\nA pizza being made within the oven \ntwo brown bears on some rocks in their pen \nA man in black hovers over a skateboard while they are both in the air.\nMany people are gathered to watch a motorcycle race.\nA red double decker bus driving down a street.\nOne of the two elephants is lifting a plastic barrel with it's trunk. \nA full shot of a big yellow bus. \nThree men are holding a knife together in order to cut a cake and people are standing around watching.\nA very green hillside in the day time.\na small girl and two giraffes and some trees\nAn instructor teaching people how to surf on the beach\nA very thick pizza is on a plate with one piece taken.\nA desk with multiple computers inside a office \nA large passenger jet sitting on top of an airport runway.\nTwo women and a child are sitting on a red bench.\nA woman sitting on the ground next to luggage.\nA yellow smiley face cat sitting on a white plate.\na man leaning over the back of a truck in front of buildings\nA boy is riding a skateboard on a wall.\nassorted veggies sitting on a table with a pamphlet\na bunch of papers and electronics are laying together\nA table topped with oranges and a bowl of salad.\nPeople are playing frisbee and volleyball at the beach.\nA advertising billboard next to a street light at night.\nA woman kisses a man as they sit on a motorcycle.\nBlack and white photograph of man riding a skateboard.\nA little boy wearing a white shirt and tie.\nA man holding a kite at the park\nAn old toilet is transformed into a lawn ornament by adding soil and plants.\na snow caped mountain is behind a boat\nA large passenger jet taking off from an airport.\na stop sign and two brown and white street signs \nA man in a shirt and tie sitting on a white chair next to a lamp.\nA bathroom with two sinks mounted on a wall.\nA car seat covered in a piece of cake and frosting.\nA group of children sitting in a field flying kites.\nThree men in suits posing together for a picture.\nThe railroad crossing is protected by lights and barriers.\nA person flying through the air whale riding skis.\nA living room filled with furniture and a fire place.\nA group of people standing around holding Nintendo Wii controllers.\nWell dressed man and woman pose for picture.\nA zebra chews a flower in a fenced in field.\nA traffic sign hung upside down on a pole. \nA black cat laying on top of a bed next to pillows.\nThe eater enjoys the hot dog decorated with the pickle.\nA half eaten slice of pizza is on a plate with a knife and fork.\nA man in a tropical print shirt with glasses and long hair is eating a banana.\nA replica of a bear and her cub in a glass case in an exhibit.\nA very tall clock tower sitting next to a tall glass building.\nA white boat traveling through a river surrounded by trees..\nA large clock tower in front of a building next to a fountain.\na number of cars on a city street near a traffic light\nMultiple beds stand on hardwood floors in a simple room.\nA group of wetsuit-clad men standing at a riverbank.\nA simple lunch includes a coffee drink, fruit and a sandwich wrap.\nA boat is in the water close to a housing lined shore.\nMan holding a blood spattered base ball bat\nA fire hydrant that is spewing water in the middle of a city.\nA man riding a board on top of a wave.\nGiraffes standing in and around a cave area.\ntwo people walking on a side walk sharing an umbrella\nTwo giraffes are housed in a pen. \nStreet signs, corner of Lynn and Bigelow.taken 11.01.2009 23:58.\nTwo skiers race while a crowd looks on.\nA plate of food has some sesame seed bagels.\nMuffins sit in a pan on top of an oven.\nA suitcase filled with yard and knitting supplies.\na man in a wet suit stands on top of a rocky hill \ntwo pairs of red scissors and a white and green gauge\nA man flying through the air on a snow board.\nA man wearing glasses, dress shirt and a tie is smiling in content.\nA restaurant with red stools next to a bar  and a blue table.\na small horse pulling a colorful cart through town\na female in a gray top is holding a cellphone\nTwo dogs are looking up while they stand near the toilet in the bathroom.\nThe pizza has small plates with various foods around it.\nA man riding a snowboard down a snow covered slope.\nFour apples sitting in a bowl viewed from above.\nA two layer cake sitting on top of a table.\nAn elephant is walking on a pile of sand outside a building.\nA person is pressing a button on a convection oven.\nA woman sitting in bed with a small dog.\nTHERE ARE TWO COWS THAT ARE WALKING IN THE GRASS\nWe are looking at a living room with traditional furnishings.\nThe four pink sheep are moving away from each other.\na light a few ceiling fans a bicycle a couch and windows\nA hand is holding a small device to watch a video.\nA living room filled with furniture and a fire place.\nA white toilet sitting below a bathroom window.\nTwo women walking down the street holding umbrellas.\nA snow boarder is standing on a snow covered mountain.\nA Ford Mustang next to a brown horse.\nA computer keyboard and a computer mouse sitting next to it.\nTwo doughnuts are sitting next to each other on white paper.\nA PLANE IS HIGH IN THE SKY ON A VERY CLOUDY DAY\nPeople are sitting under umbrellas while riding elephants. \nA model train on a play set with a track.\nA man wearing a yellow bandanna holding a tennis racquet.\na small table that has some wine glasses on top\nThat looks like a wall mural in the background of this photo with a lot of sheet.\nTwo fighter jets flying through a blue sky.\nA pitcher throwing a ball during a baseball game.\nThe small bed is next to a desk with a chair at it.\na large area of water and a bridge\nA jockey riding a horse on a horse racing track.\nA person standing on a street with some food.\nAn airplane can be seen flying through cloudy skies.\nSeveral adults playing soccer in the snow wearing winter clothing\nA group of people gathered together in a kitchen.\nCell phones in a circle around kernel corn.\nA red and white striped bus traveling past a store.\nTwo men herding a pack of elephants across a field.\nA pink bathroom with hello kitty towels and curtains\nA living room filled with furniture and a TV.\nA person holding a Nintendo Wii controller in front of a small TV screen.\nA skier in a squat position on skies skiing downhill.\na cat laying down while playing with a computer mouse\nTwo giraffes in a field between multiple trees.\nA cat sitting on top of a wooden fence near a vase with flowers.\nWoman interacting with giraffe at fence in zoo.\nA blender and other items on a counter. \nA group of children playing a game of soccer.\na ath room with a toilet a bath tub and a sink\nA bird that is sitting on top of a bird feeder.\nTwo people are sitting at a picnic table by a lake.\nA yellow work truck parked in tall grass.\nTwo teddy bears with one wearing a lrge pink shirt.\nA man crossing a busy road on Division st.\nA dog jumping in the air to catch a frisbee at a competition.\nA man helping a child ride a bicycle on the street\nPeople are watching a man on a skateboard.\na brown teddy bear is holding a cellphone\nA man is holding a baby with a toothbrush in its mouth.\nA pizza sitting on top of a white plate.\na table with a line of different kind of dressed hot dogs.\nA grouo of four snowboards out in front of a red colors building.\nThe cat is sitting on the kitchen counter in front of the microwave !\nA huge plate of yummy food with fork to eat. \nSeveral men sitting in front of a large wall. \na pair of cows are standing in a field\nA green, orange and white train in a train station.\nA sandwich and coffee placed upon a wooden table.\nA dark cat hiding in between a laptop. \nSome type of colorful vegetable is wet and sitting on the counter\nThree laptops on a desk in an office.\na kitchen with some missing appliances in it.\nA fleet of boats floating on a crystal blue ocean.\nThere is a white Vigrin Atlantic Plane on a runway\na guy sitting on a motor cycle next to some trees\nA yellow train traveling down tracks next to a lush green field.\nA man holding a snowboard standing at the bottom of steps.\nA young girl is eating her meal with other plates of food present. \na tall tower with a clock on it near other buildings \nA bird flying over an ocean, with a wave crashing behind it.\nA woman in camouflage showing a device to young women.\nBananas hanging from the ceiling by attached strings.\nA police man on a motorcycle drives down the road.\nA man holding a tennis racquet as a tennis ball approaches him.\nA red train driving on a train train track next to an elevated stone sidewalk.\nA bird sits perched on the edge of an umbrella. \nA small slice of pizza remains on the plate\nA black bear in a grassy and flowery field.\na blue bike parked on a side walk \nThe woman has her cellphone strapped to her head using a rubber band. \nA computer monitor sitting on top of a wooden desk.\na train approaching a station with people waiting to board\nthis is a counter with three computers on it\nA man stands at the base with a bat.\nA group of men play frisbee in a field.\nAn adult on skis holding the hand of a child on skis.\na sand shore line with kites flying above it.\nAn antique stove and oven gathers some dust.\nA small boat and chair on the beach.\nPeople with suitcases stand on a walkway underneath a clock.\nA traffic light with a busy city street behind it.\nA tray with powdered doughnuts next to a drink bottle.\nFront end of a white vehicle in a parking lot\nA woman sitting on a horse while he's walking. \nA bed is neatly made with green sheets and a nearby table. \nA photograph of a cat and mouse on top of a dog.\nclose up of a microwave, oven, and a range\nA young man eats a slice of pizza.\nA young girl cutting paper into tiny pieces.\nA motorcycle parked on the side of a road.\nA street sign covered in stickers under a breezeway.\nA Christmas ornament shaped like a donut on a Christmas tree.\nA train is being doodled with green and blue.\nA man sitting next to a woman while they both talk on cell phones.\nA person sits on top of a motorcycle with a stuffed toy.\nA girl in the bathroom tying back her hair.\nseveral yellow trains with graffiti designs on them\nA group of children eat mini food items.\nThe man playing tennis makes a backhanded move.\nA man sitting at a table with food near his mouth.\nBoats are docked in the water near buildings on the shore.\nA city bus is riding down the empty street.\nYellow train cars sitting on sidetrack in urban area.\nTwo bento boxes with a variety of healthy foods.\nA bathroom with a low roof diagonally located above it\nA white trunk parked next to a stop sign.\nA toddler in the bathroom brushing his teeth\nA large bathroom has white walls and cabinets and blue wall tiles and countertops.\nAn old clock stands in a dilapidated, messy room.  \nThere are people standing at the top of this building.\nA team is playing baseball in a field.\nA kitchen with two stoves, an island, and appliances.\nA group of people standing inside of a shop on a tile floor.\nBathroom stall with green door in commercial business.\nTwo men riding horses at a horse racing track.\nthe man is making donuts and wearing a hat\nA large cock sitting in the middle of a street.\na large blue bowl of almonds, bananas and walnuts\nA Christmas tree with lights and teddy bear\nA couple of boats floating on top of a body of water.\nA large brown and black dog laying on top of a bed.\nthere are two men holding a frisbee together\na white plate with some food and two trays of sauce\nA picture of a stop sign on a street.\nA bus turning a corner at an intersection.\nA long table set for a Christmas seafood feast \nA restaurant kitchen under construction in a building.\na close up of a doughnut near a drink\nA person with a pair of scissors cutting into a cigar.\nA figurine is standing on the pavement and carrying a skateboard.\nA group of people walking on top of a sandy beach.\nThe legs of a man watching TV and drinking a beer.\nA large sailboat docked near the coast with a smaller boat.\nA woman riding a wave on top of a blue surfboard.\nA person trying to get up after falling while skiing.\nA large building that includes a tower with a clock topping it\nA pizza sitting on top of a wooden cutting board.\nA cat standing in between two grassy plants.  \na man standing at the back of one of the two cycles\na small brown and white bird sitting on a branch\nBride and groom with knife cutting wedding cake.\nA woman using a blow dryer to dry off a child.\nGloves and a sponge are lying on a oven that is being cleaned.\na person is riding on a surfboard at the beach\nTwo people on mopeds passing in front of a building.\nA man standing on a skateboard in the middle of the street\nAA tennis player sitting down drying himself off\nA wet rain soaked street surrounded by buildings and trees\nFour people standing around outside behind a house conversing.\nTwo girls who are looking at some snow skis in the store.\nA man riding a skateboard through the air.\nA street view with a plane flying ahead.\nA tiny bathroom with only a toilet and a shelf.\nA work station in use inside an office.\nThree freshly baked roles on a pink napkin on a wooden table.\nA yellow and rd train parked in a train station.\nA pile of smart phones sitting on top of a chair.\na surfer using man made wave with ease\nThree women smiling and eating some food in bowls.\nA couple are approaching a man sitting down outside of a small shop. \nLarge wall with an antique finish window and an old clock above it.\nA transit bus riding through a city street at night.\nThree pieces of sliced pizza on a wooden surface.\nsome white sheep and a black and white dog and grass\nA zebra looks over it's shoulder while standing in a dry grass field.\nClose up of a plate with broccoli and shrimp, with some broth.\nA bathroom with a shower covered in a curtain next to a toilet.\nA street sign slightly knocked over next to a rural road.\na close up of a bowl with wood and screws inside\nSomeone is holding a bird up to a book. \na red white and black sign against a white background\nA meal of mashed potatoes, cheesy broccoli, and barbequed ribs. \nZebras, an elephant and some giraffes stand together in the grass.\nA decorative flower vase with lavender in it.\nTwo men playing a wii with game controllers.\nA glass bowl filled with oranges on top of a table.\nThree horses covered in blankets are walking through a field.\nSomeone is taking a basic shot of the bathroom. \nSigns, cones and lights on a street ahead of construction equipment on a street.\na soccer goalie a net and some grass and a ball\na cat sleeping in the middle of a big bed \nA giraffe is standing near some large boulders.\nA woman scanning a tour map with her smartphone.\nTwo large horses stand nose to nose in an open field. \nFour men are standing in a room and playing Nintendo Wii.\nA view of a kitchen sink, knives, hanging cups, and wine glasses.\nA baseball player taking a swing at a ball\nTwo small stuffed animals are placed on the bed. \nA building with a tall clock tower with a green top.\nA person that is riding a surfboard under a wave. \nA small black dog laying on top of a rug.\nA yellow not book sitting on top of a desk next to a laptop.\nThe young girl is standing by the fire hydrant in curlers.\nThree different types of dogs looking at the camera.\nA man standing in the ocean next to a young child.\nbirds on pillars in a body of water\nA man that is sitting on a horse.\na field that has some snow and a man skiing in it\nAn adult and juvenile zebra standing next to each other in a grassy area.\nA woman bending over to pet a small horse.\nA goat alongside a house, trying to go through the bushes\nA giraffe standing on a dirt road next to plants.\nA zebra playing on a field with logs of tree\nA city street sign warning of a hill in different languages.\nA white plate topped with a couple of donuts.\nA dog sticking it's nose out of a crack in a window.\nIdentical street signs pointing in the opposite directions of each other. \nA young swimmer walks across surf boards being held.\nA large group of people watching and flying kites.\nA cat standing next to a white toilet near a bath tub.\na beautiful lady with a very nice motor bike\nBlurry image of several tennis courts, focusing on a man alone on the first court.\nThe zebras are standing beside of each other.\nA couple of people skateboarding in a graffiti filled area.\nAn ornate clock with four sides is shown in this photograph.\nA airplane banking to the right as it ascends into the sky\nA photo of a person cutting chicken with scissors.\nBlack birds picking berries out of the tree\nMan about to enjoy a piece of pizza at a ball game\nPeople in a hall with a camera taking a picture\nThe two zebra are walking in a single file line.\nA little child kneels down beside of a calf.\nThree people in the snow trying to walk up the hill in skiis.\nA herd of animals eating food inside of a pen.\nA drawing of a yellow headphone cord and an ear piece,\nA couple pieces of cake sitting on a plate.\nan orange train is coming down some tracks\nA man using his laptop computer while a cat sits on his lap.\nA woman standing in a grove while holding a black umbrella\nChildren and an adult on a tennis court. \nMan lounging on a boat giving a thumb up.\nA plane is sitting on the tarmac as the sun rises or sets.\nA polka dot plate topped with a slice of pizza.\nA blue table sitting inside of a restaurant with a menu on top of it.\nThere is a garbage truck surrounded by people on a road\nA clock is telling time on the green wall next to a door.\nA single zebra standing alone in the brush\na double decker red bus stopped outside of a brick building\na group of people riding skis on a snowy surface \nA group of people riding skis on top of a snow covered ski slope.\nSmall pizza sits on a plate on a restaurant table. \nA close-up of a waffle shaped cone with a banana in it.\nA white tray filled with plates of food next to a cat.\nA cat sitting on a bathroom counter behind a hair dryer.\nA cat on its back plays with a toy.\nTwo men riding motorcycles and ATV on a walk way.\nA surfer in the ocean trying not to wipeout.\nA large three layer happy birthday cake on a plate..\nA teacher shows the students their new assignment.\na yellow and red trains engine on its track \nA man riding on top of a paddle board on water.\nA bright blue fire hydrant is on a brick sidewalk.\nWhite counter top sink with wooden cabinets and a mirror. \nA bunch of red apples next to a few oranges.\nTheir are phones from different manufactures on the table\nA giraffe standing next to a tall tree.\nThree chairs on a sidewalk and a pigeon standing next to one of them.\nA black cat wearing a tin foil hat looking off into the distance.\nTwo people that are sitting on a table.\nA living room filled with furniture and a wall mounted paintings.\nGod looking at orange cat that is standing on a stool. \nThere are several brown cows eating grass outside.\nA man in striped shorts leaning against a board on a beach. \nA young man riding a skateboard on the side of a wall.\nA stir fry bowl with broccoli and beef cooking.\nA plate of cooked food in seen in this image.\nA boy is high in the air holding onto his board.\nTwo women in the snow on skis in front of a large building.\nA professional photograph of a living room looking out onto a patio.\nA couple of teddy bears sitting on either side of a Christmas Tree.\nA dirty bathroom with paper and dirt covering the floor.\nA person holding a giant hot dog on a bun.\nA dog that is sitting in the front seat of a vehicle.\nA crowd of people riding on top of a yellow and white boat.\nPedestrians walking on sidewalk with umbrella on rainy day.\na person riding  a wave on top of a surfboard.\na red and white passenger bus with a 'final destination 5' billboard on the side of it\nTwo dogs sleep together on a bed. \nA man riding a skateboard down cement steps.\nA well decorated living room with dust covers on some of the furniture. \nA group of women operating a car wash.\nA large white kitchen range with gold towels on the front.\nA man standing next to a parked motorcycle.\ntwo pizzas on plates on a dining table with a pink design table cloth\na man is wearing an eye patch in a room\nA man and woman are singing and playing music.\nA person on a snowboard went off of a jump.\nA man is playing on a tennis court.\nEmpty restaurant dinning room set for dinner guests.\nA man laying in bed holding a baby.\nA bathroom vanity sink with a large mirror and hairdryer on the wall.\nA bedroom with the only light coming from the window.\nA passenger train is traveling over a bridge.\na line of cars with a motorcycle in front\nA motorcycle being held up slightly by its back tire.\nA truck stopped at an intersection where construction barriers are up.\nLOTS OF BACKPACKS AND HATS LINED UP ALONG A WALKWAY\nA air plane that is parked at air port.\na man running up to hit the tennis ball\nA couple are walking with an umbrella through the street.\na woman in a tankini riding a surfboard\na brown and white cat sitting in a bathroom sink \nTwo ladies standing on skis besides a chair lift.\na couple of buildings near a busy street\nAn adult polar bear is swimming in the icy water\nA social occasion of people are uncovered before the open day. \nA table with a jar of cookies, cake, and fruit on it.\nlooking out a window from inside the ski lodge\na close up of a plate of food on a table \nA mother sheep feeding her baby on a lush green field.\nA young girl holding a sandwich at a table.\nAn open laptop computer sitting on top of a wooden table.\nA fleet of ship floating on a lake next to a shore.\nWoman waiting at end of curb for train to open its doors.\nAn athlete jumping up on a court field.\nA person wearing a beige ski hat driving a car. \nA man holding two ski poles while standing in the snow.\nAn elephant leading a baby through a Savannah plain.  \nTHERE ARE A LOT OF PEOPLE WALKING AROUND WITH KITES\nA large dog holding a Frisbee in it's mouth on grassy field.\nA dust cloud has formed in front of an elephant.\nA bedroom with a large bed sitting under a painting.\nA baseball player swinging a bat at a baseball during a game.\nA pink upholstered chair is in front of the television.\nA man looking at something while holding his hot dog up.\nA hand pressing buttons to play a game on a flip phone.\nA Chicago logo boat is traveling in the water. \nDarth Vader holding a plastic light saber in an airport while a kid stands in the background with a real lightsaber.\nA bus drives over a muddy road with trees on the side of it.\nA pan filled with food sitting on a stove top.\nThe woman sitting in a red chair is smiling while holding a cell phone. \nA dog and a goat with their noses touching at fence.\na table top with some plates of food on it \nA small baby giraffe sitting on concrete next to an older adult giraffe.\nA couple of people riding skateboards on a sidewalk.\nA yellow and red fire hydrant sitting next to a tree.\nA bulldog resting on and sleeping with a teddy bear.\na vendor is selling items in the street\na public transit train on a train track with trees in the background\nThe big dog is laid out in the hallway\n A cat on top of a closed laptop on a desk. \nA dog stands on a street corner near a group of people.\nA laptop computer on a desk with a lamp and office supplies.\nA view of a sign that leads to Brooklyn and Queens.\nA pretty young lady holding a tennis racquet on a tennis court.\nA group of sheep sitting next to a tree.\nA young child sitting on top of a couch.\nA dog is riding the waves on a surfboard.\nMany umbrellas waiting for any downpour from the next storm.\nA person is holding a video game console controller\nA young woman takes a self portrait in the mirror.\nSeveral people ride elephants through the water in the jungle while others ride a raft. \nFour people are smiling together over a box of pizza.\nAn airplane flying in the air near the airport\nPeople are standing in a shopping district with stores.\nvery many travelling bags placed on the floor\nA red and gray passenger train traveling on train tracks.\nA sign posted on the side of a highway.\nA group of ties that are on a blanket.\nA statue standing on a sidewalk while holding a black umbrella.\nA black and white cow grazing on dry hay next to a black cow.\nA white plate topped with a pizza and cheese.\nA dark green and yellow striped train that says \"Duke of Edinburgh\" on a train track while a lady takes a photo with her camera. \nA small white boat driving past two light houses.\nTwo kids brushing teeth in the bathroom with man taking a picture.\nA large elephant standing next to a wire fence.\nA yellow bus with tinted windows driving uphill down a street.\nA plate topped with different kinds of foods on a table.\nA Penn tennis bill resting on a tennis racquet\nA plane that is flying in the air.\n A view of a cellphone that appears to be split in two.\nA person is holding something next to an open microwave.\nA woman standing in front of an open refrigerator in a kitchen.\na man is crossing the street and there is a yellow traffic light\nAn individual is in the open view in the picture.  \nCat sitting on a desk with a computer behind him.\nA factory with a large smoke stack next to a train.\nA man sitting in front of a laptop computer.\nA street sign with two streets and two block numbers.\nThe living room has a dog sitting on the floor watching the television. \nA woman tennis player is about to return the ball. \nA man swinging a tennis racquet on top of a tennis court.\na man in black leaning back holding a game controller \nTwo giraffes standing together in an open field zoo den\nA man sitting under a stop sign on the side of street.\nA person standing on top of a tennis court while wearing a white hat.\nTwo men standing next to each other on top of a field.\nA grandpa and his granddaughter playing a game of frisbee in a field.\nA baseball player pitching a ball on a field.\nA toilet sitting in a bathroom on top of a tiled floor.\na tennis player sitting in a chair shirtless\nA tall clock sitting next to a fence and a forest.\na dog that is sitting at a keyboard\nTwo children sit at a table outdoors with a pizza in front of them.\nA man sitting at a table next to a greeting card.\nA boy standing in tall grass flying a kite.\nA half eaten sandwich sitting on a plate on a table.\nA woman in tennis whites is facing forward and clasping a racquet on a tennis court,  while a man in street clothes is standing at the back of the court, looking off to the side.\nA black Honda motorcycle parked in front of a garage.\nA man in the bathroom enjoying using the hairdryer.\nNear a teller machine, several baggies sit on a shelf that holds three bags with orange fish in them.\nA man in a blue shirt holds a pair of garden shears open.\nA group of brightly colored boats in palm grove.\nA little kid holding up two hot dogs in buns.\nA bathroom has a floating toilet and sink and a walk-in shower.\nA close up of a grey traffic light with a left turn sign under. \nA man watches a giraffe eating from a tree. \nA traffic light next to a set of stairs.\nA group of people, many wearing red shirts or vests are on a grassy area while a white Frisbee is in the air above their heads.\nA black and white cat sleeping next to a persons legs.\nthere are many people inn the beach playing volley ball\nFour young giraffes in a zoo, with one of them being fed leaves by a person\nA STREET WITH CARS AND CONSTRUCTION WORKERS WORKING.\nA man gives a toast in a dining room full of people. \nA skateboarder with white converse sneakers has a long shadow.\nA sign that says \"stop\" with another sign underneath it .\nA boy getting ready to blow out candles on a birthday cake.\na man and woman stand in front of a cake \nA man holding a microphone in one hand while he holds a skateboard in the other.\na woman, a man and some children swimming and surfing in the water\nA large black bear walks through the green terrain.\nA long black train sitting on top of railroad tracks.\nA silver bowl of sliced carrots and chopped broccoli.  \nA squirrel eating a piece of fruit in grassy area.\nFour surfers on a beach with their surfboards.\nA convenient store's display of beverages inside a cooler.\nA man adjusting his neck tie while wearing a vest.\nA person standing next to a couch holding a game controller.\na  doll sitting on top of an open suitcase \nA yellow tax sitting next to a car with lots of yellow bananas.\nthis is a child ready to swing a baseball bat\nThree women perform a dance with traditional umbrellas.\nA car dashboard with a group of brown cows waking towards it.\nTwo zebras eat hay in a muddy area.\nA man in brown jacket holding a footlong hotdog.\nA cat standing in front of a TV showing a dog in a  cage.\nThe television, in a plastic cow, is on.\nA large Air Force jet taking off of a runway.\nA close up of a zebra foraging on some grass\nA person in catchers gear standing by a fence.\nA large pizza sitting on top of a pizza pan.\nGUY WITH UMBRELLA HAT SITTING A TABLE WITH ANOTHER PERSON\nA room with a refrigerator with a house plant sitting on top of it.\nA stove top oven covered in pots and pans.\na train on a train track with a sky in the background\nA pole that has a street sign on it.\na group of people gather outside by a wall \nHandlers giving people rides on trained adult elephants.\nA group of people walking across a snow covered slope.\na black and white double decker bus and some cars\nTwo women in a room with one of them holding a cake.\nHorse standing on sidewalk with white carriage in city traffic.\nClothes and a teddy bear are on a small mattress.\nBroccoli and other vegetables are in a tray on the table. \nMan relaxes on couch with pillows, blanket, and his computer. \na group of people play with a frisbee in a field\nThe young couple is enjoying their skiing trip.\nA young child sitting in front of a bowl of dessert holding up two ice cream bars.\nA man holding a knife while standing over a sink.\nA plate sits on a table in front of a woman.\nCat siblings sitting on a sunny window sill\nA women who is on a surfboard riding a wave.\na man pouring a drink into a wine glass \nA man eating a pink doughnut with sprinkles \nAn overhead view of a city cross walk on a rainy day features an array of colorful umbrellas. \nA small propeller plane sitting on top of a field.\nA picture of some people that are cooking some food.\nA bathroom with a toilet, toilet roll and safety rail.\na cellphone sitting on a blue mesh blanket\nPlastic container filled with oranges sitting on a green shelf.\nA female soldier sitting on top of a teddy bear.\nA street lined with people on both sides and two men dressed in costume on horses.\nA cat sitting in front of a window where there is a field of tulips and a windmill.\nA man passed out on a table next to boxes of donuts\nA table topped with a smart phone next to a white bag.\nSeveral people around a boat on the beach with an umbrella shade.\nA large stone building with a tower and arched windows.\nA small elephant with a seat on it's back.\nA large purple and red passenger jet flying through a blue sky..\nA group of trains passing by each other on a track.\nA person that is snowboarding in the snow.\nA man and a woman playing frisbee in the grass.\nA traffic light sitting on the side of a road.\nTwo men are playing frisbee with one man on the offense and another guarding.\nA skier navigates deep snow on a ski slope.\nTray full of food consists of potato, tomatoes, fruit cocktail, hotdogs and mashed potatoes.\nTwo herds of yak are grazing on a hillside with a snowy bottom landing.\nA herd of sheep grazing on a lush green hillside.\nPeople watching elephants enter  the water by a river.\nA building has a stop sign right in front of it.\nAn older woman eats at a table while watching TV.\nA group of people sitting and laying on top of a beach.\na wooden bench that has colorful decorations \nMeat left out on the kitchen counter could spoil.\nThe tiny bird is sitting on the rooftop statue.\nA very long table filled with glasses in a dark room.\nA person riding on the back of an elephant.\na bride and groom prepare to cut the wedding cake\nA bag of luggage filled with lots of different balls.\nA young boy throwing a baseball during a baseball game.\nA person that is sitting on top of a motorcycle.\nA young child holding onto a kite while standing on a green grass covered field.\nA group of elephants are walking on a dirt road.\nSeveral people stand on a narrow, long pier on the water.\nA train coming out of a bridge next to a  river.\nA jean skirt has a bottom on it made of ties.\nA baseball player standing next to home plate.\nThree people in a boat with an umbrella in the rain \nA man scowling while looking in a refrigerator \nA black kitten lays on her side beside remote controls.\nA dead cow corpse laying on top of a beach.\nA man in a hat taking a picture of a vase.\nA room with chairs and a piano and light coming through the window\nA room filled with wooden furniture and white walls.\nA hand is holding a cd by a laptop computer.\nA table topped with lots of ham and cheese\na red stop sign at a downtown area intersection\nA gas station and a traffic light. \nA woman walking across a street near motorcycles.\nA closeup of an old and mossy outdoor garden bench.\nThe man smiles as someone is cutting a pizza.\na person sitting at a table eating food from a plate.\nA black and white cat sits near a window looking outside.\nA man in glasses using a telephone in a salon.\nan image of a bird perched in a tree\nBurnt food sits on a plate with a cell phone next to it. \nA railing next to a dock with a warning post and life preserve available.\nA man and woman  sitting near a table with a lot of food on it.\na flock of goats and some men watching them\nA skateboarder in mid air during a stunt \nAn animation of a girl holding an umbrella is shown.\nThe cat is standing on top of the desk.\nA red fire hydrant sitting on a muddy green hillside.\nA surfer is riding the waves in the water. \nSandwich triangles on a plate next to a mug.\nA living room with a loveseat and chairs surrounding a table.\nA black and white dog wearing a white hat.\nA skier is taking a turn while surrounded by snowy hills.\nA close-up of a plate of food containing meat and beans.\nA white plate topped with a lush green and red salad.\nA woman riding a surfboard while in the ocean.\nA statue is sitting on a street bench.\nA man walking without a shirt past an orange cone.\nA red suitcase next to a chair outside on the grass.  \nA cute cat laying down in a sink.\nA man holds a bat in his hands.\nthis lady is standing next to her brown horse\nA person skiing down a snowy mountain side. \nWomen on a tennis court playing tennis. \nChildren are playing tennis on the street on a nice day.\nA cup with three pairs of scissors sitting on a table.\nA traffic light and many cars on a road.\nSeveral people are riding horses on the beach.\nA black cat sleeping on the hood of a warm car.\nAn animal, curled into a ball, takes a nap.\nA pitcher and umpire during a baseball game.\nA lunch tray is shown with bread, meat, veggies, and fruit.\nA man holding a baseball bat while standing on a baseball field.\nA woman holding a giant pair of scissors \nan open fully stocked fridge with eggs and soda\nA white toilet sitting in a bathroom on a tiled floor.\nA blue fire hydrant above two pairs of shoes.\nTwo teenage girls paying a video game together.\nA living room with hard wood flooring and black furniture.\nA young man snow boarding on a fence rail.\nA man an a woman playing with an Xbox.\nA toilet and bidet sit in a bathroom that is under construction.\nDouble decker city bus passing under an overpass. \nA wooden bench sitting on top of a grass hillside near the ocean.\nAn open laptop computer sitting next to a  phone.\nA persons work station complete with his lunch and drink.\nA horse walking across a river with rocks.\nA aqua colored truck carrying a wide load down the street.\nA laptop computer is open with a cup of coffee next to it.\nthere are three zebras standing together in the wild\nMan sitting at a small table behind a pizza.\nA couple of people standing in a field flying a giant kite.\nA blue truck pulling a load of unripe bananas.\nA man sitting in front of a microphone at a table.\nA young product representative gives out Frisbees at a show\na couple of birds that are on some wood plat forms \nA young man is eating food while using the computer.\nFour pans of food sitting on a stove top.\nAnimals in a body of water play with a ball. \nA city bus has graffiti on the side of it\nA bench sitting in front of a lush green hillside.\nMany flowers are laying in the dirt in the sun.\nA beautiful dessert waiting to be shared by two people\nA photograph of street sign and traffic light.\nA guy looking down at a big knife he is holding.\nA bunch of birds flying around a couple of waves near the ocean.\nA toilet sitting next to a white sink under a mirror.\nA stop sign sitting above a road barricade.\nThere is a large tower with a clock in the middle of it\nA pizza cutter is laying next to the pizza.\nThere are two plates showing.  One has two hot dogs with all the trimmings and one has a potato wrapped in foil.\nA man holding two red skis walking through the snow.\ntwo people sailing down a stream in a blue canoe.\nA man making his plate with a table full of food. \nWoman holding a cell phone covered with a crochet pounch\nthere is a young woman playing tennis on the court\nA black and white cat is sitting looking out a window.\nA large black cat laying on top of a pink laptop.\nA little girl cutting up food on a  cutting board.\nA person riding a motorcycle on a playground.\nA large clock tower stands in the middle of an outside event.\nThere are three monitors and a laptop on the desk.\nA blue plate topped with food next to a  fork and knife.\nThe animal is standing by the booth at the event.\nA man in a purple shirt riding a skateboard up a wooden ramp.\nA woman and a dog sitting on the ground.\nA man is riding a bicycle and flying a kite.\nA train drives along the tracks amidst many cranes.\nA living room filled with lots of furniture and a red stair case.\nA woman sitting in a chair using a cell phone.\nA group of zebra standing on top of a lush green field.\nThis brown and white cat is standing on a desk in front of a computer.\na pair of buses going down a divided road\nA parking lot with a line of parking meters.\nCat in a closet with baggage and misc.\nA woman swinging a tennis racquet on a tennis court.\nA small her of sheep gathered on a lawn in front of a large building in the city.\nTwo giraffe standing next to each other in a field next to a tree.\nA cup of food in a persons hand.\nA book shelf filled with lots of colorful books.\nan image of two giraffes in a crate\nblack and white photo of two birds flying on a cloudy sky\na man is riding a surfboard at the beach\nA group of people walking in the rain while carrying umbrellas.\nA man rides one horse in a group of horses outside in a field.\nTwo people riding a scooter on the road while holding an umbrella.\nA man on a motorcycle with a woman on back\nA herd of buffalo grazing on grass next to the ocean.\nA yellow bench sitting in a field next to trees and a shrub wall.\nTwo dogs on a couch, one is standing on the top and one is laying down.\nA carpet with various items that includes shoes, clothing and toiletries.\nA box filled with regular and hear shaped donuts.\nA work crew repairs a stop light in the town. \nAn open door that leads into a kitchen \nA train with graffiti all over it is on the tracks.\nJar of fruit salad, featuring peaches and berries.\nTwo zebras stand in front of a large building.\nA United jet liner flying through the air.\nA glass next to a laptop computer on a desk.\nTwo women standing in front of a laptop computer.\na man is serving in a game of tennis\nA entrance into a building next to a parking meter.\nA polar bear is walking on snow and has one paw up in the air.\nTwo laptops next to each other with monitors turned on.  \nA group of people who are standing near each other with umbrellas.\nLarge jetliners parked on an airport tarmac outside of an airport.\nA woman kitboard on the ocean next to other kite boarders.\nA cow laying on top of dry grass in a  pen.\nA man holding a tennis racquet on top of a tennis court.\nA man taking a selfie in a bathroom mirror.\na couple of people ride on horses side by side with each other \nA motorcycle parked on a grass covered field.\nA well lit clock on a building at night\nA peacock-shaped kite flying overhead in a blue sky.\nThree Asian people are riding on top of an elephant. \nA person sitting at a table with two pizzas on pizza pans.\ntwo green and one grey parrot perched on a branch.\nA person is flying a biplane in the sky.\nThe businessman has his boxing gloves on whikle he waits.\nA bunch of people inside a crowded subway train. \nA bathroom has a fancy light on the floor, as well as red and white walls \nA man holding a boat at dock with a dog standing on it.\nA street sign on the edge of a street.\nA woman with a bat hitting televisions that say Comcast Doesnt Care.\nA woman pats an elephant as a couple men watch.\nA little girl puts and carrot in her mouth and then puts it in a man's mouth.\nAn orange in a bowl near a puddle of water.\nRed and blue train sits along the tracks\nA man is riding a horse in an open field.\nA person kneeling down behind a surfboard on a bike.\nA child wearing an orange tie holding a paintbrush. \na building with a clock on the top of it \nThree giraffes are feeding from white buckets that are hanging from a fence.\na woman holding a tennis racquet on top of a tennis court. \nFour people wait to cross the street at an intersection.\nA frosted cake that reads \"congratulations kate and luke on your upcoming arrival.\"\nTwo little girls are dressed in uniform preparing for the day\nA display of cheese, fruit, and wine is on display.\nA cat sitting on top of a red boat next to two dogs.\nan ornate presentation setting with a fruit tart with an unlit candle and a serving of a tart on a fork and serving knife\nA tray of black and white sprinkled doughnuts \nLiving room with coffee table and a brown couch and chair.\nA red stop sign over a yellow pedestrian crossing sign.\nA man riding a snowboard across snow covered ground.\na small red fire hydrant in concrete \nA man pressing buttons on his cell phone.\nPeople watching a plane take off from a runway.\nA girl holding a skewer with a banana on the end.  \nA man with a camera has a smoke in his mouth.\nA panda is eating bamboo on the ground.\nA tray holding a sandwich and cappuccino, next to the pastry.\na cat sitting on top of a dining room table set with wine glasses\nA man in a tie and dress shirt taking a picture with a cell phone.\nA young man swinging a baseball bat on a field.\nA person holding a pool Q on top of a pool table.\nA few boys appear to be playing Frisbee near a fountain. \nA small marina next to a wall of rocks. \nA woman is paddle boarding through the ocean.\nFour male subjects, young and old, that are enjoying winter sports.\nA bed with a blanket and pillows on top of it.\nA bunch of people at the ocean about to surf.\nA man holding a giant banana while riding a scooter.\na kitchen that looks like its being redone\nA little boy standing next to a bunch of unripe bananas.\nAsian man lays back on a black couch holding a Wii controller. \nA tennis player seated on a bench with a bag while holding two rackets\nThe man in the green shirt and cap is walking with a tennis racket. \nA shiny vintage refrigerator inside of a camper.\nA male tennis player in action on the court.\nA man holds a baby in his lap while the baby eats a banana.\nA horse drawn carriage standing in front of a city building\nA train traveling down tracks next to lights.\nA group of people walking across a busy city street.\nthere is a airplane that is landed at the airport \nA large colorful truck with a with a wooden building on it's back.\nSomeone wearing a pink snow suit stands on a snowboard.\na bunch of airplanes that are inside of a building\nA person on a surf board surfing a wave.\nA bluebery cake is on a plate and is topped with butter.\nA minimalist bedroom with low furniture and a quote on the wall.\nA youngster is flying a kite on the beach. \nA train as it travels down the tracks over a bridge.\nA teddy bear laying in bed with a blanket over it.\nA skateboard with two different color and sized wheels.\nA man is flying a kite in a field \nTwo people are sitting at a table drinking wine.\nTwo baby elephants laying in a puddle of mud\nWooden bench on hillside near grassy sloped area.\nA brown teddy bear standing next to a  tooth brush.\nA man and a woman sitting in a booth having milk shakes and cake.\nA custom motorcycle sits in a car show\nA cat with its paws halfway into an open toilet.\nMultiple types of vegetables sitting in a card board box.\nA dog is standing in floodwater beside a house.\nGuy pedals a bike through a small village.\nA child holding a flowered umbrella and petting a yak.\nA group of men riding on the back of a small elephant.\nA bunch of bananas that are in the back of a truck.\nThe cake has two motorcycles on the icing. \nA statue standing over a traffic light next to a giant spider.\nTwo giraffes rubbing their heads and necks together.\nA white sink sitting under a bathroom mirror.\nA man walking down a street holding an umbrella.\nA person and a table of sandwiches and other food.\nA gold clock with ornate iron hands keeps time on a large clock with roman numerals.\nA gold and white dog sticking its head out a car window.\nA pine apple on top of a pile of mixed fruit.\nA fire hydrant that has been painted many colors in a tropical area.\nA airplane in the overcast gray sky over tarmac \nA painting of a table with fruit on top of it.\nA man is carrying a surfboard towards the water.\nA woman in black jacket holding a white cellphone.\nA room with a couch, foot stool and a mirror. \na street sign on a pole near a building \nA living room with fireplace, television, and couches.\nA tennis player lies on the soft grass\nWorkers at indoor area  with bunches of unripened fruit.\nLight colored teddy bear dressed in a hoodie and pants\na row of parked bicycles and motor cycles\nChicken, broccoli, and macaroni and cheese served an on orange plate. \nA man who is wearing a tie with some words on it.\na body of water that has some boats in it\na man that is snowboarding down a snowy hill\nThe kitchen area is clean and ready for us to use.\na beautiful woman sitting on a plane holding a bag of food.\nA cat sleeps on a pile of discarded shoes.\nA group of people riding skis across snow covered ground.\nA view of a bathroom with an old tub and a hanging shower curtain.\nA well balanced meal set on a tray \nYoung boy in the dunes with the ball tennis racket\nA  little kid that is sitting on a couch.\nA man walking a dog on a leash in a parking space.\nA blue sign points the way to the road.\nA lone bird contemplates life while resting on top of a mound.\nA giraffe on display in a glass enclosure.\nA baby laying on a bed looking at a stuffed elephant.\nA butcher cutting up the corpse of a dead animal.\nA city street at night filled with lots of traffic.\nTwo pictures of people eating some pizza together.\nMom gives her daughter a lesson in using her baseball glove.\nA woman standing next to a  brown and white dog.\nA bathroom with two toilets look in very bad shape.\nA man riding a wave on top of a surfboard.\nA picture of a woman laying on the purple sheets of a bed.\nA man with roller blades that is jumping in the air.\nA group of cows on street next to building and bus.\nAn open laptop computer sitting on top of a table.\nA cow standing next to a damaged car on a dirty lot.\nTwo horses standing behind fence with grassy leaves\nA row of parked motorcycles sitting along side of a street.\nThe man and woman are standing while playing video games. \nA person holding a doughnut in their left hand.\nA herd of zebra in a grass field.\nA black piece of luggage with a gray and white cat laying inside of it.\na guy in a half pipe gets ready for his trick\nA fire hydrant sitting in a front yard next to a sign.\nThe train is approaching and a man is getting off his bicycle.\na large group of horse with men riding on a few of them\nA bus sitting beside a sign that says tow zone.\nA group of people with surfboards walk on the beach.\nA man rests on the ground with his hand to his head; his Macbook rests in his lap.\na person with green clothes and green board snowboarding.\nA small blue and white bathroom with a toiler and sink.\nA lush green hillside covered in cows grazing.\nA bathroom with a white toilet underneath a window.\nA black and white dog is catching a red frisbee.\nA bride and groom are cutting their wedding cake.\na giraffe walks across the grass looking for food\nA duck swimming on a lake next to other ducks.\nthere is a female surfer that is riding a wave\nMany apples and oranges are stacked near to each other.\nBlue-and-white plates of food sitting on top of the table overlooking a backyard. \nRed brick building painted to look like a smiling face. \na person in a field throwing a frisbee\nA large jetliner taking off from a runway.\nA bathroom has a bathtub, sink and window in it.\nblack and white image of a kid doing skate board tricks on street in front of a fence\nA group of men sitting around a table eating food.\n a person siting on a hill talking on a cell phone\nTeddy bears are on a table with pieces of cake.\nA large building filled with a giant clock tower covered in ivy.\nblack and white stripped  poles with stop lights attached\nThe stuffed bear has a tag on his ear and a heart on his chest.\nA Daily Mirror featuring stories on celebrity stuffed animals.\na cat sitting in a sink with its eyes open\nTwo zebras stand together in a field. \nA group of guys standing behind several covered tables.\nA red and yellow train moves past a modern building.\nA banana in a little chair near a window.\nA baby girl in a high chair eating a bowl of cereal.\nA giraffe that is standing in a field.\nA baby elephant plays in the water next to an adult one\nA man riding a skateboard up the side of a ramp.\nA man with a black top hat and suit is staring at the viewer.\nA sequential shot of a tennis player slamming a ball.\nTwo barefoot women holding game controllers in each hand.\nA bowl full of lemons sitting on to of a counter.\nA train traveling down the train tracks next to a train station.\na man in a blue shirt riding a blue motorcycle and some people\nA large body of water filled with boats along a forested shore.\nA man surfing a wave in the ocean.\nA row of motorcycles parked next to each other.\nA man running to hit a tennis ball\nThis is a public bathroom with  soap dispensers installed on the wall.\na bathroom with a big shower and counter\nA man holding a banana in his hand.\nA telephone booth and a red bus on the side of the street.\nA view of a bus sitting on a street corner in a city. The picture looks old.\nA man doing a trick on a skateboard over some steps.\nA woman that is kneeling under a elephants trunk.\na man hitting a tennis ball with a tennis racket on a tennis court.\nAn announcer with a microphone talking to a crowd.\nA clock tower currently reads 1:46 near the buildings. \nA brown sheep standing on top of a lush green field.\nA beach scene includes many different kites flying in a cloudy sky.\nA little child riding skis down a snow covered slope.\na person on the back of a parked truck\nA woman brushing her teeth in a dull light room.\na person skiing through the snow near some trees toward a sunset\nA male tennis player preparing to return a shot\nA giraffe bust hanging by a Rain Forest Cafe Sign.\na person in a bathroom having a reflection in the mirror\nA plain bathroom with toilet and bath tub\nA man is holding a camera on a rig while skateboarding in a parking lot.\nA young man looking after harnessed horses snacking on grass\nScissors and a pile of postage stamps topped by one of President Nixon\nA person cutting up an ice cream cake sitting in the box on a table.\nA red plate topped with broccoli and meatballs.\nA clock mounted on a wall over the doorway of a kitchen.\nA tractor truck painted in camouflage sitting on a field.\nA pair of zebras in their natural habitat.\nGlasses sitting on top of a stainless steel refrigerator. \nThe two men are outside with coats and umbrellas. \nA man wearing black glasses and a mustache.\nAn elephant standing next to a bail of hay.\nA woman who is using a blowdryer on a dummy head.\nA flat screen monitor shows a brightly colored image on the screen.\nGrey cat laying on a green floor near a sandel.\nA silver rusted looking fire hydrant sitting in the middle of a walkway.\n4 different colored sea horses flying with 4 birds.\na smiling woman wearing sunglasses in the snow \nA garage with the door open to show a group of people sitting in chairs and a dog.\nA cow laying on a green field next to it's baby.\na brown bear is walking away from a river\nA man standing on top of a tennis court holding a racquet.\nA train riding over a stone bridge near some steps.\nsurfers in water near pier waiting on the next swell\nAn elderly woman sits on a bench with a crowd behind her.\nThe nose of a high-speed train that is sitting on the tracks. \nA woman feeding a giraffe under a tent. \nA old truck with a busted window in the tall bushes.\nTwo giraffes move around in an enclosure next to some trees.\nSome very cute small dogs laying by each other.\nSomeone is standing near a train that is parked. \nA flat screen TV sitting in a living room in front of a dining room table.\na giraffe eating food from a food dispenser \nA peson riding a bike down a long narrow road.\nA man smiles as he raises a goblet to his lips.\nA glass window in a fruit store with fruit in front of it\nSurfer riding decent sized wave on the river with breaking tide.\nthere re many people watching a man on a skateboard\nA person standing next to a TV outside of a building.\nThe giraffe is standing by himself outside by the trees.\ntwo legs yellow shoes and a green skateboard\nA decorated street sign for Queen Street with two blue signs below. \nTwo professional male tennis players sitting court-side and drinking water\nA group of people and a large truck on a street.\nA bathroom sink sitting under a mirror sitting next to a toilet.\nA person that is standing up on a paddle board in water.\nA group of kids and instructor are in a pool playing.\nLarge canoe with many people on lake with trees lining shore.\nMany sausages or hot dogs cooking on a grill.\nA person is walking in the sand near the water.\nA bed topped with an old fashioned portable tv and a boom box.\nA plate topped with sliced up oranges full of juice.\nA small bird standing on a rocky ground.\nA train with many cars is rolling on the tracks. \nA train pulling into a train station next to a tall building.\nThe young boy is holding a tennis racquet.\nA wooden table with two chairs next to a sink.\nThere are two zebras one zebra is eating grass.\nA man sitting at a table in a kitchen with a laptop.\nTwo large ships sitting next to a dock under a cloudy blue sky.\nA group of people holding smart phones and a glass of wine.\na couple of men are playing video games in a room\nAn older man catching a fast moving tennis ball.\nA table that has a candle on it in a living room.\nTwo little kids, a girl and a boy, playing a Wii game.\nthere is a baby sitting on a chair with a stuffed bear\nA man kneeling down behind a bunch of bananas.\n A white bus parked at a stop next to a crowd.\nTwo chairs sitting in a living room under a framed picture.\nA dog gets its teeth brushed by a man.\nA person and a laptop in a room.\nbaby in pajama's sitting on the bed playing with an object\nA man in a black shirt with red suspenders holding his hands out. \nBrown dog sleeping on a bed in a bedroom.\nA small boat unattended in a bay near a sailboat.\nCouple of cats sleeping on opposite ends of the couch\nthere is a service truck that is behind a bus\nA man speaking at a public event behind a pitcher of ice water\nA woman laying on a bathroom floor next to a toilet.\nA man in red jacket snowboarding down a snowy hill.\nA TV with a man and a woman on it's display.\nAn old fashioned refrigerator sitting in front of wooden cabinets.\na person showing another person how to surf\nTwo men riding surfboards on a wave in the ocean.\nan image of two bikers at a cross walk\nA child on skis in the snow next to a sign.\nMattress with covers sitting on rocking frame in empty room. \nA group picture of young men and women at an event at night.\nA dog is getting its picture taken from the driver's seat\nThe young man tennis player is serving the ball.\nA man and his surfboard survey a stormy sea\nA red bowl in the center of a plate with olives and lemons on the outer plate.\nA herd of sheep grazing on a pile of hay in a field.\nA white toilet sitting between a car and a truck.\nA couple of zebra standing on top of a lush green field.\nTwo people walking a way from a train waiting at a train station\nThree men are standing on a beach in front of their surfboards. \nA person holding a hot dog with lots of fixings on it.\nA fire hydrant stands on a corner of a sidewalk.\nPeople sitting on a bench watching a soccer game.\nA bathroom with a sliding shower door next to a toilet.\nA passenger train car that has been tagged with graffiti.\nA man on a surfboard is on top of a wave.\nA man in a hat standing next to a parking meter.\nA vase with four roses in it sitting on the floor\na young man is on his skateboard doing a trick \nA man putting an uncooked turkey in the oven \nA giraffe is standing between two trees and some rocks. \nA person and young girl with a frog umbrella standing next to water.\nA brown horse with flowing blond hair standing on top of a field.\nTwo brown teddy bears sitting on top of a wooden table.\nA pizza that is sitting on a metal platter.\nA large propeller airplane flying through the sky.\na person is holding a hotdog with toppings\nView from out the seat of horse drawn carriage with man holding wine glass\nsome people holding wii tennis motes as they look at a screen\nA small girl with long hair brushing her teeth\na small yellow Cessna plane flying on a clear day\nA bunch of people are gathered around many tables inside of a building. \nA woman with a tie and a bag on the street.\nA sign picture of a baseball player holding a bat.\nTwo adults watch as a young baby holds a tennis racket.\nA person riding a skateboard on the side of an empty pool.\nA man holding a camera standing in a crowd.\nA man riding on the back of a motorcycle down a street.\na group of giraffes standing near one another with trees in the background\nA lunch box with a slice of pizza, and pretzels.\nA plate has chicken, waffles, quiche and pineapple.\nA bright kite flying past a phallic monument.\nA large clock towers next to a tall building.\nA truck with beer advertisement parked by a curb\nA white toilet sitting underneath a window next to a sink.\nA plate filled with little sandwiches covered in plastic wrap.\nA group of jets are flying together in a tight formation\nA boy is riding a skateboard on a ramp.\nA large amount of boats are parked in the marina\nA woman sitting in front of a table with a pitcher of beer.\nTwo people are standing at a subway stop as a train goes by.\nA teddy bear sitting next to a cup with a straw\nA couple of very young male soccer players, are competing for control of the ball. \nA couple of airplanes sitting on top of an airport.\nA black piece of luggage sitting next to a tire donut.\nSandwich, iced drink, and a pair of glasses sitting next to each other. \nSmall bedroom with a bed, lamp, dresser, and a small chair. \nA tall castle like building has a clock over the window\nTable with water pitchers and bowls of fruit against the wall in huge kitchen\nA bike parked in front of a doorway.\nA giraffe and zebras mingle as cars drive out of an animal park.\nA guy with a gray sweater and a guy with a blue shirt play video games together.\nA cell phone, watch and a pen. \na yellow and red trains engine on its track and trees and signs\nA group of foot ball players standing on top of a football field.\nThe skateboarder has on arm and knee pads with his helmet. \na room with laptops and headphones resting on tables.\nA lot of tennis rackets that are on the ground.\nA cake sitting on top of a table for someone named Raphael.\nA green fire truck sitting on top of an airport tarmac.\nAntique black and white photograph of two men sitting in a field\na person that is flying a kite through the sky\nA person with long blonde hair wearing a blue shirt with a brown tie and blue white flowers.\nA black computer keyboard sitting on a table.\nA couple of people on top of a snow covered ski slope.\nA toilet next to a sink inside of a bathroom.\nA view of a living room with an Christmas tree on the left.\nA colorful truck is driving with a full load of sticks and twigs.\nA baseball player taking a swing at a ball\nA pizza sitting on top of a wooden cutting board.\nA young man sitting with a laptop computer on his lap.\nA baseball player swings their bat at a ball.\nBlue scissors cutting up a plastic credit card\nAn old pickup truck sitting in a field falling apart. \nAssorted chinese food in a Styrofoam container on a table.\na male tennis player does underhand move at match\nA deep sink, washing machine and microwave oven\na close up of a dog with a hat \nThe view of a tall snow covered mountain with people on it.\nA child in green pants is eating an apple. \nA person on a court with a tennis racket.\na basket of food on a table with fries\nA man flying into the air while riding a skateboard.\nA cluttered desk with several computers on it\nThe picture of a cat under a car.\nA cat standing next to a window in a room.\nGroup of whimsical, colorful artificial flowers in bottles.\nLarge ship washed up ashore on a long stretch of beach. \nA parking meter sitting on the side of a road.\ntwo zebras on some dirt and one is eating\nA public bathroom with a white sink and sign regarding dirty hands.\nThree people in yellow shirts cleaning a park bench.\nA cabinet with various boxes, pens and mirror.\nTwo bunches of bananas at a market stand.\na paper design of a castle with numbers and silver designs on it\nA cake shaped like a stuffed and roasted chicken.\nThe clock tower is an impressive view with the lights at night..                                    \na herd of cows standing next to each other.\nLady standing at a computer screen that's sitting on a table.\nPeople getting on and off the bus parked by the curb.\na painting is hanging over a television in a room\nThere is a broken samsung flip phone on a table\na cat sits next to a remote control \nTwo pizzas covered in veggies sitting on a table.\nTwo skiers standing near a sign in the snow. \nTwo boys are playing soccer on the grass.\nA man and a woman holding up tennis racquets.\nA girl sitting down with a donut in her hand.\nA man squatting in front of a garbage can while another watches.\nA plane that is flying over the trees.\nA dessert dish includes sprigs for garnish on this banana dish.\nA train coming up to a railroad crossing.\nA living room with couch, tables, and paintings.\nA man riding a skateboard down the side of a road.\nThe man is posing before he skis down the hill. \nthere are three men playing a video game together \nA group of snowboarders standing outside a lodge\nA small clock tower sitting in the middle of a lobby.\nThe meal is being prepared in the kitchen.\nThis expert skateboarder is skateboarding on a railing.\nVariety of fruits such as bananas, oranges, and apples on a platter.\nTwo brown bears playing next to  a cave\na black and white photo of a male sitting on a bench\na little girl eating pizza and playing with a fake aquarium \nA woman wearing a military uniform injecting a cow.\nAn individual is holding a book and reading it in its bed. \nA batter at a baseball game gets ready for the pitch.\nA woman is skateboarding down a hill with a hat on.\nA gray day at a park with a stone bench.\nTwo photos of an airplane in the air.\nSomeone is holding a pair of green handled scissors.\nA pile of junk sitting next to a curb on green grass.\nA red and silver fire hydrant sitting on top of a sidewalk.\nTwo chefs are preparing sandwiches on a cluttered table.\nsome green leaves on top of a pizza on a plate\nA group of people standing around a TV\nView of a snow capped mountain above trees and a bench.\nThe young children are on the water learning to surf. \nAn armed person is standing in a snowy field.\nA couple of men standing in front of a laptop computer.\nA living area with a red couch, mirror, window and painting.\nA zebra standing next to a giant rock.\nA tennis player is holding a racket with both hands.\nA lone skier makes his way across the snow as he drags a backpack behind him. \nA man is standing in the sun playing tennis.\na room filled desks and computers a man and woman sitting listening and anther man with a camera\nMen are playing Frisbee in a yard. \nA very tall clock tower towering over a city.\nA toilet and urinal side by side in a bathroom.\nGarbage can on sidewalk with humorous caricature with sign.\nA carved bear that has a ribbon around the neck.\na container seperated by two compartments having fruits and veggies\nA piece of cake left on a plate\nA group of people with bananas tied to their bicycles.\nsome people seated at a table with plates of food \nA set of three neck ties with pictures of dogs and cats on them.\nA woman in sunglasses is in a picture with a giraffe. \nA woman and two men are displayed on a small television\nA man holding a game controller for the Nintendo Wii.\nA long haired dog with their face out the window of a car.\nA group of men riding horses down a street.\nThis is an open box containing four cucumbers.\nA woman stands in the kitchen using a microwave.\nA picture of a road sign labeled bodacious drive.\nTwo people that are in the air while snow skiing.\nAn orange and yellow flower sitting in a see through humming bird.\na building with a domino's pizza on the bottom of it \nThat salad and pizza make a filling lunch.\nTwo skiers race up a hill while people look on.\nthe Bike is parked next to a fence\nAn older model double deck tour bus sitting on a road side.\nCompetior preparing to return volley during tennis match.\nA wooden bench has a company advertise on it. \nA cat and a Dog playing on the floor near shoes.\nA pizza sitting on top of a wooden cutting board.\nA blue office chair sitting next to a wooden desk.\nGrey plane taking off above some green vegetation.\nThe room with the yellow walls is empty.\na women that is walking down a sidwalk\nA smiling girl with her fifth birthday cake\nA brown horse standing next to a metal fence.\nA herd of sheep walking down a rural country road.\nA couple of men standing next to each other while wearing neck ties around their heads.\nA cell phone has a ritz cracker like keychain.\nA picture of the president standing at a podium\nA black and white cat sits in a white sink.\nA twin engine airplane parked at a small airport with men in yellow vests looking it over.\nA kitten standing on the edge of a small table in front of a mirror with an elaborately carved wooden frame.\na bedroom with a cluttered desk and a messy bed \nthis is man riding a wave on a board\nthe young man is set to snowboard at this skiing location. \nA truck parked near a tall pile of hay\nA man and woman sitting on top of a boat.\nA plate topped with broccoli chicken covered in sauce.\nA man riding a skateboard down a brick sidewalk.\nThree giraffes grazing from a bush over a fence.\nA  young woman holding a giant tennis racquet \nThe surfer is attempting to ride the wave.\na bunch of people on a beach with a freez be\nAn advertisement from A Christmas Wonderland store with several GE products.\nthe man is sitting with a salad in front of him and smiling. \nA man driving a small boat with a dog sitting on it's front end.\nA motorcycle parked next to a black truck.\nA black and white cat eating out of a white coffee cup.\nThree with colored birds standing on a wet surface, each bird standing on one leg.\nA large sandwich filled with sausages on a tray.\nA train with people sitting on it traveling through a countryside.\nA dog catching a yellow frisbee in it's mouth.\nA group of people stand next to a baby elephant.\nA steel toilet near a window in a very small bathroom.\nAn office cubicle with four different types of computers.\nA group of people sitting at a table holding different pizzas.\nmusic sheets in a binder sit on the table with scissors, tape, a pen and ruler \nSeparate pictures show noodles, rice and a meat dish.\nThe young woman is riding the dolphin in the water.\nA woman sitting on a bench holding a bag.\nA very tall building with a plaque hanging off of it's side.\nA cat standing on top of a car trunk next to a parked motorcycle.\nA person pushing a cart with luggage on it.\nA group of people are sitting at a table with bowls and wine glasses.\na hot dog in a bun covered with mustard sitting in a small container\na stainless steel fridge with a small display sitting in the corner of the kitchen\nA double decker bus and two cars on a street at night.\nA woman prepares to release her bowling ball. \na pair of scissors sits next to some other supplies \nA flock of white sheep in a green field.\nA bike is shown attached to a rack.\nA man riding a skateboard near a ramp.\nA horse-drawn carriage moves past a historical building.\nA herd of cows near a large building.\nA pretty young lady holding a tooth brush in her mouth.\nThe street is empty and a bunch of signs have been knocked down.\nA yellow train traveling down tracks next to a train station.\nA plate with meat, broccoli, and noodles is sitting on a table.\nA little boy brushes his teeth and looks at the camera. \na small child laying in bed playing nintendo wii\nA messy and unmade bed and a red chair\nA pizza sitting on top of a pan in an oven.\nA fire hydrant that is sitting on the sidewalk.\nA panoramic shot of several people standing near a plane.\nTwo signs are shown up above a street.\nA person doing a trick on a snowboard off of a hill.\nA yellow and white cat sitting next to a book on a bed.\nTwo stuffed animals sitting on top of each other near a wall\nA towel that is on a rack in a bathroom.\nComputer desk with destop and open mac laptop\nA kitchen with a washer sitting next to a metal sink.\nA baseball player standing on  home plate holding a bat.\nThere is a group of four men sitting on park benches.\nA man flying through the air while riding a bike.\nA person offering a donut to a cat.\nThere are four cows eating grass in a field\nThere are four sheep in the grassy field. \nA teddy bear lying on the ground by some leaves.\nA pizza that is sitting on a table.\nSeparate men sitting on park benches playing on phone and reading.\nA man on a skateboard jumps over a ramp.\nA half eaten banana being held by a human hand.\nA building with large windows sitting inside of a building.\nPeople standing in front of a large sign in front of a building. \nAn urban street with a streetlight, one way sign, and people walking.\nA group of people playing frisbee against each other.\nPeople holding umbrellas with a blue light in back.\nA man is riding his skateboard down the road.\nA kid on a skateboard on the street.\nA large clock on the side of a building above cars on the street.\nA group of people standing on top of a field flying kites.\nThree men all walking in the middle of the road .\nThree zebras in a green field grazing next to a tree.\nThe young child is wearing a tie and smiling\nPeople are sitting at a counter in a busy restaurant.\nA smart phone being held up in front of a lap top.\nElderly man examines fruit on display in a store.\nEmpty stage set of a modern suburban kitchen\nA baseball player holding a bat while standing in a field.\nA person holds a robot in front of a ball near a goal.\nThe toy motorcycle sitting up like it is parked.\nA blue bird is sitting on a wooden post.\nA large boat in a harbor with a bridge behind it.\nA young girl riding skis on top of a snow covered ground.\nA beautiful young woman bending over while holding a back cat.\nSomeone riding on an elephant in a wooded area.\nA Philly steak sandwich with sliced beef, onions, and cheese on a bun.\ntwo couples having pizza and soda at a small resturant\nA man surfing on a surf board in the ocean.\nA pot holds several large purple flowers, and a smaller group of yellow ones.\nA table full of trophies and cell phones \nA man pointing to a baby's picture on a bulletin board. \nA dog is catching a Frisbee at the dog show \nA woman riding on the back of a brown horse over an obstacle.\nA small red fire hydrant in grassy field.\nA crowd of people walking along a river next to street lights.\nthere is a chocolate cake and ice cream on a plate\nA dining table with a buffet table, book shelves and a wall clock.\nA group of people standing around an airport.\nA group of people sitting around a dinner table.\nA table topped with a colorful table cloth with food on top of it.\nThe surfboards are standing upright and are held in place by a rope. \nBlue dust pan and brush on floor next to white commode.\nGiraffes are walking together on a very dry terrain.\nA black and white picture of a bird flying over a ocean\nA bunch of computer equipment and cables all tangled together.\nThe stop sign is visible for everyone to see.\nA car is stopped for a red light at an intersection. \nA street sign that reads \"FRIZERIE\" in front of a red building.\nA pile of black luggage sitting inside of a room.\nTwo sheep grazing in a green field with trees in the background.\nLondon is visible on a foggy day. \nAn old woman holding a smart phone while wearing a green jacket.\nThe meal of fish has a side of broccoli. \nA group of people walking on street with suitcases.\nThere are people standing on a red double decker bus.\nA horse standing in a lush green grass field.\na person riding a skate board on a wave\nA baby giraffe being licked by a big giraffe.\nTwo men and a woman that are enjoying themselves. \nA brow bear walking next to a large rock in a field.\nA man is shaving while looking in a mirror of a cluttered bathroom.\nA man sitting in a chair playing a guitar in front of a microphone.\nA white toilet sitting on the floor next to a tiled wall.\nA beautiful young woman holding a tennis racquet on a tennis court.\nA breakfast plate includes fried hotdogs, eggs, cheese on bread and a scoop of potato.\na cat lays down on a stuffed animal\nA woman petting a giraffe that's leaning over a rail.\nA plate of bananas and sliced oranges covered in butterflies.\nA yellow teddy bear in red clothes appears to be hugging a bottle.\nA stuffed bear and a doll on a bed.\nPhoto taken in a car of the television on the roof.\nA crowd of people with umbrellas on a street.\nA boy tries a bicycle in front of a display stand.\nsome people are playing video games in a living room\nA long train comes down the tracks through the city.\nA group of cows are grazing on the grass.\nA baseball player holding a bat next to home plate.\nA women who is standing on a tennis court.\nA cat stares forward over the corner of a keyboard.\nA person skate boarding on the top of a half pipe.\n2 motorcycles stand next to each other on the street.\nA yellow and black train sitting next to a loading platform.\nA baseball game in progress, photographed through a fence.\nA man with a hat on is sitting at a table waiting to eat.\nA white sink in a corner underneath a small mirror and light.\nA street sign surrounded by orange and red leaves\nA woman preparing food inside of a kitchen.\nA surfer stands out in the shallow ocean waters.\nA man pitching a baseball on top of a field.\nA bus stopped on the side of the road while people board it.\nA wooden swings hangs in a park next to a river.\nA person with a cell phone and a umbrella.\nA man wearing a coat standing in a field using his smart phone.\nA baseball player standing in a field on a baseball field.\nA frozen pizza is coming out of an oven.\nA park with many trees and benches at night. \na group of young people playing soccer in a field\nA laptop sitting on someones bed next to a suit case .\nA man holding a tennis racquet on a tennis court.\nA herd of animals walking along a lush green field.\nA bathroom with walk-in shower, deep tub and sink overlooks other townhouses\nA COUPLE OF PEOPLE AT A TABLE NEAR A POOL OUTSIDE ON THEIR PHONES\nA man standing on a tennis court near a large net.\nA passenger train parked at the train station.\nmale skier sliding down a cold snowy hill surrounded by evergreen trees\nA very modern hotel bedroom holds a large, white bed. \nSeveral green buses parked in a parking lot with people walking by\nA young boy gets ready to hit a baseball.\nA clean bathroom is seen in this image.\na kitchen with a brown oven and wooden cabinetry\nA donut on a plate with a fork and knife.\nVarious bowls with food in them sit on the counter.\nA ram sitting on top of a hill in the day.\nThis train car features a variety of colors and carries passengers.\nFour people on skis posing for the picture in snow \nA blue van passes by a cement wall with graffiti.\nA bus stop and bench  on a street corner.\nA vintage airplane with a nazi sign on the tail.\nA sink, soap, toilet and a mirror \nEight busses are parked in front of a field.\nA view of an empty city street at night\nA man standing next to a truck near a forest hillside.\nA living room filled with furniture and large persian rug.\nthere are many trucks that are going down the freeway\nA nice living room with a television is pictured.\na man is preparing to pitch the baseball ball.\nBenches of fruit on display at a market\nA little league baseball player hits a ball.\nA large white dead polar bear on display in a museum.\nA cattle runs across the grassy field in the day.\nTwo people stand near a bike wearing helmets.\nA guy rides a bike in a race and has fun\nA street light at an intersection in a small town.\na street sign attached to a wooden pole\nThree cows are standing on the pavement next to a gate with three structures in the background.\nThe windows of a railroad train photographed against a cloudy background.\nA yellow fire hydrant sitting on green grass wearing a white hat.\nA lady on a tennis court swinging her racket.\na man sitting in front of a computer holding a camera wearing headphones\nA commercial airplane ascending in to the sky\nA man who is eating a pizza and looking out a window.\na woman standing by the road while talking on a cell phone \nA small vanilla birthday cake topped with strawberries.\nA little boy is hitting a tee ball from a tee ball stand.\nA view from a window high up in the sky.\nA bed, a table, a chair, a TV and a bean bag in a room.\nA woman in a wet suit riding her surf board.\nA group of women sitting around a table with a pizza on a  pan.\nA glass bowl filled with oranges on a table.\nA couple of animals that are in the grass.\nThe tray on the bed has a pastry and two mugs on it.\nA group of zebras that are in the grass.\na woman is standing in the snow on skies\nSomeone going down a hill on ski's .\nA skateboarder performing a trick on an indoor ramp.\nGiraffe grazing on a lush green grass covered field.\nA person wearing a stocking cap brushing their teeth \nSkateboarder in white t-shirt stopping in the road to adjust eyeglasses.\nA single banana is on a white table.\nA hall way with family photos on the wall leading to a kitchen and dining area with wood floors.\nA wooden table topped with a pizza and a glass of beer.\nA donut covered in white frosting and lots of sprinkles.\nA group of sheep graze in a grassy field.\nA blue and white train engine pulling lots of brown train cars through a rural area.\nThe baseball player is waiting to swing the bat.\nA man riding a skateboard next to a yellow building.\nA stone tower with a clock and a flag on it\nA tall giraffe walking through lush green forest.\nsome people walking trees and many hanging umbrellas\na man on a three wheeler following behind a two dogs and a cow\nA man holding a baseball bat on a field.\nA small room has a bed and desk with a laptop.\nA crowd of people standing on a field flying kites.\nA clean bathroom is seen in this image.\nA sign up on a post at an intersection in a city.\nA kitchen filled with black appliances and lots of counter top space.\nA person standing on skis in the snow in front of a hut. \nA bride and a groom cutting a slice of wedding cake at a reception.\nA small child that is holding a toothbrush and brushing their teeth.\nA baseball pitcher on the mound throwing a pitch.\nA bench that sits in the grass with rocks cemented to the ground\nMany boats are docked at the harbor of a large city.\nA cake sitting on top of a pan on a table.\nShe didn't expect that there would be this many birds to feed.\nA large jetliner sitting on top of a tarmac.\nA man crouched down with a camera next to a small white horse \na young boy standing next to a sink dressed like a pirate\na person that is holding a umbrella \nA view of a traffic street filled with cars and motorcycles. \nMan sitting in snow with snowboard attached to shoes. \nA person holding a custard filled donut on a piece of tissue paper.\nThe bed covered in many sheets and blankets is the only furniture in the room.\nMale surfer in wet suit, just thrown off surfboard at the peak of a wave.\nA professional tennis match from very high up in the stands\nThe furry animal with long claws is covering its eye with its paw.\nA bed in a ten with a colorful ceiling.\nvarious items from the bag are on the table\nA man in a wetsuit on the beach with a white surfboard.\nA man enjoying a glass of wine with his Italian dinner.\nA man sitting at a table with a pizza on a cutting board.\nA close-up of a toilet with a pink stuffed bunny inside.\nA man is selling bananas outside in a lot.\nA man sits with a traditionally decorated cow\nA living room with a large fireplace and potted plants sitting on it's mantle.\nA smiling woman is riding a large elephant.\nThere are many bananas on a counter at a market\nA person on a surfboard in the water.\nFull grown cat laying down and sleeping on top of a car. \nA green motel sign hanging from a fake cactus.\na fire hyrdant sitting on the sidewalk next to the road \nA toilet and a computer monitor on the ground.\nA man standing on a tennis court waves to someone. \nAn up close picture of a computer mouse on a  desk\nA woman on a tennis court with a racquet.\nSome people are sitting on a car that's been wrapped in plastic\nThree pictures of vases set up differently in a corner. \nA red stop sign sitting on the side of a road.\nA couple of zebra standing next to each other.\ntwo zebras some brown and green plants and trees\nA couple of cows standing on top of a dirt ground.\nA series of photos showing a banana holder.\na group of people that are taking a picture\nA group of monks standing on a street holding an umbrella.\nOne lady is holding a stuffed rooster and smiling while the other is holding a donut in front of her open mouth.\nA man in a gray suit and a red tie.\nA man working on an intricate task while on a canoe in an everglade.\nA man swinging a tennis racquet at a tennis court.\nA woman sitting with a boy cutting a cake. \nA cat sits next to what appears to be a pumpkin.\nAn athletic person playing tennis in the sun.\nRacks of assorted food at a fruit stand\na women that has a umbrella in her hand\nA tour bus downtown with yoga ads all over it.\nA giraffe looking for food between large rocks.\nNight scene with clock tower and buildings with lights\nA couple of cars and some watermelons on a street..\nAn elephant is walking around his exhibit at the zoo\nA black and white dog laying on a blue chair next to bags of presents.\nA messy living room and kitchen area of an efficiency apartment.\nAn outdoor area with a large bear and two smaller bears facing the wooded tree area.\nA woman holding a kite in her hands in front of a woman tying her shoes.\nA bathroom filled with a messy toilet and a sink.\nA toilet sitting in a stall next to a toiler paper roller.\nA white dog sitting inside a red car next to a string of flowers hanging off the mirror.\nA woman holding a tennis racquet in her left hand.\nA black and white cat is sitting on the bathroom sink.\nA bunch of vehicles that are in the street.\nA baby brown bear standing on it's hind legs.\nThere is a elephant that is standing besides a lake or river\nA children's pig train travels down rail road tracks.\nA train engine traveling down train tracks through a countryside.\nAn elephant and a bunch of cattle at a watering hole. \na tennis player about to serve the ball\nThe left side of a white dog sitting on a couch.\nA statue-like replica of a rock, paper and scissors .\nAn alcove in a room containing a couch and lots of pillows.\nA man riding a skateboard in front of a street sign.\nA man on a skateboard is coming up a ramp.\nA little boy wearing a hat and leather boots.\nTwo small bears playing in the water together\nA skier navigates a turn on the course at the Olympic Games.\nA lady in a motel room is jumping onto a bed.\nthere is a large sign that says a street name on it\nA bed with several items of cloth arranged as hearts on top.\na couple of cats sit in front of a tub full of water \na person at an office supply store holding a pair of scissors\nA night time image of a very wide and crowded city street.\nA train traveling down a track past another train.\nGirl in black jacket holding up skis in front of a lodge.\nA woman holding a small girl with sun glasses on her head.\nA pizza sitting on top of a plate next to a foil bag of food.\nA plaque on the side of a stone bench.\nA pizza covered in cheese dripping down onto the bottom of an oven burning.\nA snowboarder is in the air against the blue sky.\nA man drinking a cup of coffee next to sandwich.\nA man driving a boat down a river next to shore.\nA picture of a plane taking off from miles away from the airport.\nthere is a man that is throwing a frisbee between his legs\nSeveral people with several pizza posing for the camera. \nA television screen is displayed in an empty bus.\na man that is swinging a baseball bat\nHere are motorcyclists parked outside a Polish gathering spot for women\nA man is standing in a bedroom with his shirt unbuttoned.  \nAn attic space serves as a small cozy bedroom with sloped ceilings.\nA female tennis player waits for the ball on a clay court.\nThree bowls filled with vegetables on top of a table.\nSo many stuffed animals and teddy bears in a room.\nA young girl eats a doughnut near another woman.\nMan wearing wetsuit walking with a blue surf board.\nA bathroom that has a sink with a glass bowl.\nA park filled with green grass and a tall leaf filled tree.\nA pile of luggage sitting behind a parked car.\nA kid on the ground with a remote control.\nA business man in a suit at a restaurant.\nThis is a colander with green apples in it.\nA bathroom with a lot of items near the sink and counter.\nA giraffe walking across a tall dry grass field.\nA small kitchen with black countertops and stainless steel appliances.\nmany cows laying on a field of green grass\na room showing a screen and a table \nA person in a red sweatshirt on a motorcycle\na man and a shorter child at a beach flying a kite\nA woman standing in a kitchen holding a jug of milk.\nTennis player and white outfit holding up a racket and a ball. \nA man pointing to something in the refrigerator\nTwo dogs walking down a street side by side.\nA bathroom with a toilet, sink and bathtub.\nA cat is sitting in front of a window.\nA cow with a blackened face and short horns looking down.\nStuffed bear with red bow sitting on white counter.\nA person with a remote and holding a dog\nFour people are sitting on the dock near boats. \nAn old rusty fire hydrant standing on a cracked sidewalk.\nGroup of white sheep walking in a field of grass together. \nA busy street is full of cars and a bus. \na desk with a keyboard, monitor and a laptop on the top\nA laptop computer on a desk with a wireless keyboard and mouse.\nThere are many little sandwiches on the plate.\nA bronze statue holding an open black umbrella.\nA small child standing next to a train at a station.\nA guy standing next to a skateboard on a hillside.\nA small toy train on a model track.\nPeople and their children are gathered outside meeting together.\nA park bench surrounded by a green forest of trees.\na person riding skis on a snowy slope \nA green truck with a crane on it's back next to a emergency worker.\nA person riding a snowboard down a hill.\nA baseball sitting in a baseball mitt on a blanket\nA woman in her underwear riding on top of a paddle boat.\nA living room with the tv on and a wheel on the wall.\nA black toilet sitting next to a white bath tub.\nA man sitting on a bench holding a blue umbrella with black dots.\nA street with people and cows walking down it.\nA large dog sitting in a  chair next to a glass top table.\nA larger dog and a smaller dog play with a frisbee.\nA group of young men playing a game of soccer.\nA person playing the Nintendo Wii in their messy living room\nSome people playing basket ball wearing green uniforms.\nA man secures a saddle on a horse that a girl is sitting on.\na person standing on a beach flying a kite\nA boy raising his arm with a video game controller.\nA cat laying in bed under a blue blanket.\nA large bedroom with big windows and a patio.\nA baseball player holding a bat over a base.\nA restroom with a toilet basin, toilet paper and a mirror\nA group of people walking down a small road under a large white tree.\nBearded man brushing his teeth in a bathroom.\nA workspace inside an office with snowy trees outside the window.\nA group of people sitting on a train with lots of luggage.\nA snowboarder is in the air while people watch.\nA man wearing orange swinging a bat in the snow.\nA spoon, a large carrot, a medium carrot and a small carrot, on blue-green speckled surface\nA group of people sitting on motor bikes on a street.\na bathroom with a toilet and a bath tub\nA woman holding a tennis racquet on top of a court.\nA girl sitting at a desk eating something in a bowl.\nMen are gathered at a table to eat a meal.\nBlack and White picture of figurines around a vase with flowers\nMan flying on a parasail over the ocean.\nA clock tower stands stately in an afternoon sky\na baseball player swinging a baseball bat at a ball\nDoorway view of a bathroom with sink, toilet and bidet. \nA jetliner taking off from an airport runway.\na few suitcases for sale in a second hand shop\nFresh, cut up broccoli draining in a colander.\nA man flying through the air while riding skis.\nAn adult zebra stands with its young in a field.\nA couple of long horn sheep standing next to trees.\nA picture of a boy looking into a pot. \nA herd of elephants walks through a clearing. \nImage of a living room showing couches facing each other.\nA group of people sitting and eating together.\nA row of refrigerators filled with a variety of beers.\nA man is laying down wearing a suit and sunglasses.\nThe silhouette of people is seen against the inside of an outside large clock.\nAn empty narrow bathroom with the sink outside of the door.\nA group of horses standing around in a field, grazing.\nTwo young boys on horses wearing pith helmets. \nA cat sitting on top of an old abandoned car. \nTwo women in pink and yellow dresses holding a tennis racket.\nA parking meter sitting on the side of a sidewalk.\nOld motor bike sitting on display in a museum. \nThis is a photograph of several boy scouts waiting in an airport lobby. A couple are sleeping and a couple are on their phones. \nA young boy holding a baseball bat next to a green field.\na man holding onto a some wires while skiin \nA cardboard cutout of two boys kicking a soccer ball\na closeup of a boy at a beach who is about to throw a frisbee\nA plate filled with a salad and a bowl of scrambled eggs.\nA young woman standing next to another young woman.\nA single giraffe feeding on some thin tree branches.\nA man is riding a motorcycle in a race.\nA woman decorating a double layer cake on a table.\nA skateboarder leaps low above his board in a concrete area. \nA couple of black bears standing next to two trees.\nA bathroom has a self standing sink on the wall.\nA surfer is catching a wave in the ocean.\nTop view of a green train on railroad tracks.\nA woman is on a surf board surfing a wave. \nThree clocks are displaying times from different time zones.\nA giraffe standing next to another animal in a field.\nA surfer, surfboard under his arm, near a no swimming sign on a beach.\nCat with a light colored bowtie lying on floor.\nAn older bald man in a striped suit.\nAn airplane flying in the sky above a mountain.\nA bell pepper sitting on top of a blue cutting board.\ncloseup of a white horse with someone riding it\nA white truck parked on the beach with its door open \nA piece of luggage sitting on a floor next to a wall.\nA man holding a microphone while sitting down.\nThere is a stop sign outside of a bus window.\nTwo stuffed animals are cutting bread and spreading jelly on it.\nA Frito Lay delivery van parked outside in a parking lot.\nA man is in the kitchen in front of a sink.\nA full view of a bathroom with the shower and sink. \nA parade of circus elephants lead by an SUV.\nA train engine parked under a passage way on some tracks.\nA tall green and yellow double decker bus traveling down a street.\nA group of people sitting in a room on top of a rug.\nA woman stands wearing a black and white coat over a dark vest, orange shirt and pink tie. \nTwo brown horses standing next to a white horse on a snow covered field.\nA couple of young hot women standing on a wave covered beach.\nA school bus covered in art and a sign.\nTwo red benches sitting in front of windows.\nTwo guys standing around with the same colored tie on. \nTwo books are stacked on a small counter. \nA newspaper called The Queenslander with a holiday dinner scene on it.\nA zebra is standing on gravel, facing the camera,\nGet ready, get set for the baseball pitch on it's way.\nTwo persons with glasses skiing on snow covered mountain\nLiving room with furniture with garage door at one end.\nA woman sitting at a table in front of a multi layer cake.\nPeople ride an elephant through a path in the forest.\nA large brown bear laying on top of a giant rock.\nThe sandwich features a large portion of meat.\nI want the pizza that has extra cheese on it.\nA red stop sign sitting on the side of a street.\nA brown dog on a black couch with a laptop.\nTwo cats are lying next to each other with heads on a pillow. \nA desk with computers and monitors and books.\nA man walking behind a city bus next to a building.\nThree zebra standing on a road in a grassy field.\nA couple of elephants walking around a body of water.\nSome stacked with much heavenly sustenance primed to consume. \nTwo birds standing on a section of cobblestone.\nA view of a pizza from a table, with a man behind it.\nA herd of animals standing on top of a lush green field.\nA zebra standing on top of a pile of dirt and rocks.\na person sits at a table eating pizza\nAn airplane landing at a new airport. \nA cat is laying face down on the remote control. \nA horse drawn carriage is parked along the curb.\nA pizza that has been cut into slices.\nA man wearing a shirt and tie with long hair.\nAn old, burnt-out stove and oven on the street\nAn out house with the door opened sitting in a field.\nA clock sitting on top of a sidewalk.\nA teenager riding a skateboard on a half pipe.\nA red traffic light sitting next to tall buildings.\nEight different types and sizes of paira of scissors on a red table.\nA woman in a red dress playing a game of tennis.\na child on a raft with a paddle\nWoman proudly hod,ing expired vegetables in bag of plastic\nA team of skiers rides intently across the snow.\nA sandwich on top of a wooden table next to a bottle of beer.\nA train traveling down train tracks next to a small building.\nA white utility vehicle park next to black van\nA delicious gourmet berry desert dish with a scoop of ice cream, \nA cat sleeping in a person's lap; the cat is also on this person's laptop.\na ram is looking at the camera and standing on some grass\nA fire hydrant that has some writing on it.\nA baseball player pitching a baseball during a game.\nA white doughnut with colored sprinkles sitting on a table.\nA cat sitting on a window sill behind mini blinds.\na plate of food with vegetable and meat \nTwo hot dogs sitting on top of tissue paper.\nStuffed teddy bear next to a laptop computer.\nA cage packed full of yellow parakeets. \nCather preparing to catch ball in an empty field \nA close-up view of a green and yellow fire hydrant.\nLaptop sitting on top of the table inside an open room. \nman with long thick gray beard riding a motorcycle\nA white boat in the water cruising past a group of people. \nA bus parked on a street next to a tree.\nA couple of captive giraffes look around the ground in the zoo. \nPyramid of variable cupcakes on a decorated table.\nA woman standing next to another woman holding a bottle of beer.\nA yellow street light mounted to the top of a pole.\na van with the back open and appliances in the back \nA black and white photo of a teddy bear holding a cross.\nA white sink sitting under a bathroom window.\nThe cat is playing with the string of a video game remote. \nA couch sitting in front of a rub on a hard wood floor.\nTwo people skiing down a snow covered slope.\nA room with two beds and a nightstand.\na small chicken is standing by a bench\nA girl on a bed sits near the corner of the room.\nA bird that is sitting on a plate on a table.\ntwo children stand near various childrens toys in the background\nBench and window with shutters with bricked wall\nOld blue bus with bicycles parked on roadway near green space.\nA car is waiting beside people standing on the sidewalk.\nA skateboard on top of a surfboard on a beach.\nA group of people riding horses along the beach.\nA group of people sitting on a bench in front of a restaurant.\nBoxes filled with donuts sitting on top of a table.\nA car is parked next to an old fashioned parking meter.\nSome food that are in some bowls on a table.\na man with many plates filled with different colors of paint\nA classic car waiting at a 3-way stop sign.\nA woman and a dog sit on a city bench in this black and white photograph.\nA large elephant standing next to a small elephant.\nA row of ovens sitting inside of a warehouse.\nDonuts going through a machine to be glazed.\nA family playing at the beach with their baby\nGroup of young adults sitting in chairs while some hold wii remotes\nMany boats are docked across from a city.\nA man standing over plates of food under a cloudy sky.\nA large tower with a clock and a blue banner \nA dining room scene is shown with a table and chairs.\nA pair of umbrellas sitting on a beach near the ocean.\na man sits on a motor cycle next to a gas pump\nA close up of a bowl of fruit containing bananas and peaches on a decorative cloth.\nA man hitting a tennis ball with a tennis racquet.\nSeveral people are sitting at tables in a gym.\nA woman petting a cat, and other picture with a be prepared to stop sign.\nA person standing in front of a train holding a pair of skis.\nA woman sitting on a piece of luggage in a field.\nDeli sandwich with beverage on table at eatery.\nThere is a car on a street and some traffic lights.\nThe reflection of a woman  in a rear view mirror standing next to a bus taking a picture\nSmall girl reaching for her umbrella on a driveway.\nTwo girls sitting at a table smiling and eating and drinking. \nA BMW motorcycle parked on a brick street.\nA person holds a bag while walking on train tracks.\nIn this living room the television is on, a dog is sleeping on the floor, and snacks are on the coffee table.\nA group of people on skis stand on the snow.\na train on a train track at a train station\nA cat sitting on a toilet seat while the cover is up.\nTwo trucks are parked in front of a house.\nA white and brown dog laying on top of a wooden floor.\nThe person in the blue shirt has a plaid neck tie on. \nA speciality drink and roll prepared on a plate.\nA black cat laying on a white lap top.\nA man sitting on a green bench in the park\nA parked truck with an artistic design on its trailer.\nA woman is using a laptop on the couch as a black and white cat lays on the keyboard.\na clock attached to a the side of a building\nA man advises us to hush, about to scare his brother\nA dog that is standing on a frisbee.\nA guy jumping in the air on a skateboard. \na five layer cake made from different shapes\nA man with a tennis ball in one hand and a tennis racket in the other.\nA red and black smart car parked next to a parking meter.\nA young man with curly hair looking off to the side\nWhite plate with small pieces of a sandwich on it. \nA group of young men holding skateboards while talking.\nA group of trucks and cars parked in a parking lot.\na big red fire hydrant on the side of a building.\nA person pouring a glass of wine for a woman.\na large vase with large flowers near stone walls\nThis is an intersection sign between green lake drive and one other\nThree zebras in grassy area next to shrubbery.\nA woman standing next to a light pole by a street.\nA dog sits on grass next to a fire hydrant while a person holds a leash and a bag filled with dog poop\nA red fire hydrant sitting on the side of a road.\na baseball player swinging a bat at a ball\nA group of sheep standing next to each other on a field.\nA person riding a speed motorcycle on a track.\nA pair of red scissors on a white surface. \nthree zebras mill about in the grass of a wide open plain. \nPerson riding an elephant as it crosses through a river.\nA room illuminated  by a lamp and various toys and electronics strewn across the desk\nA black and white picture of a group of people.\nA person on skateboard skating on the pavement.\nA couple of men standing and sitting in front of a store.\nA baseball player is getting ready to hit a pitch. \nsome small boats in a body of water\nA white bus passing street next to a fence.\nA table topped with lots of different ingredients for food.\nA man riding skis down a snow covered mountain.\nan image of a toilet that is sitting outside\nA nice looking kitchen with a shiny metal oven and microwave.\nA man is sitting on the back of a truck with other objects.\nA jouster rides on a horse through a field while an audience watches.\nA herd of animals laying down in a lush green field.\na cow that is next to a motorcycle\na green sign on a pole with a street light\nAn old person is holding a tennis racket. \nA group of palm trees with lots of bananas hanging from them.\nA street sign with the name of two streets and a stop sign, and parked cars and buildings in the distance.\nA group of people walking next to stairs.\nLuggage sitting on a bed in a hotel room.\nA photo of a man standing on snow skis and holding snow skis\nA fire hydrant painted so that it has a face on it.\na man is flying a kite at on the shore at the beach\nA person stands with a tie and skirt on.\nA woman is taking a selfie in her bathroom mirror.\nA man and a woman behind the counter of a restaurant. \na man and woman in a canoe with a young child holding oars\nA man riding a wave on top of a surfboard.\nA living room with hard wood floors filled with furniture.\na person riding a motorcycle on a road \nA double red bus parked on a street.\nA row of red and blue luggage sitting at an airport.\nPeople petting and taking pictures of a cow behind a rock wall. \nA women holding up a very large pair of scissors .\nA picture of a young boy laying on top of a bed.\nA man smiling on skis in the snow.\nA puppy is looking at a paper bag in the kitchen.\nA double decker bus travelling on a city street.\nA woman standing in the sand with a kite.\nThree sheep standing inside a fenced in area.\na open kitchen with white color and wood\nA dog leaping outside to catch a frisbee.\nA set of four large orange sculptures in front of a building.\nA steak topped with an egg and peppers.\nA microwave with a stuffed animal inside reads 2:46. \nA living room filled with furniture with two paintings on the wall behind the couch.\nThe view of a crowd of shoppers and vendors at a market.\nA group of people in chef outfits at a kitchen counter.\na bed room with two bends and two lamps\na kid with two bananas on each side of his head\nA golden bus driving over a bridge spanning a river.\nZebras standing on a grass plain, with other animals in the background.\nTwo yellowish green vases sitting on a counter.\nAn individual is in the open view in the picture.  \nA man using a remote while two other people look on.\nA car, a moped, and a bike rider are stopped at an intersection.\nA person in a wet suit on a surfboard riding a wave.\nA very big bear in the water by a waterfall.\nA woman eating a half an orange slice.\nA black cat rubbing up against a bottle of wine.\nTwo black bears sitting in the dirt eating.\na person riding a motorcycle on an enclosed road\nA train pulls into a covered train stop where people wait.\nA man is sitting on a chair looking at a table.\nA pile of wooden boxes filled with fruits and vegetables.\nThe airplane in the sky is doing tricks while spitting out smoke. \nA group of four people standing next to each other.\na green train engine sitting at the end of the train and next to the buidling\nA skier on a downhill slope, with a ski resort in the distance.\nA picture of a teddy bear on a stone.\nA big dog sticking its head out a car window.\nTwo guys sit on a couch watching TV. \nA person on a snowboard in the snow.\nSeveral boats docked in a beautiful city harbor.\nA slice of pizza partially obscuring a cell phone.\nA beautiful kitchen with lots of windows and wooden cabinets. \na group of zebras all pile around a bunch of grass\nA street sign on a street corner outside of a building.\nA train traveling under a signal lights on top of tracks.\nA kid standing in the snow on skis.\nSeveral trams are parked with electric lines above them.\nA baby nursing from its mother in the grass.\nA bench with a bunch of stuffed animals and other items on it\nA child with a purple frisbee near large rocks.\nPeople are walking by a truck with an advertisement against the former president of Iran.\nTwo green shoes lined up on a bed.\nA LARGE CROWD OF PEOPLE ARE WATCHING A LADY PLAY TENNIS\nIt is a territory with numerous things to watch.  \nA surfer lying on his surfboard as a wave approaches from behind.\nAssorted food items displayed on light blue plates.\na person riding on a snow mobile \nA messy home office space with no one working.\nA red stop sign with a white street sign posted under it.\nThe young baseball batter prepares to take a swing.\nA plate with two hot dogs and a cup of coke on a table next to a bike.\nA man in a black jacket holds a toothbrush in his mouth as he stands near a woman with her eyes closed.\nA parking meter for bikes on the curb side.\nA boy in birthday hat holding a tennis racket.\nA group of people standing on top of a sandy beach.\nA fleet of boats beached behind of group of people fishing.\na female in a white dress is playing tennis\nA cat is looking into a Christmas cup on a counter.\nA flock of sheep grazing in a field of grass.\nTwo small birds on a plate which is sitting on the floor.\nA man riding a snowboard through a snow covered forest.\nA baseball player holding a bat standing on a field.\nAn individual with a red tie sitting next to a dog.\na bench with a bottle of water with a luggage bag near by\na woman holding an umbrella walking down a wet sidewalk\nA plate of food that includes rice and various vegetables.\nA screen is mounted on a wall over two chairs.\nA river boat pulled up at a harbor\nA cow that is leaning under a metal wall.\nAn individual is in the open view in the picture.  \nA dog jumping up into the air to catch a blue frisbee.\nA blacn and white cow sticking its head over a fence.\nA flock of ducks swimming on a lake together.\nTeddy bears dressed as bride and groom are seated at a table.\nAdult man on grassy field playing disc game.\nA zebra displays its rear end and turns its head.\nA neat yellow bed in a room with white and blue walls.\nA photo with many buildings off of a street with trucks parked in front.\nA man reaching for a soccer ball on a soccer field.\nA small herd of elephants are standing around each other.\nA man catching a frisbee while standing in a park.\nA man is holding a sandwich while sitting at a dinner table.\nLegs with striped black socks, black shoes and a red and white Pokka dot umbrella on the floor.\nA library bus outside of an apartment building\nA display of produce, root vegetables and a cookbook.\nA dog with white and black hair catching a frisbee\nA clock that is on the side of a building.\nA tall clock tower with a wind vane on top.\nA girl and a boy smile at each other.\na very large building that has a clock at the top\nA hot dog and a pickle on a tray.\nPerson on snowboard jumping in air with mountains in the background.\nA man holding a white frisbee walking on top of a green grass covered field.\nFour photographs of Tex-Mex Squash Casserole are displayed.\nStreet Lights and a clock light up the night sky.\nTHERE IS AN IMAGE OF A BUILDING ON THE GRASS \ntwo huge elephant with tusks hidden among the trees\nMany umbrellas are hanging from the ceiling in the umbrella shop.\nTwo young men are playing Wii soccer together.\nA tennis player prepares to react during a match.\nA woman handling some food by the oven\nA table topped with pieces of cloth and large piece of paper.\nA man that is sitting down in a fruit stand.\nA train traveling down tracks next to a  brick building.\nThree men sitting on motorcycles on a sidewalk.\nA woman is in a bedroom holding a wine glass.\nA woman with a braid holds her dog in her lap.\nA skateboarder performs a stunt jump off a concrete structure. \nA man and woman in wedding attire smile.\nA polar bear keeping cool in the water.\na person that is eating little hamburgers by a computer\nA young girl standing on a red carpet with her leg up in the air.\nA polar bear is standing on hind legs near another sitting polar bear.\nA man standing on a tennis court holding a racquet.\nA very cute cat looking at a bird by a bike tire.\na large bear is standing over by the rocks\nA young man standing in front of a luggage carousel at an airport.\nA group of giraffe standing next to each other\ntwo young boys are enjoying pizza and pepsi\nA couple of people standing on a beach holding surfboards.\nA man with a beard standing next to a man with a tooth brush.\nAn end sign on a hill with several umbrella structures. \nPeople crossing the street at a busy intersection\nA snowboader falling face first into the snow.\nA man wearing a tie next to a woman.\na bunch of people are walking around outside\nA sign is displayed next to piles of sand.\nA man in white shorts standing next to a yellow frisbee.\nThe horses are out for a walk on the road.\nA young Asian girl has an umbrella to protect her from the rain.\nAn extremely focused man playing with the Wii.\nA road filled with snow and traffic lights.\nThree zebras standing next to each other in a meadow with other zebras visible behind them\nA young man is surfing on an ocean wave.\nA box of wrapped apples on a table.\nA wall that is filled with some cool items.\nA living room with a dining room area off of it.\nA fire hydrant is standing in the middle of a parking lot.\nA close up of two birds on a tray with bananas peels.\nan open suitcase is filled with clothes and other items\nA duck floating on a lake with gray and black feathers.\nA bathroom with two urinals and a sink.\nA very formally styled wedding cake, decorated in white icing and adorned with green ribbons and pink flowers. \nA few cars waiting for their turn to drive around the corner.\nA red VW bus parked on the side of a road.\nA young man wearing a red shirt riding a black skateboard.\nA brown sheep standing in front of a pile of rock.\nA black cat is scared by a large dog.\nA cake inside of a pan sitting in an oven.\nA counter topped with containers of foods and a roll.\nA white bus parked next to a sidewalk near a fence.\nA left handed baseball player swinging a bat in front of a catcher and umpire.\nA bench sits all alone on a beach looking at the magnificent ocean view.\nAn emo girl holding a smart phone with a shaved head.\nTwo motorcycles parked on the side of the road.\nSeveral large bulls standing around in a grassy field in front of a farm plantation.\nA person resting their head on a pillow next to an airplane window.\nA man standing on a  tennis court holding a racquet.\nA lot of flowers that are on a table.\nA pizza with fresh basil served on a board\nLines of fruits, vegetables, and grains on a white surface.\nA bedroom with a bed that is not made up.\na teddy bear has a tag around his neck \nSome people that are picking out from a large variety of doughnuts.\nA couch, chair, dining room table and television sitting in a room.\nThe reflection of a man taking  a picture in a mirror\nA man holding up holding an object inside of a plastic case.\nThe bathroom is clean and ready to use.\nTwo dogs pulling on the same play toy in a park\nTwo zebras are grazing next to each other near a fence.\nA man in a black wetsuit riding on a surfboard.\nThe stop sign with an apartment building in the backgroundis shot from below.\nA man carrying a sign walking past buses.\na man holding some kind of phone hin his hand\nA little baby sheep is standing next to a large brown sheep.\nA person on a skateboard does an air trick.\nA sleek bedroom has gray walls and a white and orange bed.\nTwo giraffe snuggling each other's neck on a field.\nSkateboarder performing trick on cement with audience in daylight\nA cat facing away from the camera, among blankets on a bed.\nA person with an umbrella near a building.\nA man in a yellow shirt and grey shorts playing tennis.\nA man standing next to a table holding a glass of wine.\none zebra laying down in the dirt outside\na lot of buckets of fruits including red and green apples\nA bag of luggage sitting on top of a wet sidewalk.\na close up of a stuffed animal on the ground\nClear blue sky's with a plane flying by.\nA view of a beach that has some people sitting on it.\nA group of three zebra standing next to a tree.\nA basket filled with food and a cup of salsa.\nA tall building with a large clock mounted to it's side.\nA marine filled with lots of white boats parked next to each other.\nA couple snugging together on a wooden bench.\nSheep are gathered around a lone tree on the hill\nAn old toilet with a hello kitty cover top. \nThe black and white toilet is opened in the narrow bathroom.\nA dome towers above other buildings with an ornate gold statue\nA faux fire place that has yet to be fully assembled.\nA man flying through the air while riding a skateboard.\nA city street line with brick buildings and trees.\nA woman in yellow shirt and white shorts holding a pole.\na man with a hat throwing a baseball\nA woman holding a vintage teddy bear in her hands.\nA donut that has powdered sugar and chocolate filling.\nGroup of giraffes standing in a field eating and lounging. \nA plate topped with meat, potatoes and broccoli.\nHalf of a white cake with coconuts on top.\nBatter, catcher, and umpire anticipating the next pitch.\nPelicans and sea gulls are sitting on the beach.\nWe see an arrangement of peach flowers in an earth tone vase.\nA large clock tower with multiple clocks on it's face.\nSome asian cuisine is shown with vegetables and noodles.\nA tennis player serving a ball on a court and a separate image of his sneakers and uniform.\nGroup of people standing on a Snowmountain with skis on. \nFood sitting on a table in yellow containers.\nA young man holding a plate of food while sitting on a couch\nthis is a man talking wearing a suit\nA green truck that is parked on some grass.\nA herd of sheep grazing in a snow covered field.\nTwo trains passing by each other during the day time. \na man sits on a toilet as he plays on a computer \na bunch of food is layed out next to an oven\nYoung boys sitting enthused at front in class picture.\na woman on a tennis court playing tennis \nOrange streetcar stopped at a pick up point along a line.\na man in a tie stands next to a sink \nMany book bags are on the bed with folded cords, and clothes. \nA pizza and coffee on a tray of some sort.\nA person and a kid on top of a refrigerator\nmany kites flying high in the sky near buildings\nA small child is holding a baseball bat.\nA man is distantly riding the waves on his surf board. \na opened book and half of a mask sit on a floor\nA skateboarder doing a trick in the air.\nA group of three buses driving down a highway.\nA photo collage of a girl hitting a tennis ball and looking over a hedge and a woman hitting a tennis ball.\nOutside a window of an old large house\nA tour bus with a cats face painted on the front of it\nTwo sheep standing in a sunny green  field\nA red and white bicycle next to a building and door.\nA couple of people standing next to a food cart filled with smoke.\nTwo small children in a double stroller looking at each other.\na city bus sits parked as people walk by it\nTwo guys walking as look at their cellphones.\na bear that is standing in a pond\nA group of young people riding motorcycles near a river.\nA beautiful young woman sitting at a table with a plate of food.\nA red chair in a room next to a wooden table.\nMorning breakfast sits on the comforter of a pretty country bedroom.\nA brown bear in a pond pokes its head up.\nAn orange-and-black cat wearing a tiny black hat.\nA man sitting on a tennis court wearing a green backwards hat.\nA street scene with a double-decker bus on the side of the road.\nA man lying on a coach in the living room.\na yellow pole that has a meter on top of it\nA silver and gray parking meter sitting by a tree.\nA table that has a large assortment of snacks.\nTwo men are playing a video game as another sits watching.\npeople that have their face painted holding a cell phone\nThe bear is inside of the river stream. \nA bicycle replica with a clock as the front wheel.\nA sidewalk with sandwich board, table and umbrella.\nA man on a cell phone in a public area holding his thumb up.\nSkier poses in front of a scenic mountain view.\nA brown bear licking the ear of another brown bear.\nA display at a grocery store filled with fruits and vegetables.\nA girl in a dress and shirt standing in a field.\na person is skiing and flipping on a mountain\n Quaint kitchen with a wooden dining table \nA very tall white clock tower towering over a lake.\nA man throwing a frisbee in a park \nA circular green and white sign that reads \"car parking\" in front of cows.\nA person walking across a beach holding a surfboard.\nTwo people stand by a giraffe enclosure and look at a giraffe.\nA laptop computer on a white desk with various office work and two cups beside it. \nA white toilet seat in some lavatory somewhere.\nTwo young boys sitting on a park with a plate of food.\nA man in a mask holding a sign\nA living room filled with furniture and a bookshelf.\nA family standing next to each other wearing ski equipment.\nA bowl of berries sitting next to a bowl of salad.\nAn old brown building has a clock on it.\nA red stop sign sitting under a green street sign.\nA living room that has a lit lamp on the counter.\nTwo people standing on a tennis court playing tennis\nA colorful bus is parked on the street.\na tennis player wearing red and white swinging at the ball\nThere is a small cellphone displayed between a set of ear buds and two paper weights.\nA bike parked on a sidewalk near a street.\nThe people are flying kites near the water. \nA baseball player at home plate preparing to swing.\na batter swinging a bat at a ball at a baseball game\nA woman in black dress and cardigan taking photograph with her camera.\nA meal of french fries, salad, and meat is sitting on a table. \nA yellow and blue bus parked at the end of a street.\nA white stove top oven sitting next to a refrigerator.\na man that is standing on a snowy field\nA man posing while holding food items in each hand.\na young female siting on a bench near a small stagnant lake\nPlayer at home plate preparing to bat during game.\nA boy is walking on a tennis court and is carrying a tennis racquet. \nAn old train moving on a train track.\nA woman is picking bananas from a basket.\nChildren playing in a soccer competition on a grass field.\nA man wearing a shirt holding a object in his right hand.\nA young man riding a skateboard on top of a skate park.\nRacers riding four wheelers while a crowd watches.\nA modern toilet is seen in this picture.\nA fire hydrant has been painted in the style of Dalmatian outside the fire department. \nA man that has a skateboard jumping in the air.\nA cell phone and book on a couch.\nA table topped with small and large metal bowls filled with veggies.\nA round bundt cake on a blue plate next to a can\nPeople sit around a table littered with plates of food.\nA family flying a kite at the beach.\nA blue, yellow and green surfboard sticking out of a sandy beach.\nA man holding a tennis racquet on a tennis court.\nA view of people riding bicycles and unicycles in the street from a front bus window.\nThe white polar bear is standing near a tree branch. \nA man and woman pose for a picture together\nA hazard sign on top of a crossing gate in front of a building.\nA kitchen complete with a microwave, sink, and dishwasher.\nA toasted sandwich on a square white plate.\nA wooden table topped with a bottle of alcohol and a glass.\nTHERE ARE TWO PEOPLE THAT ARE STANDING TOGETHER \nA man standing next to a few bags of luggage.\nTwo elephant walking, the one in the foreground kicking up a some dirt. \nTwo people served steak , potatoes, and green beans.\nAn amateur snowboarder attempting a small practice jump in his off time.\nSeveral airplanes sitting on the tarmac being unloaded.\nTwo brown bears embracing each other on top of a a dirt ground.\nA large air plane smoking and parked in the snow . \nA person holding up a phone in their left  hand.\nA vase with a painted of a man and a horse on the side of it.\nA young man playing on a laptop sitting in his lap.\na truck in the reflection on a car mirror \nA close up of a person's hand with a scissors cutting something wet.\nA man wearing sun glasses is wearing a suit and tie and holding two things in his hands.\nSomeone is standing in front of the tv playing the game\nA bathroom with his and her sinks and mirrors.\nA large boat filled with mean on wheels.\nZebras eating hay at a fenced wildlife habitat. \nShelves filled with fresh vegetables of every kind.\na bathroom with bright lights and white carpet \nA group of people standing around a white cake on a table.\nA red fire hydrant with a sticker of several animals on it\nA city bus is shown with a bike in front.\nTwo men riding motorcycles down a curvy road.\nA giraffe standing by itself in the sand.\nA man wearing plaid swim trunks surfs a big wave.\nA man wearing ties and rainbow sun glasses\na giraffe is looking over a fence at a man in sunglasses\nA man on a motorcycle waits at the traffic light\nA man with his dog out near a lake.\nA crowd of people standing on top of a beach.\nA grey cat laying down on a wooden desk.\nThe interior of a studio apartment decorated with various pieces of furniture.\nA tray with a cheese and meat sandwich with tater tots.\nA bike parked next to a wall next to a river.\nA cute kitten playing with strings on a shoe.\nA man holding a tennis racquet on a tennis court.\na couple of men are at a table with food\nA slicing up a cake on top of a table with a knife.\nA duck walking along a paved road next to a patch of grass.\ntwo trains sit motionless at a train depot\nA coffee pot filled with tea sitting in front of a toaster oven.\nA box of donuts with a bite missing out of one of them .\nA trolley drives down Main Street in Memphis, Tennessee.\nA couple of giraffe standing on top of a grass covered field.\nA half eaten donut on one plate a missing piece of cake on another plate.\nAn individual is in the open view in the image. \nThe large crowd stands on the beach underneath flying kites.\nA lady in a black and orange Halloween costume.\nA clock tower surrounded by blowing snow in a city.\nA long white red and blue bus driving down a street next to trees.\na number of people riding surf boards on a fake wave machine \nAdults enjoying time at sandy beach with sun and shade.\na man with white and blue on playing tennis\nA group of giraffes that are standing in the grass.\nAn old truck in the field near some building structures\nA person on a motor bike on a road.\nA table topped with plates of food and a glass of wine.\nthe boy has on black sneakers and his trying to grab the frisbee\nA man in a cat holding a green frisbee.  \nA pair of skiers on the top of a ski slope with clouds and large mountain in the background.\nMan and young boy on a couch in a living room. \nA bathroom with marble walls and counters surround a large mirror.\nA bright, building-lined river heavily populated with boats.\nA couple of friends playing video games together.\nA cat sitting behind storage containers and a computer.\nA plane floating on top of a lake surrounded by mountains.\nA woman wearing a net on her head holding a box in a kitchen. \nThe red plate holds rice, tofu, broccoli and water chestnuts.\nA boy attempting to mount an elephant in a wooded area.\nGroup of people walking on skis on a field of snow. \nA vase filled with lots of flowers on a table.\nA window above a wooden table with a vase containing a white flower.\nThe young pitcher is starting to throw a ball.\nA bowl filled with a cake topped with vegetables.\nThe large living room has been decorated in modern furnishings.\nA blurred cat sitting in front of a screen.\nA dog rests on a pillow on the ledge of a window.\nA bathroom with powers on a towel rack under a painting.\nA teddy bear is placed on a metallic sculpture.\nA woman uses a paintbrush on a melting candle.\nA motorcycle stopped on the road during nighttime in the city. \nA photograph of a kitchen inside a house.\nA man riding on the back of horses while standing.\nAthletes on field during sanctioned tournament at night.\nA person tends to stir fry in a kitchen while another person watches.\nA wine glass and bottle on a kitchen counter by a microwave.\nA stop sign sits at an empty intersection.\nA toddler is drinking from a bottle while sitting on a bed.\nA semi truck pulling a chain of three trailers.\nA MAN ON A SURF BOARD IN THE WATER WITH HILLS AND RV'S IN THE BACKGROUND\nA man riding a white surfboard on a wave in the ocean.\nA group of people walking on a street by some cars.\nThe vanity looks like it belongs in a Victorian house.\nA pair of remotes sitting on a leather cushion.\nA white plate with rice and vegetables with wooden chop sticks.\nA man talking on a cell phone on a boat with a city in the background.\nA group of people that are skiing down a mountain.\nA bear laying in a canvas type net\nA double decker bus sitting on the side of the road.\nSeveral people are sitting down eating eating a lunch.\na close up of a dog near a bowl\nA hotel room with two beds and a painting on the wall.\nA brown dog laying on top of a couch next to a brown teddy bear.\nGreen,orange,and red vegetables in bowls and bags. \nA computer component and a power strip sit on a desk.\nA woman and a dog stand on the ocean shore near some boats.\na couple of people that are jumping on a skateboard\nA nightstand with a couole phones and watches and clocks on it.\nA man skiing alone on a snow capped plains\nThe man in the business suit wears a striped blue and white tie.\nA slice of pizza that is on top of a napkin.\nA man attempts to ski in the few inches of snow left on the ground.\nSomeone putting a fork into food sitting on a towel.\nGrapes, kiwi, bananas and tangerines are sliced in a pile.\nA bunch of suitcases and bags by a wall.\nA herd of cattle sitting in front of a church with a steeple.\nVarious items used for cooking a recipe atop a clean table.\nA colorful checkered motorcycle parked along the street.\nA laptop computer sitting on a truck table.\nA woman lugging a bag of luggage down an alley behind her.\nA screen and some windows on a airplane.\nAssorted flavored donuts being grabbed by multiple hands.\nA man standing in front of a flat screen TV holding a Wii game controller.\nThe two urinals are on the wall with color tiles. \nA kitchen with built in microwave and dark wooden cabinets.\nA street light and other road signs. \nA stop sign with an \"eating animals\" sticker on it.\nA baseball player taking a swing at a ball\nA large elephant walking through a lush forest hillside.\nA girl chatting with a mother goat while her baby goat looks on.\na sign that is next to some trees\nA hand spraying water into a white toilet bowl.\nA person swinging a bat at home plate as player in bullpen look on. \nA man sitting on the beach with a dog holding a yellow frisbee.\nA woman is taking a bite of pizza.\na close up of two people wearing ties \nSix sheep stand close together near a grassy hill.\nA man riding a motorcycle with a woman on back of it.\nan elephant carrying some people on its back \nTHERE IS A MAN THAT IS PLAYING TENNIS ON THE COURT \nA couple of zebra standing on a lush green field.\nA very tall building with a pointing roof and a clock on the side of it.\na person jumping a snow board in the air\nMan blows out burning birthday candles which makes the flames higher.\nA train makes its way down a track next to an open field.\nA man wearing a red hat and a red neck tie.\nA young boy taking a swing at  a ball\nA baseball player swings his bat after a hit.\nA banana tree with an unripened clump of bananas hanging from a tree vine.\na little girl sitting in front of a cake plate.\nThe man is sitting on the bench close to the asian section.\nAn apple computer sitting on top of a wooden desk.\nA wooden table in a kitchen next to a refrigerator.\nA man holding a giant half a sandwich on top of a table.\nA city plaza with people walking through it.\nA house with a large hole in the side of it.\nA large elephant standing next to a stone wall.\nA light that is on a ceiling in a kitchen.\nA person in a field flying a parasail and having fun.\nThe man was sitting on a bench near the water.\nA polar bear relaxing in a pool of water.\nA large brown dog holding a neon frisbee in his mouth.\nA man standing in front of a mirror in front of two laptops.\ntwo women in swimsuits riding horses in the water\nA man riding on top of a snowboard in the snow.\nA man holding onto a bin full of lemons\nA giant elephant laying on top of a dirt ground.\nA powdered and glazed donut laid out to be eaten\nA baseball player is running to base while another player is running behind him.\nA living room filled with furniture and a entertainment center.\nlots of sheep grazing on a hillside, with people in background\na room showing a toilet and a sink\nSingle train parked at a train station on a clear day.\nTwo people on the ground with large balloons of an orange and white fish and a crab, floating in the sky.\nA baseball player wearing a catchers mitt on a field.\nA row of wooden surfboards sitting on a rack on the beach.\nRoom with a couch, tv, dining table surrounded by chairs and two doors \nA young girl smiling while holding up a  frisbee.\nA group of elephants bathing and playing in the water.\nA display of dolls and doll related items.\nA magenta toothbrush sits next to a pair of pliers.\nFlowers in a glass vase with traffic in the background .\na cat laying on part of a suitcase \nthree males are dishing out some pizza from a white plate\nA vegetarian pizza is half eaten on a pizza holder. \nTwo boats pulled up to the docks where there are people walking.\nA man grins while resting in legs on a kayak.\nTwo people standing on top of snow with skis. \nA lot of motorcycles parked next to each other.\nA group of people walking around a train station.\nA kitchen with tile back splash and stainless steel appliances.\nA couple of zebras are in a brushy field.\nA plate full of meat, vegetables and rice.\nA professional tennis player serving on a tennis court.\nHERD OF ELEPHANTS IN THE WILD GRAZING AMONG THE TREES\nA man holding a Nintendo Wii game controller.\nA young boy holding a baseball bat standing on a street.\nA teddy bear in jail clothes posed on top of a trash can.\nA Miami Air airplane flies against a blue sky.\nTwo young men playing a game of soccer.\nA room filled with a tub, sink and toilet.\nThere is a plate of mushroom pizza on a table.\nA man and a woman hold each other in this photograph\nA young man riding a skateboard along a dirt road.\nThree black bulls in a roadway at night.\nBus traveling down road with headlights on past cars parked on street\nTwo cellphones have cute homemade cellphone covers. \nA labrador dog holds a frisbee in its mouth.\nA white Samsung microwave oven installed into a natural wood kitchen cabinet.\nA soccer player from Chelsea is on the cover of Chelseafc.\nTwo children sit on a wooden bench in a forest.\nAn orange and white cat sitting on metal surface at night.\nFour surfers ride the waves in the ocean with other people visible further out to sea\nA group of stuffed animals sitting on top of a wall.\nA man walking down a street holding a red and gray bag.\nA man standing in front of a store window holding a phone.\nA man in black shorts with a yellow frisby.\nA parked motorcycle with a red enclosed side car.\nA woman skiing in the snow followed by more skiers.\nA church with a massively tall tower covered in a clock.\nA man holding a white game controller while standing next to a bed.\nA mother sheep and a baby sheep pictured here.\nTwo women play frisbee in a park. \nWoman in white shirt next to an elephant.\nObama speaking to a crowd of Obama supporters.\nA lone giraffe walking in an open field.\nA marina with boats docked and a city view\nA woman holds up a book as she attempts to read in bed.\nA man standing on top of a tennis court holding a racquet.\nPeople laying in chairs, walking, and playing in the water on the beach.\na person riding a motorcycle on a road with a hill in the background\nA billboard of two Zebras on a snowy mountain and a parking lot.\nA man prepares to serve a pizza topped with french fries. \nA plate that has different food on it.\nA large group of tall giraffe in a room.\nThe furniture in the living room is decorated with flowers.\nA black and white shot of people standing in the rain in front of a castle structure.\nA person with an umbrella walking down a rainy road.\nA tour bus is parked on the curb waiting\nA man standing in a kitchen next to a woman.\nA horse and colt in tall grass near a house.\nTwo giraffe standing next to each other in a zoo.\n a man standing next to a picture of a pizza in the oven \nHands typing on light colored electronic computer keyboard.\nA man riding on the back of a brown horse.\nA man is straightening his tie in front of a mirror.\na group of people that are standing up drinking something\nSmall kids playing baseball in uniforms on a sunny day.\nTwo Lego figures with the ghost holding an umbrella for Darth Vader\nSkier leaning in the direction of a flag going down a ski trail. \nA man standing on top of a boat next to a man in a straw hat.\nA plate of food and ketchup bottle are on a table.\na person in blue skies is skiing down a snowy hill\nA green and yellow truck is driving on the road.\nA photo of doughnuts being served on racks.\nA large number of people riding motorcycles down the road.\nVintage scout master sowing something to girl scouts.\na view of mountains from the window of a jet airplane\nA brown dog fighting over a deflated ball with a darker brown dog.\nA person in a vest stands next to a boat.\nSmall skateboarder taking a jump on top of his board. \nmany fire hydrants made to look like cartoon characters\nA computer mouse is sitting on top of a keyboard.\nA man flying through the air while riding a snowboard.\nA youn ggirl playing a game on the Nintendo Wii.\na group of people sitting together eating pizza\nA man wears a coat and holds tennis rackets in an historical photo.\nA man on the beach carrying a surfboard with a sail.\nTwo vases filled with water and lots of colorful flowers.\na man performs a trick on a skate board as people look on \nA person walking in the rain on the sidewalk. \nA star hangs upon a canopied bed in a bedroom.\nA crowd of people flying kites over a field.\nA group of cops riding on the backs of motorcycles.\nA small bird standing on top of a sandy beach.\nA young man with long red hair drinking from a glass.\nA man gets a French kiss from a giraffe \nthere is a glass of beer sitting next to a laptop\nA woman with a suitcase holding a phone\nA black and yellow train traveling down tracks.\nA guy making a small jump on a ski slope.\nA woman standing next to a white cow with long horns.\nA group of kids sitting at a wooden table around tree.\nA child sitting at a table of homemade donuts with bowls of frosting and a Crisco oil container.\na group of people and a car passing under a bridge\nA bird in a pot eating a fruit.\nA woman sitting in front of a laptop computer at a desk.\nA white and yellow train traveling through a rural country side.\nThere is a lot of food to be eaten on this plate.\nA meal of vegetables and seafood mixed together.\nTwo giraffes that are standing in the grass.\nLarge bed with white comforter, sheets, chair and tables.\nA small sandwich is sitting on the wrapper on the table.\nA light that is above a white sign.\nTwo women sit at a dinner table at a formal event\nA group at a set table enjoying a meal.\nA woman's foot in a ballet flat next to two pieces of luggage.\nA CGI man sitting on top of a CGI hospital bed.\na lady that is sitting by a table with a plate of food\nA very tall flat screen TV on top of a wooden stand.\nA boy in the air as he does a trick on a skateboard from a ramp.\nA man riding on top of a surfboard in the ocean.\nCloseup of a piece of cake and fork on a plate.\nA church with a large tower and clock.\nSeveral stuffed animals handing from a metal rail. \na dog sitting and looking in a mirror\nA boat floating in the middle of a small lake.\nAn older man carrying a plate of food and making a silly face. \nA large passenger jet flying through a gray sky.\nThe building stands tall against a clear blue sky.  \nThe pitcher throws the ball as the batter waits to swing while the catcher and umpire watch.\nA bad that is very white and clean in a room.\nA couple of red motorcycles parked in front of a building.\nA man is working at a desk on his laptop.\nA man sitting next to a boy on a couch holding a Wii game controller.\nA large giraffe sticking its head into a vehicle.\nA man sticking his tongue while wearing a pink sign around his neck.\nA small brown and white bulldog riding a skateboard.\nA person standing on a tennis court holding a racquet.\nA man sitting in front of a laptop computer in front of a library.\nTwo young children are playing a video game.\nThree coffee mugs are in front of a microwave.\nA large bird sits at the top of a tree. \nA grey and white bird in a swampy marsh.\nTwo couch cushions are supported by wooden frames\nA boat traverses the ocean in the midst of fog.\na batter that has just hit the ball\nGreen salad with broccoli and peas with fork and bowl\na kitchen table and countertop with backsplash behind it\nA treacherous road next to a rocky cliff is shown.\nA group of young men playing a game of frisbee in a park.\nA group of baseball players playing a game of baseball.\nA giraffe standing next to a tree and some rocks.\nA train pulling out of a train station next to train tracks.\nBlack and white photograph of a man sitting at a bench.\nA tasteful white and beige bathroom features and oval sink and large mirror.\nA small train ride carrying people around a park\nA close up of a dog eating something on its bed.\nTwo small dogs standing next to each other in a field.\nA kid sitting at a table with a metal plate filled with food.\nA large black cat sits on a desk near a laptop.\nA bathroom with blue and white tiles and a white toilet\nclock on the front of an old stone building\nA woman carrying a red piece of luggage next to a chair.\nA woman sitting on a train while holding a smart device.\nThree men standing on a mountain holding a snowboard.\nA train engine carrying carts down a track.\nA white dog laying on top of a Siamese cat on a stone wall.\nA two way street sign picture from a piece camera film\nA white plate with an egg, parsley, dates, and lettuce\na tub of apples and a box of bananas \nA woman in pajamas using her laptop on the stove top in the kitchen\nA blue plate with a pile of vegetables on a table.\nTwo women standing and playing video game near chair.\nA group of people sitting around a table.\nAn umbrella sitting under a bunch of palm trees.\nA man standing up while holding a red plastic cup and a large frisbee type disc in his hand, preparing to throw it.\na person cutting a pink cake with pink roses\nThe carrot cake is on a plate on the table\na man surrounded by some snow covered trees\nShelves are filled with parcels that have red ribbons.\nA train that is sitting on the tracks.\nThree look alike dogs are herding sheep into a pile.\nStreet signs are affixed to a utility pole.\nA bathroom with a white bath tub and a sink.\nA person walking along a dock holding an umbrella.\nA white toilet in a bathroom next to a white sink.\nA bird that is sitting on a branch.\nOld fashioned red fire truck parked by itself on a street.\nTwo birds sitting on a large rock next to a river.\nA man is flying a large kite in a field.\nA gray and white kitten sitting in a bathroom sink.\nA woman with large black tear drop earrings and a black dress looks at her cell phone. \nA person stirring a pot of stew with a wooden spoon.\nA man on a skateboard on a ledge.\nA statue of a man with a walking stick is draped with a flower garland and a teddy bear in his hand.\nA man with sunglasses under a blue striped umbrella.\nA man sitting on top of a bench in front of a street.\nA red traffic light sitting at the corner of a building.\nA cheesy pizza covered in topping sitting on top of a pan.\nSloppy Joe mix on a toasted bun on a plate\nan open fire hydrant near a city street\nA person standing on a surfboard in the water.\nA woman looking down at a set of luggage to her right.\nA man standing in front of a plate of food with a glass of wine.\nA man holding a small umbrella riding on the back of an elephant.\nA child leans into the camera brushing their teeth. \nFans are in the stands watching a baseball game.\nA very tall building sitting on the side of a road.\nA young man riding a skateboard down a yellow hand rail.\nA woman standing on a tennis court holding a rocket.\nA baseball player about to throw a pitch.\nSky view of a baseball field and scoreboard.\nA clock tower next to a street and a body of water.\nThere are two birds sitting on a branch by the water\nA sail boat stuck in the sand on the beach\na bunch of people that are on a bunch of snow\nA woman with blonde hair standing next to a bar making drinks.\nA person holding a white plate topped with a sandwich.\nA woman standing in a kitchen with hard wood floors.\nA white plate with a slice of cake on top of it.\nTwo birds preparing to eat food off of a plate that was left on a table outside by the ocean.\nA zebra grazing on top of a grass covered field.\nA red car traveling down a road under construction.\nA woman on a bike with a baby seat holding a dog leash.\nSnow skiers in line skiing down a mountain range.\nA sky view looking at a large parachute in the sky.\nAn orange cat sunning itself on a lawn chair.\nA bowl of various candies mixed in a red bowl.\nAn upside down blender containing a mixture of food.\nA wet dog with very short legs licks his tongue out as the picture is taken.\nTwo people riding a paddle boat in the middle of a lake.\na man in the park is flying a pink and black kite\nPeople enjoying as deep dish pizza in a restaurant\nA bird sitting on top of a log in a lake.\nA series of fire trucks is going down the street.\nTwo small planes flying with each other in the sky\na bunch of women serving hot dogs \nA long black train traveling past a graffiti covered wall.\nBuses and cars on interstate going both ways. \nA cat in a suitcase during a sunny day.\nA little boy riding his bike and wearing a helmet\nA crowd of people laying on a beach next to surfboards.\nA bird that is flying above the flowers.\na counter with cleaning supplies ice cube trays and racks from a fridge and a drawer missing\ntwo men sitting  at a table one looking at his phone \nSome people are walking in the snow and having fun. \nA city passenger bus stopping to take on passengers.\nA cake sitting on top of a table.\nA horse pulling a carriage on a city street.\nA young man catching a blue frisbee in a park.\nA train speeds by a field in a black and white photo.\nA pair of zebra's looking on at the camera in a pin.\nA couple of young men are playing frisbee.\nA small zebra walking across a dirt field.\nan image of a public bathroom scene with colorful decor\nA red and silver train traveling past a train station.\nPart of train car with a door to the rear connected to the car behind it\nA table with plates of food that include corn and fruit.\nA group of friends standing next to each other at night.\nAn open area with numerous bags and moving trucks.\nA boat that is sitting in the water.\nA pair of shoes sitting on top of a skateboard.\nA bed sitting in a bedroom between two lamps on tables.\nA large elephant standing next to a small elephant playing in the water.\nA booth with salesman trying to track down\nA person riding a skateboard down a metal railing.\na person opening a fridge to get some food out \nA red sign posted to a pole in front of a tall building.\nThe young child is eating a sandwich while the adults prepare food.\na man standing next to red checkered tables near trash cans.\nAn adult standing behind a little girl while holding an umbrella.\na living room on a wooden floor and television in it \nA girl sitting on a sofa in front of a laptop.\nA tall building towering over a city next to a river.\na person jumping a skate board into the air\nA person dipping a sandwich into a bowl of soup.\nA very nice bathroom with toilet and mirror. \nA tennis player looks forward before she serves the ball.\nA couple of men herding sheep down a road.\nALL YOU SEE IS A LOT OF LEGS AND ALOT OF SNOW BOARDS\nA man riding a surfboard on a wave in the ocean.\nan open luggage bag near a laptop \nthere are two dogs laying in a doggy bed together\nA long bench sitting next to a large fence.\nA large elephant carrying a man down the street\nPeople feeding an elephant in a zoo enclosure.\nA group of parked motorcycles sitting on the side of a road.\nA wooden bench sitting in a forest next to a tree.\nA skier climbing up a snowy mountain half in shade.\nthere is a cat that is drinking out of the toilet\nThe train rides down the tracks near a huge building in the city.\nA wood bench sitting in front of a tree.\nA train traveling past a factory with tons of smoke pouring out of it's stacks.\nA humming bird mid flight preparing to land on a tree \nTwo giraffe moving very quickly in the woods.\nA boy flying through the air above his skateboard.\nA den with a couch a fan and table\nSomeone with a cast on their foot and leg.\nA bed room with bunk beds, a double bed desk and chairs in it.\nA red plate topped with two bacon wrapped hot dogs.\nA couple of people sitting on top of a wooden bench.\nSeveral teddy bears appear to have a picnic on the grass.\nA black and white image of a lady on her cell phone while sitting down. \nA person playing in the maintained play ground\nThe benches are empty in the nighttime sky.\nA tray of food sitting on top of a white table.\nA living room with a fireplace and chandelier.\nA group of motorcycle riders racing down a track.\nA pristine doctors examining room waiting for the next patient.\nSandwich next to cooked bacon on plate with hot beverage.\nA bear foraging in the grass on a hill\nA woman holding a baby by the zoo, showing a picture of a giraffe, with real giraffe's behind the picture.\nA man with a backpack eats a banana next to a street.\nA glass of milk sitting next to a bowl of fruit on top of a table.\nA man standing a the front of a passenger bus.\nA laptop computer is sitting on a desk.\nA plate topped with pizza in two different pictures.\nA fire truck parked on the side of the road. \nGiraffe standing on a grass covered field next to a hill.\nA plate topped with two grilled sandwiches and a knife.\nA girl in a red jacket is on a snowboard as the ground is barely covered with snow.\nA passenger bus is parked on the side of a road. \nA girl is using her cell phone to take a picture of a fancy cake.\nA sharp, sawtoothed blade on this tool has some hair on it.\nA little girl wearing a pink jacket holding two ski poles.\nTwo plastic black containers filled with food on a table.\nA red and white fire hydrant is on the lawn.\nAn older woman sits in a sweater at the beach.\nA plate with a food entree on top is shown.\nA set of three boxes of donuts sitting next to each other on a table.\nA big black bear laying on rock looking right at the camera \nA young girl lays on a wooden floor while clutching a tennis racquet.\nA cow in front of another cow standing in a grassy field.\nDifferent types and sizes of parking meters on display.\na close up of food on a plate \nRed double decker bus with people standing on top.\nA white vehicle is parked near a parking meter.\nTwo girls in a library seated at a table cutting large brown paper.\nA person holds a seven eleven hot dog into the air.\nA pitcher pitching the ball to a batter\nA moustached skate board rider holds his board\nA man riding skis down a snow covered slope.\nRed hot water cooker, bowl of fruit, bananas, cereal and a sliced orange sit on a white tile kitchen counter tip. \nA young lady in a dress shirt and a blue tie smiling while having a seat.\nA herd of sheep walking around in the snow.\nA man blowing out candles on a cake.\nA large number of zebras running in the wild.\nFive very small boats sitting in the water tied to the dock.\nA person standing in front of a counter at a restaurant.\nA train sitting inside of a train station near a skylight.\nTwo beautiful women standing next to a black umbrella.\nA woman using a blow dryer on a child in front of a table.\nA stop sign in front of some buildings.\nA bathroom with white colored cabinets and toilet\nA man is riding a wave on a surfboard\nWomen are smiling and taking a photograph of something.\na green truck that is parked in a parking lot\nA group of young ladies riding on the back of a horse.\nA boat sitting out on an island surrounded by water.\nA child with a messy face eating a plate of food with hands\nA little girl sitting next to her teddy bear. \na animal that is walking on a beach\nA person in a the reflection of a truck mirror.\nArtwork with a fish is hanging from the ceiling.\nThe subway train is passing under a walking bridge. \nThree giraffe standing near trees and one eating on a tree.  \nsome people at a white counter are making food \na bunch of people are on a small boat\nA city worker repairing a traffic light over a street.\nA keyboard sits on top of the keyboard of an open laptop computer.\nA couple of young men standing on top of a baseball field.\nA bus stops next to a street sign.\nTwo colorful peacocks walking towards a brown wooden bench.\nThe passenger bus is stopping alongside of the street.\nA large passenger jet flying through a cloudy sky.\nA dish of food including tomatoes and pickles and something on flat-bread.\nA giraffe and zebra cake sits against a neutral backdrop. \nA woman riding a black horse on a lush green field.\nA woman standing in front of a giraffe pen\nA child sitting on a chair with a toy remote.\nA white toilet sitting in a corner of a room.\nStill frame of fruit on a plate including pineapple, bananas and an orange.\nA couple of men standing in front of a horse near  couple of dogs and a tree.\nTwo long buses parked on the side of a road.\nA restroom with focus on the modern sink.\nThe bowl on the table is full of cut fruit.\na girl wearing a cowboy hat while holding a dog \nA large living room with a kitchen in the background \nA person stopped wearing a yellow jacket riding a motorcycle.\nA stable full of lambs standing and laying around.\nA group of two people waiting to cross the street under an umbrella.\nA white plate of food including a hot dog and pickles.\nA sleeping cat is curled up with its legs stretched out.\nA cat putting it's paws on top of a laptop computer.\nA white stove top oven sitting inside of a kitchen.\nA person riding on a pretty horse by a big white fence.\nA bus parked next to another bus at a bus stop.\nA street sign for Battery Plaza, and a One Way street sign. \nA white polar bear laying on top of a pool of water.\nFour girls who are looking at a computer.\nA man riding his skate board down a slope .\nAn empty side walk with in a city\nA group of people walking down a wet sidewalk.\nTwo boxes of pizza sit on a wood table and one of the boxes is closed while the other is open to reveal a whole pizza inside of it.\nA crowd of people riding on the back of a red and white boat.\nSeveral small arc shaped kites flying above an ocean\nA child on a snowboard going down a slope.\nA pack of zebras are grazing in a field by a bonzai tree.\nA happy woman about to eat a slice of pizza.\na single giraffe standing in the middle of a field \nA Woman sitting on top of a bed while using a laptop computer.\nA row full of wooden benches in a cafeteria.\na train on a track near a building \nA couple of chairs and a large bed in a room.\nA zebra standing on the grass holding its head near the ground.\nA man standing near the water with an umbrella.\nTwo sets of hands are each holding a cell phone while another hand in the background is holding a glass.\nClose up of pencil cup with pens, pencils, and scissors.\nA man holding an oven door open while he looks in it. \nA kitchen with white cabinets and a grey counter top.\nA baseball player standing on a baseball field.\na man on a surf board riding a wave in the water\nA sandwich that is sitting on a plate.\nA tennis player approaches the ball with her racket.  \na boy dressed in a baseball uniform standing in a field. \nA vase filled with flowers next to a smaller vase filled with even more flowers.\na woman sitting in a car while holding onto a cake in a plastic container \na man standing in front of the grill of a  hot dog stand. \nA man standing near an intersection with street lights. \nBlack and white photograph of people standing in shore next to bus in water.\na pink toilet in a small flower patterned bathroom stall\nA clock outside of a building that runs backwards.\nA desk with three computer monitors, stacks of books and a phone.\nA group of picnic tables with umbrellas with the umbrellas folded down.\nA guy making a piece sign in front of a pizza.\nA seagull drinks water from a pool of water. \nA mens bathroom with two uneral's and a tv . \na little giraffe sitting on the ground next to a somewhat bigger one \na male tennis player in a red shirt is playing tennis\nA bright blue and white AMX jet is in the clear sky.\nA woman sits holding an umbrella near the group of women.\nThe bed and desk in a modern hotel room\nA small bathroom with a stainless steel sink\nTwo horses grazing on green grass next to a forest.\nA baseball player running on a field during a game.\nA zebra standing on dirty area with trees in the background.\na big cat sitting in a little bowl \na white plate with rice carrots and various other food\nA skateboarder launches himself into the air above his skateboard.\nA man going of a jump while skiing \nA lady snowboarding on a hill with snow.\nA street scene in the evening with a lone car and traffic light showing red.\na couple of doughnuts sit next to a glass of milk \nA couple of computer monitors sitting on top of a wooden desk.\nA woman holding a small cake with lit candles.\na person sitting and holding a mug and a book next to a table with a slice of cake on it.\nA man is in a tv frame and making a funny face. \nA group of people on some horses in the grass.\nA red stop sign sitting on the side of a tall building.\nsomeone lighting candles on a birth cake for a child.\nA bus parked next to a white building with red trimming. \nA city bus driving down a city street\nthe corner of a roof with trees in the background\na plate of food with broccoli on a table \nMotorcycles driving down a wide city street nearing a white building.\nA blonde woman standing in front of a red double decker bus.\nA man doing tricks on a skateboard with onlookers watching\nTourists with a modern articulated bus in Europe\nFive sheep peeking out of a wall and eating hay on the ground.\na ram on the side of a mountain on a rock\nAn old photo of a small family kitchen.\na close up of a woman wearing a shirt and tie\nTwo people who are diving for a Frisbee.\nThe two elephants have their trunk on the ground. \nThe dog is laying down underneath the table because he is in trouble for chewing on things he shouldn't have chewed on. \nThere are different types of Italian food in the picture. \na close up of a public transit train with its doors open\na person jumping over a ramp in the water \nA group of people on skis posing for the picture \ntwo tennis players in blue shirts playing tennis\nA display in a grocery store filled with lots of produce.\nA chocolate cake with cream and wafers on top.\nA large raw carrot and cut up garlic on a cutting board with a knife.\nA man holding a glass of wine while sitting at a table filled with wine glasses.\nTwo women walking on top of a tennis court holding tennis racquets.\nA picture of a motorcycle on the street.\nA pile of oranges, apples and pears next to each other.\nA brown horse walking up the side of a hill.\nTwo cows walking along the sand dunes at a beach.\nSomeone taking a slefie with a large camera in a large mirror.\nA stove top oven with two pans on top of it.\nA lot of birds flying around on a beach.\nA pile of toilet paper sitting on top of a toilet.\nA picture of an older man cutting a turkey on the counter.\nA white truck parked on the side of a road.\nBoth benches have a caution notice on them. \nTWO YOUNG MEN ARE ON THE COURT PLAYING TENNIS\nGroup of women socializing with alcohol in house\na close up view of a pie with strussel toppings\nA man flying through the air while riding a snowboard.\nThe black cat is laying on top of books on the shelf. \ntwo motocross racers in the middle of a race\nA few people are skate boarding in a skate park.\nA man surfing on a wave during the day.\nA red stop sign that reads \" Eating Animals \" below it.\nan all white bathroom with a sink and toilet\na large air plane flying thru the air\na home bar with different drink ingredients under a large decorative sign saying, \"PUB\".\na horse with a long mane looking at the camera \nA young woman riding skis down a ski slope while holding ski poles.\nA couple of kids standing next to a truck.\nAn orange traffic cone sitting in the middle of traffic.\nThe boy takes his baseball games very seriously.\nA man and a woman cook in the kitchen.\nA young boy who is eating a carrot.\nA pay phone sits on a wet sidewalk on a gloomy day. \nA young boy poses next to his homemade pizza.\nA big brown dog looking out a pretty glass door.\nA group of young women eating pizza together.\n A woman with an umbrella on a bicycle\nWood shading on the side of a window with brick siding. \nA man riding on the back of a motorcycle down a road.\nA couple of young girls sitting next to each other playing a game on the Nintendo Wii.\na cup of coffee sitting next to a plate with an omelet on it \nSandwiches and beverages sitting on a table \nA man standing next to a woman in front of a TV screen.\nthis image has no pictures displayed to describe\nA woman kneeling down over a storm drain near a street.\nA bathroom sink with toothbrush holder and soap dispenser\nTrain conductor standing on a moving train next to some trees.\nThis is a large lunch of sandwiches with layers of meats.\nA man swinging a tennis racquet at a ball.\nTwo young men leaning up against a wall wearing ties.\nSomeone who is applying some chocolate on a cake.\na rainbow umbrella that has people under it\nTwo side by side urinals mounted on a wall.\nA woman fixing her hair on a purple covered bed\nA train station with a large clock on the front of the building.\nA crowd is watching the two teams play soccer. \nA small elephant standing on top of a field.\nGroup of giraffes standing near a puddle on the savannah.\nA trolley that has one of its doors open.\nA batter awaits a pitch at a baseball field.\nA man with white shirt and lose tie with messed up hair.\nA man outside of a store with neon signs.\nA very roomy modern style rest room nicely decorated.\nA cat sitting on a blanket on a table. \nA large crowd watching a professional baseball game\nA red stop sign leaning over on it's side.\nA giraffe and a gazelle that are grazing together in a zoo.\nPair of surfers paddling out to open ocean.\nA man sitting at a table in front of a plate of food.\nA man standing in a bathroom in front of a mirror.\nA fire truck parked next to a fire hydrant.\nA large clock mounted to the side of a building.\nA man that is holding a baseball bat.\nTwo equestrians riding their horses on the beach together.\nCows graze in an open field next to wind turbines.\nLine of black cows eating hay from a hay bale.\nA chili cheese dog sitting next to chili cheese fries.\nA woman sitting down with a large cell phone holder on her pants.\nA young child wearing a sweatsuit with a printed skeleton, green swimming goggles and a chef's hat.\nA white container filled with lots of food.\nA model train set sitting in front of a brick wall.\nA man holding a purple hose on top of waves near a sandy beach.\na man doing a jump in a swimming pool with his skateboard\nA man standing on a tennis court holding a tennis racquet.\nA green truck cake sitting on top of a table.\nA large brown dog running across a grass covered field.\nA baby elephant walking along a river near a grassy covered shore.\nTwo computers sitting on top of a wooden desk.\nA boat in the sea near the city \nTwo white plates topped with food on a wooden table.\nA couple of people sitting in chairs under an umbrella.\nA dead body sitting inside of an open refrigerator.\nA fire hydrant is on the corner of the street.\nA living room filled with furniture and a TV over a fireplace.\nA man flying through the air while riding a skateboard.\nA table full of cellphones of various shapes, colors and sizes.\nVarious foods are sitting on plates on the table\nA very large crowd is close together taking pictures.\nA group of people sitting at a table sharing a meal.\nA group of zebra's playing and grazing in a field.\nA bathroom with a white sink next to a toilet paper roller.\nTwo women playing a game with a Nintendo Wii controller.\na woman in a pink top a refrigerator and some shelves\nA red bus stopped at a bus stop near a building.\na small dessert along with several glasses of wine\na couple of birds are standing in a field\nCute multi colored kitten sitting in woman's lap\nA sidewalk sitting along side of a street under a billboard.\nA young boy wearing a red shirt holding a Nintendo Wii controller.\nA cat napping inside of a large planter.\nThe young baby is sitting next to the large teddy bear. \nA medieval style tower and clock against blue sky.\nA cat sitting in front of a delicious chocolate donut.\nA crowd of people unloading from a long train.\nA man cycling and a Stop sign at the front\nA shelf filled with lots of different pairs of shoes .\nA batter preparing to swing and a catcher prepared to catch the throw.\nA horse grazes on a hill in a green field.\nA red pedestrian crossing signal with a red hand.\nA grey train passing by a stadium in the distance.\nA black and white dog laying next to a teddy bear.\nA hotdog wrapped in tinfoil, with toppings all over it.\nA bird that is sitting on top of a branch.\nCat intently watching a TV screen up close.\nTwo roasted chickens sitting on to of a pile of vegetables.\nA bathtub sitting under a chandelier and next to a pair of windows and a mirror in a bathroom.\na beach crowded with people and many different colored umbrellas\nA beautiful woman sitting in front of a laptop computer.\nA group of people sitting around a table with a cake on it.\nA man dressed up and posing for a picture\nA kitchen is shown in midst of repairs.\nAn old black and white photo of an intersection.\nA girl is sitting on a bed and has each hand on a notepad. \nA small bathroom is pictured in this image.\nA small kitchen featuring an under the counter washing machine.\nAn umbrella is standing behind a red rectangular seat.\nPeople are looking at a decorative cake with long candles.\nA lot of thought went into decorating this rustic bathroom.\nTwo men smiling and wearing yellow jackets behind construction markers.\nA brown dog laying on top of a bed next to stuffed pink bunnies.\nA woman sitting on top of a cement bench near a lake.\nThere is a lap top computer on the desk\nA bird sitting on a branch of plants.\nA couple of women preparing food inside of a kitchen.\nA close up picture of chocolate cake and icing.\nA lot of urinels that are in a bathroom.\nTwo airplanes release smoke while flying near each other.\nAn empty park bench next to a park under a blue sky.\nA group of people sitting and standing by a white and blue ice cream truck.\nA man on a bicycle passing by a taxi.\nPizza sitting on top of a table next to a couple of wine glasses. \nTwo guys leaning against a surf board on the beach.\na big bowl of different kinds of fruit inside\na woman in a gray top is playing tennis\nAdults play in the snow with balls and over sized mallets.\nA black bear is walking through the field\nA cat sitting on top of a kitchen floor.\nTwo men are playing video games in their home.\nA parked black motorcycle sitting on top of a parking lot.\nRoad signs giving directions and a car parked next to it\nA small dog on TV behind the words \" What Did I Do Wrong?'.\na person leaning back in the snow on their snowboard\nA young woman sitting on a wooden bench with a dog.\nA yellow and blue fire hydrant by a fence\nA person falling off of a surfboard while other surfers watch.\nA white and gray cat laying underneath an umbrella.\nAn American Airlines airplane is sitting on the runway\nA United Airlines plane is preparing for take off.\nA dog looking at a slice of pizza.\nA plate with a vegetable filled pita sandwich, french fries and tartar sauce.\nTwo men who are standing in the grass near a soccer ball.\nA toilet that is sitting in a bathroom with the light on.\nA girl is skateboarding down the Hollywood walk of fame.\nCouple of cows outside eating at the grass\nA baseball player who is walking with a bat.\na stop sign hanging from a small shack\nA small white dog sitting on the floor on top of a rug.\nA table topped with a half eaten apple next to a smart phone.\na couple of guys with tennis rackets waiting on a ball\nA pretty young lady walking across a tennis court.\nA bathroom with black wall tiles and a robe hanging on the wall\nA man rides a wave on his surfboard while other surfers watch from the shore.\nYoung baby sleeping in innocent white drapes around him\nPeople are sitting and standing outside between train cars.\nA large tower of different sized and colored luggage. \nThe items are on the conveyor being ready to be put on the wagon.\nA clock with a brick and glass building behind it.\nsome people cars and  big bens clock\na person that is skiing through some snow\nA clock on a pole on a sidewalk.\na cat drinking from a toilet and the cat on top of the toilet\nA laptop computer sitting on top of a wooden desk.\nMom and her daughters are having dinner together.\nA street light on a pole outside of a house.\nA giraffe staring at the camera in a field.\nSome chairs sit at an island near an open door. \nthere is a little boy eating chocolate off a stick from a cake\nA man that is standing on ski's in the snow.\na baby elephant walking on a dirt field next to a fenced enclosure.\nA gray cat sleeping on top of a bed.\nA group of young people wearing ski equipment.\nthis is a photo of a large crowd of young adults sitting on a long row of park benches\nA white plate with two fried eggs and greens.\nA large white bus and many cars on a road.\nA group of young people skateboard down a street.\nA viw of a cake with pieces cut off of it.\nA cat sitting on top of a white toilet in a bathroom.\nA white plate with a cut in half sandwich.\nA bridge built over a water is shining lights at dusk.\na couple of plates that have some food on them\nA series of photos showing different cakes and glasses.\nA giraffe facing the camera as its photo is taken.\nA man in plaid shorts skateboards in a rink by palm trees,\nA kite high up in the air in a tree.\nAn intersection with cars is pictured in this image.\nA bedroom with twinkly lights and a laptop open on the bed.\nLots and lots and lots of very colorful ties\nA woman sitting on a brown sofa by pictures\na man on a bike that is walking dogs\nA group of skateboarders on top of a ramp.\nan airplane taking off with one waiting to take off\nA picture of a coffee cup and a smart phone on a table.\na man holding onto a surfboard while standing next to a tree\nA young girl laying on her stomach reading a book.\nThe small bedroom is white monochromatic with lots of natural light, and no window coverings.\nA stop sign is fashioned into a snack store sign.\na large amount of plants growing in a forest\nA couple of people sleeping on top of a bench.\nYellow vehicle with surfboard tied to roof rack.\nCloseup of view of the cabin and wing of a large commercial airliner.\nThe airplane is flying near a cloud in the sky. \nA zebra walking through the grass next to a bush.\nA bed with a purple blanket is pictured in this image.\nA man catching a white frisbee on a sandy beach.\nA dog with his leash attached to a bench\nA vintage truck with a surfboard on top is painted matted black.\nTwo children under a \"Sesame Street\" sign on a light post.\na number of people in uniform using cell phones\nA woman standing at a bar preparing drink mix.\nA car is traveling under a traffic light. \nThey are standing next to some stylish motorcycles.\nA doll standing next to a vase filled with flowers and plants.\nTwo girls standing in a store eating pizza and food.\nA couple of people carrying surfboards under a pier.\nA made up bed with a pile of newspapers on it.\nA group of people standing next to each other.\na zebra grazing on grass in an open field\nA flock of birds sitting below a tall snow covered mountain.\na curved desk with  keyboard and monitor on it\nA dinner bowl filled with vegetables next to a glass of wine.\nA baseball player with the Cardinals getting ready to hit a baseball.\nthere is a clock at the top of this building\nTwo tennis players have a match near a large audience.\ntwo women stand on a train platform waiting to board.\nA person wiping out on a snowboard on the ground.\nTwo men in kitchen preparing hot dog buns.\nA white semi truck parked on a large muddy puddle.\nA bath tub with potted plants in it.\nA young man feeds a cow from his hand.\nThe man uses his cell phone near a plate of food.\nA silver and green train pulling into a train station.\na large clock tower structure lit up in the early night sky\nA woman with her legs crossed, shielding her eyes while looking up, reclines on a couch.\nA man riding on the back of a small boat.\nA woman standing under a red stop sign on a green yard.\nA city filled with lots of tall white buildings.\nA cat walking past a wooden desk next to another cat.\nA woman holding a hotdog and reaching for ketchup at a food cart.\nA group of friends sits in their living room while playing video games.\nA small red bird sitting on top of a rear view mirror on the side of a car.\nA toothbrush is sitting on top of the plate.\nA woman standing in front of a flat screen TV.\nA little boy in a baseball uniform wearing a mitt.\nThere is an image of a tv and a chair in the living room\nA giraffe is walking in some tall grass\nA man in a wet suit standing on a surfboard as the wave approaches. \nA man flies high in the air while windsurfing.\nA loaf of bread next to a toaster and jelly.\na sign for the metrolink next to tall building\nA large display of fruit: applies, grapes, oranges, lemons, limes and grapefruit\nA leather satchel opened up containing various cutting tools.\na large air plane on a snowy surface with a sky background\nA city bus parked next to a bus stop.\nsome people and one is carrying a white surf board\na taillight is in a rear view mirror and some cars\nWoman snow boarding off of a cliff in the air.\nA subway train with it's loading doors wide open.\nAn overhead view of traffic in a metropolitan area.\nClock tower of dark grey bricks with 1853 and 1989 on face of clock.\nA close up of a cats profile is shown.\nWomen are playing tennis on a blue court.\nA plate of food with a sandwich with a runny egg. \nThree brown bears looking out a cage at the ground below.\nA man kite boarding over a large body of water.\nA clock is shown with gold detailing around it.\nA kitchen with a center island next to a refrigerator freezer.\nA man carrying a surfboard while walking in the ocean.\nA plate containing several donuts with frosting and powdered sugar.\nA person on a court with a tennis racket.\nA brown and black horse in the middle of the city eating grass.\nA woman with glasses using cellphone to take a picture.\nA bedroom with a large bed sitting next to a black dresser.\nA man in glasses drinking from a wine glass\nA crowd of people on a beach flying kites.\nA white, red and blue bus on street next to people walking.\na small child standing in a living room eating something\nA group of people standing in a field with kites in the background.\nA wooden table topped with glasses with plants.\nA woman siting at a table in front of a coffee cup in a a kitchen.\nA loaded pickup and travel vehicle on the highway.\nA white sheep standing next to a brick wall.\nA large white polar bear rolling around in a body of water.\nCows and caves behind barbed wire fence on a pasture.\nA large white airplane sits on the runway.\nA man and a woman take a picture\na burger and some fries on a tray\nA black bear standing next to a metal pole fence near plants.\nsome people boats and birds in the water\nA baseball holding a baseball bat during a baseball game.\nA man standing on a tennis court holding a racquet.\nTwo multicolored birds perched on a wooden branch.\na room with a lamp a couch a red rug and some books\nOverexposed shot of a skateboarder making an obscene gesture.\nA very bright light shining down on some signs at night.\nA large digital clock mounted to a wall.\nA metal vase filled with an orange flower.\nA large red sign on a metal pole.\nA filed full of people sitting and standing on top of it.\nA table set with place settings of food and drink.\nA group of zebra standing next to each other.\nA couple of guys playing a game on the Nintendo Wii.\nA man laying on his bed looking at a phone and brushing his teeth\nA cheese and pepperoni pizza with basil sprinkled on top.\nA traffic light next to a street light below a tall building.\nA man riding on the back of a blue motorcycle.\nA laptop computer with a wireless mouse sitting on a desk\nA dog holds a frisbee with the side of its mouth\nA photo of an old building with focus on the clock tower.\nAnts that are in selling oranges on a table.\nA motorcycle parked in front of a house.\nA herd of animals laying at the foot of a stone mountain.\nA man on a white surfboard riding on a wave.\nA large frosting teddy bear sitting on top of a pink cake.\nThe yellow truck passes by two people on motorcycles from opposing directions.\nTwo gray elephants basking in the sunlight and grazing around.\nA young boy riding a skateboard next to a graffiti covered building.\nA hot dog and soda on a table with a mushroom\nAn old, rusty fire hydrant, in front of the pole. \nA large brown cow laying on the ground in a penn.\nDessert covered in chocolate with white topping and candy atop it.\nThe tennis player is beginning to serve a ball.\nA kitchen area with a stove, counter and kids kitchen set.\nA coffee maker and microwave in a room.\na large silver plane is put on display at a museum\nA bunch of people are sitting around while a guy plays a video game \nA man fishing while standing on some rocks next to the ocean.\nTwo pizzas sitting on top of a wooden cutting board.\nA group of young people wearing ski equipment while standing on a snow covered ski slope.\nA crowd of people in a waiting area\nCollage of a clay cow in a paper boat in a music sheet sky\nan image of a cat in a toilet with the water\nA brown teddy bear laying on a carpet with the sun shining on it.\nA photograph of a cross country skier in a greenish tint light.\nA large brown bear sniffs something on the ground.\nA Sanyo microwave oven sitting on the counter.\na close up of a sandwich on a wooden cutting board\nA group of baseball players standing next to a kid on a field.\nA stop light on a oriental city street. \na apple computer that is on a desk\nA man stands beside a refrigerator in a kitchen.\nA baby sitting on top of a bed with a bottle of milk.\nA bus is stopping to pick up a passenger.\nA woman tennis player is getting ready to hit a ball.\nA laptop, keyboard, monitor and speakers on a hardwood floor.\nA large brown bear walking across a field.\nA girl walking with a tennis ball balanced on a tennis racquet.\nA man hitting a tennis ball with a tennis racquet.\na large lake and a forest behind it\nA man stands outside of a steam locomotive.\nThe people is riding the horse and carriage in town.\nA bedroom with a desk in the corner.\nLarge group of people surrounding a truck on a mountain. \nA teddy bear sitting in front of a pile of boxes.\nA table topped with different types of foods.\nPastry and bottle of liquid on table with various bottles \nTall tower with a clock in the front near a sunny sky.\nA stuffed teddy bear wearing a blue neck tie.\nSeveral kids are on a tennis court with their tennis rackets.\nA man riding on the back of a white horse.\nMan walking into ocean holding surfboard under arm\nKitchen area of home with food in oven or consumption.\na cow staring into a camera standing on a field \nA woman wearing a witches hat and a talking on a cell phone.\na very small bathroom with a toilet and towel ring\nCat in window sill of colored panes on building\na couple of men are playing with a frisbee\nTHERE IS AN ADULT CAT THAT IS LYING DOWN IN THE SINK \nsome street signs sitting on a pole next to a street light \nA black bear walking next to a green truck.\na woman walking holding a pink umbrella near a train\nA table of food containing a cut ham and bowls of vegetables.\nA woman walking on a sidewalk on her phone near people.\na white toilet with a cat on top of it\nA dog and cat lying  together on an orange couch. \nBlack and white photo of posters and bikes on a brick wall.\nA bear pokes about in the water while seagulls look on.\nThe man jumps high in the air to catch the Frisbee.\nA boy is eating a pastry in a room.\nA black curly haired dog is playing with a frisbee.\nOrganized baseball game with young players and an adult pitcher on a dirt field.\na big blue truck sitting on the snow next to some trees \nA bathroom that has over flooded with water. \nA clock hanging off the side of a tall building.\nRoadway intersection near large brick building in city.\nA baseball player is getting ready to hit a ball.\nA set of four boxes filled with baby birds.\nA man is playing tennis on a blue court.\nA brown plane is parked at air port\nMan in trench coat enjoying food item on skewer in office setting.\nA herd of elephants walking through a shallow river.\nA small white dog on a leash wears a colorful bandana.\nA small boat is going down the river in front of colorful trees.\nThe man runs through the field as he throws the frisbee.\nA man and woman riding on the back of a blue boat.\nA train traveling very close to houses next to a street.\nA black and white kitten sleeping on the keyboard of a laptop,\nA stop sign mounted on a pole with a street sign with a forest in the background.\nA large giraffe standing in front of a lush green wilderness.\ntwo people walking on a side walk with an umbrella\nThe bathroom is adorned with green rugs and a green shower curtain.\nTHERE IS A CLOCK THAT IS ON THE SIDE OF THE BUILDING \nA group of police officer standing in front of a red bus.\na close up of three giraffes in a structure near a brick wall\nA woman flying a kite in the blue sky.\nAn airplane nose sits in a hangar. \nThe rear view mirror of a cityh bus driving down a street.\nA couple of people walking down a  sidewalk holding tennis racquets.\nYoung girl dressed in tennis whites holding tennis racket on grass field.\nA picture of a train going on the train tracks.\nMany motor bikes lined up on a city street.\na buncch of food is laying out on a table\nA dog is shown sitting on rocks by the beach.\nAn indoor garden scene with blue vases and a straw gazebo.\nA close-up of the streetlamp showing to red street signs.\nA brown wooden bench sitting up against a wall.\nA man posing for a picture on a bed in the air.\nCut daffodils and bachelor's buttons lay on a white surface.\nA man riding a skateboard on a rail at a skate park.\nTwo people standing in front of a train on the tracks.\nA bunch of people are rowing in some row boats.\nA woman holding a Nintendo Wii box at table.\nThe top of a building with a clock on it.\nA hand is holding a hot dog wrapped in foil.\nA large commercial airplane sitting on the runway.\na grey cat sitting by a round mirror\nThere are some whole leaves on a sandwich\nAn older skateboarder holds a long pole as he skates.\nA couple of cats lying in a red suit case on a bed.\nA picture of two giraffes, fairly close to a road, with a bus traveling up it.\na stuffed animal lays inside of a trash can\nA train traveling down a set of tracks.\nZebra stripes very up close and very perfect.\nmany people are having fun in an event. \nthis is a man riding on some skis\nA standing toilet hole filled with nasty filthy.\nPeople fly kites and try other activities in a park.\nA herd of zebra standing next to each other on a field.\na teddy bear wearing a white shirt and green apron\nA woman standing over a pizza on top of a table.\nTwo pizzas that are sitting on a table.\na surfer that has fallen off of his surf board\nA conference room is packed with people sitting at their laptops.\nA fire hydrant sitting in front of a group of flowers.\nthere is a young boy eating a piece of cake\nA pizza with tomatoes is on a round plate.\nA cow is standing still with a plastic apparatus on his hip end.\na big old stove that is attached to the wall\nA city street filled with lots of traffic and pedestrians.\nA phone, battery, and charger laying on fabric.\nA cafeteria type kitchen that is not in use.\na bird with a foot on the top of a pole\nPeople are in the bed of a green truck with an umbrella.\nTHERE ARE CITY BUSES THAT ARE LINED ON THE STREET IN FRONT OF THE BUILDING \nA green and white street sign that reads \"lincoln av e.\"\nA bathroom that has a special shelf for towels. \nA person cross country skiing across a snow filled plain.\nA couple of suitcases that are in a terminal.\nA bench outside against a wall with several flower pots in front of it.\nA rowboat with paddles and no passengers is on the beach.\nA surfer in a black wet suit and a blue surfboard is standing on the beach.\nA man standing next to a train going through grand central station\nSeveral horses and donkeys are grazing in a field.\nA table with chairs and an umbrella sitting on a patio. \nA sad smart phone holding a half a banana.\nThe woman sits in bed as a child stands at the foot of it.\nTwo giraffes standing in front of their stables.\nA rooster is walking on a grassy beach.\nThe baseball player has connected with the ball.\nA woman going down the stairs with a backpack on and a suitcase in her hand. \na close up of a person with a large sandwich\nTwo horses are standing in a snowy pasture\ntwo elephants that are together in an enclosure. \nA man and woman are on a bicycle pulling luggage.\nA living area with a desk, laptop and surfboard.\nSeveral people looking at books displayed on a table.\nA man talking on a phone walking near to a field.\na couple of animals walking around a farm \nA yellow truck driving down a curvy road.\nA man in a blue shirt is playing tennis.\nA copper and orange train on the train tracks. \nA large building that has a train passing by it.\nA close up of the man holding a large knife against an animal.\nA long train sitting on a railroad track. \na herd of cows stand on some tiled dirt \nThe man is holding a large bird outside. \nA large elephant walking through a lush green field.\nA skier skiing down a snowy mountain. \nA group of giraffes walking in the sand.\nA woman cutting a pizza on a wooden surface.\nYoung boy posing in front of a flying kite in the park\nA group of friends playing a game on the Nintendo Wii.\nThe bathroom has a sink, and see through shower.\nA man wearing a red tie holding it up with his hands.\nA little boy sitting on a man's lap wearing a tie.\na person skying on the water with a wave\nA wild animal walking across a grass covered field.\nA park bench surrounded by floral arrangements on either side.\nA bench with two wooden statues sitting behind it.\nA man sitting on a bike holding a large dog on his knee with one are and guiding the bike with the other hand.\nA boy swims through the water using a board.\nA large room with marble floors and white ceramic toilets\nA clock displaying the time in a passenger bus.\na couple on a subway looks at each other\nAn all white room with cloths hanging and flowers \nA tennis player uses all of his energy to connect with the ball.\nA stuffed bear standing on top of a bed.\nA pretty young lady laying in bed using a laptop.\na dark brown clay pot with a snake design on one side\nA desktop computer sitting on top of a wooden desk.\nTwo tennis players with rackets playing in the court as people watch\nA living room with a floral area rug and a fire place. \nSeveral people riding on jet skis in the water. \nA white tray topped with donuts near a bag.\na pizza with broccoli on it on the table\nA wooden bench sitting next to a bunch of flowers.\nA person on a skateboard does an air trick.\nA white bathroom sink sitting next to a toilet.\nA husky dog has an orange frisbee in it's mouth.\nA pair of red scissors sitting on a newspaper.\nLights shine on a wooden dining room table.\nA curly haired man standing on the side of the street.\nsomething is half way buried in a sandy field\nA long empty road way surrounded by wild plants.\nA refrigerator freezer sitting inside of a kitchen next to a window.\nThere is very little traffic at this city intersection.\nA woman riding skis while holding her dogs leash.\nA post with a no right turn sign and a stop signs with stickers\nThere is a blender sitting on a counter next to a toaster oven.\nA single serve cup cake in a white dish.\nA table topped with plates and containers filled with food.\nA beautiful woman riding skis down a snow covered hill.\nA shot of an empty bathroom with a walkin shower.\nA tray with carrots, snap beans, mash potatoes and an egg.\nA person wheeling a hand truck across an open market.\nA bottle of beer on top of a table next to a glass full of it.\nA stone staircase and window in a building.\nA muffin for breakfast with an orange and cream\nA close up image of a sloppy joe on a plate. \nA man is taking a bite from a piece of pizza\nThat is something being here taken in the picture. \nA vase filled with purple and red flowers sitting on a counter.\nMany white vases on a table in a room.\nPark bench on a walkway in a park.\na large citi bus in the street around some trees\nAn assortment of items that were in a purse.\nRoad is littered with old cars and some wrecked trucks with a lone red and white stop sign at a grassy lot \nA woman talking on a cell phone while holding luggage.\nA garbage truck parked next to a food vendor.\nThe two cats are looking for something good to eat.\nA cay laying on top of a blue couch arm next to a wall.\nA cat sitting on the back of a white chair in a living room.\nA cat is playing with a plan in a park.\nAdult and children Elephants walking together across the plains.\nSlice of chocolate cake with frosting and sliced strawberry.\na couple of kids play a game of soccer \nTwo briefcases are used as decoration above these clothes\nA floor filled with the contents of a woman's bag.\nA pink pitcher filled with long stemmed flowers.\nA person sitting on top of a bench next to a light pole.\nLarge dog lying on couch with blanket in living room.\nA group of people walking along  a beach covered in umbrellas.\nTwo signs in front of a red brick building that say \"Tow Away No Stopping from 4pm to 6pm\" and \"No Parking from 2am to 6am\".\nA man hitting a tennis ball with a tennis racquet.\nA passenger bus traveling down a street behind a red car.\na close up of a toilet with a poster on the wall\nA man riding on a motorcycle near people walking.\nan image of  a bird that is perched on a tree\nA picture of a church clock with shrubbery in front of it.\nA man looks straight ahead sitting at a desk.\nA log sitting on a field next to a river.\nA filtered image of a microwave available to use in a store. \nA woman in a coat walks along a snow covered sidewalk. \nA cat lounges on top of a big TV.\nA dining room filled with lots of people.\nA traffic light with a smile green light above a red sign.\nA kitchen with lots of wooden cabinetry and a stove top oven.\nA woman holding a baby on her lap while using a laptop computer.\nA black and white picture of vehicles and people in the street. \nPeople walk on the beach with boats nearby. \nTwo chefs in a restaurant kitchen preparing food. \nA young boy who is formally dressed is smiling for the camera. \nA man and woman are looking at a computer screen.\nA living area with a fireplace, television and atlas on wall.\nA person doing a kickflip on a skateboard over a jump.\na lady standing next to a person with a umbrella\nA group of people sitting around a wooden table.\nA family surrounding a little girl sitting at  a table in front of a cake.\nA trail of broccoli and pees on a roadway.\nA woman is skiing in a competition alone.\nA highway scene with focus on an exit sign.\nA remote control on a wooden table in front of a television. \nA house filled with windows and a platform.\nA group of bikers wait before riding down the street.\nA group of young women playing a game of frisbee.\nA large AMOCO sign above a sidewalk next to a street.\nHappy surfers holding up their boards on the beach\nAn open window with a bench next to it\nA kitchen with a stove top oven next to a white fridge.\nA group of women standing next to each other carrying luggage.\nThe objects are placed carefully for a special effect on the viewer.\nA little boy is on a state board on the cement.\nPartially consumed slices of cake at a restaurant table.\nA large cow with horns by some bushes.\nA bowl filled with pasta, sauce and vegetables.\na truck is parked at a campground with snow on it\nA table with cups, a plate with cheese and tomato and a platter of bread.\nA living room filled with furniture and lots of windows.\nAn umbrella and rain boots sitting on a rug in a corner. \nA brown and black cow in a field with a barn in the background.\nA passenger train making a stop at a train station.\nThe large crowd watches as a baseball batter gets ready to swing.\nA fast food lunch with a side of fries.\nA dog holding a white frisbee in it's mouth.\nTwo hot dogs on buns sitting on top of a paper plate.\nA white plate topped with dicked up lettuce next to carrots.\nA large stone  building with a tall clock tower.\na fridge and a sink in a home kitchen\nA white toilet sitting under a window near a sink.\nA field of cows being looked at over bushes.\nA giraffe standing under a leaf filled tree.\nA child on a skateboard is performing a trick on a slab.\nA close up view of a zebra near trees. \nA person sitting down with a tennis racket.\nA group of people on the beach flying some kites.\nA man riding on the back of a giant bull.\nA young man modeling clothes during a photo session.\nA man holding a baby in a chair.\nA baseball player catching a baseball with his glove. \nThis couple is making a funny face while sitting on a couch\nA person on a cell phone on the side of a building.\nClose up of a plate with food on it.\nA man on a skateboard rides along an edge. \nbrown cattle grazing on a yellow grassy area\nBaseball on its way to a batter while a runner is on his way.\na couple of people making their way through the snow \nA man riding a motorcycle on a racing track.\nA orange tractor sitting on top of a lush green field.\na close up of a pot with flowers in it \nAn older woman looking directly into the camera while holding an open pair of scissors in front of her face.\nA black microwave oven with toys sitting on top of it.\nAn orange is on the container beside chocolate cake.\nA cat laying on the ground next to a woman's shoes.\nA lady is sitting on a terrace drinking a glass of wine.\nA open refrigerator filled with food in a room.\nTwo laptops on the same table in a white office.\nA bus yard filled with yellow school buses parked side by side.\na bathroom with two sinks, a cabinet and a bathtub.\nA large ornate building with a clock tower.\na small boat on a beat near a body of water\nAn office with a computer desk and a musical keyboard.\nThe Queen Mary ship sitting in a harbor in Long Beach.\nSome very cute big birds by the water.\nA man flying through the air while riding a snowboard.\nEmergency vehicles are on the scene of the accident.\nA plate of chicken and mushrooms next to vegetables.\na cat sitting on a counter top next to a stove below an oven mitt with a cat design on it.\nA man and a woman showing off their food.\nMultiple wooden spoons are shown on a table top.\na small living room with chairs and a foot stool\nTwo people standing at a bar eating pastries.\nA table is cluttered with plates of food.\nYoung man in orange jersey swinging a baseball bat.\nOlder man questioning employee for different wines in store.\nA guy cutting a pizza on a long counter.\nA man standing in a bathroom not wearing a shirt.\na man sleeping with his cat next to him\nA surfer looks back as another surfer catches a wave.\nA cat curls up with a purple blanket on a chair.\nA woman brushing her teeth while wearing a towel on her head.\nA barn with a large American flag on the side of it.\nA train car pulling away from a train station next to a forest.\na rome with rose flowers and a sink \nA small set of boats sitting on top of a river.\nOne brown cow sitting on top of the rocky ground.\nChocolate ice cream next to a banana on a flat surface.\nThe cat rests on the bed while watching television.\na woman with purple hair is taking a picture of herself\nA sidewalk filled with lots of pedestrian traffic near a traffic light.\na couple of people are standing near a train\nA motorcycle parked next to a few bicycles.\nA man holding a red frisbee while standing on lush green field.\nA man holding a tennis racquet on a tennis court.\nA flock of sheep crosses a dusty road.\nA game controller is shown on a table.\nA toilet is used for outdoor decoration beside a log cabin building.\nThe lunch plate includes both meat and vegetable choices.\nA young boy beside a donut with white frosting and sprinkles.\nA couple of men working on a boat that's docked at a pier.\nA bike is perched on a concrete girder on the road.\nA yellow street sign sitting on the side of a road.\nA field with a bunch of cows grazing.\nA man riding on the back of a brown horse down a street.\nA group of cars on a city a street.\nA hotel resort with umbrellas and beach chairs. \nA ship filled with luggage next to a life saver floating in water.\nTwo bicyclists sitting on a bench with a forest background.\nA row of seats inside of an airplane.\nA plate topped with two hot dogs covered in coleslaw.\nA red plate topped with a chocolate pastry.\na person taking a photo in a mirror \nA dog anchored to a fire hydrant by his leash.\nPeople are in a small boat with green oars.\na group of people that is surfing on some water\na pic with a hydrant outside in the field\nThree passenger airplanes parked on a airport runway.\nA man stands with a yellow stick near a kneeling woman.\nA stuffed teddy bear sitting on top of a cloth bag.\nA brown basket filled with bananas and apples.\na person standing next to a parked motorcycle on a field \nTwo trains traveling down tracks with black smoke pouring out of the top of them.\nA man holds pizza crust in his mouth.\nA vase filled with yellow flowers on top of a table.\nA female professional tennis player engaged in competition.\nA group of giraffe standing next to a forest with lots of trees.\nTwo men play a game of Frisbee in a field. \nA man on a snowboard grinding a rail. \nThe young girl is posing with a softball bat.\nLone elephant walking on dirt path near bushy area.\nA ripped up pair of shoes on a skateboard\n both sides of a phone in an ad\nA person on a surfboard rides on a wave.\nA living room has an entertainment center with television and shelves.\na person in a costume standing talking on a cell phone\nan image of  a man posing with surfboard\nA boat floats in the water near the shore. \nA silver truck parked next to a colorful kite.\nA train that is going by some grass.\nA plastic tray that has a sub and chips on it.\nA brown dog is catching a blue Frisbee.\nA large brown elephant walking across a dirty road.\nI think that the plane has just taken off.\nfour coach buses parked in a parking lot\nA clock tower in an open space with decorative plaques under the clock.\nA girl holding a racket and a boy behind her holding a tennis ball.\nAn old self portrait of a man dressed nice.\nA group of people flying kites on top of a sandy beach.\nA woman standing next to a man kneeling down on the ground.\nTwo boys are playing soccer on a soccer field.\nA woman watches the tennis player who is about to serve a ball. \nThere is a woman standing on a city street.\nA professional kitchen filled with sinks and appliances.\nA modern furnished living room with large fireplace.\nA view of a couple types of toilet items.\nA man instructing a group of kids on a soccer field.\na large elephant that is standing next to some trees\nThe cat with a damaged eye sits on a pair of shoes.\nThree British Airways jets lined up at a terminal.\nMen sit around a table sharing a meal.\nA cheesy pastry sitting on top of a plate.\nA couple of zebra standing next to each other near a tree.\nsmall children amusement ride of cars and trucks\nA orange and white cat sitting inside of a piece of luggage.\nA white bus sitting on top of a grass field.\nA polar bear in the water at a zoo with two balls\nA group of small exotic birds standing on a large bamboo stick.\nA couple of street signs mounted to the top of a metal pole.\nA furry cat sits on a blue chair. \nA surfer is wind surfing on some choppy waves.\nA person in a costume on the back of a car.\nTall large headed giraffe looking out past some trees.\nClock tower decorated with banner and bird statue.\nA airplane that is sitting on a tarmac.\nA train with a green and orange stripe is sitting on the tracks.\nA boy walking across a field while flying a kite.\nA wooden table with many types of animals.\nThe statue of a painted elephant with a target on it.\nA bunch of very pretty umbrellas displayed in a tree.\nA clock stand sits on the sidewalk by the road. \nA yellow bus is going under a bridge\nA lot of police officers on horses patrolling a city street.\nA dog herding a group of sheep in a meadow\nA brown stuffed teddy bear sitting on top of a couch.\nA couple of trains are traveling side by side. \nA curtain holds back the sunlight in a living room.\nBroken stand-up clock lying on a cluttered floor. \nA bunch of kites flying around a park.\nA person flying through the air while riding down a snow slope.\nA batter mixer beside a microwave on a counter\nA close up of a laptop sitting on a wooden table.\nThe soccer player in blue edges out her opponent.\na surfer is seen mid air jumping from a wave\nTwo boys are playing with a soccer ball.\na cat that is next to a computer screen\nTwo brown and white cows standing next to each other.\nA young man riding a skateboard down a ramp.\nA man with a tie and glasses and messy hair posing for a photo.\nA bathroom with a stained glass and stone wall and tile of different shapes, sizes, and colors decorating the floor and walls with a toilet visible.\nA view of a large bed in a luxurious bedroom.\nA highway filled with lots of traffic nest to a traffic light.\nA photo of a black lap top sitting on a table \na small bathroom with a mirror and sink\nA small airplane is parked on the runway.\nA cheesy pizza sitting on top of  an oven pan.\nA couple of windows in a small room.\nA large yellow lizard kite flying over a field.\nA person sitting at a table with some fancy food.\nA laptop computer sitting on top of a wooden desk.\nA bed with lots of pillows and a blanket.\nMan in suit with red white and blue tie. \na black dog in the air catching a frisbee\nSkiers skiing under a ski lift on a snow covered slope.\nA man with a bicycle with tanks for holding a liquid mounted on it.\na bed sitting inside of a bedroom on a wooden floor.\nA group of people meeting at the public farmers market. \nThe room was clean with the bed neatly made. \nTwo people in lab coats are doing something they pulled up on their laptop.\nPeople on surfboards in the water riding on waves.\na green motorcycle parked and resting next to another vehicle inside a parking lot\nA group of giraffes standing up in their natural habitat.\nA close up picture of carrots, corn and other foods on a plate.\nA desk with multiple computers and cell phones.\nthis is a white bike with a light on it\nA man standing on a beach flying a kite in the sky.\na man on a skate board on a rail\nA cop riding on top of a motorcycle.\nA white sink in a bathroom under a window.\na woman sitting on a picnic table on her cell phone\nThere is a a toilet on the barhrrim\nTHREE PEOPLE OUT SURFING THE WAVES UNDER A CLEAR SKY\nA couple of people standing at a counter with some food.\nChildren playing in water on a street. \nA man on a bicycle rides with his dog as a passenger in the back.\nA dinner plate with a stir-fry dish of broccoli and rice.\nThere are two people standing in the snow getting ready to ski.\nA train traveling through the countryside next to a dirt road.\nA girl mixing food with a whisk in a measuring bowl.\nA couple of people riding a jet-ski on top of water.\nA boy in a green shirt stands spread eagle with one foot on a skateboard.\nteddy bears dressed up in clothing sitting on a loveseat together\nThis but has a movie advertisement on the back.\nA pink cellphone and white palm pilot on a table.\nThere is a chicken burger next to a bowl of soup on the table.\nA stove top oven sitting inside of a kitchen.\nA No bicycles, skates or skateboards sign on a pole.\nA man standing behind a child sitting at a table\nA vandalized school zone sign attached to a pole.\nTwo cooked hot dogs on a plate with parsley.\nA woman is taking a picture of food with a mobile device.\nA green and white bus on street next to dirt area.\nA photo of a living room containing a fireplace but no other furniture.\na close up of a plate of food like peas and broccoli \nA computer monitor sitting above a computer keyboard.\nA man that is standing on a surfboard.\nA man riding a skateboard off the side of a cement ramp.\nA cat is sleeping on the arm of a couch.\nA large clock tower towering over a city on top of a hill.\nA garden is surrounded by a train and phone booth. \nA smart phone sitting inside of a red pouch.\nA man on a tennis court at night time.\na black dog is holding a fed and green frisbee\nA train traveling past a water tower next to a forest.\nSome clothing is being sold outside of a building.\nA cat and a metal bowl on a wooden platform.\nA blue piece of luggage sitting on top of a wooden chair.\nA person holding up a gray tiger cat.\nA professional tennis player waiting for the ball.\na woman walks down the street holding a umbrella\nTwo cats are sitting in a door way.\nA man riding a skateboard on top of a cement planter.\nChild laying down with arms extended in the air.\nThe computer technician is repairing several different laptops.\nMany people are driving motorcycles through an intersection.\nA random plane in the sky flying alone\nA snake on the ground next to a  shiny leaf.\ntwo horses pulling a bit cart with someone on it \nThe horse is eating the green grass blades.\nA motorized passenger buggy with people walking around it in a city.\nA group of people on a field play a game of soccer.\nA man is using a toothbrush to clean his teeth.\nA row of parked vehicles in front of a tall building.\nA couple of men riding on the backs of brown horses.\nA woman holds the arms of a young boy on a soccer field. \na person riding skis on a snowy slope\nA zebra-print futon with red cushions in a student's room\nA street sign on the side of of a wooded area.\nA cruise ship rests in front of a dock with buildings in the background.\nA beautiful sunset occurs next to a stadium.\nA customized motorcycle with more in the background.\nTwo young children sitting next to a teddy bear.\na glove that has a bunch of baseballs in it\nTwo boys standing in front of a couch with Wii controllers.\nA man in a suit talking on a cell phone while sitting on a train.\nA train traveling down tracks next to a bridge.\nA red bus driving down a busy city street surrounded by tall buildings.\nA living room filled with furniture and windows.\na green and black train on a track with smoke coming from the top\nA personal pizza lies on a table next to a glass of wine and a salad.  \na person riding a skateboard at a skate park\nA pizza topped with large tomatoes and cheese with ham.\nAn animal grazing on a lush field of green grass.\nA table with many different objects, including a plate of sandwiches. \na small girl in a pink top is laying on a couches arm\nTwo cats laying next to each other on top of a bed.\nA brown and white cat on carpet with wall in background.\na woman jumping in the air so she can hit a tennis ball with her racket \nTwo tennis players talking over the net on a tennis court \na brown bull is walking on some sand water and a rock\nA kitchen filled with appliances and wooden cabinets.\nA woman taking a picture of her lunch at a restaurant.\nA man playing a game of sports with a hard swing baseball \nA man cutting a piece of cake on top of  a table.\nA large pair of black scissors sitting on top of a table.\nA picture of an outdoor area that looks great.  \nA group of soccer players scramble against each other to get the ball. \nA black and white cat standing in a white bathroom sink.\nA young man playing a game of tennis on a tennis court.\nA city at night with people walking around.\nA woman standing on a beach near the water\nClose up of a traffic light with three lights, the top illuminated red with a person image, the second down not illuminated, and the bottom on hanging down.\nA red stop sign hanging from a pole with \" Never \" and \" Loving \" painted on it.\nAn old rusted pickup truck sitting in a field.\na table that has some bananas on it\nThree people are at a table, one with a banana and one on a cell phone.\nA black and white cat is near a little dead bird on the sidewalk.\nA kitchen with a white tile wall and a chrome counter with a built in oven.\nA man flying through the air while riding a skateboard.\na person driving a motorcycle on a closed course\nA group of men standing around a room.\nA woman sitting in a car holding a small white dog.\nA man windsurfing on a board and making a sign with one of his hands, while holding onto a sail with the other hand.\nA group of people walking near some skis.\nA clock tower is on top of an old building.\nA man and woman that is standing near a cake.\nThe two elephants walk next to each other in the wilderness.\nPicture of a person that is reading a book.\na child laying on the floor tithe a toy sucking her thumb\nA transporting cart parked in a street while passengers board.\nTwo jack o lanterns are outside on a rail.\nA dog sitting on a couch under a blanket.\nA man carrying a suitcase and a bag at a train station.\nThis hotel room is neat, clean, and the bed has been made. \nA man sitting at a table with two kids.\nSome water that is reflecting a building near it.\na man sitting on a bench with a backpack and a cane \nA collection of luggage is in a pile on a green carpet.\ntwo women sitting on a park bench, one looking over her shoulder\na maroon train traveling down a train track next to trees\na bath room with a toilet near a window \nA young man running towards a white Frisbee.\nWoman skier taking a break and enjoying a snack\nSeveral cars parked along the side of a street next to a street sign.\nA red stop sign sitting under two green street signs.\nOddly shaped homemade pizza about to be cut with pizza cutter\nMan riding a surf board in a breaking wave.\nA person extending a white plate holding a sandwich.\nThe passenger train is painted brown and white. \nA group of friends is posing on the beach with their surfboards.\n2 smiling men ring a gong in unison.\nA laptop computer on a table in the passenger cabin of an airplane.\nThis little Korean truck is carrying soft drink bottles.\nA horse with blinder and a colorful harness in the woods\nthere is a small seagull standing by the water\nThis image is too blurry, can't see it.\nA cat is curled up inside a bowl. \nThree people sit on a bench looking out over the water. \nA man with a racket plays on a court.\nA man in white skiing in the snow.\nThe meal is being prepared in the big pot. \nA skateboarder riding down the concrete handrail of stairs \nA group of people sit next to horses. \nTwo tall teddy bears standing next to each other with a person kneeling between them.\nA man in an orange outfit is directing traffic to drive slowly.\na young woman holding a cell phone in her right hand\nAn eighteen wheel truck at a gas station. \nA giraffe standing next to a tree in front of another giraffe.\nAn elderly woman fanning herself while sitting outside.\nA baby standing next to a  toilet with it's lid down.\nAn Olympic snow boarder performing a trick. \nThere is no pattern to these four photos.\nThe baseball player is up to bat and ready to hit a homerun\nA man standing on a skateboard on paved area, near people sitting in chair or on ground cover with boxes and bags, and a truck in background.\nA pianist in a suit and glasses playing a keyboard.\nA green bus next to a shop on a small road.\nA street scene with a horse pulling a white carriage.\nA couple of people sitting down by a wall.\na airplane on a runway with the door open\nAn empty modern kitchen is lit at night\nA produced shelf in a store filled with fruits and veggies.\nA mostly empty dish of brussel sprouts and carrots.\nTwo sandwiches cut in half sitting on top of a white plate.\nA young man with his mouth open extending his neck tie out in front of him.\nA brown and white cow walking down a busy street.\nThe laptop is on the wooden desk near the man\nA kite flying over a sandy brown beach.\nA couple of people riding on a horse in the water.\nA chair and some books in a room.\nFancy traffic light with arrows and a mirror.\nA man talking on a phone while holding ski poles.\nA chair sitting in the middle of the room, in a black and white photo.\nA man riding a snowboard down a snow covered slope.\nA man flying a kite in a  blue sky on top of top of a field.\nA Marine that is looking at his cell phone.\nA very long table full of different kinds of food, which people are lining up to eat\nA mother bird and her offspring walk in a meadow.\nThe man in a blue shirt is serving a tennis ball.\nA group of young men sitting next to each other on a wall.\nRed metropolitan bus at intersection in city environment.\nA puppy laying on a purple blanket on a bed.\nThe refrigerator is cluttered with several different materials.\nA woman holding a tennis racquetball in a blue shirt.\nPeople are eating at an outdoor cafe at tables with red umbrella tops.\nA truck driving down the street near many vehicles.\nA tall wooden pole with two street signs hanging from it.\nA small kid sleeping in a bed with a clock on the drawer\nthere is a bike that is parked on a small bridge\nA black and white image of a laptop beside a coffee mug.\nA photo of the building with focus on the clock.\nA white and red bus is traveling down a road.\nA man riding a skateboard down the side of a ramp.\nA man stands in the doorway of a bus watching a man ride down the street on a white horse.\nPeople on a beach with a kite flying in the air.\nA cat laying bed in a small room.\na little yellow fire hydrogen that is out in the open\nTwo toothbrushes sit inside a cup next to tooth paste.\nA row of parked cars next to a pile of snow.\nThe vehicles are travelling down the road together.\nA man working on ski bindings with other ski gear around in a living area\nA young girl washing her hands at a sink while someone watches.\nThe two women eat donuts next to the cartoon character image.\nA man with crazy hair holding a Nintendo Wii game controller.\nA group of people walking up and down a city sidewalk.\nAn open door and a cat inside a house.\nA pair of tennis players practicing in an outdoor tennis court.\nOne zebra is front of the other zebra.\nA cook preparing fresh pizza in a kitchen.\nA cat is dressed like santa with a meme put together.\nSteak with assortment of green vegetables and french fries.\nAn orange and white cat standing on top of a beach.\nStreet signs on a pole painted in the colors of the Italian flag.\nA traffic light sitting next to a street lined with traffic lights.\na brown dog is laying on a gray couch \nA zebra standing on top of a grass covered field\nA group of people standing around a bed in a bedroom.\nA small group of zebras that are eating grass. \nA woman wearing a camera strap around her neck.\nTwo jockeys race their horses down a track.\nA white passenger train passing a parking lot at night.\nA smart phone, digital camera and mobile phone on display.\ntwo people standing very close to a microwave \nA small boy gets ready to hit a ball.\nA boat that is sitting in the water.\na computer is on a desk next to a lamp\nA group of people skiing down a snow covered slope.\na double deckered bus on a city street\nA boy holding two remotes in a room\nA pile of containers filled with lots of apple juice.\nCoast gaurs approaching a sail boat with big city behind\nA cat is laying inside a suitcase with a blue interior that is sitting on top of a bed\nA man walks down a street with an elephant.\nA view of the back of a horses head following another horse.\na man sitting in a life guard tower under an orange umbrella.\nA bowl of chili and a half-eaten sandwich on a plate.\nA game of Tennis being played on TV\nTwo women sitting on ledge looking at a cellphone.\nA cow stands in a field where other cows are lying down.\nA clock mounted on top of a building in the city\nPurple lilacs in a watering can on a windowsill.\nA few rows of tables with umbrellas on top of them.\nA man with a scarf is next to a suitcase.\nA large banana tree filled with lots of bananas.\na child standing in front of a chocolate cake sitting on a wooden table.\nA woman standing on a boat squirting mustard on a hot dog held by a man standing on another boat\nThe catcher and batter are looking for the ball.\nA stainless steel kitchen sink on a black granite countertop.\nTwo people on motorcycles are at an intersection in a rural area.\nA chandelier hangs in the foreground of a picture of a kitchen.\na man holding onto a skateboard at the skate park \nA living room scene with a dog and a cat sleeping on the floor.\nTwo men sitting on a yellow boat in the water.\nA man standing in front of a mirror in a room.\nA group of people on public transportation stare at their phones.\nA red fire hydrant stands on the sidewalk by the street.\nAn unhappy cat wearing a puffy pink beanie\nA man holding an umbrella in one hand and a cell phone up to his ear in the other.\nA truck is carrying bicycles in the back.\nA man and a woman holding game controllers while standing in a room.\nThere is a baseball player about to hit the ball\nAn opened fire hydrant spills water onto a busy street.\nA woman cooking in a skillet on the stove.\na guy laying on his surf board waiting for the wave\nThree young men holding Frisbees in a park posing for a picture.\nA man sitting on top of a skateboard on a street.\nA man with a green tie and eyes.\nA crystal bowl filled with oranges on top of a table.\nA baseball player who is running on a baseball field.\nA black stove top oven sitting inside of a kitchen.\nA man takes a picture in the bathroom mirror \nThe giraffes are standing in the fenced area.\nA pretty lady laying in bed with a laptop.\nA laptop in a bright yellow coffee house.\nA woman with beautiful breast sitting at a table.\nA person cutting a pizza with a pizza cutter.\nA yellow striped cat sitting on a bathroom sink.\nA photo of an outside with various things in the scene. \nTwo tall giraffes are next to bare trees.\nThree young men playing a game of frisbee on a sandy beach.\nA blue sign in front of a bamboo enclosure.\nA metal shelf topped with lots of different items.\nA dog touches noses with a horse through a fence.\nA game room full of electronics and video games.\nan image of a female tennis player that is returning a serve\nA deer standing next to a small deer in a forest.\nA person wearing skis going up a hill in the snow.\na mother elephant and a baby elephant are walking into a pond\na wagon that is being pulled by some horse\na man with a plate of pizza and drink in hand\nThe man is trying to surf the waves on the water. \nA bunch of street signs are near a building. \nA baseball player at home plate swinging the bat.\nA bear sitting in the grass surrounded by five vultures.\nA stuffed teddy bear sitting with books on top of it.\na traffic motorcycle cop waits to give a ticket\nA crowd of people standing on a subway platform.\na person kneeling on sand with a kite\nSome people who are walking on a beach.\nA flock of birds walking along a beach near water.\nA group of elderly people sitting atop stone steps.\nA television that is sitting on the side of a wall.\na pepperoni pizza sitting in a box with one partially eaten slice\nA couple of dogs standing and laying on top of a deck.\ntwo cat getting ready to get into a fight\nA herd of sheep grazing on a green grass covered piece of land next to a forest.\nA family is grouped on a sun porch for a photo.\nA double deck bus, with a convertible top.\nA computer keyboard next to a mouse and remote control sitting on top of a table.\na nice train travels next to some trees \nA cat eating food out of a bowl.\nA bath caddy is stuffed with all the amenities for teeth care.\nA picture of a group of fighter jets flying together.\ntwo people riding skis on a snowy surface \nA freckled girl sitting outside eating a cookie.\nA mirror that is on a tiled wall.\nA brown cow standing on the side of a road.\nA pizza on a table being eaten by two people. \nA colonial style bed with a white bedspread.\na man sitting down with a telephone up to his ear\nDark clouds moving in over a harbor full of moored sailboats.\nA surfer is riding back side on a wave.\nThe small room contained a bed, desk, and dresser, among other furniture and decorations.  \nthere is a large building under construction and many parking meters\nThe man is posing with his umbrella up.\nTwo women on a balcony cooking on the grill.\nA woman kneeling down to an orange cat on a lap top computer.\nA couple of people with remotes in a room.\nA grand building is topped with tower clocks and sits within a clear blue sky.\nA large group of people running after a frisbee\nmany black and white ducks are walking on a road\nA group of people standing around carts with fruit on ice.\nA toilet on the outside of a building next to a parking meter.\nA bathroom with a sink and shower curtain with a map print.\nA man riding down the street in a horse and carriage\na dog with blue eyes standing in front of an oven\nA bunch of candles that are on a cake.\nA colorful truck parked outside  at a parking meter\nBirds perched on logs on a lake near a wall.\nA person giving a giraffe some food with his hand.\nA man and woman sitting at a table with cellphone and beers.\nTHERE IS A CLOCK TOWER THAT IS ON TOP OF A BUILDING \nA body of water filled with boats under a cloudy sky.\nA man has some tape and a paper bag.\nA very tall building with lots of windows.\nA wild rides the waves on his surfboard.\nA zebra walking by some antelope in the wild.\nA man sitting on a couch using a laptop.\nA woman on a surfboard is riding on a wave\nA bull with long horns standing next to a brick structure.\nA boy in a helmet rides a skateboard\nA bird soaring over a lush green park.\nA yellow and red train traveling down tracks.\nA city street filled with traffic next to tall buildings.\nA bunch of statues that have hats on their head.\nA small boat in the water and a person.\nA person riding a skateboard up the side of a wall.\nA chalk sign is placed outside on a wall advertising a restaurant. \nAn overweight man leans back in order to play a video game.\nA person is doing a trick over a trash can.\nA cluttered desk with a black chair next to it.\nTwo people walk down the street with umbrellas.\nA woman sitting on the ground holding a purple stripped umbrella.\nA cat sitting in a chair with its eyes open.\nThree skiers preparing to ski and posing for the camera.\nthere is a surfer that is riding a wave in the ocean\nA platter filled with cooked food and broccoli.\nA surfer is on a board riding a wave.\n6 open umbrellas of various colors hanging on a line\nA toilet in a bathroom underneath a window.\nA nearly empty plate containing broccoli and brown sauce.\na person putting some pastries into a bag \nA herd of zebra standing in front of a building.\nA person wearing winter gear flies over a hill, while on a snowboard\nIn a grassy field stand 2 giraffes and 2 llamas.\nTrain stopped at a depot with people milling about.\nThe black and white locomotive is on the train tracks.\nA beige tiled bathroom with white fixtures and a mirror.\nA vase with various flowers in it sitting on a tiled counter.\nA person riding a skate board in the street holding a flag.\na baseball swinging a baseball bat at a ball\nA vase filled with reddish orange roses and shaving gel.\nA little girl is kneeling in front of an open refrigerator. \nAn elephant in a field with white birds\nA man holding a baseball bat on a field.\nThe sign on the door says the train is out of service.\na small bird on a branch in a tree\nA bear sits down on the ground with sand.\nA woman sitting on a motorcycle while talking to a child with a man laying in a hammock behind them.\nA motorcycle passing by a yellow dump truck.\nthere is a cat that is standing near the water\nA kitchen with a freezer refrigerator next to counters.\nDifferent kinds of street signs hanging from a pole in the city. \nseveral ducks in front of a placid river\nA passenger train at the end of a set of tracks in a building .\nA baseball player pitching a baseball on a field.\nA clock tower is presented with several lights.\nThe oranges are picked to make fresh jams.\nA large jetliner sitting on top of an airport tarmac.\nA white bed sitting between two lamp under a picture.\nFour men standing next to each other posing for a picture. \nA man speaks to some children on a farm.  \nAn airplane in the water a short distance from a rocky shore.\nA child in diapers standing on a bed.\nA batter standing behind the catcher is taking a swing. \nA group of people petting giraffes at a zoo.\nA red and yellow bus sits on the back of a flatbed truck, driving down the highway.\nA man riding a paddle board on a large body of water.\nA couple of people flying kites on top of a beach.\nThe man is driving a small boat on the water with his dog. \nA bird walking along a beach with a rock it its mouth.\na train on a train track at a station \nA sink with a toothbrush holder, soap and a mirror around it. \nBaseball memorabilia is displayed in glass stacked casings.\nA group of colorful cows laying inside of a barn.\nmany cars parked in a lot around several stores\nA kid standing there looking at his snowboard on the snow covered walkway. \nTwo people are cutting a pastry at a celebration.\nA tray of various foods next to drinks on a table.\nA close up view of a giraffe's face.\nA black and white cat sitting on top of a chair.\nA yellow stripped cat sitting in a bathroom sink.\nA group of people riding on the backs of motorcycles.\nA woman holding a birthday cake with one candle near a man with a baby in his lap.\nA cute little white cat sitting on a keyboard.\nA group of zebras drinking water from a pond next to trees.\nThe casual  vehicle parade features a patriotic theme,\nA giraffe drinking water and some elephants near a watering hole.\nA woman skiing on the snowy slopes. \na sign out side a very tall building.\nA young man using his laptop at a desk\na cat sleeping near lots of pairs of shoes\nThere is a plate of food that is packed with different foods\nA man standing on a tennis court holding a racquet.\nA group of people in suits standing in a kitchen.\na couple of elephant walk through a dust area \nA living room filled with furniture and decor. \nSeveral antelope and zebras graze while in a grassy area\nassorted desserts sitting on an outdoors table \nA laptop computer with a beer sitting next to it on a table.\nA green road sign with a bike painted on it.\nSeveral small children playing on grass with bats, a ball and a glove.\nSkis and ski boots sit together on a tiled floor.\nThe small boy is ready at bat in the indoor batting cage.\nA woman with a tennis ball is next to a child\nA fighter jet is flying at a fast speed.\nPeople kneeling on their knees in the snow with snowboards.\na man holding a bag watches a baseball game unfold \nAn elegant with a red shawl draped on top of it.\nan image of a cars driving on the highway\nA cluttered kitchen with oven, rice maker, and microwave oven\nA man standing on a beach flying a kite.\nA brown cow standing on top of a dry grass field.\nToaster and blender plugged in on a kitchen counter.\nA bunch of household items sitting in one room.\nA laptop computer sitting on a wooden desk next to a monitor.\nA cat laying on top of a flat screen TV.\n3 dogs sitting in front of a fruit and veggie stand.\nA large green and yellow truck parked next to a similar green and yellow truck.\nA large flock of birds fly through the sky.\nA man wearing a glove pitching a baseball.\nA group of people standing around a chicken coup.\nTwo young men are looking at a computer screen. \nA paper plate that has two pieces of pizza on it.\nCity buses prepare to leave the bus station\nThere is a older man on a motorized chair riding on the grass\nA yellow and blue train is next to an overhang.\nA group of people play Frisbee in a field.\na man standing on a sidewalk outside a parkded bus\nA man standing in the street with a umbrella.\nSomeone has taken a picture of the rear end of this elephant.\nA young boy climbing into a surfboard in the water.\nA pile of cut hair on top of a comb and pair of scissors.\nAn old man wearing a red tie and a black vest.\nA man holding a pizza pie with a section missing. \nSmiling girl wearing glasses, with a cellphone up to her ear.\nA woman sitting at a table with a plate of food.\nA bird is perched by a leaf on a tree branch.\nA pair of elephants lined up next each other in an enclosure.\nA guy on a snow board in the dark.\nA bunch of very green broccoli cut into spears.\nA stop sign at the end of the road.\nA bathroom has the blue toilet seat off.\nA baby sitting in a high chair eating food.\nLaptop and extra computer screen on top of desk.\nA man works on his laptop in the dark. \na person riding a wake board on a body of water\nA man with a surfboard is walking along the beach.\nSome girls who are playing soccer against each other.\nA tie rack sitting inside of a white closet.\nA green double decker bus pulling into a parking lot.\nA large group of people are flying kites in the park\nThree uniformed men simultaneously cutting a sheet cake\nA couple stands smiling next to a sitting older couple.\nA three pronged fork sits on a white plate.\nA double layer chocolate cake with chocolate icing.\nA plate with a slice of cake on top of it next to a fork.\nA man poses while standing between two surfboards\nA girl and boy sitting at a wooden table with the boy looking at the girl.\nA red and white bus sits in front of a large, stone house.\nThe tower of the building has a clock displayed. \nA room with lots of seats next to an entrance.\nThe van is driving down the street in traffic.\nA man is looking at a sliced pizza.\nA green train traveling down train tracks next to another train.\nA woman talking on a cell phone standing in front of a board.\nA young tennis player ready to hit a ball to the other court\nA boy eats a slice of pizza at the dinner table.\nA tiger striped cat being petted on a wooden bench.\nAn SBS Transit double deck bus on a city street.\nA man looking after an elephant in some exotic country.\nAn outdoor with a patio with chairs and a wooden deck. \nA group of men playing a game of soccer on a field.\nA group of knives mounted to a kitchen wall.\nA plane sits outside a room full of chairs. \nA boat floating in a harbor of a very large city.\nColorful post notes are placed all over the bathroom and shower walls.\nA person pulls a suitcase across an urban intersection. \nA woman licking donuts in a box of donuts.\nA display of clocks inside a shop window.\nBedroom with a bed, dresser, and small picture hanging on the wall. \nan image of a street sign on the street\nA little girl is reaching for something a boy is holding.\nTwo young kids holding a frisbee while seated on a bed\nA person is standing on a very snowy hill wearing skis.\nA large green couch sitting on top of a wooden floor.\nA group of people gathered around a table filled with food.\nA man in a wetsuit rides a wave in the ocean\nA large commercial airliner is flying through the sky.\na male snow skier in a black jacket snow and trees\nA bowl of oranges sitting on top of a wooden table.\nA boy is making a blender recipe with a girl looking on.\nA yellow bird sitting on an oddly curved branch.\nA baseball player strikes a ball with his bat.\nArtwork of a ship with three masts and one sail open with a scull and crossbones on it, in bluish gray water with gray cement wall in background.\nA man holding a tennis racquet on top of a tennis court.\nA woman lies on the ground under a suitcase.\nInside of a kitchen with a refrigerator and counter top.\nA group of horses gathered in a pasture.\nBoy in swimsuit on a beach throwing a frisbee.\nA photo of some flowers in a ceramic vase.\nInviting looking chairs made from old snow skis.\nA cat sitting on the steps in front of its cat door.\nA man sitting at a computer desk with two desktop computer monitors sitting on it.\nWater is spewing form the ground while people watch on.\nA woman sitting down holding a Nintendo Wii controller.\nThe bus is parked alongside the road and is empty.\nA desktop computer sitting on top of a desk.\ntwo giraffes in  field near some trees \nA group of four carrots on top of a wooden cutting board.\nAnimals in a field surrounded by trees and fencing.\nA goat is standing in a barn by some hay.\nA laptop and a cell phone on a table.\nA man holding a bag with a doughnut in it.\nA steak sandwich on a bun with peppers, pickles and cheese.\na couple of small dogs sit in a basket on a bike\nA man flying through the air while swinging from a pole.\nA bus coming around the corner on a city street.\nA black and white image with a colored british flag umbrella\nA plate of pizza sits on a table.\nPeople in hats are riding on a large elephant.\nA den with a couch, table, book shelf and a television.\nA plate of food on a table with a person eating nearby.\nA train moving down the rail road tracks .\nTakeout food lies nestled in white paper with serrated edges.\nA man in a field works to get a kite off the ground.\nPeople attempting kite boarding on a very windy day\nThe guy is so excited playing his video game.\nA small red plane sitting on top of an airport tarmac.\nA boy with a baseball bat is in front of a TV.\na woman is getting ready to strike a tennis ball\nA young baby sitting in front of a laptop.\nA man kiteboarding on top of a snow covered ground.\nA man riding a surfboard on top of a river.\nA stop sign that is right by a road.\nA man standing next to another man while kicking a soccer ball.\nA bus is passing through an intersection beside a building.\nLooking across the ocean at sailboats on a sunny day\nA welcome mat placed at the foot of a closed door.\nA man wearing glasses talking on a phone\nEashitte and little lamb and a large open field\nA small kitten laying on top of a purple slipper.\nTwo men smiling while they are in a car with a dog.\nA basket of large carrots next to a box of bell peppers.\nA person riding a surfboard in the ocean.\nA train is moving on tracks beside a sidewalk.\nDozens of donuts are under a glass display case.\nA bus that is colored in the colors of the Canadian flag.\nthere is a male tennis player on the court\nA plate with a steak, steamed broccoli and noodles.\nMotorcycle parked next to SUV in car garage\nA young child holding a Nintendo Wii game controller.\nKitchen of home with electric stove and wood oven.\nLone giraffe standing in shade of tree in outdoor natural area.\nAn open refrigerator with food and condiments inside of it.\nA top down view of a computer and keyboard\na person eating a banana with chocolate on the ground\nA couple of women standing underneath umbrellas next to each other.\nA clock tower in the middle of a town square.\nAn elephant in a field touches its nose to its mouth.\nThree donuts in a box that is open and on a bike.\nA white toilet sitting in a bathroom stall next to a TP dispenser.\na bicycle and parking sign that is upside down\nSepia photograph of a stop sign next to row of mailboxes.\na big kitchen with an island and track lighting \nA pita pizza fills up an entire plate on a table.\nA child eating a sandwich with relish on it.\nShe's probably not going to get to that frisbee in time.\nA little boy in a yellow shirt feeding a giraffe.  \nA bicycle carries a cake from Dairy Queen on its back.\na large blue clock on a brick building\nA man riding a skateboard in a river bed.\nThere is not much space left for anything else.\nA person on a skateboard on the edge of a ramp.\na bathroom with towels , lights, and a sink that is clean \nA grand bed is adorned with a net canopy and surrounded by large estate furniture.\nA hazy beach is filled with people under umbrellas. \nA man and a woman playing a game on the Nintendo Wii.\nsome oranges and a banana and some vegetables\nthe birds are flying next to the boat \nA man flies a kite in the sky above a stone retaining wall.\nTwo white bullet trains parked at a train station.\nA group of people sitting and standing on top of a sandy beach.\nA giant sonic the hedgehog standing on a beach with a surfboard.\nA woman bending over to get something hot out of the oven.\nA pair of scissors on a salon sign\nA large clock tower with a giant clock and two statues.\nStop lights are lit up in a cloudy dark sky.\nA dog wearing a Santa Claus hat. \nan unattached toilet in the middle of a room with red tiled floors.\nA parking meter sitting in the middle of a flooded street.\na very young man flying very high when skating\nA couple of plates topped with sloppy joes.\nA dog walking down the street with a bunch of birds flying around.\nA vintage STOP sign in black & white\na number of horses in a field near a building \nTwo large trains at a modernized train station, people walking about.\nA man in a elevator taking a self portrait.\nA shopping center with parking lot along a busy street.\nA grey picnic table with umbrella is placed in front of a row of food trucks.\na red train is sitting on some tracks \nEggs, orange and vegetables are sitting on a plate.\nA group of wooden benches sitting on top of a wooden deck.\nA woman talking on a cellular phone with someone nearby.\nA PICTURE OF A WORKER PUSHING LUGGAGE \nA rural city has some food trucks on the corner.\nSchool buses parked along the curb of a city street.\nTwo giraffe standing next to each other on a lush green field.\nA man with a helmet riding on a motorcycle with a basket on it. \nAn orange truck driving next to a forest.\nA woman poses for a photo holding an umbrella over her head.\nA giraffe extends its tongue to drink water\nA brown bear walking on a ledge with trees in the background.\nA batter is swinging the bat in a baseball game.\nA kite flies high in the air near some docks.\nClose up view of a fresh baked cake with nuts topping\nA stone and sand area leading to a slope with stone and grass terrain.\ntwo people on a snowy surface with a sky background\nA snowboarder poses next to two skiers on the mountain.\nA harbor with various boats and people walking up stairs.\nA tennis player reacts during a match on a tennis court.\nGirlfriend surfers paddling out on their surfboards \nA group of people watching a man in the water.\nA picture of some animals eating some grass.\nA cat sitting on top of a mans lap next to a keyboard.\n clock tower that is lite up in the dark.\nTwo zebra waling across a dry grass field.\nWoman and man playing with a disk toy outside on the beach.\nA gray train riding on a track as people are walking. \nA plate topped with bananas and red potatoes.\nA herd of giraffe walking along a grassy tree covered plain.\nA brown and white cat resting in someones shoe\nTwo old men laughing at a dinner table in suits. \nA beautiful woman sitting on a bench next to a body of water.\nA newly married emo hipster couple sitting on a bench.\nA person walking towards the ocean with a surfboard\nHang time, young man skate boarding down stairs.\nA refrigerator has it's door open and is full of food.\nan old photo of a castle at the end of the street\na white dog is sitting in the back of a truck and a mattress\nA bathroom with a sink, a fan and a mirrored medicine chest.\nThree people are sitting at a table eating pizza.\nA city street with a sign that says fun\nA parked motorcycle sitting next to a store front.\nThree giraffe eating greens in a field next to lots of trees.\nThis shirtless young man is wearing a tie.\nA white plate topped with food next to a fork and drink.\nA nice meal on a plate with a green cloth underneath.\nTHERE ARE MOTOR BIKES THAT ARE PARKED ON THE STREET\nA group of men sitting at desks with computers.\nA person sitting on rocks near the water holding a surfboard.\nA herd of zebra standing next to each other on a grass field.\nEmergency paramedic medical workers caring for an infant on a train station walkway. \nThe wing of an airplane over a large area with mountains.\na group of people sitting down with umbrellas\nCloseup of two red-haired bulls with long horns\nA toilet sitting in a bathroom next to a sink.\nA woman gives a shocked expression while holder a remote control on a couch.\nA group of people standing on top of a beach next to the ocean.\nA group of clocks that are on the wall.\nThe view of a kitchen refrigerator and checkered tile.\nA little kid that is playing with stuff.\nA women who is walking in the snow on skis.\nA sandwich served with mixed vegetables and plated.\nA vintage VW bus that is red and white.\na couple of plates of food that has a stick in it\nA series of two photographs of a boat on a river.\nSeveral people stand on a sidewalk by a train next to a cart stacked with materials.\nThere seem to be bags of trash in the back of that truck.\nA toilet is shown against a wall with wires.\nA boy playing baseball about to hit a ball.\nA man taking a picture of himself in front of three huge beer bottles\nSome cows eat grass together in a field. \nA woman sitting next to a man on a bench.\nSmall bird hanging off the side of a cage bird feeder\nTwo zebras playing together on a dirt road.\nA very tall old building sitting on the corner of a street.\nA woman in a bikini standing on a beach next to the ocean.\nA woman taking a selfie in front of a large mirror.\nA stop sign stands amongst a garden of cacti.\nA street scene with a large truck turning a corner.\nA red bus parked in front of a building on the side of a street.\nA bedroom with a dresser, tv, and a lamp in it.\nA beautiful red haired woman holding a cup while wearing a sweater\nA young man holding a tennis racquet in his hand.\nA building with a large circular window that has a designed iron bar cover on it and a pigeon flying from it.\nA man in a suit and top hat talking on a phone.\nA black and white cat laying on a couch holding a stuffed animal.\nA brown bear walking through a forest next to fallen trees.\nAn older man backing up a truck with a bicycle in it's flat bed.\nA shiny antique bus coming though a gate by a brick building\nThe two cats are laying on the chair together. \nA man holding a small white dog while wearing a black hat.\na sidewalk with a fence, street signs, and a lot of trees along it \nAn adult woman playing a game of frisbee with a little girl.\nA cat up on a desk drinking milk from a glass.\nA row of construction cones are lined up behind a fire hydrant.\nA blue vase filled with white flowers sitting on a floor.\nA baseball player swinging his bat at a baseball game. \nA man carrying a blue piece of luggage near an escalator.\nA couple of people riding skis down a snow covered slope.\nContents of a refrigerator inside compartments on the door.\na red brick wall with a large clock in it\nMany elephants being paraded through an area of spectators.\nA crowd of people sitting in a room on to of a wooden floor.\nA pizza casserole  with two kinds of crackers on the side.\nAn umbrella on a cement wall that says \"San Miguel\".\nA man swinging a tennis racquet at a ball on a court.\nA young baseball player throwing out a pitch\nA white pickup truck waiting at a red light.\nA surfer crashes into the ocean after riding a wave.\na guy trying to fly a kite outside\nA man with a blindfold holding a wine glass\nTwo older women playing Wii very enthusiastically in a living room.\nA small plane is taking off from a grassy field.\nA dish of pancakes covered in bananas and strawberries.\nA pair of individual using sails to surf.\nA dog eyeballing something cooking in the oven.\nPeople hold flying kites in the air by the water\nA elegant and spacious living room in white.\nBunches of bananas hanging from the ceiling of a produce market.\nA woman sharing a smile while looking at a cake.\nA city with lots of tall buildings and a gash station.\nA white and gray bird soaring over the blue ocean.\nStyrofoam coffee cup laying on an metal bench.\nA parked silver Nissan Titan four door pickup truck.\nThe meal is ready on the tray to be eaten.\nA zebra staring blankly near a watering hole.\nA view of a bus traveling on top of a bridge.\nA dog is sitting on a work table looking down.\nA group of people sitting around a table sharing a meal.\nA man holding a tennis racquet in front of a crowd.\ntwo dogs laying down on a brown couch\nA large blue passenger train pulling into a train station.\na red and white sign a car and some buildings\nYoung girl in a dress playing with a frisbee.\nA man walking down a beach with a surfboard in hand.\nTennis players do give congratulations to their opponents.\nA young man wearing a catchers mitt on top of a baseball field.\nA young boy holding a slice of pizza in his hands.\nA small white dog standing next to a red fire hydrant.\nKites flying over a large park in the middle of a city.\nTwo stuffed animals sit at a table with honey.\nThe zebra is looking in the window of that car.\nA kitten playing with a video game remote control. \nA rural train station is loading and unloading passengers\nTwo dogs are is sitting in the back seat of a car.\nLarge group of baked goods sitting on display next to each other. \nA person holding a hot dog with a white wrapper.\na pizza sitting on a plate next to some drinks\nA snowboard is left vacant in view of large snow capped mountains.\nA huge airplane looks small against a wide open concrete area.\nA man standing on a tennis court holding a tennis racquet.\nFive statues of people on a pavement \nA middle aged man takes a selfie in a mirror.\nTwo semi trucks are face to face along side a roadway.\nA couple vases of flowers on a counter next to a bar.\nWoman at wooden desk with a glass of finished wine in front\nA bus parked at a bus stop on a city block.\nA group of sheep is standing in a grassy field.\nA bouquet of flowers in a vase sitting on a table.\nFolded red cloth with a plate on top containing a bran muffin, small tin of cream cheese, and a butter knife, behind which are a red apple and a glass of ice water.\nThe long train has a yellow and red engine and moves down the track.\nThe tiny white bathroom has a toilet and pedestal sink.\na view through a car windshield of a stop sign\nA taxi cab that is sitting in the street.\nRacers racing on their horses around a track. \nA beautiful young lady brushing her teeth in front of a mirror.\nWoman throwing a ball into the air in front of a house. \nA cat standing on top of a laptop computer.\nA group of people are standing on the sandy beach.\nA blonde woman sitting on a park bench next to a green bike.\nA wooden bench is under the shade of a large tree.\nThe person is holding one of two surfboards on the beach. \nA group of people flying kites over a beach next to the ocean.\nA large gray tiger cat standing on a table.\nA person standing at the plate in mid swing of a bat\nThe pickup truck has a storage compartment on the bed.\nA boy in black shirt doing a trick on a skateboard.\nTwo teddy bears position to look like they are playing instruments.\nA wooden table topped with plates filled with lots of food.\nThis aerial shot shows a person crossing the street with an umbrella over their head.\nTwo black cows grazing in a grassy field\nPerson on a motorcycle coming up to a stop sign on the street.\nA small elephant licking a blue metal fence.\nThe man poses while standing in front of two clock on the wall.\nTwo men riding horses along the body of water.\na motorcycle on the back of a truck with a fence in the background\nA news caster sitting in front of a screen.\nA baseball player takes his turn at bat.\nA teddy bear laying on top of a bed with lots of pillows.\nA white bath tub sitting under a window next to a toilet.\nA sleek gray plane flying through a cloudy sky.\na man with a hat riding on a surf board\nA train traveling under a bridge next to other tracks.\nA tall building on the street corner filled with traffic.\nA cat leaning on top of a wooden table.\nA very neat living room with the television on.\nA cat that is laying down on a couch.\nTwo elephants standing next to each other in a jungle forest. \nA herd of cattle standing on top of a lush green hillside.\nA young woman standing on top of a field about to catch a frisbee.\nTwo elephants in a herd playing with each other.\nA baseball batter up to plate about to hit the ball.\nA laptop sitting on a desk with other accessories. \nthere is a one way street sign under a street name sign\nA elephant running after a dog on a mud flat.\nA clock mounted inside of a purple bag.\nA person leading a herd of sheep with a dog.\na cat stares into the camera while sitting on a blanket \nEmpty seats in front of a building on a sidewalk.\nThis kitchen has a black stove, stainless steel refrigerator and white cupboards.\nA man is standing in the shade of the tree near a large field.\nA building in a grassy area with a sign indicating which way\nA green bench sitting on the side of a sidewalk.\nA man is playing tennis, the ball is coming toward him.\nThe personal sized pizza has pepperoni and black olives.\nthere is a goat that has a leash on \nThe three green buses are parked next to each other.\na close up of bread a plate of asparagus on a wooden surface\nA guy on a skateboard performs a trick on a half pipe.\nS&B train number 3815 coming down the track, country area.\nA man smiling while standing in the snow with one foot on his snowboard.\nA bathroom with an enclosed shower door next to a toilet.\nA red couch sitting in a living room next to a table.\nA street sign for Davis St. and Third Ave. with a skyscraper behind.\ntwo bikes parked on the street with pizza delivery boxes attached to their back ends\nA young man jumping off a staircase while riding a skate board.\nAn old photo of a man playing tennis on a grass court.\nA bear walking across a rural road in front of a crowd of people.\nthis is a cathedral as seen from across the street\nTwo large elephants wander the wilderness under a cloudy sky.\nTwo black cats sit on a windowsill looking into the backyard garden.\nAn animal that is on a tree eating some food.\nA gray tiger striped cat sitting on a piece of blue luggage.\nA woman holding up an umbrella near a stage.\nA colorful train engine on the railroad tracks.\na mirror that has a big white sink on it\nA dog laying in some hay on the ground.\nA group of people traveling down a cobble stone street.\nA small empty bathroom with brown painted walls\nA brown calf standing in a field with another cow looking on. \nA group of people sitting around a table next to each other.\nA light brown horse's face is shown at close range.\nA kid standing next to a globe in a room.\nA cow standing on a mount of rock filled dirt next to a  lush green field.\nA group of people riding on top of a snow covered slope.\nA woman is editing a video from her laptop using 2 large television screens.\nA hand holding a hot dog and a table of food.\nA group of giraffe standing and sitting on a  field.\nA woman sitting down with a child sharing a piece of cake.\nTwo people posing with skis and a snowboard on a mountain.\nA big brown horse near a fence in the snow.\nTwo men and two women walking in the rain while on of the men has an umbrella over himself.\nA cat is wearing a pink wool hat.\nA man flying a kite in a blue sky.\nA person laying on top of a luggage carousel.\na giraffe and a zebra are standing in a field\nA table topped with bowls filled with different vegetables.\nA girl looking out her window in her room. \nA very large cheesy pizza sitting on top of a rack.\nA car is stopped at a red light\ntHERE ARE MANY DONUTS LAYED TO DRY ON A GRILL\nA group of people riding horses on the beach at sunset.\na table with some plates of food on it \nTwo people on two horses at a distance on a beach with water and sky.\nA couple of men walking across a sandy beach.\nA banana leaning on a lemon that has its end sliced off in front of a spaghetti squash.\nA dish of broccoli is sitting on a plate.\nA dinner party draped in sheer drapes and adorned with stuffed farm animals.\nA man standing next to a woman holding a game controller.\nA television is reflected from a bathroom mirror.\na bunch of sheep are walking on the road\na group of people walking on an elevated walkway\nA white toilet sitting on top of a wood floor in a bathroom.\na person riding a skate board on a rail \nA man is riding a bike and talking on his cell phone. \nA box with a cheeseburger and fries and a container with a hot dog \nA herd of goats walking along a dirt road.\nA road filled with parked cars in front of a shop.\nA large jetliner airplane sitting next to another airplane on a runway.\nA group of zebras next to each other with two giraffes in the distance.\nA cow standing in shallow water next to a wooded forest.\nA man standing on a tennis court holding up a racquet.\na girl with glasses standing in a kitchen\nA group of people riding down a snow covered ski slope.\nAn elaborate contraption on a water faucet for a bathtub.\nA toddler on a surfboard in the sand on a beach.\nA yacht with people is near a pier on clear water.\nThree blue and white vase on a shelf against a patterned background. \nA laptop computer sitting on top of a wooden desk.\nA man on his skateboard is in the air pulling off a trick. \nA picture of a recently married couple displayed behind glass.\nA man and a woman sanding on a dirt road while holding an umbrella.\nA cop car sitting on the side of a road behind a motorcycle.\nThe bathroom is equipped with several new appliances.\nA cow standing between two cars on a dirt lot.\nAn old motorcycle parked on the side street with an umbrella over it.\na man placing a pizza inside an oven\nA man holding a frisbee in one hand and some balls in another.\nTwo men standing on a very tall clock tower with a white clock and two thermometers.\na boat in a marina tied to other boats\nA man holding a tennis racquet on a tennis court.\nA cat peeks its head out of curtains.\na close up of a young person holding a skate board\nA man sitting at a bus stop on a green bench\nthere is a street sign that is on the street\na man swinging a tennis racket and hitting a ball on a tennis court.\nSeveral people in jackets sitting on a raft.\nA captive elephant bellows from behind the fence.\nA square pizza being cut into pieces by the pizza maker\nA white kitchen sink filled with dishes and eating utensils.\nA man sitting on top of a black box on a sidewalk.\nA small white boat floating on a blue body of water.\na man is holding a plate and smiling happily\nBaseball player in blue and white uniform swinging at a ball. \na man is snowboarding on a snowy hill\nA plate that has different types of food on a table.\nTwo buildings with a plaza between that has a clock tower.\nTwo street signs on top of a stop sign.\nA woman is about to throw a frisbee in the dirt.\nWhen it's this cold, it's better to stay out of the wind.\nA bear walks alongside a road near a tree.\nA person wearing chaps with the rear end out and a stuffed bear hanging off their back \nA herd of  zebra running around a dirt field.\nA white toilet sitting next to a walk in shower.\nA glass coffee table sits in the middle of a living room.\nA stoplight and a street sign in California.\nA dog with goggles is in a motorcycle side car.\nFive men pose for a photo as they sit on their motorcycles\na jet airplane parked in the airport next to a building\nA large white city bus stopped at a bus stop.\nsurfboarder with a big board on the shore giving a thumbs up\nA tennis player using his shirt to dry his face during a tournament game.\nA guy wearing a white shirt holds up a white frisbee.\nBoys on a sports field trying to catch the same frisbee.\nA woman holding a young child in her arms.\nA wooden box with a bird in a tree painted on it.\nA traffic light suspended in the air in front of a brown and red brick building.\nA man standing on top of a lush green field.\nA man standing on a rock holding a surfboard.\nA bath tub sitting next to a toilet under a window.\nan red and white fire truck and a red truck and buildings\nA man tossing a frisbee to a brown dog.\nThe baseball player is throwing the fast pitch.\nA man tossing a white frisbee on top of a grassy park.\nA red traffic with a mirror hanging off the side of it.\nA white bath tub sitting next to a sink in a bathroom.\na person wearing a gorilla costume and a suit and tie\na white and black bus is driving down the street\nBLACK AND WHITE PHOTO OF WOMAN HOLDING UMBRELLA\nA dog that is standing in the grass with a bull.\nA woman sitting down at a table with pizza.\nTwo monkeys, one with a banana at a tourist stop\nA pile of green yellowish banana sitting in a basket.\nA man that is holding a surfboard in the snow.\nA surfer rides a wave in the ocean.\nThe stalk of bananas is still very green.\nA man with a beard standing on the beach with a surfboard under his right arm and he is looking out into the ocean.\nA man playing a baseball game on the field playing a game \nLonghorn cows stand or recline in a barn.\nA plate of food containing carrots, oranges and avocados\nAn unmanned boat is in the ocean water.\nA man leaning on his motorcycle along the roadside.\nGroup of skiiers in the large mountains walking towards ski lift\na lady that is just about nake that is outside\nA dog laying on desk next to keyboard, phone and monitor.\nA group of young children standing next to each other.\nA bird sitting on top of a green lily pad.\nA man on a surfboard surfing on a wave.\nA peep hole view in to a nice looking room.\nwater and trees with a mountain behind them.\nWoman in a kitchen with cups and water pitcher.\nA female tennis player is in great shape, holding her racket. \nA woman is at a park playing frisbee in the rain.\nA bathroom with a shower, toilet, and sink.\nTwo slices of pepperoni and cheese pizza with crushed red pepper flakes. \nA man is herding some sheep and with a black dog. \nThree white urinals hanging on a wall in the bathroom.\nA yellow fire hydrant that is missing it's top.\nHere is a scale weighing a tan piece of luggage.\nA dog sleeping on bed against the wall. \nVase with water and flowers in it sitting on the window sill\nA person on a skateboard doing a trick on a table.\nA man in green shoes stands next to a red motorcycle.\nThe pizza looks like it may be ready to come out.\nTwo children are sitting at a table eating food.\nA small pizza sitting on a decorative plate.\nA tennis player is swinging to hit the ball.\nGrilled toast piled with lettuce, a cup of black coffee and a glass of water are on a counter. \nA very cute zebra eating some green grass.\nA black goat with its mouth open next to a white goat. \nA parking meter in a parking garage that has a lot of cars. \nA red brick building with a street sign sitting outside of it.\nA yellow double decker bus driving down a street\nA plate that has a pile of doughnuts on it.\nA couple of bags of someone's belongings that were left unattended. \na close up of a banana on a plate next to a bowl\nA fire hydrant in front of a graffitti written brick wall. \nA group of buses parked next to each other.\nA ski slope consisting of several people wearing skis and snowboards.\nA person that is on ski's standing in the snow.\nA elephant that is standing in the dirt.\na close up of an open umbrella on a a fence\nPink bike sits on a guard rail by the river.\nA cat sitting on the floor watching television.\nA group of people sitting at tables eating food.\nA pizza in a pan ready to be baked \nThe bedroom has a chair and a fireplace.\nA lone person stands in a large, city scene.\nA zebra next to giraffes in an enclosure\nA herd of animals walking and laying on a lush green field.\nA couple of small beds in a room.\nA young boy holding a kite next to a body of water.\nA yellow and green checkered motorcycle parked in front of a store window.\nA young man has his foot placed on a pole while another looks on. \nTwo hot women laying in bed together next to pillows.\nThe street sign says \"Can't Stop The Dance\".\nA white plate topped with a pie and a bowl of butter.\na subway train at a station filled with people\nTwo men greeting each other with a handshake.\nA man's hands working on a laptop computer with a television screen in the background.\nThe blender pitcher is filled with pieces of fruit.\nThree captive giraffes are standing about in a zoo.\nA living room with orange and green color scheme \nA convoy of dump trucks make their way past the supermarket.\nA cat that is laying down on a couch.\nA large group of people on bikes on a road.\nA train traveling down tracks next to a lush forest.\nTwo men standing up and playing the Wii.\nA man pushing a cart filled with lots of fresh fruit.\nA group of women that are standing near each other.\nA bathroom sink with two toothbrushes facing each other.\nA big chair with a gray cat laying on top of it next to a black dog.\nA woman playing tug of war with a dog over a white frisbee.\nA ten speed bike is next to a wooden desk.\nA woman is sitting on the rock bench talking.\nA man sitting on a park bench reading a book.\nA man is eating a plate of food at a restaurant.\nA knife sitting on top of slice carrots.\nA number of cattle outside some houses \nDecorated elephant statue near many bicycles in racks.\nThere is a dog sleeping on a futon.\na public transit bus on a city street \nA white square plate topped with meat and veggies.\nA small sink inside of a very clean and white bathroom. \nA group of men on a field playing baseball.\nLarge signs are suspended from the buildings above the city street. \nA kitchen with brown cabinets and white appliances.\nA bathroom with a spa tub, sink, toilet, yellow stripes on the floor, and flower decorations on the walls.\nA pair of surfboards that have been placed upright. \nA young boy riding skis down a slope\nA black stove top oven sitting in a kitchen.\nThere are two people enjoying a wedding reception\nThe pack mules carrying loads on their backs are ascending the stairway. \nA giraffe standing next to a covered structure.\nA girl starting to fly a large kite.\nA clock is standing in the middle of the grass in the middle of the afternoon.\na couple of people are in line at a vendor\na group of young people playing soccer on a field\nA couple of fishing boats docked next to pier on the ocean.\nA man sitting at a table with a bunch of wine glasses.\nA man looks down at a dog standing on a skateboard. \nA kitchen with white cabinets has a sink and white refrigerator.\nA orange and cream colored bus parked outside a small market.\nAn adult zebra and a child zebra walking through a lake. \nA cat on the lid of a toilet looking perturbed.\nA person in snow gear skiing down a snowy slope.\nA boy practicing his techniques coming down the ramp on a skateboard.\nTwo toilet stall, one blue and the other orange.\nA person doing a skiing trick in the air.\nA large assortment of donuts with different colored toppings\nA train sitting on train tracks next to a  small rural road.\ntwo tags one with an elephant on one and a dog on the other\nA cat laying on top of a bag in front of a camera.\nA couple of double decker buses driving down a street.\nA man examines an electronic device standing by a table.\na plate of pastry on a wood table and a glass of drink \nToilet in a bathroom in an international location with a basket.\nA park full of people flying kites on a sunny day..\na couple of zebras are in a field\nA small plastic dish with food in it \nThe woman sitting near a Christmas tree holds a glass pitcher.\nA building shines in the clear sky as cars drive underneath.\nThe reflection of a woman carrying a bag over each shoulder in a mirror.\nA woman is talking on her phone while walking.\na red motorcycle parked on some gravel next to grass \na green table some people oranges and bananas\na red and yellow bus is parked some people and cars on a street\nA cat lays on top of an open and turned on laptop computer.\nA bicycle that is resting upon the wall of a building.\nA dog in a red shirt holding a red frisbee in its mouth. \nThree people who are jumping on a bed.\nTwo horses running in a grassy field together\nA window on the side of a building behind a parking meter.\nA fruit salad in a bowl with slices of fruit around it.\nA bathroom with a sink, toilet and shower bathtub combination.\na woman is standing at a sink in a kitchen\na trey with a bunch of vegetables on it \nA strawberry cheesecake on a green plate that is on top of a pink and white cloth.\nA woman standing beside a Christmas decorated street post.\nA clock tower on top of a store building in a busy city.\nA kitchen sink with a basket of vegetables and knives beside it.\nA green lizard is eating a brussel sprout.\nA room with tables and laptops and a power point screen.\nA baseball player holding a bat next to home plate.\nA red stop sign sitting on the side of a road.\nPeople ride on elephants to cross the river.\nA large white dog statue sitting next to a clock.\nA red train engine parked on top of a snow covered ground.\nA post with several street signs on it, including the name.\nA bicycle is parked near a body of water.\na person looking in an opened refrigerator \nA silver train sitting on top of train tracks.\nBlack and white photograph of dogs riding in bed of truck.\nthis is an image  of a child's birthday party.\nA man standing next to a blue and brown bed.\na long beige bathroom with a door to a bedroom and another to the hallway\nTwo neatly made beds with matching walls in a room. \nA white plate topped with sauced covered food next to broccoli.\nThe infamous Big Ben clock tower towering over the city of London.\nA video game controller sitting next to TV remotes.\nA highway filled with lots of traffic next to buildings.\nA horse and rider jumping over a bar on a track.\nA seat under a mirror onboard a train, next to a cluttered counter.\nTwo very sexy women in bikinis riding horses in the ocean.\nA small train with writing all over it passes through an intersection.\none zebra standing on some dirt with trees in the background\nA person standing in the stands at a baseball game\nA train traveling down a train track next to a big tree\nPlate of food, including hot dog, ribs, beans, and corn.\nA view of train tracks and a train.\nA fish-eye view of a stop sigh in front of a trailer\nThe black and white silhouette of a motorcycle near water\nA man riding a brown horse next to a cow.\nA small bathroom stall with a toilet and seat covers\nA pizza sitting on top of a table.\nA small pizza looks home made with pepperoni.\nA large living room is seen in this image.\nA stop sign at an intersection, with Hammer time and a person's picture displayed on the sign \nMale skier holding poles standing at the top of a snowy peak posing for camera\nA group of women sitting at a table with plates of food\nA vase filled with pens with fake sunflowers attached on a desk that says \"Visitors must sign in\".\nA teddy bear sitting on the ledge of a wall \nThe sun shines brightly behind a stop sign.\nA yellow book bus driving down a street.\nA very tall clock tower towering over a city at night.\na polar bear near rocks made to look like ice\nA white refrigerator freezer filled with lots of drinks.\na white plate filled with pasta and broccoli\nAn egg and vegetable fritter is served with a side of broccoli.\nA living room with two couches and several chairs.\nA woman is helping a child put on skis.\nA picture of someones living room with two sofas and a coffee table with a blue flower vase on it. \nA young adult male in shorts and tennis shoes is playing tennis.\nA large clock on top of the face of a building with statue adorned on top of it.\nA variety of foods are mixed in a bowl.\nAn open laptop computer sitting on top of a bed.\nA person is holding a spatula near slices of bread on a stove.\nA young child is standing in the grass with a frisbee\nA man holding a tennis racquet while standing on a purple tennis court.\na black cat is laying on a bed\nA man holding a tennis racquet near a tennis ball on a court.\nTwo young men setting on a bench at the mall, one is on a cell phone.\nan old fashioned television on a city side walk\nA goat standing next to a tree in the open.\nA green traffic light on a post with street signs\nA white horse looking out of a window at a building. \nA man riding a wave on top of a surfboard.\nAwake cat near ceiling on a closed refrigerator  \na zebra looks at the grass at a zoo\nA shower equipped for a physically challenged person with a shower chair\nA next of bird feeders filled with lots of birds.\nMan riding an elephant behind two guys on bicycles.\nA man with a hat getting food from the refrigerator\nTwo cats sitting on a  sill looking out the window\nA couple posing with two giraffes in the background.\nA living room with a brown couch and foot stool.\nA group of women sitting around a table eating food.\nA collection of military airplanes sit in a hanger for display.\na toilet with writing under the lid \nA girl sits in bed looking at her laptop\nA group of smiling young children sit at a table in the library.\nA plate holding seasoned meat, string beans and one fork.\nA long boat filled with people sitting on top of a body of water.\nA man holding a white surfboard on a dirt road.\nTwo burgers, fries, and a drink sitting on a tray.\nA man sitting at a picnic table using a laptop.\nMany cleaning products are on the kitchen island.\nA clock on side of building with skyline in background.\nA laptop sits on a counter by a window overlooking airport terminals. \na couple is cutting in to a cake at a wedding \nTwo toilets sitting on a sidewalk with a cardboard box.\nAn open field with sand, grass, and trash cans.\nWoman riding a bicycle on the road in the city.\nThere are people skiing outside on a hill.\nA bun with an egg and cheese and bacon\nA man wearing a white t shirt and a neck tie.\nA kitchen scene complete with a dishwasher, sink and an oven.\nA man riding across a snow covered slope.\na bus and a car on a city street\nThe group of people watch as people are playing baseball in street clothes.\nA book is being held open by a person's hands.\nA group of people sitting around a table together\nA skier standing behind a difficulty level sign on the slope\nA man sitting down holding a brown dog wearing a blue tie.\nA man riding a surfboard on top of a large wave.\nPeople fly kites and relax at a crowded sunlit beach.\nA girl reaching to hit a tennis ball.\nA man at the beach putting up a striped umbrella.\nA man riding a snowboard is jumping over a hill.\nA couple of baseball players are on the field. \nThree men, one caring a skateboard, are wearing matching t-shirts. \nAn older white motorhome pulled over on the side of a highway.\nA fire hydrant is painted red, white and blue and sits on a sidewalk in front of a brick wall that shows graffiti.\nA man riding a brown horse down a race track.\nA hand holding out a carrot to a donkey.\nA person riding a horse in an empty area of dried grass.\nThree clocks mounted on a wall display the time in New York, Paris and London.\nA elephant that is standing in the dirt.\na person riding a skate board on a city street\na living room with couches and a television\nA large sign on the front of a building.\nA brown cow in a field of grass near two red barns.\nA plate holding a sandwich on a blue mat.\nA green street sign next to a road surrounded by a forest.\nTwo men next to each other on their laptops.\nA couple of dogs sitting in front of a metal structure.\nA refrigerator sitting in front of a vandalized wall.\nA gray and silver fire hydrant sitting next to a rock.\nA toilet with a lot of debris around the base. \nA commercial aircraft flies low above street traffic.\nA small white airplane high up in the sky.\na few men play drums in a big celebration\nA picture of some food and a toy on top of it.\nA basket ball player is posing in front of a basket.\nA blue bus parked in front of a building.\nThis highway is empty this early on the morning,\nCarrots, lettuce, broccoli and variety of vegetables on a board. \nBlack cows standing in the grass of a pasture.\nA car that is sitting next to a rail car.\nTwo people who are in the street on motorcycles.\nThe three girls have surfboards on the beach.\nan image of a cat looking out the window\nA couple of large passenger jets flying past each other on an airport.\nA person with a tie and a suit.\nA group of motorcycles parked next to each other.\nThis is a picture of horse going over a obstacle in a race.\nA L shaped couch with a variety of pillows on it, in front of a television. \nTwo horses in a wooded area amongst bushes\na bed a lamp a cabinet and some curtains\nPeople standing in front of a counter with pastries on it.\nThree zebras outside with two grazing next to each other.\nA desk with a desktop computer and a couple of monitors.\na laptop in use and a glass of lemon\nA doughnut shop sign hanging off the side of a building.\nmany people sitting around dinner tables, being served by a waiter\nA large number of a cows lined up at a feeder.\nA man sitting at a table with wine glasses lined up in front of him.\na living room with some fancy curtains behind a couch \nA white and black horse standing next to a wooden fence in a field.\na close up of a plate of food with waffles\nA woman getting dessert from a food truck\nA frisbee is in the foreground and a large park in the background \nAn old tv lies broken on a beautiful beach.\nA yellow and a green motorcycle in the back of an auditorium.\nPeople walking down the street together and sharing a stars and stripes umbrella.\nA bunch of items that are on a table.\nThis is a wall to hold dental tools.\nA large bed with a white and black blanket.\nThe man is carrying a book bag with two bananas in it.\nA snowboarder sitting in the snow with his hand up\nA collection of hot dogs topped with a variety of toppings.\nA half eaten pizza on top of a pan next to a role on a plate.\npeople standing on the beach while one grabs for a frisbee\nA cat laying on top of a couch on top of a pillow.\nA large white teddy bear sitting on top of an SUV.\nan image of a woman holding a cake \nA stop sign is next to an electronic traffic signal.\nA street sign sitting along side of train tracks.\nA surfer is riding a wave in the ocean.\nA California king sized bed sits under a white canopy.\nA bright red light that is on the side of a snow covered street.\nA couple of toothbrushes in a holder in a room.\nA snowy day in a colorful forest where leaves have already changed colors. \nTwo puffins sitting in some grass on a mountain.\nA toilet setting in a bathroom with tile flooring.\nA road with cars and buses near a building.\nA tall red bricked clock tower with three windows.\na person standing next to a stop sign on a tree\nA group of skiers skiing in a line with spectators on the side.\nA dog that is standing on a boat.\nAdults and children engage in winter sports on a snowy day.\nA sign littered with stickers on a pole with a crosswalk button beside a large red building.\na wooden cutting board with cheese, bread and a knife on it.\nA person holding a red phone nest to a flower filled plant.\nA bathroom with a toilet and a bathtub with a safety rail.\nA group of people all working on laptop computers at a long table.\nThe girl is riding her show horse around the course. \nThe donut robot machine is mechanically making donuts.\nSnow skiers pose near a ski trail sign.\nfour people around a table with various plates of food\nA man performing on a skateboard ramp jump.\na motorcycle and a three wheeler both coming same direction on both sides of street\na person with a base guitar is on a laptop\na little girl walking on a beach with an umbrella\nA white truck driving down a road next to green trees.\nthere is a opening on the street of the building n the city \nA black bird sitting in grass by water\nMultiple people waiting on a boarding dock to get on the train.\nA river with a bunch of colorful kites flying over it.\nThree woman and a man all sitting at a table on their cell phones.\nA man standing with his motorcycle outside of a repair shop.\nA subway train with a row of orange and white seats.\nSomeone releases a colorful kite to someone else holding the string.\na small boy with a hat playing with a remote\nA man in a gray jacket standing in a kitchen next to a black dog.\nA railroad crossing sign is near some buildings and cars.\nA man flying through the air on a skateboard.\nA giraffe standing in a field next to a fence.\nA clock reads twelve o'clock on the side of a building.\nA big pile of pastries with powder stacked on top of one another.\nAn orange cat sitting on top of a computer desk.\nSomeones hand holding on to their bike while beside a road with a bunch of sheep\nA large white multi layered cake sitting on top of a table.\nA small bathroom with a toilet, trash can and toilet brush\nA man riding a skateboard under a cloudy sky.\nA standard computer and laptop on a cluttered desk.\nPeople on a mountain snowboarding in a group.\nA man with a tennis racket with a crowd watching.\nA man wearing a grey suit and tie in a room.\nA couple of animals that are near the rocks.\nThe shelves of a store are full of stuffed bears.\nA cat sits on the edge of a toilet.\nA train engine and passenger cars pulling in to a station.\na man in a uniform checking out the wreckage of a bus crash\nTwo side by side elephants, one with a trunk full of grass, are enjoying a water spray.  \nA breakfast of grapefruit, toast, and coffee is on the placemat.\nA woman holding a Nintendo Wii controller in her hands.\nThe bathroom has two large windows with a ledge.\nA herd of elephants splashing and playing in a river.\nan umbrella in a field of flowers \nA small tablet that is made into a computer.\nA large white building with a red stop sign in front of it.\nA clean bathroom is seen in this image.\na close up of a cat laying on top of a luggage bag\nA lot of computers that are on a table.\nA man and a pretty woman sitting together while the woman holds a teddy bear.\nA man flying through the air while riding a skateboard.\nA woman in white dress playing a game of tennis.\nA man throwing a baseball at a baseball game\na guy standing next to magician statue using his cell phone\nA fire truck turning at the corner of a road. \nA living room with hard wood floors filled with furniture.\nA man with three cows on road next to trees.\na woman sitting on a wooden park bench smiling at the camera\nA cutting board with an assortment of vegetables \nAn empty city street surrounded by stores and shops on either side.\nA large dog sitting at the foot of a couch.\nA couple of shiney teddy bears with penises.\nA man and a woman cut a cake together.\nA woman is unloading a bag in a large kitchen.\nGroup of people flying a kite on a plateau outdoors\nA baby playing with a toothbrush gets a sponge bath from an adult.\nA large golden clock on top of a wooden table.\nA group of people that are standing near a gate.\nthere is a white plate with food and a juice on the side\nA table topped with baskets filled with ripe bananas.\nA very close up look at a tasty looking pastry.\nA tennis player stretches out his racket on a clay tennis court.\nA massive wooden ship beached on snow covered ground.\nA black pole with a pepsi sign hanging from it's side.\nA red stop sign on the side of a brick road.\nTwo young men are snowboarding down a hill.\nA bathroom with a glassed in tub, toilet and sink\nMany motorcycles are parked around a crowd of people.\nA street filled with red buses next to tall buildings.\nA wooden desk with shelves that have action figures above it\nA dark picture of a  very clean dark colored kitchen. \nA long empty road with an over pass bridge.\nA man riding a skateboard on top of a metal rail.\nTwo airplanes flying through a blue sky with smoke pouring out of their rear ends.\nA cop riding on the back of a motorcycle next to another cop car.\nan image of a man slicing a small pizza\na women that is walking around with a umbrella\nA couple of birds having sex on top of a river.\nGirl bending down with hand bag on her shoulder petting two dogs.\nAn object sitting in the middle of a paved road.\nA black dog laying on top of a puddle of mud.\nA very tall church with a clock below a tower.\nTwo giraffes looking in opposite directions and crossing necks.\nA skier travelling down a snowy slope surrounded by mountains\nA man standing on a tennis court holding a tennis racquet.\nDecorated cake sitting on a plate atop a box.\nA man on a horse watching another man wrestle a cow.\nA young man brushing his teeth in front of a mirror.\nA man leaning over eating something from a table.\nA yellow motorcycle in front of a street with several people. \nA man swinging a tennis racquet at a clock.\na black seated on a hydrant on the street\nA bathroom with a toilet and a couple towels.\nThe train travels near water with mountains in the background.\na guy with a phone in his hand.\nA woman in a red bandana slicing a banana.\nA shirtless man playing tennis on a blue court.\nA smaller car is stopped at the red light, as traffic drives on. \nA very tall brick clock tower under a blue sky.\nThe mother and the baby elephant are in the water.\nA group of people holding boards looking out onto the ocean.\nA white toilet sitting next to a tub next to a sink\nA lot of traffic are traveling near the green lights. \nAn equestrian is guiding a horse around the grass field.\nMultiple people playing with a soccer ball on the beach.\nA small boat traveling past a red light house.\nAdults and a child stand together near a mud pit.\nA little baby sitting inside of a dog bed.\na person next to a girafe statue on a city street\nA young man riding a skateboard up the side of a ramp.\nTwo men holding their surfboards near an ocean. \nSmall bed with chair in rail car cabin.\nTwo baby elephants are in a fenced enclosure.\nA group of people standing on top of a sandy beach.\nthere are many appliances put out in the street \nA group of men riding on the back of motorcycles.\nA different variety of foods in plastic bags.\nA young woman standing in the kitchen pours from a large measuring cup.\na close up of a street sign with buildings in the background\nA living room is decorated with floral print.\nAn older man is holding a baseball bat while pointing.\nA person's hand with blood on the tip of the thumb.\nA person doing a snow boarding stunt on a rail.\na tv on top of an entertainment center \nA flat screen TV sitting across the way from a laptop.\nA young boy standing on top of a surfboard.\nA festival procession with decorated live elephants and uniformed people.\nA bathroom being remodeled with a white toilet.\nMan lying on floor playing with cat, in cluttered room.\nA baseball player is pitching a ball. \nA red light house on pier next to water.\nA living room filled with furniture next to a projection screen.\nA group of people sitting at a table using laptop computers.\nTwo men in wetsuits with one man carrying a surfboard.\nA couple protecting their young baby with a sun umbrella and cloth\nA person looking over the water at large boats.\nTwo people are finishing a meal in a restaurant.\na plate of food with meat and vegetables \nA highway filled with lots of traffic next to a lush green park.\nbaseball players playing the game in front of a large crowd \nA large jetliner taking off from an airport runway.\nA small child in white shirt and tie with pacifier.\nSmall kitten warming up to a shy dog.\nA woman jumps with a tennis racket on a tennis court.\nA man with wide eyes eating a muffin.\nA woman sitting next to a child on a large grey teddy bear.\nPerson lying on brown leather couch in sparsely fille room.\nTwo men sitting next to each other while holding a child.\nA person sitting with a cup on a luggage buggy in a waiting area.\nTwo pizzas sit next to each other on metal grates. \nThere is a yellow and green train seen riding on the tracks\nA red double decker bus driving down the street\na man standing on an upside down surfboard on the sand \nA pile of oranges sitting on top of a shelf.\na wood bench is sitting near a pole\nA colorful vase sitting on to of a table.\nA person is preparing to snowboard down the mountain.\na man with white swim trunks is surfing\nA group of men riding skis up the side of a ski slope.\na man standint by a little fence for a bus stop\nA woman standing in a room holding a game controller.\na large leafy plant coming up out of the soil\nAn older gentleman sitting in front of a bowl of icecream\nA young infant boy in bed is leaning towards an electronic device to adjust it.\na table with some vases and some glasses \nA clock tower is part of an old building.\nA person holding a tennis racket and jumping into the air.\nA small herd of buffalo resting on the ither side of the stream.\nA group of men and women raising their glasses in a toast\nLarge group of people standing outside a restaurant together. \nA piece of luggage sitting on top of a sidewalk.\nGroup of surfing equipment sitting next to a beach. \nA street sign surrounded by beautiful potted flowers in bloom.\nTwo adult men stands with a group of little league baseball players for a group photo\nthere is a male surfer in the ocean riding a wave\nA large clock hanging off the side of a building above a crowd.\nSeveral pieces of luggage with extendable handles deployed.\nA hand that is holding a cell phone with a picture on it.\nPerson perfecting their flip on water ski board.\nA man riding a surfboard on top of a wave.\na couple of chairs are in a room\na blue and white vase and some blue and white wall hangings\nA man riding a skateboard on top of a sidewalk.\nA little girl standing in front of a green fence.\nA chair connected to a blue umbrella by a wheel and belt.\nBus driving along loaded with packages and bags on the luggage rack on the roof.\nSome hands holding up some remotes to a screen.\nThis basic kitchen has tools sitting on the floor\nA man playing tennis is getting ready to swing at the ball.\nA red and blue truck driving down a street.\nSome people who are walking on the beach.\nA red train traveling past a train station with red cars.\nOne person on a beach flying their kite in the air.\nA fire hydrant that is in the grass.\nA bedroom complete with a bed, dresser and ceiling fan.\nA long yellow train traveling down train tracks.\nA woman riding a surfboard with her large dog.\nA man standing on a green field throwing a white frisbee.\nA white toilet sitting in a bathroom next to a sink.\nA large clock mounted to the front of a building.\nA woman sitting at a table with birthday decorations.\na hot dog with carrot pieces in a bun\nA young child holding on to a rope and wearing a pair of skis\nA person with an umbrella on a boat. \nTwo boats resting ashore on a wide river.\nA hand holding a donut covered in coconut.\nthis person is leaving footprints in the snow\nTwo horses are seen galloping through a snow covered field.\nA man standing next to a girl eating a piece of cake.\nTwo tooth brushes sitting beside each other on a table.\nA plate of food placed next to a computer.\na boat filled with people going down a river\nWhich of the four desserts would you choose?\nA group of people riding skis on top of snow covered ground.\nA plate of cookies next to a cats tail.\nA group of women who are laying on a beach.\nA white kitten standing in front of a water bowl.\nA woman in orange sari on a park bench.\nA tiny bat is held by someone with a camera\nthere is a bus that is stopped and is very dark\nA man opens pizza box and stares at the camera.\nTwo people are standing at a street corner and one of them is using an umbrella.\na woman with flowers in her hair staring at the horse next to her\nA group of men skiing across snow covered ground.\nthere's someone sitting under that umbrella and someone taking a picture\nA group of horses that are standing in the dirt.\nA living room is filled with brown furniture.\nA parking lot filled with large passenger buses.\nA cell phone sitting atop a beverage with a laptop on the side.\nA small group of men are standing next to a fruit stand.\nA woman sitting in front of a laptop computer holding a bag.\nA man swings at a tennis ball on a tennis court.\nA laptop with a stationary mouse attached to it.\na person is standing in the snow in skis\nA banana peal on a piece of board.\nA person dressed in an all white snow outfit on skis and holding ski poles, while standing on a snow covered ground.\nA group of kids that are playing soccer on a field.\nA red train car parked in front of a red brick building.\nA person on a field with a baseball bat.\nA person hangs off the side of a passenger train.\nPeople standing on the corner with lights and pedestrian crossing near a construction site.\nan image of a street scene with traffic lights\na brown horse with a blond mane and a red horse\nGroup of people in restaurant enjoying others and pizza\nBirds fly overhead in a gloomy sky above buildings, a brick archway and an ornate clock.\nThe adult giraffe is standing near a metal fence.\nVarious foods are sitting on a plate ready to eat.\nA couple of knights riding horses on a green ground.\nA plate has a sandwich on it and is next to an apple. \nA bed covered in a  blanket next to a window.\nLots of fruit sits on bowls on the counter of this kitchen. \nA hotdog next to a plate of chili cheese fries on top of a table.\nA person on a snowboard is in the air preparing to land on a snowy slope.\na man riding a rail with a snowboard\nA young man riding a skate board while airborne.\nA young girl holding a colorful kite on a sandy beach.\nA blue plate with a green salad on top of it.\nAn orange reddish rose in a vase filled with water on top of a table.\na man is in the air on a snowboard\nA group of teddy bears sitting at a small table in front of a christmas tree.\nA tray with two beverages, food and jam and/or jelly. \nA person walking with an umbrella next to a large tent filled with people\nUnique blue sign hanging from a light post. \nTwo men passing each other on the stair.s\nAn organized baseball team near a batting cage.\nA double decker bus driving down the road.\nA white bath and toilet image on a room wall.\nLots of people are surfing and swimming in the ocean.\nA red fire hydrant sitting on a sidewalk next to a street.\nA man dressed up for a themed party. \nA group of people walking down a street near a river.\nA Roman number clock tower near a municipal building.\nTwo guys are riding a motorcycle down the street.\nA man sitting on a bench next to pigeons holding a news paper.\nLARGE BLACK AND WHITE PANDA BEAR WALKING AROUND IN AN ENCLOSURE\nA child in blue shirt playing with a kite in field.\nA black and white toilet with a plunger.\nA bathroom with a toilet, shower stall and a mirror.\nA large meal that is ready to eat.\nMany sheep grazing in a large, green pasture.\nA road sign is next to a red traffic light. \nA view of a small kitchen with some amenities.\na black bench is in front of a window\nA woman cooking on a stove on the side of a building.\nA large passenger jet taking off from an airport runway.\nA wooden table hosts older computers and an outdated laptop.\nA person is on a bench near a grassy field.\na man pets a horse as others look on\nA plate of chicken sticks with radishes and cucumbers.\nA spare bedroom with a bed with a flowered blanket.\nA cat laying on the floor next to a glass.\nThere is a game of people playing tennis.\nA black bear walking through a path in the woods.\nA train traveling down train tracks near a train station.\nA double decker bus traveling down the street in the day.\nA seagull on the waters edge of a beach holding a fish in it's mouth.\nA bus driving down a rural country road surrounded by mountains.\nA snowboarder does a jump over a snowy slope.\nA young kid with skiing gear on the snow\ntwo males and a female in a pink top playing a video game\nWoman out running errands on her bicycle in the street.\nPeople standing in front of building holding protest signs.\na man riding skis down a snow covered slope.\na man jumping skis at a ski area\nA man wearing a red neck tie while wearing a checkered shirt.\nA yellow skateboard wheel touching the pavement on a sunny day\nRacks full of bikes fill an entire street.\nA young man is on his phone looking upwards.\nA time lapse photo of a man throwing a frisbee.\nA sexy young blonde woman holding a tennis racquet.\nPerson skateboarding up a sidewalk in a green sweatshirt.\nFlatbread pizzas baking over an open flame on a grill. \nA giraffe grazing from shrubs next to the road\nTwo adorable little girls standing next to a stop sign.\nA small cat standing underneath an umbrella on a table.\nA man riding a blue surfboard on a wave in the ocean.\nA group of brown cows standing on top of a lush green field.\nMeat with chutney, green beans, broccoli, stuffing, carrots and potatoes on a dish.\nA man standing on a tennis court holding a tennis racquet\nA dog with a longing look as it sits by a window.\nA little statue holding onto a vase with flowers.\nA toilet is sitting amongst things have been abandoned.\nA couple of red trucks parked next to a park.\nA man rides a surfboard on a wave in the ocean.\nA computer that is on a desk near a window.\nFrisbee being buriesd in sand by many pairs of feet\nThe young woman is standing in the rain under her umbrella \nA woman reaching in her purse while holding an umbrella.\nTwo people are sitting on the head of an elephant as it eats. \nA bedroom with a blue bed surrounded by metal stools.\nA man holding white surf board on the beach\nCouple of Seagulls stand next to each other watching the same thing\nA crock pot on top of a microwave on top of a refrigerator.\ntwo long lines of boys paddle a canoe\nA mirror, sink, towel, toilet paper, mop and toilet sitting in a bathroom.\nA white toilet filled with bags of garbage.\nan image of a professional baseball game being played\nTWO ELECTRIC TRAIN COMPARTMENTS STANDING NEAR TO A BUILDING.\nA white horse standing next to a woman in a field.\nA group of young children sitting next to each other.\nthere are many glasses of whine sitting at a bar\nA group of people carrying surfboards on top of a beach.\nA woman in a white shirt is playing tennis.\nA kitchen counter with pots hanging above it and several objects in the corner.\nA group of teenagers are playing tennis outdoors.\nBusinessman with a striped shirt and orange tie.\nTwo young women sitting on a couch one of them using a laptop.\na pizza with a variety of toppings in a box\nA man and a baby laying on a matress.\nA black animal stands behind a few trees with fall colored leaves.\nWoman taking a selfie while sticking banana in her mouth\nA brown vase is holding a bouquet of pink flowers.\na close up of a person sitting at a table eating pizza\nstreet scene with marquee nearest advertising musical shows\nA truck that is sitting in the street.\nA young girl sitting on top of a skateboard.\nMen in hard hats are on small motorcycles.\nTwo elephants walking through a lush green field.\nA kite flying over the ocean in a blue sky.\nA red and white boat sitting next to a peer.\nA man riding on skis down a slope on a course.\nthe bus is stopped at the bus stop\nA small pizza on a metal dish sitting on a wood colored table.\nA woman sits under the shade of an umbrella at the beach.\nTwo people sitting under an umbrella and smiling.\nA tennis court with a person with racket in foreground and someone running behind.\nA large bird standing on top of a wooden post.\nA brown horse standing in a field next to a fence and a house.\nA man riding a bike down a dirt road.\nTwo sheep standing next to each other in a field.\nA zebra standing on a grass covered field.\nMeat and a salad with knife and fork on a plate.\nA person gets ready to indulge in drinking a shake and eating a slice of cheesecake.\nBikes are shown lining the roads and the rails.\na horse eating grass from behind a fence\nBulls, dogs and people all share the same street.\nA male equestrian in full gear on a trotting white horse in a white fenced horse ring. \nA person standing in a kitchen holding a Nintendo Wii controller.\nA man holding a red frisbee on a lush green yard.\nA group of people getting their food from a bag.\nA man walking on the beach flying a kite.\nThere are two people sitting in a restaurant looking at cell phones.\na bookshelf that has a bunch of books on it\nA young person in a motorcycle outfit sitting on a bike preparing to ride.\nA black and white cat sitting in front of a black bag.\nA large crowd of people standing in the grass near a monument.\na couple of people are standing around a table\nVarious kinds of donuts displayed on a table.\nA person near a tennis net holding a tennis racket.\nA man looking annoyed while riding on the back of an elephant\nA piece of red luggage sitting next to a bench.\nThe interior of a modern bathroom including glass shower and sinks\nA woman holding up a smart phone to her face.\nA black toilet in a tiled public bathroom stall.\nA bathroom with a vanity mirror toilette and kitchen sink next to a shower.\na sheep with two of her baby lambs in the pasture\nA military motorcycle is parked behind a van on a street way.\nThe lunchbox has a cold sandwich, strawberry yogurt and orange juice. \nA bike parked next to a street in a city at night.\nA book about understanding and maintaining a ten-speed bicycle.\nThe yellow mustang car is sitting on the side of the sign.\nTwo girls at a school table using their calculator.\nA group of sheep standing on a road and a road side.\nA train coming down the tracks by a road \nA model train on a model bridge decorated with christmas lights.\nA little girl blowing out the candles of a cake.\nWoman and two kids paddling on surfboards in ocean.\nThe shiny motorcycle is being shown on a display.\nA person is playing frisbee with some children\nA bridge that crosses over a body of water. \nA kitchen with a black stove top oven and white cabinets.\nCupcakes with white frosting and different colored star frosting decoration on each.\nA baseball game with a hitter at home plate in a swinging motion and people in the stands above the dugout area.\nA man with a blue surfboard rides a very small wave.\nA parking meter with two heads stands on the street.\nA man holding a tennis ball and a tennis racquet.\nA very cute boy smiling and holding luggage.\nA herd of zebra standing in a grassy field.\nA beautiful woman with blue eyes holding a banana.\nMany people prefer a rare steak when eating out.\nThere is a carrot next to some greens on the red cutting board.\nNothing is quite as soft as a young puppy.\nAn adult teaching a small girl how to play tennis.\nA baby zebra drinking milk from a mama zebra's tit.\nA very big pretty green vase with some flowers.\nA black and white dog looking at a frisbee on a grass lawn.\nA boy hitting a tennis ball with a racquet.\nA cat sniffing an upside down blue bicycle.\nA reflection of a woman taking a selfie in front of a tablet.\nA dog in a bandana and Harley Davidson gear.\nCattle grazing in a grassy field filled with trees.\nA sign on top of a restaurant next to a traffic light.\nMounted police officer standing in the shade watching a developing situation.\nA man and a dog building a set from a box of legos.\nThe sheep are walking on the grass near a stream.\nA white semi truck traveling down a road.\na child blowing the candles out on a cake\nA toilet with the seat down in a tiled room. \nthere is a man holding up a blow dryer \nA wooden table topped with cakes and desserts.\nSmall children looking into an open air zebra enclosure.\nA person sitting at a wooden table holding an electronic device.\nA man floating on top of waves in the ocean holding a surfboard.\nA group of boys riding their skateboards in the park.\nFour people playing in the shallow sea waters\nA ship in the water sailing past the city in the background\nA tray is overloaded with a food assortment.\nA person hiking up the side of a snow covered hillside.\nTwo people walking under an umbrella and another group of people walking down a city sidewalk.\nTwo cut up pizzas sitting on pizza pans on top of a stove.\nA brown bear sitting on top of cement.\nA picture of a carrot and a knife on a plate.\nA zebra standing on top of a lush green field.\nA man standing on a tennis court holding a tennis racquet.\nA horse is standing in the stables in the hay\nA young girl is smiling with a doughnut in front of her.\nA small child's bed sitting next to a window.\nA woman carrying a container filled with food.\na sidewalk with standing street lights on at night.\nA fluffy cat checks itself out in a mirror.\nA yellow street sign sitting on the side of a road.\nA man sitting next to a woman on a couch holding a game controller.\na bunch of veggies are on a table\nA desk beneath a bookshelf that has computers on it.\nHard plastic chairs in a dimly lit room.\nThis lady is ready for her slice of cake.\nA child on a toy is approaching a fire hydrant.\nA couple of dogs sitting in the front seats of a car.\ntwo dogs that look to be fighting one another\nSome animals that are standing in the grass together.\na person with a shopping cart on a city street \na male pitcher is practicing throwing the ball\nA pizza topped with flowers on a pizza pan sitting on a wooden table.\nA bunch of bikes parked in bike racks.\nA city street with cabs, people and traffic lights\nA woman sitting on top of a bed with curtains hanging over it.\nA group of young boys playing a game of soccer.\nA stop sign is shown among foliage and grass.\nA Christmas tree in front of a window.\nA person laying down holding a teddy bear\nA group of three men riding snowboards on a snow covered slope.\nA woman, and baby use toothbrushes in front of a sink.\nA boy in a baseball cap holding baseball mitt. \nA woman brushing her teeth with a blue and white tooth brush.\nBoy doing skateboard trick in air at a skate park.\nA picture of a window opened and something on it. \nBoy sitting on a bench with an angry birds toy reading a book.\ntwo people riding surf boards with sails \nA cross country skier on the slopes on a sunny day\nShirts and ties displayed all over the walls.\nPeople walking by a building with a unique drainpipe.\nAn orange tabby cat lies on the carpet and checks out a cell phone\nA small airplane flying through the clear blue sky.\nan all white and marble bathroom with a toilet and a sink in frame \nThe cat is peeking out from inside the purse.\nThe small street is crowded with small shops.\nA person holding a plate with strawberry cake on it.\na long green and white bus driving down the road \nA group of tennis players at a professional tennis game, its nobles.\nA tennis player is preparing to serve the ball.\na man on a blue surfboard on top of some rough water\nA group of white plates topped with piles of donuts.\nA frisbee that is laying in the grass near a tree.\na man in a leather jacket talking on a cell phone.\nA woman in a wheelchair on the beach, with a man and a dog standing beside her.\na white cake in a flat pan a fork and a cheese grader\nA couple of laptop computers sitting on top of a table.\na man glares as other people behind him look on\nA person holding half of a sandwich at a table.\nA little girl sitting next to a little boy.\nA bathroom with white counters, wooden cabinets and a toilet.\nA man is talking on his cell phone.\nAn airplane at its gate on an overcast day.\nA bathroom filled with a toilet next to a tub and a sink.\nA man riding a motorcycle next to a woman driving an SUV\nPerson sitting in chair next to table with large pizza on serving tray.\na kid holds a kite he made and smiling\nA woman holding an umbrella over another man.\nOne train riding on the multiple train tracks side by side. \nA double decker bus driving down a street.\nA trail leads to a wood park bench in a tree filled park.\nCloseup of a logo on a blue and red bus.\nA man riding a kiteboard on top of the ocean.\nA van driving down a street past tall buildings.\nA man standing on a street with a cell phone to his ear.\nA couple of glasses next to a  bottle.\na clock hanging on a wall with pictures of animals around it\nA small kitten is sitting in the bowl on the scale.\na building with two towers and an air plane in the background\na large white clock is on a tower\nA large jet sitting on top of an airport tarmac.\nDesktop and laptop computers on a desk with a printer.\nA number of heart shaped boxes stacked on top of each other.\nA man in black shirt on asphalt next to a skateboard.\nA large long train on a steel track.\nA hand reaching out to a brown and white cow. \nA dog that is wearing a dog collar smiling\ntwo people sitting down at a table near wine glasses\nA city alongside the water with a bridge. \nMTA F train comes rolling through the bridge tracks.\nA vase that is on a table with flowers inside of it.\nA slice of pizza on a flower plate. \nA plate of broccoli sits on a red plate.\na little teddy bear dressed in some BDSM gear and chains \nA living room filled with furniture and a fire place.\nA pink bathroom contains a toilet sink, cabinets, and mirror.\nA white plate topped with food next to a plate of onion rings.\nSeveral people wait at an airport baggage claim. \nA bunch of skiers on snow are standing around.\nOne person holds the back of a surfboard while another person stands on the front of it on one leg.\nA man and a women who are cutting a cake.\nThere is a small white vase with colorful flowers in it\nA white tow truck with another car behind it.\nTwo young men in wetsuits standing on a concrete ledge in front of water.\nA white street sign sitting on the corner on top of a pole.\nRed and white plane sitting in a green field.\nTwo polar bears walking in a snowy field.\nPerson standing in waist high snow area alone.\na man that has a pan on a stove\nWoodpeckers on the side of trees during the day.\nA grey black and white cat laying in a chair.\nA coffee table on a rug in a living room.\nA cat in a living room with a burning fireplace.\nA bunch of red roses with lots of green leaves.\nThree zebras in a field of dry brush.\nA baseball player holds his glove in the air, waiting to catch a ball.\nA piece of cake sitting on top of a plate covered in marshmallow with a lit candle sticking out of it.\na close up of a skillet with broccoli on a stove\nA plate with half a sandwich and an ear of corn still in the husk.\nA stainless steel stove that is in a kitchen.\nA woman standing next to a herd of animals.\nA MAN IN A SHIRT AND TIE SMILING FOR THE CAMERA\nAn empty bench next to a potted tree up against a brick wall.\nA lake with a rail bridge and traffic bridge over it.\nA pitcher standing on the pitcher's mound and throwing a baseball.\na fence some baseball players and a sign\nTwo young men holding Nintendo Wii controllers standing next to each other.\nfour ripe bananas hanging on a banana tree stand\nA man that is jumping in the air with a skateboard.\na vase with some flowers in it as a fake bird sits next to it\nA woman and a small child watch a train as it passes.\nA baseball player pitching a ball on a field.\nA brown and white horse standing next to a man and a woman.\nThere are some people standing around a truck on a street\nA pasta dish on a white plate with a fork.\nA train traveling down train tracks next to traffic signals.\nA woman smiles over a deep dish pizza.\nA man popping a wheelie on a motorcycle on a street.\nA group of people holding cell phones and posing.\nA man and a woman standing next to each other.\nTwo women sitting on benches in an outdoor setting.\nA beautiful black and white dog catching a frisbee in midair\na bench  sitting by a wall and surrounded by purple flowers \nBaggage handlers are an airport loading luggage onto a plane.\nA row of doughnuts being passed through a fryer.\nA bed with lamps, night stands, a clock and a phone.\nA black and white photograph of two zebras.\nA black and white cat sitting on top of a toilet seat.\nA white curly haired dog standing in a hallway.\nTwo dogs play in a dammed up river.\nA woman with a big ring is holding a golden cell phone.\nAn airplane flies high in the sky while a ship is up close.\nA colorful cuckoo clock with the clock hands at six o'clock.\nAn empty plastic container and a plastic fork left on a bench.\nA mesh fruit bowl with oranges bananas and tomatoes\nA man in plaid shirt flying a kit in city space.\nA person walking in a snowy landscape with ski poles\nA person holding a large pair of scissors.\ntwo laptops and a computer monior sit next to each other on a desk \nA woman with a giraffe , parrot and kangaroo near the eiffel tower\nA sandwich sitting on a piece of tinfoil next to plastic cups of mustard.\nA clear vase with pink flowers on a patio table.\nPizzas sitting on a table next to a bottle of wine.\nSome orange flowers in a tall silver vase\nA pedestrian crossing sign sitting on a street corner.\nA man laying in bed holding a plate of food.\nA person holding a remote in their hand.\nA cat is sitting under a purple umbrella.\nA train riding on a track near a platform.\nA child stops after taking a bite of a slice of pizza.\nA group of people standing next to a wall with a kite bike.\na little bear standing between a couple of tree branches\nTwo bikes are sitting in the sand on the beach.\nA man is almost touching the ground while riding his motorcycle.\nA baseball player holding a bat next to a dugout.\nTwo young boys sitting on a baseball field holding catchers mits.\nA van has an open back door on the sidewalk.\nA water buffalo grazes on tall grass while an egret stands by.\nA giraffe standing underneath a beautiful rainbow in a cloudy sky..\nMotorcycle parked on the curb of an empty road.\nA man mixing food in a bowl behind a girl who is reaching into another bowl in a kitchen.\nA wet dog running on a beach with a neon green Frisbee in it's mouth.\nA baseball player swings his bat at a ball.\nA skater is balancing his board on a half pipe.\nA country charm type of kitchen is equipped with greenery and nick nacks.\nA tour bus is parked along a curb.\nA baseball player swinging a bat during a baseball game.\nFour black jets are flying above in the middle of the blue sky.\nAn office desk with three laptops, a computer monitor and keyboard.\nA bathroom that has a sink, toilet and mirror.\nAppliance Warehouse truck in a parking lot with two men shaking hands and other men standing behind.\nA man on a cell phone looks across the road towards other people.\nA busy city intersection clogged with bike traffic \na close up of a giraffe behind a fence \nA picture of a building appearing to be made of legos \na box of apples sits in a marketplace\nA view of the Union Station's awning and clock.\nThe cat is eating the sandwich on the plate.\nA fire hydrant sitting on the side of a city street.\nThe woman playing a video game stands near a man holding a wine glass.\na giraffe that is standing in a field.\nWoman pushing a stroller into a blue building.\nThere are many cars parked next to the ship.\nMan wearing an orange and black neck tie with a blue tee shirt.\na man that is kicking some kind of soccer ball\nA plate of spring garlic and goat cheese pizza.\nA man holding two cups filled with dessert.\nA large orange fatso's clock hanging from the side of a building.\nTwo giraffe standing and sitting next to each other.\nA brown and white dog is catching a frisbee.\nA man swings a baseball bat while another man watches.\nA laptop with a mouse next to a stack of books.\nA business man is leaning against a window looking at his cell phone.\nA man in a red shirt holding a drink glass.\nA man riding a motorcycle behind a dune buggy.\nThree traffic lights are shown and they all read red.\nA polar bear with its head under the water\nA woman standing on a tennis court holding a tennis racquet.\nWicker baskets displaying apples and oranges in a supermarket.\nA large jetliner sitting on top of an airport tarmac.\nA man standing over a green frisbee on a lush green field.\na small dog is sitting on a table\nA stop sign laying on a sidewalk fallen over.\na bunch of different colored vases on a table\nThe person is riding her bicycle down the road.\na desk filled with some paperwork, a laptop and a computer with two monitors\nThe dog is dwarfed by his human walker.\nA jumbo jet airplane coming in for a landing on a runway.\nA bike parked in front of a wooden structure.\nA cat is lying on the back of the couch\nA cook sanding between two women inside of a kitchen.\na group of odd looking vases sitting on a shelf \na baseball player is a bat during a game\nA motorcycle parked in a parking lot next to a car.\nPregnant mother and daughter playing with Nintendo wii controllers.\nTwo women are holding a bowl with doughnuts\nA man riding skis down the side of a mountain.\nA serious looking man and woman posing for a picture.\nLuggage waiting to be claimed in the baggage claim area.\nA black and white photo of a castle at night\nA bathroom filled with toilets and a tub next to a sink.\nA cheese pizza with a couple of slices missing.\nA display case filled with assorted flavored donuts.\nTwo men in wet suits carry wake boards across a sandy beach.\nA blue turboprop airplane races across the blue sky.\nMan looking over paperwork while holding pen on desk.\nSome tasty and nice food ready to eat. \nA row of various types of chairs and umbrella with a bridge in the background.\na person sitting at a computer keyboard playing a video game\nMeat and a salad on a white plate.\na close up of a refrigerator next to another one \nA group of children are sitting together wearing dresses and suits and ties.\nA man holding a tennis racquet on a tennis court.\nA person riding a wave on top of a board.\na couple of beds  that are in one room\nA fighter jet is flying through a clear sky.\nTwo black horses standing next to each other.\nCommode scene, probably commercial establishment, outside of USA.\nA man with a bucket hat riding a hose on a beach.\nA yellow dog runs to grab a yellow frisbee in the grass \nVintage bathroom with sink and toilet with toiletries\nA living room filled with leather furniture and man laying on the ground.\nSeveral people are skiing in the snow by a tree.\nA rusty old fire hydrant on an inner city street\nTwo  beige plates with thick sandwich and mustard.\nA bus stopped at a curb to allow people to board the bus. \nA crosstown bus is parked on the street.\nA group of people with suitcases in a room.\nA woman walking across the street looking at a Car Quest vehicle.\nA chocolate frosted doughnut sitting on top of a plate.\nA bed that is made with a stuffed animal on it . \nA refrigerator in a kitchen next to cabinets.\nA women playing tennis with a crowd in the background watching. \nTwo plates full of food sitting on a table next to a bottle.\nA cluster of traffic driving towards a capital building.\nAn old, dirty, grubby tub, sink and toiled is in a dirty, old room.\nA baby elephant standing next to an adult elephant.\nLooking down on a stony surface shows a bowl with an orange in it and what looks like a large piece of red plastic.\nA cat pausing as it's picture is taken.\nA white plate topped with a fruit-pancake sandwich.\nA humming bird flying next to a red bird feeder.\nsheep in a pen with some hay to eat\nA toy train track is set up with two trains, houses, and a tractor.\nA surfer is depicted riding a wave on a surf board.\na person skiing in the snow during a marathon\nA young girl holding a backpack while walking across a field.\na person and a young child on a beach \nA group of zebras standing around in the desert. \nA white toilet sitting in a bathroom next to a wall.\nA bridge and castle by big bin in london.\nA thin glass vase with a single red flower.\nA crowd of young people sanding on a snow covered ski slope while holding ski equipment.\nA white toilet sitting in a bathroom next to a tile wall.\nImage of a hat on a bed with the caption \"Before The Wedding\".\nA large flat screen television with entertainment center.\nA yellow BMW touring motorcycle parked in the street as people look on from behind a steel rail on the sidewalk.\na small red train is parked at the station \nA bunch of cheese, breads, and meats on plates. \na group of men singing at a concert\nAn overhead view of a city street has an empty lot below.\nA man wearing a yellow shirt hitting a tennis ball.\nA woman walking into the ocean while in a bathing suit.\na white plate with some pancakes butter and syrup\ntwo giraffes in a field next to some standing water\nA piece of pizza with a bite taken out of it\nThere is a person petting a very large elephant\nA person stands on a public market sign while others look on.\nA microwave oven sitting in the corner of a kitchen.\nA full refrigerator and freezer are standing open.\nA woman making some food inside her kitchen.\nA table topped with multiple cup cakes. covered in frosting.\nthere is a long train coming up the tracks \na old bench and a small chair sitting beside it\nA white tray topped with lots of different coffee cups.\nA horse standing in the open field looking a the lake \nThree cats that are sitting in a window.\nTwo people sitting on a bed working on Mac laptops\nA woman riding a bike while wearing really short shorts.\nA breakfast plate with toast, vegetables, eggs and meat.\nPeople at an airport carrying their luggage with them.\nAn overhead scene of a baseball game with bat in upright position.\nA large pillar with a stop sign on top\na sleeping baby wearing gray red and black \nA couple of people standing in a field playing with a frisbee.\nAssortment of fruits and vegetables displayed in blue trays.\nA man throwing a Frisbee in front of a large white and black dog.\nA head-on shot of a stone building labelled \"Scalextric Palau\" \nPeople pulling their luggage as they walk \nA yellow dog relaxing with a leash attached to a chair and a blue bowl of water nearby.\na building that has some umbrellas in front\nA dog running across a field with a frisbee in it's mouth.\nA plate with brocclie, carrots, and some type of meat with gravy on top.\nA white urinal mounted to a bathroom wall.\nA crowd of people standing below a gray cloudy sky.\na number of people walking on a beach holding surf boards\nBathroom with tub, toilet, sink, mirror and window.\nA view of a living room with a laptop and a TV in it.\nA long haired snowboarder poses standing with his board.\nA man sitting at a game eating a hot dog.\nA woman holding a knife who just cut into a cake.\nThree children flying a box kite near the ocean.\nA dog wearing a tuxedo sitting at a table witha piece of cake with a lit candle.\ntwo black dogs tugging at a purple frisbee\nA man holding a donut in his right hand.\nA subway train traveling through a subway station.\nA white toilet sitting inside of a restroom next to toilet paper.\nA bus pulls up to a group of people and a sidewalk.\na baby zebra walking between two bigger zebras\nA tall clock tower being reflected in a window.\nMan preforming stunt on skateboard outside in the city.\nBlonde haired woman in a wheelchair playing tennis.\nA plate of broccoli and meat on a table \nA group of men riding a snowboard down a snow covered slope.\nA red bus traveling down the road while people walk by\nA silver pan topped with pepperoni pizza on a table.\nA little boy is laying on a white mattress on the wooden floor.\na bicycle with a basket and a blue and pink umbrella \nA couple of sandwiches sitting on a paper plate.\nA cup sitting next to a donut on top of a table.\nMan in suit with shirt and tie smiling.\nA woman at a baseball game with a Chicago Cubs visor, talking on her cell phone.\nthere is a cat sitting on a table next to a bike wheel \nA boy in a pitchers pose then pitching a baseball.\nA blue cake with yellow stars around it.\nA couple of men riding horses down a rocky path.\nA pizza being cut on top of a pizza pan.\nA man with a yellow umbrella waves a flag on the shore of a river.\na person on a skate board ride down a ramp \nThree men standing next to each other on a snow covered slope.\nA white bowl filled with rice and vegetables.\nA bathroom that has a persons hand holding an object.\nTwo female friends posing with a bottle of wine.\nA woman in sunglasses eating a hotdog in grassy area.\nA group of zebras that are standing in the dirt.\nA man cutting carrots on top of a blue cutting board with a knife.\nA young playing tennis preparing to return the ball. \nA man sitting on a bench on top of a pier.\nA motorcycle with long rails hanging from it.\nA skier flying down a snow covered hill into a pool.\na bathroom with towels under a sink and a big mirror above it\nA plate with dozens of bananas stacked high.\na woman is green gloves is in a kitchen\nA train is stopped in front of an industrial area.\ntwo people are playing a baseball video game\na big yellow school bus parked in front of some trees.\nA wet road with lots of cars driving over it.\nA man sitting at a table in front of a laptop computer.\nA tennis player is jumping up to hit the ball. \nA cop car parked in front of a white fire hydrant.\nA refrigerator with a box sitting on top and a stove with a shelf above it that has a toy red truck and candles.\nA woman playing in her hair while sitting on a bed.\nA living room with lots of furniture and a TV\na close up of a baseball player holding a glove on the field\nA pile of oranges, blue berries and raspberries.\nA man standing on a field wearing a glove.\na forklift sitting in front of a factory\nPeople going down a narrow area on a boat.\na train with open doors at a terminal.\nthere is a young girl playing with soccer balls\na number of books and magazines near a laptop\nA man wearing a black jacket next to a brick wall.\nA man takes a selfie in his office.\nA toilet with a light blue cover next to a shower.\nAn old wooden bench sitting beside a bush\nA clean counter top with flowers and a sink.\nA keyboard, mouse, speakers and monitor on a desk\nsome two zebras feeding on the dry grass\nA big commercial plane flying in cloudy skies.\nA man putting an uncooked pizza pie in the oven.\nA canopy bed is dressed in all pink bedding. \nA white plate topped with a sandwich and other food.\nA man with a tennis racquet is dressed in white.\nA man is eating hot dogs in his mouth\na train on a train track on an elevated bridge\na close up of a person wearing a suit and tie\nAn orange and white giraffe standing next to a wall.\nDouble decker bus with dancers advertised in the side\nA train is going through a big city.\nA pastry on a plate next to a cup of coffee and fork by a window.\na girl that has a baseball bat in her hands\nSomeone doing a trick in the air on their snow board. \nA man playing Wii with two other men sitting on a couch watching \nAt a baseball game, a player swings the bat at a pitch.\nThe unfinished room has tools and construction materials scattered about.  \nA man eating food out of a wrapper.\nA person with a moped is waiting for the rain to stop.\nA small boy on a leash skiing with an adult.\nA nude lady lying on a bed with white sheets\nA young guy is surfing in the ocean.\nA young boy standing next to a  yellow bike.\nTwo men in suits talking to a group of young people.\nA person with a tank top and green headband standing with a crowd of people and looking down at a cellular phone.\nA store with a taxi and bus parked out front\nA pack unzipped with a banana siting inside of it.\na person jumping a skate board in the air\nA train traveling down train tracks near a building.\nA man laying on top of a bed inside of a train room.\nthere is a man wearing a suit sitting on a street bench\nThree people, one with an apple core in his mouth, sit at a restaurant table.\nA bowl of food sitting on top of a white kitchen counter.\nTwo large passenger jets flying over a beach filled with birds.\nA marble tabletop that has a coffee cup and saucer one one side and two plates of food on the other sides.\nA white bus sitting next to lots of buildings.\nA train traveling through a town next to a blue and white building.\na close up of a person holding a really old cell phone\nA man is jumping on a ski board across some snow.\nTHERE ARE TWO ZEBRAS THAT ARE WALKING TOGETHER \nA dreary, rainy day by the water, with people under an umbrella.\nPeople standing on a sidewalk near a parked bus at night.\na woman walking down the road while holding onto some bags and  an umbrella \nA teenager shoots flames at a friend balancing on a skateboard.\nA red fire truck driving down a  street.\nA boy running across a field holding a catchers mitt.\nA couple of dead, stuffed giraffe on display.\nA woman sitting on a bench holding a cookie in front of her face.\nA group of people walking across a bridge over a river.\na  chair with many things for a child\nA cricket inside of a small cage on a table..\nA black cat laying on the tank of a toilet.\nA pathway leading to an outdoor open shed.\nMan in dress shirt and orange tie standing inside a building. \nA hand holding a phone next to a woman in a room.\nA boy holding a tennis racquet on a tennis court.\nA young boy getting ready to swing at a tennis ball.\nA bowl of stew, and several plates of English Muffins and bread.\nA parking meter lies askew on a street.\nA man wearing a suit and tie under a brown umbrella.\nA rainy day at the bus station in the old section of town. \nA little boy leaning over a lap top computer on a foot rest.\nA woman standing in front of a mirror with bright blue hair.\nGarden with a assortment of plants surrounding a bench with a sleeping cat\nA field with a cat and chicken next to a fence.\nA parking meter sitting next to a street with a very odd looking building next to it.\nA baby sitting in a bathtub getting their teeth brushed. \nA man is standing next to his ice cream truck.\nA white bicycle parked next to a brown brick wall.\nSomeone is working on grilling some food on a grill.\nSome colorful items of food that are on a plate.\nA row of cows standing behind a metal fence.\nA man lounging in a field where cows are grazing.\na sausage sandwich in a bun with ketchup on top \n young woman poses next to her refrigerator.\nA large porcelain toilet posed with a tan flower pot. \nA desk topped with computer monitors and laptops.\nA large gray cat sitting in front of a mirror next to a pink bowl.\na person standing on grass holding a large box of pizza\nA man dressed in baseball clothing and holding a baseball glove.\na bus traveling down the street next to  tree lined sidewalk\na man flying through the air while riding a snowboard.\nA rather portly woman crosses a city crosswalk\nA crab cake on a sandwich with dressing and tomatoes.\nA person trying to reach a Frisbee in a field with high brown grass.\nA person riding a snowboard across a snow covered slope.\nA bald cat sleeping on a blanket on top of a bed.\nA large metal fork sticking out of a lake next to a boat.\nBlue water with a boat and two people in the water.\nThe woman has many bananas and other fruit at her stand.\na variety of a different type of vegetables\nA herd of sheep walking across a lush green field.\na couple of people standing in front of some water as the sun sets \nON THE DESK THERE IS A DESK TOP COMPUTER WITH A MOUSE\nIn building has a picture of a woman in a bikini hugging a hot dog.\nA bearded man in a long tie-dyed shirt sitting in the shade of his pink umbrella.\nGiraffe inside rock walls standing and bowing its head.\na laptop on a table with some stickers on it\nA large jetliner flying through a cloudy gray sky.\nA plate with pizza slices, chips, and cole slaw.\nA city with tall buildings and a large green park.\nA litte girl in a blue jacket holding a carrot.\nA kitten standing next to a bunch of bananas on a bed.\nOlder woman looking down at the Wii remote\na  man shearing the wool off a sheep \nA laptop sits on a metal table by a metal stool.\nA beautiful woman sitting on a bench, looking at a cell phone.\nSeveral dogs and people lay on a couch as one man in jean stands with a remote in his hand.\nAn orange truck driving down a street full of men in the back.\nA man flies his kite on a hill overlooking a bridge. \nA little kid pointing his camera at a stage where people are dressed up.\nA lone zebra standing near some water and bushes.\nAn elephant messing with a tree trunk. \npeople walking around a tamale truck and a building \nThree people hold Frisbees while one of them throws his.\nA crowded city filled with lots of people and traffic.\nA handicapped man in a wheelchair is being helped to hold the bat by another man on a tee ball \nA stop sign on a pole near a road.\nA man sliding to the plate at a baseball game.\nA young girl surround by other young people and looking at a cake.\nTwo men standing outside holding umbrellas, people walking by in the background.\nFour people on horses race inside an enclosed area\nA black cat was lying inside a suitcase. \nA chair made out of old suitcases and containers.\nA moped is parked next to bicycles on a sidewalk.\nWell dressed children are enjoying cake at a table\nTwo street signs are sitting on top of the pole\nA herd of sheep standing in a muddy pen with a chicken.\nA view of a tennis match from the top.\nA cat sitting on a window sill in a room.\nA small chair and bed in a room.\nA tray covered in chocolate donuts on top of a table.\nA white kitchen stove with spices sitting on top.\nA display case with several stuffed animals and dolls.\nA stop and street sign on a pole.\nA dated image of a newly married couple cutting a wedding cake.\nA man riding up the side of a skateboard ramp.\na green light over a street at an intersection\nA young guy standing by a mirror brushing his teeth.\na jet airplane sitting on a runway next to a building\nA picture of someone's backyard patio area with a blooming cherry tree.\nA white plate topped with eggs and potatoes \nA man jumping a brown horse over an obstacle.\na squat toilet inside of a small stall.\na group of boats resting in the water next to a bridge\nA person sitting in front of a plate of pancakes. \nA group of people sitting on the back of an elephant.\nA display case filled with bakes goods in front of a store.\nA window that looks out onto an intersection with several shops.\nA double decker bus, and cars on a city street.\nAn older man holding a gaming remote control.\nHot dogs and hamburgers being cooked on a gas grill.\nA traffic light on a table with a checkered cloth.\nA man driving a motorcycle down a street with a  woman on back of it.\nA man sitting in a chair under an umbrella.\nA red stop sign sitting below a tall building.\nA vendor selling fruit from the back of a truck.\nThe traffic signal is at the intersection near a large building.\nA traffic light with car passing underneath on the road.\na few zebras that are walking on some grass\nSome street signs near a big bridge overpass.\nThe kitchen has two refrigerators and a stove in it.\nA man riding a white horse in a fenced in location. \nA woman in a robe has a big umbrella.\nA baseball player swinging a bat on a field.\nA person in a helmet standing by their motorcycle.\nThe road sign is visible for all to see. \nA person on a skateboard up on a ledge.\nA very long shiny train on a bridge over some cars.\nA man standing in a park holding onto a camera.\nA counter topped with a large white frosted cake sitting next to small pastry.\nAn odd couple of formal woman in black dress and pearls with casual boy in a cap and untidy clothes and hair.\nA desktop computer sitting on top of a wooden desk.\nA glass bowl with an orange in it. \nthere is a starbucks drink and a sandwich on a table\nA man is holding a flying disk over his face.\nA blonde lady holding a smart phone laughing.\nAn ugly looking street sign sitting on the corner of a street.\na group of girls going after a soccer ball\nA pizza that is sitting on a wooden board.\nA commuter train traveling down train track next to a rural road.\nA laptop sits on a toilet seat in a black and white photo.\nA white and blue plate topped with steak and bread next to asparagus.\nA worn and a new sign for the same Mexican food restaurant.\nThere is a television that is on and signs nearby. \nA man who is looking at his cell phone.\nA large black pick up truck with a dog riding on it's flatbed.\nA bear shaped full jar of honey sits on a table\na dog in a doorway above bunches of unripe bananas\nA young colt is running beside an adult horse.\nA brown dog laying on a  pillow on the floor.\nA fireplace mantel with a vase full of flowers on it.\nA person swinging a tennis racquet at a tennis ball.\nThis unique cake is made to look like a tree stump turned picnic table.\na man drinking from a glass while sitting in front of a table full of food\nFour sheep are eating along the side of a hill.\nA tall white clock tower with a black clock on each of it's sides.\nA giraffe stand alone in a zoo during the day. \nA black bear with a white marking on its chest.\nA kitchen with a lot of things on the counters. \nA photo of an apartment building with a clock on it \nA cat sitting on the hood of a car.\nA tall building with a large white statue.\nAn antique style clock is on a post in a park.\nA cat that is standing up looking out of a window.\nA table and chairs sit on a grassy walkway, with a pitcher.\nA chef is holding a hot dog in a container.\nA large white clock tower sitting in the middle of a city.\nA boy standing in the grass with a frisbee.\nA man sitting on top of a hair next to a  woman.\nA young lady throwing a blue frisbee while standing on a lush green field.\nthe door to the room is open to the outside\nA lady doing something with animals in an enclosed area.\nTwo smart phones sit side by side both are turned on.\nA refrigerator that has many pictures and magnets on it.\nA dog laying on the beach in the sand\nA skier with his skis and back pack taking a rest.\na man plays tennis in front of a large audience\na bath room with a bath tub and a window\nA table filled with a cake and paper plates with ice cream and cake.\nA herd of cattle grazing on lush green grass.\nA dog with a leash on is sitting near a park bench\nWide shot of a kitchen and a kitchen table with a plaid tablecloth.\nA clock tower looms underneath a clear sky.\nA man riding a wave on top of a surfboard.\nExtremely ripe banana being put into a saucepan in a kitchen\nVintage furniture and a Christmas tree decorate a living room.\nMuddy elephant with large tusks in natural habitat.\nA smaller banana, is pealed and in someones hand. \nTwo green signs that are on top of a stop sign.\nA line of people in ski gear prepare to ski.\nA BOY ON HIS PHONE OUTSIDE NEAR A RED CHAIR.\nA black cat with its head in a blue cup.\na woman wearing a white dress is playing tennis\nA stuffed frog stuck between two parking meters in front of a car.\nA skateboarder is going into a bowl for a trick.\na horse pulling a carriage down a street\nA small  pink statue  holding onto an umbrella\nA black square plate topped with a cut in half chicken sandwich.\nA computer desk topped with a laptop and a monitor.\nOne giraffe laying by a rock while another giraffe looks on.\nA city street with many different cars driving.\na bunch of small children holding tennis rackets on a tennis court\nA bed with a  white shirt on top of it and pillows.\nA woman in white dress playing a game of tennis.\nA man peering into a refrigerator full of food.\nA brown dog and a black dog play with a yellow frisbee in a field.\na girl on a board riding along a boat in the water\nAn older gentleman is taking a ride on his motorcycle. \nPlane in the sky flying sideways all by itself.\nA train traveling down railroad tracks next to a grassy hillside\nA white kitchen with plenty of counter space, a dishwasher and a oven.\nTwo men are making pizzas in a kitchen.\nA black and white cat laying on a couch.\nSurfing the web on a laptop at a coffee bar.\nTwo giraffes at the zoo during the day.\nA black and red small train in shopping area.\na man with a racket hits a tennis ball \nA couple of men standing on top of a beach flying a kite.\na pizza on a wooden table ready to be cooked\na dog that is on some grass in front of a building\nA young girl with short hair brushes her teeth. \nSomeone doing tricks on their skis at a ski slope. \nA pinup-style photo of a woman sitting on a luggage trunk.\nA computer desk with a laptop and television by a window.\nA series of four clocks mounted to a wall.\nA girl with curly hair and a teddy bear on a bed.\nA woman on a tennis court playing tennis with a racket.\nA black and white picture of a large house is shown.\nSeveral people are at an airport with their luggage.\na dog in a Santa hat on a pillow\nA bike parked on top of a green grass covered field.\na couple of people that are biking down a road\nA bird standing with its huge wings open near a fence.\nA horse feeding in the middle of the grass.\nA kid holds a sandwich and a big candy cookie.\nAn old suitcase made into a fabric covered bench\nA black cat with crazy eyes wearing a bib.\nA man flying through the air while riding a skateboard.\nTwo people standing beside a motorcycle are kissing.\nA professional baseball player just after hitting the ball\nA couple of giraffe walking across a street.\nA cat looks at the camera from a window sill\nA man is baking bread in a room full of bread.\nthis bathroom is big and has a jacuzzi tub made of wood\nA woman in a bikini laying under a red umbrella.\nA large kitchen filled with white appliances with lots of counter space.\nA single zebra that is bent over eating grass.\nA counter filled with lots of clutter in a  kitchen.\nTwo people at a party hugging each other.\nA pile of blood oranges sitting on display in a store.\nA man flying through the air on a skateboard.\nThe skateboarder is putting on a show using the picnic table as his stage.\nLarge motorcycle sitting on a grassy area in a line.\nA small bedroom with a desk and computer in it.\na man is standing in the woods wearing a hat and glasses\nA group of four street signs stacked on top of each other.\na very tall brown structure sitting above a parking lot.\nA group of kids at table around a cake.\nA computer monitor sitting on top of a desk.\nBikes lined up at a bike stop with an advertisement near by that says \"your butts\" \nA group of young ladies playing a game of soccer.\nA beautiful young lady talking on a phone while smiling.\nA woman standing on a tennis court holding a racquet.\nA tall tower with a clock stands above a winter sky.\nA surfboard that is on its side in the sand.\nA young girl in a bright dress rides a horse.\nA full view of a shower with glass.\na full frontal view of a giraffe and an ostrich behind\nA bowl that has various types of food in it.\nA woman looking straight ahead while she wears a hat on her head. \nA metal bench between two white flowering bushes.\nA group of people sitting and standing around a table with beverages.\nA vase filled with flowers and water on top of a table.\nA cat laying on top of a bag sitting on a floor.\nMany brightly colored umbrellas hanging downward from a domed ceiling.\na white bathroom with a toilet and a roll of toilet paper\nVarious people are acknowledging life and having a good time.  \nMotorcycle parked along the street next to a building.\nA cat is sitting on top of a computer chair which is covered in hair.\nA group of children surrounding a table decorating cake.\nA marine filled with boats floating on water.\nA bathroom with a toilet, sink, bath tub, and a small cabinet.\nNeatly folded dress shirts and a tie sit on top of a counter.\nA bunch of flowers sticking out of a glass vase.\nStop sign at the intersection of two streets on a fall day. \nA group of people standing around a kitchen.\nThe man is trying to hit the baseball during the game. \nA busy city street with many different vehicles.\nA small boat sits on the water next to a city.\nA display of a toilet and sink in a store. \nA building with a clock on the front and side of it near other buildings\nA man riding a skateboard on a street near a park.\nA man holding a baseball bat while while wearing a baseball uniform.\na laptop that is sitting on top of a bed\nA man riding a wave on top of a yellow surfboard.\nPeople standing on a roadway next to a vintage motorcycle.\na light a clock a television and a woman \nan image of food items including meat and vegetables\nA man with a medical mask is crossing the street.\nSeveral full pizzas are in the window, ready to be purchased. \nA cat looks off the edge of a made up bed that has blue pillows and a floral pillow.\nA large glass vase with leaves painted on it's sides.\nA man in a black shirt eating a sandwich\nA ship sits in a dock next to loading equipment and shipping containers.\nA white plate topped with different types of food.\nA man that is sitting with a woman at a table.\nA skier attempts to slow down on the slopes by pointing the skis toward each other.\nA silver and red fire hydrant sitting next to a street.\nTwo sinks that are in a kitchen near a window.\nA man pointing at some food on a trey.\nA snowboarder falling down by some skinny trees.\nA dog is jumping with a Frisbee in its mouth. \nA beautiful blonde girl holding a Nintendo Wii controller next to a man .\nMan in blue and grey jacket on skis in front of a mountain.\nA yellow cat standing inside a box with tissue paper.\nJet flying in the sky among the clouds.\nMan and woman preparing to cut through a cake in front of onlookers. \nA snow boarder is going down an indoor slope.\nA man wearing a tie, jacket and white shirt.\na plate consisting of beef and gravy \nA giraffe lowering its head to graze on some grass.\nAre these black bears fighting or have they found their dinner?\nTwo stuffed animal dogs reading a picture book about dogs.\nAn airport topped with lots of planes under a cloudy blue sky.\nA marina filled with lots of smaller ships.\na bear sitting on a rock with a river running through it\nTwo triangular street signs on grass next to brick pathway.\nA goat standing in front of a store next to a metal hook.\na group of people getting off a parked bus\nTwo zebra walking down a small rural road.\na girl is on a surfboard at the beach\nA man in dark clothing is on a cement step doing a trick with his skateboard.\nA person on a snow board high up in the air.\nA man riding a wave on top of a surfboard.\nA group of elephants gathering around a body of water.\nA woman in a wedding dress standing in a field near a corn farm and holding the bridle of a cream colored horse.\nA dog is posing on top of a motorcycle. \nA man sits on a bench in a no smoking area\nA busy intersection in a city has many tall buildings and advertisements. \nA clear glass bowl filled with fruit on a wooden table..\nA girl who is checking her cell phone.\nA giraffe walking through a lush green field.\nA man riding skis down a snow covered slope.\nA performer balancing a ball  on top of an umbrella\nA baseball field, in the dugout area with a young boy holding a bat with both hands and going toward the dugout.\nA modern bathroom with a toilet and shower.\nA pair of scissors on a table with some other supplies.\nA tall building with a clock mounted to the front of it.\nLarge black train system surrounded by trees and nature.\nTwo men are playing a video game in the hotel room.\nA large jetliner sitting on top of an airport runway.\nA woman in a red jacket is holding a red phone.\nFour people skiing down a side of a snow covered slope.\nA lot of people that are on some horses.\nA lamp with a red wall with a large clock on it.\nA table topped with plates and bowls of food.\nA surfer flies off the crest of a wave.\nA street traveling past red brick homes with trees.\nTwo men look into an enormous roaster at a pig inside.\nSome people look at sheep on a farm. \nA dog hanging out of a back door window.\nA bathroom area with a toilet, trashcan and dresser.\nA couple of giraffe standing next to each other on a field.\nA man wearing jeans sitting on a parked motorcycle.\nA lone giraffe stands in the middle of a grassy field.\nA young girl holding a tennis racket on the court.\nA cat pawing at a television picture of some penguins.\nA bird walking past a white car in a lot\nA husky is lying under an elephant toy.\nHorse, cow, leopard and a lady looking at the camera.\nThe antique bed has elaborate wood decoration on the frame..\nA woman has fallen over in the snow on a snowboard. \nA couple on a motorcycle in front of a bus and a metermaid car\nA street sign surrounded by a crowd of people.\nA man standing on top of a sandy beach near a colorful kite.\na person in an office setting sitting in a chair\nA couple of women sharing an umbrella on a rainy day.\nA citizen stands pointing to a Police motorcycle as the cop looks on. \nThe pizza has thin crust and lots of veggies.\nA large propeller airplane sitting on top of a tarmac.\nA MOMMA AND BABY ELEPHANT ARE BY THE WATERING HOLE\nSome animals that are out in the grass.\nA red toilet in a very small bathroom.\na black motorcycle is parked by the side of the road\nPerson riding a motorcycle with someone holding a child.\nThree boats filled with people floating down a river.\nTwo elephants in a field rubbing their trunks on each other.\nA train is being driven down the railroad tracks.\nA giraffe that has its legs spread out.\nA large group of trains parked next to each other on railroad tracks.\nSeveral cows in a field on a sunny day.\nA bike leans on a wooden fence on a hill.\nA large grey horse is behind a wooden fence.\nMan and woman holding a knife up to a small cake. \nA man holding up a big white surfboard\nSeveral rows of track with a 'direct rail services' train on the furthest one. \na small white plate with a slice of pizza on it\nExtra hands would be a help for this messy kitchen.\nA couple of red umbrellas sitting outside of a small brick building.\nA stuffed animal sleeping in a miniature bed under a blanket.\nA motorcycle parked in the middle of a roadway.\nA person that is on his cell phone.\nA group of people sitting at a table with pizza.\nmany different items including game boy cartridges \nA couple of cows standing inside of an animal pen.\nSome rocks are collected in a corner in this room\nA yellow fire hydrant sitting next to two trash cans.\nAn old clock hangs on a white wall with a window nearby.\na man that is typing on his keyboard eating pizza\nView of an English city from the choppy water.\nThe zebras are following the cars for food. \nA man riding on top of a surfboard on a wave.\nA man in black jacket cross country skiing in woods.\nA car with the nose of a shark eating a teddy\nA bird flying through a blue sky with wide wings.\nA man riding a bike through a lush green park.\nA group of people stand in a circle and eat a food.\nA kitchen with white cabinets and a dark blue countertop\nSeveral people standing together with a red stoplight behind them.\na baseball player throwing a pitch from the mound\nA laptop with a drawing of a person on it.\nA dog sits on a seat in the middle of a room. \nA elephant that is stepping on to the road.\nA woman and child are flying a kite.\na bunch of guys playing baseball on a field\nA cat laying on top of a black office chair.\nan image of a tourbus stopping on a route\nA bathroom with a traditional toilet next to a floor toilet.\nA plate topped with two donuts, one pink and one glazed.\nTwo flowers sitting in a round vase near a window. \ntwo yong men in kilts are having a conversation \na large blue and white house on a hill near cattle pastures \nA man sitting alone on a park bench in a park.\nA wooden table surface with many types of food.\nCommode near white shower curtain in residential bathroom setting.\nA woman is putting a pizza in the oven.\nA boy in the pitcher's mound getting ready to throw the ball.\nTwo young ladies petting a young calf on a farm\nA crowded city street with lots of people walking around.\nA herd of cattle grazing on a grassy field.\na person riding a surf board with a parachute \nA vase filled with a bunch of pink flowers next to a coffee cup.\nA sink sitting under a large bathroom mirror.\nA set of three pieces of luggage filled with clothing.\nTwo birds sit on top of a parked car.\nA computer is on a desk in a blue room.\nMany planes are arranged in a large building.\nA small apartment living room on a sunny day.\nA row of parking meters sitting along side of a street.\nA clock on display on a wall in the city.\nsome little goats and sheep standing next to a larger goat \nA picture of two buildings and a street in black-and-white.\nA couple pairs of scissors and a person sitting.\nA male skate boarder rides his skate board on a ramp\nA cat is peeking out from under a blanket.\nA person taking a selfie in front of a large mirror.\nSnowboarder riding in a half pipe performing tricks.\nA man standing on top of a tennis court holding a racquet.\nA horse that is standing in front of a window.\nA white refrigerator freezer sitting on a  hard wood floor.\nMountain sheep standing in outdoor natural setting area.\nA man is making a phone call while surrounded by balloons. \nA fire hydrant is painted in a patriotic theme.\nA woman returns a tennis ball during a tennis match.\nA large convex mirror mounted to a brick wall.\nA man riding a motorcycle down the middle of a street.\nthree zebras and a gazelle drinking at a watering hole\nA pile of feces sits on the back of a public restroom toilet.\nA man with blue jersey holding a baseball bat.\nA cat is using the toilet in a white tile bathroom.\nTwo bags are full of fruits on the table.\nA couple of birds sitting on a tree, with a blurry background.\nA dog wearing a hat and sitting in the grass.\nA person lays on a bed and watches a computer.\nA giraffe in front of a large amount of plant life. \nTwo people in yellow ride horses down a narrow street.\nA young lady riding skis on a snow covered slope.\nA guy on a motorcycle on a road.\na guy in a red white and blue shirt holding a red white and blue tennis racket\nA large elephant is tied up next to some tree.\nA blue piece of luggage sitting up against the side of a building.\nA woman holding a black umbrella as she stands behind a car.\nA man with some suitcases on the street.\nA very colorful painting on an elephant statue\ntwo women are walking together near a tree\nA kitchen counter with a pretzel sitting on top of it.\nA tray topped with two sandwiches, pie and a plate of coleslaw.\nA white plate topped with heart shaped waffles next to bacon and eggs.\na very big boat that is in some water\nA city street at night filled with lots of traffic.\nA man that is standing in the grass with a kite.\nTwo cat lying on a floor playing with each other\nA small boat sitting in a harbor with larger boats.\nA man standing on a tennis court holding a tennis racquet.\nA white car parked in a parking space.\nA group of pretty young ladies playing a game of soccer.\nA dog lays in the grass panting with a Frisbee.\nA man riding a skateboard down a bunch of steps.\nthis is a man riding a wave with a board\nA couple pieces of bacon and banana on a plate.\nA white and black plate topped with food next to a cup of coffee.\nAn umbrella on a beach with other people.\na man riding a wave on top of a surfboard.\nTwo women sitting on a blanket looking at cellular phones.\nA bathroom with a white bathtub next to a toilet.\nA large long train on a steel track.\nA white plane has bright orange stripes and is parked in a lot near other planes.\nA wooden table with a white plate containing cake and a cup of coffee.\nA refrigerator packed with all kinds of groceries.\nA birthday cake is decorated like a fire engine.\nA white toilet filled with urine next to a white wall.\nA pretty young lady holding a briefcase in front of maps on a wall.\nA brown teddy bear hanging from a green sign.\nModern looking living room with white flooring and furnishings\nThere are a lot of people flying their kites together in the field.\na cat that has a paw on a keyboard\na man that is eating some kind of food\nA baseball player holding a bat on a field.\nThere is no image here to provide a caption for.\nA square white plate topped with meat and veggies.\nA group of kitchen appliances on a metal table\nA woman sitting at a table with a pizza on a plate.\nA cross country skier on a snowy trail\na white horse pulling a carriage with a man on it.\nA brown teddy bear sitting next to cup cakes and then sitting on a couch.\nA large teddy bear sits in a chair outside of a shop selling hats\nA motorcycle parked on the side of a grassy field.\nMan sitting at yellow covered table at outdoor eating area.\nA couple of pizzas baking inside of an oven.\nA man with a dog sitting in his backpack talking to a woman in sunglasses.\nA baseball player is about to throw his pitch. \nA tennis player hits a ball on a court during a game with a stadium audience behind him.\nTwo men holding a red its with people standing in the distance.\nA man in black jersey holding a basketball above his head.\nA plane flying over the water at sunset\nA red fire hydrant in front of a skyscraper\nA small garden area features a few springs of growth and a small busy plant and a few bricks.\nA large commercial airplane parked on the runway\nA person that is looking at some people.\nA stop sign on the corner of a street.\nA living room with a black leather sofa and chair.\nThree people standing near a fence and a horse.\nGuy stands with an umbrella while water gushes high in the sky behind him.\nA boy in pool on a yellow board.\nin this picture you can see that there are bananas in a tray\nPartially open door leading to a kitchen from a hallway.\nA young girl outside in the rain holding an umbrella.\nA woman and a cat sitting in front of a TV.\nA group of people on the shore with their surf boards.\nAn old stone building with a clock on one outside wall.\nAn orange sign that has a picture of a man holding a flag.\nThe food is prepared and ready to be eaten\nA woman standing at next to tables loaded with fruits and vegetables.\nA baseball player holding a bat on a field.\nThe brown and white cat lays down on the washing machine near a pair of scissors.\nA golden block sitting in a  room on red carpeting.\na row of motorcycles parked on a city street\nA man in a blue coat skiing through a snowy field. \nA baseball player getting ready to hit a ball at home plate.\nA person jumping on a skateboard near a fence.\nA  woman is standing next to an artsy sculpture. \na clock tower with a white clock and some buildings\nA pair of scissors next to some butter knives.\nTwo men riding skies down a snow covered road.\na small plane with a propellor sitting on a runway\nCloseup of a corner of a metal tray containing three hotdogs.\nA boat and a duck is in the water\na group of guys sitting around a table eating a meal\nA red and white sign that reads \" Give Way \" .\nThe cat is looking inside of the open backpack. \nA woman holding a microphone stands in front of two giraffe.\na street sign with a sky in the background \nA woman in a short skirt holding a tennis racquet.\na small cooler is on a wood table\nA person with a camera taking a picture.\nA boy throws a pitch in a baseball game.\nA group of flamingos standing next to each other in water.\nA small wooden toy car has an elephant sitting inside.\nA clock that is on the side of a building.\nA person walking across a cross walk holding an umbrella.\nWomen run on a soccer pitch during a game.\na woman standing at the end of a tennis court holding up a racket \na bunch of zebras are standing in a field\nA man and two children are skiing in the snow.\nA bunch of cooking supplies and bananas sitting on a counter.\nTwo hot dogs covered in chili and sour kraut.\nA man carrying a surfboard across the beach \nA woman past two men in front of the MGM Grand.\nHorses standing around eating grass beside a river. \nA sesame seed bagel with a filling is cut in half on a plate.\na small child watching an elephant behind a fence\nA couple of giraffe standing next to each other.\nA group of motorcycle riders on the road.\nA white dog sitting on a ledge of a window. \nmany kids holding skating board on the snow\nA man riding a skateboard down a street.\nA modern style wooden kitchen with multi layered counters.\nThere is a red fire hydrant partially covered in ash.\nA baby elephant being fed a bottle of milk.\nA picture of someone's desk that has a lot of stuff on it.\nA painting of green apples next to a bunch of bananas.\nAn old luncheonette sign on a corner by a street sign\nTwo people are riding elephants beside some trees.\nA skate boarder gets some air during a jump.\nBlue pickup truck traveling on a city street.\nMany trucks with satellites are lined up on the curb.\nRed, yellow and purple flowers in a painted flower vase.\nA young girl hitting a ball with a  racquet..\na dog laying down licking food off of a plate\nA girl sits with her back to a suitcase.\nA woman is holding a small child on her back.\na black and white photo with pops of red in color\nAn adult giraffe standing in a field of tall grass.\nA plate and a bowl hold several types of fruit.\nA large clock tower is yellow and white.\nA man sitting in the driver seat of a truck on a cell phone.\nA few people looking at a television that's next to a laptop.\na close up of three older men standing near one another\nA herd of cows are standing in a green field.\nToothbrushes and toothpaste lay on the counter by the sink.\nAn American Airlines jet plane parked near a terminal.\nA black and white scene with two couples under umbrellas and rain jackets sitting at a stadium.\na giraffe standing on a sandy beach in front of some rocks\nThe clocks are built onto two sides of the building.\nThe man is wearing a hat and tie of a man wearing a hat.\nA train traveling down tracks near a rural area.\nTwo people sitting in a room with luggage\nA cat standing next to a red chair in a living room.\nA toilet, mirror and sink in a toilet\na woman in kitchen cooking chips in fry\nTwo people with skis are skiing on the snow.\nAn old fashioned picture of three boys dressed up.\nA person is eating a seafood pizza with a knife and fork\nThe snowboarders are posing for a picture on the slope.\nA large flock of black birds in flight.\nA man sleeping in a ten laying next to a big dog.\nA group of people riding mopeds in a busy street. \nSeveral giraffes, including an infant, stand in an exhibit.\nA person snowboarding down a snow covered mountain.\na stop and go light on red out side of a building\nIt is a small kitchen with standard appliances.\nA red motorcycle with a back seat parked on the side of a road.\nA guy sitting on his motorcycle while a woman stands beside him\nA picture taken through a car window of a shop with many motorcycles parked in front of it.\nA very old toilet and sink in an old room. \na black laptop and a notepad on a desk\na desk with a banana a keyboard and a mouse\nGroup of white horses walking next to a river.\nA ferry the is pulling into the dock for off loading. \nBrand new, stainless steel, big, modern, residential refrigerator\nA blue sign giving directions to a public toilet.\nTwo zebras eating hay from a feeder together\nA group of people on bicycles in a busy street.\na swiss army knife sitting on a table with a flash drive\nA passenger train on the tracks going under a bridge.\nthe man is holding a phone next to his ear\nGiraffes have a very long tongue to go with their long neck.\nA retail sign is hanging above a stop sign alert for added effect.\nTwo cats in a chair taking their naps.\nA baby boy putting his hands in a strawberry covered cake.\nThe woman stands cooking at a pot over a fire.\nBasket of old stuffed animals upside down in the trash. \nA bunch of horses that are standing in the water.\nA glass plate that has food on it sitting on a table.\nThree young people in a kitchen pointing to a pizza.\nA sleek, black bedroom looks cold and uninviting. \nA pork roast in a glass dish surrounded by potatoes and carrots.\nThe man is taking a pizza out of the small brick oven.\nA vase with a flower sitting on top of a wooden table.\nA stainless steel microwave oven is on a refrigerator.\nA metal gear with chain on a wheel.\nThere is a male tennis player that has swung for the ball\nA cabana-styled bedroom looks light and airy. \na stop sign on a wooden pole in front of an empty field.\nGirl walking through a living room with a huge leather sectional.\nA tall clock tower sticking out of the roof of a building.\nAn adorable baby laying in bed with a stuffed brown teddy bear.\nA group of five jets flying through the sky.\nA herd of gray elephants standing next to each other on a block of cement.\nA group of people eating a meal at a table.\nThe parts to a food processor are placed in front of it.\nA truck cake sitting next to a Ford emblem cake.\nA bathroom contains a toilet, a sink and a bathtub.\nA stop sign with a green street sign posted above it.\nA young man riding a skateboard down a dark street.\na bunch of cows walking down the road\nA table full of assorted desserts being eaten\na big clock on a pole and very tall buildings lite up in the night\nA cross country skier resting with his ski poles in the snow.\nA red motorcycle parked next to a woman sitting down.\nA kitchen in a restaurant with several hot dogs on a grill with some buns. \nA crowd of people flying kites next to a city with tall buildings.\nAn old fashioned street sign in a town on the corner. \na man on a skate board jumps over a motor bike\na man in a suit drinking a cup of coffee\nA woman is riding a motorcycle down the street.\nPerson in profile and sunlight at a barred window.\nThe orange fire hydrant is on a sidewalk in front of a brick building.\nA man sitting on a couch with a dog mug and remote control.\nA sign on a pole signifying a no parking zone.\nTwo zebras are standing together side by side.\na red and blue fire hydrant and people walking in the rain\na cyclist with a motorbike moving very fast\nA grouping of zebras in a pen next to a giraffe.\nA partially eaten sandwich with steak and onions.\nDishes lined up on a narrow shelf above a radiator.\nA woman waiting on the subway to disperse\nA picture of a dog is centered on a stop sign.\nthere are many rocks on the side of this road\nA bathroom with blue walls, black and white checkered floor, toilet, urinal and bathtub.\nSeveral sheep are in a grassy field with trees.\na couple of boats that are floating in some water\nTwo men play Wii sports in their living room.\nThree people flying a rainbow kite on a sunny day.\na cat lays down next to a key board \nBlack and white photograph of person with birds.\na couple of zebras are standing in a green field\na large white boat at a boat dock\nA lake filled with water and a kite flying over itl\nA couple of airplanes sitting on top of a runway.\nA giraffe is leaning over a fence looking at people.\nA close up of a ring shaped cookie with green icing.\nA man jumps into the sea water while holding a surfboard\nA cluttered home office with a computer workstation, books, and a three-legged stool.\nA green street sign on a pole in front of a tall building.\nA red double decker bus driving past very tall buildings.\nA woman standing outside under an umbrella reading a magazine. \nthere is a desk chair sitting by the door of a bathroom\nan image of zebras playing in the snow\nTwo horses in a field next to a fence.\nA person with a skateboard on a street.\nA water surfing ride attended by an employee.\nA car driving down a street past a tall building.\nA pitcher throwing a baseball on the baseball field. \nA sandwich cut in half served with coffee\nA man sitting on a couch next to a white stuffed teddy bear.\nA couple of long buses stopped at a bus stop next to a bridge.\nA white toilet sitting next to a green wall under a picture.\nthree dogs on a field of green grass\nA white-clad tennis player hurls a ball upward to deliver a serve.\nA group of men standing behind a man in a wheel chair.\nA bunch of sheep in the snow behind a barbed wire fence.\nA woman holding an umbrella listening to another woman.\nPeople on a motorcycle holding a wrapped surfboard.\nA man wearing a hat and tie looking at a paper.\nA sign for Davidson College outside of one of its buildings\nA white bathroom sink with a vase of flowers on it\nPigeons attempt to eat pieces of pizza on the ground.\nThree youth sit in the doorway of a house while one smokes. \nA cat sitting on top of a banana tree.\nfour men playing frisbee in a fenced park\nA medium sized dog jumping into the air to catch a toy.\nA man rared back at a tennis ball with a tennis racquet.\nA larger blonde woman is eating a hotdog at night. \nTwo parking meter that accept credit and debit cards\nA pot filled with some liquid and parchment paper.\nThe dog is wondering if he will get to have a piece of the roast tonight.\na tall monument with clocks on all four sides\nA living room, complete with couch, coffee table, shelving unit and tv set.\nA small baby bird on a piece of metal.\nA ladder leading up to a loft filled with Christmas decorations and teddy bears.\nA set of three white plates covered in food.\nA person flying a kite while standing on a beach pier.\na small cat is sitting on a step by a door\nA clock with the Seiko logo underneath it.\nthe animals are walking and grazing on the grass\nA bright yellow transit bus is making it's way down a street in the dark.\nA white and black bird sitting in grassy area next to water.\nA bed sitting up against a wall next to a window.\nA traffic light over a street with a sign that reads K.\nA group of men on a field with baseball bats.\nA man standing in a field with a baseball.\nsome people are taking pictures of a pizza\nA yellow scooter bike is by a fire hydrant.\nA man in a wet suit surfs in a flash flood by a bridge.\nA man dressed all in leather standing next to a motorcycle.\nA person is laying on a rolling bed in the street\nA little girl holding a paddle on a kayak.\nA microwave oven with a tray on the bottom\nA tall yellow vase stands before a pink pillar.\nGroup of people crossing the street behind trolly.\na lady taking a bite from a slice of pizza\nSomeone holding a napkin and a banana in their hand\na man and a cat lying on a couch\nSign on the side of the road welcoming people to Arizona and another sign warning of road work ahead.\nA picture of a two-story bus by the street.\nA toy horse sits atop a red wooden chair\nVehicles on a street near a green traffic light.\nA very tall cathedral towering over a city.\nA man standing on a tennis court with a tennis racquet.\nA London roundabout with double decker buses and taxi cabs.\nA hot dog on a bun next to a pile of tater tots.\nThe train moves thru this part of the city.\na couple of horses are standing on the beach\ntwo train cars one is black and the other is white\nA motorcycle is parked near a puddle and a van.\nA laptop and some computers on a desk.\nA man sitting at a laptop computer sitting in front of a mirror.\nWaves crashing on the shore with a surfer in the midst\nA large passenger jet sits parked at an airport.\nA cat is curled up into a ball near some teddy bears\nA model of a red cow wearing a pink top hat outside of a building.\nA group of motorcyclists stay in a group in traffic.\na baseball playing is holding his bat and ready for the hit. \nthe bus is blue and is stopped. Some people are standing waiting for it\nA young male is riding his skateboard in his empty pool.\nSeveral small clocks are all connected with human-like ornaments. \na couple of big beds that are in a room\nA zebra all by itself in the green forest.\nLuggage moves around a carousel at an airport\nA small train going down a steel track.\nA pizza type dish with vegetables and a lemon wedge.\nA delivery truck parked in front of a store on a street.\nA grop of pigeons in front of an open window\nA boarded up white house sitting on a grass lot.\nA downtown area of a city with buildings and billboards. \nA empty bench in a grassy field with yellow flowers surrounding it and a lake and mountains in the background.\nThe black street pole has three different signs on it. \nTwo gray elephants standing next to each other on a road.\nA young girl protects herself with an umbrella\nA little girl holding a baseball bat on grass.\nA man ridding on top of an elephant in a city.\na lot of luggage bags in the center of a room\na group of cows grazing next to a barn\nan image of a group of people that are on a boat\nA close up view of some very tasty looking food items.\nA city street filled with lots of traffic.\nA computer and a laptop on a desk next to a tobacco pipe.\na woman in a white shirt is near a table\na herd of elephants traveling on a grassy area next to a lake\na dark living room with some light from the long windows and lights on the mantle \nA little girl drinking from her cup with orange slices in front of her.\nA plate of pizza that is on a table.\nA man bits in to food as a crowd of people mills around behind him. \nA young man standing in front of a fence holding a skateboard.\nA girl with a stuffed animal is jumping on a trampoline.\nA large bird perched on top of a stick near a window.\nA woman wearing a white shirt and pants standing next to an older gentleman.\nA woman bending over while holding a racquet.\nBathroom with white fixtures, tiles and corner shower.\na tennis player swings his racket at a tennis ball on a tennis court \nA man carries a leash around his shoulders as two dogs make their way alongside.\nA deep dish pizza sitting on top of a table next to a spatula.\nThe four urinals have a very modern design.\nA photo of an outdoor with many things in the scene. \nA long train traveling past passengers on a platform.\nA baseball player wearing a leather glove standing in the dirt.\nA man and a woman are in the snow with helmets.\nA woman in lingerie is laying on a soft bed.\nA couple of yellow buses parked on top of a road.\nA man laying on top of a tennis court while holding a tennis racquet.\nA sharp steeple on a building is lit in the sky.\nA large white bush stopped at a bus stop.\nA computer with a very colorful monitory and keyboard.\nA group of birds are sitting at the edge of the river. \na cat laying inside of a bathroom sink\nA giraffe stands tall beside a tree in a barren area.\nA kitchen with lots of cabinets with an oven underneath a microwave oven.\nA laptop computer with a phone and mouse on top of it.\nA weather vane with a clock near a body of water.\nTwo men sitting in chairs at a table with cell phones in their hands. \nThe desk has a potted plant near a remote, books, and a cell phone.\nThree sheep in a field of grass near a steep hill.\nA woman sitting laying on a bed dressed up like Marilyn Monroe.\nA giraffe that is standing in the grass.\nA motorcycle sitting on the side of a street corner.\nA white sink sitting underneath a round mirror.\na close up of a hot dog on a plate near french fries\nA crowd of people near water cheering next to a float.\nA stop sign and street sign encased in snow and ice.\nA long bus being loaded onto a large tow truck.\nA man with a knife cutting into a cake. \nA beautiful painting of a white plane with a blue tail.\nthere is a cow and people in the street\nA surfer clings to his surfboard beneath a large wave.\ntwo little girls in tennis uniforms standing next to a scooter\nA group of people riding skis and snowboards in the snow.\nA male baseball player is taking his swing while others look on. \nA couple of blue street signs hanging off the sides of a pole.\n A bench sitting on to of a field of tall grass near water.\na cast iron dish filled with rice and brocolli\nA bunch of bananas on a plate on a counter.\nTwo men with racquets on a tennis court.\nA glass vase with white flowers in it. \nA man sitting on a bench in a room.\nPeople on motorcycles riding pass parked cars on the street\nA dog standing on top of a boat in a body of water.\nA small dog sitting inside of a piece of luggage.\nA boy in a straw hat sits with two stuffed bears.\na tray with various foods and beverages on it\na female tennis player in a white top\nA man flies a kite by the water side.\nThere are two riders on motorcycles and mountains in the distance.\nA cute orange cat sitting on top of a structure.\nA woman holding a quiche in her hand and smiling\nA bathroom with a white bath tub under a window.\nA fat orange cat on a couch beside a TV remote\nA woman cuts a pan of cookies into bars on a kitchen counter.\nA man is flying a kite in the sunlight.\nA red parking meter next to some people\nThe elephants and the young children are playing in the river.\nA laptop computer sitting on top of a wooden desk.\nA living room with sofa, lamp and tv in it.\nA group of yacht boats in a shallow body of water.\nA child's steam engine train sitting on train tracks.\nA woman walks down an alley with an umbrella.  \nA baseball batter up at the plate that just hit a ball \nAn extravagant bedroom with focus on the chandelier.\nSome yogurt and baby carrots with dip are on this plate.\na bunch of cows and baby cows in a line in a barn\na couple of kitchen appliances are lined up\nSome sheep are next to a hay pile.\nA picture of a cat wearing a bow tie.\nA bus approaching an intersection at a green light. \nGirl sitting by the river using her cell phone.\nA tall stone building with a massive clock on it's side.\nA large cat sitting on a wooden bench next to a building.\nA small white church with a clock on the side of it's tower sitting on the end of a street \nTWO PIECES OF PIZZA BOTH DIFFERENT IN A BOX\nA freezer with several boxes of a dish in it.\nA photo of a young male in a suit jacket and tie.\nA sheep scratches his back up against a wooden structure.\nA park bench in front of a porch in a green grass filled park.\nA man sitting on top of a purple bench on a tennis court.\nA large yellow dump truck sitting on green lawn.\nA very tall building with a clock mounted to it's side.\na gladiator movie dvd case on a travel luggage bag\nMan performing a trick on a skateboard with monochrome black and white\na row of umbrellas opened advertising a beer company\nFour people at a table with a birthday cake that has just been lit.\nA person in a yellow outfit flying two alien kites.\nA train driving along the train tracks in the day.\nA large propeller plane mounted to the ceiling of a building.\nSeveral surfers paddling on their boards out in the ocean.\na dog walking beside a man carrying a surf board\nA parking meter sitting next to a small covered sign.\nThree zebras standing around looking while in the grass. \nA couple of cattle standing on a lush green field.\nA cat sitting on the back of a Paso 750.\nTwo coke bottle sitting behind a laptop and a man sitting on a couh.\nWhatever is in the cup does not please this woman.\nA guy in a maroon shirt is holding a tennis racket out to hit a tennis ball.\nA kid is on an electronic device with a a girl watching.  \nA group of men standing next to brown horses.\nA man is trying to pull off a skateboarding trick on his ramp. \nA woman standing on a tennis court holding a racquet.\na few giraffes that are reaching to eat\nlots of men in suits and one boy is sitting on some luggage\nAn old toilet in a bathroom with extended plumbing  \nA car traveling down a road next to other parked cars.\nA man in white shirt preparing a pizza on counter.\nA brown and white horse appear to be tired.\nA man and young girl surrounded by various fruits.\nA man is waiting for the wave he wants to ride to the shore\nA tower towering above a small city under a blue sky.\nBowls of fresh salad, soup, pudding and rice\nThe two laptops are still on the table. \nA large white bird flying over a rock cliff side.\nA room that has stained glass windows separating another room.\nA young boy wearing camouflage sitting in a  doorway.\nA bathroom with a marble counter top under a  mirror.\nA group of people sitting at a table with laptops.\nThe woman and baby are watching the elephant.\nA wooden table topped with a  banana and a muffin.\nA animal sitting on a table next to a vase of roses. \na person para sailing on the ocean waves\nBrown horse grazing alone in an open grassy field. \nA vase filled with flowers on top of a table.\nA plane flies high in the middle of a dark sky.\nthere is a sony lap top on a table along with other things \nA street sign that reads Bush on the side of a pole.\nA bathroom area with a tub, sink and wooden floor.\nA tview of a living room with fold out bed.\nA woman holding a piece of paper near a pan of pizza. \nA flower vase with lavender and white petaled flowers.\nA street covered in pink confetti next to a red fire hydrant.\nA couple of giraffe standing next to each other.\nTwo men talking in a crowd on a ski slope.\nA brown horse grazing on a lush green field.\nA boy sitting down in a park with a skateboard.\nA man on a wake board that is up in the air.\nA large horse studding next to a baby horse.\nBedroom with a king size bed with wooden furniture. \nA large blue object that has stuffed animals inside of it.\nA person standing next to a chair holding an umbrella.\nThis is a large fish that is in an aquarium. \nA sheep lying on a hill side next to a tree.\nSeveral men running while one man running towards a frisbee. \nA red city bus with a red bow attached.\nA surfer is coming down off a huge wave with lots of white caps.\nA dog and a large pizza by a table.\nA man sitting at a table with food next to a little girl eating.\nAn elephant can be seen through a barbed wire fence\na couple of sgns are on poles in the ground\nAn elderly woman sitting on the bench resting.  \nfemale tennis player running to intercept the ball\nA large gray elephant walking along a field.\nA red stop sign sitting next to a wooden fence.\nA young man swinging a baseball bat on a baseball field.\na large clock indoors with a large flag \nA man opening a fire hydrant spewing out rusty water into a street.\nA young man is alone in the grass trying to catch a Frisbee. \nA man walking up the beach after finishing parasailing.\na number of people on a beach with a body of water \nThe picture of a tennis player playing in a game.\nA woman wearing a mask on her face purchasing vegetables\nGuy jumps up to catch the frisbee in the gym\nA boat that is on the dock still attached. \na number of people standing around a table with wine bottles\nA blurry photo of a train riding along\nA man stands outside a shop selling various items.\na man on his phone in some kind of room\nVegetables like lettuce, turnips, carrots, etc. all on top of a kitchen island.\nA person flipping of a parking meter on the side of a road.\nA table with two boxes of pizza and beer cans\nWoman standing behind open refrigerator door in modern kitchen.\nTwo men playing a game of tennis on a court.\na hotel rooom  with two beds and a food tray on one bed\nSeveral motorcycles that are parked on the side of the street.\nAn image looking down in to a toilet.\nA small woman standing in front of a baby elephant.\na baseball player swinging a bat on a field \nThree surfers take their positions to ride an ocean wave.\na street light is on at the top of a hilll\nA mother and baby elephant are standing near a water source.\na woman standing with two wine glasses in her hands\na dog is laying with a remote controller\nSunbathers are on a rocky beach with towels, and umbrellas.\nTwo donuts with chocolate frosting and sprinkles on a plate.\nBlack and white image of baseball player about to throw the ball.\nA pizza covered in cheese sitting on to of a counter.\nA stack of pan cakes sitting on top of a plate.\nA woman stands with outreached hands waiting to catch a ring.\nA table topped with plates, bowls and containers of food.\na refrigerator in a room next to a wall\nA couple of people with some skis in the snow.\nA man is smiling while sitting on a horse.\nA man standing on top of a tennis court holding a racquet.\na small pamphlet is sitting on a benches arm\nAn older man standing next to a garage and a young boy.\na person walking across an odd looking pavement carrying an umbrella\nA Caucasian man looks up while talking on a cell phone outside.\nA little boy and girl playing with a interactive video game.\nA boy in white shirt and boy in red shirt at table with cereal.\nA kitchen area with stove, shoveling and a dishwasher.\nA person holding a phone in their hand with a boat on it\nA woman walking along a tennis court holding a tennis racquet.\nTwo young women playing a game of soccer.\nA double deck tour bus riding down a street.\nA train that is sitting on the rails next to a pole.\nA cat resting on the bed with a bedroom\na skateboarder in a black shirt is doing a trick\nA woman walking in ocean next to a white surfboard.\nA young boy playing a video game while sitting on a sofa.\na number of people riding skis on a snowy surface\na kitchen that has a sink and a stove in it\na tennis player getting in position to hit a tennis ball\nA bird that has landed on top of another bird\nA dog looking over the side from the bed of a pickup truck \nA eggy casserole is shown from the inside.\nA group of people swimming in the ocean with a surfboard.\nA double decker bus driving down a street next to tall buildings.\nA man stands in a boat near a flock of ducks.\nA street with brick lined buildings, British flags and a clock tower.\na close up of a plate of food with a sandwich\na few boats that are out on a river\nA book shelf filled with lots of books.\nA discarded white refrigerator sitting on the street.\nA man riding in the back of a white and red boat.\nAn older man with a bow tie happily poses for a picture.\nA street sign at an intersection with tropical trees in the background.\nA young man is about to ride the ramp on his skateboard. \nA large kitchen with a center island surrounded by stools.\nA large bus driving down a city street.\nA man standing next to a black bag of luggage.\na cat laying down next to a mirror \nTwo horses in a field by a stone fence.\nA giraffe standing in a park next to a rock.\nA large group of women are at a dining table.\nA power tool sitting on a wooden table next to a knife.\nTwo people are riding on top of some elephants.\nA tennis player getting ready to serve the ball \nPink and yellow flowers are in a brown vase.\nA woman holding a polka dot umbrella looking inside a shop.\nKite flying in the breeze on the beach. \nA big crowd of people huddled together with some umbrellas.\nSeveral people are standing on a city street.\nA man riding a skateboard on top of pavement.\nA group of people on a beach with surf boards.\nA black dog next to four different boats. \nThe pizza is full of chopped tomatoes and there is a salad on the side. \nA white sink and shower in a small bathroom.\nA blue truck with a large poster on it's side.\nA crowd of people standing on a sidewalk holding candles.\nA group of people sitting at a table with laptops.\nThe skier in the orange coat is riding on a trail between the trees. \nA bear in an enclosure with dead wood, grass and large rocks.\nThe white van is driving past the red fire hydrant.\nA group of various farm animals together in front of a barn.\nA red and black train traveling through a grass covered countryside.\nA row of colorful bikes parked under two umbrellas.\nZebras graze among grasses, shrubs, and a dead, leaning tree.\nA red stop sign with a picture of a Time Magazine cover underneath stop.\nA pile of delicious veggies and meat on a hoagie bun\nA round cake decorated for Christmas with penguins and fir trees. \nthis is a bus with an ad for a casino\nA teddy bear is seen looking out the window.\nblue berry doughnuts are on display in a bakery.\nA lone giraffe standing in the tall bushes.\nA bicycle is standing next to a bed in a room.\nSeveral people in skis standing on a snow covered incline.\nthere are many bikes parked outside a pizzeria \nA crowded city street line with tall buildings.\nA bundt cake pan filled with a batter \nA cat sleeping in a large piece of luggage.\nTeddy bear in front of a holly covered object. \nA white paper plate topped with orange slices.\nSteak sits on a plate with broccoli and mashed potatoes, next to a glass of water.\nStreet signs are advising people to proceed while being aware of their surroundings.\nThe clock tower is in the middle of the street\nSeveral sail boats on San Francisco Bay near the Golden Gate Bridge.\nA man swinging for a ball on a tennis serve.\nA group of men are cutting a cake.\na bunch of cars parked on the side of a street\nThe corner of an intersection with a trash bin and clock.\ntwo red shuttle buses riding down a street next to a blue pole.\na street sign on a pole against the sky\nAn airplane parked on a dirty field next to a chain fence.\na man is flying a kite in a field\nA bucket filled with two fruit filled donuts and a cup of custard.\nHorse standing in open field staring at camera.\nA row of palm trees and a traffic night in a rainstorm.\nA person kneels a bit as they race down a special ski path\na kite surfer is flying in the air over some water\nTwo women on a park bench while a man on a cell phone walks down the sidewalk.\nA man kneeling over a laptop computer on a table.\na close up of a cake on a counter \nPeople are hiding under colorful umbrellas on a rainy day.\nFruits and vegetables are on the cutting board\nA daytime view of a messy kitchen corner.\nA group of people holding umbrellas eating a meal outdoors.\nA blurry image of pizza with a fork, knife and drink\nA giraffe in a dry savannah with dry shrubs\nA man in a beanie sitting with a red and white snowboard.\na gray cat is seen laying on top of a blue tube\nA blue and white train on tracks with blue sky in background.\nA pile of dirty clothing stacked on top of the floor.\nA child sitting on a chair with many stuffed animals.\nA very clean sink that is in the bathroom.\nThis bathroom features a marble top vanity with double sinks.\nA man does tricks on his skateboard while people look at the scenery.\nPeople are sitting at a table drinking a beverage.\nA person riding a brown horse with blonde hair in a green field.\nA tennis player prepares to hit a forehand shot in a tennis match.\nFlowers in a vase on a window sill.\nA bike parked in the  middle of a sidewalk next to a street.\nA man that is on a board in the water.\nA is cat seated near a wine glass. \nA group of men sitting in front of a laptop computer.\nWater reflects in the panels of a building as a skateboarder rides on the boardwalk.\nA bird standing in the sand and another bird landing on a blanket in the sand.\nA truck driving through a lush green field.\nThree dogs bite at a frisbee while at a park.\nA magazine that is laying near a keyboard.\nOne cheese pizza cooked and sliced on a pan.\nThe person is holding a forking and eating food.\nA desktop computer on top of a wooden desks.\nTwo large beds in a hotel room next to a desk.\nThere are diffrrnt Apia ces in the kitchen\nA person wearing a vest and tie in a yearbook photo\na clock attached to a wall of a building\nYellow and grey train near platform at railway station.\ntwo yellow red and silver trains on their tracks \nA group of people standing in a room.\nA red and yellow high speed passenger train rolling along the track.\nA small child in pajamas is holding bananas.\nA shirtless man with a hairy chest holding a remote\nA fighter jet is flying through the air.\nA woman in red shirt standing in bathroom with sinks and a television.\nA large trains travels past a river that contains several different boats\nA person holding hot dogs at a basketball game.\nA double decker bus stopped at an intersection.\nthis is a child spinning around a bat outside\nA small white rusted boat floating across a body of water.\nA couple of stuffed teddy bears sitting next to each other.\na bunch of toilets laying on some cement stairs next to a building\nTwo teams compete for the ball during a soccer game.\nA cat standing on a couch in a cluttered living room.\nA picture of some flowers that are on a table.\na bunch of kids walking through some grass\nMen riding on horses and with other ones.\nHalf of a cake with various layers on a foil covered plate.\nA woman holding up a large carrot in a backyard.\nA person laying in a bed with some laptops on.\nA group of cars, riding down the street.\nA giraffe standing in dirt field next to trees.\nPaved road with vehicles in one lane and a flock of sheep and goats in the other.\nA table set for a traditional Thanksgiving dinner.\nA group of carrots sit in a glass dish.\na pan of pizza on a table next to wine\nmany people on a snowy slope riding skis and snowboards\nYoung guy in mid motion of catching a frisbee.\nCheese stuffed crust is a relatively new type of pizza.\nA giraffe in a grassy field near a hill.\nA man riding a skateboard through the air.\nA woman standing on top of two pieces of luggage.\nThe boats have been docked under the green hill.\nA man is riding a brown horse along with a black horse.\nPeople passed out on the floor of a bathroom with urinals and a toilet.\nA motorcycle is parked in a parking lot.\nA small pizza in the middle of a table.\nA red motorcycle parked next to a beach near the ocean.\nA woman in a dress laying on a bed on the dirt.\nA snow covered soiled toilet sitting in front of a house.\nA disc golf hole with a few men playing near it.\nThis is a teddy bear birthday cake for someone turning 30.\nBride and grooms arms cutting the wedding cake with fruit on top.\na long double decker passenger train going along a track \nA couple people in the water flying kites.\nA man riding a skateboard while flying through the air.\na table with a white plate a sandwich and a bottle\nA bed sitting in a room next to a window.\nA family of giraffe standing next to each other.\nA man cutting food with a knife and a fork\nA baseball player holding a bat while standing on top of a field\nA passanger bus stopped by the side of the road.\nBlurry photograph of a commuter train coming in to a station\nA hand holding a long wine glass with wine.\nA large bowl full of noodles and onions\nPeople riding snowboards down a snow covered road.\nA boy holding a baseball bat watching a ball.\nA large brown dog walking in front of a woman holding two ski poles.\nA cat laying in a box full of bubble wrap.\nA street sign prohibiting vehicles in front of a store.\nTwo people are looking at a truck while a dog is being walked.\nAn empty street with brick buildings and cars.\nA street sign hanging from the side of a metal pole.\nA small lit baseball field at night with people playing baseball.\nA white toilet with a wooden toilet seat.\nThe people are preparing to go skiing in the snowy forest\nA woman holding two halves of a donut, one in each hand.\nA zebra that is bent over eating grass.\nA couple instrument cases are stacked up with a red hat on top for donations.\nA group of commuters standing next to a passenger train.\nA giraffe and a zebra stand on a concrete area near rocks.\nA small boy is asleep on the side of a bed.\nTwo teddy ears are hanging in a window.\nA kitchen with a stove an dove and wooden counter.\nAn above snap shot of a flushing toilet bowl.\nA forest filled with lots of brown horses grazing on green grass.\nTwo birds on a parking bay with cars\nA dog is resting under a blanket on a plump mattress.\nA young man walking across a street at a crosswalk.\nA coffee cup sitting on a wooden table next to a computer keyboard and mouse.\nA man sitting at a bar being served by a woman\nMan in black shirt sits in restaurant with desert and wine in front of him. \nA man standing next to a sled with baggage on top of it.\nA small round clock atop an ornate old building.\nSome taxi cabs parked along the side of a road.\ntwo little sparrows standing on a table by a knife\nTwo people are on a bike together traveling down the road. \nThe woman is eating a piece of pizza. \na street sign on a pole on a street \nTwo cops standing in front of a street on a cross walk.\nAn \"ANA\" blue and white airplane at an airport. \nA hot dog with toppings and condiments in a paper wrapper.\nA white FedEx truck parked in front of a tall building.\nBeach chairs under umbrella at populated ocean beach. \nA living room with colored windows, sofas and chairs. \nA picture of a giraffe drinking some water.\nBoats sit stationary in the middle of a canal.\na small kitten is looking in the mirror where you can see its reflection\nA classroom that is empty and has tables and chairs.\nA living room filled with furniture and a window.\npeople crossing the street in a big city in the rain.\nA woman standing in mid swing with a tennis racket\na country farmland half covered in the shade of a cloud in front of a mountain\nSome guys playing with a disc in a grassy field.\nA group of people standing around a center kitchen island.\nA man holding a surfboard while wearing a wet suit.\nA white table with a laptop computer on it.\nA young baby standing in front of a refrigerator.\nTwo zebras standing around, one is eating grass\nA boat sitting next to a beach in the ocean covered with birds.\nA traffic light sitting above a street with lots of traffic.\nA man sitting on a red couch holding a Wii game controller.\nSeveral animals walking on a road with cars behind them. \nA group of teddy bears hanging from a rack.\nA kitchen sink inside of a center island.\nA cat outside looking through a window. \nthis is a room with a white bed in it\nA tall giraffe standing in front of two giant stones.\nA train pulling past a church with a large clock tower.\na couple of dogs are standing with each other\nMany people riding horses about to do battle\nFour baseball players pitching balls in the middle of a baseball field.\nmultiple vases with different designs and shapes displayed on tables\nSix candles are sticking out of a blue cake.\nLavishly decorated cake and empty drinking glasses await their tropical guests\nA cow that is sitting on the ground in front of a motorcycle.\nA person on skis going down a mountain slope.\nA man standing near a bridge going over water.\nA man sitting on the edge of a platform with a large suitcase and statue.\nA group of cows that are standing in the grass.\nA baseball player taking a swing at a ball.\nA black cat is sitting on a red suitcase.\nTwo women who are standing under a umbrella.\nA glass of alcohol next to an open laptop computer.\nA bathtub sits next a window showing a ferris wheel.\nA bus is parked on the street away from some cars.\nA group of stuffed animals and guinea pig sitting on a couch. \nA giraffe and two zebras walking in tall grass.\nA baseball player swinging a bat at a baseball.\nA multicolored train passing another set of tracks.\nA zebra grazing from the ground in its enclosure.\nA young man sitting next to a little girl on a bed.\nA decorated living room with two green chairs.\nA group of people sitting around a wooden table with food.\nThere are a few street signs next to a house.\na train is stopped on the train tracks at the station\nA man power sliding on a long board \nComputer on the desk at nighttime in front of a window.\nTwo DVD cases with both of them relating to cats. \nthis school bus is yellow and black with dark windows \nA glass elephant figurines sitting on a plate.\nA tennis player is shown three times within an image.\nA man sitting at a table with a plate of chill cheese dogs.\nA large brown bear walking through a forest.\nA white furry puppy dog nestled beside a brown teddy bear.\nA man rides a bicycle carrying snow skis.\nA blue pickup is driving through an intersection.\nA man looking at a child holding a brightly colored computer.\nA street scene with several cars and a bus.\nTo men in cloaks ride skateboards down the sidewalk.\nview of a mountain top and clouds from a very high angle\nA bird that is sitting on top of a tree.\nA blurry living room scene suggests a wide screen T,V. with a game playing, bookshelves, a low cluttered table, a couch, and closest and clearest, a sports t-shirt with the number thirty-five on it.  \ntwo boats sitting on the shore close to the water \nA female tennis player in action on the court.\nA bathroom with orange and white flooring with double sinks\nA person watching another person standing in the water.\nFew people playing with Frisbee in the park.\nA small sheep is standing under a wooden fence post.\nA young boy is sleeping on a black couch.\nLady with a slice of piece in front of a stack of pizza boxes.\na  yellow fire hydrant on the corner of a street\nA man is on a surfboard and is pulling something in the water.\na truck is parked at the end of a street\nA man riding a red scooter down the street.\nTwo black and white cows resting in a field next to body of water.\nThere is a thin crust pizza on the counter\nA man riding a surfboard on top of a wave.\nA laptop and planner sitting on a cluttered desk.\nA crowded beach with people playing frisbee \na motorcycle sitting on the sidewalk in the shade\nA small white plane sitting on top of an airport runway.\nA stop sign with a truck leaving a business establishment.\na dog rests in a basket on a bike \nA picture of four red Asian fire hydrants lined up.\nAn old blue truck drives down a dirt road.\nTwo men with beards wearing suits on a sunny day.\nA person holding up a smart phone to take a picture.\na green truck parked in a dirt field with green shrubbery\nA series of photos showing people eating food.\nA group of men playing frisbee against each other.\nTwo young men skate down an urban road.\nStudents in a study hall working on computers.\nA subway station above groundtrain with a small green building.\na black and white photo of a person holding a sign\nA large jetliner flying over a tall building in the sky.\nthere is a baseball player practicing his swing\nA man fallen on the ground while riding a snowboard.\nThe two people are ready to serve the variety of donuts.\nA crowd sits in the stands as baseball players are on the field.\nA wrestler walking with his arm around a mans neck holding a purple umbrella.\nA group of people standing outside of a bus.\nMan jumps aloft while balanced on a snowboard.\nA man is throwing a baseball near some water\nA woman using a smart phone with her two hands.\na lot of different types of luggage bags near one another\nTwo guys in coats standing next to a stop sign \nThere is more than one roll of toilet paper for this toilet. \nthis is a woman cleaning a public restroom\nA female surfer rode a wave at the beach\nA man with long hair wearing a red suit surfing. \nAn older man sitting on a wooden bench under a tree.\nSeveral plates with pieces fo cake on each plate, and one piece of cake has a plastic fork stuck into it.\nA man in wetsuit carrying a white surfboard on beach.\nPutting a used toilet out with the trash is certainly not appropriate.\nA tray of roast sits on the the oven\nA shot of a tennis player in mid shot.\nAn open room with a tile floor and wooden cabinet\na close up of a person in front of a refrigerator with its door open\nA traffic light on a street corner with shops behind it.\nA baseball player pitching a ball on top of a field.\nA person is looking at a laptop in the dark.\nthere is a city bus that has stopped to pick up passengers\nA blender has some sort of liquid inside. \nA stop sign has some graffiti on it.\nTwo women sitting on the floor with gifts in a living room.\nA white and blue bus passing a street intersection.\nA cat in front of a wooden bench in a garden.\nThe girl in this picture is not wearing many clothes.\na fire hydrant in a field with trees in the background\nA large orange cat laying on top of a blanket.\nA couple of zebras eating grass from a small grass area.\nA group of people playing frisbee in a field.\nA couple of people putting away ski equipment next to parked cars.\na big elephant walks with some zebras \nA skier pauses at a fork in a forest trail covered in snow.\nA yellow furniture moving truck parked next to a traffic light.\nA woman is riding a horse at a competition.\nMan in shorts running with a necktie on top\nMan next to chair walking from living room.\na person riding a skate board on a city street\nTwo horses nuzzling each other in a field.\nGive candles light a decorative cake with white frosting.\na small dog on a leash with a racket\nA group of fighter jets sitting on an airport tarmac.\nA small cat sitting under a wooden table.\nThe sidewalk is made out of bricks and has a fire hydrant on it.\nA giraffe is eating from a leafy tree. \nA nice interior decoration with a green couch and white end tables.\nA boat floating past a bridge on a river.\nA young child holding a baseball in their right hand.\nChild on skis with tips pointing at each other.\nA small neat bedroom for an adult \nA magazine with the title Games for Cats is showing two cats in a toilet.\nA woman is eating a pastry at a table.\nA woman and man serving themselves food from a table.\nTwo buses parked next to each other in a parking lot.\nA man in a dress and two men in pants with a bus.\na living room with a brown couch a table and a black cabinet\na bunch of pizzas are on display under a case\nAm an taking a swing at a tennis ball\nA man standing next to a woman on top of a beach.\nThere is a white and black desk with shelves  and a computer\nA stop light that is green that also has various other street markers on it.\na yellow and black train is coming down the tracks\nA young child that is wearing a helmet and red shoes.\nA large passenger jet taking off from a runway.\na child with a apron on looks at his food\nA person with a hat on flying a kite by a plane flying in the sky.\nA microwave oven sitting on a kitchen counter.\nA man standing next to a circus clown.\nCloseup of a button in front of the Louisville Slugger factory in KY.\nA bunch of surfers carrying their boards into the ocean.\nA woman with a space shuttle patch checking her cell phone.\nA person holding a sandwich next to a cup of coffee.\nA peeled banana on a table next to an unpeeled banana.\nA baseball player is getting ready to hit a ball.\nA picture of some food on a table.\nA dirt bike rider doing a stunt jump in the air\nA pair of black cats display a menacing stare.\nThe hitchhiker is waiting for the next available ride.\nA boy sits on a rock in a hat as he holds a trumpet near an old barn and some farm animals.\nThe woman using a cell phone touches her long hair.\nA pizza sitting on a white plag with a fried egg on top of it.\nA large long bus on a city street.\nA dish of steak and potatoes along with two bottles of wine.\nA tolley car on a brick street in an urban area.\nA group of neck ties sitting next to each other.\nA man that is standing up with a racquet.\nA group of motorcycles are on display at a museum.\nA field of cows grazing near a barn.\nFive men standing with backpacks and a police officer looking at them.\nCat laying on wooden floor with toy banana\nA group of people standing next to each other near a ground of people on a green patch fo grass.\nA train traveling down train tracks through a countryside.\nA man loosing his skateboard from the back.\nA  young boy standing next to a kitchen sink next to a dish rack.\nA man holding a tennis racquet on top of a tennis court.\nA woman flying a kite with American flags in the background.\nDog resting it's head on the arm of a couch.\nA large clock tower with an American flag flying from the top of it.\nTwo teams playing frizbee football with two players battling to make the catch.\nA white and gray bird sitting on a beach next to a body of water.\nA man hitting a tennis ball with a tennis racquet.\nA child on a beach flying a kite.\nA rider on a horse in a green field.\nA man holding a red surfboard at a beach looking at the water.\nA young girl eating a snack with a fork in her classroom\nThis people are standing near a man who is in the water.\nA man laying on top of a wooden bench next to a can of beer.\nA man doing a tail slide on a rail\nA silver passenger train traveling down train tracks.\nBlue flowers with green leaves in a jug vase\na close up of a table with many plates of food\na truck on a city street near a light pole\nA train speeding down the tracks in the middle of a field.\nA room with a bed and a TV mounted to a wall.\nA blue fighter plane on runway with trees in the background.\nA distant shot of a beautiful looking boat area outside of two buildings. \nUrinals lined up along one wall with a handicap accessible one at the end.\nGraffiti decorates the wall in front of a parking meter.\nA lighthouse with birds flying by it at a bay.\nA blue airplane flies in a clear blue sky.\nA living area with a bed and a large window.\nTwo men that are on top of horses on the side of a cow.\nTwo people stand on the beach, surfboards in hand.\nA street sign on a city street with tall buildings.\nThree zebras standing near each other in a penned in area.\ntwo people walking in the rain holding open umbrellas\nA bird is sitting on a branch among unfocused trees\nA kitchen that is very clean in a house.\nTwo elephants that are drinking out of a watering hole.\nTall tower with a clock on top on an overcast day.\na couple of treys full of food sit next to each other \nA man standing on a tennis court holding a tennis racquet.\nA pizza that is sitting on a table.\nA man throwing a tennis ball to hit with a tennis racket.\nA bathroom with a white toilet and a white toilet seat.\nA man wearing glasses and a blue sweater.\nA plate topped with a slice of pizza, a chicken breast and vegetables.\na square plate that has some food on it\nA coffee cup with a lid on a table next to a keyboard. \nA photographer setting up his equipment for a photo shoot.\nDog jumping in air to catch flying disc with adult sitting in background.\nA group of people walking down a city street near a bus.\nA red and white cellphone sits on a white computer keyboard.\nA small bus driving past a very tall pole.\nA person sitting at a table where a pizza is sitting.\nA cat sitting outside on some cobble stone.\nA little girl that is laying down in a bed.\nA girl in a red dress working on a laptop.\nA man laughing and playing with a video game.\nA young man riding skis across a snow covered slope.\nA red and white plate topped with a pot pie and broccoli.\nA lady sitting at an enormous dining table with lots of food.\na close up of a plate with french fries\na kitchen with a green rug sitting on a tile floor \nA dog is sitting by a person on a porch.\nan open sandwich with meat, onion and egg slices \nA group of people on a field playing soccer.\nA woman standing next to a young man near a pile of fruit.\nA little girl is dressed for and ready to play tennis.\nTwo large elephants in the woods with one leading the other \nTwo beautiful young women baking a turkey in a pan..\nthere is a young girl putting food in to a oven\nA foot pushing a flush button in a blue tiled bathroom.\nA kneeling down on a baseball field next to grass.\nA man is riding a surfboard on a wave.\nA group of boys in T-shirts and shorts playing Frisbee.\nA bathroom with a sink, toilet and bathtub.\na room showing a toilet and a sink\nA train filled with lots of sets next to windows.\nAn elderly person in a kitchen cooking food.\nA young woman is walking to the ocean with her surfboard.\nThe man is taking a photo with his cel phone.\nA man riding a skateboard down some cement steps.\na plate full of food with some greens on top\nA man standing on a tennis court holding a racquet.\nPeople try to pay a parking meter with a sign in front of it.\nA man sanding next to a brick oven filled with fire.\nA picture of a living room in a house.\nA parakeet perching atop a pair of used Vans shoes.\nA picture of a hot dog with ketchup and a drink.\nA rain covered terrain after a night of rain. \nThe blender is mixing several different fresh ingredients.\nA cat that is standing on a laptop.\nThree wall clocks showing different time and a lady\na giraffe walking through trees on a sunny day\nA young boy holding a baseball bat on top of a cement area.\na woman and her cat nervously look at the camera\nA group of people that are standing in the grass.\nA picture of a busy road at night \nA dog laying under a bed on top of a wooden floor.\nA bathroom with a toilet sitting next to a tub.\nA metal sink and a row of white urinals\nThe two monitors are sitting among the laptops.\nA person's arm holding a surfboard and standing in front of the ocean.\nA dinner table with a place setting and dish of food that has meat and vegetables.\nBlack and white photo of cars parked on the street.\nThe umpire, catcher, and batter as soon as the batter had swung.\nA woman with a book bag sits on a ledge with her cell phone.\nA cat has fallen asleep on top of a luggage\nA person that is skateboarding down a hill.\nHorse in fenced pasture with others grazing on grasses.\nTwo sheep standing next to each other on a grass field.\nA flock of small birds flying in the sky over the water.\nA vintage photo of a girl and her dog hugging on a bed.\nA lady plays a game of tennis outside.\nA bunch of surf boards lined up along a fence at a beach.\nA man walking towards a stop sign on the sidewalk.\nA dog watches an animal on the television.\nA man sitting on a bench reading in a city.\nA woman holding a phone up to her ear.\nA group of people standing around each other near a tent.\nFed ex boxes are stacked up on each other on the floor.\nTwo small dogs sleeping on a persons bed\nA kitten peeking out from behind a tablecloth on a chair.\nA man in a hat eating food with chopsticks.\nA person with a black and white umbrella is in a doorway.\nA table and floor topped with bear themed items.\nThere are a lot of people sitting by the fountain.\nA man wearing a short skirt and tighty whities.\na number of animals near one another on a field \nThe view out a train window passing along a wall.\na person riding a motorcycle on a closed course \nTwo people sitting at a table with bottles and glasses.\nA bathroom with black and white tiles all around it.\nWoman talking on cell phone on sidewalk with pedestrians nearby.\nA baseball player kneeling down next to a base.\nA large jet airplane being loaded with cargo at an airport.\na road that has a bunch of bikers driving down it\nA kitchen in an apartment with a wooden floor.\nA blue and white boat floating on top of water.\nA man riding a snowboard over a snow covered slope.\nA young a boy eating a chocolate sprinkled covered donut.\na kid and a girl are next to each other\nA man and a dog hiking up a mountain\nA group of young women holding umbrellas while walking down a street.\nA man on a bike rides through the crowd.\nA woman standing next to a child on a yellow flower and grass covered field.\nA man riding a skateboard over the top of a cement block.\nA woman holds up a small fake finger\ntwo boxes covered with random photos of women \nA large airplane flying over a city above a bird.\nA man and a boy playing with baseballs and baseball gloves.\nA person holding an umbrella above their head.\nA bedroom that has a lamp on either side of the bed.\nA bathroom with a raised sink and a mirror.\nA bed with two laptops on it below a painting.\nA glass table holding a cup of coffee and a cellphone.\nThere is one slice of pizza left on the plate. \nA man dressed in a suit standing next to his bicycle.\nA lone toilet sits in a large bathroom.\nA boy in a green and yellow jersey holding a baseball bat.\nCouple looking trifled at pickle on plate in the oven\na dog walking on his hind legs carrying a Frisbee \nA baseball player pitching a ball on top of a field.\nA bench sitting on the beach near the ocean.\nA person in red and black reaching for a person in white and black who has a Frisbee.\nPeople are flying kites at a field in mid day\nAn advertising column with advertising posters on it.\nA fuzzy white goat is grazing in the grass\nA motorcycle is parked in the gravel alongside a street.\nGuy poses for picture by kitchen sink with two dogs\nA plate of pizza with a fork and a cup next to it\nA man riding on the back of a motorcycle with a boy on it's side car.\nA blue and black motorcycle has a leather seat.\nA big dog is resting halfway out of the window.\nA very green bench that is in some grass.\na person laying on a boat in water\nA group of people standing on top of a tennis court.\nA young man kicking a soccer ball around a field.\nan airplane is being towed away from the jet bridge\nA young man in a black tee holding a racquet\nA young man holding a tennis racket waiting for a serve.\nThe dog is wearing socks, shoes, and a cap. \nOld refrigerator in dark, messy store room with tiled floor.\nA group of people milling about inside a large space in the winter.\nA plate of broccoli and meat stir fried \nA glass vase is holding a few colorful flowers.\nA skateboarder is riding his skateboard at night.\nAn elephant walks through th ejungle to eat.\na city bus drives down a street next to a building \nA big boat anchored next to a big dock.\nA herd of zebras standing together in a plain.\na person standing talking on a cell phone \nA cat wears a green tie and stares straight ahead.\nA black bird eating an apple on the ground in the woods.\na couple of people are wearing skis in the snow\nTwo people going through belongings from the truck of a car.\nProfessional baseball player getting ready to swing at a pitch.\nA beautiful young lady with a flower in her hair talking on a cell phone.\na dog that is laying down next to a truck\nA man surfs on a small wave on the water.\nA man with glasses, checkered shirt and dotted tie\nA wooden table surrounded by two chairs near a kitchen counter.\nThe woman in black pants stands holding a video game remote.\nA yellow boat sitting on top of a sandy beach.\nA cart with wheels with several trunks atop it\nA man on a skateboard with a dog on the sidewalk \nsome black and white pillows on a white bed\nFive bags of luggage sitting on to of a floor.\nCows standing next to a brick wall on top of straw.\nA wooden park bench overlooking a valley full of trees.\nA man in action looking at an incoming frisbee\nthere is a mirror and several other things on this table\nA group of young men playing a game of frisbee.\na number of benches next to a tree\nA table that has a plate with pieces of square cut pizza on it and a remote control behind it.\na small boat is sitting in a river\nA giraffe next to a stone fence staring off into the distance.\na person with their mouth open holding a piece of bread up to it\nA white bus parked next to a lush green park.\nThe woman is pointing at a big cake.\nA group of people and surfboards in the water.\nTwo men walk towards the steps while one carries a surfboard.\nA girl smiles downward while on the phone.\nA small cat is standing near the computer keyboard. \nStreet signs are displayed next to a road.\nA red stop sign sitting on top of a green planter.\nA fire hydrant placed in the street just off the curb.\nthere is a young boy wearing a tie and holding a bear\na table with plates and forks and knives close by\nA table with a huge glass vase and fake flowers come out of it.\nsome oranges that are sitting on some wood\nA young boy pushing a cart full of luggage bags.\nTwo large row boats filled with people in the water.\nA couple of hot dogs on a paper plate.\nA group of people sitting at a table with a pizza plate.\na dog laying down eating food out of a bowl\nA person in orange jacket doing trick on a snowboard.\nDoorway view into bathroom area with sink, toilet and tub.\nSome old buildings have street signs next to them.\nthree brown black and white dogs are sleeping on a bed\na sandwich laying on paper and on a table \nThe airplane is majestic as it takes off into the air.\nA large sandwich in a styrofoam container with a fork.\nA helmeted and goggled skier leans to get around an obstacle.\nA group of young guys playing frisbee in a field.\nA kitchen with a white stove and oven.\nA boy skateboards by a train during a sunset.\nTwo brown dogs in grassy area biting each other.\nA woman standing next to a red scooter near a shelf.\nA group of people with an umbrella leaving from stormy skies.\nA pair of red and black skis on a white background.\nA man in a tie sitting in front of a ashtray.\nA black teddy bear holding an automatic pistol pointing at a stuffed toy sheep.\nA pitcher is throwing the ball in a baseball game.\nA white plate topped with a toy hot dog in a toy bun.\nA bright street at night with several cars passing by.\nA cat is sleeping with his head resting on an electronics box. \nA person that is in the air over the water.\nA fire hydrant and some cars on the side of the street.\nan orange motor cycle sitting by the water\nA little poodle puppy laying near a newspaper with a look of guilt.\nA white clock tower between two pine trees. \nA TV inside of a bathroom mirror next to a light.\nA section of a yard being dug up next to a building.\nDog and cat lying on floor side by side sleeping.\nA large jetliner flying under a cloud filled sky.\nPlane on the tar mat of an airport.\nA bike parked next to a cat leaning up against a stone wall.\na sign with a clock in it hang off a building \nTwo men play around on a nature trail.\nA hotel room with two full sized beds.\nA black dog with a red collar under a pink blanket.\nA person standing on a loading platform next to a  train.\nA train traveling down tracks next to maintenance workers.\nA man riding a kiteboard on top of a wave in the ocean.\nThere are women wearing glove handling different breads.\nA microwave sitting on top of a wooden shelf.\nA display of chocolate donuts and some pink and white cookies.\nA string of Christmas garland hangs below a display of stuffed animals.\nDog standing on an empty beach in front of some birds.\nA man wearing glasses and a suit sitting on a bus. \na person standing next to a trindle bed\ntwo guys outside playing tennis on a tennis court\nIn a library children look on as costumed characters give a presentation\na kitchen with a refrigerator a small table and chairs\na red bus standing by the side of the road\nAn adorable small dog wearing sunglasses while sitting in a back seat.\nA brown bear walks through a grassy field.\nA little boy riding a skateboard down the side of a ramp.\nMerchants sitting while selling off produce to others. \na stuffed animal sitting on top of a bed \nA large black vase under a hanging light in a room.\nA cat walking on the top of an open door.\nA group of sheep being herded by a black dog.\nMouse on a couch looking at broccoli dubiously.\na puppy sleeping on the floor by a remote control\nThree large trucks are parked near houses and a lighthouse. \na woman in a skirt gets ready to hit a tennis ball \nA bright blue stove looks like an antique\nTwo large trey elephants standing next to a man wearing a blue uniform.\nA bunch of packages are sitting outside of a building. \na person wearing a a shirt and tie \nA bedroom with an old bedspread and a very cluttered wooden night stand.\nMany craft items lay on top of a bag\nThis quaint backyard has a shed and a bench\nA person holding a racquet on a tennis court.\na young person holding a baseball bat \nTwo students are playing games at a party\nA plate of chicken and vegetables sits next to a bowl of rice. \nA man walking next to another man on a tennis court.\nA man sitting on a bench next to the ocean.\na bathroom with a bath tub a toilet and a sink\nA red double decker bus driving down a street.\nThere is a boy playing a game of tennis.\nA pile of eggplant for sale at a market.\nA man standing in a room next to a metal and red pole.\nA humming bird standing on top of a green feeder.\nA blender is sitting next to a printer.\nA group of children  hanging around a umbrella.\na small bird on the ground near bushes\nThree giraffe's leaning over to get a sip of water.\nA man holding up his left hand while pointing to the sky.\nA woman standing in a set suit on a beach holding a surfboard.\nA tall white clock tower sitting next to a parking garage.\na kitchen that has a sink and a stove in it\nAn open laptop computer sitting on a wooden desk.\nA young person riding a body board on a wave.\nTwo hands holding and dialing a cellular phone.\nA young male jumping with his skate board.\nThere are cattle on the bank by the river. \nA group of people crossing a street next to a bend traffic light.\nA group of children playing a game of soccer.\nA black and white cat on its hind legs looking at a television.\nthree people riding skis on a snowy surface\nA bird with a fish in its hand on a beach.\nA woman bent down and playing tennis with a raquet in her hands.\nA red and black train traveling down train tracks.\nA green rail bridge spanning over the width of a river.\nPans filled with different types of food on a stove top.\nA bed that is un made with a laptop open\nSeveral birds with black and yellow feathers sitting on some branches.\nA cat under a blanket looking at something.\nA black cat sits in a bathroom sink.\nA lidless toilet is shown caked in dirt or other filth.\nAn adorable white dog laying on top of a bed in a shirt holding a teddy bear.\nThe surfer is surfing on top of the waves. \na man sits with his dog as they watch television \nAn empty red Nokia phone casing hanging from a Christmas tree.\nA bowl of steamed broccoli sitting on a table.\nA stop sign in the grass near a tree.\nThe image of a man holding a camera is in this motorcycle side mirror. \nA white and brown dog sitting on top of a bed.\na public transit bus on a city street\nA group of people staring at a woman holding a bat.\nKites being flown by a crowd of young children on a cloudy day.\nA traffic light sitting next to a street sign.\nA man cutting up his meal before consumption.\nA Stop sign saying to stop all war at intersection.\nA dog swimming in a poop with a Frisbee.\nPeople kite boarding in the ocean next to a lush green cliff.\nA small kitten sitting on a chair next to a small dog.\na traffic light on a side walk near a street \nTrain traveling on tracks through city near glass buildings.\nTwo bicycles that are parked on either side of a fire hydrant.\nA man has a red water bottle up to his mouth.\nThis is a picture of a very busy street in New York City.\na kitchen with a sink a stove and a microwave\nA person sitting at table with a cup looking at a cell phone.\nA helicopter flying through a light blue sky.\nA black bear balances on a wooden fence\nA tug boat sitting in the middle of the harbor.\nA woman walking in the rain while holding an umbrella\nvery many planes being offloaded at the airport\nAn airplane is parked on a runway and someone is standing nearby.\nA few people at a store near a clock tower.\nA man races a motorcycle on a track.\nA marble shelf containing three vases with different designs.\nA grown and white dog on floor next to person's shoes.\nA tray full of breakfast sitting on a bed.\nA Group of cow's that are smelling each other.\nA woman wearing snow boots and a bikini flies a green kite. \nA brown dog trying to hump a black dog.\nA large, wooden bed with intricate details on the headboard.\nA young lady riding skis down a snow covered slope.\nA man in a fedora sitting on a park bench.\nA boy sitting at a table cutting out paper.\na person riding a skate board down a hill\nA wood bench set by a trellis with greenery on it.\nMultiple colors of origami birds in a heat shaped vase.  \na very small bathroom with a dirty toilet and scrub brush near by\nA man riding water skis while being towed by a wire.\nA zebra walking inside of its pen, with its back to the camera.\nA gray and white cat happily hugging a shoe.\nA black cat is inside a white toilet.\nA toilet with a black seat cover next to a sink.\nA man who is wearing a tie that is too small for him.\nA young man with a goatee talking on a cell phone\nA woman holding a snow board in one hand and her other arm in the air. \nTwo people in the snow one on a snowboard the other on ski's.\nA person on white surfboard riding a wave next to a cliff.\na woman and her baby and a stuffed bear\nSeveral young people sitting in a living room with the lights off.\nA refrigerator freezer sitting next to a kitchen counter.\nMan wearing a black outfit and white ski boots standing on skis.\nThe shelve has a lot of donuts on it \nAn elephant and birds in a grassy area by trees.\nA big commercial plane flying high in the sky.\nA plastic figure standing on a miniature skateboard.\nA woman and child at table with a cake.\nA man wearing skis and holding a handle leans toward a sandy plain.\nApples on a tree that need longer to ripen.\na man is riding a skateboard in the street\nA herd of oxen resting on a beach by the water.\nA group of young men playing a game of soccer.\nA open metal oven with a rack for cooking.\nA commercial airplane either landing or preparing for take off.\nA tall building with a clock on the front and side of it.\nA young boy is eating a meal in his pajamas.\nA cat standing on top of a piece of luggage in a room.\na child in a field with a kite \nBlack and white photograph of cars parked along a curb in the city\nperson on skate board jumping in air one hand on the bottom of skate board\nAn open menu and bottles of wine sit on a restaurant table.\nTwo giraffes that are standing in the grass.\nPerson pulling a sled through a trail of snow. \nA living room with a brown leather couch and wood flooring\nthis living room has black leather couches and a wood coffee table\nA man standing on top of a tennis court holding a racquet.\nA plate of pasta with sauce and bread on a table.\nA giraffe has come to a fence line to greet visitors.\nA polar bear with snow on its fur sticking its tongue out.\nTwo animals are walking through the tall grass of the woods.\nA giraffe standing in a lush green field.\nA giraffe standing next to leaf filled trees.\nA man with a racquet that is standing on a tennis court.\nA cat with a tiny hat on top of its head.\na bird is perched high up in a tree\nA doll sitting at a table with a Happy New Year note\nA busted fire hydrand pouring out water onto the street.\nSmall child on a skateboard watches another skateboarder.\nA train engine is sitting at a train station.\nA group of people ski and snowboard together\na train moving along railway line very fast\nA woman holding a tennis racquet near a ball.\na little boy is holding up a cell phone\nSomeone holding a cell phone in their hand. \nPerson with arm wrapped around street sign standing on sidewalk.\nA birthday cake that is on a table.\nin a restaurant with some pieces of pizza\nthere is a man that is sitting at a table with lots of food\na small plane is flying in the sky\nA herd of cows crossing an empty road.\na desk with  container full pens, remotes and other nic nacks\na close up of a tie and a green shirt\nTwo baseball players and an umpire on a baseball field. \nA white bowl on top of a plate filled with food.\nA man herding sheep into an open pen.\nA keyboard next to a mouse and some batteries wrapped up.\nThe silhouette of a man checks his cellphone. \nA stop sign that has been tagged with graffiti.\ntwo men looking angry at each other. \nCouple on sailboat with dog on open waters.\nA large black train on a train track. \nTwo images of open suitecases full of toiletries. \nA man holding skis and poles walking up stairs.\nA dog with a lazy look lying on a bed.\nA dog is lying down in a living room\nSubway train pulling into the station for boarding.\nAn elephant standing next to a stone in a cage.\nA long red train traveling through snow covered country side.\nA man talking on his cell phone with his other hand in his ear.\nTwo pieces of fruit sitting on a plate beside a stack of books.\nA man pushing a wheelchair on the street.\nA copse of men sitting next to each other at a table.\nA man spraying the side of a van with spray paint.\na group of people crossing the street while holding umbrellas in the rain.\nSnow covered benches near a body of water. \na girl holding a frisbee in a pretty dress in the grass\nA street sign reads \"Rue Paul St\" in the snow.\nA girl holding a stuffed teddy bear that has large teeth to her face.\nA person that is looking at a cake.\nA bridge in a city on an overcast day.\na black and white cat wearing a little purple hat\nsome baseball players are playing baseball on a field\nA variety of pastries atop a white plate.\nA bunch of carrots that are next to lemons.\nA woman that is standing up with a racquet.\nCake iced sitting on top of cake stand with bowl next to it\nTwo goat kids and one young lamb are in a field.  \nA small and cluttered desk with two computer towers\nA baby boy standing inside of a wooden crib.\nA zebra reaching its head into a car to lick a passengers legs.\nA wildebeest walking with a giraffe in the distance.\nA child in a cart behind small pony on race track.\nTwo cellphones that are laying on a blanket.\nA group of three giraffe standing next to each other behind a rock.\nA close up of a Winnie the Pooh teddy bear.\nHerd of zebras walking single file in grass land.\nA bathroom scene with focus on the toilet.\nVarious dishes of food sit in bowls on a table.\nA herd of animals walking across  a grass covered field.\nThree people walking on a hike in the outdoors.\nA red hair woman holding an open box of pizza.\nsome elephants and one is by some water\nthis is a cat on a chair with a hat\nA desk with a lamp and a computer sitting on it.\nA street sign is at an intersection by tracks.\nView of a narrow bathroom with white vanity and commode with brown tile\nA park filled with lots of lit up sculptures.\nA white bus parked in front of a  building.\na lady that is i a blue towel laying down\na person standing next to a table with many stuffed animals\nThere is a bear crawling out of a leaf cover\nA cop riding on the back of a brown horse down a street.\nClose up of desk tools on a black background.\nA city street with buildings and cars on a rainy day.\nA blue bus is crossing the intersection with various vehicles behind it.\nA train on track passing through a small station.\nA white toilet sitting next to a brown chair.\ntwo small dogs are laying on a human bed\na dog is jumping up to catch a frisbee\nAn adult stands near the counter in a kitchen. \nA woman prepares a pizza while a man watches.\nA man sitting outside under an umbrella using a laptop.\nThe teddy bear looks like it is going to drink the beer.\nA blue double decker bus that says Garage on it.\nA man throwing a Frisbee disc in a park.\nPeople standing over a barrel with several fruit in it. \nA broccoli and almond salad on a white plate. \nA zombee walking down a street covered in blood.\nA messy bed in a bedroom between two tables with lamps.\nSeveral people ride on elephants in a mountainous area.\nA young man and woman holding their heads close to each other.\nA street crossing with a street sign for Mulholland and a no-U-turn sign.\nA couple of giraffe standing in a building.\nA man wearing glasses and a half looking at his cell phone.\nA bathroom with a brown shower curtain and white toilet \nThe wing of a plane located in the sky above a sea and city.\nA toilet in a bathroom next to a plaque on a wall.\nA young girl is skiing as others are far down the slope.\nA group of elephants stand under a waterfall.\nA man drinking something out of a glass.\nMother and son on the beach with surf board in the foreground.\nA cat sits on a desk next to a keyboard. \nA group of boats sitting next to each other on a beach.\na wooden cutting board a knife some carrots and onions\nA white bathroom sink sitting under a bathroom mirror.\nA train riding through tracks in a large train station.\nA parakeet sits atop a person's hand next to a keyboard.\nAn Equestrian jumping their horse over a white jump. \nA young woman in a bikini in the ocean with her surfboard.\nA red bathroom mirror sitting next to a white toilet.\nA couple of planes that are out in the airport.\nA dog holding a ball in its mouth, near the water.\nThe contents of a bag sitting on top of a bed next to a bag.\nA passenger train travels down the tracks at a stop.\nA man is holding a tennis racket while on the court.\nA shop filled with fresh fruit and produce.\na sandwich that has something green and red in it\na street a street light a traffic light and some trees\nA large elephant standing in front of the capital building in Washington DC.\nTwo planes next to one another on damp airport road\nA cup filled with umbrellas and canes next to a white wall.\nFour jets fly overhead trailing smoke with a clear blue sky.\nA man and a woman watch as a young man plays video games.\nA gentleman walking in the rain along a river.\nA colorful toilet seat open in a toilet stall\nSeveral benches stand by the side of a river.\nShaggy cattle with horns graze on grass in a meadow.\na small boat in the ocean heading toward a navy ship\na man on a skateboard doing an ollie\na kitchen with an electonic device above the sink \nA city street with antique cars and pedestrians.\nYoung boy on blue skateboard in parking lot.\nA man holding a sandwich in his hand.\nA polar bear laying on a large stack of ice.\nA sandwich on a plate near a bowl of chips and glass of water\nThe large clock was prominently displaying the time.\nA group of people standing outside of a ski lodge.\nA group of men sitting in front of laptop computers.\nThere is plenty of cheese and other types of vegetables on a plate.\nAn animal biting a yellow frisbee next to another man.\nMany potted plants sit on the side of a road with a no parking sign.\nA white boat floating on a  body of water.\nA picturesque scene complete with a picnic table, mountain, and body of water\nThe cell phone is gold and hooked up to a wall. \nA brown dog flying through the air with a red frisbee in his mouth.\nA group of boys playing a little league baseball game.\nA woman is standing on a snowboard indoors.\nPeople flying kites in the sand on a windy beach.\nMany buses driving down the street in a city with buildings. \nA man riding skis down a snow covered slope.\nSheep in the process of getting sheered of their wool\nA bunch of flowers inside of a vase.\na man on a surf board rides the waves \nA man and his reflection from a side mirror.\nA herd of brown cows standing in a field behind a wire fence.\nA group of kids in helmets on skateboards.\nA man in tie, black coat and a hat.\na man outside after he threw a frizbee\nA  frisbee is flying over the dog's head.\nA person dressed as a giraffe carrying a bullhorn.\nWe are looking at a large truck parked in a garage.\na couple of bears walking across a field.\nA skateboarder is in mid air while descending a concrete ramp.\nA donkey leads a herd of sheep down a busy street.\nAn old image of the Railway Station in toowoomba. \nA calico cat drinking water from a running tap in a bathroom.\nA group of people at the beach flying kites\na sheep in a field with a dog and people watching \nThis looks like a bunch of burned food on top of burned bread.\nTHERE IS A DESIGN OF AN ELEPHANT ON THE SHELF\nA square plate of carrots, spinach and more.\nA person holding a sandwich filled with lettuce.\n many tables arranged outside at the shop\na cat on a window sill with a bag \nA train car riding the railroad in a city.\nA city street with a firetruck driving down it\nA cat peeking over a table while in the chair \nAn elephant walking in a dirt area next to a fence.\nA man performing a trick on a ledge on a skateboard.\nA mirror reflecting a clock next to a shelf in a kitchen.\nTwo large giraffes inside a fenced area interact with one another\nThe girl is enjoying brushing her teeth in the mirror.\nA group of people sitting next to each other in a  room.\nA bicycle chained to a pole on a snowy day\nTwo cakes sitting on a class table near a candle.\nA young boy kneeling down on a snowboard on a snow covered field.\nShaggy dog gets dinner served on a plate.\nA large giraffe standing behind a wire fence.\nA person riding a buggy and horse down the street.\nA man standing on a tennis court holding a racquet.\nA close up of a red fire hydrant next to a light pole.\nSkateboarder wearing all black going up a wooden ramp on his board. \nTwo ladies enjoying dessert at a roadside stand.\nA see through drink cooler in a store by the kitchen \nA baby and a teddy bear in a playpen.\nThere are woman playing a video game together.\nA plane just outside of a terminal with other planes in the background.\nA child holding a cellphone above field of grass.\nA baseball game is being played in a city park.\nFour vintage refrigerators blue and red in color\nA street light that shows, horse crossing on it.\nA man wearing a white lab coat holding a bone saw.\nThe authentic Midwestern kitchen has elements similar to a  pottery studio.\nA girl in bikini standing with surfboard on the beach.\nA brown dog with it's head hanging out of a window.\nA wicker basket carrying a variety of fruit.\na woman and a child holding umbrellas and smiling\nA man holding a cart seat while standing next to a little girl.\nGiraffe with large trees grazing in gray sky\nA man is riding a large bike through the park.\nA man that has his near a toilet seat.\nA man sitting at a table working on his laptop. \nSet of toy animals sitting in front of a red wooden wagon.\nA large doughnut sign above a shop for doughnuts.\nthis is a pizza that is sliced up in pieces\nA boy standing on skis in the snow.\nTwo younger people playing a game of frisbee.\nA young man and woman playing a game of soccer.\nA dish of macaroni and cheese, french fries and broccoli are sitting on the table.\nA start of an outdoor winter sport taking place. \na number of giraffes in a field near trees \nA variety of fruit is displayed while a person sits at a lunch counter.\nA woman riding a horse in a field.\nA clock sits above green bushes under a blue sky.\nA kitten walking on the base of a window.\nA young girl in a red dress is smiling. \nAn older couple getting married in front of a crowd.\nA giraffe points its head towards the sky\nA man in a hat leaning against a pole\nA group of teddy bears standing next to each other on a shelf.\na pack of dogs walking down a snow covered yard.\nTwo men on a beach playing paddle ball.\na close up of graffiti written on a train\nA man taking his own temperature with a glass thermometer.\nA man sitting at a table holding an orange plate.\nA giraffe  standing on top of a dirt and grass field.\nLarge black dog sitting in front of a big mirror. \nA large room with many stacks of suitcases.\nA person in a kitchen looking at the oven.\nthis is an image of a yorkie in a small bag.\nA giant cruise ship next to another giant cruise ship next to a long pier.\nA white boat on water with seagulls and umbrella in the foreground.\nA giraffe standing in its zoo enclosure on a sunny day\nthe boat is tied up on the lake \nA little boy that is sitting in the grass with a suitcase.\nThe woman throws a tennis ball into the air during a serve.\nThe bird is perched alone on the bannister. \nThe freight train is speeding through the crossing.\nA very long blue and white bus pulling out of a parking lot.\nA whole bunch of traffic stop signs huddled together.\nA group of people ride in a canal past buildings.\nA group of kids in street next to a building.\nA hot dog cart across from the Radio City Music Hall.\nA little boy sitting on a bed drinking from a cup.\nA white street sign hanging from the side of a pole.\nOld cars and horse drawn carriage on a tropical city street.\nA person standing on top of a beach flying a kite.\nA couple of white sculptures sitting under a red umbrella.\nA plain, white bathroom with a sink and a tub.\nFarmers market with people looking at fruits and vegetables\nA red fire hydrant on the side of a street.\nA black and red bus turning on street next to a building.\nMotorcycle on platform to be worked on in garage\nA living room filled with furniture and a large rug.\nA toilet sitting outside a building in an alley.\nA bunch of oranges are sitting in a clear fruit bowl.\nA young man is doing something in his small room.\na person riding skis on a snowy surface\nA man does a grind on the curb with his rollerblades\nA man riding a surfboard next to a wave in the ocean.\nA little girl puts her hand in a pasta dish. \nA large elephant standing on top of a grass covered field.\nA person is riding a small motorcycle in a parking lot.\nA person sitting in front of a desktop computer.\nA great shot of a very nice and large city somewhere.\nA group of people cross country skiing in forest.\nMan flying a kite while on a snowboard.\nA man riding a motor cycle down a race track.\nA person that is on his cell phone in a car.\nA crowd of people standing in the middle of a street.\nA train going down the tracks that has just gone under a bridge.\nA black and white dog chasing sheep in a field.\nA woman throws a tennis ball to hit it on a court.\nA living room with many chairs and couches.\na long subway with people in it is lit up\nA dog wearing a yellow bandanna sitting on a log during a hike\nA skier flies and crosses his skis during a jump\nA black dog standing above a mirror on the ground.\nA long blue and white train traveling down a street.\nA wooden alter displaying a potted plant and some candles.\nA persona putting tooth past on their toothbrush over a sink.\nA herd of sheep walking on a cluster of dry grass.\nA desk topped with a desktop computer monitor behind a keyboard.\nA young man is holding a baby on his lap.\nA herd of sheep standing on top of snow covered field.\nA cluster of black and white sheep hang out by a fence.\nA simple wooden bench is in the woods.\nThey are jumping on those skis in the snow.\nThe train is going past the field with the grass.\nA female tennis player smiles as she hits the ball.\nBanana and plastic drink container sitting on a table.\nA calico cat standing on top of an upholstered chair.\nA woung woman in white and purple holding a pink stuffed animal.\nPeople are watching a movie on their laptop.\nThese people are about to eat a large bowl of food.\nA man flying on top of a surfboard on top of a wave.\nThree giraffes crossing dirt road into dry field\nA person singing into a microphone while holding a cell phone.\nA small bird on a wooden board on the water.\nLots of people stand in a busy kitchen.\nA kitchen with a counter, window, stove and cutlery. \nComfortable, modern living room overlooking a wooded area\nHeavily loaded green truck with passengers on back in roadway in urban area.\nPlates on a table filled with breakfast foods and cups of coffee and orange juice.\nA train pulls up to an empty platform.\nA giraffe eating grass from a stick near a bridge.\nA large zebra and baby zebra standing inside an enclosure eating.\nA large elephant in deep pool of water.\nA couple of men standing on a boat next to a small dog.\nA woman sitting on a laptop computer next to a cat.\nA grandmother standing next to a child in a kitchen.\nA group of men on a field playing baseball.\nA girl riding a brown horse and green grass with trees\nA yellow bus in parking lot with power lines above.\nTwo people on a ski slope with snow boards on their feet.\nA couple of giant umbrellas suspended from a ceiling.\nA brown horse with white fetlocks grazing in a fenced in yard.\nCrowd of people in front of Amtrak train with bench\nChubby little kid is making a face near a lake\nA herd of sheep that are grazing in a field.\nA fire hydrant next to an old brick building.\nA pair of zebras standing in pen, in the grass.\nA women who is holding the door handle to a truck.\nA \"Virgin Records\" train next to a blue, yellow and red train at a subway station. \nA baseball player holding a bat next to a base.\nA remote controller packed in a case of some sort.\nTwo parking meters with a woolen glove on one of them\nPeople sitting and standing in the grass near an umbrella.\nA black and white photo of a martin Luther King next to a Lincoln statue.\nA man walking on top of a baseball field wearing a catchers mitt.\nA computer keyboard sitting next to a  computer mouse.\nMan in jacket doing a trick on a snowboard.\nA man holding a tennis racquet and a tennis ball.\nTwo cats sleeping next to an older person in a bed.\nA man riding a skateboard down an ally.\nA man and a woman greet a giraffe over a fence.\nA horse pulls a carriage at the beginning of a parade\nA giraffe looks on as two black birds peck for food on the ground. \nA baseball player throwing a ball in a game.\nA nattily dressed man and woman stand next to a horse. \nA car passes by to find a man outside near a TV.\nassorted cars and buses sitting in a parking lot\nA white truck with a shovel attached to the front of it.\nA black cat sitting on top of a wooden fence.\nA clock tower gives the time in a city square.\n A man is placing items on a pizza in a pan \nA cat peeking it's head out of the blankets.\nA black and white sitting room with checkered floor.\nA delicious banana and peanut butter sandwich is on display.\nthere is a snowboarder riding down a hill or mountain\nThe reflection of a bus in a vehicle mirror\nA cat is out stretched on a large bed.\na boy that is on a skateboard doing a trick\nA man in a baseball uniform kneeling down while holding a baseball bat.\nA lone zebra standing in the green grass.\nA woman laying in a hospital bed with a broken arm.\nColorful vases with flowers on a table with overhanging paper lantern\nThe wooden kitchen has a small child's plastic table in it.\nA woman standing outside of a metallic bus parked.\nThere are two men playing frisbee on a field  \nOne bicycle is parked next to many motorcycles.\nAn arrangement of flowers in a clear glass canning jar haging on a wall.\na brown dog with a collar sniffing a red fire hydrant\nA person is wading ashore near three fishing boats.\nThe rocks in the background make this a dangerous place to surf.\nA group of kids playing team baseball, the catcher and umpire are behind the kid that is at bat.\nA smiling man holding a fork and knife\nA man leaping over three people while catching a white frisbee.\na small boat in a body of water \nA lot of people that are looking at something.\nA kitchen filled with metallic appliances and a stove top.\nA wooden table topped with a microwave and a toaster.\nA green motorcycle parked on top of a green lawn.\nA Macbook sitting near a clock and a lamp on a desk.\nThe living room has a long grey couch and a rug under the coffee table. \nA restroom with three stalls with three toilets.\na person jumping over a ramp with a skateboard \nMany different electronics, mostly mobile phones, are scattered near silverware. \nA Zebra standing in between a group of large rocks \nMany pizza boxes are left mess and without pizza\na man wearing leathers and his black motorcycle\nA pair of shoes sits on a bench next to a door. \nA peddler selling shirts in the rain outside a HSBC building.\nThere is a television set which has been dumped on a beach with seaweed. \na kid running with a kite in his hand outside\nA kitchen with an oven door open and stuff piled on it\nA large clock tower with two clocks mounted to it's sides.\nDifferent street signs mounted to a pole with a stop light\na bathroom with a tub and a shower curtain \nA woman wearing glasses looking at slices of pizza\nTwo plates that have different foods inside of them.\nA white bowl filled with vegetables sitting on top of a table..\nA white kitchen with stove, sink, and refrigerator.\nThere is a giraffe facing a brick wall.\nan old photo of a little girl sitting on her dads lap \nA person sitting at a table with two plates of food, silverware and a cup on it.\nA man wearing a parking meter repair jacket pushing a cart down a sidewalk.\nA row of benches on a boat casting a shadow.\nTwo adult elephants and a child elephant walking in the woods. \nA large open multi- colored umbrella and tree branches.\nA man handing another man something inside of a room.\nA kite with a skull on it flying in the air on a beach.\nA beautiful woman sitting in front of a piano in a living room.\nA grocery store display filled with lots of apples.\nA formation of airplanes flying through a cloudy blue sky.\nA guy on an ATV has a black dog riding in the back.\nA group of spectators watching a woman drag her luggage.\nThe big truck is parked in the parking lot by itself. \nPeople are playing tennis behind a long fence.\nA man skateboards on the rim of a skate pipe in front of a crowd. \nA cat that is in a piece of luggage.\nA couple of men standing next to train tracks.\nThe cruel dog owners stapled the frisbee to the dog's head in a cruel effort to compose a funny picture.\nA bathroom with a sink under a huge vanity mirror.\nA table with a coffee and a salad on it.\na neatly put away living room with plush furniture and contemporary art\nA dog sniffs a baseball bat on a baseball field.\nA large clock is suspended from the ceiling of a narrow passage with metal bars on the side.\na slice of lasagna on a plate with a fork\nThe cat is standing up next to the toilet.\nElephants stand together near a log in an enclosure. \nA road in front of a shaded building on which it is written Feed Barn\nA person on a skateboard on a skate ramp.\nA blue freezer refrigerator sitting in a kitchen next to a counter.\nA man's feet resting on a skateboard \nSeveral brown bears standing in the snow next to a green cage.\nA man eating pizza without using his hands.\nA man and a woman on a blue motorbike are picking up a piece of luggage from a man.\nA young boy and girl sitting and eating at a childs table with a dog nearby.\nA young woman cutting into a cake and serving it.\nThese are archways with mini lights and a clock\nTwo boys riding skateboards in the street, behind tree branches.\nA small containers filled with fried chocolate food.\nA little girl sitting at a table cutting a piece of paper with scissors.\na man standing on a pair of skis on the grass\nPerson in a parka taking pictures with a mobile phone camera.\nsome people a red bench  a slide and snow\nA motorcycle parked next to a group of electrical boxes.\nThe motorbike is driving on a dusty road.\nMan wearing a red shirt holding a racket and badge \nthree old cell phones on chains on s textured surface\nA man on skis goes down the snow covered hill.\nThere is a group of small birds standing on the chairs.\nA living room filled with furniture and a fire place beneath a flat screen TV.\nThe people are moving across the snowy mountainside. \nAn empty park bench covered in graffiti with an old homeless man sleeping on it.\nPlanes are flying in a V formation in a blue sky.\nA man riding a wind sail in the ocean filled with waves.\nA man in a wetsuit is holding his surfboard on the pier. \nThree people are standing on skis on the top of a hill.\nan orange fire truck parked in a wharehouse\nA white and red bus driving down a street.\na couple of elephants are walking in a line\nThe baseball player is prominent in all the featured pictures.\nA television with a video game logo sits in front of two trays with controllers.\nSomeone is sticking their fork into a dessert.\na close up of a skate board on a tree branch\nA computer monitor sitting on top of a computer desk.\nA woman rushes with a handbag through an empty train station with a large clock.\nRestroom full of many urinals with smell eliminators.\na bicycle sits on its stand in the middle of a grassy, wooded area\na small boat in a large body of water \nA lady holding an umbrella is standing at the rail. \nA man and a woman hold a large tray of doughnuts.\nA man is surfing on a wave in the ocean.\na piece of meat is on the plate with broccoli.\nA cup sitting in a window sill filled with flowers.\nTwo orange and white kittens sleeping in a pot.\nsome kids standing around during a little league game \nPair of scantily clad adults resting on red benches across of city skyline.\nA person holds glasses above a pizza with other people.\nA pretty young lady standing on skis on a snow covered ski slope.\nBaseball players on a field and near empty stadium.\nTHIS IS A PHOTO OF SOMEONES LUGGAGE LEFT BEHIND\nA tray of hot dogs with different toppings on them.\nA snowy ladnscape with a car crashed into a pole\nA person holding a pink colorful umbrella on top of a dirt field.\na cake decorated with an airplane has lit candles in it\nA collection of artwork leaning against a wooden fence.\nThere are several boats docked in a harbor.\na black and white cat hugging a handbag\nA group of people that are standing around giraffes.\nA plastic dish with the food sectioned off.\nA person is on a snowboard on a ramp.\nA red. white, and blue fire hydrant on the side of the road. \nA boy looking at a birthday cake with a little girl watching him.\nA pizza with apples on a plate near a cup\nA person wearing skis bent over looking through a backpack.\nA young girl helping blow dry another child's hair.\nThe woman is in the kitchen preparing a meal.\nThe sightseeing boat streams along the river joined by a plane\ntwo people walking on a side walk in front of a building\nA couple riding on top of an elephant in a forest.\nPeople standing in a field and flying kites.\nSeveral men are all trying to catch a Frisbee.\nAn airplane flies low to the ground near a mountain range.\na female sitting on a bench with a sandwhich up to her face\nA library is ready for summer reading along the bookcases.\nA GREEN AND BROWN SUITCASE LYING UP ON A LEDGE\nA Yamaha motorcycle parked outside of a building.\nA glass table with a plate of bar cookies, a potted plant and a vase filled with chocolate eggs.\nA large bunch of unripened green plantains on display.\na sign for prospect and brady st on a street with a light post\nTwo large elephants standing next to a wire fence.\nThree women that are sitting on a bench.\nA group of large passenger jets parked in front of an airport.\nThe white train is at a platform at evening time.\nA room with white walls and bright lights.\nAn elephant walking on a dry flat land.\nA VERY NICE BATHROOM IN THE MIDDLE OF A REMODEL\nA few people are getting to know one another in affection.  \nThree birds are looking around while on the ground.\nA yellow, red, and silver train makes its way to the loading platform.\na yellow and black fire hydrant on the sidewalk\nA person on a motor bike next to a cow.\nThe man is holding a package of a brand new toothbrush. \nA blue sink is in a corner cut out.\na couple of people are having a conversation in a busy place\nWoman outside playing a game of frisbee with a dog\nA person brings a \"boogie board\" into a body of water.\nComing ashore through the surf on a board.\nA table topped with lots of candles and flowers.\nA couple of rhino standing next to a tree.\nA double oven mounted inside of a yellow wall.\nA kitchen with a sink, bottles, jars and a dishwasher.\nThe women are playing a video game together.\nA set of statues on top of a really large clock.\nA neon colored building lit up in the night time\nA few men posing for a photo at a dinner table.\na square wooden table in a home livingroom\nMan riding a horse in a foreign country.\nA scene of a park with a plane in the sky in the background.\nA large group of elephants on a grassy field.\nA cat perched on top of a dresser.\nA person on a skateboard does a trick.\nA Stop sign is at the corner of a grassy area.\nA white truck parked in front of a store with lots of windows.\nSeveral kites are flying on the beach in the blue sky.\nMan at street market with table full of bananas.\nA boy performing a kickflip on his skateboard on a city street.\nA living room with a fire place and furniture.\nThe meal consists of meat with brocolli on the side.\nMen on a baseball diamond playing baseball, a man just swung\nA close up of toothbrush bristles near a mirror\nA laptop sits on the table with its case.\nA silver bus on street next to buildings.\nA living room with wooden walls and furniture.\na bunch of potatoes and tomatoes grilled together\nA sandwich on toasted bread, with a salad and a bottle of water.\nA man with a suit and tie with a headset on. \nAn old man scratching his head at a baseball game\nA two story white building with lots of umbrellas over them.\nA bright yellow railroad car on the tracks.\nA couple of buses driving down a city street.\nCooks standing in a kitchen preparing food for a restaurant.\nA woman wearing a jacket and jeans skiing down a hill.\nThe jet is flying high in sky threw the sun\nA couple of men sitting at a table talking on cell phones.\nA boy standing up on a open refrigerator.\nA couple of trucks that are sitting on a road outside of some buildings.\nA woman and a man standing between two brown horses.\nA smart phone sitting on top of a bean bag.\nA basketball court with the head coach dressed in a suit and standing on the court, with a player near him and event staff close by.\nThis bathroom looks like a very compact one.\nA Fawcett's Malt truck sits parked on the side of the road.\nA laptop computer sits on a black surface next to a wireless mouse.\nA large white clock tower filled with light.\nmany clocks on a stair way with many people walking up and down them\nA man and child fly a kite on the beach.\nA woman is putting on make up in front of several mirrors.\nA girl flying a kite as two kids watch.\nA passenger jet in flight in a clear blue sky. \nA man in a gray suit and jacket in a white striped shirt.\nHalf a dozen donuts from Krispy Kreme of various different flavors.\na herd of elephants walking down a desert road \nTwo plates of broccoli and shrimp on a table.\nTwo clocks on top of a tower at night time.  \nA man riding skis across a snow covered ground.\nA man preparing food in a restaurant kitchen.\nA street sign sitting below a very tall building.\nA jockey sitting on the back of a horse\nA woman under an umbrella on a rainy day \nA bowl with different foods sitting on a napkin.\nTwo giraffes are in a background of tall trees.\nthere are several street signs on the same pole\nA computer sits on in front of a television set.\nA market area with various crates of vegetables.\nA wooden cutting board topped with a pizza on a table.\nThe giraffe eats from a reachable limb of the tree.\nA small canopy next to a dresser in a wood paneled room.\nA woman holding a tennis racquet on a tennis court.\nA skier stands posing while two others are skiing towards him.\nKite boarder at the beach during low tide.\nA guy eating a sandwich in a break room.\nA brown horse standing in a lush green field with a bird on it's back.\na kitchen with cabinets and counter tops sitting on a tiled floor\nSmall plate of food with mixed vegetables and meat. \nA man and woman play tennis on public courts.\nA pretty young lady running towards a tennis ball while holding a tennis racquet.\nA coffee table is standing in a living room.\ntwo girls walk off the windy beach while a kite flies overhead\nA girl holding a foot long hot dog in a restaurant\nTwo young child skiers are headed down a small slope.\nA close up of a Zebra eating some grass. \na close up of a toilet in a bath room\nA woman is placing Frisbees into a Frisbee basket.\nA living room with a mat on a floor and a book shelf filled with books.\nTwo horses drinking water from a trough in front of a building.\nTwo pieces of pizza are served on a plate.\nA bathroom with an enclosed shower next to a sink and a toilet.\nA man in plaid shirt holding up a giant remote.\nA man in a red cap, green shirt and white shorts holds a tennis racket under his arm.\na suit case sits on a top next to some drink \nA silver miniature train with trees in background.\nA flock of birds sitting on top of a large rock.\nA batter at a baseball game who is waiting for the pitch.\nA girl is trying to hit a baseball with a bat. \nsome people bicycles sunglasses cars and some buildings\nTwo men playing with a disc in a field.\na view inside a bedroom seeing a bed , table stand and an open window\nA baseball player with a bat in his hands on a field. \nA kitten sitting inside of a coffee cup.\na close up of a cat on a desk near stuffed animals \nA sidewalk next to a brown brick building.\nStuffed bears are gathered together in a display for christmas.\nAn airplane settled on a runway near water.\nA man riding skis down a snow covered ski slope.\nA dog chewing on a object held in a hand.\nThe man is in his refrigerator looking for something to eat or drink\nA man is surfing a large wave towards the shore.\nA group of people riding skis across a snow covered slope.\na living room with a t.v. and  a bunch of chairs in it.\nYoung skateboarder showing off learned skills next to building.\nThe large bird has a red face and black feathers.\nA couple of men trying to lasso a cow.\nA white urinal mounted to the side of a wall.\nA group of animals standing on top of a grass covered field.\nA virgin plane is sitting on the runway\na trey with some cookies on top of it \nA white and brown bench sitting on a sidewalk.\nA young child eating cake with pink and white frosting on a high chair.\nA middle aged man skateboards on the bottom of a skateboarding structure.\nsome people are riding surfboards on a wave\nFour giraffes huddling around a tree inside a fenced area.\nA bus and truck driving down a busy city street.\nA crow perched on an empty park bench.\nA skier stands next to a warning sign.\nA man helps a woman sit on a bike.\nTwo friends are playing the Nintendo Wii in the living room\nA man is standing next to the shell of a boat.\nA blue truck drives down a narrow street.\nA train is coming down the track near some trees.\nA woman pouring wine into glasses on a wooden table.\nA young person who is going to hit a ball with a bat.\nA small parade of folks in traditional dress that are on parade.\nA group of people sitting around a large wooden desk.\nA woman walking a small white dog down a street.\nMilitary personal serving themselves food at an event.\nA tree filled with lots of unripe bananas.\nA lot of colorful vases sitting on top of a white table.\nA man taking pics in a bathroom with a cellphone\nA man holding a box of donuts for eating\nA man standing on a baseball field holding a catchers mitt.\nA couple of men holding Nintendo Wii game controllers.\nA blue room connected to a room with a table in it. \nA sandwich sitting with other food on a plate.\nA baseball player in the batter's box during a game.\nA beautiful woman standing next to two men with a beautiful blonde woman behind them.\nA pizza with several toppings sliced and ready to eat.\nA blue, yellow and red train travels across the tracks near a depot\nA street sign that is on the side of the road.\nA woman sitting on a couch using a laptop computer.\nA statue is sitting on a bench and a woman sits on a cement block.\nA clock has four faces on each side of an information booth.\nSix white pedestals sinks sitting by the wall in a bathroom.\nAn airplane flying through the air on a clear day.\nTwo storm troopers sitting at a wooden table in front of a pizza.\nComputer monitor and accesories sitting on a desk.\na tiled bathroom with a tub inside of it \nA tower of a gray and white building has a weather vane and two clocks.\nStreet sign painted on a road that looks like a bicycle. \nA sidewalk beside a river with a clock tower beside it.\nA woman standing over a pan filled with food in a kitchen.\nAn elephant walks down a dirt road with brush on either side.\nA man standing with a yellow motorcycle in park\nTwo women are playing a game of tennis on a green court.\nA girl standing up cautiously on her surfboard.\nA bathroom with purple walls, and a white sink, toilet, and cabinet.\nA small green car has a plaque with writing in front of it. \na couple of people on a boat on a river\nA cat sits on a window sill behind the blinds.\nA small black dog sitting in front of a TV.\nA living room with a wooden floor and lots of furniture.\nA surfer hangs ten while other surfers and swimmer look on.\nA tall clock tower with a clock on each of it's sides.\nA white boom box with an mp3 player on top of it.\nA yellow and silver fire hydrant on the side of a road.\nA pile of stuffed animals sits on a bed.\nA man in a field flying an airplane shaped kite.\nTwo people paddling a boat across a body of water.\nA dark bird is sitting on a rock eating seed in the sun.\nA bruised banana sitting next to a cup of coffee.\nA man wearing sunglasses while holding a plate of pizza.\nA city bus is parked on the curb waiting for people\nA television and some books in a room.\na woman standing near glass looking at the preparation of fresh donuts\nA white compact car parked on a sandy dirt road.\na man hitting a tennis ball with a tennis racquet.\nA plane that is flying in the sky.\nA donut shop is full of different flavors of donuts.\nA grasshopper in a cage eating a slice of carrot.\nAn African type landscape with giraffes, wildebeests and antelope.\nA white bus has the words, crosstown, on the front while a man walks near the side of the bus which is front of a brick building.\nA woman bent over talking on a cell phone.\nA cel phone laying open on a table with reflections from the phone shinning on the table.\nThis is the side of an intersection with a red sign\nA child stands away from a woman and and another child and they all carry umbrellas on a sidewalk.\nA couple of giraffe standing by a tree in the grass.\nA very tall building with people walking around below it.\nA bed in a bedroom with a piece of luggage against a wall.\nThe man is sitting in front of a laptop with his hands over it. \nA woman standing over a table in front of a sandwich.\nCat sitting on the ground in between an open refrigerator. \nA little kid sitting on the counter eating food.\nPolar bear stand on edge of a slide\nA passenger train passes a freight train traveling in opposite directions\nTwo mean in uniform are riding horses side by side on a sandy beach.\nA man adjusting his tie while having a blurry hand.\nA table of food that includes pizza and a cake.\nA single skater boarder travels along a deserted walkway.\na microwave on a kitchen counter above a dishwasher\nThree white bowls of food that include soup and vegetables.\nPeople are walking and riding motorcycles on the street\nA group of men enthusiastically caught in mid air at the same time.\nA woman stands on some grass, holding some frisbees.\nA man in a grey wet suit on a surfboard.\nA bathroom with a toilet, towel rack and a tub in it. \nA pink and red couch in a room with a pink rug.\nA brick building with a clock tower at the corner of a street.\nA group of people flying over the top of a snow covered ski slope.\nA very large elephant reaching its trunk out to a crowd.\nA brown teddy bear wearing a Hawaiian shirt next to another teddy bear.\nA person wearing a backpack stands in front of a bus driving by on a city street.\nA crowd of people boarding a trolly on a city street.\nA large cut pizza on a tray on a table.\nA group of giraffe eating food from a tree.\nA yellow and red van that reads \" Foot Stinks \" on it's right passenger door.\nA man in ski gear skiing on snow.\nTwo zebras forage on the ground for food in a wildlife exhibit.\nA full view of a teddy bear sitting on the small chair. \nA sheep standing near some black sheep on a field.\na cat resting on the ground next to some beer bottles and a table\na number of people watching horses on a track \nThe walls in the bedroom will have new wallpaper soon.\nSnowboarder in blue coat performing aerial trick in alpine area.\nA cat wearing a Santa suit including a Santa hat.\nA sharp bladed knife left out on the ground.\nA group of giraffe standing next to each other.\nA Laurie with the words \"Try overtaking our trains\" is parked on a street.\na man reaching for a blue frisbee on a fence \nAn airport runway filled with airplanes under a blue sky.\nFour forks and a spoon poised over an intricately decorated cake in a box\nA mother duck with her ducklings in a pond. \na man and his friends are standing outside next to a truck\nA horse is running near a body of water. \nA train crosses an intersection while cars wait.\nA man holds up a Polish sausage on a bun. \nthere is a male skier that is going down hill in bad weather\nA young woman licks her lips while eating breakfast.\nA cat sitting in front of a flat screen TV.\nA cat in a birthday hat is lying on a couch.\nTable with a platter of pizza and a plate with a slice.\nA motorcycle parked on the pavement near a building.\nA man sitting in a chair while working on her laptop. \nA woman in white shirt holding bananas next to door.\na table set for three with food and wine\na person catching a Frisbee in an odd position\nMan throwing frisbee in elaborate fashion in field\nSandwich and loaded french fries on a diner bar.\nA train traveling down train tracks next to a lush green hillside.\nA microwave oven sitting on top of  a counter.\nBoats that are on a grassy piece of land. \nA man with a drink and novelty tie sits on the grass.\nA white plate topped with a slice of apple and a fork.\nA pitcher winds up to throw a ball.\nTwo buses are parked against a curb in front of a building.\nA stop sign has been placed upside-down in the grass beside a building. \nA group of people standing around a pile of luggage.\nA man standing on a purple bed playing an electric guitar\nA small brown dog wearing a leash next to a bike.\nA blue bike parked next to a tree in a planter.\na female in a black top and a child in a green shirt\nSmall pieces of cake have been arranged on a plate\nA kitchen filled with dishes and appliances with lots of cupboards..\nA pair of fancy chickens among the daffodils.\na birthday cake is being cut by a knife \nFour photographs of the portions of a keyboard and a mouse.\nA man holding a cheeseburger made out of donuts.\nSome cows in the grass by some water.\nCat lying in bathroom sink with assorted grooming supplies on edge.\nA person wearing blue shoes riding a skateboard.\nA birthday cake with candles on it. \nHot dogs, buns and croissants on a BBQ grill \nA batter swinging a baseball bat with the catcher behind him.\nA single giraffee standing in a dried field.\nA baseball player holding a baseball bat on a field.\nA little baby is getting a haircut in a pink chair.\nA blue and white plate holds cut pieces of pizza on it.\nA man walking down a street smoking a cigarette.\nA person on a surfboard is surfing on a crashing wave.\nA man is on top of an elephant in a river.\nSkateboarder on top of small structure with mosaic tiles.\nA large open room with a long white staircase.\nA woman in red sweater with dog and sheep in grassy field.\nThe unnatural looking stance of a professional baseball pitcher\nA car that is trying to drive through a flood.\nA man wearing a black suit and pink bow tie.\nA man is skiing in mid jump onto a ramp.\nTop of a grandfather clock with a mouse perched on top.\nDebris on a corner outside of a building near a street sign.\nA person in a room with knives and scissors hanging on the wall.\nthere is a woman sitting on a blanket having a picnic \nA blue table cloth covered table topped with cakes and desserts.\nA dirty dog sits on the front patio of a home. \nA big city full of people and many animals too.\na man standing on a skate board on the top of a ramp\nA building with a red hand rail sitting next to a street.\nA person on a motor bike on the water.\nsome people playing with a frisbee in the park\na man leaning over a lot as another man catches the frisbee \nDoorway view to a bathroom with a sink, cabinets and a toilet.\na person that is riding a bike next to some seats\nA group of people are gathered to listen to the music outside.\nA photo of beer is cropped next to a photo of food. \nA jet airliner flying over a building with sky in background.\nA sandwich and side-dish with fork sitting on table with containers of sauces for dressing.\nA white plate topped with oranges, cake, chocolate and nuts.\nA plate that has different types of food on it.\nAn older man standing over a herd of sheep.\na sign that is hanging on a white wall\nA group of teenagers working on computers with adults behind them.\nA man wearing a hat riding a motorcycle.\nSeveral zebras stand in a field and graze.\nA display case in a donut shop filled with lots of donuts.\na pink truck with a wine bottle on the side\nGiraffe standing next to each other at a zoo.\nSeveral beer bottles lined up on a refrigerator shelf.\nA statue of Fry form Futurama holding a skateboard.\na woman wearing a white shirt and shorts playing soccer\nA boogie board or writing on a large wave in the ocean that is Brakey\nA man in red shirt playing on beach with a frisbee.\nA bouquet of dark  red roses in a vase. \na white and green plane is in the sky\na couple of horses with a man standing on top\nKitchen area with counter top space and dining room table. \nA tennis player is wiping his racket off with a towel.\nA gentleman putting something into a pizza box in a restaurant.\na blue yellow and white jet parked and some grass\nA large jetliner flying through a blue sky with two engines.\nA group of people sitting at a long table having food and drinks.\nA bathroom with a white toilet, tub, and tile floor.\nA kitchen that appears to be missing a cabinet door.\nYoung kid playing tee ball with a young woman watching\nA microwave oven sitting inside of a kitchen cabinet.\nA man doing a skateboard jump trick in front of spectators.\nA patch of grass with lots of bikes parked on it.\nA group of people sitting and laying next to each other.\nPink flowers displayed in a large glass jar.\nA group of people on a court with tennis rackets.\na boy that is snowboarding through the snow\nA plate with a hot meat and cheese sandwich.\nAn old radio with a computer keyboard and mouse\nA large herd of sheep sit huddled together.\nThree cows standing on a lush green field.\nA woman leans against a kitchen counter as two boys clean pumpkins on a newspaper covered table.\na man in a blue shirt is playing tennis\nA person flying through the air while riding skis.\nA couple of people standing next to a gray car in a  forest.\nA herd of sheep standing next to a brown cow.\nA bowl with carrots and a spoon sitting on a plate.\nA man grabs the back end of his snowboard as he soars off a jump.\na big bowl on a table filled with broccoli \nHorses are standing in an open field in the grass.\nA coliseum near a large set of buildings at a traffic light.\nA train and its operators going down the track.\nA rusted pair of chairs next to a table outside in the woods. \nA group of men play a game of tennis together on a grass tennis court. \na brown and black counter a bath tub and a mirror and cups\nA man positions one foot on his roller blade and the other in midair.\nA panda bear sitting and eating a plant.\nA man walking down a road with a horse and carriage coming at him.\nA toilet with a hammer on it in a small room.\nA man walking his bike past a wooden boat.\nAn arrangement of a fruit skin and flowers is displayed.\nA little girl holding an umbrella is standing on the sidewalk \nA lone cow standing behind a metal wire fence.\na glass fish bowl with rocks and weeds in it.\nA plate of food with meat and white noodles.\nA large group of boats are sitting in the water.\nA woman standing on top of a sandy beach under a flying kite.\nA woman is putting her seat belt on in the car.\nA lot of zebras in the grass grazing and one zebra just looking.\nThe vegetable are laid out neatly at the table.\nA metro bus approaches an intersection where a traffic cop is directing traffic.\nA grocery store filled with lots of fresh fruit stand vegetables.\nOne zebra standing in front of a pile of wood.  \na man uses a blender to chop up some food \nA plate with three sandwiches sitting next to shoestring fried potatoes.\nTwo sheep are standing side by side behind a fence.\ntwo public transit buses on a city street \nA street light stands in front of a Best Buy.\nA room that has a couch, chair, and table in it.\nA white bus driving down a street next to trees.\nA bathroom showing sink, toilet, and shower \nA giraffe eating grass over a rock wall \nIt will be a long wait for the truck before the buses leave the area.\nThere's a field of brown grass with zebras in it\nA colorful hot dog on a white dish with an iced beverage.\nA little girl posing for a picture while eating food.\na baseball player swings his bat at a ball\nA man riding a skateboard on a wooden ramp.\nMan dressed in jeans standing in the street holding luggage.\nA man holding a snowboard on top of a snow covered hill.\na snow skier and lots of trees on a sunny day\nA herd of cattle grazes in a field near a tree.\nA picture of a person talking on a phone. \nA man holding a cellphone in yellow room.\nTwo red and yellow trains parked next to each other.\na toilet a toilet brush tiles and a door handle\nTwo women walking side by side holding umbrellas.\nA hand holds a collection of orange and blue scissors.\nA large clock tower connected to a brick church.\nsome gross ass vegetables that look slimy AF\nAn orange road sign sitting next to a black truck.\na white and yellow bus and its driver\nA train is going down the track under a bridge.\nA man eating candy on a white stick.\nA young man, formally dressed, is posing. \na person riding skis on a snowy surface \nA train traveling over a bridge over a body of water.\nA yellow city bus going to walmart and the hospital\nA couple of pony's standing in the middle of a forest.\nA train is pulling into the train station. \nA white ceramic sink next to a toilet.\nA crowd of people gathered watching kites in the air\nTwo giraffe standing next to each other on top of a field.\nA city street with a two story bus.\nA stuffed kitty cat is placed on a counter.\nA horse standing on top of a lush green field.\nThere is a male skier riding down a snow hill\na close up of a disassembled remote control  \na white plane sits on a tarmac near a row of parked cars\nTwo zebras lower their heads to the ground to graze.\nA group of two dogs sitting in front of two plates of food.\na sign on a wall with a clock in the background\nA giraffe is peeking around the side of a wall at the camera.\nTwo guys are playing Frisbee in the park.\nA couple of people that are sitting on a couch.\nAn unfinished kitchen that has a refrigerator and cabinets.\nA picture shows old computers, mouse and keyboards.\nA man wearing a blue shirt and white shorts playing tennis.\nA man and a woman are posing next to a red motorcycle.\nA man appears to be making something in his kitchen. \nA desk holds a computer and leftover food containers.\nA car is parked on the street by some signs.\nA man sitting on a bench listening to headphones.\nA picture of a computer desk that is messy.\na brown and white dog is sitting in some grass and a red and white fire hydrant\nA cow seems disfigured and injured on the beach. \nA person on a skateboard does a trick on stairs.\nThe traffic and people on a commercial street corner at night\nAn electric fence with a sign behind it that says \"A flood can happen anywhere.\"\nA picture of a modern bathroom with a glass door to the toilet and large glass mirror.\nA person looking at their cell phone at another person taking a picture.\na suite case that is on a brown desk\nA jumbo jet airplane parked with a person checking it.\nA small dog standing next to a person in blue jeans.\nA large white clock tower towering over a wall.\nSeveral beer signs above various businesses on a narrow street.\nAn ornate clock stands amidst a structure of scaffolding.\nA love seat, microwave and table on sidewalk.\nTHERE ARE CHILDREN THAT ARE EATING FOOD AT THE TABLE \ntwo white and blue vases and a white vase with a white and yellow flower\nA woman is sitting using a cell phone.\nThree zebras gathered together in a field looking at something.\nA bird is perched on the twig of a tree. \nPair of zebras standing in grassy field outdoors.\nTwo giraffes standing side by side at a zoo in front of a large city.\nThis is an old antique photo of an older man. \na person surfing down a river on a surf board\nA man in a suit and tie is sitting on a bench.\nA clean white bathroom with a simple mirror above the vanity.\nA display in  a store filled with carrots, cauliflower and greens.\nThe ingredients are on the kitchen counter next to the blender.\nA black and white cat laying on top of a computer keyboard.\nThe bathroom is neatly decorated in a retro style.\nAn elephant with a person on top of it in a street. \nPeople are at an outdoor lunch table in a park.\nA locomotive crossing on a street with the arm down to stop traffic as the train is passing through.\nA brown and white dog standing next to a white horse.\nA woman that is standing holding a remote.\nA white and black checkered floor in a kitchen.\nA woman in a theater style chair typing a laptop.\nTwo college age boys playing Wii while others look on \nA man in uniform talking on a cell phone in a living room.\nA woman in a skirt and colorful shirt kneeling down on floral fabric.\nBride and groom looking at wedding cake with server in hand\na person laying in bed with medicine on the night stand \nPEOPLE WAITING FOR DINNER IN A BUSY RESTAURANT.\nA boy on a surfboard in the ocean \nThe dog is laying by himself on the couch. \nA picture of some pizza on a table.\na cat is laying down on a blue chair\nA woman sitting at a table with a plate of food in front of her.\nan old black and white photo of a train\nA beautiful blonde haired lady holding up a camera.\nTwo small children brushing their teeth at a bathroom sink\nA woman in green shirt sitting next to plate of food.\nA row of different colored vases sitting on a walkway.\nA pair of scissors next to a package of top ramen.\nA man in a yellow shirt stands in a dirt circle.\nA formation of airplanes flying through a  blue sky.\nA couple of people standing on top of a field flying a kite.\nA wooden table topped with slices of toast, soup and OJ>\nA living room with a hard wood floor and a dinning room table nearby.\na pigeon perched on the arm of a bench\nA black cat standing over a glass bowl.\nA very cute goat standing in some very tall grass.\nA pitcher pitching in a baseball stadium with people watching in the stand. \nAn Asian man ad woman on their cell phones.\nA group of children sitting around each other.\nA woman in a shop painting a vase with decorative flowers.\nA man driving a horse drawn carriage down the side of a road.\nTwo adults playing a game in a arena.\nA skateboard that has its wheels on the floor.\nMen playing soccer in a green field while the coach looks on.\nA small clock sitting in the middle of a side walk.\nA young person riding a skateboard up the side of a ramp.\nTwo men who are standing near each other.\nTwo small beds with white and red sheets. \nA woman with two children sitting at a table with plates of food.\nA  picture of a wooden table shows dishes, utensils and water glasses along its periphery and a plate full of food next to a candle in a glass at its center.  \nTwo men in orange shirts and two men in white shirts diving for a white frisbee. \nA cat looking forward while laying down on a green cushion. \nA truck that is parked on the side of the street.\na baseball player swinging a bat at a ball\nthree people on a gravel ground playing frisbee\nElephant crossing paved road near grass and trees.\nA clock tower rises above the Port of San Francisco building.\nA birthday cake is shaped like a fire truck.\nMan standing getting ready to serve the ball.\ntwo cats sitting side by side eating out of a dish\nTwo cups on a table and a man seated next to the table.\nA person is moving green hay towards an elephant that is inside the back of a white truck.\nA woman brushes her teeth over the sink while sitting in her bed.\nThe bed has a nightstand next to it with a lamp on it. \nthe two racquets are close to being identical.\nA woman in a very short white skirt holding a tennis racquet.\nA cat is playing in a plant on the side of a house.\nMany people are sitting on two benches next to a light pole.\nA family gathers around a birthday cake and poses for picture.\nA man on a green field throwing a baseball.\na motorcycle that is next to a bunch more\nA collection of books and knick-knacks on shelves.\nA person spreading jam on bread over a pizza.\ntwo different kinds of zebras in the grasslands\nProtesters carrying pink parasols and signs in front of a wrought-iron gate.\na stop sign and a bus stop sign\nFour people gathered at a steel table with utensils. \nA little girl about to eat something off of a spoon.\nA person standing in front of a stop sign in the dark.\nPeople are sitting around a table with plates and wine glasses while cake is being cut.\nThe tennis pro is wearing Nike sports clothing.\nTwo cats looking at a dog through an open fence.\nA train coming down the tracks in a city. \nThe bear likes to swim in the water.\nTwo giraffe standing next to a chain link fence.\nA street area with a building and cars.\nA herd of sheep in a rural landscape with trees and a pond in the background.\nA man in glasses standing and talking on a cell phone.\nA young person sitting on a chair near a table.\nA woman holding up a carrot while wearing a scarf.\nComputer desk setup with monitor, wireless keyboard, and other electronic devices. \na couple of black dogs laying down in a white chair\nTENNIS GAME SHOWING ONE PERSON HOLDING A RACKET\nA barley wine bottle next to a wine glass with wine.\nTwo men are crouched down, working on a motorcycle\na few deer and a zebra on a grass field\nAssorted food items displayed on trays with condiments on table.\nA boy skiing on a snow slope at a snow resort. \nA close up of a cake with a toy car driving up a hill of brown icing.\nA sandwich being browned on a buttered grill.\nA man tossing a frisbee under his leg.\nA man riding skis down a snow covered slope.\nthree motor cycle racers posing on their parked bikes\nText written on a photo of a cat shutting in front of a television \nA skier skiing down a snowy ski slope.\nA man holding his cell phone in his hand. \nA shower and a white toilet in a small bathroom.\na group of vehicles parked next to a firehydrant\nA person is driving a speedboat quickly through the water.\nMan playing tennis ball in mid air hit.\nAn elephant sitting while its trainer cleans it with a broom.\nCity buses are parked at the bus station\nA table topped with a plate of food next to eating utensils.\nA wagon with a pink umbrella sitting in front of a store.\nThe big bird is on the beach and the dog is barking at it.\nA couple of young men riding bikes down a street in front of a sign.\nA baseball player holding a bat on top of a field.\nSkateboarder riding his board on a half pike.\nTwo men playing Frisbee in a grassy area.\nsome sauce is being stirred in a bowl\nTwo street signs on a post beneath power lines.\nA man leaping off the side of a cliff while skiing.\na little boy holding onto a big bat\nA sandwich, carrots and strawberries in a lunch box.\nA red brick building sits on a corner and has a tower and a clock.\nA kitchen with a doorway leading to a laundry room.\nA long empty, minimal modern skylit home kitchen.\nTHERE ARE WOMEN THAT ARE LAUGHING UNDER THE UMBRELLA\nAn elephant puts his feet on the back of another elephant on a dry grassy field.\nA group of people taking a photo at night.\nA piece of cake on a plate with some juice by it\nA fence lines the street and creates a barrier from sidewalk.\nAn equestrian in riding clothes jumps a horse over a post\nA woman rides a horse in the middle of a street.\nA white plate with a cheeseburger and french fries.\nA large clock sitting over a lobby in a building.\nA living area with a rocking chair, dog in bed and fireplace.\na bunch of fruit sit inside of a market \nA cow standing next to a shelf with many drinks.\nA giraffe caged in while grass falling from his mouth. \nA bride is eating steak at a table.\nA man in a shirt and tie making a creepy face.\nA line of chili peppers hanging in a kitchen.\nA picture of a cluttered home office desk.\nA dinning room table sitting next to a small fireplace.\na bunch of people playing baseball as people watch \nThis kitchen is cluttered, cabinet and drawers are not shut all the way, and there is paper taped to the floor.\nA red fire hydrant next to a h sign\na very nice draw showing a vase with flowers\nA man swinging a baseball bat during a baseball game.\nA cat laying on a rug next to a sliding glass door.\nA bus that is sitting in the street.\nThe people carry their travel suitcase between them.\nTwo bathroom sinks under two mirrors next to paper towel dispenser.\nThere is a zebra standing alone in the zoo\nA herd of cows laying on dry grass.\nThere is s toilet scrubber next to the toilet in the stall. \nA long post with a clock atop it with several torches blazing behind it\nA parking meter sitting in the snow next to a parked car.\nA couple of people that are riding on horses.\nA trunk full of backpacks and other bags.\nA stuffed animal has been placed inside of blankets.\nPeople sit under umbrellas on benches with a statue on a brick sidewalk.\nSTOP SIGN WITH SPRAY PAINTED WORDS ON IT\nA herd of zebras stand around in the wild.\nA persons finger is covering the lens while taking a picture of a surfer. \nA black and white dog wearing a Santa Claus hat lying on the floor.\nA couple of slices of pizza sitting on top of a piece of tin foil.\nA small child is holding a toy at the park.\nA man holding a small cat in his hands.\nA large and small giraffe standing in a grassy field. \nA very big cute looking bird sitting on a pole.\ntwo people standing close to one another holding a bottle and a cup\nPeople are sitting on the sidewalk and relaxing by the river.\na bunch of elephants walk around a broken tree \nMany different people riding bikes on the street.\nMan holding up a yellow cake with candles on the top of it. \na man riding a wave on a surfboard in the ocean.\nTwo snowboarders are standing with one foot strapped into their boards and one foot out, at the top of a mountain. \nA giraffe drinking milk from a bottle behind a cage.\nA man is diving towards the ground to catch a Frisbee.\na person sleeping on a side walk near a fire hydrant \nA whole pizza with cheese, green peppers and onions.\nThe cupcakes are covered with small toy beach scenes.\na giraffe stands looking over a watering hole \na person wearing a green hat playing nintendo wii\nA plate of food next to a cup of black coffee.\nThe traffic light and sign are hanging over the road.\nsome skateboarders doing tricks and people watching them\nA living room with a television and brown couch has a clothes hanger on the doorknob.\na kid is sitting in front of a few plates of food\nA room with a bed with black floral sheets and a night stand.\nthere is a sandwich and salad on a blue and white plate\nTwo NYPD motorcycles parked along a city street.\nA man looking into a refrigerator filled with beer.\nA bathroom sink with a marble counter top under a large mirror.\nA man standing on a board in a body of water.\nA city at night filled with lots of traffic.\nA piece of luggage sitting on a hardwood floor next to a bed with items on it.\nA small convection oven placed on countertop in a messy kitchen.\nA plate with some food on it next to some condiments.\na man sits by himself on a bench in a stone-paved square in front of a large bed of flowers\nA side rail inside of a building. \na white male taking pictures with his cellphone\nA mirror reflecting the inside of a living room.\nA man swinging a racquet on a tennis court.\nA woman on a surfboard is about to fall in thew ater\nA very long red bus driving across a parking lot.\nA person with a surfboard in a room.\nA flower hanging from a bunch or green bananas.\nA room has a table, books, piano, and door in it.\na tractor trailer parked in a parking lot\nthe ball is coming toward the batter and the catcher is ready\na woman posing on a wooden bench in the woods\nAdult giraffe with young standing near wall and tree in enclosed area.\nA loving couple who has fallen to sleep together on a couch. \nan older man is brushing his teeth at home\nTwo cats are shown sitting on a toilet.\nA crowd of people standing along a fence near an airport.\nA young calf stands amidst the grasses on the riverside. \nA flock of birds is flying around the factory structure.\nTwo elephants standing near each other in a grassy area.  \na red fire hydrant in the middle of a green field.\nA little boy sits at a breakfast table pointing at the camera.\nTwo skateboarders performing a trick on a ramp.\nA large teddybear float is on snow skis.\nTwo young women standing in a living room holding Wii game controllers.\ntwo bears partially submerged in water near each other\nA large brown dog laying on top of a raft.\nTwo men, one dressed as a Roman warrior and using the phone, standing outside.\npeople in a terminal with suitcases taking some pictures\ntwo horses in a field with a mountain in the background\nA person holding a tennis racket in the air on a tennis court\nA large red and white bus on a city street.\nBlack and white dog protecting yellow flying disc in open grassy field.\nA man throwing a frisbee to his friend standing in his yard.\nA biker with a helmet on is standing behind two motorcycles.\nA man riding a snowboard on top of a snow covered slope.\nA brown horse sticking its head out of a red and white barn door.\nthree elephants are standing in a brown field of grass\nTwo zebra standing closely next to each other.\nThis green dufell bag sits next to a brown seat\nsome trees some grass a big pot with some white flowers\nA woman standing in front of a bathroom mirror.\nA green and white stove top oven in a kitchen.\nA group of pigeons, swans and ducks clustering around water. \nTwo people riding on the back of horses near a tall building.\nA woman cutting up a large chocolate sheet cake.\nthe bedroom looks neat and clean though it is a small area\nA man skateboarding down the street holding a bottle of water.\na couple of people that are holding a surfboard\nA white toilet with a black lid and red painting on it. \nA grumpy cat sits with objects balanced on his side.\nA man and woman on beach playing with a frisbee.\nA bunch of boxes that have fruit inside of them.\nA child sitting with container that has chips and a hot dog in it.\nPeople standing next to tree looking at an airplane flying over ocean.\nTwo children hold large crocheted stockings on Christmas.\nA man in a restaurant admiring a gigantic pizza.\nA woman is standing in her kitchen posing for a photo. \nA pizza in a pan on top of a stove top oven.\nFood with green sauce on paper plate with cake\ntwo ladies riding horses there's a reflection of one of them in a mirror\nA man holding a cell phone in a crowded mall.\na meal on a table which includes pizza in a box and a bottle of beer along with a beer mug\nThree different electronic devices sitting on a brown table.\nA street vendor with ties hanging from a rod \nA child's train sitting on top of snow near a building.\nA cat in a kitchen on top of a refrigerator.\nA man swinging a tennis racket at a tennis ball.\nPart of a donut sits on the plate on the table.\na bathroom that has a sink and a toilet in it\nA couple of women in the street holding umbrellas.\nA person rides an ATV with other ATVS\nA person flying a kite next to a lake and trees\nA man standing outdoors next to a dirt bike and ATV.\nA BASEBALL PLAYER IS HOLDING A BAT ON THE FIELD\nA man smiles while throwing a frisbee. \nA bus traveling down a curvy road behind a black car.\nA carved wooden elephant next to a book.\nA train is traveling down the rail road tracks. \nA hotel room with a large bed and a tv\nA beautiful little girl sitting next to a little boy sharing a meal.\nA bench outside near a body of water during the day.\nA couple of plastic containers filled with food.\nA woman holding a child on a skateboard.\na walk in shower with a seat next to a white sink.\nApples and oranges sitting next to each other on a shelf.\nA blue and white street sign next to a white building.\na group of black suitcases sitting next to each other by a wall\nA man flying through the air riding a skateboard.\nA living room filled with lots of furniture.\nMan in blue striped shirt playing Nintendo Wii.\nA red vase holding two red flowers, and a vintage-style alarm clock, all arranged in the corner of a windowsill.\nthis man is stepping on one frisbee and catching another\nsome yellow signs attached to a building wall \na couple of helicopters are in the sky\nA bus traveling down a city street at night.\nA picture of a green airplane with propellers. \nA white van parked in front of a tall brown brick building.\nThere is a bus driving along the road.\na baseball player swinging a bat at a ball\nLuggage moves along a conveyor belt at an airport.\nA black and white dog with a Frisbee in its mouth.\nan old fashioned table holding onto some suitcases \nA washroom is adorned in soothing beach vibe decor.\nA person with a skateboard on a street.\nA man in a grey shirt on a grey couch playing a videogame. \nA person is working on a motorcycle in a garage.\nA polar bear sleeping on a rock. \nA red traffic light at a street side.\nA person on a surf board riding some rough waves.\nThe brown horse is walking on the dirt in the fence. \nA man operating a very small park train going down a track.\nA mother and son elephant walking through a green grass field.\nA close shot of two separate trains. \nSeveral cows standing while grazing in a field.\na man that is petting a big giraffe\nA blue bench sitting under a clock mounted to a wall.\nPeople sitting down for a meal in a restaurant.\nParked vehicles and a crane on a road in the woods.\nthis clean bathroom has all white fixtures in it\nA small cat laying on the ground with a remote.\nA little girl holding a game controller in a room.\nA large long train on a steel track.\nA man sitting in a passenger seat of a vehicle, wearing a dress shirt and tie.\nA person kiteboarding over the ocean on top of waves.\nA bathroom depicting a vanity, window and a toilet.\nA man in a yellow shirt and headband sitting on a bed in front of a polka dot wall.\nA very tall pink and white clock tower.\nA batter swings at the ball during a baseball game\na big bathroom with colorful tile walls and fancy lights above the sink \nThis is an old fashion picture of a young man in a suit.\nCats in a bathroom playing with the toilet paper\nA large white polar bear laying on top of snow.\nAn upright clock near wooden tables and chairs.\nA black suitcase with a handle and white background.\nA person on skis in the air during a jump.\na giraffe reaching up to eat some grass from a cage \nA city street is crowded with people and no cars.\nA black ct with green eyes sitting in the sun.\nA young woman sitting in a field next to a cow.\nA man riding a skateboard on the side of a ramp.\nAn elephant and baby stand next to each other.\nA tall building with lots of windows and a walkway.\nA woman sitting a table holding a piece of cloth.\nA group of people who are serving a cake.\nthere are three suitcases That are opened on the floor\nTwo large pizzas covered in sauce and cheese.\nA traffic light sitting next to a chair on a hard wood floor.\nA black dog lays his head on a book of maps.\nMan placing items on a dining room table in front of other people. \nThe woman is taking a picture in the bathroom mirror. \nBlack cat laying on a chair's cushion staring at something.\nA person walking across a beach next to the ocean.\nA computer mouse and keyboard sitting next to a  monitor.\nSnowboard stuck in a thick collection of trees. \nA plastic container filled with onions and meat.\na cat is staring at a television on a table\nSmall kitchen area with sink full of dirty dishes\nThe lower half of a very tall giraffe in a grassy area.\nA girl coming home from the store on her skateboard.\nA middle-aged man assembles a green kite at his office.\nTwo zebras grazing in a grassy field with a forest behind them.\nThe Seattle Space Needle as a Jumbo Jet Plane flies by.\na dump truck carrying a car a building and a street\nA man riding skis down a snow covered slope.\nA stop sign over a grassy area next to trees.\nA cat sitting on a bed near a television remote.\nThe woman is sitting and looking at something on her mobile phone.  \nA white plate with a sandwich and sides on it\nA woman is looking at fruit for sale at a farmer's market.\nA young man riding a white surfboard on top of a wave.\nA large clock sitting above a red Samuel Cooper sign.\nA couple of signs that are above a stop sign.\nA person rides a horse down a trail in the mountains.\na person getting a piece of pizza pie\na railroad crossing and some cars and trees\nA large sign and some cars on a street.\nA dog is in mid air with a frisbee in its mouth. \nTwo eyes peeping through two doors with a floor\na baseball player is throwing a ball \nA professional baseball player in the middle of throwing a pitch. \nA rowboat parked at the base of a white lighthouse.\nA flag waving in the breeze atop a clock tower.\nA woman playing a game of tennis on a tennis court.\nA couple of young boys standing around a boy with a baseball bat.\nSeveral people standing in a green field together while flying kites.\nA woman laying on top of a surfboard in the ocean.\na baseball player holding a bat on a field\nTwo cups sitting on top of a gray counter.\nA giraffe near a white door on a brick wall. \nView of a clock on the top of a building.\nA man riding on top of a paddle board on a lake.\nA crowded alley is full of souvenirs and a horse statue.  \nA close-up shot of a metal squat toilet.\nA man who is holding a skateboard next to some ramps.\nA teenaged girl at a booth at an educational fair \nthere is a large bucket and a small pot in this bathroom\nA very tall building has a clock on the front of it.\nA large passenger jet sitting on top of an airport tarmac.\nA white clock tower with a clock on each of it's sides.\nA giant pair of steel scissors in front of a tall building.\na close up of a woman wearing jewelry and a boat in the background\nA man holds a plate of food while he works on a laptop.\nA blond haired woman holding up a cell phone.\na table with many plates of food on top\nA person flying a kite on a beach at dusk.\nA bear that is standing in a field.\nBaseball players are in action as a crowd watches.\nStreet corner signs above a red stop sign.\nA man is playing a WII video game.\nA person standing on a rocky hillside next to the ocean.\nA black and white dog is looking out of a window from inside a house.\nZebras are grazing on grass by a car.\nThree pairs of scissor sitting next to each other.\nA picture loaded with much wonderful sustenance on table. \nWoman in white skirt outfit standing on a tennis court. \nA hipster sits at a desk near a laptop while using his cell phone.\nA teenager on a blue skateboard has his arm in the air.\nA group of people standing around a wine cellar.\nMotorcyclists are gathered around their bikes at a rally. \nA giraffe grazing on a tree in the wilderness with other wildlife\nLiving room scene of tan couches and other earth tone furniture.\nSeveral street signs posted together on a poll.\nA little girl holding a red black dotted umbrella.\nOrange seats on a train with Yellow doors and lime green floors.\nA man who is holding an umbrella out of a window.\nA man surfing on a large wave in the water.\nA giraffe is walking in a grassy field as a cow is laying down.\nThey are holding a frisbee together while hugging each other.\nA little boy riding a skateboard across a cement area.\nA boy and two females standing in a circle playing tennis.\nLARGE COLORFUL OUT DOOR FRUIT AND VEGETABLE STAND\nA herd of elephants walking next to each other.\nA kitchen filled with wooden cabinets and a white refrigerator.\nGroup of people sitting in auditorium with a screen.\nThe man is walking up the stairs near a horse and rider statue.\nA bus stopped in front of a building with the Apple logo on it.\nA group of people at a table working on small laptops.\ntwo legs a toilet a stall door and white tile\nAn iguana and an egret are on the edge of a body of water.\npoint of view shot of man using a small urinal in bathroom\nA kitten sleep on top of papers. \nA man getting ready to hit a tennis ball with a racket.\nA kitchen with a stainless steel refrigerator and wood cabinets.\nThis is an air show put on by the US Navy Blue Angels. \nA gas station on the corner of a street next to a traffic light.\nA man in glasses eating a donut out of a cup.\nAn old ornamental building features many beautiful windows and a clock.\nA plate topped with mushrooms and broccoli covered in sesame seeds.\nA city traffic light is red with a large billow of smoke in the background.\nAn oven in a kitchen with a stove on top in between counter tops.\nA beautiful young lady holding a tennis racquet on a tennis court.\nA dog chewing on a mans shoes as he lays on a field.\nA group of skateboarders riding their skateboards on a sidewalk.\nA woman in a wedding dress is next to her cake.\nBrown, white, and black rams eating on a hill. \nA zebra and ostrich standing in dirt field next to trees.\na man in a cop uniform while holding a red and white umbrella and standing on a pole \nA dog and a cat laying together in a pet bed.\nAn man taking a picture of a sink through a mirror.\nA woman is standing next to a wall with a blue umbrella.\nA group of men standing next to each other.\nA bird sitting in a tree, in the middle of a clear day.\nA woman baking bread on top of a baking sheet.\nA man riding a skateboard up a flight of steps.\nA bathroom scene with focus on the toilet.\nA group of people holding Nintendo wii game controllers.\nA TV on top of a wooden dresser next to a desk.\nThe four men are performing in costumes. \nA street sign leaned over with the words High Gate Avenue on it.\nThe front of a restaurant with outdoor an outdoor dining area.\nA woman is standing on cobblestone with an umbrella.\nA herd of zebra standing on a green grass covered field.\nA beautiful tower building with a big clock on it.\nA wooden desk topped with lots of clutter near a chair.\nBright tall colorful flags stuck in the sand at a beach\nThe two people sit on a bench overlooking the park\nA group of cows standing next to a  line of laundry drying.\nThe young child is learning how to ski. \nA man holding up a phone while standing in snow.\nBoys playing on an indoor skate mat ramp\nA young lady kicking a soccer ball on a field.\nThis young girl is learning to throw a frisbee.\nA bowl filled with food sitting next to two pieces of bread.\na bunch of cell phones sit inside of a display case \nA large white polar bear walking across a dirt and gravel ground.\nThe girl is about to kick a soccer ball.\nA woman that is standing on a tennis court with racquet.\nA white pizza sliced in on a board along with two plates, utensils and pink napkins.\nA small yellow car parked between two large yellow trucks.\nWoman showing off very large home made pizza.\nA geisha girl entering a hotel bus at the airport\nBathroom with sink, shower, towels, curtain, and more with window\nA man and baby are by an oversize teddy bear.\nThe child stands beside a toilet bowl with a light inside it.\nA man standing on a tennis court serving a ball to a group of kids.\nA cat that is standing on a chair and looking at the ground.\nA boy and a girl trying to fly a kite.\nA plate topped with a piece of cake.\nA long train traveling down a city street with tall buildings.\nA man walking across an airport next to a passenger jet.\npeople in a field lfying many kites flying in the sky\nAn old clock tower showing one forty-five during the day.\na baseball catcher is walking with his glove on\nA close up of a plane with several people around it on the ground.\nBaseball players about to deliver hit to ball with many spectators.\na cat takes over a human's chair, and their book.\nAn enclose in a building with a giraffe in the background.\nConductors operating a miniature train for parents and their children.\nA woman playing a video game, with a man watching.\nA banana sitting on top of a sidewalk near a street.\nMan in glasses swinging at a ball with a tennis racket. \nA baby feeding cake to a man with a fork.\na chihuahua sitting in a chair at the table in front of a plate of food\nA man serving a tennis ball on top of a tennis court.\nA person standing on a stage with a dog flying through the air catching a frisbee.\nA traffic light hanging over a road at a cross walk.\nSeveral jars filled with oranges on a kitchen counter.\nA kitchen with old wooden cabinets and a stove top oven.\nA picture of some food on a table.\nA baked dish on a plate being touched by a woman.\nA couple of cows sitting inside a wooded fence.\nA BEAR CUB IS PLAYING WITH A LOG IN THE WATER\nA white building with lots of people walking around it.\nA room corner painted orange with a picture of pizza on the wall.\nA plastic dish of some vegetables and fruits.\nA large brown dog standing next to a home plate.\nA man in a suit and tie wearing a wedding ring.\nA living room/dining room where a family would sit\nTwo people sitting on a bench while a dog looks at them.\na person riding skis on a snowy slope\nA group of people riding up a ski lift.\na large sidewalk is filled with people walking around \nA brown and white cow in grassy area next to fence.\nCat laying on top of a dog on a leash.\nA close up of the green light on a traffic light\nA bus that is driving on the street.\nAn orange tree filled with oranges next to a building.\nA man taking a swing at a tennis ball.\nAn old green and brown car with chrome trim.\nthere is a young man riding a skateboard in the street\n a dog running towards a frisbee in the air \nWoman riding a horse over a large jump on a running track.\nA person and a animal in the daytime.\nTea time in the dollhouse is much like the real thing.\nMany jockies are riding horses down a beach.\nA black chair sitting next to a refrigerator.\na yellow and green train, at stop lights.\ntwo people laying in bed operating separate laptops \nA living room with a table with a mirror above it.\na cat is starring at an old television \nA brown fuzzy bear standing in front of a leaf filled tree.\nDog sticking its head out of a car window\nA blanket that has different types of food.\nA person that is is up to bat at a baseball game.\nA cup of cocoa with a spoon and a side of croissants.\nPair of snowboarders resting and checking map on snow covered slope.\nA small grey refrigerator on wheels and a sand fan\nA white sink on a counter in a room.\nA person on skis going down a hill.\nA bird standing in the wooded area with leaves all around. \nBatter and catcher playing in a game of baseball.\nA woman and some kids sitting on a couch.\nSurf boards lay on the sand in front of booths.\nA colorful railroad train arriving at a station.\nA man standing in front of a mirror holding up a cell phone.\nA closeup of a pepperoni pizza in dark area. \nA young man on a skateboard rides down a railing.\nTwo bikes are chained to the pole on the street\nTwo baby elephants standing in tall grass with an adult elephant.\nA small elephant walking across a dry grass field.\nA man jumping in the air on a skateboard.\nA little boy in mid swing at a baseball\nA couple of kittens standing around metal bowls on a tray.\na man is reading a book in a car with a small dog\nA glass and bottle of wine next to cat statue and window.\nThere is faded green paint on a wooden step\nA skateboarder doing a trick with skyscrapers in the background.\nA lady with glasses biting a big sandwich.\nA group of skiers watch as one members does a trick.\na computer screen with a keyboard and mouse on a desk\nA cake made to look like a baseball hat.\nA lone skateboarder balancing on steps in practice area of a park.\nAn older couple standing next to each other.\nA living room consisting of windows, rugs, chairs, and a coffee table.\nA group of children stand on a tennis court\nA man jumps as he skates on a pavement\nA fire hydrant next to a low brick wall.\nA large building with a clock at the top of it .\nTwo people walking through  park holding umbrellas.\nA soccer goalie and a player face off in a game.\nFour lambs standing on a hill top with trees.\nOne light brown cow with hay in it's mouth.\nA cow laying on top of a grass covered field.\nA man sitting on top of a couch holding a Nintendo Wii game controller.\nA motorcycle parked on the side of a street.\nSkiers on a slope with the ski lift in the background.\nA dark room with a man at a desk that has a laptop and an projector image on the wall.\nAirplane flying in the air over various fields and farms.\nSome people in high visibility jackets putting suitcases onto a conveyer belt from a container\nA bedroom decorated with a blue underwater theme.\nA young woman with her laptop in bed.\nPeople are milling about on a city street. \nA long bus driving on a city street past a building.\nTraffic drives down a street on a green light passed tall buildings.\nA fire department with a sign out front \nAn older woman riding a train while sitting under it's window.\nSome brown and white giraffes standing and sitting together.\nSomeone is cooking a vegtable stir fry for dinner\nA woman holding a tennis racquet on top of a tennis court.\nTwo blue and white street signs and cars on a street.\nA bathroom containing a toilet, sink and bathtub with shower, with no accessories.\nA polar bear standing on a rock formation in an enclosure.\nA group of people standing at a table with bottles of wine.\nA white table topped with different colored vegetables.\nThere is a person sitting on the toilet using the bathroom \nA kitchen filled with lots of clutter and a table with blue metal chairs.\nThere's a grill with a pizza cooking inside of it.\na pink clock tower rises above a tree line\nA hand holding two spoons over a metal sink.\nA little child riding on top of a white horse.\nThe stoves inside of a pizza place's kitchen with pizza boxed on a shelf. \nA plate of spaghetti with broccoli and mushrooms\nA dog standing on the back of a couch over a sleeping person and a laptop.\nPeople are in the water with kites flying over them.\nRed wooden door with a stop sign requiring ID\nPerson with cross-country skies and poles standing in the middle of a trail.\nPeople stand around an antique motorcycle in a grassy area.\nPerson holding up food on a stick of good to a dog. \nA skier flying through the air on their skis while holding a ski pole.\nA young man riding a bike through a trail in the woods.\ntwo men in in a white raft and a ship behind them\nA table sitting before a doorway with an arched top.\nthis is a mp3 player and some headphones\nA kitchen with a stainless steel stove.and white cabinets.\nA large cut pizza on a pan on a table.\nan animal laying down on top of some rocks.\nA man standing on a tennis court holding a tennis raquet.\nA woman is holding an perched owl above her head.\nA silver passenger train traveling down train tracks near a field.\nTwo skiers heading up the side of a mountain\nA doorway into a clean wood floored kitchen.\nA street sign sitting on the side of a road next to a tall brick building.\nA brown plate topped with bananas and a jar of honey.\ntree is a female tennis player that is playing on the court \nA laptop computer sitting on a bed by someones feet.\nA black and white view of a double decked bus on the street.\nA large long train on a steel track.\nA BASEBALL GAME IN AN INNER CITY BALL PARK\nA corner of street with a building showing a bowling pin.\nTHERE ARE SEVERAL FIRE TRUCS THAT ARER LINE UP ON A STREET\nA melted looking lay pot sitting on top of a spindle.\nA counter top with candles and an array of deserts.\nA kite flying above in a crystal clear blue sky.\na man is sitting at a computer on a desk\nA person in boat on water with island in distance.\nA living room filled with furniture and a white table.\nA commercial stainless kitchen with a pot of food cooking. \nA large kitchen with a stove and a sink.\nA cat sitting on a rug in a room with a couch. \nA man bending down next to a bicycle.\nThree zebras and other wild animals out in a semi-green field.\nA man standing next to a red ball on the floor.\na yellow truck on a street and a traffic light \nA man getting ready to kick a soccer ball.\nA young cat with a beautiful coat standing alone. \nthere is a red stop sign on this street\nA couple of zebra print brushes sitting on top of each other.\nA brown horse with the word Autism written on the side of it.\nA cat laying on top of a couch next to a remote control.\nMany cages of birds are stacked at a pet store.\nA close shot of some treats, including a donut. \nA group of horses walking down the street\nA woman firefighter standing next to the fire truck.\nthere is a woman posing with a very large sandwich\nA white surfboard sitting in a room before a set of track lighting.\nA train traveling down tracks next to a power grid.\nFair-goers sit in the shade outside a carnival tent.\nMany electronic wires pass over the road with few cars on it.\nA bright blue suitcase is sitting on a bed.\nA living area with a red chair and ottoman, table and television.\nA woman is brushing her teeth with a white and yellow toothbrush.\nAn office area with two computer monitor and two hard casesset on a rolling chair.\nTwo planes fly next to each other with only the sky visible in the background.\nThe bird has a black head and yellow feathers.\nTwo people cross country skiing on a snow covered hill.\nA large ship driving behind a smaller ship.\nA dog having his teeth brushed with a novelty electric toothbrush.\nA cop riding on the back of a motorcycle down a street.\nA toilet that is in a bathroom with the lid up.\nTwo animals are walking along in a field.\nA man riding skis down the side of a snow covered mountain.\na person posing for a photo sitting at a table \na man standing on a sidewalk next to an rv\nAn airplane is landing on the runway at the airport.\nA slice of pizza on a  white plate on a  wooden table.\nA bed with a laptop computer sitting on top of it.\nA blue street sign attached to a pole.\na man windsurfing and another man hanging onto a parachute\na bunch of people are flying kites in a field\nA woman standing on top of skis on a snow covered slope.\nVarious luggage on couch and floor next to a bookshelf.\nGuy jumping with his skateboard doing tricks on the sidewalk\nA woman is posing for a picture on the snowy mountain.\nA woman is seen holding up an empty wine glass.\nA person is holding a tomato above a tray.\nA cart stacked with several pieces of packaged items at a pickup location of a store.\nA fire hydrant on the side of the road spraying water.\nA picture loaded with much wonderful sustenance on table. \nA stove top with lots of pots and pans.\nA yellow and red grain engine passing under train signal lights \nA white plate filled with pasta. and a fork.\nA bird seems to be flying high in the air. \na couple of surfboards placed in the sand with dogs\nA sandwich with lettuce, avocado, meat, and bread.\nA cat is looking at the camera while lying down on the chair\na kid does a trick on a skate board \nTwo people ride on a motorcycle on a street. \nA dog lying on a couch in a house.\nTwo elephants are near a watering hole at the same time\nA red soft bed with light shinning through\nA picture of a person that is playing a video game\nAn empty clean kitchen with island, marble countertops , stove and cabinetry.\nA microwave is sitting idly in the kitchen. \nA vase sitting on top of a table filled with flowers.\nThe brown fuzzy dog has round blue eyes.\nA black-and-white photo of a baseball player in the outfield.\nflower arrangement in a basket with purple and blue flowers\nThe people are sitting outside under a large umbrella.\nA group of people that are standing together.\nA person on a field gets ready to throw a ball. \nA young woman reading while laying down on a park bench.\nA couple of trains driving past each other near a platform.\nA television playing Battlestar Galactica with pizza on a plate on the floor.\na man walking with an umbrella in the sunshine\na metal bench resting on a sidewalk with cars on a street in the background\na sheep is standing on a white fence\nThere are bunches of bananas hanging from a plant.\na motorcycle in a driveway with a vanity license plate \nA baby, an old lady, a woman, and a man prepare for turkey\nA white plate topped with different types of foods.\nA baseball player holding a bat on a baseball field.\nA man riding skis down a snow covered slope.\nThe dessert has been split into two halves on the plate.\nA woman standing in front of a table full of bananas.\nBlack and white photograph of two bare feet sticking out from the covers of a child's bed\nA dog leaping into the air to catch a yellow frisbee.\nA young man riding a bike past a car while talking on a cell phone.\nA plate with sliced pizza and a bottle of beer.\nTwo photos of two people looking at each other.\nA refrigerator with an ice machine and two vertical doors stands on a tile floor next to a door.\na couple of elephants are standing in a field\nA hamburger with a knife through it next to fries.\nA group of women sitting next to eachother.\nA car with some surfboards in a field.\nA man watching a single engine plane make an approach to land.\nA woman riding a bike with a cat on her\nThere are people sitting at the table eating food\nThere are a lot of buses lined up on the street\na close up of a child and an adult \nA woman holding a pair of clear plastic scissors to her face.\nA flock of birds flying over a body of water.\na few rows of benches and a few people sitting on them\nA white sink and toilet in a small room.\nA man standing on top of a tennis court.\nA person standing in a bathroom next to a white toilet.\nA man is smoking a cigarette and giving a thumbs up\nA man riding on the back of a motorcycle with a woman.\nA tower clock sits alone in a light blue sky.\nA fire hydrant sitting inside of a building under a window.\nSandwiches, beer and a bowl of salad are being served on the dining table.\nA man is in position to play on a tennis court.\nTwo elderly men sit on a bench holding canes.\nA giraffe standing inside of a cage near a building.\nA cow attempting to get water from a leaking pipe.\nCorner of Broadway, West 32nd Street, and Korea Way.\nA train moving along some train tracks next to a tree.\nTwo big brown horses pulling a cart filled with people.\nAn old abandoned train at the bottom of a mountain.\nA man with eyeglasses, a checkered tie and brown blazer\nFire hydrant covered in flowers near stucco house.\nThere is a man holding a frisbee indoors.\nA couple of tennis players on a large, fenced-in outdoor court.\nA dog wearing a yellow jacket kissing a dog laying on the ground.\nA cut in half sandwich sitting on top of a wooden table.\na man sitting in a chair  infront of a computer in front of a window\na person that is jumping his skateboard doing a trick\nA man eating food at a baseball game.\nZebras and Water Buffalo graze for food together.\nseveral people skiing on a snow hill near evergreen trees\nA person using a skateboard on a ramp near a beach.\nA man is frowning while standing in an empty room.\nA group of birds stand on partially water covered ground.\nA baseball player holding a bat so he can hit a ball.\nA train travels over a tunnel with lights in it.\nA train is traveling across a bridge over a lake. \nA person taking a picture with a cell phone of someone laying on the ground \nA person looks at a very big computer monitor. \nA man on a snowboard that is in the snow.\nGreen bananas are growing on a banana tree.\nA batter prepares to hit a baseball that has just been thrown.\nA man throws a baseball in the field\nAn orange cut in half sitting next to a glass of oj.\nA green and white street sign that reads \"pee wee reese rd.\"\nA sheep stands out in an open field of grass.\nA bathroom is adorned with beige and white tiles.\ntwo elephants forage on the ground at a zoo\nFor people posing for a photo while holding their surfboards.\nThe man's hand is bigger then the scissors he is holding. \nA herd of cattle grazing on a lush green grass field.\nA dog wearing a hat while in a car.\na large truck surrounded by cars with a house in the background\nA statue of a bear in an enclosure.\nA field with various wildlife and trees in the background.\ntwo girls are riding a skateboard down the street.\nA cup with soda in front of a panini with a side of greens.\nTwo plates that have food on them sitting on a table.\nA woman holding an orange frisbee standing on a lush green field.\nA field full of people and a colorful kite.\nSeveral people in a canoe with oars on the river.\nA child sitting at a table eating food from a small car.\nThere is a man with long hair with a pizza in front of him on the tablr\nThis Asian dish has both meat and broccoli\nA black and white cow at market in her stall.\nA infant holding a baby toothbrush in his hand looking at it.\na person swinging a tennis racket at a tennis ball\na person wearing a head band and holding a tennis racket\nA street with cars on it is shown.\nA woman walking on the tennis court with her racket. \nA blue car in gravel parking lot next to bushes and street signs.\nA small green boat in a pond outside an office building.\na large orange cat jumping into a bathroom sink\na plate of vegetables amongst bowls of rice\nA collection of fruits and vegetables sits on the table.\nA runway with multiple planes and clouds in the background.\nA plate topped with lots of greens next to a bottle of wine.\nA cartoon rabbit advertises for a healthy breakfast.\nA field filled with purple flowers and green plants.\nThe teddy bear with the big paws is on display. \nThe black cat with white patches is sleeping on a computer keyboard.\nEach of the three cakes have icing flowers on them.\nA one way sign pointing to the left; the sky is blue in the background. \nA white stove top oven sitting in a kitchen.\nA train moving along a track during the day.\na bathroom with a toilet and a bath tub\nA girl looks at her cell phone, befuddled. \nA woman preparing food while standing in a kitchen.\nA young woman wearing mime makeup holding a racquet.\nA public transportation bus near a curb with a bicycle rack.\nA pair of horses running through a grassy field\nThe two girls are in a photo booth trying on hats and  different fake ties.\nA young boy swinging a baseball bat towards a ball.\nA hot dog on a bun covered in ketchup and mustard.\nA clean organized and fully furnished living area.\nA dog sticking its head into a small pet bed.\nYoung boys and girls taking pictures with their cell phones.\nA man with his pants around his ankles sitting on a toilet in a bathroom\nA black and blue multi color bird walking on a grassy area\nA young boy holding a baseball bat on a field.\nA person and a large elephant standing together.\nA white cat standing on top of a suitcase.\nA man riding a wave on top of a surfboard.\nA person wears a large cat costume to entertain children.\nA man holding a slice of pizza while wearing glasses.\nBRIGHT RED WALL WITH CLOCK AND THREE CHAIRS\nA flower that is in a vase with water.\nA woman standing outside with her black luggage.\nThere are many birds flying above the water.\nA plate filled with food sitting on a table next to a drink.\nA large gray elephant walking through a lush green forest.\nA cat sitting by a laptop but staring at a person. \nA little girl smiling widely for the camera\nPeople are having fun on a crowded beach.\nA clock is at the bottom of a very tall building.\nSuitcases on top of a carrier onto of a vehicle.\nA bride and a groom are cutting a wedding cake. \nA woman holding a teddy bear on a table.\nVarious animals graze in a pasture surrounded by woods.\nA giraffe standing at attention in a zoo pin.\nA black and white cat sitting on top of leaves.\na man is sitting on a bike next to a bus\nA busted red fire hydrant spewing water all over a street creating a rainbow.\nA city street with cars and a bus on it.\nA surfer standing with his surf board next to the water\nAn orange cat sleeping inside of a piece of luggage.\nA couple of blocks of chocolate sitting next to bananas and pudding.\nSome bottles and glasses of wine surrounding entrees.\nA couple of men on a field playing baseball.\nSeveral middle eastern looking stickers decorate a black briefcase.\nA crowded side walking going through a park.\nA woman standing on top of a sandy beach with a surfboard.\nVarious birds flying over a body of water next to trees.\nA tall cake is decorated with flowers and white icing.\nA couple of small birds sitting on a metal rail.\nThis is a close up photo of a street sign of a cross street.\nTwo white and grey cats sleeping on a bed with penguin comforter.\nA woman holding a plate and eating pizza.\nA bus is coming around a bend near a traffic light.\nThis is a picture of three bears in a field.\nan uncut pepperoni pizza on a wooden counter\na parking lot with a refrigerator and a speaker on the floor\nA white toilet sitting in a bathroom next to a counter.\nA donut covered in chocolate sitting on top of a paper bag.\nTwo trains in an urban station with people waiting.  \nA man flying through the air while skiing.\nA group of different animals are grazing in the wild. \nA bed sitting in a bedroom between two lamps.\nA group of young people riding snow boards down a snow covered hillside.\nA pair of people jump for a frisbee.\nWoman in black heels standing on green and white suitcase.\na couple of men that are on some motor cycles\nA train covered in graffiti sitting on top of  train tracks.\nA desk with two laptops and a computer monitor with keyboard.\nA city street filled with lots of traffic and tall buildings.\n a person wearing a backpack and pulling a rolling suitcase behind them while walking on a sidewalk.\nA man leaning against a desk wearing a business suit.\nA couple of zebras are walking through a field.\nA brick and stone gothic-style tower with church steeple rises behind a modern glass building.\nA man in a green shirt stands by a girl holding a piece of cake on a plate.\nA blocked view of the Eiffel Tower in France.\nA short commuter train traveling along the train tracks with snow on the ground.\nA bathroom with a sink, toilet, tub and mirror.\nA happy motor cyclist in leathers on a sunny day\na silver fridge sits in a room next to a microwave \nThis is an image of a skier that has fallen in the snow.\nTWO DONUTS WITH SPRINKLES ARE ON A DESK\nA wooden park bench placed up against a tree.\nA pizza is shown on a plate on a table. \nA man in a yellow and black ski suit skiing down a mountain.\nA man does a jump on a skateboard.\nAn unfrosted cake in a metal pan with green spots on top.\nA purple and white bus driving down a street.\nA group of people flying kites at the beach.\nA little boy is ready to eat his dinner.\na desk with a computer, books, paperwork and shelves with DVDs \nA young man holding a cup cake with lit candles sticking out of it.\nA person that is catching a frisbee in the air.\nA wall mounted TV over the top of a table.\nA paper bowl filled with cake and a muffin next to a banana.\nA computer sitting on top of a wooden desk.\nA woman with bright red hair siting in front of a table.\nMiniature trains on tracks with miniature person standing in the middle.\nA couple riding on the back of a horse drawn carriage.\na couple of people play a game of tennis on a grass surface \nA couple of large white airplanes parked in a stationary position.\nAn otter investigates two frisbees that are near it.\nA hot dog sitting on top of a wrapper next to a receipt.\nA large black bear sitting on to of a stuffed animal.\na bed sits under neath a glass fish tank \nA man standing at a podium at a USINDO luncheon \nA metal toilet with a blue seat in a bathroom.\nA pizza covered in lots of cheese and toppings.\nA zebra walking in a grassy plains are with another animal in the background\nA woman selling raw carrots at an outdoor market\nA living room with white furniture and a flat screen TV surrounded by book on book shelves.\nThe woman holding an umbrella smiles on the narrow street beside the sidewalk.\nA cat sleeps with its head on a laptop computer.\nHot dogs and french fries are lined up at a table.\nA close-up of headphones next to a keyboard on a desk.\nThe trucks are all parked closely together. \nA couple sitting on a park bench looking at the city.\nA man that is standing in the dirt with a baseball bat.\na cat is watching some other cats on a television\nA man tending to a brown horse next to a white trailer.\nPair of motorcycle riders about to drive on road\nYoung boy holding an umbrella on a rainy day.\nA photo of a kitchen that has a stainless steel stove. \nA man standing in the waves holding a surfboard.\nA couple of women standing in front of a large sheet cake.\nA plate of food featuring burger patties, potatoes and carrots. \nMany calendars and bunches of bananas hanging on a wall.\nAn adorable baby under a blanket in a crib.\nA young man is standing with a skateboard on a sidewalk with the chalk message, \"life is beautiful\".\nA red fire hydrant sitting on the side of a road.\nAs two skiers make their way downhill a pair of skis are left vacant in the back.\nA man in brown jacket holding two pieces of luggage.\nthis is a woman on a court playing tennis\nA deck that has a yellow surfboard and a table with 3 chairs. \nA motorcycle is on display at a convention.\nTwo baseball teams playing a game of baseball near a church.\nA large clock tower towering above a city with clocks on every side.\nA plate topped with meat and a rice, veggie cake.\nA shelf in a bathroom holding liquor and a book.\nA person standing on top of a bed covered in a blanket and pillows.\nA boy doing a trick with a skateboard from a ledge.\nan image of a union station that is lit up\nA herd of cattle is feeding at the river's edge.\nA man is slicing a large white cake\nOld photograph showing group of men with horse drawn cart outside of business.\nA beautiful woman in a white dress kissing a man while cutting a cake.\na plate of vegetables sits next to a trey of pizza \nA cat is laying on a desk staring at a computer mouse.\nA man in a suit sits at a table. \nA young girl is smiling while holding a luggage bag.\na person taking a photo in a bath room mirror\nFour bowls of different eatables are kept on the slab.\nA cat laying on a bed next to a remote control.\nAn image of a stationary canadien train behind a fence. \na person sitting on a bench reading a book\nA white an blue fire hydrant on grassy yard next to sidewalk.\nA parade of motorcycles is going through a group of tall trees.\na man making a flower display in a vase on a wall\nAn elephant standing under the shade of a tree.\na busy road that is next to some buildings\nA clean white toilet in a stall with a chrome toilet brush.\nA three-tier wedding cake with a tree decoration.\nA man tossing a frisbee in the air.\nA kitchen filled with clutter all over it's counter.\nA man riding a skateboard through a empty lobby.\nSleeping teddy bear with nightcap on a work table with tools and cords.\nA case filled with different colored Frisbee on top of a table.\nA FULL PLATE OF FOOD SITTING ON A TABLE\ncastle with lights and a clock tower by a bridge\nA red fire hydrant sitting in a parking lot next to a metal post.\nA train with red lights riding down train tracks. \na colofrul biplane flying above some trees \nA bull looking out of a wooden fence.\nAn orange and white cat sitting on top of a blue chair.\nA car is carrying several bikes on a bike rack.\nA large green field with a bench in the foreground.\nA doll with blue hair poses with it's case. \nA tower clock on top of the building in the city\nA sailboat with a dragon on it and the word Tolkien\nEven before daybreak, the cows are in the milking pen \nA large white boat traveling under a bridge.\nA man with a racket plays on a court.\nA man comes off a pole from doing a skateboard trick.\nA group of young children sitting on top of a bed.\nA person with their feet up taking a picture.\nA young bot sitting at a desk using a laptop computer.\nA black and white photo of a baseball game.\na person riding skis on a snowy slope\na black and white baseball player card the player has a bat\na person in a living room playing nintendo wii while people watch\nA neat hotel room with a bed, some furniture, and a patio.\nA pink doll house filled with miniature furniture.\nA WOMAN IS PLAYING GAMES USING AN ELECTRONIC GAMING CONSOLE\nAn old tour bus for Buddy Holly and the Crickets\nA city street pole with many umbrellas high up.\nA refrigerator that is in an otherwise empty room.\nA guy lunges as he hits a tennis ball. \nthere are many men playing soccer in a field\nCars going down the road, someone on their bicycle, and people walking\nA two sign sitting on the side of a road.\nTwo laptop computers are on a brown desk.\nA cake with dark frosting, six purple candles and floral decorations.\nA black and white photo of a bicyclist.\nA young lady with a blue purse is taking a selfie of herself. \na woman on a beach holding a surfboard behind her \nA flock of birds flying over the ocean next to a beach.\nA woman takes a selfie picture with a giraffe in the background.\nA man on a bench working on a laptop.\nSome animals that are eating some hay together.\ncars riding down a lit street with a bright light post \nA cat with it's mouth wide open laying next to an open blue bottle on a window sill.\nthere is a large concrete sign small buildings behind it\nA boat floating along a pier with people sitting on it.\nA man is surfing on a small wave.\nA group of people riding on the back of a tour bus\nTwo elephants that are standing near the water.\nhamburger and chicken sandwich wrapped in wax paper\nan old passenger bus parked next to a walgreens \nAn airplane doing maneuvers with white smoke pouring out of it's back end.\nPeople are running through the water spraying from a fire hydrant.\nA man riding a bike down a street with a woman.\nA sign advertising a cosmetology school on the side of a road.\nA phone mounted to a wall next to a doorway.\nA spotted dog sits protectively with it's toy.\nA man riding a wave on a surfboard.\nA bird with outstretched blue wings is sitting on some bird feeder.\nA partially eaten vanilla frosted doughnut with sprinkles\nThere are people in a boat near the water.\nA kitchen with a large clock mounted to it's wall.\nYoung man with backpack holding skateboard going down escalator.\nA man swinging a tennis racquet on a court.\nPeople are on board elephants in a muddy river.\nA skateboarder turning around on a half pipe.\na pair of shoes and fabric strewn across a wooden floor.\nA crowd of individuals are gathering up and doing something. \nthere are many small boats here at the dock\nA no parking sign posted to an orange traffic cone in the middle of a sidewalk.\nA person is riding an orange motorcycle doing a hand motion\nTwo large buses traveling down a busy city street.\nA living room with a black cat on top of a hard wood floor.\nA cooler filled with large beer cans and bottles for sale.\nTwo children are near a sink and one has a red toothbrush.\nA city street with a traffic light and street signs in front of a stone building.\nA girl is playing with a teddy bear in a bathroom.\nThere is a classic, black automobile sitting in a showroom. There are people looking at it in the background. \nA snowboard sitting on a hard wood floor.\nA man on a bike with a skateboard in the street.\nTwo aging gentlemen of religious persuasion smile kindly.  \nA dog laying down on the floor next to its owner. \nA close-up of a one-way street with many cars and motorcycles.\nA man with a laptop on his desk is sitting in front of a computer desk.\nCommercial jetliners fly over an amusement park with a Ferris wheel.\nA person holding out their arms to catch a frisbee.\nA motorcycle is parked next to a building.\nA polar bear is playing with a large chunk of ice.\nA white table topped with a pizza and a pan of food.\nAn older woman sitting at a table cutting up donuts.\na tennis player pacing on the court waiting for a ball\na number of sheep in a field next to a truck\nTwo airliners on the snowy runway of an airport\nA man is on the corner on a city street.\nA bathroom sink with toiletries on the counter.\nA man wearing a green shirt on top of a tennis court.\na pizza with lots of ingredients on a table in a room lit by dark lighting\nA kitchen with metallic appliances and wooden cabinets.\nA person is sitting at a computer desk with a cell phone.\nA rabbit is eating a carrot next to a stuffed animal.\nA double decker bus traveling down he street, past a Ferris wheel.\nA man in skis pulls a load behind him.\na room with a computer monitor and a black cat on a chair\nA big giraffe up close looking at you.\nThe two filaments of matter have been separated from each other.\nA male tennis player engaged in a match.\nA bear is sitting in the grass with a cub.\nA small gray elephant standing on a grass covered field.\nA street sign in the city giving directions to several intercity areas. \nThere is a train that is driving on the tracks\nA cake topped with M&Ms sitting on a tray.\nA motorcycle parked next to street with little to no traffic.\nA man that is standing up holding a cellphone.\nZebra standing by itself in an open field by a tree. \nA child with a helmet on a motor bike.\na tall clock tower near a building near a tree \nA motorcycle sitting next to a sidewalk with a potted plant on it.\nA man and a woman dressed up by a park bench.\nThe small bathroom has an old bathtub in it.\nWoman in shades and cap sit on beach chair under an umbrella\nA finger pointing to a blemish on a green piece of fruit\na red double decker bus is seen coming up the street\nMan brushing his teeth and woman curling her hair\nA group of people on surfboards doing different things. \nA large horse stands outside of a barn and a silo.\nTwo guys on the ski slope while one holds his snow board behind his back. \nA kitchen counter top with a white bowl sitting next to another white bowl.\nA cat is sitting on a desk next to a computer.\na mattress with a maroon sheet inside a tent.\nBlack and white photograph of houses and a clock tower.\nA big brown cow with horns standing in a big grassy field\na spin brush tooth brush on the sink\nA train traveling through a rural country side covered in grass.\nA red bus parked next to a crowd of people.\nA baseball player poses on a baseball card.\nA huge group of scattered out sheep are in the field. \nChildren are playing soccer in a field of grass.\na bunch of motorcycles are parked together outside\nA man leaps up to hit the tennis ball during a match\nA small gray bird perched on a tree limb eating the fruit.\nA person with an umbrella is standing by a fountain.\nA catcher kneeling on the field throwing the baseball back to the pitcher. \nA beautiful young woman talking on a phone.\nMultiple images are seen showing forest scenes and a small cottage.\na woman in a red top holding something with a white and red background\nA body of water with boats floating on top of it.\nA gentleman standing in the vicinity of other men\nPulling out a white partition on a small device.\nA street sign on the side of a street in front of a building .\nA clean kitchen with a wall that has a blackboard\nA sailboat is sailing past a lighthouse on a brick pier.\na giraffe standing on grass crooks its neck \nA person working at an airport, outside of an airplane.\nA group of giraffe standing next to a tree.\nA baseball player standing on home plate with a bat in hand.\nA teddy bear wearing a green Starbucks apron with the text \"BRASIL\" on it.\nA pair of men with small mustaches dress as tennis players.\nA large white bird in the open water.\nFour airplanes  that are crop dusting over some land.\nA very pretty wooden board with a pizza on it.\nA cow standing in a grassy fields surrounded by shrubs\nTwo bulls who are walking on a street.\nA man using a pair of scissors to cut a pizza\nA white plate topped with cheesy pizza and toppings.\na bowl full of mixed vegetables and pieces\nLarge blue passenger bus parked in front of large building. \nA white and green bus driving down a street.\nA lot of animals by the beach together.\nA dog jumps to a fence to look at a horse. \nA chocolate cake with white frosting topped with chocolate cookies.\nthere is a male skateboarder doing a trick\nThree friends are playing frisbee golf in the woods.\nA crowd of people standing under a give way sign.\nA tree sitting next to a bench near a lake.\nthis is a restaurant with flowers on the bar\na train on a train track near many trees \nA plate with potaotes and vegetables and meats on a plate\nA small black dog on a leash next to a bike.\na white plate with many different food items \na balding male and three women and one is taking a photo\nA desk that has two computer and two laptops on it.\nBeautiful gray clouds with light cascading out of them.\nA small refrigerator with lots of food packed inside. \nA small apartment has some framed pictures and posters\nA group of men standing on the deck of ship next to three small boats filled with men.\nA man in black leading an all white horse\nThere is a bird perched on top of a sign with a body of water in the background.\nThis is the inside of someone's deejay station.\nA counter top with pizzas placed on top of it.\nPeople are camping outside with their bags and under an umbrella.\nA break room filled with tables and chairs.\nA cow and several people on the sidewalk next to a busy street.\na sandwich with grilled meat covered by salad greens\nA white horse drawing a carriage through a street.\nA man walking down a beach holding a surf board\nSix teens playing frisbee in a field of grass\nA man wearing shorts is running through the woods playing frisbee golf.\nA herd of zebra walking through a grassy field\nA zebra is next to fences standing on white ground.\nA chocolate donut with a hole in the middle and a partial hole beside it.\nA man walking next to an elephant near an umbrella.\nA very cute old looking suitcase with some writing on it.\nA man snowboard down the side of a snow covered slope.\nA desktop computer sitting on top of a desk.\nA person jumping up in the air on a surfboard.\nA red fire hydrant sitting on a slab of cement in a patch of grass.\nA street post with three different street signs on it\nRoad signs litter the side of a road.\nDog eating food off of a paper plate.\nA cat is sitting on the ground beside a wheel of a bicycle.\nthe girl is using her cell phone to take a selfie. \na oven is built into a counter in a kitchen\nA pick up truck has a camper on it\nThe grass next to the water with umbrellas. \nSomeone is on their motorcycle, in his gear. \na plastic toy of a teddy bear at home\nA bicyclist is riding across the street next to someone on a motorcycle. \nA white plate topped with a worm on slices of pizza.\nA man looking over his glasses with a tie and suspenders on. \nA swiss army knife with all of its accessories on display.\nA dog sits on a chair in front of a flower pot.\nA couple of women standing in the back of a car with an open trunk.\nThis work van has green graffiti sprayed on its side\na couple of horses pull a contraption \nA large brown bear standing next to a wire fence.\nA street sign above an orange detour sign.\nA man flying through the air while riding a skateboard.\nGroups of people standing under umbrellas next to the truck\nA black cat rest comfortably on a wooden chair next to a green plant.\nA cow on a small hill with surrounding mountains in the background.\nA man wearing a hat and necklace made of bananas.\nA photograph of a living room and small powder room.\nA plate of unusual food combinations including an egg on mashed potatoes mango and a chocolate on a plate. \nZoo visitors look on at an adult and baby giraffe.\nthree guys sitting down eating sandwiches and smiling\nA line of buses in a parking lot with people standing around.\nA woman is taking a picture of herself in a bathroom mirror.\nA piece of pizza is placed on a plate between a fork and a knife.\nA room with two tables sitting around a fire place.\nA cat laying next to a bike with a large tire.\nTwo sugar doughnuts with sprinkles and caramel topping.\nA giraffe grazing from tree with brick wall in background.\nA view of a close up of a computer.\na girl in a white dress and a big yellow animal\nA half a sandwich sitting on top of a table.\nA cat sitting on top of a shelf with a mouse box.\nSome chopped vegetables layed out on a pan\nA man jumping in the air on some skis.\nA herd of sheep walking across a road.\nA baby is looking at a book while sucking a pacifier.\nA man is brushing his teeth while a piece of tissue sticks out of his ear.\nGiraffes leaning down to scratch faces in their zoo enclosure\nA table topped with four slices of cake.\nA tall yellow double decker bus parked next to another bus.\nA young man is riding the giant waves on his board. \nPicture window of Vietnamese restaurant says closed. \ntwo different bears fight with each other behind a log\nA train traveling through a rural green countryside.\nA nest filled with baby birds crying for their mother.\nA white plate with a slice of cake and an orange wedge.\nThere is fish and broccoli and a casserole on the plate\nA batter waiting for a pitch to be thrown.\na girl is playing with a video game controller\nA person reaching out to pet a horse with hills and fields in the background.\nA single female rides her skateboard on a level surface beneath a huge palm tree.\nA couple of vases sitting in a window sill.\nTwo urinals sitting side by side in a restroom.\nA dog sitting on a grassy hillside by a path.\nA laptop computer and several books at a work station.\nThe inside look at machinery inside of a factory. \nA tennis player rushes to hit a tennis ball.\nA woman holding a umbrella next to a man holding a baby and several other people waiting to cross a street. \nA man walking an animal across a beach.\nA plate of food and a drink on a surface.\nA young boy standing in front of a computer keyboard.\nA red fire hydrant looms in front of a tall building.\ntwo dachshunds and a cat sleep on a bed\nA man on a tennis court holding a tennis racket in a active pose.\nAn oven and a range on a table\nThis skateboarder shows a degree of athletic ability.\nA group of people standing near a clock tower\nA partially eaten burrito in foil wrapping on a desk.\nThree beautiful women riding horses on a green field.\na girl sitting at a kitchen table in a home\nA group of people walking down a sidewalk next to a wagon of little children.\nA plate holds dinner including green beans and potatoes.\nA father and his two children standing on top of a lush green field.\nA bowl filled with fruit on a napkin.\nAn old brick building along side of a river\nThe station has no passengers waiting for the train.\nA man holding an orange slice in his mouth.\nA table topped with three trays filled with cakes and desserts.\nan elephant walking in a field near many trees\nA couple of bicycles sitting in a large garden.\nA street sign marking the intersection of Roberts and Cedar Streets\nA display in a doughnut shop filled with doughnuts.\nA rusty side car of a train that has been vandalized with artwork.\nThe young boy is doing tricks on his skateboard. \nA photo of a busy city with cranes and a train and bridge\nA herd of sheep in an open field.\nThe young woman is taking a selfie in the museum.\na man that is skiing across some snow field\nA black cat sitting in front of a mirror next to a picture frame.\nA baseball player playing baseball with a bat.\na group of people hang out on the side of the road, waiting for a ride\nA sign on Dunmore Court warns pet owners to keep their dogs off the median.\nA basket of oranges and a cup on a table.\nA horse walking through a grassy field while two cows eat hay. \nA horse drawn trolly on a track, the trolly is full of people.\nA small pizza topped with red peppers, green peppers, and onions. \nA messing living room with an old fashioned TV in the corner.\nFour people petting a brown cow with a bell around his neck. \nA woman looking at a polar bear through glass.\nA cat standing on an open oven door peering into the oven.\nA pair of scissors cutting a piece of string.\nA kid with a baseball glove in a field.\nA picture of a baseball game from just behind the left fielder.\nA group of people standing around tables next to a jet.\nA pile of pairs of different colored scissors sitting on a wooden floor.\nTwo men standing together watching a kite fly up in the sky.\nA horse and a pony trot in their gated field.\nA man holding a tennis racquet on top of a tennis court.\nA cat lays in the shade created by a pile of luggage.\nA woman sitting at a desk using a laptop.\nA man holding a white puppy and a red leash.\nA white dog sitting on red table next to metal object.\nA classic clock sits on a wooden table. \nSeveral sheep are grazing on grass outside in a fenced in area.\na beautiful boat is docked in a bay.\nA little girl standing in front of a refrigerator with her butt hanging out.\nA group of people at the beach with umbrellas\nA traffic light over a street with cars.\nA woman is walking her dog across the street.\nA man is surfing on a crashing wave.\nA man riding a snowboard down the side of a snow covered mountain.\nA woman and a man sitting on a couch next to each other.\nA snowy scene of trees and a road.\nA dog that is laying it's head on a pillow and the rest of it's body is under a blanket.\nTwo people playing a game of frisbee in a field.\na tray filled with assorted plates and bowls, most with veggies in it\nA cell phone and a lighter are are next to a keyboard.\nA cat is laying on the other side of a cactus.\na person riding skis in the middle of a snowy street\nPepperoni pizza with greens, being eaten with a fork and knife.\nA bathroom with a bathtub sitting next to a toilet.\nAdult surfer riding small breaking wave on open ocean.\nA row of motorcycles parked next to each other.\nA woman with glasses drinking a glass of wine.\nA giraffe is eating grass from the feeder\nTwo women talk at a beach rental kiosk.\nA person squatted on skis in the snow.\nMan holding two shirts with luggage and window\nWhy would anyone use a portable light to shine on a banana?\nA woman standing in front of a bathroom mirror next to a sink.\nA couple of brown and white cows standing on a  field of grass.\nA person sits on the road near their motorcycle.\na man on skies is coming down a hill\nA man wearing a t-shirt stands in the door way of a white bus.\nA person sitting on top of a bench with their arms spread out.\nSeveral people sitting around a table in a small room with a laptop, books and papers. \nA bent traffic light next to the side of a street.\nA new empty refrigerator in a clean kitchen\na hot dog on a plate next to two glasses.\nA boy leaning against a rail on his skateboard\nA man in apink shirt passing an old shop in a market\nBus traveling through a city in front of a clock tower.\nA beautiful woman holding a sword while wearing a tight white shirt.\nTwo vases with intricate paintings on them on a wooden bench.\nA red microwave on a tile kitchen counter.\nLarge oversized hot dog being held in tinfoil.\nA cat sits on a desk in front of a computer. \nA brown horse standing next to a woman in front of a house.\na tennis player reaching to hit a ball on a tennis court\nA man in a chair holding a Wii remote.\nA row of bamboo umbrellas sitting on top of a beach.\nA fisherman stands on the cold beach fishing.\nA brown and white cat is in a suitcase.\nA man holds a snowboard inside a building with snow while people hang out in the background.\nThere are four white pillows on the bed. \nA cook is seen in a open kitchen making donuts\nA hotel suite with balcony overlooking the scenery \nA small black and white dog with the wind blowing through it's hair.\nA crowd of people standing around a luggage carousel at an airport.\na close up of a child eating food \nthe children are running and playing soccer together\nA cat laying on to of a white and red chair.\nA shelving unit containing items next to a vegetable rack.\nA hipster emo woman sitting on luggage in the middle of a road.\na man taking a picture of prizes in a claw machine game\nOld cars are parked on the street in a city.\nan image of a woman sitting down on a couch with laptop\na large group of zebra on an African plain.\na couple of green signs above a red stop sign\nA brown horse standing on a dirt field.\nBuildings with large signs \"Park Here\" with rainy cement\nA couple of men standing around and riding bikes.\nTHERE IS A MOTORCYLCE WITH PEOPLE STANDING ON THE SIDE OF THE STREET \nCars and buildings line the urban streets of the past\nSever airplanes are parked on an airport runway.\nA man carrying a white surfboard across a beach.\nTHERE ARE PEOPLE THAT ARE ON THE SKIS WITH HIS DOG\nA man throws a Frisbee on a green lawn at dusk.\na gnarly Frisbee player laying out to make a catch \nA group of giraffe standing next to each other on a dirt field.\nA man is striking a tennis ball at a game\na guy doing tricks on a skateboard on a skateboard ramp covered in graffitti\nA man standing in a  kitchen preparing food.\nA transit bus sitting at one of its stops on the side of a street.\nA little boy is swinging a baseball bat at a ball.\nBaseball player in the middle of his swing with a crowd looking on. \nA black cat laying in the sun under a bench\na close up of a cat in an opened hand bag\nA  young man skateboarding on indoor wooden ramps.\nA large long train on a steel track near a barn.\nThere are several zebras standing close to each other.\nA young man riding a bike past a lake.\nA woman holding a game controller as her friend watches.\nA cat sleeping on top of an open laptop computer.\nA toilet has been turned on it's side out in a yard.\nA hot dog is on a plate with macaroni and cheese.\nA man is laying down on a bed with white sheets.\nA man on a surfboard, who is riding a wave.\nA narrow kitchen with a white stove top oven.\nA blending mixer sitting on a kitchen counter.\nA young man hits a tennis ball while wearing a helmet.\nMen in blue with hats are riding elephants.\nA minor league batter poised to swing at the ball.\nthere is a elephant that has a red cape or cloth on its back\nA man and a woman sitting next to each other on a table.\nA white plate topped with pancakes and a fork and knife.\na man holding a surf board at the beach\na green box some ads and a controller\nA boy wearing a helmet skateboards through water.\nA large cooked pizza on a dining table.\nA bench in the woods surrounded by leaves. \nmy mom must have cleaned up my room today.\nA person with a safety vest in front of a bus.\nThe sign is warning people not to feed the animals.\nA crowd of people walking down a street.\n A bathroom with a toilet, sink, counter and large mirror\nAn assortment of fresh fruit including banana, pears, and a banana.\nA dog in the grass next to a water dish.\nA store filled with lots of fresh produce on display.\nA breakfast plate with a waffle and fresh fruit.\nBlack and white photo of a cat surrounded by kitchen knives\nPeople in line in the street at an ice cream truck. \nA boat floating along a river next to small walk way.\nA welcome cake for someone on a green table of some sort.\nA plate topped with lots of different kinds of fruit.\nA small wooden table covered with delicious vegetables. \nA couple of white plates with sandwiches on top of them.\nA plate that has food on top of it with powdered sugar.\na boat with some people in it going down the river in front of some high rises \nAn apple tree filled with lots of apples \nA woman rides a bicycle on a road next to the median.\nA stuffed bear head and paw on a laptop computer.\nAn old photo of a girl reading the newspaper.\nA young woman underneath a clear bubble umbrella\nA car parked in a metered parking spot.\nA baby in plaid shirt eating a frosted cake.\nA bench that is on a hill covered in snow.\na man reaching into the refrigerator in a kitchen\nA microwave oven sitting between wooden shelves over a wall.\na man that is on a surfboard in the water\nA green bus with a red top traveling down a street.\nA stop sign with graffiti on it nailed to a pole. \na table with a bunch of vases, with one filled with flowers and another with sand\nA group of men standing around a table with pizza.\na couple of young kids are sitting together\nTwo dogs sitting at a dinner table enjoy food in bowls.\nThe little girl is reaching for a piece of cake.\nA plate of food that includes rice, meat and vegetables.\nA small aircraft parked on a grass field\nA little boy in the airport watching an airplane.\nA clock on a pole sitting next to tall buildings.\nWoman eating on park bench pigeons around her\nA sandwich in a paper container on top of a wooden table.\nA elephant that is standing up in the grass.\nA bus driving down a street in front of a motorcycle.\nOutside view of a cafe', and shot of old oven and fridge\nThe Big Ben clock tower towering over the city of London.\nA pan filled with broccoli and beef and oil.\na close up of a motorcycle parked near a building\nthe back end of a cow at a feeding station\nThere are glasses and pizzas on the table. \nKitchen appliance in use on wooden counter top in cooking area.\nA team of baseball players playing a game of baseball.\nThe colorfully dressed woman is skiing through the snow.\nA black and white image of a clock\nA mom and her baby are laying on the couch.\nA man on a horse behind two cows in a field.\nA group of horses tied up to post under a big green tree.\nA herd of sheep standing on top of a lush green field grazing.\na bathroom view of a tiolet and sink \nA woman takes a dish out of the oven proudly. \nA train with an advertisement for the website of the Dutch passenger railway company Nederlanse Spoorwegen.\nA picture of a lot of motorcycles together.\nA young man holds up a tennis racket.\nFruit in plastic cups and toast and food on a plastic tray.\nA man and a child standing on a tennis court.\na tower with a clock on top with a sky background \nA black dog holding a red and green frisbee in it's mouth.\nSmall woman with a cooking apron around her waste reaching into the oven and pulling out a plate of food.\nA display case with a single doughnut on each tray\nA dead bird being dangled in front of a cat\nA modest modern looking kitchen for an apartment\nA child and an older female in the bathroom with a toothbrush.\nA person that is taking a picture of a painting.\nA blond woman hold a red Wii controller. \nA chair and table with two monitor screens\nA group of people riding on bikes down a street.\nWhite sheep standing in front of a colorful wall in a building. \nA black and gold street light in the middle of the street\nVase holding some type of flower with large pink bloom\nA woman sitting at a table with a group of people.\nA  man and woman in a vineyard with bottles and glasses around them.\nA meat wrapped, pineapple and banana on a table\nA couple of cops riding on the back of brown horses.\nA group of people looking at an elephant.\nTwo men dressed as confederate soldiers during a reenactment. \nTwo cats are laying in the chair sleeping.\nA woman sitting next to a man next to luggage.\na boy and a girl are playing a video game\nA white toilet bowl with a cleaner thing in it\nA display window with glasses that look like cup cakes.\nA room with blue walls and a white sink and door.\nA very cloudy day while a large truck passes. \nThe man walks through a snow trail wearing skis.\nTwo elephants in a dry lot contained by fencing.\nA group of three chefs preparing food in a kitchen.\nA tiger cat sitting on a floor next to a piece of string.\nA table with different vases next to a lake.\nVarious exotic fruits adorn a wooden surface. \nThe snowboarder is laying on the snow with his board in the snow.\nA person stands under an umbrella looking out over a waterway. \nA box full of matching, ridged donuts with glaze.\nThe man is playing tennis on the court. \nA row of wooden cages with white sheets over them.\nA little boy sitting on top of a skateboard.\nA motorcycle parked on a lush green field.\nA public bus stopping on a street corner\nA mama elephant standing next to a baby elephant in a cage at a zoo.\nA dining room with some plants are seen.\nA cat sitting on top of a window sill over a sink.\nA man standing on a tennis court holding a racquet.\nPeople that are on the beach by some horses.\nFast food displayed on a table with sandwich and soup\nA wooden shelf filled with lots of glass pots and plates.\nA large pot with a bunch of white and yellow flowers inside of it.\nA plate topped with a sandwich covered in seeds.\na close up of a person holding a cell phone\nA man with glasses that is holding a bunch of frisbees.\nBlack and white photograph of a person windsurfing.\nA horse race where the red and white leader is in the lead.\nA wooden bench surrounded by weeds has a dedication plaque\nA sandwich sitting on top of a pile of fries.\nA wooden desk with a laptop computer and a desktop computer that are both open.\nBABY IN BLUE JEAN OVERALLS HOLDING A CELL PHONE\nA series of photographs depicting bathroom before and after minor changes.\nA motorcycle rally on the street with many spectators.\nA woman walking past a shop filled with merchandise.\na teddy bear laying on a turned down hotel bed with chocolates\nA man riding a skateboard up the side of a ramp.\nthere are people sitting on the ground painting the street\nA black dog laying on top of a rug on a hardwood floor.\na person riding a skate board at a skate park\na man that is skiing down a snowy field\nAn elephant standing in the dry grass at the edge of water.\nA white sink sits on a beige vanity in this uninspiring bathroom. \nA double deck tour bus at a stop with passengers.\nAn airplane is doing tricks and emitting smoke.\nA brown dog carrying a black frisbee in its mouth\na cake with some figures made out of frosting on it \nClocks on a the tower of an old building.\nA one way sign that is on a pole.\nA white meta bench next to a patch of grass.\nThe train is for decoration out in the front of the building. \nthere are two stuffed animals on a wooden bench\na close up of a street sign near a building\nThe baseball batter checks his stance by pointing his bat at the plate. \nA baby elephant and an adult elephant in sandy area.\nA yellow taxi cab sitting below tall buildings.\nAn orange road construction sign near a curve in the road.\nTwo birds that are standing on rocks near the water.\nA living room that has a bunch of different couches.\nA group of men on bikes hitching a ride on the back of a bus.\na man is playing tennis on a court\nA woman with a badly bruised face holding a stuffed animal.\nA bird standing on the shore of the beach\nBread and fruit are on a table with a knife and fork.\nA clock is situated atop a colorful tower.\na stuffed teddy bear in a pink dress holding a stuffed bouquet of roses\nPeople waiting to cross a street at a traffic light.\nsome black and white train cars and some train tracks \na man laying on a pile of snow next to a snowboard inside of a building.\nA group of chefs preparing food inside of a kitchen.\nA herd of sheep walking along the side of a road.\na close up of a basket of fruit on a bike \nA cat curled up in a sunny spot on a table sleeping.\nA pizza sitting on top of a white plate next to a glass of beer.\nA woman is walking with a cat umbrella.\nA white egg-shaped bathtub in a decorative bathroom.\nA toilet that has three sea shells on top.\nA pair of ski emergency responders transporting an injured skier.\nA group of people standing around a blue building.\nA large older man sitting on a wooden bench in a park.\nthere is a cupcake and a piece o cake on a plate\nTwo baby elephants are playing at the feet of two adult elephants. \nThree kids having fun on their toy cell phones. \nA young kid is holding a box of pizza. \nA close up of a tooth brush and a blurred background of a man in a blue jacket facing the opposite direction. \nA baked sandwich, french fries, coleslaw, and silverware. \nA woman petting a giraffe inside of a building.\nA square piece of pizza on top of a plate.\nA sky filled with airplanes flying underneath the clouds.\nThere are people with skis standing around the snow.\nPeople enjoying a meal and wine under white umbrellas.\nA red plastic basket with two hot dogs on it.\nA small herd of zebras enjoy a drink of water from the river. \nA young lad swings his Wilson tennis racquet.\na little vase of flowers that are yellow in a blue vase\nA platter topped with sliced vegetables with ranch dip in the center.\nA baseball player swinging at the pitch from the mound.\nA city bus crosses an intersection of a crowded neighborhood.\nA young girl with glasses appears to be waiting with luggage at the baggage center.\nA white truck driving past a yellow traffic light.\nA yellow ten speed bike parked on a bridge.\nA street sign on the street near a building.\nPeople swimming and reclining in chairs under umbrellas on a beach.\nA large modern bathroom features an oversize tub and walk-in shower.\nA gray and white puppy on a leash atop a skateboard.\nA slender, yellow vase containing many purple flowers.\nA little girl in a white tennis dress holds up a yellow racket.\nA group of people standing on a hill tossing a boomarang\nA man stands next to a few pieces of luggage. \nLarge commercial cargo plane sits on tarmac next to radar equipment.\nA bear walking away towards the tall fence. \nA batter in the batter's box next to the catcher and umpire. \na wood floored living room with a modern couch and large windows\nSingle boat near the shore of an ocean.\nA train is making its way down the tracks. \nMan in grey t-shirt swinging his tennis racket at a ball. \nA train yard with carts and tanks on two tracks.\nA toilet is shown in a bare room.\nYoung people open up many pizza boxes lined up on tables.\nA person on a surfboard in the water.\nTwo elephants looking at each other aggressively while near a body of water, \nA group of people standing next to each other on a field.\nA RED BIRD PERCHED ON A BRANCH IN A TREE.\nA modern digital clock in a town square.\nTrain with lights on, multiple track area, near over/under pass.\nA bird stands on a rock, gazing out over the water.\nA dog standing on the back of a human being\nA closeup of pink and yellow fruit in a tree.\na large building with a large clock on the front\nA man in yellow shirt and black shorts playing a game of tennis.\na close up ofa small stuffed animal on the grill of a car\nA lunch salad in a yellow bowl made out of fruit, vegetables, and meats with chopsticks. \na young baseball player holding a bat \na person carrying their surfboard while walking along a beach\nA bathroom contains a shower, a sink, and a mirror.\na baseball field with a pitcher hurling a baseball to the plate\nA man holding a baseball bat over a field.\nA meal on an airplane of cereal, milk, and fruit.\na male is riding an elephant next to some water\na man attemping to tie his tie \nTwo police officers on horses in front of a building.\nChild with goggles and cat and baseball with wood background\nA group of pigeons sitting on a park bench.\nA man on a skateboard performs a trick\nA man is skate boarding down a path and a dog is running by his side.\nA large tall tower with a clock on the top.\nA surfboard is recycled into a unique planter.\nA kitchen counter with plates of beans and hot dogs.\nA stuffed bear is mounted on a metal pole\na bathroom with a white sink next to a white bath tub.\nAdults playing in living room using remote controllers.\nThe bathroom is clean for the guests to use. \nA man sits with his cat while he plays on his Wii.\nA little girl riding a pony and man holding the pony's reins. \nA small cluster of bananas growing near a fence\nA hospital bed that is in a hospital.\nA car and a bus are merging into traffic together\nThere is an image of two people playing wii.\nThree men standing on a lawn holding paper plates and beer.\nA woman holding up three apples in one hand. \nCat laying in luggage on bed with white walls\nSome meat and vegetables are arranged on a white plate.\nTwo boys in a living room playing a game with a Nintendo Wii controller.\nA flock of pink flamingos stand with their heads resting on their backs.\nA man in a market surrounded by goods for sale\nAn elephant eats leaves off of a tree.\nfive people riding horses on a dirt road trees and bushes\nA colorful clock tower sitting int he middle of a parking lot.\nThe baseball player looks ready to hit the ball.\nA person riding a paddle board with their little dog.\na man on a surfboard in the middle of a water tunnel\nA man with camera watching a group of giraffes\nA duck floating on top of a body of water.\nA neat living room in a wood cabin.\nA couple of young men playing a game of frisbee.\ntwo children on a stool brushing their teeth\nYoung lady, wearing a black dress, brushing her teeth.\nA box of cookies sits by a wedding cake decorated with berries.\nMan and woman texting on cell phones. \nA group of people standing around a table with food on top of it.\nA seagull sitting on the pier with the light house behind him.\nA couch and table sits outside with fake sheep.\nAn apple computer is on a table with supplies.\nA brown teddy bear sitting in a chair wearing a blue shirt and red hat.\nA person that is on the front of a can.\nA man rides a horse through a creek.\nA group of cages stacked on top of each other near a body of water.\nA paper plate with coleslaw and a half sandwich with red onions and a fork. \na couple of birds are standing on a branch\nA small computer screen opened in the room. \nThree sandwhiches with toppings on them and a cucumber\nA cat is laying in an empty suitcase with a fluffy tail hanging over.\nA rail yard may not be the most attractive place to skateboard.\nA man swinging a baseball bat on top of a field.\nA computer keyboard sitting on top of a desk.\nA plate of two slices of pizza and a cup of juice.\nA dog is laying down on a couch.\nThe young girl is learning to ride her skateboard outside. \nA couple of hot dogs that are next to a stuffed dinosaur.\nA passenger jetliner sitting on top of a tarmac at an airport.\nA hand is lifting up the top bread of a sub sandwich.\na balloon elephant sits in the middle of a park area \nA woman tennis player hitting a tennis ball.\nA livestock competition where sheep are being judged.\nA cat sitting in a living room watching an animated cat on television.\nA small bathroom is decorated in pretty colors.\nA man sitting on a couch with a plate of food. \nA table with a plate of food and a urinal basin\nA forest with many tall trees all around.\na group of green luggage sitting together in a living room \nA group of men in uniform standing next to each other.\ntwo elephants in a pen being observed by people \nA giraffe standing next to a tall tree.\nA group of vintage metal trinkets with tags.\nI really cant see this image very well.\nBoys are standing in a lot holding tennis rackets.\na black and white photo of a building and two people with an umbrella\na woman in the kitchen cooking some food\nA baseball player standing next to home plate.\nA zebra that is bending it's neck backwards to reach it's tail.\nWhite cow standing alone on a busy city street. \nA home made pizza and some wine on a table \nA cat taking a nap on top of a keyboard.\nA young man is skateboarding on a low wall.\nA man on a tennis court playing tennis\n2 men sit on the couch, video game controllers in hands.\nA tiger cat sitting in a bathroom sink next to a tub.\nMetallic looking container sitting in front of a brick wall. \nA red street sign next to a no parking sign.\nA woman holding a sheep by its front legs.\nOffice scene showing frosted glass cubicles and a computer screen on.\nA weathered sign saying \"Guadalajara\" with an arrow pointing to the left. \nA big bunch of bananas will be growing were the bud is.\nA CLEAN AND COLORFUL BATHROOM WITH A LARGE MIRROR\nTwo people sitting in chairs playing a video game.\nA girl in a dress eating a hotdog with rack of clothes in the background.\nTwo men play a game with Wii remotes.\nA kitchen counter top with many different appliances.\nA close up of a full cooked pizza pie.\nA red, black and yellow train coming down the tracks by a body of water. \na brown teddy bear sitting on a huge box\na black motorcycle parked carrying a folding bicycle\nA group of men on a field playing baseball.\nA cell phone and a banana on a rock.\nA dog walking toward the camera behind a pair of shoes near a couch.\nMan holding a skate board in a park\nA black cat is curled up and sleeping.\nTwo teenagers on riding skateboards down at a park.\ntwo people standing near a pole outside of a building \nA large brown bear swimming in a river.\nA traffic light and a large train on a track.\ntwo birds flying over some water and their reflection\nA white and red traffic sign on top of a metal pole.\nA truck towing large equipment on its flatbed down a road.\nA person skiing and somersaulting on snow clad mountains.\nA small kitten is lying on the seat of a large motorcycle.\nA elephant laying on the ground in the grass.\nA colorful train traveling past a wooded area.\nA woman sharing a meal of cheese pizza with a friend at a cafe\nA fancy motorcycle parked on a red carpet\nThe woman is using a laptop that sits on a stack of other laptops.\nthere are many young boys playing soccer together\na rainbow umbrella some bicycles a fence and some grass\nA woman pointing at a laptop sitting on the floor with a child.\nthree giraffes some brown and green grass some bushes and trees\na tennis player swinging a racket to hit a ball\na room with balloons, flowers and many pictures decorating the walls\nAdult woman taking self portrait using camera looking at mirror.\nA train engine carrying carts down a track.\nA person on a motorcycle looks at a sign.\nA dog is standing on a miniature motorcycle.\nA young man in a red shirt is throwing a frisbee.\nA laptop sitting on a cluttered office desk. \nA woman with a teddy bear sitting at a booth outside.\nA man riding on the back of a brown horse.\nMan holding this frisbee in the park about throwing it\nPeople are walking around at a technology convention.\nThree giraffes standing amongst a copse of trees.\nA dog laying on the ground with a pink frisbee in it's mouth.\nA very nice living room that is very clean.\nThere are two men playing the wii video game system\nA man that is sitting at a keyboard.\nThe man is posing for a picture with his snowboard.\nA bus passes several people riding their bicycles.\nA group of people are taking surfing lessons.\nA man sitting on top of a boat with lots of supplies.\nA white plate topped with chicken friend pork.\nA man is talking to a woman behind a podium.\nA baseball player throwing a pitch wearing a glove.\nTwo tennis players consult with the referee during a tennis match. \nA small bathroom with a dark vanity and tiled floor.\nA plate of cottage cheese pizza and another with two pepperoni slices sitting on the table\nA boy in blue wetsuit on a boogie board.\nA pink flower and some other small flowers in a decorative mug\nThere is a red fire hydrant in the middle of a sidewalk\na parking meter with some graffiti on it \nBoy on a skateboard in a skateboard park. \nthere are three oranges next to  a paper towel on the counter\nChildren enjoying pizza out with friends at a restaurant\nA person standing next to a couple of motor bikes.\nA large polar bear on a toy ice pond in a zoo.\nA living room is set up with cool walls, bright carpet and a dated entertainment center.\nA man laying on a boogie board is riding a wave.\nA stop sign is leaning to its side at an intersection.\nPink donut with white sprinkles on the top of it. \na group of people stand around in a field with a giant bear \nA man loading a truck with two pieces of luggage.\na cargo plane being loaded by a scissor jack truck\nA couple of people holding up cell phones side by side.\nthere is a male skier going down a hill\nBlack and white photograph of a person holding a surfboard by water.\nA woman riding skis down a snow covered slope.\na washroom with a toilet basin, sink, sanitizers and bath tub\nthe plate has a lite candle and it says happy birthday on it\nA fighter is jet flying through the clouds\nA goat in a field with a dog running beside it.\nAn elephant sticks his trunk out the back window of a truck. \nA building that has a rainbow above it.\na black and white clock on a pole a building and a flag\nA white poster board with scissors and pieces of cloth.\nThe skateboarder is attempting a trick on the ramp.\na white bird flies low over the water\nA bull dog laying in the shade beneath a truck.\nA man with luggage on wheels standing next to a white van.\nA  person holding a Jesus sign in a  city.\nA young boy sitting on top of a cow statue.\nA white toilet and a sink in a room.\nA clock mounted on the side of a church tower.\nA photo of a cat in black and white. The person taking the picture is visible in the mirror.\nA blue vase holding a bunch of white and yellow flowers.\nA man standing in front of a stove cooking.\nA room in a private house for loosening up and institutionalizing.  \nA yellow train comes to the cross roads of a train track.\nTwo people are standing in a hallway while one person checks their phone.\nTwo small dogs on a sidewalk near a bicycle.\nA couple of animals that are walking around the street.\ntwo red white purple and blue jets and buildings \nTwo men are walking along the beach with surfboards.\nA small black dog watching a flat screen TV.\nThe man has three grills outside to cook food.\nthere is a yellow and green train coming up the tracks\na brown couch a coffee table a lamp window and television set\nA large dog sitting in a living room in front of a fireplace.\nA man and two women sitting on a tan ledge.\nA couple of ducks standing on the side of a road.\nA man standing on surf board holding a paddle in a harbor.\nSomeone putting sauce on a taco while wearing gloves\nA kitchen with lots of bottles and glasses on top of it.\nA blue bus driving down a curvy street.\nAthlete ready for play during outdoor tennis match.\nA school bus that is stopped and letting children off the bus.\nA cut in half sandwich on a plate with fries.\na train carries people over wooden tracks in a jungle\na fire hydrant on a sidewalk near a street\na lake that has all kinds of boats on it\nthere is a barber cutting a small boys hair\nA cat sitting on top of a green car.\nA large green airplane has it's landing gear down.\nA locomotive train sitting on display at a museum.\nA man riding a snowboard across a snow covered slope.\nA wooden park bench between two floral arrangements.\nSkateboarder and his shadow, performing the same trick\nA motorcycle sits on a sidewalk near a building\nA cake with a golf scene decorated on it. \nA white toilet sitting next to a white bath tub.\nTwo railroad trains standing side by side on the tracks.\nA neon sign with a clock on top of a building.\nAn old van has been given a mirrored finish\nThe train is passing by the open field.\nA parrot is eating some food from his own claw\nThe view of an entertainment center and desk in a hotel room.\nA man carrying his snow board beneath a giant snow covered mountain.\nThe wildlife is grazing on the tall vegetation.\nA beautiful woman with red hair sitting at a table.\na small boat in a body of water \nAn old train sits alone on the train tracks.\nThree giraffes thinking their head over a wooden fence. \nA man standing in a kitchen ironing his clothes while cooking food.\nA large crowd of people huddling under umbrellas.\nBicycle owned by the New World Tourist Company\nTwo men playing tennis in front of a large crowd of people.\nA collection of photos of an old motorcycle and parts.\nA bowl of beef stew and a spoon on a cloth napkin.\nA red tray topped with three chili cheese and bacon covered hot dogs.\nA woman with glasses eating a piece of cake.\nA woman sitting on a unique chair beside a vase. \nThe woman wearing skis and a helmet is standing with skis and ski poles. \nan old black and white photo of a tennis player\nA black cat laying under a green chair.\nA herd of zebra standing on top of a dirt field.\na man with a backpack sitting in front of a semi\nA group of horse mounted police standing in front of a crowd.\nA women in a sunhat and sunglasses posing beside a bilingual English-Arabic stop sign.\nA young man holding a tennis racquet on top of a tennis court.\nA woman is playing tennis with her children.\nA cat lying down in a sink in a bathroom.\nA bed is sitting on a wooden frame.\nA pizza sitting on top of a black plate.\nA fork cutting into a piece of cake\nA metal wok bowl filled with diced fresh vegetables.\nA small group of people standing outside of a train next to  small shops selling fruit.\nA black and white image of a huge heard of sheep. \nthere is a small dog sitting on the floor playing with a toy\na plane flying high above the earth \nA man pats a cat that is standing in his lap.\nA small flock of grazing sheep in a very large grassland.\nThere are some benches arranged together in an open park\nPeople using their laptops in the backseat of a car.\nA para-sailor on the water one sunny day.\nAn oven with some pots of cooking food items.\nA bus loading and unloading passengers in front of a Pizza Hut\nA couple of horses standing and laying on top of a lush green hillside.\nA pink colored bedroom with very colorful bedding.\nA happy man on a bus with other passangers.\nA bird is standing on a rock by the water.\nA man puts neck ties up on a display.\nthe teddy bear is holding a hockey stick \nThere are black and white poles along a street corner\na person giving a child a tennis racket \nA sign for the Public Car Park entrance\nA bathroom sink with a toothbrush, soap dispenser and mirror.\nA traffic sign is displayed on a freeway.\nA black and white photograph of a woman taking care of a child on a park bench.\nThe cars are traveling in opposite directions down the two way road.\nA metal tray filled with fried donuts and metal tongs.\nA small ferry approaching a pier with people waiting in it. \nAn adorable brown and white dog sitting between two legs.\nA man wearing a blue shirt catching a white frisbee.\na sink in a bathroom with a shaver and personal hygeine items on the counter top\nA group of skiers are outdoors playing in the snow. \nA person is snow skiing next to a tree.\nBoats docked at a harbor facing the city.\nPeople walking around the park with a few horses\nPeople at the beach surfing on a sunny day.\nCar parked in the parking lot next to the pier\nA boy holding a tennis racquet standing on a court.\nA computer desk with a computer turned on.\nA no left turn sign hanging from the side of a wooden pole.\nA little boy wearing a red shirt holding a white frisbee.\nThree people are sitting on a bench looking over a pier.\nA dilapidated room with a plaster chunked floor is equipped with debris ridden chairs and a tiny vintage refrigerator.\nan old man with a white dog on a leash and a bench\nA double decker bus drives down a street lined with buildings. \nsome kids wearing skiis while in an area with no snow \nA snow boarder who has fallen on a snowy hill.  \nA couple of umbrellas on top of a sandy beach.\nMan with hat and umbrella holding object in left hand against modern background.\nan elephant standing next to some other smaller animals in a field of grass\nA tennis ball and a woman with a racket on a tennis court.\nA bird perched on the back of a white bench.\nA bathroom sink below a well lit mirror.\nLady working in a kitchen while man sits at table watching TV.\nLone ice boat sailing near a dock on wide frozen water.\nA brown bear cub and a raccoon eating berries in the woods.\nPair of giraffes standing next to a wooden pole barrier fence. \nThe head and neck of a giraffe with bare tree branches behind it.\nTwo white plates sit on the edge of a table holding pizza slices with fried eggs on them.\nA plate of broccoli covered in cheeto's with a utensil on it.\nA large clock is mounted to the side of a building.\nA young girl with a piece of pizza on a white plate\nA tennis players concentrates as he prepares to smack the ball.\nA train riding down the tracks beside a sidewalk.\nA man flying a fan plane neck to flock of ducks.\na group of people standing in the park playing with a frisbee\nA parking meter decorated with different colors of paper. \nA group of young women getting food from a table.\nTwo men enjoy glasses of beer at a gathering.\nTwo brown bears sitting on top of a black and white checkered bed.\nA woman eating vegetables in front of a stove.\nA larger passenger jet flying through a blue sky.\nA cat is sleeping on a computer desk.\nA red stop sign and a person on a street.\nGroup park benches light up any Park. \na hot dog stand in a city with people\nA kitchen with lots of dishes and appliances next to cooking utensils.\nA zebra is in a shady tree lined enclosure.\nthis bathroom has a black table and a white animal house\nTwo black bear cubs wrestling around with each other.\nThe woman is tying her shoe on a bench next to a parked bicycle.\nA woman walking down a street next to a blurry man.\na short stack of pancakes sitting on a black plate \nA plain kitchen with white and wood decor.\nA knife and a pizza cut into slices on the plate\nA group of three dummy heads covered in hats.\nA dog and a girl asleep together on a sofa.\nA cat sitting on top of a cat post in a living room.\nA bathroom with a toilet, shower and an hanging chain to flush the toilet. \nA large vase filled with white roses sitting on a table next to a mirror.\nTwo young men in the sunlight competing for possession of a frisbee.\nA dog being washed in a tub, with a sad look on its face.\nA small wooden cutting board and knife with a cut apple.\nA small walkway with a microwave and fridge and a door\nA group of brief cases are piled up on the sidewalks.\nMessy bed next to bed with clothes on it in bright room.\nA skier standing at the top of a ski slope.\nThree horses eat grass on a pasture and drink from a water trough.\nA long table of bananas is passed by runners.  \nCars are following a truck down a residential street.  \nA man standing next to a dog on the ground.\na young man attempting to jump down some steps on a skateboard\nA woman talking on a cell phone near a wedding dress.\na ups truck on a city street near trees \nA group of people hanging out together with skateboards.\na man that is standing by some bags\nA person jumping over a skateboard while doing a trick.\nA black and white cat sitting on top of a wooden chair.\nA group of people who are standing together.\nTwo horse drawn wagons in a dusty field.\nA stop sign above other signs in front of a house.\nA kitchen sink sitting inside of a white counter.\nThe two zebras are eating grass on the plain.\nA group of young men standing around an open box of pizza.\nSeveral goats wearing bell collars standing in a field.\na sign on a fence with trees on the other side\nA tent that is in some grass with a table.\nA table with plates of food that have been served.\nA sheepdog runs around a herd of cows in a fenced-in field.\nA very large pizza on a wooden table .\nA group of people walking down a mountain road.\nA counter filled with fried donuts line up in rows.\nA passenger train crossing a bridge by the beach\nTwo giraffe standing next to a tree covered hillside.\nA lady in a black wet suit carrying a surfboard.\na couple of bananas and some other fruit\nThe pair of shoes is on the bathroom floor near the cabinet. \nA hand adding a cherry to some small tarts.\nThe jet is about ready to take off from the runway. \nSome old-time ovens sit on the grass at an outdoor market.\nA airplane that is sitting on a runway terminal.\nA white horse running next to a brown horse.\nA tall brick building glimmering in the sunlight.\nA woman walking through a forest holding a blue umbrella.\na double deckered bus on a city street\nGroup of chocolate covered strawberries on square plate.\nA dog and a couple sitting on a wood bench.\nA train coming on the tracks  on a sunny day \nYoung boy sitting on top of a briefcase\nA man with a slice of pizza in his mouth.\nA stoplight in a city with trees in background\nA person on skis skiing down a mountain.\nTo chili hot dogs and fries sitting on top of a white plate. \nA double level bus on a street driving through a construction area.\nMany small stuffed teddy bears have hearts on their feet.\nA woman opening up the refrigerator looking for something.\nDude grinding on the edge of the ramp with his skateboard\na trio of giraffes running through golden grass\nTwo large concrete trucks parked near a large building.\nAn assortment of flying objects including kites and airplanes hung inside a building.\nA couple of girls are standing in a kitchen\nA pretty bird is sitting on a tree branch.\nSeveral toy animals and trees on fake grass.\nA living room with large open windows and blue carpet.\nThree dogs of different colors laying on top of the sofa. \nA couple of tennis players pose for the camera.\nLarge ornate white and gold clock on face of grid wall. \na lady observing a woman carrying two large bags and a man doing karate\nA player running the bases in a baseball game.\nA young boy holding his hand out to a giraffe sticking it's tongue out.\nBlue and grey fighter jet flying in a clear blue sky.\nA snowboarder is sliding quickly along a snowy hill.\na bike sitting in front of colorful signs \nPeople in a horse drawn buggy on a city street.\nHot dogs on a portable grill at the beach\nA group of women sitting on the floor eating food.\nA round picture of a train station with a tall building across the street.\na kid lays on a surf board while in the ocean \nA piece of metal sitting on top of a grass covered field.\na public transit bus parked with its doors open\nA snowboarder is airborne grabbing is board. \nA display case displays various types of deserts.\nA person riding skis down the side of a snow covered slope.\na bear in a shallow body of water near grass\nA series of photos showing different restroom items.\nThe train on some railroad tracks next to a platform.\nA man sitting on a set of steps while scratching his ear. \nGiraffe walking around a grassy field under a cloudy sky.\nA red and white boat floating along a river.\nA baby sitting on top of a surf board on the beach. \nTwo zebras grazing on an open field while the third watches\nA man and a woman holding stuffed teddy bears near the ocean.\nAn alarm clock sitting next to a window on a black table.\nA bus at a traffic intersection in a city. \nThis couple is playing wrestling on their Wii. \nthere is a zebra that is seen standing next to a tree\nVibrant photo of a train sitting at a train station\nA room with a bed, dresser, mirror, and rocking chair.\nA famers market filled with lots of fresh produce.\nA bus driving down a street next to a car.\nA girl checks her list while standing with her luggage.\nPerson in restaurant with flooring and blinds with tables\nA beautiful woman laying around a -bed with a neck tattoo.\nA cat standing in front of a TV looking at an image of a mouse on it's screen.\nWedding couple cuts cake in front of wedding party\nA herd of wild elephants walking along a marshland.\nA batter is swinging at a ball while a catcher squats behind him.\nA parking voucher machine on a snow-covered sidewalk.\nA pizza with various toppings is pictured uncooked.\na red and white building windows and trees and clouds\nA white sink and toilet in a small bathroom.\nBlender with portions of its contents spilled around it. \nthere is a yellow motorcycle that is parked on the street\nA red-shirted skater doing tricks in a skate park.\ntwo people in a building one is talking on a cell phone.\nA herd of sheep standing on a dry grass field behind a white fence.\na home made stop sign in the middle of nowhere\nA person standing on a surfboard in the water.\na close up ofa clock with statues of people \nA colorful kite flying over a rocky hill.\nA man in a suit is walking with a woman carrying an umbrella.\nTwo green and yellow trains parked near a train station.\nA bench has been built next to an old stone building. \nA man and woman in western clothing standing in front of a trailer.\nan elephant is carrying some plants in its tusk\nA young man is working behind a counter. \nA person riding a skateboard down a road.\nA man riding a boat on top of a swimming pool.\nA man sits in front of an elevated pizza.\na pepperoni pizza on a white platter and a person\nA man flying through the air while riding a snowboard.\na person is walking with a surfboard along the beach\nA giraffe is crossing the road by some shrubbery.\nA group of young men playing a game of baseball.\nA view of a table with a bunch of cakes and tea on it.\nA kid eating a chili cheese dog while wearing sunglasses.\nA girl is hitting the tennis ball during a match.\nA b=very large robust giraffe eating leaves from trees\nA human a doing something right now that is full. \na blurry photo of a yellow fire hydrant\nA small brown horse standing  on a hilltop\na dog that's been playing in the water\nA man falling off a surfboard while riding a wave.\nA table filled with pizzas and sliced veggies.\nA white sink sitting under a mirror next to a toilet.\nthree big elephants walking across a wide river\nThe meat and broccoli on the plate is covered with steak sauce. \nA couple of brown elephants standing next to each other.\nThis is a room full of laptop computers.\nA person sitting on a bed wearing a hat, tie, shirt and stockings.\nA person is riding his motorcycle on the dirt road.\nA female Tennis player is trying to take her best hit. \nThe red fire hydrant is next to a caution partition.\nA cutting board with slices of fruit on top of it.\nSome prize items one might win in a contest or competition.\nA brown and white horse standing on top of a beach.\nThree guys stand with their skateboards and there is a logo at the bottom.\nA kitchen filled with plants and lots of clutter.\nA couple of women and one man kneeling down before two horses.\nA large clock tower attached to a church next to a rocky mountain.\nA group of people on motorcycles waiting at a traffic light\nA vase filled with flowers sitting on top of a window sill.\na umbrella that has some candles around it\nA wall mounted golden clock on the side of a building.\nMunching in the grass is a daily habit.\nA plate topped with waffles, bacon and banana slices.\nA simple kitchen with several cabinets and a fridge.\nA small closed toilet in a cramped space.\nA man riding a bicycle down a sidewalk.\nA man on a surf board rides a wave.\nThere are vases of flowers behind a large window.\nA double sized transit bus followed by a double deck bus.\nA white glass vase filled with flowers on top of a table.\nA man writing in a notebook with several partially filled wineglasses in front of him.\nA man is skiing and hiking in the snow. \nA plane sitting on top of an airport tarmac.\nAn orange billboard truck driving down a street in front of a crowd of people.\nA bird is flying next to a ship in the ocean.\nTwo plates of food sitting on the table \nA woman seated near buckets and baskets of oranges.\nA kitchen with lots of metal appliances and a large metal table.\nA fruit smoothie is on display on a plate with two strawberries for garnish.\nA picture of many brick building and a large sign outside.\nKite surfer in the air on top of a red board. \nA man helping another man tie his tie on his suit. \nA tall wooden pole with a Mcdonald's sign posted to it.\nScience project to operate a red, blue and green light\nWoman holding umbrella walking on paved roadway next to wall.\nDoors open to the train to let people board and unboard\nan image of a group of policeman on motorcylces\nsome street signs blocking off part of a road \nA pizza topped with lots of toppings on a checkered table cloth.\nA bathroom with a bath tub, toilet and different designed light beige tile.\nThere is a piece of pie on a patterned plate.\nA person riding skis down a snow covered slope.\nA bunch of toilets sit on display with green tags.\nThese red and yellow flowers are in a white vase\nFour oriental men playing a Wii video game system.\nA man and woman riding on the back of a motorcycle.\nMan selling fruits and vegetables from a push cart.\nA woman standing in front of a box handing a woman a bag of food.\nA cutting tray with some lemons and a knife.\nA group of sheep in grassy area with tree in the background.\nA persons arm reaching over a table filled with food.\nA pitcher on the mound prepares to throw the ball.\nA man pulling his pants up on a tennis court.\nA group of school children pose for a class picture.\nA person laying on an inflatable mattress with two sleeping bags.\nSide by side beds displayed in brightly lit room.\nTwo men playing frisbee on teams at a public park.\nA series of different bridges over a large body of water.\nA woman holding a dog close to a group of people with skiing gear \nA tall giraffe standing on a rock on top of a hillside.\nA man walking into the ocean while holding a surfboard.\nA man leans down and fixes his snow shoes.\nYoung boys on skis gathered in a group at the top of  a hill.\nA surfer is on top of a wave.\nA man captured in every aspect of delivering a baseball from a mound.\nA gray fire hydrant sitting in the middle of a field.\nA boat is parked near a dock on a lake outside a building.\nA green train traveling through a forest with trees.\nTwo cats getting into a sink in a bathroom \nA massive truck with giant tires sitting on a  parking lot.\nPeople walk by a row of parked motorcycles. \nA picture of a man in the air on his skis going towards a snowy hill. \nThe skateboarder is checking his technique in the mirror.\nA clock mounted on the side of a tall building under a blue sky.\nCows lounge in a field with a mountain backdrop.\nso many people on the sea skating and swimming\nA red frosted donut sitting on top of a table.\nA young man holding a baseball bat next to an older man.\nA red bag of luggage at the airport.\na close up of a toilet with a pink seat and lid\nThe trunk is filled with equipment to ski.\nA kitchen with wooden floors surrounded by windows.\nA close up of the back of a stop sign and two street names.\nA lamp that is on sitting on a table.\nAn airplane crossing above a metal structure on a cloudy day.\nA small bed in a room with a small white sink.\na bath room with two toilets and a sink\nAn empty intersection of a colorful urban area.\nthe portable device is displaying a very important message.\nA snowboarder is gliding backwards down a slope.\nA girl sitting on a kitchen counter drinking wine.\nA woman holding a slice of pizza in her right hand.\nA man sitting on a plane in back of a seat with a monitor on it.\nA gorgeous young lady holding a tennis racquet on a court.\nA man stands next to a motorbike on some pavement.\nA yellow and blue fire hydrant sitting on a sidewalk.\nA field with animals grazing on top of a grass covered field.\nA furry cat sits inside of a black suitcase. \na giraffe walking on a street with trees\na woman standing on the beach with a dog\nThe man is sitting next to his bed on the laptop. \nA man riding on top of a paddle board.\nThree people are playing a game of Frisbee.\nA pot that is sitting on a stove.\nA little boy running towards a green Frisbee.\nA group of motorcyclers riding down a street with traffic\na few animals that are in side a fence\na ratchet ass room with a shelf on the wall\nA young child is playing with the television remote\nA man standing on the corner with a drink in hand.\nThe person holding a colorful umbrella is in a black and white scenery.\nA baseball player is running into home base, seen fro the stands.\nTwo humanoid figures made of cardboard boxes sit together on a sofa with a remote control.\nA display case filled with lots of different cakes.\nMan in a red shirt and blue jeans skateboarding. \nA man in his ski gear is in the deep snow. \nSmall boys are playing a softball game on grass.\na bunch of people playing soccer in a field\nPerson riding a bicycle while walking two dogs. \nWoman holding a mechanical device attached to the side of a wall.\nA lawn chair sitting on a beach under an umbrella.\nPeople board a plane in the middle of the rain.\nTwo giraffes in the trees, one standing up.\nA large group of people eating at a table.\nA young girl with a top hat on is playing with an object. \nA park bench on rocks next to a grassy field.\na couple of people holding a umbrella on a bridge\nthis is trains passing each other on the tracks\nA double deck bus parked along the curb in front of a building.\nA black cat sitting at a computer desk topped with a monitor.\nA laptop and large crowd of people in a room.\nA piece of partially-eaten cake sits on a paper plate.\nA person holding a microphone near a sailor who is talking to a woman.\nA young man with a tie stands next to a graffiti wall.\nA group of people riding swings in the snow.\nA street sign that reads \" Greta Garbo Strafze \".\nThere is a room with rose wallpaper and a large bed.\nA cheese covered pizza sitting on top of a counter.\nA sheep being pulled by a person with a rope.\nA group of giraffe standing on top of a dirt field.\nA small bird standing on a dock on the water.\nThe blender is set on the refrigerator near two baskets.\nTwo girls sitting on the ground, one with a hat on, the other with an open umbrella. \nThe sign is telling us where the train station is located.\nA night snowy view shows a clock tower lit up.\nA large white airplane in a stationary position.\nA four engine Air Algerie prop plane with landing gear out\nA man standing in front of the open door of a bus.\nThe woman smiles while posing with a big cat in her arms.\nA fire is going near four lounge chairs. \na white stove is next to a window\nA beach next to the ocean covered in umbrella seating.\nA couple of people walking down the street.\nA lady in a pink outfit finishing a tennis shot.\nA cheeseburger is pictured on a tray next to a cup.\nA tall white and red light house sitting on a green hill.\nA woman wearing a fur coat sitting on a wooden bench.\nSeveral stacks of white cups in a restaurant. \nA metallic refrigerator freezer sitting in a kitchen with it's door open.\nA couple of women washing a able full of oranges.\nA row of parking meters sitting in a park.\nTHERE IS A MAN THAT IS PLAYING MUSICAL INSTURMENTS \nTwo persons are practicing surfing on sand.One man is standing nearby. \nA group of young people hanging out together..\nA room with a bed and an adorable chihuahua sleeping on top of it\nA kitchen with a metallic refrigerator freezer next to a sink.\nA young boy photographed in black and white is holding a bear.\nTwo street signs on the corner of a stone wall.\nA laptop on the top of a surfboard.\nA small pizza with toppings and a pizza cutter.\nA tourist looks at sheep grazing in a yard\nA man with a white umbrella posing with some foliage.\nA woman with an umbrella is walking past a bus.\nRed stoplights that are next to a train.\na man leaping into the air and holding a tennis racket\nThe two cats are laying beside of the computer on the keyboard.\nA rain soaked pigeon sitting on a fence.\nA red fire hydrant between some yellow poles\nA basket fill with different types of fruit.\nthere is a small zebra walking along the beach\na living room with blue chairs and a book shelf \nA woman sitting at a table while using a laptop.\nA man on a surfboard on a wave in the water. \nA parking meter at the edge of the ocean with a boat behind it.\nA man with luggage in the hallway outside a small kitchen.\na large blue truck is driving down the street\nA bear cookie sitting next to a gummy bear \na small toilet stall with a toilet brush and 3 rolls of toilet paper \nWoman on tennis court playing tennis with a ponytail. \nA baseball player holding a bat during a game.\na shelf with a bunch of stuff on it\na kitten on a couch with aluminum foil on the edges of the cushions \nA pile of luggage sitting on the side or a road.\nA tall maroon clock in the middle of park.\nA group of zebras hidden among the trees on a hillside\nA baseball game as a batter stands ready to swing.\nA man bending over a pile of umbrellas sitting on a sidewalk.\nA group of boys sitting on a curb with a baseball bat.\nA man and a kids at a table with pizza.\nA wooden table topped with bowls, baskets and dishes filled with food.\nThe contents of a backpack displayed next to the backpack.\nA close up of a woven basket on a bicycle.\nA man wearing a motorcycle helmet and a neck tie.\nA bathroom with a toilet, a sink and a mirror.\na bath room with a toilet a sink and a bath tub\nThe clock and the building are all lit up.\nThe pipe smoker enjoys his nightly  smoky ritual.\nTwo guys wearing skis are posing for a picture. \nA large black bear standing up to reach something\nA boy on an off road skateboard coming down a green grass hill with trees behind him.\nA little boy standing in front of a tv with a wii remote\nAn ancient building has people around it and a clock on the outside.\nA minivan is in an intersection with the traffic lights showing red.\nA woman cooks dinner while three people stand at a counter in the kitchen.\nMAN IN ORANGE SHIRT TRYING TO RIDE A WAVE \nA hot dog and bun with mustard is served on a plate.\nA man takes a picture of himself eating food.\nA bench sitting on the side of an empty walking path.\nA large white dog is sitting on a bench beside an elderly man.\nA man playing tennis is about to hit the ball.\nA man holding a gigantic donut in a napkin.\nA tall building with four double decker buses driving along a parking lot.\nA furry dog standing next to a fire hydrant.\nA man standing in front of a clock.\nA bus travels on a road near buildings and parked vehicles\nA child standing in a room with various paintings and a bed.\nA man looks on as he finishes his meal\nA giraffe eating leaves off a skinny tree. \nA group of people standing around a lush green field holding a kite.\nA small garden is shown in wooden long boxes.\nA group of women standing around a cake cutting slices.\nA man that is standing in front of a grill with meat.\nA group of people sitting around a wooden bench with vegetables.\na yellow and white train some tracks and buildings\nGiraffes and a bird behind a chain link fence at a zoo\nA man riding a surfboard inside of a wave.\nA flock of sheep grazing in an open field.\nA cow is leashed up to a green pole near the civilians. \nA laptop computer and mouse on a three-tiered desk.\nA woman dressed in black standing on a sidewalk.\nTwo black cows behind a gate near a red fire hydrant. \nAn injured man lying in a hospital bed wrapped in bandages.\nA lane closed traffic sign sitting next to a no right turn sign.\na man in a white shirt and tie giving a symbol with his hands\nA stop sign that is by the side of a road.\nBuses of various colors parked in a parking lot. \nA little girl holding twp donuts in her hands.\nA man kneeling in the grass next to an animal.\nPeople walking on sand next to a mountainous area.\nThree double decker busses are parked in front of a building.\nsliced meat and sliced vegetables arranged on a white plate next to a partially filled wine glass. \nA performer attending to an injured brown horse.\na group of beginner snow skiers having class\nA man holding a tennis racquet no a tennis court.\nA woman hitting a tennis ball on a tennis court.\nBlue and white plate with meat and brussel sprouts.\nNoodle soup with meat slices, in white bowl.\nA man sitting at a desk with papers on it\nA close shot of a fully cooked pizza. \nA white bowl filled with vegetables and meat.\nA couple of people standing next to each other with food.\nA guy holding a bat and some trees. \nA woman leaning up against an outside wall using her cell phone.\nTwo hot dogs covered in toppings on a blue tray.\nthis is a bench out near a field\nA smart phone at different angles with windows.\nTwo giraffes eating leaves at a watering hole. \na monitor a keyboard a window and a mouse\nA man cross-country skiing on a snowy city street\nA statue of an elephant on the ground.\nA hot dog with red peppers as a topping.\nAdults and children gathered at large family meal. \nA group of stuffed animals are arranged together.\nCommercial retail refrigerator stocked full of beer bottles.\nA red train with a large engine that's on tracks.\nTwo small dogs are in front of a black iron gate, one of them looking up at something. \nA man wearing a stripped shirt with a stripped tie.\nA car and a bus behind a fence.\na large tower that has a clock on top\nOranges in baskets an drags on a cloth-covered table.\nA couple of people standing next to each other.\nA round intersection on a surburban street with one floor homes.\nA white small trash truck sitting on top of a parking lot.\nMany people are walking up and down the boardwalk.\nA person on a court with a tennis racket.\nA woman and a little girl are sitting at a table in front a birthday cake. \nLaptop computer and other electronic equipment displayed on small wooden desk.\nA green city bus riding with its windows open\nA metallic toilet sitting in a metallic stall.\nA dog wrapping its leg around a stuffed bear.\nLine of people skiing down a snowy slope.\nTwo zebras walking away under the shade of a tree.\nA couple of people riding waves on top of boards.\nMan in red jacket and red tie walking in a crowd. \nA poster of a professional baseball player with another person's head superimposed on top.\nA bowl filled with broccoli soup next to a spoon and fork.\nTwo brown ponies in grassy field next to a fence.\nA woman riding skis down a ski slope holding ski poles.\nThe microwave and the television were set at the street for recycling.\nA couple of zebra standing next to a rhino.\nA white plate topped with different types of food.\nA busy street on the side of the hill \nA wooden bench sitting next to a large body of water.\nA little girl eating food while sitting down.\nA table and some chairs in a room.\nA tennis player hits a ball in an indoor area.\nA man lies down next a cow while facing another.\nA person selling some food on the side of the road.\nA man standing in front of pile of reflective ribbons.\nA bed that has different objects on it.\nTwo zebras stand side-by-side grazing in a green pasture.\nA view of a bunch of sheep lined up with a man behind them.\na man kneeling down a tennis court holding a racquet.\nA keyboard and mouse sitting on a desk.\nA green street sign mounted to a traffic light.\nA yellow truck filled with passengers driving down a  street.\nA horse head sitting on a counter top next to drinks and food.\nA vegetable and cheese pizza with broccoli and tomatoes\nA dinner plate has a lot of different food on it. \nA man holding a Nintendo Wii controller next to a pretty young girl holding another Nintendo Wii controller.\nA street sign with flags on it and a building in the background.\nA plate is piled high of orange slices while a bunch of bananas sits next to it.\nA man is at an airport with luggage. \nA close up of a very large church with a clock. \na very big building with a mounted clock\nA man near a red fire-hydrant during the day.\nThe portable oven has a small pizza cooking in it.\nAs the horses graze, their friend the dog looks on.\nAn old boat sitting in th emiddle of a field\nA white pickup truck parked near a white brick building.\nA parking meter sitting on the side of a sidewalk.\nA train moving on the tracks in treed area.\nA group of people playing frisbee against each other.\nTwo roosters standing next to a wooden fence.\ntwo cups filled with veggies and nuts \nsome broccoli and potatoes with seed on top in a bowl\nA few people walking in a store near each other.\nA hand holding a mug of green liquid next to a pile of fruit.\nA kitchen refrigerator and bed mattress outside an apartment.\nA woman holding a tennis racquet at night with a tower over her shoulder.\nA person cutting some material on a table\nA group of people watching a man skateboard.\nTwo children enjoy a meal at a restaurant.\nA man holding a cutting board while making the peace sign.\nA mouse head shapped pizza sitting in a box.\nA bathroom with a toilet, window and tape on the floor.\nA boy standing on his skateboard on a road.\nTwo people working in a kitchen preparing a meal.\nA woman sitting on a bed brushing her teeth. \nA man riding a skateboard up a wooden ramp.\nA city street filled with lots of traffic and people.\nA women posing sitting on the chair wearing a beanie.\nTwo zebras standing in the grass near rocks.\nthere is a boy playing frisbee in the grass\nA room full of people as a Ninja Turtle sings on state.\ntwo kids standing on twin bed playing with toys\nA cat laying next to a pair of shoes on a hard wood floor.\na large passenger airplane flying through a cloudy sky\na large hot dog that  is on some paper\nA very messy desk with a computer and mouse.\nThe wooden bench is near a busy stream.\na little boy with a suit, tie and glasses\nA woman on skies in the snow \nA beautiful woman sitting at a table with two pizzas.\nA woman standing over a table filled with bowls of oranges.\na close up of a kitten under a parked car very close to the tire\nAn airliner taking off from an airport runway.\nA person using the touch screen on a cell phone.\na person on skies performing on an obstacle course\nA young boy holding up an electric tooth  brush.\nA red trolly bus driving down a dirt road.\nA man with a nose ring taking a bite out of a burger.\nA man holding a baseball bat while standing next to home plate.\nA black dog running in a pen with a horse.\nThe view of a traffic light through a car windshield.\na stop sign sittin on a pole that is somewhat broken \nA close up of hands holding a video game controller.\na male wearing a blue jacket sliding down snow on a snowboard\nA man in dinosaur covered clown suit talking on a phone on a trolley\nThe batter prepares to run the bases as the catcher and umpire watch the ball to see if it went foul or not.\na male tennis player playing tennis on a green and blue court\nProfessional baseball player at bat at citi stadium.\nAt sunrise the man is ready to enter the water with his gear.\nA photograph of an outside with numerous things in the scene. \nA large clock sits in the middle of a flower bed on a street. \nA person riding a motorcycle down a rural country road.\nA living room filled with furniture on top of a wooden floor.\nA person flying a kite through a blue sky.\nMany different signs cover a post next to a bus stop.\na couple standing next to each other in wedding outfits \nA young girl wearing a tie that matches her skirt.\nA bunch of kids sitting on the grass outside during a sunny day.\nA plate with a sandwich on a table \nStreet signs against the disorganized electric wire infrastructure in Jerusalem\nA conference room full of people seated at tables\nA plethora of toilet bowls and urinals all in a row.\nA horse rolling around on it's back in a green park.\nA man with a orange headband is playing tennis.\nA bike parked in front of a store with a basket.\nDucks are gathered on rocks beside a body of water.\nAn asian city is all lit up in the dark.\nA man standing next to a dog near a sheep penn.\na woman with a tattoo is sitting on the train tracks\nMeat, potatoes, peppers, and a carrot are sitting on a plate.\nAn architecturally mature building on the corner of an intersection.  \nA tall brick building with a bike parked in front of it.\nA man riding a horse through a field.\nA bird perched on top of a tree branch.\nA herd of giraffe standing next to each other at a zoo.\nthere is a baseball game on and many people watching it\nA black cat in a tie laying on a carpet next to bookshelf.\na bunch of zebras stand in some tall grass \nA black cat laying on top of a wooden desk.\nA large bird floating out in the water.\nA giant stuffed bear is in front of this door.\nA green and black train sitting on top of snow.\nTwo young baseball players in blue uniforms standing in right field\nmany different kites flying in the sky \nTwo bananas and an apple are next to an Amazon box. \na couple of women  are in a kitchen\na dog with a umbrella that is pointing to the sky\nA man laying on a chair feeding a cat.\nA home office with a computer on the desk and personal items.\nA man on a snowboard stands and smiles.\nA man standing next to a cat in a kitchen in front of a laptop computer.\nA group of three children sitting at a table in front of a birthday cake. \nA man riding a skateboard down a ramp.\nA beach towel and chair sitting on hay, displaying books\nSome pans and kitchen spoons hang from hooks on a ceiling rack.\nTop down view of a group of people and their gliders.\nA woman rolling her luggage through an airport.\nAn orange street sign that reads \"obstruction\" and has a directional arrow.\nTwo ponies are running through a grassy field. \na snow skier doing a trick some snow and trees\na person riding a skate board on a skate park\nA herd of elephants at the watering hole.\nA large slice of pizza with cheese and marinara sauce on a plate. \na pizza with a lot of cheese on it on a oven board\nThe kitchen with utensils on the wall is very old.\nA look out of the window of a train on the tracks.\nA man sleeping on the end of a wooden bench.\nWet black and grey dog retrieving an orange ball.\nA woman dressed in black using the phone\nDogs playing at a birthday with one dog wearing a hat \nA odd looking bike sitting under a purple tent next to a fountain.\nTwo girls sitting on a bed eating bananas together. \nTwo people sitting on a bench looking out at city.\nA rainbow in the sky over a street. \nA few people in a kitchen preparing a table and checking food in an oven.\nGraffiti marks the side of a green train that waits on its tracks.\na train carrying some heavy equipment resting on the tracks\nA giant slice of pizza sitting on top of a red tray.\nA woman riding a white horse around a barrel.\nA man wears a wrap towel in a hospital room.\nthere are four aluminum canoes sitting in the water\nA woman and a man playing a game with remote controllers.\nA small kitchen with black and wooden cabinets.\nMany people walk together towards a large house with umbrellas.\nSheared sheep on roadway taken from vehicle, with green hillside in background.\nA farmers marked filled with rip and unripe bananas.\nA boy on a skateboard is jumping over a red obstacle.\nA person sitting on a chair in front of yellow vegetables.\nFlag post out front of large official government building.\nA toilet, sink, mirror, and tub in a bathroom.\nA couple of sinks in a large room.\nColorful bird sitting on a branch of a tree.\nA man wearing glasses holding a Wii controller in one of his hands\na webcam on a tripod near a laptop\nTwo young boys enjoying the action at a local skate park.\nA parked motorcycle on display next to the skull of a demon.\nGroceries, including greens, juice, and bread sitting on a table.\na teddy bear handing from a persons hand \nA strainer sitting next to a microwave and a window. \na large air plane on a run way\nA construction sign sitting in the middle of a road.\nA woman rocking out while standing in a living room.\nA bathroom with a white toilet sitting next to a bath tub and a sink.\ncars that are stopped at a traffic light\nA man standing next to a little girl on a ski slope.\nThe kitchen has some of the best antique fixtures.\nA traffic signal showing that it is safe for horses to cross.\nA black counter top sitting next to a metal sink.\nSeveral different fire hydrants that have been painted various colors.\nA teddy bear that has been set on a bench.\nThe parrot is perched on a tree limb.\nThe catcher and umpire are at home plate at a baseball game.\nA couple of motorcycles parked next to each other.\nTrain on tracks inside of a brick station. \nA train pulls up alongside a paved waiting area.\na person in red is riding a horse\nA young person holding a snowboard while wearing a helmet.\nA bunch of sheep make their way through the crowded city street.\nA striped plane flying up into the sky as the sun shines behind it.\nA shelf filled with men's ties stacked six levels high.\nA group of three people standing next to each other on a ski slope.\nA beautiful young lady smiling while talking on a phone.\nA group of people are standing around with glasses.\nA teddy bear with a red bow around its neck.\nAn older pickup truck with decorative murals painted on.\nA bird is standing upright in the water and leaves.\nA pile of oranges sitting inside of a basket.\nA bunch of antelopes are seen roaming the plains.\nA giraffe stands in the middle of a sandy area.\nA couple of people riding snowboards down a snow covered slope.\nA blue fire hydrant posed on a street corner in a city.\nA red fire hydrant in front of a shopping center.\nThere is a long sub sandwich cut into pieces on a table.\nA big clock on top of a big strange structure.\nThe infamous Big Ben clock tower sitting under a cloudy blue sky.\nA large group of people walking through the rain holding umbrellas. \nMan with tennis racket on green turf in front of a goal\nA giraffe stands beneath a tree beside a marina.\na man is walking his dog through the city\nA double city bus is pulled up to a bus stop.\nA person riding skis along a snow covered road.\nA man riding a skateboard across a street.\nA man carrying a small child above flooding waters.\nA street sign reading Cambridge st and Norfolk st's crossing lies broken on the ground. \nA zebra standing on a dry grass covered field.\na man in a wetsuit riding a wave \nA fire station with a flag pole in front of it.\nA girl in her underwear jumping onto a bed.\nA young girl wearing a red tie is adjusting her glasses. \nCloseup of an orange stuck between a tree an its branch.\na brown white and black dog is laying on a gray couch\nA bowl of bananas and some cereal on a table.\nA group of people sitting at a table eating food.\nA large circular building with a bridge connecting it\nA boy is jumping over a hurdle on his skateboard. \nIngredients for making sandwiches are displayed on a plate.\nA train pulls up along some buildings. \nA cute blonde woman leading a brown horse with a child riding it.\nso many people at the beach relaxing and swimming\nThe two men are riding their motorcycles in the parking lot.\na lady and man standing next to a fire hyrdgen\nThe pizza on the table is half eaten. \na girl talking to two older woman with their surfboards \nA young man holding a tennis racquet up in the air.\nA group of people sitting and studying in a library.\nA man moves his video game remotes quickly as he plays a game.\na baseball player swings his bat at a baseball \nA woman flying a kite in a blue sky.\nA bath tub sitting under a window in a bathroom.\nthere is a lap top on a table with many bananas around it\nA man riding skis across a snow covered countryside.\nA bus that is sitting in the street.\na couple of people on skis ride on the snow \nSquare dishes hold main dishes while a banana is place in the back section of a tray.\nA city street scene with a green bus coming up a street, with ocean in the background.\nthree plates on a metal tier with pastries on it \nA baseball player swinging a bat on a field.\nA sandwich and some grapes are sitting on top of a tablecloth.\nA guy with a backpack looking at the ground to his left. \nA yellow fire hydrant sitting in the middle of a sidewalk.\nA dog standing on a bed in a room.\nDairy cows line up against a barber wire fence to graze the sweeter grass.\nA kitchen with a stove and a microwave.\na surfer on top of a wave in the water. \nA man holding an umbrella next to a frozen over fire hydrant.\nA person riding a skateboard on top of a piece of metal.\nA group of men walking across a field flying kites.\nA cat looks tired while wearing a small plastic hat.\nA road sign warns there is a curve in the road.\nA little black colored bird stands gazing at a statue on a sunny day.\nA bathroom with a white toilet next to a shower.\nAdult with suitcase with purple tag at indoor facility.\nA young woman in an orange dress holds a black umbrella\nA view of a professional camera and light umbrella.\nA young man in a yellow shirt and black shorts hitting a tennis ball in a tennis match in a stadium.\nA black and white dog standing on top of a seat.\nA tall church tower sitting on the side of a road.\nA woman is standing in the kitchen and holding a thermometer.\na table top with a bunch of electronics on it \nA kitchen with a bath tub sitting behind a wooden door.\nA group of children standing around a candle filled cake.\nA traffic signal sitting next to a street at night.\nA little baby laying in a bed on top of pillows.\nA man with respirator works on a surf board. \nThe cat is sitting beneath a motor bike.\nA female surfer is exiting the water. \nA large pizza with meatballs and tomatoes on top of it.\nA small child is sitting on a toilet with an electronic device.\nA lone train is traveling down the train track\na person holding an open umbrella with words written on it\nA young man cuts a clown shaped cake.\na group of people play a video game in a living room \nA computer desk topped with two laptops and office supplies.\nA LITTLE ROOM AND DINING ROOM AREA WITH FURNITURE\nA group of people sitting around a  table having a meal.\nA young girl holding a remote control in a living room.\nA man wearing a hat standing outside taking a picture. \nA man in a white shirt is taking a big bite. \nVarious people are acknowledging life and having an unfathomable moment.  \nA group of men on a field playing baseball.\nThree sheep are grazing in the field next to the water.\nA man and woman are standing outside holding a cell phone.\nTwo elephants with their trunks tied together with a third elephant in the background.\nA man sitting on green bench on top of a stone walkway.\nTable setting for two with vase of flowers and candle.\nA small train traveling past a building surrounded by a fence.\nAn old opened trunk in an abandoned house\nA skateboarder is doing stunts on a park bench. \nA close up of a school bus parked on the side of the road.\nThis is a view of mountains of a airplane.\ntwo different pizzas that just came out of an oven. \nThe ties come in a variety of designs.\nMan sitting on park bench waving and wearing water protective clothing. \nThere are a lot of sailboats anchored in the water today. \nA brown and white horse crossing the street\nA giant man standing  under large colorful kites.\na number of people playing frisbee indoors \nA kitchen filled with pots and pans under a microwave.\nthis is fresh fruit sitting in a pile\nThere are two sinks next to two mirrors.\nA screen shot of a clock on a computer screen.\nA large military jeep in front of another military convoy,\nMan flying a kite in the crowded park.\nA group of people sitting around a circular table with food.\na pink hat and a cellphone on some weaved basket\na brown cake with white icing and some walnut toppings\nA large group of people flying kites in a large open field.\nThe traffic light and street signs sit by a red fire hydrant.\na person on a surf board rides on a wave \nA woman holding an umbrella standing next to a black wall.\na close up of many drinks in a fridge \nA blue and white bus is traveling down the road. \nA woman holding a sandwich up to her mouth.\nA bathroom with sink, tub, window, and hand rails.\nAdults on motorcycles with car and crowd on street\nA floodway sign sitting on the side of a road in a field.\na young female walking at night smoking and talking on her mobile phone\nTHERE IS A SANDWICH ON THE PLATE WITH GARNISH \nThe cat is sitting on the mans knee.\nTwo baseball players are trying to catch a ball.\nA little boy wearing a tie and a blue sweater.\na elephant walking in a dusty and rocky area\nTwo computers are sitting on top of the desk.\nA young boy holds a banana before he peels it.  \nA person sitting on a bench with lots of written signs.\nCloseup of a cup holding scissors and other pens and pencils.\nA bathroom with a toilet, cabinet, tub, shower curtain and a scale in it. \nA man hitting a tennis ball with a racquet.\nA person standing next to a bike covered in flowers.\na god in a small cage sitting on a dog bed\nA man in orange garb carrying a umbrella and cell phone.\na bathroom with a toilet sitting next to a sink \nA boy sitting on top of a truck with a bunch of goats. \nA smiling young boy holds a skateboard as young men skateboard in the background.\nA panda eats a bamboo stalk in the forest.\nThis is an empty table at a restaurant with ships in the background.\nthere is a male tennis player on the court in a game\nA statue of a large brown bear tearing off a cars door.\na man in a little kayak  putting an oar in the water \nAn Asian woman surfing in a wet suit.\nA person is on a living room couch watching TV and there is a stuffed panda bear and a purse on the table.\nSeveral hoofed animals much on hay in the stable.  \nA woman standing over a table next to two other people.\nA parking meter covered in graffiti sitting on a  sidewalk.\nA man who is riding on a skateboard.\nA man riding a wave on top of a surfboard.\nA bear that is standing in the grass.\nA man is loading oranges onto the bed of a truck.\nA box filled with six donuts of assorted flavors.\nA group of men who are playing basketball together.\nA clock sitting on top of a street sign.\nA group of people that are outside of an airplane.\nA woman wearing a white sweater standing next to a man in a jacket.\nKids playing in the water with surfboards \na close up of a small boat with dogs near by\nSome skiers are going down a snow covered hill.\nA golden retriever laying down on the side of a pool.\nWe are looking at a large old bath room.\nThree boys are sitting and eating some food.\nA group of surfboards sitting next to each other on a beach.\nA break room with a sink and a microwave.\nA man standing next to suitcases and bags.\nman is walking in the street carrying a sign that says smile\nA large black bird flying over a snow covered mountain.\nthere is a woman holding a very large donut\nA woman with a child flying a kite in a field.\nSigns with red men for go and stop\nA young man riding a skateboard down a street holding a 99 cent store bag.\nA parked car with a cat laying on top of it.\nTwo microwave ovens one marked with man symbol and the other for woman. \nA man on a tennis court holding a tennis racket hitting a tennis ball.\nA tennis player lunges to return a wide serve\nThe mirror above a bathroom sink is shattered.\nThese two people are using the phones at a parade\nA group of people riding skis across a snow covered slope.\nPink tulips sit in a vase in the window. \nA brown and white cow standing on a dirt road.\nA single elephant that is walking in an enclosure.\nA selection of pottery vases in various colors\nA tall monstrous looking street sign sitting on the side of a road.\nA metallic stove top oven sitting in a kitchen.\nA large long white train on a steel track.\nA man sitting at a table with a plate in front of him.\na man talking on a cellphone sitting at a table.\na car driving on a road with decorations avobe\nClear vase with water and flower stems in window.\nTwo men and a woman posing for a picture.\nA row of sail boats with trees in background.\nA partially closed lap top computer sitting on a wooden desk.\nA man riding a skateboard on top of a ramp.\nA young man sitting on a park bench next to a playground.\nA group of withering flowers by a road side.\nTwo types of vegetables sitting on a cutting board on a counter.\nTwo very pretty zebras playing near a fence.\nA teddy bear is on the pillow and a jacket is on the bed.\nA man holding a smart phone inside of his pocket.\nTwo girls pose for a photo holding doughnuts.\n a castle and the big ben clocktower next to a river \nPerson wake boarding in a black wet suit. \nThe bathroom has a towel rack on the sink counter below the large mirror. \na man is standing next to a stop sign outside\nThe suitcases are on the pavement next to the brown bench.\nthree horses standing next to each other in a field of grass\nA man is holding a tennis racket while posing.\nA busted up toilet sitting inside of a bath tub.\nA man sanding next to a cow in a pen.\nA man in cowboy hat riding a horse around cows.\nA closeup of a pizza on a plate. \nA couple of women together who are eating.\nA boy dressed in safety gear on a skateboard on a basketball court.\nA cut looking at its reflection in a mirror\nA woman wearing a pair of skis \nA family riding on the back of raft.\nA man in a top hat and a woman with glasses.\nA man standing under a light while making a high face.\nA woman in a bikini sitting on a towel on the beach.\nA white toilet sitting next to a bath tub filled with paintings.\na man on a skating board with his hands up\nA train is pulling up to a platform to pick up passengers.\na herd of sheep walking across green grass.\nA harbor filled with boats floating on water.\nA sign next to a stone wall stating the road name.\nA TV showing two men in hats and women.   \nFarmer's market style display of carrots, celery, egg plants and squash.\nA red kite sitting on top of a lush green field.\nA group of people preparing food in a kitchen.\nThree giraffes standing at different locations behind a fence. \nSkier performing jump on high altitude ski slope.\nA young man kneeling on top of a lush green field.\nA couple of pieces of luggage sitting on the ground.\nA couple of men holding white surfboards on top of a beach.\nMany people are walking over a bridge near a clock tower. \nA group of birds foraging in a grassy field.\nA plaque on the floor in front of a chair and grandfather clock.\nA airplane is taking off near a grassy area.\nA flock of birds sitting on top of a large rock.\nA long row of motorcycles parked side by side next to a garage.\nA woman standing next to a man while throwing a Frisbee.\nA gang of bikers riding down a street next to tall buildings.\nA young hold holding a set of Nintendo Wii game controllers.\nA very large doughnut  sits atop a building as an advertisement.\nsome brown black and white horses in their pen and some water\nTwo men and a woman are standing in an elevator.\nTwo birds sitting on top of a wooden table near tinfoil.\nA man cutting a pizza in a home kitchen.\nRed train at a stop and a man that is waiting. \nA zebra is focused on a photographer to give a face front view.\nWoman in sportswear playing tennis on a tennis court.\nVarious people are acknowledging life and having a good time.  \nMan and woman look into open refrigerator that contains drinks\nYoung man on side of the road pointing at a truck.\nA crowd of people flying kites over a field.\nA couple of green buses driving next to a roller coaster.\na orange colored cat peering down on some unknown object\nA room with a purple bed, detailed wall and various paintings.\nA man and two women sitting on a bed and one woman with a guitar.\nA little girl holding a donut in her hand.\nA woman looking out the window of a train.\nA man riding a wave on top of a white surfboard.\nA pizza sitting on top of a pizza pan.\na surf board next to a table with chairs \nA man catching a green Frisbee next to a  field.\na person holding a pillow above a ripe banana\nA black steam engine pulling a small passenger car.\nAn person is doing something at this time that is marvelous.  \nAn older man sitting at a wooden table with a plate and a drink.\nA green school bus drives down the road with bikes on top.\nA man swimming in a pool of blue water.\na bed that is in a room with brick walls\nA mirror and soap dispenser in a bathroom.\nA fluffy cat laying on an electronic device\nPeople stand outside of a series of stores. \nTHE MAN IS PLAYING WITH A WII IN THE LIVING ROOM \nA double decker bus going along a road with old buildings in the background.\nA group of cell phones sitting on top of a table.\nA car wheel is flanked by a red suitcase and a triangular leaf mat.\nThe bikes are parked along the side of the building.\na man with a tennis racket gets ready to swing his racket \nA large red bag on the ground in a room.\nSomeone holding a bottle of wine and a glass in his hands, with several other bottles and containers on the table behind him.\na trey with some bread and juice on it \nA red fire hydrant sitting on a patch of green grass.\nA bus traveling down the street, with Walton-Le-Dale written on it.\nA girl jumping in the air under a kite.\nA couple of people riding on the back of a horse carriage.\nA red plate that had green veggies and it\nA man flying a colorful kite in a cloudy blue sky.\nA large wooden bed covered in white blankets under a painting.\nA vase that has a flower inside of it.\nA woman stands on a snow covered hill. \nThe featured dish contains several unusual fresh ingredients.\nSomeones hand lifting up the top of a hamburger bun. \nAn empty kitchen in a house with a window in the corner.\na bunch of sheep all chillin together in a bin\nA person walking by stop sign at street intersection.\nA big steer is just about to walk onto the road near the folks on the bike. \na urinal with tiled wall and two pictures of clowns smiling\nA man holding a tennis racket and ball as if to start a serve.\nPosed doll holding hands with two teddy bears\nA man holding a doughnut up to the side of his head.\nA cat on a table with a computer mouse.\nthere are many bike riders racing in a street race\nTwo black bears standing next to each other.\nA large brown clock tower mounted in the face of a building.\nAn open refrigerator is on and has food in it\nThree large turkies are walking through the dirt.\nA brown and white cow lying in a green pasture.\nA large metal clock in the middle of a room.\nA double decker bus parked next to a crowded sidewalk.\nA picture so blurry it is hurting my eyes, a cat on a bed.\na small white dog is standing up against a table\nA motorcycle in a garage-like area by the wall.\nA snowy slope and tree line with one person skiing down.\nA woman holding her cell phone tucked in a wool cover.\nA parking lot outside of an extremely large building.\nA group of people walking under a parking lot with skateboards.\nMan with yellow flying disc at indoor event.\nA baby elephant standing at the edge of a water hole reaching out with its trunk.\nA man has a frisbee in his hand and is standing up. \nA man and woman standing by a very big sign.\nA duck and baby ducks are in the blue water.\nan image of  a man that is holding a fake tongue\nA man swinging a tennis racquet on top of a tennis court.\nfood on a white plate with a colored place mat and pink table cloth\nA baby that is pressing on a small, black suitcase.\nA blue motorcycle is parked in a corner covered in graffiti.\nA woman wearing a white hat and white coat snowboarding down a slope.\nA rusted out ship sitting on top of a body of water.\nA family watching a girl run with a pink kite.\nA man sitting in a chair under an umbrella next to a railroad crossing.\nA monochrome room with a fireplace and living area\nA family of elephants stand beside each other in an enclosure.\nA city street lit up in a night scene with cars in the background. \nA little girl riding a skateboard on a sidewalk.\nA kid playing with a bat and ball on a beach.\nTwo people on the beach are playing Frisbee. \nThis player swings his racket during a match\nPeople take brownies and oreos off of plates.\nA bus that is driving down the road.\nA person on a surfboard in the water.\nTwo tall giraffes standing next to each other by trees.\nA curved bamboo next to a flower vase\nA white plate on a table topped with a sandwich.\nA man riding on the back of a motorcycle down a street.\nA grey cat rest next to a laptop with his paw on the keyboard.\nA row of umbrellas next to trees with buildings in background.\nA village with a picturesque mountain side view behind it.\ntwo baby elephants standing in the middle of a herd of elephants \na group of trams running down tram lines\nA jar filled with different types of fruit on a table.\nTwo benches at a light rail stop during the winter. \nTwo kids are playing soccer out in the sun.\nobama delivers a speech photoshopped with the ussr flag\nA man sitting eating an apple with his bicycle.\nA white bunny rabbit sitting on the floor of a den.\nYoung man holding a skateboard and his helmet.\nAn elegant bedroom with a draped, decorated bed.\nA small herd of zebra standing next to each other.\nHelmeted person taking a tight corner on a motorcycle.\nA man hitting a tennis ball with a tennis racquet.\na close up of a cat in the back of a car \nA large jetliner flying through a cloudy blue sky.\nA couple of men that are standing in the grass with a frisbee.\nTrains leave a station in a city setting.\nA traffic light with a couple of green street signs mounted to it's sides.\nA zebra standing in a field next to a tall green tree.\nA modern kitchen that is bright and painted blue and yellow.\nFriends having a drink together in the kitchen\nA bullet train is going through a tunnel.\nA white plate topped with different types of fruits and vegetables.\nA man sitting at a table with a cup of coffee and a birthday cake with lit candles.\nA small arrangement of tools used for sewing.\na bathroom with two sinks and a mirror \nA yellow hazard sign sitting on the side of a road.\nA clock town sits in the middle of a city.\nA living room filled with furniture and  set of glass doors.\nA black bird perched on a wire next to a tree.\na couple of people riding on the backs of brown horses.\nThere is an elephant shaped figure next to other decorations.\nthis buss is parked near the curb in the street\nA street sign next to a bend in the road.\nA man and woman sitting on the grass outside talking.\nA brown bear walking along the waters edge\nA ceramic bowl full of a variety of fresh fruit\nA building with a grey hound road sign on it\nA grey, white and black duck next to water.\nthere is a round pan covered with aluminum in the stove\nThe train engine is followed by a line of open cars.\nA laptop computer sitting on top of a wooden table.\na little boy that is standing at home plate\nA group of yellow road blocks sitting near a tree.\nA small herd of giraffe standing next to each other.\ntwo people riding a motorcycle on a city street \nCrepes on a plate, topped with bananas and powdered sugar.\nA group of people on a field playing baseball.\nA cat sitting on a chair in a room.\nA couple of horses by a fence on a field.\na bunch of cows standing and laying on a grass field.\nA tray topped with three tin trays filled with food.\nA red and gold painted fire hydrant on the street\nA cat playing with a cup that is on the floor\nA red fire hydrant on an urban street.\nA laptop screen with a box statue leaning on the top of it.\nA woman eats a burger next to a street vendor.\nA scooter and tiny truck at a beach dry dock.\na female tennis player in a black top playing tennis\nA street sign next to a road in a grave yard.\nA hospital room filled with empty beds and medical equipment.\nThere are several people standing next to motor cycles.\nA woman in pink coat and sunglasses talking on a phone.\nA suitcase that is on the floor with its handle up.\na toddler wearing a hat sitting in the dry grass \nA pat sitting on top of a counter filled with vegetables.\nA man smiling while sitting at a table drinking beer. \nA man tossing a white frisbee on a lush green field.\nTwo women and children are on a motorcycle.\nA baby horse drinking milk from it's mother.\nTwo people playing tennis with a referee and another man watching.\nA small, yet clean looking bathroom, with blue pained walls. \nA boy is standing on the beach and looking at something\na bunch of stuff is on a small table\nA boy waring headphones is playing a game on his computer.\nTwo giraffe standing on to of a dry grass covered field.\nA traffic light with a misty mountain in the backdrop.\nA man jumping in the air on a snowboard.\nA man balances sideways on a white skateboard.\nA jet airplane flying above the clouds in the distance.\nA person sitting at a table with two plates of food.\nA man in a gray shirt holds his phone as he sits by a man in a white t-shirt.\nFour children at an outdoor party wearing festive hats.\nA man walks across a base ball field. \nA dog jumping in the air catching a Frisbee in its mouth.\nYoung couple happily snuggling on their bed together\n A tall woman is standing in a small kitchen\nMan in tshirt and tie with cellphone in bathroom taking picture\nA woman sitting at a table with plates and bowls of food.\nThe toilet is in a separate area away from the sink.\nHot dog with onion, mustard, pickle and ketchup.\nA person riding a surfboard in the ocean\nA cat and some people on a grass field.\nPassengers departing a train at a busy train station\nA pitcher holds his arm far behind him during a pitch.\nA spread of pastries and doughnuts available for purchase.\nA guinea pig in a cage with carrots and broccoli.  \nAn elephant in a pool of water near the bank\nA large amount of motorcycles are parked by a sidewalk.\nTwo people riding elephants in dirty deep water\nA blue and silver fire hydrant sitting on a field of dirt.\na living room with a table chairs and a couch\nA woman eating a variety of different food off of a white plate.\nA woman is seen in the rear view mirror of a motorcycle.\nA zebra standing on a sandy piece of land.\nPeople holding small soccer balls in their hands.\nA picture of some food on a plate.\nA man eating a chili dog outside on a sunny day.\nA street sign depicting the corner of TUDOR CITY PLACE and E 42 ST.\nThe couple is enjoying the video game with the controllers..\nA bride waits for something while holding her bouquet. \nFour men hold a kite shaped like a clock.\nA stop sign that is by a road by the beach.\nA man holding a tennis racket running to hit the ball.\nAn attractive young lady taking a selfy in front of a mirror.\nA group of people are on bikes on a busy street.\ntwo toys for children to ride on mounted on springs\nTHERE IS A TOWER CLOCK THAT IS ON DISPLAY \na plate with a sandwich and chips on a table\nA group of young men riding skateboards in a skate park.\nA view of a cloudy sky beyond a street lamp. \nA little boy standing on one side of a fence looking at sheep inside the fence.\nA desert on a plate with a spoon on the side of the plate.\nA woman with a nice ass standing in a kitchen preparing food.\nA women holding a tennis racket in mid swing. \nA close up of a person wearing a bow tie posing for a photo.\nA bridge stands over a river before a city sky line.\nAn American Airlines passenger jet takes off from an airport.\nA man in a suit and top had holds a monacle as two people sitting next to him laugh.\nA trainer leads a girl on horseback to a field.\nYellow utility truck parked inside a warehouse by itself. \n A man riding a skateboard in a skate park.\nA couple of flowers inside a clear vase.\nA yellow and black bird perched on top of a wooden branch.\nTwo husky's hanging out of the car windows.\nA silver train that is sitting on a track.\nA  young girl slicing up a cake on a wooden table.\nA railroad train letting off a big black smokecloud\nA close up shot of a cat laying down. \nfive different pictures of different food items \nWoman holding up a small boy on a snow trail. \nTwo young girls getting pizza at a child's party.\nA boy rides a skateboard down a street with his arms outstretched. \nA man holding a Nintendo Wii controller in front of a TV.\nA cat is laying on a desk full of computers.\nSeveral kites flying on a windy day at the beach.\nthese people are walking together down a road\nA black motorcycle sits on a paved surface.\na sandwich is sitting on a white plate\nthere is two picture of a giraffe in the wild\na boy jumping his skate board over some steps\nTwo bears that are standing together in a field.\nA black dog lying down on a black couch.\nA train station with a few passengers waiting for the train to arrive.\nTwo boats pulled ashore in the sand on a river bank.\nA filed full of cattle laying on lush green grass.\nthe propeller of a plane flying in the air\nan odd looking red and yellow train sitting on the track\na woman is facing an oven in a kitchen\nA person on a surfboard in the water.\nA man changing the channel with a remote.\nA clock that is on the side of a building.\nA man that is on his knees with a snowboard.\nA bike with a basket sitting on snow covered ground.\nA refrigerator containing fishing worms sits on a floor.\nA trash bin with decorative stickers of cars on them on the ground\nA plate that has different kinds of food on it.\nA bottle of beer sits next to the keyboard and mouse at the computer table.\nTwo cows standing on a dirt road next to wild green brush.\nA lagoon with crystal blue water filled with boats.\nA steak on a plate served with green garnish\nA woman stands in the water next to someone on a blue surfboard.\nAn empty kitchen and half wall in a living space\nA man and woman standing over a dinner table with a cake.\nA couple of containers filled with unripe bananas.\nDouble decker buses driving down the main road.\nA man flying through the air while riding a skateboard.\na big plate that has some fruit on top of it\nA red and white plane is sitting on the runway. \nA woman sitting at a table with a plate of food.\nA young woman in makeup is holding a sandwich.\nA pitcher is about to throw the ball to the batter. \nThere is a basket with beautiful flowers and fruit in it.\nA man sitting in front of a table drinking wine.\na blurry picture of a cat and a window\ntwo zebras in a field near one another \nA half eaten hot dog sitting on a paper napkin\nA bus driving down a road by a building.\nThe elephant family is walking down the road.\nBanana trees and other tropical plants around a small building behind a wire fence.\na female in a white shirt  is playing tennis \na stove top with a tea kettle with steam pouring out of it.\nA train is stopped at a station beside a traffic signal.\nA man in a black shirt holding a dog with its hand in the air.\nWoman with glasses and a police uniform using a mobile phone.\nA woman standing in a kitchen next to a sink.\nA large cat is sitting in the sink in the bathroom.\nA baseball player holding a baseball bat standing on home plate.\nA man is sprawled out on a wall.\nA clock tower stands over a city landscape.\nA plate topped with pieces of cake and sausage.\nA person serving putting red wine to a glass\na sign showing birds are not allowed in the area\nA kitchen with a wooden table  with a cat sleeping on top of it.\nA men's public washroom with a blue floor. \nA group of men cutting a white sheet cake with a sword.\nA vase that has some white flowers in it.\nThe mens bathroom has a urinal and a stall. \nTraffic stop sign with dilapidated building behind it.\na person riding a skate board grinding on a rail\na family sitting on a couch near large windows\nsome road signs besides a road in the street\nA woman laying in bed  in her underwear.\nBlack and white photo of people looking at animals grazing.\nA baker checks on a rack of muffins pulled from an oven.\nThe park bench sits along the path under the trees.\nLunch with salad and dressing with pita bread.\nman with a jelly doughnut in mouth \nWhite cook top oven with three electric burners.\nA black cat and an orange cat are sitting on the floor.\nA plane is boarded with maintenance trucks alongside cargo trailers.\nBearded man in a suit about to enjoy an adult beverage\nA person skiing through a snowy forest with tall trees.\nTwo plates have brocolli on them that is smothered in cheese.\nA plate of food with meat, eggs and potatoes.\nA person playing with a WII controller for a video game\nAn airplane is going over a steep mountain.\nA person that is holding a lime in their hand.\nFive white umbrellas stand in a patch of water\nA TV sitting on top of a wooden stand.\nA classroom type setting with rectangular tables that have chairs and laptop computers at each desk.\nbench located near the side of a ship\nall the vehicles in this town are red\nA mother and baby elephant walking in green grass in front of a bond.\nA picture of a street named Bill Robertson\nA group of people standing next to a bus and a flag pole.\nA person jumping on a surf board on a wave in the ocean.\nA bear or some type of large animal is gripping a tree. \nAn old black and white photo of a city street with a large cathedral on the right hand side. \nThere is an old multi colored volvo parked next to a motel\nThree elephants in sandy area next to trees.\nA renovated kitchen with stainless steel appliances and a huge stove\nA banana sitting on top of a counter next to glass pots.\nA red stop sign sitting next to a tree.\nA pretty young lady holding a black umbrella.\nA large elephant walking across a field of grass.\nA hand carved vase sitting on a blue cloth. \nA dog is laying in a chair in front of a book shelf. \nA herd of cattle walking across a sandy beach near the ocean.\nA dog and a horse standing near each other.\nA person holds a small, rather stumpy banana.\nA person hitting a tennis ball with a racquet.\nA couple of windows sitting inside of a room.\nA blonde woman adjusting a mans neck tie.\nA basket full of fresh grown carrots next to other vegetables.\nA bathroom is photographed with a fisheye filter.\nA black and yellow train traveling down train tracks.\nDoorway view to a bathroom with sink, bathtub and toilet.\nA computer desk has two monitors, mice, keyboards, cell phone, speakers, and webcam.\nCars and a bus driving down a busy road.\nA batter is waiting for a pitch at home plate.\na close up of many books on a bed with sheets\nA person walking across a field next to a  kite.\nThere is some tuna and a potato on a white plate. \nTwo young children sitting side by side while eating food.\nA man and boy ride horse and stir up dust.\nA young man riding through the air on a  skateboard.\nA brown cat laying in a white bathroom sink.\nTwo giraffes standing beside each other next to a fence.\nA blue dog sitting on  a striped couch\nA tabletop is full of homemeade desserts and they look appetizing.\nA very cute brown dog with a disc in its mouth.\nA bird is flying away from the person\nA big teddy bear sitting in front of a painting of a tsunami. \nAN OLD SCHOOL BIKE SITTING IN FRONT OF A CAFE \nA pretty lady laying in bed with a large black dog.\nScissors are resting on a roll of clear tape.\nA street in front of a tall building filled with traffic.\nThree white urinals mounted to a bathroom wall.\nA man sitting at a table with two plates of breakfast food.\na room with some couches and a table inside of it \nA black and white clock on a street with people walking by.\nA bedroom with a bed next to a closet.\nA man on a motorcycle on a racetrack.\nAn intracately designed boat on a river bank.\nA man slicing a cake with a long knife.\nA gray teddy bear leaning up a counter next to the ocean.\nYour guess is as good as mine as to what these objects are.\nthere are two zebras standing in the wild together\nA chubby black pony in a pasture looking ahead.\nSkier with skiis and poles posing for picture.\nThe child smiles while posing in a baseball uniform. \nA bike leaning against a sign in Scotland.\nA man smiling with a breakfast burrito and a coffee cup with a smiley face.\nGroup of protesters with red and white signs on concrete steps. \nA person getting out of a taxi cap holding a pink umbrella.\nA cook in a restaurant kitchen poses with food.\nA baseball  player holding a baseball bat while wearing a red helmet.\nA woman standing next to a group of horses on a field.\nAn eightteen wheeler rolls down the evergreen tree lined highway toward a snow capped mountain.\nA desk with various items that include cellphone, mouse and pocket change.\nAn old wooden bench sitting under a tree on a field.\nA Egyptian painting with 4 black horses on it\nA brown cat bathing on a mat in the sun.\nA group of small boats floating down a river.\nA sandwich filled with meat on a plate with salad.\nMan sitting on large block checking cell phone.\nSnowboarders sit on a mountain slope in the snow.\na close up of a person covered in snow sitting on the ground next to an oven\nTwo parking meters buried in snow with only their fronts showing.\nA group of people are playing frisbee on the beach\na male surfer in a yellow top on a white board\nA fire hydrant sitting on the side of a road near a building.\nA smart device sitting on top of a pillow.\na brown bear is digging in the ground for something\nA person doing skate tricks in an outdoor park\nThe banana is laying next to an almost empty bowl.\nTwo cats on a toilet tank looking out a window together. \nA man who is riding a skateboard down the street.\nA couple of women sitting next to each other.\nA close up of a fire hydrant with a skyscraper in the background.\nMan sit on a icy bench with skis on his feet.\nA stop sign is the focal point of an intersection that is covered in snow during the winter.\na little kid is standing in a kitchen\nA batch of very deformed looking carrots among a group of different types of vegetables.\nA small pizza on a wooden cutting board.\nA large jetliner sitting on top of an airport runway.\na kid in an ocean swimming besides the ocean\nThe beach chair with the umbrella is empty on  the beach. \nA guy in a jet ski goes fast in a curve. \nA white couch with a mattress sitting before a blue wall.\nA man in the street of a busy city.\nAn elephant is walking in an open area with a log on the ground behind him.\nA man is smiling and holding a piece of cake.\nA small girl smiles at her pizza creation, which looks like a smiley face.\nA woman in a brown jacket holding a kite in a field.\nTwo benches on opposite sides of a grave pathway in a park with flowers in bloom.\nA person riding a skateboard down a street lined with parked cars\nThomas the tank traveling down train tracks next to a  bush.\nA man holding a camera and a very long neck tie.\nPeople standing outside a train at a snowy train stop.\nA car accident between a car and a bus\nA cat sitting on a table behind a glass filled with wine. \nSeveral boxes of doughnuts in a line on a table.\nA woman sitting on top of a wooden bench near a park.\na dump truck in field of dirt and straw\nA group of people enjoying a day at the beach.\nA group of people standing on top of a tennis court.\nThe two giraffes are standing in the dirt.\nA bus driving down a quiet street in the city.\nA chair is sitting beside a fireplace in someones home. \nA full view of a long train traveling on the railroad. \nA yellow dune buggy on display amongst other automobiles.\nThere is a large amount of bananas hanging up. \nA man smiling in front of a white cake. \nA woman tennis player serving the ball in a clay court tennis match.\nThree men stand in a row with their surfboards\nTwo people sitting on a motorcycle that parked on the road.\nA man flying through the air while on a skateboard.\nA passenger jet that is pulled in next to the terminal.\nSome animals that are looking at something in front of them.\nA group of stuffed bears that are sitting on fake grass.\nTwo young children sleeping in wooden bunk beds.\nFresh fruits and vegetables sit for sale at a store.\nAn elephant scraping up a large tree with its tusks.\nTwo crackers and hot beverage are on a plate.\nA small toaster oven sitting on top of a wooden table.\nA man is sitting down on a skateboard\nA clock on a corner at a city intersection. \nA snow covered sign sitting below a very tall building.\nWomen taking picture of themselves while brushing their teeth.\nA child holding chocolate donut with both hands.\nA man wearing a black and purple outer garment with a paisley tie.\nA group of animals walks on sandy surface under the cloudy sky\nA man is skateboarding up a ramp in a skatepark. \nA woman is sitting on a bench with a dog behind her.\nA woman is dishing up from a table which has pizza, salad, and beer.\nA man taking a picture of two giraffes\nA large tower with a clock on it advertising transportation via train.\nabout twenty people riding bicycles through a town area\nA woman riding a yellow kayak on a large body of water.\nA computer on a table with all kinds of bottles and other items.\nA man surfing and being knocked over by a wave.\nA dog standing next to a cat in a  dirt field.\nA massive tractor truck parked on a gravel road next to a forest.\nThree airplanes on display behind a high fence.\nA woman running through a city while carrying a Frisbee.\nThe refrigerators are lined up against the wall.\nA public bus driving on a city street.\nA BOY WITH A BLUE SHIRT AND JEAN PANTS DOING A TRICK WITH HIS SKATEBOARD\nTwo airplanes are parked on a grassy field.\nA yellow cat is watching a television from a desk.\nElephants stand in a large expanse of grass. \nA living room/dining room area with wood furnishings.\nAn advanced home office with three different computers\nA group of people on a grass field together playing a game with a frisbee.\nA living room with two blue couches, a blue chair, and a wood burning stove. \nA dog laying on the grass with a frisbee.\nThere are orange beach umbrellas lined up on a beach\nWoman in party dress sitting in beauty shop with hair dryer.\nA firetruck is near a brown building off a side street that veers from a main road.\nA little boy is playing with a suitcase.\nA city street show cars going up and down the hill.\nFood in a dutch oven sitting next to a fire.\nA small horse is standing next to a water trough\na cat sitting on a table next to a tv in a living room.\nBlue and white passenger train sitting in a storage yard. \na couple of planes are out on a runway\nA few kittens in a bowl in a white void\nA dump truck parked by the side of a road. \nthis man is riding a board near a field\na close up of a person measuring and cutting a green substance\nA group of people at the beach windsurfing.\nA busy bus station with ramp going downstairs.\nA man playing a game of frisbee with himself.\na black kitty laying on a bench licking its paw\nAn elephant with it's trunk laying on a white gate.\nA man taking a picture of plates of food.\nA woman and child are crossing the street at the pedestrian crosswalk.\nA boy lying a cross his bed with the lap top \nA man running on the beach with a surfboard.\nThe people  is playing  a  tennis game. \nThere is a stop sign covered in snow.\na tiled kitchen with some appliances inside of it \nA woman sitting at a table next to a table.\nA metal microwave sitting on a counter top.\nA few llamas in a fence with fog over them.\nMany people are listening to a lecture on their laptops. \nA stove top with food being prepared on it \nA zebra standing on top of a dirt field.\nPeople carrying surfboards walking across a beach next to the ocean.\nCommuter buses parked in a lot outside an apartment complex.\nStreet signs for 92nd and Bayview in front of utility wires against the sky.\nA tray with a hot dog next to fries and a drink.\nGrey bird in a wooden basket eating bread.\nTwo gentleman standing next to each other in an office.\nA cream based soup in a while bowl with a chopped green vegetable on top.\nA furry dog with its head on a pillow on the couch\nA snowboarder sailing down a snowy hillside on a mountain.\nA man standing in a field flying a kite.\nA group of children playing a game of soccer.\nA woman on a court with a tennis racket.\nA woman eating outside near a restaurant. \nA woman holding a tray of bananas over the top of her head.\nThe people are on the beach enjoying the sun. \ntwo cats in a window near a tree \nA zebra grazing on grass near a river.\nA cow on a hill top looking for something to eat\nThe city worker is elevated in a machine attached to a truck.\nA black and white cat sleeping in a pot with a leaf less tree.\nA bench on a road side with a quilt covering it.\nA person on a surf board riding the waves\nA couple of sliced pizzas on a table.\nA view of a kitchen from behind a dining table.\nA woman standing in a kitchen preparing food.\nA cup with a growing plant and old fruit.\nA bathroom with a toilet, sink bowl and mirror.\nA boy swinging a baseball bat on a field.\nA man riding a snowboard down a snow covered slope.\nA person flying a kite high in the sky.\nA newly married couple cutting up a  giant hot dog cake.\nA train slows down to a stop at the station.\nthe man is leaning over taking a picture of another man \nThe surrounding of an outside town in the image. \nTwo men fall to the ground during an ultimate Frisbee game\nA large building on the corner of the intersection. \nsome zebra chillin in the wild with a bird flying over\nThe panda bear is relaxing on the cool rocks.\nA bathroom with sink, toilet, and bathtub and black and white floor tiles.\nA cream colored bathroom is clean and empty.\nA man on a surfboard rides on a wave.\nA black small dog standing inside of a refrigerator.\nA woman covers her mouth as she is presented a birthday cake.  \nA sign on a bus that welcomes passengers and gives safety instructions. \nA man on a motorbike with a side car.\nSeveral people play a game with a Frisbee in a park.\nAn elephant reaches its trunk over a fence toward a kid. \nA metal refrigerator sitting inside of a kitchen next to a counter.\nA dog is catching a Frisbee in its mouth.\nPeople walking in a field surrounded by a stone wall near a cow.\nGroup of books sitting in front of a white couch. \nA train inside a station moving at a regular speed.\nA couple sharing an umbrella on a rainy day.\nTHREE BLUE UTILITY SINKS AND TWO WHITE REGULAR SINKS\nA group of seats are placed on steps.\nA group of people sitting at a table in a bar working on paper work.\nA new android phone is next to another android phone.\nA yellow taxi cab parked next to a street sign.\nA glass dish filled with a banana split.\nThis is a gas station with a lot of trucks.\nA hand holding a pair of giant scissors above boxes.\npeople on a lake holding onto parachutes as they surf the water\na baseball player swings his bat at a ball \nA woman holding a tooth brush while wearing black.\na snow skier weaving around the pole markers\nTwo toilets in small bathroom stalls with two sinks in a bathroom. \nA little girl laying in bed with a tray of breakfast foods.\nA pile of pancakes sitting on top of a white plate.\nA yellow dog is walking on white snow. \na giraffe standing on a dirt road near a field..\nA plate that has a bowl and different types of food.\na small pepperoni pizza next to a fork\nA man holding a cell phone sitting in a yellow seat.\nA woman standing in a room with a remote.\nA brown dog on a leash laying on a floor.\nA white bath tub sitting next to a toilet.\nA landing jet airplane kicking up spray on a wet runway.\nA set of pizzas sitting on top of a display case.\nA man that is carrying a baseball bat.\nA photo of a gated archway with a clock on top.\nFour children in the snow learning to ski.\nA woman walking around a living room next to a TV.\nA man sitting on top of a lawn chair in a field.\na white gray and black cat is laying on top of a box\nPeople seated on wooden chairs and a bicycle parked nearby.\nStreet sign for Hollywood Boulevard with a building in background.\nMan holding a rainbow colored kite in front of people. \nA traffic light in front of a tall building with red lights at the top. \nA man sitting on a white chair on top of a tennis court.\nA YOUNG LADY IS ON THE COURT PLAYING TENNIS\nA wooden bench sitting outside of a home.\nA man is standing in a room holding something in his hand.\nA computer station with one mac and a laptop are turned on.\nA glass vase with flowers on a table \na bunch of already peeled oranges grouped together \nA long horn bull next to two sheep near a stone wall.\nTwo kites sail high in a clear blue sky.\nThe two beds have a night stand between them with a phone on it. \nTwo rectangular trays of pizza with topping on them\nA batter is waiting for a baseball to come to him.\nA motorcycle parked next to a bunch more with a plastic sign in front of it.\nA skier in a race jumping over a small hill\nA train is passing by an empty platform\nA man running with a baseball bat in his hand.\nA herd of zebra in a grassy field under a field\nA man riding a snowboard down a snow covered slope.\nPeople gathered at the bar covered with pizza, a bag, bottles and glasses\nA woman sitting at a table in front of a pile of luggage\nA man holding a tennis racquet on a tennis court.\nA dog is sitting in the passenger seat of a car.\ntwo little girls in white holding two umbrellas.\nA bunch of people gathered together in a very big crowd.\nA group of people sitting under an umbrella around a table filled with cups and silverware.\nA giraffe at the zoo looks right at the camera \nThe town square is covered by many inches of snow.\nA fighter jet sitting on top of an airport tarmac.\nA yellow fire hydrant surrounded by many types of flowers next to an apartment.\nThe image is a large building with many clock along the front.\nAn open laptop computer with a cat laying on it.\nThe large mirror has bright lighting behind it.\nA man wearing a blue shirt and a pair of glasses.\nA man in a top hat steering a horse-drawn carriage through the snow.\nA man sitting in a chair with his nipples hanging out.\nA man carrying a surfboard on top of a wave covered beach.\nA luggage bag filled with various colored pieces of clothing.\nTwo metal vats on a brick space next to wall.\nA tennis player holds his racket and looks upset\nGroup of horsed tied to line while standing in grassy area.\nA group of chefs preparing food inside of a kitchen.\na plane on an air port run way\nA tennis player stands close to the net while swinging.\nA man is skateboarding near the parked cars, \nA cat that is playing on the ground with a door.\na bunch of people are taking a photo together\nA pizza with lots of different topping son it.\nFemale tennis player swinging racket for a high ball.\nA large white semi truck parked next to a green truck.\nan extreme close up of pizza and a fork on a plate\nThree men on beach with a white surfboard next to them.\nWoman tennis player delivering hit of tennis ball during a match.\nA boy swings the bat, just hitting the ball, as the catcher and umpire are in the background in this city league baseball game. \nA living room with boxes packed and a wine glass on a table.\nA brown horse standing on top of a lush green hillside.\nA man on some skis in the snow.\nA water buffalo with long horns standing in a wooded area behind a wire fence.\nA bathtub with candles lit up around it and a stool next to it.\nA man flying through the air while riding a snowboard.\nA close up of green apples with other fruit out of focus in the background\na plate with a cooked dish and a spoon sitting on a table\nA very dingy and grime bathroom that's in someone's house. \na group of stuffed teddy bears in a display case\nA bike attached to the front of a blue bus.\nA table full of green vegetables that are for sale\nA wooden table topped with vases full of flowers next to a brick wall.\nA bus stopped in front of a tall red building.\nA train sitting idle in an empty train station\nA little girl sitting in front of a table full of dishes.\nA man on skis with several other skiers on a hill.\nThe sun shines through a window into a clean living room with a tile floor.\nA black pan filled with mushrooms and vegetables.\nA brown purse is sitting on a green bench.\na black kitten sits in a designer bag\nA person flying a kite near a basketball hoop\nA giraffe is standing outside in the woods.\nA man in a suit tossing a frisbee\nA sculpture of a toilet made from woven wood. \nTwo horses graze in a grassy pasture lined with pine trees.\nRaw mango and orange and ripe bananas in a bowl\nA bike buried under snow next to parking meters.\nA muffin tin filled with lots of  muffins.\nGroup of snowboarders on a snowy trail overlooking a mountain. \nA group of people gathered in the lobby of  a building.\nA man in a white shirt and black shorts jumps near a soccer ball.\na lady that is cooking some food on the stove\nA person is using a surfboard on a wave.\na small boy holding a fork with some dessert being shoved in his mouth\na bathroom with a white sink and  tolit\nA train with brown cars on train tracks.\nTwo ponies eating grass in a field with tall grass.\nA man riding skis while flying through the air.\nAn old man smiling while sitting on a bench.\nA tagged cow and a calf lying in a field.\nFruit in a jar filled with liquid sitting on a wooden table.\na parked train sits next to some people walking in a depot\nA plate of noodles and broccoli are shown.\nA field full of green plants and fruit.\nA crow sitting on the top of a bench\nA baby holding a toothbrush in it's mouth.\nA hipster emo woman with very large breast.\nA living area with chairs, shelves and a fireplace.\nA man walking past a group of ladies walking down a road holding pink umbrellas with his gut and moobs handing out.\nA hand pulls a slice of mushroom pizza from the pie.\nA pizza with cheese, sauce and spinach leaves.\nA woman with blue hair standing next to a horse.\nA man riding a skateboard through the air at a skate park.\nA computer with an image of lighting on the screen. \nA herd of sheep walking across a lush green field.\nA wooden table topped with fruits and vegetables.\nA person brushing a cat with a brush.\nA group of men standing near parked motorcycles\nA very cute cat sitting on a park bench.\nA group of people that are behind a bus.\nLooking at a barge cross a channel of water under a cloudy sky\nA close up image of a pepperoni broccoli and cucumber pizza. \nImages of 3 unusually long hot dogs sticking out of their buns.\nA vase filled with lots of pink flowers.\nTwo horses standing on a lush green field.\nA group of lego men standing on top of a computer keyboard.\nA clean kitchen is shown with and without a center island.\nA guitar case rests on an empty bench\nA woman sitting next to a  man on top of a purple bench.\nA woman holding onto a man while standing in a living room.\na sculpture made of spoons and an old toaster\nTwo chairs are next to a vase with a dried plant in it.\nA couple of elephants washing a baby elephant in a river.\nA group of people on motorbikes ride on the road.\nA dinner table shot of a person holding a sandwhich accompanied by fries and beverages \nfour people sitting at a table eating and laughing\nEmpty chairs are covered by umbrellas on a beach.\nA blue train traveling along a very long bridge.\nThere is a little girl crying next to her stuffed animals\na person that is on a horse in a field\nA couple of older folks standing in a kitchen.\nA fleet of ships docked on a sandy beach.\nA table topped with plates and glasses with eating utensils..\nA large passenger jet flying over the top of a forest.\nA bowl of apples and bananas sits on a woven cloth.\nA family of sheep standing next to each other on a lush green field.\nthis is a group of people standing near a river \nA man and two children laying on surfboards in the sand.\nA man drinking some wine using a wineglass \nA herd of zebra standing next to each other while drinking water.\nTwo young girls on skateboards with a beagle in the front.\nA woman holding a pink and white polka dot umbrella.\nA woman in a red dress holding a cell phone.\nTwo white sheep in grassy area with mountains in background.\nA man riding a bike past a white delivery truck.\nA horse is attached to a carriage. \nA grilled sandwich including vegetables is arranged on a long plate.\nA mirror reflecting the image of a white kitchen oven.\nAn Italian dish is presented on a white plate.\nA food truck pulled up next to a person.\nA man wearing a hat while standing next to a body of water.\nA female tennis player is attempting to serve the ball. \nA flock of doves and a man sitting in a park.\nA blue surfboard sticking out of the green grass covered ground.\nA bathroom with a sink and toilet and dark hardwood floor. \nsome food is laying on a white and blue plate\nThere are two zebras grazing side by side.\nMan standing in front of a television holding up a Wii controller. \nA Virgin Airlines plane and an American Airlines plane. \nA girl on a couch with a laptop, and a cat beside her\nthere is a man and a woman playing a video game together\na cat sitting in a chair looking up\nan amtrak train going down a track underneath a bridge\nlarge NASA plane parked near the landing stripe next to a smaller plane\nA woman sitting at a table while holding a pair of scissors.\nA man falls down while skating on a slope\nthe dish is full of very colorful ingredients,\nan orange and white double decker bus and a woman and child crossing the street\nThere is a blender with a green mixture in it\nA blue bird sitting on top of a tree in a forest.\nA bathroom sink under a mirror next to a plant.\nAn old bus is parked in front of a market. \nThis toilet has a lot of wadded up tissue paper in it.\nA small bird standing on top of a sidewalk.\nTwo dogs sleeping on a small dog bed. The bed has many toys on it.\nA man standing next to a motorcycle on the side of a hill.\nFour bowls containing fruits and vegetables arranged decoratively\nA tennis player looking up for the ball preparing to hit it.\nA giraffe looking over the corral fence in his zoo habitat. \nA person using a mouse on top of a wooden desk.\nA bus all lite up inside and out with diffrent colors . \nA girl dressed in pink clothing standing next to a cow. \nA young man leaing a cow down a rural country road.\nA man prepares to bite into his sandwich.\nA fire hydrant is painted to look like a dalmation\nA large group of zebra standing in a dirt field.\nA man badly beating laying unconscious near a nurse.\ntwo long horned steers on the prairie enjoying themselves\na close up of a person holding a slice of orange\nA couple of trucks parked under palm trees.\na hard covered book whose binder has fallen off placed on a table\na black and white photo of an old car on a street\nCat outline in darkness with white stripe background\nTwo men play video games holding wii remotes.\nA group of people cutting a ceremonial ribbon with great delight.\na mamma horse and her baby standing in a field of grass\nA man with a polka dotted tie, dress shirt and wool sweater on.\nTHERE IS VEGGIES AND MEAT IN THE BOWL \nA sandwich with lettuce and toasted bread on a plate.\nA motorcycle sits parked across from a herd of livestock.\nA blue vehicle with a dog sitting in the driver's seat.\nA little girl wearing safety gear while standing on a skate park.\nA counter with extension cords, a toaster oven and a laptop.\na man in a white suit standing in front of some bushes \nA teddy bear is sitting on a woman's neck.\nPeople sitting under an umbrella looking at the scenery.\nThere is a woman bending down with a racket playing tennis.\nA small brown hamster sleeping inside of it's cage.\nA stunt rider performs a trick on back of a horse.\na tiled bathroom with a toilet and scale in it \nA woman standing next to a standing toilet.\nA street filled with lots of traffic next to white homes.\nA beige colored dog jumps to catch a frisbee.\nA group of young people riding on top of a snow covered slope.\nA boat is washed up on the shore.\nA street with traffic lights and cars at night.\nA cat is lying on a computer desk beside the keyboard.\nA teddy bear that has been placed in a tree.\nA car is parked on the side of the street in the rain.\nThree photos of people throwing and catching Frisbees. \nA black and white image of a train on tracks\nA group of people that are sitting on bikes in the street.\nBoys and men are lined up for a group photo.\nA woman using a cell phone next to a laptop.\nLaptop lifted up on a desk next to another monitor.\nA man and a woman standing next to each other in front of a crowd.\nA tennis player is lunging to hit the ball.\na group of motorcycles next to each other in front of an advertisement\nPhoto of airplane wing as the plane flies in the blue sky.\nA clock on a post and a church spire in the background.\nA table with portable cook stove  and other objects on it.\na frying pan with an egg that has a double yolk \nCloseup of a black hair dryer on a chair.\nWoman cross country skiing alone on a trail in the woods.\nA person took a picture of his torso and legs while laying on the top of a bunk bed.\nA tennis player is taking a swing at a ball near an audience.\nA electronic sign at an airport listing the flights.\nA little girl covering her mouth leaning on a chair.\na dog looking at a frisbee in the air on a green sports field\nA woman smoking a cigarette and talking on the phone.\nMan arranging stuffed bear in a chair watching a TV in a desert.\nA silver motorcycle with many lights parked on the street.\nA small white mouse sleeping on top of a remote control.\nA dog chasing two sheep on top of a lush green field.\na dog sits on a chair behind a glass \nA woman hitting a volleyball on a beach court.\nA guy seems overly happy about some fried food he is holding.\nA woman laying in a hospital bed hooded up to machines.\nSomeone has hung those stuffed Animals from the top of the bridge.\nA young boy sitting on a rug holding a cell phone.\nA bear that is laying down in the dirt.\nA surfer in the middle of a jump in the ocean\nA young boy eating a doughnut with sprinkles at a table.\nA pile of food sitting on top of a table next to a  glass of wine.\nThree Asian performers on a stage with parasols.\nA large passenger jet sitting on top of a runway.\nA surfer is riding a wave in a green ocean.\nthere sky is many different colors like a rainbow\na small bathroom with a toilet in it\nA pizza with many toppings is on a plate.\nPancakes with blueberries and Log Cabin maple syrup on a table.\nBuses and cars stopped at a traffic light. \nA table with a large vase holding flowers on top\na boy in his bed has food set in front of him\nThere is a bear sitting next to a bird.\nA man standing on his snowboard  by the woods,\nA group of men who are holding snowboards.\nA bunch of people in turbans at a parade.\nthe hands of a man crawling out of a toilet\nA black and white photograph of a stuffed teddy bear wearing a shirt that reads \"handle with care\" and a small stuffed sheep.\nAn orange vase filled with flowers on a floor.\nA woman in a bikini top carries a surf board near the water.\na life guard station with a surf boar and a floatee \na store sits in front of a fire hydrant \nA guy is typing on a laptop computer.\nA little girl in her underwear brushing her teeth in black vinyl boots.\nA street with busses and cars next to a bus stop.\nA woman running while holding a baseball bat.\nA red and yellow bus parked in front of a tall building.\nA baseball bat, ball and glove laying on a playing field\nLarge grey truck on display at auto show.\nA cake made up with decorations of a knitting motif\nTwo giraffes rubbing on a tree beside two giraffes.\na guy that is on a surfboard flying in the sky\nThese people are eating a slice of pizza.\na bowl of fruit, veggies, and sushi on a table\nA white dog is on a sandy beach while the sea foam washes ashore behind it.\nA narrow living room with a couch and tv.\nA slice of pepperoni and sausage pizza and a drink in a disposable cup.\nA little league team is practicing on a dirt lot.\nA multicolored stuffed teddy bear in a santa suit.\na male in a black shirt is typing on a green and white notebook computer\na surfer surfing on a sunny day and a pier in the background\nA black and white photo of a dormitory with several beds in rows.\nA formally dressed man is on state singing. \nA lamp above a sign on a building with flowers.\nA white bird sitting on top of a wooden post.\nA man holding a baseball bat wearing a baseball uniform.\nA elephant reaching out with some thing with its nose. \nTwo people sitting on a small sail boat on the ocean.\ntwo people with a motorcycle and trailer parked by a waterfall.\nA wet road in a rural neighborhood. \nA fire hydrant covered up halfway with snow.\nAn assortment of food including carrots, tomatoes, and quiches.\nA bird flying outside the window of a building.\n a man holding onto a little blond girl \nA small buckskin horse walking slowly down a hill.\nPolice motorcycles parked while police is gather together. \nA person holds a hotdog and a bag of chips.\nA room full of people eating food together.\na young female throwing a red Frisbee in a grassy area\na train cart is near a white tank\nA white sink in a bathroom under a mirror.\nThis kitchen has a metal side by side refrigerator/freezer combo.\na whole lot of signs written in  an asian language\nA man petting a brown dog while it's taking a bath.\nA man in a white shirt and a woman in a white dress hold a knife over a blue decorated cake.\nA blue pot of tomato sauce with a wooden ladle.\nA dining room table that is set with plates, silverware and a floral center piece.\nThis bathroom is so filthy it probably doesn't work anymore\nA tall clock tower and fountain with water next to palm trees and people taking a photo near the water.\nA group of zebras that are standing in the dirt.\nA row of park benches with flower beds hanging next to them.\nA room with a couch and a tv monitor \nA row of parked motorcycles sitting in front of a tall building.\nPeople walking and bicycling in a city street.\nA sink and counter in a small kitchen.\na group of people standing next to a building with a large dog\nThe tennis player is ready to return the ball.\nA skater performing a trick on a skateboard.\nA man sitting in front of a plate of food.\nA man standing next to train tracks with bags of luggage.\nA couple of people walking through a market filled with food.\nPicture of living room with modern furniture and decor\na cargo and train on the train tracks\nA baby elephant in dirt area next to a fence.\nA person is paddling on the surfboard on the beach. \nA man riding on a wave runner in the ocean.\nSome kind of a pancake that has broccoli and sauce on it.\nSome people that are hanging out in the snow.\nA woman in a bikini riding a wave on a surfboard.\nA yellow dump truck parked on a lot.\nThree monitors sitting on a table one with a view of a baseball game.\na woman siting at a restaurant table with a plate of mexican food on it \nA white kitchen filled with a refrigerator freezer.\nA dog with a hat strapped to its head.\nThree people are at a kitchen bar using their laptops.\nChocolate glazed doughnuts and pastries on a plate.\nSeveral black bulls are walking down the street.\nFour adults riding on a boat that is homemade.\nSome people riding some motorcycles through a rock tunnel.\nA man standing in a room holding a game controller.\nThe man is taking a drink from a refrigerator near a tennis court. \na man on a tennis court swinging a racket towards a ball\nA pasta salad with broccoli and tomatoes. \nA man riding skis on top of a snow covered slope.\nThree urinals in a row in a bathroom.\nFive matching teddy bears are laying on the bed.\nA laptop computer opened on a desk with a screensaver\nA stack of books sitting on top of a table.\nA CD sitting inside of a microwave oven on a counter.\nA collage of four images shows keyboards, monitors, and computer mice.\nA woman with an umbrella is standing by leaves.\nA woman in ski gear skiing down a small slope on the top of a mountain.\nA computer keyboard sitting on top of a desk.\nA giraffe is standing outside in a field.\nsome people on a green hill are flying kites\na young female holding a tennis racket in a tennis court\nA woman sitting at a wooden table in front of an open laptop.\nA toilet in front of a window, and next to the shower are shown\nA man holding an umbrella while walking down a street.\nThe large motorboat is painted yellow, grey, and white.\nA cross country skier traveling past many evergreen trees.\nA close up of a zebra's back with its neighbor's mane in the background.\nA man is pointing at something in a living room scene.\na large lake with a couple of guys on a boat.\nan elephant has face paint on walking around\nA brown horse with blonde hair standing in an open field.\nA wall of video games next to a fridge .\nA lone, blue and orange bird sits on a bare tree.\nAn exotic horse kicks up its hind legs at another horse.\nA bird is trying to find food in the water. \nA photograph of two cows grazing on a green pasture.\nA young child plunging a toilet with a plunger.\nA CROWD OF PEOPLE WATCHING A SKATEBOARDER PERFORM\nTwo riders on horses kicking up dust while training.\nA bright living room with a large clock on the wall.\nFour bears standing on a fallen tree outside. \nA whole cheese pizza with a fork and a knife on a table.\nA kite being flown in the middle of a beach.\nThe clock has pictures of different birds on the numbers. \nSix different cellphones on a white textured surface.\na city clock on the street of a city\nBlindfolded men standing in robes are tasting wine.\na person jumps a snowboard over the snow\nA woman in white blazer with black umbrella on street.\nSkiers and snowboarders share a white mountain slope.\nA skier is going down a snow covered hill.\nA business man walking along side the baseball field.\na woman is laying down with several puppies\na blue train driving on a train track below multiple power lines.\nA snowboarder is heading down a snowy slope.\nA giant gray elephant standing behind a small car in front of a store.\nA man tossing a frisbee standing on a stone path in the woods.\nA person is holding a video game controller\na person with a wake board in a body of water\nMan reading a book with large square glasses.\nA man holding a chocolate covered doughnut while sitting in a chair. \nA black bear walking across a leaf covered park.\nA small black cat stretching on a bed \nThe woman has swung her tennis racket behind her back.\nA white container filled with rice, meat and veggies.\nA large pizza sitting on a pizza pan with a slice missing.\nA large building with a clock on the front of it.\nA small white dog catching a green frisbee on a lush green field.\nA white toilet sitting next to a white bath tub.\na group of people in ski wear on a snow covered surface.\nThe people get off of the white buss next to the forest \nA man juggling while standing on top of a sign riding a skateboard.\nA gold colored pair of scissors cutting into a piece of bejeweled fabric with other bejeweled items in the background.\nA woman and her daughter sitting outside in the sun\nPitcher in green and grey uniform in the motion of throwing ball. \nA baseball game in progress with the batter about to swing.\nA man kneeling with his dog in the snow.\nthe green double decker  bus is parked and ready to go.\nA small bathroom with a white toilet next to a shower curtain covered bath tub.\nA fire/rescue truck in line in traffic \nA man with a small teddy bear peeking from a backpack.\na desk with a laptop and a computer monitor near a bed\nA donut that is on top of a table.\nAn alcoholic beverage besides a laptop within a restaurant \na man with a surfboard standing in the ocean looking at the waves \nA picture of a person standing by a bicycle.\nA person on skis sliding up down a path.\nThe chef is preparing many flatbread pizza's for the lunch crowd.\nA pink city bus at a bus stop.\nA man riding on the back of a blue motorcycle.\nTwo women are standing at a store near boxes of produce.\nA gray and white cat sitting on a laptop keyboard with a photo of two people on the screen.\nA motion blur of a person riding a skateboard on the street.\nA pretty woman holding a child and a little girl.\nA man standing near home plate swinging a bat.\nLooking out a large glass window to activity on the tarmac at an airport\nBaby birds walking in a swamp and over reeds.\na bunch of airplanes that are flying through the air\nA stop sign with a small American flag on top of it.\nA black bull with a man in white in the background.\nAn empty desk chair next to a laptop computer sitting on a white desk.\na man wearing an orange shirt holding up a tiny kite\nA commercial airplane at the gate being serviced\nTwo pizzas with cheese and an egg on top.\na young man is about to throw a ball. \nA man cleaning up a mess on a street with a red fire hydrant.\nTwo televisions that are stacked on top of each other. \nA LOT OF SHEEP IS IN THE GRASS WITH A SHEEP DOG\nA tall green building with a massive tall brown clock tower behind it.\nTwo street signs read \"Dead End\" and \"College\".\nA living room filled with yellow furniture and a flat screen TV.\nThe blonde woman in the red checked shirt is learning to use Wii Fit.\nA wooden desk with several computers on the desk, including laptops and computer monitors.\nA baseball player throwing a baseball on a field.\nA man and a young boy pull luggage next to each other.\na close up of a plate of pizza on a table\nA giraffe and a boar standing at the side of a pond.\na man holding onto a roll of film in one hand and a tennis racket in the other \nA man in uniform holding a musical keyboard.\nA checkered table with plates of food and deep dish pizza.\nThere are some female athletes playing frisbee together\nA person wearing red, skiing down a snow slope.\nA lucky bamboo plant in the window of a small bathroom.\nA clock that is in between two windows on a building.\nA couple of dogs lying on a bed in a trailer.\nDozens of people watching a large colorful kite about to be flown\na bath room with two sinks a large mirror a bath tub\nA little girl wearing pajamas is riding on a skateboard.\nA donut on a plate in the microwave\nThe two little girls are snuggling under the covers in their parents' bed.\nA bunch of bananas bundles together with a lady taking pictures\nThe kitchen appears to be tidy with the dishes drying and the brook in the corner.\nThere is a small yellow bird standing on a fence\nChildren's room with a bed and a small crib with stuffed toys on the ground. \nTwo men standing with Nintendo Wii controllers in their hands.\nA woman standing on a tennis court hitting a tennis ball.\nSnowboard rack at bottom of ski hill near building.\ntwo train on a track near a building \nA woman gathers the trash in her kitchen.\nA tall massive clock tower towering over a city.\nA water hydrant on the side of the road .\nA kitten being roasted inside of a microwave oven.\nA person on a laptop sitting in a room.\nA man who is playing a video game.\nA bird standing on a ledge looking out.\nTwo pieces of broccoli being held up on a fork\nThree horses in their pasture on a farm.\nA little girl laying on top of a bed on her stomach.\nA child in a hat playing on a laptop computer\nHere is an image of an outdoor place.  \nA young woman holding a tennis racquet while wearing a short skirt.\nA group of men riding skateboards up the side of a wooden ramp.\nA fireplace with a fire built in it.\nA man walking along a beach holding a surfboard.\nAn orange being held up to a christmas tree bulb.\nA man in the kitchen is doing his job. \nA very large teddy bar in the display window of a store.\nA small baby on top of a green blanket next to a teddy bear. \nThe inside of a kitchen with different appliances\nthe fully furnished basement looks clean and orderly\nOne man rides a skateboard down an empty pool while another man watches.\nA big zebra and a little zebra standing and looking.\nA street sign is posted to watch for senior citizens.\nA blue and white double decker bus parked in a parking lot.\na keyboard with five screens and a laptop\nA brown songbird perched on the handlebars of a bicycle.\nThis is a picture of a post with several street signs attached. \nWith their legs up on the furniture and the tv on, they sat in a living room setting of a house.\na large zebra standing on some short grass\nA yellow traffic light above a street next to houses.\nA living room area that has a couch, table, and lots of photos on the wall.\nA group of horses standing around in a line.\nA bath tub sitting next to a large window.\nThe woman is ready to launch her kayak with her dog.\nA white truck driving down a curvy road near trees.\na group of people on water skiis doing tricks\nA woman with an umbrella hat talks on her cell phone. \na cake on a table next to a glass of wine \nA cat laying on top of a couch.\nA small child wears a helmet while riding a skateboard\nA man on a snowy hill during the day.\nA man and child that have a kite.\nA man wearing a beanie and a neck tie.\nA group of young children sitting on a bench\nA delivery truck parked next to a blue crane.\na woman in an equestrian outfit riding a white horse \nA parked motorcycle sitting on a lush green field.\nOld fashioned computers are lined up on a desk.\nLittle girl with messy hands eating a cupcake with frosting on top.\nA broken down building with a clock that collapsed. \nA man holding a Nintendo Wii controller in a living room with a blue leather couch.\nA white plate of food on a table.\nObama speaking from at podium at the London Summit in 2009.\nA desk that has a laptop computer on it.\nTwo elephants playing with each other and interlocking their tusks.\nA young woman is lying on a bathroom floor with her legs on the bathtub. \na small toilet in a bathroom with tile walls\na clock on top of a building indicating that it is eleven o'clock\ntwo people with ,two umbrellas walking along a pavement.\nA couple of dogs walking next to a couple of chairs.\na long row of motorcycles parked along a sidewalk in a city\nA street sign on top of two one way arrow signs.\nA old bench next to an old building.\nTwo pizzas sitting in pie pans on top of  a stove.\nA person at a table eating some food.\nA baseball player holding a bat standing next to home plate.\nTwo sheep grazing on a lush green grass covered field.\na man is sitting at a table on a train\na close up of a pizza on a plate with knives and forks\nA person riding on the back of a horse drawn carriage on a beach.\na machine to make a drink placed on a table\nA man in a suit and tie holding a violin bow.\na bunch of street signs on a pole outside\nRows of motorcycles in parking lot next to buildings.\nAn airplane on a large field stand on the ground. \na couple of large planes are flying through the air\nA man on a motorcycle with a passenger car attached, parked on the side of the street.\nA construction vehicle loading another vehicle onto a flatbed.\nA man hitting a tennis ball with a racquet.\nA kid tries to do a skateboard trick while sitting down.\nThe sandwich is on the table by the glass of milk.\nA young woman is flying a kite at the beach.\nA set of five train tracks in front of a graffiti covered wall.\na number of motorcycles parked near one another \nZebra and other wildlife standing together in an outdoor area that has tall grass, trees and bushes.\nA pair of skis in the open water.\nA group of people standing on a beach flying a red kite.\na plate of pancakes and sausages on a table\nA baseball player swinging and missing the ball.\nUmbrellas made and woven items on beach near waterway.\nA kitchen with a number of cherry colored cabinets\nA black and brown dog walking across snow with a red Frisbee in't mouth.\nA white and orange cat laying on top of a bed.\nA woman sits alone reading a book on a metal bench outside.\nA white plate topped with broccoli, meat and potatoes.\nA five way stop sign on a street corner lined with trees\nThe cat is looking out of the car window. \nA white toilet sitting in a bathroom on a wooden floor.\na number of people with luggage bags outside of a building\nA man riding a kiteboard over the ocean under a gray sky.\nThe cat is looking for some potential prey.\nA blue motorcycle is parked on the street next to a truck.\nA baseball player holding a bat above home plate.\nA group of zebra standing on top of a lush green field.\nThe giraffe is walking toward a rock on a trail. \nThe boat includes several rows of orange chaird.\na man decorating a vase with a cloth in his lap\nA young boy reaching up to grab a red apple.\nA couple of horses standing in a river next to an island.\nA fire hydrant in the grass near the curb with the remnants of melting snow\nA Pokemon and Mickey Mouse standing next to a light pole.\nA broken suitcase is on the side of the road.\nA man dressed in red riding on a boat.\nA horse is pulling two people in a carriage on a street.\nA double decker bus is parked in the parking lot.\nA apple with a face carved into it.\nA woman taking a photograph of a microwave oven\na white urinal with its blue and white controller\nA white electronic toilet with the seat open.\nA row of vintage cars in a grassy field.\nA man sitting at a table with a plate of food.\nA gate is near lots and lots of luggage that is all grouped together in different clusters.\na plate of food with two sandwiches \nA dog that is standing up with a frisbee.\nA giraffe is eating leaves off of a tree\nA person leaning up against a metal rail while holding a rainbow colored umbrella.\nA surfer rides an ocean wave, a swimmer looking on.\nA group of people sit around a table at a restaurant.  \nStormtrooper figurines sit on the ground near a fence. \na man that is jumping his skateboard on some concrete\nThe small boy is holding a hair brush.\nA very beautiful woman wearing a black hat, black shirt and tie.\nA plate full of food accompanied by a glass of wine. \nA woman brushing the teeth of a man.\nA large panda bear sitting in an enclosure.\nA young boy with a bat is attempting to hit a baseball.\nSmall monkey eating fruit sitting on a rock. \nA herd of sheep standing next to each other on dirt ground.\nA older woman is on the phone in a kitchen.\nSome bananas are hanging from a banana tree.\nA blue motorcycle parked along the side of the road\nA small propeller airplane taking off from a runway.\nA person holds a surfboard on his shoulders.\nA toilet sitting in a bathroom next to a scale.\nA thing is in the outline and it shows up like something  \nA woman texting on a phone, in the back of vehicle. \nA woman in a wet suit surfs a wave.\na man in red and plack sleeping on a park bench\nA teddy bear sitting near a railing facing a beach full of people.\nA bearded ginger stands outside of a batting cage while holding a baseball bat.\nA stoplight on a busy city street in the evening\nA woman in white jacket and green skirt playing tennis.\nDelicate flowers are arranged in a green glass vase.\nTourists relaxing on the beach at the Royal Hawaiian Hotel\nThe clear pool stood empty as people stood around nearby.  \nA cat laying on to of a car roof.\nA herd of zebra standing next to each other on a dry grass field.\na bunch of items on a store shelf \nA store with some umbrellas next to a motor scooter.\nA walk in shower next to a toilet with a wooden seat.\nA man standing next to a set of piked motorcycles.\nA man with a skateboard is talking to a man in a hat.\na plate with some pizza slices on it \nThree people on a sandy ocean beach on a sunny day.\nA small plane sitting on top of a runway near a parked truck.\nA man in a blue shirt and tie with red stripes.\nA person walking down a sidewalk at night.\nA red partitioned plate with various types of food.\nA plate of broccoli covered in a sauce. \nA couple of jockey's riding the horses through the beach.\nA group of motorcycles parked side by side in front of a donuts shop.\nA table topped with dessert next to a window.\na commercial plane is on the airport runway\nA very old clock overlooking a pub sign.\nA herd of animals grazing on a lush green field.\nA green apple on a wooden cutting board next to peeler.\nThe skiing woman is jumping in the air.\nA white plate topped with pieces of pizza.\nThe man is getting ready to eat the thing he is holding.\nThere is a man with a helmet riding a motorcycle.\nA basket with a stuffed teddy bear hangs outside.\nsome people riding some bikes right by some boats \nA toilet sitting in a bathroom next to a sink.\nA group of young boys playing a soccer game in progress.\nA wood paneled living room with a stone fireplace.\nA boy is laying on a bench in a park.\nA zebra and its foal in the shade of a tree.\nA black dinning room table sitting in a yellow dinning room.\nA kid on a skateboard in mid air after doing a trick on a ramp.\nTwo men on a tennis court shaking hands.\nA store with lots of unripe bananas and other products.\nA man and a women in a court with paddles in hand.\nA young woman flipping the finger next to a young man.\nA row of parked motorcycles sitting next to a white double decker bus.\nA sandwich with meat next to a pickle and a cup of potatoes. \nA giraffe behind a wire fence in a zoo.\nA man jumping in the air with a tennis racket.\nAn orange cat sitting in front of a door to a house.\nA computer workstation with a laptop and a desktop computer.\nSeveral people walking on a sidewalk, with one man holding an umbrella.\nA young girl who is looking at a tray of cupcakes. \nA bull is cleaning its balls next to a rock.\nA man kneeling down on a sidewalk to hug his two dogs.\nA young male tennis player in action on the court.\nA hipster holding a camera while wearing glasses.\nMan knelling on a surf board on a wave.\nThis man is walking with a dog down the beach.\nA man standing next to a dog inside of a room.\nA large white bus stopped at a bus stop covered in snow.\nA marina full of boats nearby a seaside town\nA city sidewalk with people walking up and down \na smiling groom holding his bride in his arms\nA man standing in front of a hello kitty tv with a cat sleeping on top of it.\nA sheep in the snow with other sheep around him.\nA man is holding an umbrella beside a truck.\nthere is a man sitting in a chair in the living room\nA very tall building sitting along side of a street.\nA tennis player shows controlled excitement while a crowd watches.\nA white rectangle plate holds vegetables near small bowl of red sauce.\na cat rubbing its face against a bottle.c\na person riding a snow board in the air \nA large red vase sitting in front of a building.\nA big black dog sitting next to a laptop computer.\nA brown bear walking with rocks in the background.\nA couple of pretty young ladies holding kittens.\nBlack and white picture of of a Southern Pacific locomotive. \nA woman sitting in front of a giant pizza.\nA wooden horse standing on top of a table.\nSome people are skiing in the snowy woods\nThe beach is filled with blue tents and umbrellas.\nThe clock is hanging from the side of a building.\nA woman walking across a street holding a camera.\nA cow grazing on the grass on the side of a side walk.\nA clock that is on a wooden wall.\nA clock tower with a a black bird flying by it.\na coin meter that is next to a parking spot\nA large black bird perched on top of a tree in a  forest.\nSliced pizza in delivery box with bottle beverage on table.\nA man on a motor bike on the road.\nA motorcycle is in a parking lot with a helmet on top.\nA skier with poles extended skiing by a flag post.\nA traffic light is showing a green arrow.\na steaming pot cooking many types of vegetables.\nA giraffe standing next to a log in a fenced in enclosure with people walking on the other side of the fence.\nSmall children with protective gear playing in a park. \nA small bowl of peppers on a counter.\nA airplane mirror where clouds can be seen.\nThis skateboarder is riding the cityscape at night when traffic is minimal.\nA man standing next to a small red truck with two american flags sticking out of it.\nApple computer monitor with a keyboard and mouse next to a ipod\nSome are standing outside a building with suitcases.\nA dog wearing a hat standing on some grass.\nThe person in an apron is arranging boxes of fruit. \nseveral people are purchasing tickets at a bus station\nA man riding a wave on top of a surfboard.\nA cat sitting in a bathroom sink under a  faucet.\nA young man tossing a frisbee in a  forest.\na bunch of ripe bananas sitting on a table.\nPaper towels that are sitting on top of a refrigerator.\nA baby in a white crib sticking its hand through the bars. \nA black bear that is walking in the woods.\na blue and white three wheeler truck  and two men\nA large group of people flying kites beside a body of water\nA bunch of sliced up sandwiches sitting on top of a glass dish.\nA fancy toilet, including a sink on the back and controls on the side.\nBenches side by side in a park \nTwo baseball players work out on the field.\nA woman in a pink bikini sitting next to a man with a surfboard.\nA tooth brush sitting on the side of a sink.\nA couple of people racing down the side of a ski slope.\nA red stop sign and some tall grass.\nA large sign hanging on the side of a metal structure.\nA snowboarder in mid-air on a yellow board\nA man standing in a room with a remote.\nFood items in basket with wine glass on table.\nYoung men playing a game of base ball\nA group of people skiing down the side of a snow covered mountain.\nA green truck with a snow plow next to a yellow vehicle.\nthere are three girls sitting in floats in the ocean\nA red stand with various baskets of fruits next to bar.\na green bus from a foreign country coming down the road\nA man and woman sitting on a  red bench\nA man is sitting on his motorcycle and ready to go. \nA glass plate topped with a piece of cake.\nTwo young women digging in to a tin pan of food in a barn\nA man walking across a street near a traffic light.\nA man flying into the air on top of a skateboard ramp.\nThe small bird is standing on the back of a metallic chair. \nA standup shower and toilet in a small bathroom.\nA giraffe that is standing in the grass.\nThe man is sitting on the bench on the side of the building. \nA bus parked on top of a red bus.\nA restaurant filled with lots of different types of food.\nPerson on skateboard performs a trick in an empty street\nVarious people standing in line in front of a gate at an airport.\nA wet street with a stop sign on the corner.\nElegant marbled bathroom with blinds and toiletries with mirror\nA brown and white hamster in hand with broccoli.\nA traffic light hanging over a street next to tall buildings.\nA basket filled with ripe bananas on top of a table.\nA very nice coffee mug with lots of writing.\nA vase filled with red flowers with green stems.\nTwo motorcycles parked beside one another in a garage.\nA zebra walking through a field of tall grass\nA grey cat starring at a hand with a donut.\na horse and buggy that is going down a road\nA man holding a large knife on top of a table.\nA black brown cat with large whiskers looking at the camera.\na black and white clock in a clock tower\nA dog standing in front of a chocolate cake.\nA busy road with people on bikes and in vehicles is shown.\ntwo people behind a stand with many bananas\nA train with a man climbing up the side of it.\nA small boy holding a plate of tasty looking food.\nThe skier is racing down the snow covered slopes. \na living room with a wooden floor and chairs inside of it \nA group of red trains parked in a train lot next to a mountain.\nA man on a surfboard riding a wave.\na box full of stuffed animals and other children items \nPeople fly their kite by the sea while a boat sits in the background.\nA toaster over with an innocent stuffed animal with a smile roasting into it's demise.\nA brown teddy bear laying on top of a dry grass covered ground.\nA man is doing a trick with a skate board.\nSmall child and protective gear jumping on a skateboard. \nA green street sign over a street next to a traffic light.\nA room with a Christmas tree filled with lots of furniture.\nA man hitting a tennis ball with a racquet.\nA man standing on top of a baseball field wearing a catchers mitt.\nSmall kitchen with wood cabinets, white refrigerator, microwave, and furnace\nThere are people that are flying kites in the air\nA cartoon dog is painted on the side of the passenger bus.\nMultiple street signs on the corner of Park Ave and E 34th St\ntwo people standing up near a couch playing nintendo wii\nA bicycle carriage riding down a crowded street.\nA man swinging a tennis racquet at a ball on a court.\nA closeup view of a pizza, with a fork near it.\nThese scantily clad people are enjoying a party\nThe refrigerator and the stove are both made of stainless steel.\nA crowd of people are standing at a fair and kites are in the sky above them.\nsome people stand up on a subway train\nA man that has a hat and a beard.\nA desert dish has powdered sugar on it.\nA young woman is vigorously brushing her teeth.\nA woman laughs while thumbing her cell phone.\nA man is standing next to a zebra with another man riding the zebra.\nA piece of pizza sitting on top of a white plate.\nA pile of bunches of bananas not fully ripe.\nA green 7th street sign hanging from a wooden pole.\nA woman that is sitting in front of a cake.\nthis is a bird flying in the sky with its wings\nThere are two people riding on a motorcycle together\n A group of people windsurfing in water with a boat in background.\nTwo brown cows walk though thick forest greenery.\nthis trains station has a white building in the background\nThe inside of a restaurant that has tables and chairs along with a chalkboard with writing on it and shelves.\ntwo people standing near one another playing nintendo wii\nA man on a cell phone with a glass.\nA woman riding skis on a snow covered slope.\nA man standing outside of a green train.\nA man holding a tennis racquet on a tennis court.\nA man is holding a pillow up as shade from the sun.\nPeople dressed as zombies walking down the street.\nA newly married couple sharing a piece of there wedding cake.\nA lady eating a slice of deep dish pizza.\nA man sitting on a stone block talking on a cell phone.\nA man standing in a park holding a pizza.\nA bathroom with several urinals lined up next to each other.\npassengers sitting in the seats aboard an aircraft\nCooling trays holding various colored cookies and cakes.\nA group of giraffes eating a plant from a hanging basket.\nA little girl is feeding a giraffe at the zoo.\nA cute cat sticking its head in a box of pizza.\nA plate with a picture of a movie character painted on it in the sand\nFour birds are walking on the sand near water.\nA couple plates of food and a bowl on a table.\na collage of many photos with people and plants \nA man with a red neck tie and a gray jacket.\nA cream color cat sitting on a wooden bench.\na cat standing in a purple litter box with green litter and lots of poop\nA woman walking past a man in a train station.\nA walkway with groups of people flying kites beyond it.\nA computer desk and chair looks like a home office.\nAn elderly giraffe with a mottled forehead looks at the camera.\nA man riding on top of a hand rail with a skateboard.\nA red double decker bus with a busted out window crashing into a large truck.\nA plate has bits of brown rice and broccoli. \nSome young children are lined up by a tennis net.\nSeveral ripe red apples resting in the grass.\nA young girl who is looking at a birthday cake.\nA couple of women sitting in front of a deep dish pizza.\nThree men having a discussion in an office.\nA bird with a bright beak standing by the waves\nA young girl jumping to reach a white disc on a beach.\nA huge crowd of young people has girls taking pictures.\nThe fire hydrant on the side of the street has lots of litter all over it. \nA fire hydrant buried in a pile of snow next to a run down building.\na couple of people sitting around a table \nA young lady standing on a  tennis court with a racquet.\nA living room with a white wall and a beige couch.\nA cake shaped like a horse with white frosting and decorative candies in different colors.\nA white bath tub sitting under a window.\nA large white sheep cake sitting on top of a foil plate.\nthis is a close up picture of a roosters neck\nA big bathroom with a couch a bathtub in the middle of the room. \nA baseball player hits a hard fly ball.\nSeveral different pieces of electronic equipment and computers on a desk.\nA lot of stuffed animals that are hanging up.\nBunches of bananas sit at the end of a boat.\nA cat sitting on a chair with a bag under its  paw\nA man that is sitting on a moped.\n A city bus parked on a very steep hill\nA car that is outside in the dirt.\nA boy holding a baseball glove at a baseball game\nA baseball player bunting at a baseball game.\nFather and son playing Nintendo video game at home.\nA passenger bus is riding down a highway. \nA couple of men riding on top of skateboards.\nA prepared formal dining table set and ready for guests.\nPerson holding a surfboard while walking along the beach.\na man standing next to a pink bus in front of a building\nPair of dogs sitting on green towel in back seat of motor vehicle.\nA group of people who are working at a table.\nA woman holding a plate of food near a grill.\nA player in action up to bat in a baseball game.\nA couple of giraffe standing next to each other.\nTwo people on a motorcycle driving up a street.\na woman throwing a frisbee in a green field.\nTwo people riding different colored horses down a dirty road.\nTwo people behind umbrellas stand facing a body of water.\nA man in shorts surfing in the ocean\nThree different colored suitcases are on the ground next to each other.\nA plane on a runway in an airport\nA bedroom has a stripped bedspread and blue curtains.\n2 Zebras standing next to each other in plaines\nA large plate is adorned with broccoli and a rather small piece of meat.\nA little girl that is holding a toothbrush.\nOne slice is taken from the thick crust pizza. \na desk with a keyboard a mouse and monitor\nA man rides a silver motorcycle down the street in town.\nA group of people with surfboards on a beach.\na grey king-cab truck is parked in a driveway\nA clock shines brightly on a dark, cloudy evening. \nA man holding a blue, red and green frisbee in his hands.\nThere is a cat laying down on a keyboard.\nAn animal walking through a river on water.\na picture of a cake with little men figures\nmany woolly sheep standing together in the field\nA white clock tower with palm trees in the foreground.\nA young man tossing a baseball bat on a field.\nA very tasty looking fruit salad on a piece of pita bread.\nFour bowls filled with different types of food.\nA mirror hanging on the side of a white wall.\nA long haired cat laying on a shoe on the floor.\nThere are trees and benches randomly scattered about in the park, and a green slide as well.\nA computer desk holding 3 monitors and a laptop.\nA living room with couch, settee, and a tiled floor.\nA large bed sitting in a bedroom next to a window.\nA red helmet is on a yellow toilet in the dirt.\nAfter a long day surfing, this couple walks down the shoreline.\na person riding a horse jumping over an obstacle \nA living room filled with furniture and a lamp.\nA black horse that is tied up eating grass.\nOld rusted transit train cars sit on the tracks. \nA couple of zebra walking next to a giraffe on a lush green field.\nTwo opponents are having a game of Frisbee.\nA man standing on the side of a road holding a protest.\nA man standing on top of a sandy beach near an upright surfboard.\nA mixed breed dog in a red collar pants in the heat outdoors.\nA large square shaped pizza covered in melted cheese and veggies.\na person with a black oven mit is taking a pan out of the oven\nA blue and red vase on a table top.\na red train on a train track below power lines.\nA large group of teddy bears wearing bow ties\nA cat looking down at a book. It appears to be reading it.\nA train traveling along a loading platform at a train station.\nA father, daughter and infant sitting on a green sofa.\nTwo traffic lights showing red on a pole with a camera. \nA white toilet sitting next to a sink near a red wall.\nA man cooking hot dogs and hamburgers on a grill.\na sheet of stickers for a keyboard with Hebrew letters\nSpectators are watching a snowboard competition of the Olympics.\nA piece of cake sitting on a plate next to a drink.\nA bridge filled with blue and white buses.\nA table with many pieces of cut up broccoli.\nA person holding several carrots in their hand.\nA hand holding a half of a sandwich next to a piece of dessert.\nA dog sitting in the bed of a truck. \nA man is taking his own picture in a mirror.\nA train moving along a track near a field.\nA woman and two men sitting on a bench in front of a store.\nA store filled with piles of ripe bananas on display.\nA group of many statues in red on a table.\nA soccer player in the midst of kicking a soccer ball.\nAn empty boat in the water near a tree\nA man riding a snowboard down a snow covered slope.\nA chicken and waffle sandwich on a plate.\nA slice of pizza sitting on top of a white plate.\nA sunset behind a hill with a bay of boats in the foreground.\nA couple of women walking across a beach next to the ocean.\na worker working at a asian restaurant handing a customer food\na small dog is standing in a sink\nA plate filled with pasta and vegetables on a table.\nTwo pedestrians underneath their umbrellas walk across an open plaza in a rainstorm.\na transit bus on a street under a bridge\nA very tall clock tower with a clock on it's side.\nA woman sitting on a bench with a brick wall behind her.\nA man is swatting at an object with a bat.\nrear view mirror reflection showing a dog in the back seat\nA black and white photo shows someone standing on a beach behind a curtain\nA book sitting next to a cup of coffee on a bench.\ntwo tennis players on the court being watched by spectators \nA young man skating on a slope as a crowd watch\na small child is inside of a blue case\na bunch of food that is on a plate\nA young girl is holding a stuffed animal.\nTwo small pepperoni pizzas served on a white plate\nA man that is standing on a court with a racquet.\nA little boy sleeping on a couch holding a Wii controller.\nA group of people standing on a bitch flying large kites.\nA blond woman kneeling in front of a parking meter.\nA toothbrush in a cup sitting next to a sink.\nA train with several cars is on a train track. \nView of a public men's' room with a  cot on the side.\na close up of a person with a tie in his mouth\nPhotograph of an outdoor arena that looks great. \nA man riding a motorcycle with a helmet on. \nA beautiful woman holding a tennis racquet on a court.\nA city with lots of tall buildings and a massive blue clock tower.\nA bath room with an old fashioned looking tub.\nThe street sign is clearly visible for all to see. \nA skateboarder performing a trick on a skateboard.\nStatue artwork carrying red umbrella in man made pond. \na public transit bus parked on a city street \nA window shot of a plane in the air with another plane present. \nMan with his arms out snowboarding down the mountain\nMultiple lane road in large city on sunny day.\nRoadway intersections in urban area near waterway with bridge.\na jet airliner wing that has two jet engines\nPeople are on their laptops at he desks doodling. \nA young attractive woman sitting on a toilette on the side of a street.\na person sitting on a bike near many other parked bikes \nIce explorer bus on a road near mountains.\nA young man riding his skateboard on a ramp.\nA woman sucking on a very large sausage with her breast hanging out.\nA man riding a surfboard on top of a wave.\nYoung man in orange jersey throwing a baseball.\nsome buildings cars and street meters and a sign\nA man standing on a beach holding a surfboard.\nA batter getting ready to swing at a ball as the crowd watches.\nA man that is standing on a tennis court with a racquet.\nA black bomb squad truck driving down a  road.\nTwo men in suits and ties shaking hands.\nA kitchen area with a stove, sink and microwave.\na kitchen with a window some cupboards \nA woman carrying a surfboard walks along the beach.\nA toilet and container in a small room.\nA person using a photo filter holding a samsung cell phone.\nPeople are sitting at the beach surrounded by tiki umbrellas.\nA bed with a red flowery blanket in a bedroom topped with pillows.\nA person in yellow pants and a blue shirt carries skis up a snowy mountain.\nA man riding a snowboard down a snow covered slope.\nA group of people on horses on a field.\nA bacon and cheese covered hot dog on a paper.\nA woman standing with a bi-wing airplane on a runway.\nA group of men carrying surfboards on a beach.\na living room with some brick walls and a fireplace\nPizza with different vegetables sitting on top of a wooden slab. \nOne man is taking a photo and two others are holding Wii controllers.\nA black and white photograph of men on bicycles in a city.\nA group of giraffe standing next to each other in a field.\nA woman standing in front of a doorway under a window.\na cat laying on top of a chair in the living room \na blue vase with yellow flowers sits on a windowsill\nA herd of sheep passing by people behind barriers.\na road that has some snow all around it\nA bus stop that has buses under cover.\nA cat hides underneath the cover of blankets.\nApple desktop computer with white keyboard, mouse and monitor on a desk.\nA stone clock tower surmounted by a spire and minarets.\nLarge white flowers are in a glass with paper tied around it.\nA group of large elephants standing in the water.\nAn African elephant walks through a patch of swampy brush.\nA tall brick clock tower sitting under a blue cloudy sky.\nA little girl holding a cell phone in her hand\na sink and an oven in a kitchen\nA guitar on a bed in a room.\nA water foul near the shore in a body of water with an island in the middle of it.\nA dog sleeps in a carrier  inside a mans coat.\na close up of sliced apple with a blurry background\nA pizza sitting on top of a wooden table.\nA young boy riding a skateboard through the air.\nA brown bear walking down a grass covered hillside.\nAn open refrigerator has food stacked in it.\nA man in white jacket and red tie and a woman in a white headdress.\nA herd of wild animals drinking from a river of slow moving water.\nA woman taking a swing at a tennis ball\nVarious equine (horses and zebras) inside stalls under a tent.\nA dog is chewing on a soccer ball.\nA dog wearing a witches costume standing on a grass field.\nA vase of light and dark purple flowers in a white vase.\nA plate of food that includes peas and pasta.\nA man in a blue jersey swinging a baseball bat.\nThe chef has prepared the pizza in his kitchen. \nA pizza sitting on a table, it appears to have everything on it.\nA very attractive woman holding a tennis racquet.\nA bunch of papers that are sitting on a table.\nA man standing outside beside a bunch of fruit. \nA truck parked in a parking lot with a blue sky background.\na keyboard sits under neath a monitor \na woman laying in bed with just a blanket covering her\nA picture of a tower clock in the middle of the city on top of a building \nA man is standing on a dock near water with a passenger boat going by large buildings in the background.\nThe delivery truck has colorful bottles on the side of it. \nA group of friends huddled next to each other while holding snowboards.\nA large brown horse walking through a lush green forest.\nA bench that is sitting on a cobblestone sidewalk.\na close up of a pizza on a wooden spoon\nA bath tub sitting next to a white sink.\nEggs, Biscuits and gravy with coffee and a cherry danish.\nA man sitting at a computer desk in front of a monitor.\nTwo decorated cakes in boxes on a table\nA herd of sheep standing next to each other on a field.\nA metal pan filled with lots of green and white food.\nThese clams on the half shell are a seafood staple.\nPeople crossing the street of a busy city street.\nA sink in a kitchen with an overhead light on \nA black and tan dog sits in an easy chair near a window with a polka dot shade.\nA small wooden and brick structure next to a field.\nA man that is sitting in front of a laptop.\nA couple of men standing in a living room holding game controllers.\nA pregnant women takes a selfie wearing a black tank top.\nA woman in white shirt standing in kitchen area.\nA dog laying down on a fluffy carpet\nA bus on a divided street near a stop light.\nYoung man flying a kite over a grassy area by water.\nA bunch of people standing in the street near the Whitehouse\nA horse eating a banana out of an older woman's hand.\nCloseup of a hand holding a black cellphone.\ntwo zebras are standing next to each other in their pen\nA large cathedral with a massive tower in front of a street.\nA herd of elephants walking across a river filled with muddy water.\nA living room with some empty couches in it \nA man with a remote in a small room.\nA large metal spoon sitting on top of a cup.\nTwo men walking together in a parking lot with a sleeping bag, a pillow, a comforter and suitcases.\nA bird that is perched on a branch.\nA kitchen table with chairs and a space heater.\nA clock is high up on the side of the tower wall.\na large white cat laying next to a closet and black shoes\nA man winding up with a baseball on a mound.\nVehicles on a road near zebras and gazelle.\nA green train pulling into a train station.\nA table with a bowl, pitcher vase, and coffee mug.\nA somewhat made bed with white covers and green flowers pillows. \n3 slices of pizza with bell pepper, olives, and avocado\nA living room has a fireplace and a piano.\nA couple of different doughnuts in a box \nA man in a tie waits in a room full of people.\nTwo horses grazing in a field next to forest.\nA man wearing a white shirt and tie looking at a paper.\nA slice of pizza is on this plate.\nA lot of people flying kites on the beach .\nA guy doing a skate boarding trick over some other guys leg\nA man herding a large flock of sheep down a street.\nA white cake topped with coconut on a counter.\nA lone young male adult surfing the waves.\nA surfer being filmed going up a big wave.\nA phone mounted to an apparatus next to a desk.\nThe young girls are playing a game of soccer on the field. \nCars, truck and carriages are traveling on the road\nA white vase filled with small oranges sitting next to a sidewalk.\nTwo men and a woman standing in a parking lot by a doughnut shop.\nA man flying though the air while riding a skateboard.\nA man holding a birthday cake with a small child.\nA train on some tracks above a city area.\nA box filled with different flavored donuts on a table.\nA little girl standing in the sand with a kite.\nA woman in tight blue jeans standing next to a brown horse.\nA traffic light with four signals sitting next to a tall building.\nA person's feet crossed at the end of the bed. \nA large giraffe is looking at a person from the other side of the vehicle. \nA baseball hitter swinging his bat during a baseball game.\nA group of birds all grooming themselves in shallow water.\nThe big grey bear is staring at something\nA young boy sitting on a child's toy laptop computer.\nA white and red truck with chrome rims parked next to a building.\nA blue and yellow train sitting in a train station.\nA man in black shirt falling off of a surfboard in ocean.\na man getting ready to hit a tennis ball with a racket\na woman in the street holding a large opened umbrella\nA colorful train sits on the tracks in the sunshine.\na kid holding a cell phone on her ears\nA snow boarder riding down a snow covered summit.\nA couple of people at the beach during the day.\nA metal advertisement sign with a red and white clock.\nA herd of horses standing on the beach near the water\nAn orange sits on top of two limes which are all in a ruffled bowl.\nA couple of traffic lights sitting under a cloudy sky.\nA wooden table topped with a pastry and a cup of coffee.\nTwo blonde horses standing in a field grazing on grass.\nA red stop sign sitting on the side of a road.\nThree people on horse back at a rural road intersection.\nTwo metal bowls filled with apples and oranges.\nA man ready to swing his tennis racket\nBaby brushing teeth while sitting on a toilet.\nA white plate topped with sausages and veggies with gravy.\nA man swinging a tennis racquet towards a tennis ball.\na man using a red phone receiver to talk on his cell phone\na person is flying a kite in a field\na pole is above a couple of skies\nTwo teams of small children are playing a soccer game. \nA blue plate of food on a table.\nA woman making cigars in a factory with a pink towel on her head. \nThere is a stop sign with a factory in the distance.\na brown horse is walking in between two cars\nA tiled bathroom with white towels hanging up. \nA smiling girl is talking on a phone.\nThe woman in the kitchen is holding a huge pan.\nA giraffe and ostriches that are in the grass.\nA train covered in graffiti on top of train tracks.\nTwo people riding a ski lift with snowboards on their feet. \nA tall white clock tower inside of a tall building.\nSeveral vanilla Cokes on a desk with a laptop.\nA man riding skis on a snow covered ski slope.\nA picture of some people about to board a plane.\nShot through a clear umbrella showing a person with a red umbrella.\nA van is parked next to a fire hydrant.\nA couple of kids with some food on a couch.\nA baseball player holding a bat next to home plate.\nA plastic container filled with a sandwich, sliced berries and sliced cucumber.\nTraffic lights next to traffic signs on a bridge.\nA man is water skiing behind a motorboat.\na large passenger sitting next to a loading doc at an airport.\na white and blue bus is by a curb\nA person driving a car towards an overpass.\nsome snow skiers and some snow and trees\nA group of people are walking dogs on a large sidewalk.\nvarious food dishes laid out on the floor.\nA room with a tv in the background and a laptop screen in the foreground \nPost with numerous traffic signs in large city setting.\nA young boy sitting in front of a plate of food.\nA dying plant cutting in in a bottle of water.\nA sign hanging on a wall says \"Don't STOP drinking\"\nA man that is holding two suitcases over his head.\nA clock sits at the top of the ceiling\nA man standing on a tennis court holding a racquet.\nA woman with dark makeup on holding a sandwich.\nA little girl standing at a table in front of a pizza.\nA two story white building next to a building with an brown a frame.\nA cluttered room filled with a tv and a kitchen. \nA black dog comfortably sits atop an easy chair sitting in the bed of a pickup truck.\na bathroom with a mirror and a sink\nlittle girl with her bunny beside her sitting on a bench\nTwo mini elephants walking  toward people on a plank \nA four engine jet transport airplane flying low.\nA little girl standing in a room with no shoes on. \nA pair of scissors sitting on top of a table.\nA picture of a blanket on the sidewalk covered with flower headbands, knitted caps, assortment of cloths and a lunatic sign. \nA man standing next to an elephant with a long trunk.\nPeople are standing near a tall steeple with a clock.\nA group of horses are grazing in the field.\nA kitchen with a stove, oven, cabinets and blender.\nThe pizza is on wax paper near a paper plate.\nA group of people sitting around out doors sharing a meal together.\na cup with toothbrushes and toothpaste and some soap\na person holding a surf board on a beach \nA couple of people underneath a building with a clock.\nA living room has a couch, a chair, and a wood stove.\nA row of bicycles parked on the sidewalk.\nA cat on a pet bed looking at a laptop.\nA couple of people in wet suits standing by surfboards on a beach.\nAn old ornate clock face set in a brick building.\nA group of chefs displaying a large airplane cake.\nThee family is standing around the island in the kitchen.\nThe pitcher beings to throw the baseball from the mound\nA small computer upon a tan desk with a arm lamp nearby.\nA toddler boy is on a white pad playing a video game.\nA man in pajama pants carries a lime green suitcase.\nA woman holding a tennis racquet on top of a tennis court.\na black couch with a red pillow and blue blanket\nA sandwich on a plate served with garnish.\nA couple of young men standing in a living room holding Wii controllers.\nHot cereal and fruit are on the table. \nA red and green walled bathroom with a toilet.\nA woman holding a pink umbrella walking in the rain.\nA young boy holding a game controller \nA group of people standing around a herd of animals in a city.\nA woman walking on the sidewalk talking on a phone.\nA man in a blue pinstripe shirt and a tie is posing\nA bunch of cars that are parked in front of coin meters.\na traffic light hanging over a city street \nA bathroom with a marble counter under two giant mirrors.\nA kitchen with a clear counter top and wooden cabinets, along with a white dish washer under the counter.\nA tall church tower under a blue sky filled with white fluffy clouds.\nAn old picture back in the 60's or 70's of a group of men and woman.\nLight breaks through a cloudy day at the pier.\nA dog catching a Frisbee in the grass.\nAn area with rocks on the ground and a dog sitting on them. \nTwo pizza pies in take-out boxes on a counter.\nThe small kitchen has a black counter and wooden cabinets.\nCOLORFUL BRIGHT EYED CAT SURROUNDED BY ALL BLACK AND WHITE BOTTLES AND CANS\nA man with a suit and tie about to speak\nA young woman riding a pink surfboard on a wave in the ocean.\nA passenger train is sitting at a station.\nA man and a woman sitting at a table with a child.\nParking meters and signage are on the side of the street\nA set of three pizzas in a display case.next to desserts.\nA polie officer standing next to a  motorcycle parked on the street.\nArrows show what to do with the bowls of food.\nA traffic sign sitting next to a sidewalk on a street.\nthis motorcycle rider is wearing the same colors as his bike\nA group of kids that are sitting together.\nVarious street signs including one that reads \"Newlon Hale Village.\"\nA cat wearing a bow tie standing on a blue rug.\nA very rusty old car near some pretty flowers.\nA picture advertising Arizona tourism in an airport\nA breakfast of croissant and coffee sits on a table.\nA group of man riding a skateboard down a street.\nThree horse grazing on grass near a street sign.\nA nice ooking smart phon with a sticker on it\nA woman holding shears in one hand a tile in the other.\nThe elephant is walking around in the park.\nSeveral pieces of art and a painting on display\nA pool with several lounge chairs on a sunny day.\nA lady staring lovingly into her pizza. \nA man riding a motorcycle across a lush green park.\nA stuffed toy dog sits and looks upright.\nA person mixing up food inside of a Nutri Blend.\nA woman in her underwear next to a naked man holding cookies.\nLarge assortment of small and large vases displayed outdoors.\nA large gray elephant standing on top of a grass covered field.\nA man riding a surfboard on top of a blue wave.\nA blue toilet bowl in a bathroom that says rabies\nGraffiti stains the surface of a green and white sign.\nA high clock tower standing in the sunlight.\nThis is some pink luggage that is sitting together in a group.\nSkewed clock tower standing behind an old misshaped building.\nA kitchen with a wooden counter next to an oven with a stove.\nA person on a motor bike doing a wheelie jump\nA salad of noodles, asparagus and meat in a dish.\na dog is tied up by the leash outside with a bag\nA newly married couple eating cake with each other.\nA bike parked in front of a parking meter.\nA man in glasses is mixing in bowls near pots on a stove.\nTwo dogs in a car looking out the window.\na man standing in a bathroom looking into a mirror\nA colorful bus driving down a street in front of a bus.\nSheep out grazing in green grass on a farm \na person hitting a ball with a stick in a office.\nA boy standing on a WiiFit board holding a Nintendo Wii controller.\nA group of people dining outside at a round table\nA person working in an office is talking on cellphone.\nA large passenger jet flying through a blue sky.\na young man on a skate board doing a trick \nTwo boats are at the dock in front of brick buildings.  \nA little boy wearing a baseball hat holding a baseball bat.\nPotatoes sitting underneath a bunch of bananas. \nA group of green vegetables with some radishes and cauliflower.\nA woman in red sitting on a park bench.\nMan rides a horse down a city street.\nA white and gray dog sits on a bed near a pile of rumpled sheets.\nThe bathroom has a blue trash can on the floor\nA fire hydrant in front of an empty sidewalk.\nA ski resort that has a couple people outside. \nA skier with a backpack zooming down a snowy slope\nsome luggage and a back back sitting on teh ground next to a lap top\na woman holding a colorful striped umbrella \nA skateboarder gaining speed going through the street. \na desk with a laptop a monitor and a keyboard\nA man that is sitting in the sand near surfboards.\nA group of solders cutting up a sheet cake.\nA very nice looking scooter and some bikes parked by the road.\nA crowd of people standing outside of a parked bus.\nA female sheep with her two young lambs.\nA woman standing on a tennis court holding a racquet.\nA motorcycle has three people riding on it.\nThree workers stand next to each other with their baked goods behind them.\na green and blue parking meter siting on the sidewalk\nA small dinner table with chairs, a pouring picture and a mirror above it.\nA clean sink is in the middle of the counter.  \nA man and his little dog outside protesting Petland\nA  horse in the water next to the birds\nA man's reflection taking a picture through a shop window.\nAn elephant stands in the grass staring out.\nTwo dogs destroying a brown teddy bear by ripping out it's stuffing.\nA couple of horses standing next to each other.\nA skateboarder's airborne feet and skateboard near a curb\nA room with a large cabinet filled with white towels.\nA large potted plant sitting next to three bottles of wine.\nA man with remote standing in a room.\nA knife being slid into a wooden block.\nA skier makes a jump on a very steep hill.\nLiving room with white fireplace and brown furniture. \nA group of white teddy bears on a white table.\na silver and black train on its track and a red light\na male skateboarder in a black shirt is doing a trick\nA woman and a man standing next to a bush bench.\nAn infant laying on a bed with his eyes closed\nsome little stones sitting around a dime \nA zebra looks away from the camera at the zoo.\nA motorcycle parked in a parking next next to a car.\nA person flies a large yellow kite on a field.\nThree people playing tennis on a grass court. \nA large brown dog sitting in front of a paw shaped cake with a lit candle.\nA young boy is doing a trick on a skateboard.\nA long blue classic truck parked in a parking lot.\nA guy and some friends standing around with longboards. \na toilet a shower a sink and a white cabinet\nA zebra and an ostrich standing in a large grassland.\nA black and white cat sitting on the side of a computer monitor.\nA man goes skiing at a park with all his ski gear on. \nA woman hitting a tennis ball on a court.\nA traffic light is standing in the middle of the street as buses are driving in the background.\nA lit fireplace with decorative items on the mantle and a portrait above it.\nA bench is surrounded by grass and a few flowers.\nTwo guys on an orange rescue boat near land.\nA couple of small horses walking across a field.\nA person that is drinking some beer on a table.\nthere are a few kids on snowboards on the snow\na couple of zebras that are walking down a field\nA close up of a zebra standing by a metal feeder.\nA brown sofa and ottoman with pillows and remotes.\nA dark blue parrot holding a gray lizard in its mouth.\nWoman sitting on a horse in a field.\nTwo woman are playing paddle board on a beach. \nA young man is throwing out a pitch at a baseball game.\nA river with men riding paddle and surf boards on top of it.\nA large green leafy plant with a flower.\nA woman standing on the outside of an airplane.\nA group of young children sitting next to each other on a couch.\nPeople behind a barricade watch a man ride a motorcycle.\na wood bench sitting in a park with three people sitting on it \nA little boy using an open laptop computer.\nA picture of a person a dog and a horse.\nA pile of pineapple sitting next to a pile of bananas.\nA man riding a surfboard on a wave in the ocean.\nA young man with red hair kicking a soccer ball.\nA miniature telephone on a table with a raw broccoli tree\nA woman with her hand on the seat of an automatic toilet in a display.\nA table topped with strips of tape and a pair or scissors.\na boy with a green shirt and a black pair of shorts playing soccer\nA smiling woman reclines in a chair with a newspaper.\nA man standing under an umbrella  in the rain using a cell phone.\nYellow military jet making pass against gray cloudy sky.\nA train covered in graffiti sitting on top of  train tracks.\nA boy is preparing to hit a tennis ball. \nA birthday cake with candles in it sitting on a table. \nA couple of computer monitors sitting on top of a wooden desk.\nA bunch of bananas hanging from a green tree.\nA single slice of cheese pizza is on a plate.\nA dog lays in a room with a desk and shelves of files and books.\nA couple of women holding game controllers in their hands.\nA teddy bear holding up miniature replica pizza boxes.\nA table full of pizzas delivered by Dominoes.\na person riding skis on a snowy slope\nA white bowl with shrimp, broccoli and rice.\nA man and woman cutting a cake together \nThree small piece of fried food on a white plate with writing.\nAssorted items sit on a desk next to a laptop computer.\nA crowd of people crossing a cross walk.\nA table topped with donuts and a cup of coffee.\nA collaboration  of people in different pictures doing things\na bathroom with a toilet with a sink\na black and white cat a chair and some bicycles\nA person is working at a computer with a remote control and camera next to the camera.\nA train that is sitting on the tracks under wires.\nseveral people in a dark displaying their lap tops\nA baby is eating a piece of broccoli from a plate.\nThe top of a brick clock tower surrounded by birds.\nA small yellow airplane is on a grassy runway.\nAn illuminated clock tower against a nighttime background\nA brown teddy bear lays on a bed spread.\nThere are men playing a soccer game on the yard\nA large white trash truck with a painting on it's side.\nA semi-browned banana sitting on top a cup of starbucks coffee.\nA man riding a wave on top of a surfboard.\nA group of people with surfboards riding a wave in ocean.\nA train caravan passes by a small town.\nA green and yellow railroad train pulling into the station\nA celebration with cake for Navy members stationed in Thailand\nA group of women are sitting on a bed.\nThe Big Ben clock tower underneath a cloudy blue sky.\nThe two zebras are standing together outside by the dirt road.\nA group of young people sitting around a piece of luggage.\nA wooden bench and a fire hydrant on a field.\nA silver fire hydrant sitting next to a  road on a sidewalk.\nA man with white hair and a beard wearing priestly robes.\nAn orange and white cat chasing a feather\nA woman in pink dress playing a game of tennis with people in background.\nA person is doing something by itself and interesting. \nA road sign giving directions and a Stop sign on a roadside \nA black bird sitting on top of a wooden fence.\nThe zebras are eating grass in the fence.\nA man in green shirt catching a white frisbee.\nA car parked by a clock and some flowers.\nA man rared back at a tennis ball with a racquet.\nA brown and white dog sitting in a black leather chair.\nA man wearing a polo and a tie posing.\nA horse standing in the grass in a fenced in area.\nA street containing various cars and lampposts at night.\nA vintage red tour bus parked on the side of the street.\nA man and woman bathe in a shallow river.\nGirl holding an umbrella on a horse drawn carriage\nA tennis player holding a tennis racquet while he serves a tennis ball.\nMotorcyclist is taking a turn while onlookers observe \nBrown and white horses graze near lawn chairs.\nA traffic light outside of a building next to a street.\na boy that is surfing in some water\nA computer mouse is beside a notebook computer.\nA left turn signal, stoplight and street sign are hanging on a pole.\nA player is standing gay the diamond to lay baseball St the fame\nAn odd bathroom with stone walls, and two rolls of toilet paper\nA herd of sheep walking on top of a lush green field.\na tennis player holding a tennis racket on a court\nA person on a board in the water.\nA livign area with a sofa, chairs and a coffee table.\n A young man riding a skateboard in a car garage.\nA group of people riding skis on a snowy slope.\nA laptop computer sitting on top of a white desk.\nA black bear walking by someone's car and trash can. \nThere is a group of people that are sitting at the table eating food\nA man and woman throwing a frisbee on the beach.\nThere are some cars and trucks parked at a bus depot\nA smart phone sitting on a table next to a yellow donut.\nA clear vase that has some flowers in it.\nA man in a leather jacket standing next to a white horse. \nA close-up of a tropical bird with a mirror behind it.\nBatter looking on at player at home base preparing to swing at ball.\nA yellow and green train pulling out of a tunnel next to a red car.\nA zebra standing on top of a grass covered field.\na wood counter top in a long bathroom\na group of people with umbrellas walk on a side walk \nFour smaller dogs are running away from the women on the bench. \ntwo men playing frisbee while on a camping trip\na bear walking besides a pool and a tree\nA bed with a lot of pillows is next to a nightstand.\nA brown and white dog on a skateboard next to group of people.\nA room filled with a row of brown toilets\nA group of young girls playing a game of soccer.\na crowd of people with a clock tower in the background\nA group of people riding on the back of a loaded red pickup truck.\nA cat sitting on top of a window sill.\nA cat sitting outside on a bench on a sunny day.\nA man riding a skateboard up the side of a cement ramp.\nAn aircraft is overtaken by maintenance workers as it sits on a landing.\nA girl laying in a hospital bed, a bandage on her arm.\nA crowded city street filled with traffic and pedestrians.\nA shirtless man grilling a lot of chicken breasts.\nA train is shown stopped at a train station.\nA living area with wooden table, chairs and a television.\nA couple of people riding on the backs of horses.\nA dog playing with a sheet in its mouth as the camera flashes light on its eyes.\na yellow and blue cart is parked on a street\nA classroom filled with lots of wooden desk.\nA girl is sitting by her dog on the stairs.\nA small bird is perched on a leafless twig.\nA herd of animals in the middle of a grassy field.\nMedical students are looking at the monitor to check their patient's condition, while their associates wait in anticipation.\nA street filled with advertising signs hanging from the sides buildings.\nA person riding a skateboard on top of a tennis court at night.\nA man riding a skateboard up the side of a cement ramp.\nA motorcycle is parked on the beach near the ocean.\nA Fed Ex delivery truck driving head on into an SUV.\nA person lays down on a blanket with a dog by her side. \nPeople crossing a street in front of a taxi and tour bus.\nA photo of a man swinging a tennis racket.\nsandwich sits on plate with dipping bowl next to a cup\nA giraffe that is standing near a tree.\nA bed in a bedroom under a window covered with curtains.\nPeople sitting in the stands watching a man play tennis.\nA white and black dog standing on wooden floor by a cake.\nA green and white bus pulling into a bus stop.\nA woman sitting on top of a couch with two cats.\nSeveral teddy bears are sitting on a shelf.\nA man on a skateboard who is performing a trick. \nA bird sits on a wire over a street sign.\nA very large, older bus sitting in the grass.\nthis is a piece of meat and green beans on a plate\nA woman standing next to a child holding a cell phone.\nA TV sitting on top of a table next to a laptop computer.\nA man that is holding a tray with vegetables inside of it.\na small giraffe that is walking around on dirt\nA bird sitting on a branch outside above rocks.\na teal bed and a smaller pet bed sit on a red carpet.\nThe bowl of soup and a sandwich is ready on the table. \na clock on the top of a small tower on the top of a building\nA number of young people are enjoying themselves around a fountain, not far from a fire hydrant.\nThree men sit at a conference discussing a topic\nA refrigerator with drinks in it with a television sitting on top of it.\nThe fire hydrant is sitting on the side of the road\nTwo young boys playing Wii games on the television.\nA close up of a salami and Swiss cheese sandwich with a smear of mayo.\nA man stears a bored through the water.\nA plate holding a slice of bread with mayonnaise and chicken tenders and another piece of bread with nothing.\nA doorway view with a toilet, shower and a sink.\nTwo teddy bears that are hanging on a line.\nA busy airport with planes parked  on the runway\nA red smart phone sitting on top of a wooden table.\na living room with a chair near a tv\nThree cows on grass have a white stripe.\nA man sitting at a counter with half of a pizza.\nA crowd of people standing outside of a hotel on snow covered ground.\nA donkey walks near the edge of a cliff. \nA man that is on a surfboard in the water.\nA sculpture of a woman is laying in an all-white bed.\nA man sitting on top of an elephant next to a tree.\nA kitchen that has a stove and refrigerator in it.\nA woman standing on a tennis court raising her racket\nA man sitting on a bench surrounded by pigeons.\nA small airplane getting ready to take off in field \nA black cat holding onto the left of a teddy bear.\nA man holding a frisbee in his hands and biting it with his mouth.\nA man and a girl standing next to two cakes in the kitchen. \nA box filled with fresh fruit and vegetables.\nTwo cows in a field looking at the camera.\nTwo plates of chips and a sandwich are served on a tray.\nA laptop resting on a wooden table near a silver kettle.\nA couple of stuffed bears next to a tree.\nA bowl full of vegetable soup and a spoon.\nA display of cell phones behind a protective display case.\nA clock is sitting on the tank of a toilet.\nnice made salad with vegetables on a plate\na directory next to some snow covered benches\na living room view of a table with plants and a tv\nA brown horse standing behind a chain link fence on green grass.\nA man without a shirt riding a skateboard at the beach.\nTwo lap tops sitting next to each other on a computer desk\nA man is throwing up a tennis ball and going to hit it with a racket.\nA luggage cart stacked with a very tall pile of luggage.\nA man throwing a frisbee in the yard\na person standing snow wearing a snow suit and skis\nA plan flying under a cloudy gray sky.\na close up of a person talking on a very old cell phone \nA man is cooking food at an island with wine glasses and bottles with women watching.\nView of dining room of restaurant with cone lights overhead\nA blue bus driving down a street next to trees.\nTwo giraffes that are standing together in a field.\nA professional motorcycle driver riding his bike on the track.\nA woman holding a pair of scissors up to her face.\nA bridge across a river and a tower with a clock is seen.\nA flag is flying in a green grassy area.\nThere is a tiny bird on the branch.\nA man in black shirt on a motorcycle in a street.\na dog carrying a bird in its mouth\nA yellow and green train on a train track.\nPeople stand in the drizzle with black and white umbrellas.\nA room with a bed and some windows in it\nA man and woman standing over a table with wine.\nA kitchen with wood floors and lots of furniture.\nA brown and white cow standing in the middle of a gravel path.\nA snowy landscape through a sunny window with a bed in the foreground\nthere is a small blue luggage along with other luggages\nstop sign that says no vehicles past posts in front of building \nA  brown vase filled with two purple flowers.\nA man cutting up food on top of a plate.\na glass walled shower in a home bathroom\nA street sign showing four different roads on it\nA man crosses his water skis while parasailing.\nAn orange cutting knife on top of a black case.\na laptop and a monitor on a wood desk\nA street vendor selling a variety of apples.\nA man holding a baseball bat as another gives signs.\nA group of people walking on a beach next to the ocean.\nA man sitting on a bench with a book and a bag. \nA United States air plane taking off .\nA plant of some sort on a bush\na stop sign altered so it says 'stop hammer time'\nA large white bathroom with a massive mirror over a sink\nSeveral skateboarders at a skateboard park skateboarding while others watch.\nA small child touches the trunk of an elephant standing behind an enclosure.\nA young girl standing in front of a pizza.\nThere is a toilet next to a wall.\nA gang of bikers driving down a city street.\nA woman standing in a doorway as a dog turns and looks at her.\nA baby brown bear standing on top of a rock.\nA woman holding a tennis racquet on top of a tennis court.\nA hipster carrying a black bag of luggage on grass.\nA dried black flower in a long, tall black & white vase.\nA black bird that is sitting on a branch.\nA fire hydrant is in the dark by a sidewalk.\nA street that goes on to a high way with the light on red.\na women that is sitting on a brick wall with a cell phone\nA kitchen area with a sink, refrigerator and stove.\nA woman holding a tennis racquet standing next to a red sports bottle.\na table that has a bunch of bananas on it\nA plastic container filled with donuts next to coffee.\nYellow bowl filled with white powder topped in red jelly.\nA group of people riding bicycles next to various kites.\nA lap top computer on a wooden table out in a backyard. \nAn hand pets a cat in a suitcase.  \nA group of men standing on top of a sandy beach.\nA large group of people walking on a street.\nA black stove top oven sitting next to a window.\nA skateboarder is trying to do a trick. \nA barbeque pork sandwich with a tomato on a tray.\nA yellow and black parasail lying on the beach.\nA pedestrian crossing sign sitting underneath a street sign.\nThree zebra stand close together in tall grass.\nTwo white doves huddle close together while sitting on a branch.\nTwo dogs are sitting a neatly made colorful bed. \nA silver and blue Amtrak train sitting below tall buildings.\nFruit and vegetables are hanging in a metal basket.\nA meat covered sandwich on top of a spatula being held by a chefs hand.\nA stack of pancakes that are sitting on a plate.\nA number of benches at the beach and a boat in the sea\nA herd of sheep standing on top of a lush green field\nThe people are all watching and listening to the bikers on the corner of the road\nA man selling bananas and other fruits in a street market to passerbys.\ntwo people riding surf boards on a wave\nA little girl is playing with a hair dryer\nAn office desk with a laptop and a phone on it.\nA kid in wetsuit on surfboard in the ocean.\nA woman in yellow shirt and skirt with cats in grass.\nA stair case sitting next to a wooden desk with a computer on it.\nA laptop computer sitting on top of a desk near a monitor.\nTwo people outside in snow gear with a snowboard.\nA horse standing in the middle of a street.\nBMX bikers waiting in sandy area for something with gear to ride.\nLady walking through a parking lot with an umbrella over her head.\nTwo zebras stand near each other in the tall grass.\nA woman in a suit using a smart phone.\nA man wearing glasses eating a sprinkle covered doughnut.\nA white refrigerator covered in lots of magnets and calendars.\nA young boy with shaggy blonde hair standing with his skateboard.\nIn the suit case there are  some clothes  . \nA very cute flock of sheep in a grassy field.\nA group of giraffe standing next to each other.\nA boy with a helmet on eating food across from a bicycle.\nA couple of sheep grazing on the side of a road.\nKites being flown along the coast line in the morning\nA couple people are sitting on a bench looking out a window while another guy sits near by. \nA young boy hitting a ball in a yard with a bat.\nBunch of cows walking through the grass behind a car\nThere are several people riding mopeds and motorcycles traveling down the street.\nA try with a banana and two oranges visible on it\nA dark room with a laptop on and someone sitting \nA young child wearing a paper yellow tie.\nThe police have several motorcycles parked together outside.\nA woman approaches the finish line on skis\nA living room and kitchen with a mattress in the hall.\nA yellow end sign sitting on the side of a field.\nPizza on a tray on the table outside next to plates and wine glass\nA compact bathroom with vessel sink and toilet.\nA white table topped with black plates filled with cakes.\nA train being pulled by an orange engine.\na man fixes a tie with a button up shirt \nThe teen group is serving pizza and drinks to the younger children.\nA mob of skier skiing down a snow covered mountain side.\nA baseball player throwing a ball on a mound.\nMedical professionals gather around and tend to a patient on a hospital bed.\nA group of people observing two planes at an air show. \nA person is riding a skateboard in a tennis court.\nA large American flag sitting on top of a building.\nA hand holding an apple in your left hand.\nA man is surfing in the ocean on a large wave.\na man dressed in a knight costume riding a horse performing at a show\nA group of people are eating a pizza.\nA girl eating a sandwich in a public place.\na young boy is feeding a large giraffe\nSnowboarder in a red jacket moving near a row of trees. \nA couple of children riding on the back of a horse posing with their mom, her cow and a small dog.\na table with a laptop and various other items.\nA zebra is lying on the ground with other zebras.\nA fire hydrant and some cars on a street.\nLittle girl blowing out a candle on a fancy dessert.\nsome people at an outdoor shop and some different fruits\nA small bathroom with a mirror and sinks.\nTwo cars are waiting at a stop light.\nA group of people are reading a menu at the table\nA cat is laying on a hardwood floor.\nA man holding a baseball bat on top of a field.\nA person standing on a surfboard while riding a wave.\na brown cow is laying in a pin\nA glass of milk next to a round purple vase.\nA scene of a waterway with several boats.\nA herd of sheep grazing on a lush green hillside.\nA man handing a woman a red pan of food.\nTwo men riding a ski lift above a snow covered mountain.\nA group of baseball players holding a bat.\nA man standing next to another man on a sandy beach.\nA black plush toy sitting on the lid of a toilet.\nA white bear sleep in the woods on a rock. \nA shirtless surfer jumps up from the waves.\nWhile in a restaurant a young man is playing with his phone.\nTwo ladies with frisbee at the pitch playing\nA plastic cup and food sitting on a tray.\nA large flower in a vase is sitting on some wood. \nA view of a mountainside with skiiers and snowboarders.\nThis is a building on the corner of Trinity and 4th Street. \nA few people on skis standing on a snowy trail.\nA young boy in the grass throws a ball.\nA young man flipping a skateboard through the air.\nA man in his skiing gear is posing for the camera. \nA large sheet cake with pools of fruit filling.\nA pretty young lady sitting on top of a red couch.\nA birthday cake that depicts a small mountain with cars driving up it.\nA brown dog laying down in a room next to a desk.\nAn old passenger trolley is on the street.\nA group of motorcycles parked in front of a building.\nTwo people carrying surfboards through a train station.\nA large construction site for a bridge build.  \na man that is standing up with a wii remote\nTwo giraffes standing near each other in the zoo. \na bag with scissors with a zip on a table\nA large bed topped with blankets and pillows.\nSkies skiing near a chair lift and a mountain behind.\nThe man is catching a wave at the ocean.\nA large building with a clock on it's face and a bird statue on top.\nThree people with a baseball equipment standing in an open area.\nA person lying on the ground next to a skateboard.\na tall church tower with a clock at the top\nA woman opening up the fridge full of beer.\nWoman selling doughnuts with doughnut stock in the background.\nA tennis player prepares to serve a tennis ball.\nA boat floating on a lake next to a tree covered shore.\na little boy in shallow water on a surf board\nA baby in a high chair with paper on the table in front of her\nA hand holds a hot dog while a little girl stands near. \nA red small engine plane in motion on a field.\nA cat sitting by a window watching the rain. \na chair and a couch in a room with art on the wall\nA cat laying on top of a wooden shelf with boxes.\na cat sitting in front of a tv while watching a hocket game on tv\nA horse's rider jumps the horse over a log.\na cabin cruiser going down the canal toward a bridge\nThe person has a sandwich and salad on the plate\nthere is a man that is posing for a picture in front of donuts\nA boy is doing a trick on a skateboard\nA person on some skis in the water.\nA beautiful woman holding an umbrella over her head.\nAn L shaped desk fits well in the window space.\nA man is hitting a tennis ball with his tennis racket.\nA group of three zebras standing in a grassy area.\na man is sitting under a red umbrella outside\nA woman holding a cigarette smiling at the camera on a sunny day.\nTwo brown bears playing in a field together.\nWe are looking up at the underside of an airplane.\nA herd of cows drinking water from the river\nTwo bikers riding their bikes on the road stopped in front of the line. \na couple of cows are standing in a field\nA plate of food that is on a table.\nA woman smiling while standing next to a giraffe.\nA cake shaped as a Teddy Bear on a wooden table.\nWalnuts are being cut on a wooden cutting board.\nA tennis player is lunging for the ball. \nLooking down at a beach area and boardwalk that has a circular walkway and clock tower.\nA large yellow building has a clock on it.\nA white wooden bench sitting on top of a green hill next to the ocean.\nA man at a table with several dishes of food.\nA person riding a horse in the dirt near a wall.\nHorse with odd striped head and white body in a sanctuary.\nA dog is tied to a fire hydrant.\nA picture of a person holding an umbrella.\nProfessional baseball players in the middle of a game.\nA gigantic pastry held together by a bag and skewers\nThere is a orange on the table next to a small pocket knife\nAntique teddy bears wearing bandages on their legs and an eye\nA neon sign sitting on top of a building with a giant clock.\nA person doing skateboard ticks at a skate park\nA couple of people are kiteboarding in the water. \nTeddy bears are re-enacting soldiers on the beach with others looking on.\nA group of four vases filled with white and yellow flowers.\nTwo people standing next to each other on top of the snow.\nA young baseball player in uniform getting ready to bat.,\nA blue bus picking up a load of people.\nA group of people at a party, listening to a man talk.\nA plate of food with a hot dog and a carton of milk. \nA woman standing on top of a field  near a frisbee.\npeople with their head covered on a motorbike\nA box of six pastries containing two chocolate doughnuts, one strawberry, one glaze, and two glazed crullers.\nA huge crowd is walking down one side of a street.\nA bathroom with focus on the toilet in the bathtub.\nA cat sits next to a bike that is garnished with flowers. \nA train topped with tanks traveling down train tracks.\nThe chair next to the person has been used as a table for things. \nBoats docked on land sitting side by side next to a lake.\nA plate of food sits on a plane table.\nthree sheep standing next to each other in a field\nA yellow food truck parked close to a car\nA women who is standing by a barb wire fence.\nA doll standing near a piece of pizza\nA small child riding a pony in the park.\nA small sailboat docked at a local shore.\nPeople sitting and some standing on the grass with a kite flying and palm trees in the background near buildings.\nTwo asian people pose for a picture while sharing drinks at a table.\nA counter top with meta and veggies cut up.\nA computer keyboard sitting next to a mouse on a wooden table.\nA person riding a wave on top of a surfboard.\nA bowl of vegetable soup on a plate with a spoon placed in the bowl.\nWomen are running after the ball in a soccer game.\nPeople standing on the grass playing frisbee together.\nThere is a water shuttle going down a canal.\na person in front of a projection with music notes\nThe grinch riding a motorcycle with a small dog with antlers.\nA man wearing a black suit and red tie.\nA woman in a blue tank top holding a smart phone.\nA person skiing down a slope next to snow covered trees.\nA group of men standing in a large kitchen.\nA person sits across from a pizza ready to be served.\n A clock on a building tower with turret rooms.\nA stormy looking photo with a cargo train.\nA line of ovens are on a wall in a kitchen.\nA knife sticking out of the top of a wooden table.\nAn old black and white photo of two men in suits.\nTwo young boys playing disc golf in a grassy area. \nLarge Labrador dog laying across a pile of blankets.\nSeveral small electronic devices are sitting with a backpack at an airport window.\nA herd of zebras standing on a sandy platform near a small body of water.\nA man gets air catching the Frisbee near the water.\nThe eccentric group of girls carry their luggage up the street.\nA lady wearing an apron in a kitchen.\nA person on a motor bike and a car on the street.\nSome backpacks and luggage are on the floor.\nA man kneeling down over piles of bananas.\nPeople that are walking with skateboards in hand. \nA pole that has a clock on top of it.\na cell phone and an SD card sitting on a table\nA red headed boy sits hugging his Black Labrador dog.\nA table with a napkin, doughnut on a plate, and a cup of coffee.\nA print ad for the Pizzeria La Crescia.\nA man riding a wave on top of a surfboard.\nSlider burgers with hot dog and fries on plate on table\npeople standing outside a building with clocks built into the side of it\nTwo people sitting and two people walking through what looks to be an airport\na person in orange is standing in skies \na decorative seat sitting inside cut out bushes\nA man riding a skateboard down the side of a ramp.\nA row of up right surfboards inside of a building.\nThe small bathroom has wooden cabinets around the sink.\nDishes of food have doll figures in them.\nThree giraffes stand in the clearing. by the edge of the grass.\nPerson on motorbike  with speed detector showing 26.\nA cat sprawled out on a couch with a remote on the arm\na black bear rests it's head on a tipped over log\nA picture of jell filled donuts, chocolate covered donuts and donuts with sprinkles.\nA rear view mirror on the side of a yellow bus.\nA Giraffe looking down as another giraffe in the background in looking through a fence \nMan herding some skinny cows in a street.\nA train traveling down a track, with a man hanging off it.\nA woman carrying shopping bags past a tall fire hydrant.\na yellow and red train on its track\nA plane makes a landing at an airport.\nA slice of pizza is loaded with pepperoni and resting by itself.\nA lot of food that are in some baskets.\na man stands on a chair looking at a computer \nA woman playing tennis on a grass court\nA professional tennis player with an orange shirt and grey shorts.\na dog on with a collar stands in between two people\nAn urban farmers' market with produce stalls and crowds of shoppers.\nA man about to stand up on a surfboard in the ocean \nA couple of cows on a grassy field.\na man bunting the baseball with his bat\nA tall sign sitting next to a traffic light at night.\na close up of a reflection in a body of water\nA baseball jersey that is sitting next to a bat and plaque.\nAn apple and a paper weight on top of wooden blocks before a mirrors.\nA road line with blue fire hydrants next to a sign.\nA brown dog looks up at the camera as he stands in the snow.\nA boat that has blue covers sitting on the side of the water\nVehicle traffic in an uban area during winter.\nA teddy bear holding onto a Nikon camera.\nA group of cows are grazing in the grass. \nan image of a man in a boat with a dog\nA baseball player has his arm outstretched with a mid air ball near his hand.\nA blue dump truck driving down the highway.\nA wild animal sitting on some rocks in a field.\nthe room has a glass shower as well as a red cross kit\nA vase filled with water and flowers sitting on a table.\nA professional tennis player towling off his head\nA green train is rolling down the tracks\nA street sign is underneath a concrete overpass. \nA cat lying next to someone sitting on a bench.\nsome zebras are standing on a green hill and rocks\nA man with an umbrella walking in the rain\nTwo computers, keyboard and phone with mouse on a desk.\nA bunch of table with unbrellas outside of a building .\nA man on a court swinging a tennis racket.\nA wooden table topped with the contents of a woman's purse.\nA couple of large trucks in a corn field.\nan image of two zebras in the middle of the wilderness\na man working on a pizza in a kitchen\nA white plate filled with a variety of foods \nA living room filled with furniture and a book shelf filled with books.\nA pair of orange scissors is sitting on black mesh.\nAn Air Force jet flying in a deep blue sky.\nThe person rides in a yellow motorboat with a dog. \nA couple of laptop computers sitting on top of a desk.\nA long tunnel with a long table with lots of seats and candles next to wine glasses.\nA person on a surf board riding a wave.\nA pizza topped with thick sauce and cheese.\nAn old toilet outside against an old painted wall.\nA zebra grazing on a dry grass field next to elephants.\nA man riding a skateboard off the side of a ramp.\nA hand in a bowl full of broccoli.\na toilet that has some bubbles coming out of it\na bath room with a toilet a sink and stand up shower\nTwo sheep standing next to each other in a barn.\nThe man in a sweater vest is smiling for a pose.\nAn airplane sitting on the water parked at the docks\nA hotdog in a basket with french fries\na table top with a computer on it \nthere is a man sitting on steps smoking a cigarette \nA small bowl of broccoli and some toast.\nFriends playing Frisbee on a dry grass field in the afternoon\na counter a white toilet and toilet paper and black tiles\nThe traffic light is clearly visible for us to see. \nA delicious meal of rice,chicken, and broccoli with water and soda to finish the meal. \nA person that is doing a skateboard trick.\nAn orange train engine moves down the track with one train car behind it.\nA polar bear swimming through water in a zoo. \nA girl with her hands up with excitement as a woman brings a cake.\na young man is doing tricks on a skateboard\nA Nintendo Wii game controller sitting on top of instruction manuals.\na couple of cats that are sitting on a fence\nA baseball player holding a bat over home plate.\nA vase with several different species of flower sits on a glass table.\nA closeup picture of a bright orange grapefruit cut in half.\nA brown horse is walking around in the grassy mountain.\nA photograph of an outside with numerous things in the scene. \nMany posters are placed on a wall near a busy street.\nA cow grazing in the field and a man standing next to it.\nA white plate topped with veggies and chicken.\nA person silhouetted against a cloudy sky, holding an umbrella.\ntwo giraffes in a field with many trees\nThe bright computer monitor is sitting on the corner desk.\nA cat is laying curled up on a table surrounded by greenery.\nA kneeling woman takes a photo of a park bench.\nA couple of brown horses laying on top of a grass field.\nAre the dogs being friendly with each other or chasing each other?\na tub toilet sink and medicine cabinet and door\nA white horse is out eating in a field\nA large bed sitting beside a night stand.\nA small kitchen inside of a dark office\nA small stuffed teddy bear sitting on a vase.\nA cake made to look like a hot dog and a ketchup bottle.\nA man on a snowboard standing on a rail.\nBananas are growing amongst thick tropical plants and flowers.\nA large room with tables and chandeliers \nNon passenger train, slowly coming down the tracks\nAn old photo of a boy and girl skateboarding in a parking lot.\nA full picture of some white toilets on the side. \nA person standing in front of a plate of food.\nA little girl is sitting on her bed that has a flower bed spread.\na number of different doughnuts in a box \nA couple of people standing on top of a sandy beach.\nThe inside of a warehouse like structure that has a round clock with roman numerals on it hanging from the ceiling.\nan image of a child with headband with a racket\nA cat that is looking at a pastry.\nA young woman sits on a horse on a dirt road.\nA bedroom with a fancy bedroom set and linens.\nA surfer laying on a surf board and paddling with her hands and feet.\nA young child riding on the back of a brown horse.\nA guy sitting at a dining table with some tasty looking food.\nA couple of sheep standing on top of snow covered ground.\nA long train traveling along side of a mountain.\nA man riding a motorcycle down a city street.\nThere is a blurry photo of a surfer walking out of the water\nA man smiles down from the back of an elephant.\nPeople sitting at an outdoor restaurant having lunch\nA woman with glasses that is holding a piece of bread.\nA herd of sheep is on the side of the road and a bus drives through.\nA child holding a bat walks back to the dugout.\nA man admiring a dog on a bench made of books.\nA black and white photo of four people, one rowing along a lake.\na street sign on the corner with buildings in the background\nA bathroom is shown with white decor and brown cabinets.\na large bus with two levels is parked outside\nA brown horse standing on a lush green field.\nA bench sitting next to the ocean with purple bows on it.\nSIX PEOPLE ON A BUS, WITH FIVE OF THEM ON THEIR ELECTRONICS\nThere are mountains in the background and a lake in the middle.\nBananas in a saucepan cooking in simmering caramel.\nThe man is driving the fire engine in the parade.\nA black and white photo of a man running across the street.\na woman is on a poster hanging outside\nA glass of drink and a plate of food on a table.\nA player runs for the ball during a tennis match.\nA cat sitting on top of a hard wood floor.\nA little girl sits on a chair holding a teddy bear.\nA large cooked pizza on a pan in a room.\ntwo kids play at the beach with their kite \nA man in orange shirt and headband playing tennis.\nA walk way filled with white containers containing apples.\nA group of small colorful boats sitting on a beach next to the ocean.\na person that is spiting something up in a toilet\na large giraffe following her kid into a room\nTwo white bowls that are sitting on a table.\nA closeup of an apple in the foreground with three oranges in the background.\nNo image is being shown on the page right now.\na pizza on a wooden pan with a person sitting across from it\na building with a clock near the ceiling and skylights \nSome very cute elephants together by some water.\nA man standing on a tennis court holding a racquet.\na desk with a keyboard a mouse and a drawing pad\nA couple of men sitting on a cement block on top of a skateboard.\na girl smiling sitting at a table in front of several display items.\nHotdogs in baskets with variety of toppings surrounding french fries in baskets on a table.\nA cat sits on the edge of a bathroom sink.\nA man holding a glass of wine while wearing a camera around his neck.\nA man is surfing a big wave towards shore.\nA bird is perched on the back of a horned animal.\nA partially eaten slice of cake with a spoon on a plate.\nA mother and baby zebra standing in their enclosure.\nA bathroom counter lined with lots of metal sinks.\nA knife sticking out of the side of a block of cheese.\nA cross country skier climbing a mountain on his skis\nThe young man are playing a game of soccer in the field. \nA bus driving under a bridge down a road.\nBlack and white motorcycle parked on a sidewalk.\nA bus next to a rest stop area featuring a clock on the roof.\nA row of wooden park benches sitting next to a street.\na man skating in a skate park with a large crowd watchin him \ntwo men in suits standing next to each other \na punch of people sitting on park benches\nThe black  cat was laying on the floor\nA metal table with white plate holding food that includes chicken and cauliflower.\nPetals gather along the edge of a pond in front of two park benches.\nSeveral pictures of Asian style dishes and in the middle a person is eating.\nFive jumbo jets are parked at a large airport.\nA woman sits on a bench and talks on the phone.\nTwo people setting up a market stand with jars\nA beautiful blonde haired woman taking a pizza out of an oven.\nA window in a kitchen filled with green plants.\nSubway train and tracks in an urban environment.  \nA little girl walking along a row of orange cones.\nA train traveling down train tracks near a forest.\na train on a train track with a sky background\nA man holding a wine glass in order to smell the wine\nA large room is decorated for winter holidays and features a rustic clock tower.\nA plane parked on the runway in the distance\nA man and two cats sit on a bench beside a body of water.\nTwo sheep running in the snow with something covering their bodies. \nA bath tub sitting next to a white toilet.\na street light hanging fron one of many wires connected to a power pole\nA green street sign hanging from a metal pole.\nmany skis and snow boards on a snowy surface\nA group of people standing around an elephant.\na teddy bear next to a picture of a woman\nTwo elephants stand next to each other in a field\nA woman sits on a bench with her hand up.\nA red carrier of some sort with a brown handle\nA horse drawn carriage is near a fire hydrant by a curb.\nA woman hosing down a passenger railway car.\nA group of four people standing around each other.\nA person on a court with a tennis racket.\nA wig sitting next to a pair of shoes on top of a table.\na man in yellow is doing a trick on a skateboard\nA big and white horse in a dirt cage. \nA fire box with \"ME\" painted on the side.\nA man riding on the back of a brown horse.\nA pole with traffic signs and street signs. \nA large church building with a massive clock tower.\nTwo men are posing for a photo, one man is holding a slice of pizza on a plate, and they are surrounded by other people sitting at tables.\nA group of boats are sitting on the water.\nA horse wearing a protective cover stands in a grassy field. \nA woman walking down the sidewalk at night in a city\nA bathroom area with lights, standup shower and trashcan.\nMany plates of different foods are on the table.\nA table topped with a pile of vegetables and a book.\nGiraffe holding it's head mid way with a wooden gate behind it.\nA white and black bird perched on a wooden fence rail.\nA woman holding a yellow frisbee while standing next to a man.\nA man with a Santa Clause beard kicking a soccer ball.\nA woman riding a red surfboard waiting for a wave.\nA man standing by the record player in a living room\nSmall slice of pizza sitting on a table next to the bottle of beer. \na cow eating some hay over a gate\nA bunch of vegetables that are in the ground.\nThe man is flying a kite at the beach.\nA baseball taking a swing at a ball\nA herd of elephant with a calf and adult elephants.\nA giraffe walking through a green grass covered field.\nA woman is walking a dog in the city.\nA man holding a tennis racquet on a  tennis court.\nA large bathroom with a row of white sinks in it\nA brown and white dog chewing on a plastic bottle\nA bunch of soccer players in uniform playing soccer.\nA man that is sitting down near a bird.\nAn orange truck with some people in back\nA living room with a decorated Christmas tree and a wreath over a fireplace.\nA bathroom with a sink, toilet and safety rails.\nA man riding a dirt bike up the side of a mountain.\nA group of Korean people watching a woman sign an important document.\nA young man kneeling down to luggage filled with sound equipment.\nA man on a skateboard is holding on to string.\nA transit bus making a turn into a garage of some sort.\nA bakery counter has many different kinds of pastries and pies.\nA book with a cup and office supplies stacked on top of it.\nA group of people standing behind a blue table topped with sheet cakes.\nTwo wire racks filled with donuts and donut holes.\nA no parking sign sitting on a sidewalk in front of a building.\nTwo adorable chubby dogs sleeping next to each other.\nThree cows are standing on a fishing boat.\nAnimals crossing beach with cloudy blue sky and lake in background\nA family with two kids on the boat.\nA kitchen under construction with a trashcan and stove.\nA building engulfed of flames sitting on the side of  a street.\nA man riding a skateboard down a busy city street.\nTwo dogs on a truck with frame that reads \"cockleburs galore.\"\nA train with many cars driving on rail road tracks.\nA man standing on a blue tennis court holding a racquet.\nA bathroom being renovated with pipes in the wall\nA woman resting her head up against a cat.\nMany kites can be seen in the air through umbrellas.\nScissors on the counter next to radio with spindle on top.\nA person riding on a waterski holding a handle\nA shirtless man in a hat making luch\nA man riding a snowboard down the side of a snow covered ski slope.\nA yellow schoolbus with a woman spread out in front of it.\nA boat with ropes attached to it, sitting on pavement.\nA person sitting on the ground with a cell phone.\na truck and other cars under a bridge\nA child is smiling for the camera while outside\nA man filling jugs with water from a bathroom sink.\na person walking down a street while holding an umbrella \nA train moving overhead at a train station behind a tree.\nA bench sitting in a park next to a tree.\na couple of birds are standing on some twigs\nA horned ram and a sheep grazing in a fenced field.\nA man in glasses snowboarding down a hill.\nA person with a mask and other cover with umbrellas \nUnique looking Modern Outdoor Public restroom on a sidewalk.\nA woman sitting at a table while holding a cell phone.\na large flat pizza that is odd shaped\nLADY SITTING AT A TABLE IN A RESTAURANT WITH PLATE OF FOOD\nBrown toned home office with natural and artificial lighting\na street sign some buses and people walking down the sidewalk\nSeveral old boats side by side in a city harbor.\nA person doing a \"Manual\" on a skateboard at night\nA  parked tow truck truck carrying heavy equipment.\nA train in a station with a person in yellow clothes nearby\nSeveral condiments on a tray in a kitchen.\nA gray cat sitting on top of a flat screen TV.\nWoman taking a selfie with her cell phone.\nA group of men on a field playing baseball.\nA bunch of horses with jockeys in a race on a track.\nA cake sitting in a green bowl filled with fruit.\nA couple of zebra standing next to a giraffe.\nA security officer using a segway as a footrest\nClose up of a brown horse looking into the camera, with a green field and mountain scenic as a backdrop.\nA man and woman riding a motor scooter.\nA beautiful young lady wearing a skirt standing with her legs spread apart.\nA hand reaching into a box of donuts on a counter.\nA man surfing in the ocean as the sun sets.\na yellow plate of sliced bananas and butterflies on them\nA person is trying to hit a ball with a tennis racket.\nA baseball player holding a bat next to home plate.\na couple of stuffed bears are on a bed\nA multi colored bus with people loading it\nA woman is sitting on a cinder block next to a trailer. \ncats laying on a desk near a couple monitors and a keyboard\nA bear and a cub sniffing the end of a log.\nThe eccentric building has been painted bright red with white trim.\nA little girl sitting at a table eating a hot dog.\nA view of a  remote with a popcorn hour book on the table.\na white cat sitting next to  a pair of white hi top sneakers.\nA bathroom with a tub, sinks, lights and a television.\nA glazed donut hanging from a metal rod.\nThe dog lays on the old dirty blanket \nthree pieces of art made in white with gold details.\nA man playing a game on the Wii console.\nThe exterior of an airport with some planes.\nA freshly plowed street is a winter wonderland.\nA small cat laying in the arms of a large teddy bear.\nTeam of rowers in a specially designed boat in swamp\nThree men on a kayak paddling on a body of water.\nA long boat on churning waters next to a bouy\nA man and woman dragging surf boards through the water\nA living room with a large picture window features a flat screen television set, red dog bed, chair, coffee table and couch.\nA white plate with a fried chicken sandwich.\nA toilet with an object hanging off of it.\nA blue corner sink with a man reflected in the above mirrors.\nA green arrow sign pointing up next to a stop sign.\nA group of people riding on a bush.\nCommercial airliner flying  near mast on cloudy day.\nA giraffe and its pack standing in an enclosure.\nA sailboat on land next to a playground near the ocean. \na man in a kitchen cutting lettuce with a knife\nA doughnut with sprinkles is sitting on a piece of paper.\nA pile of orange sitting inside of net bags.\nA clock in wooden frame covered by a wreath.\nA bunch of bananas hanging above somewhere on a ceiling.\nA man in hipster clothes straddling a bicycle on the sidewalk.\ntwo hairy dogs lying on a bed cover looking\nA man riding a wave on a surfboard.\nA woman that is looking at a white remote.\nA lady hold a game controller, pointed towards a laptop.\nthere is a cat that is sitting on a mans lap\nA herd of elephants walking across a body of water.\nA green and white street sign reading \"flaming lips alley.\"\nA woman smiles with a fork as pizza sits in front of her.\nPlates of seafood on a table in small servings \nA dog out in a field with a herd of sheep.\nWhite plate with blue rim featuring seafood with vegetables and rice.\nA batter up at the plate in a baseball game \nTwo men standing next to each other holding Wii game controllers.\na group of urinals is near the trees\nA young boy leaning up against an iron fence.\nA white plate with food next to another plate with food.\nA girl in jeans and a top is lying on a bed. \nA man standing on his hands with a doughnut in his mouth.\nA man is holding a large kite in an open field.\nA blue race car bed sitting next to a fake fuel pump.\nSeveral men standing outside of small airplane with man retrieving luggage from cart.\nA woman points a hair drier like it is a gun.\nA person in pink teddy bear mascot suit on sidewalk under a traffic light.\nA couple of suitcases at a station with a train.\nA cat sitting on top of a window sill near a phone.\nA red and white train sitting still on  a train track\nA kitchen is shown with a variety of items on the counters.\nA marina filled with boats under a cloudy blue sky.\nA giraffe is bending towards two of its trainers\nI think that the sport that the guy is doing is called windsurfing.\nTwo zebra standing on a dirty road next to a grass covered field.\nThe small dog sitting in the center of the walkway.\nA small elephant standing next to a bush.\nA cellphone is in front of a purse. \nA hospital like bed with brown straps on the bottom\nGiraffe with its head over a rail at a zoo enclosure.\nA man in blue and white jacket on skis next to ski lift.\na white and red plane parked on a tarmac\nThe open drapes show the view from the room.\nA large cheese pizza sitting on a pizza pan.\nA man on a motorcycle who took a picture of himself in his rear view mirror.\nA man pointing at a hand held pizza. \nA giraffe stands in a zoo looking at the sky\na woman is sitting against a wall with a case\nA woman holds an open umbrella while reading her phone.\nTwo horses standing near a tree in a large field.\nA group of people riding a large gray elephant.\nA kite being flown in the blue sky.\nA cheese pizza with green herbs on top.\nA counter top in a kitchen topped with fruits and vegetables.\nA couple of large brown horses pulling a cart behind them.\nA trolley car driving down the road near several trees.\nClose-up of green bananas still on the stalk\na small horse is attached to a cart on the side of a road\nAn assortment of fruit and vegetables includes lime, pickles, carrots, and radishes.\nThe furniture is posed in the room with a sign that says do not touch. \nA sign warning no camera and no videos on the side of a road.\nA baseball game where the pitcher has just thrown the ball.\nA man riding an elephant into some water of a creek.\nThis is a giant metal refrigerator and freezer. \na small clock that is sitting on a table\nA red commuter train passing through a train station.\na small boy and a dog in a bedroom\na red fire hydrant near a dirt road with trees in the background\nAn overhead shot of an attractive living room with large windows.\nA yellow train traveling past a field next to a forest.\nA bedroom with a bed next to a  night stand with a lamp.\nAn oven with a stove, pots and utensils, and a refrigerator next to it.\nA group of young children riding skis down a snow covered mountain.\nTwo people on a blue and green tennis court.\nA table with  a bottle of water and slice of pizza \nAn elephant is standing outside of the water while the others are inside. \nA young boy tries out skateboarding tricks on a road\nA black bear walks in a forest amidst brush and fallen logs.\na teacup on a saucer with a little biscuit next to it \nA large clock sitting in the middle of a shopping center.\nA man taking his picture in a bathroom mirror.\nA man in a kitchen who is operating a blender.\nA pizza sitting on top of a pizza pan with a couple of slices missing.\nA computer sits on a small wooden desk.\nA parking sign with an angry birds face.\nSurfer in artificial surfing environment on river in waves.\nA giraffe standing next to a stone wall.\nA blue van is parked next to a broken fire hydrant.\nA bathroom with a shower curtain that has four palm trees on it and a white tile floor.\nA white toilet in a bathroom next to a door.\nA large group of people sitting on the ground.\nA bridge spanning the width of a river.\na kitchen with a table a stove and a sink\nA street sign that indicates that you shouldn't turn left.\nA group of people gathered to celebrate a birthday.\nA pizza buffet with one slice taken out of a pizza.\nA set of four pastry sitting on top of a table.\nA young boy riding skis on top of a snow covered slope.\nA white sink sitting under a bathroom window.\nA kitchen with two microwaves and a toaster.\nA person cutting a pizza next to a salad and bottles of wine on wooden table.\nFresh fruit and vegetables have been gathered from the market\nA black and white fire hydrant stands on a brick sidewalk.\nthis is two people riding on an elephant\nSomebody is gotten in the peaceful of the picture.  \nA group of people standing next to lots of luggage.\nA room filled with different types of items all around. \na kid playing with a kite as people walk along on the top of a hill\nA couple of elephants standing next to each other.\nThe black cat is wondering what isw behind the wall.\nA snowboarder is going downhill on the ground.\nA plate that has broccoli and meat on it.\nA white dish with a tomato based casserole\nStreet art painted on the wall in an asian country. \nA baseball players stands at home plate, waiting for the next pitch.\nA group of people riding skateboards across a walkway.\nA white cat wearing a helmet made of melon rind.\nA very cute cat laying on a rug.\nA young man wearing a ring adjusting his tie\nA large white clock tower towering over a small village.\nA group of people standing next to each other.\nScantily dressed women near a line of motorcycles.\na baby girl with a tooth brush in her mouth\na long wooden dock having a bench and some people on it\nAn orange, white and blue bus on a street.\nTHERE IS A BOY IN  A BLUE SWEATER LOOKING AT SOMETHING\nthree women and one man drinking wine and having a good time\nA clock with a base made of stones standing near several parked cars.\nA green and blue motorcycle parked on the side of a road.\na man playing a game of frisbee in a lush green park.\nan Asian man standing by the back of a taxi cab in the city\nA close up of a front end of a motorcycle and tire.\na number of statues of people in a kitchen\nA baseball player swinging his bat at a baseball.\nA hard to miss street sign set between two traffic lights.\na woman riding a horse while holding a flag\nMen on phones standing in white room with lights\nA large boat traveling slowly trough a harbor.\na man on skis showing a young child how to ski\nMany small airplanes with propellers parked in a stationary position.\nA refrigerator that has a plant on top of it.\na small laptop is sitting on a desk\nA woman standing on a sidewalk near some water holding an animal print umbrella.\nA glass of reed wine sits next to a half empty bottle\nLaptop with computer monitors displayed on wooden desk.\nA picture taken from the driver seat of car at a stop sign.\nA coffee table that has a map on it.\nA skateboarder is doing a trick over an object.\nA picture of a stone bench in a park.\nTwo beds with decorative wooden headboard and foot board, one is a double and one is a single\nOld cars parked on a street in front of two buildings.\nA vase filled with colorful flowers next to a green vase.\nA black and brown dog laying on the ground.\na close up of a child eating something\nThree pizzas sitting next to each other in boxes.\nA man is holding a Frisbee on his row boat.\nA teenage boy is doing a trick on a skateboard.\nA brown dog rides in a boat as a girl in a yellow life jacket rows.\nTall man jumping into the air to catch a frisbee over another person. \nA toilet and bidet have toilet paper stacked between them.\nA girl in torn pants is on her phone while a man in a white t-shirt sits next to her.\nA living room filled with furniture and a large window.\na sunny beach filled with a lot of curved kites\nA bus drives through an intersection in a suburban area.\nA woman in vintage hat holding a tan suitcase.\nInside of an out house with the toilet seat up and a towel.\nAn old man on the phone wearing glasses and a blue coat.\nA metal juicer sitting on top of a table next to veggies.\nA man laying on his back in a field of grass while holding onto a parachute style kite that is flying in the sky above him.\nA white boat sitting along side of a shore line.\na close up of a foam box of food \nA couple of birds perched on poles sticking out of a lake.\nA wooden ball on top of a wooden stick.\nA man in a wheel chair is walking his dog. \na person getting a drink with a person behind the bar\nTwo park benches sitting in grass under dappled sunlight\nA bird themed clock sitting inside of a green box.\nZebras grazing in enclosed area, probably a zoo.  \nWoman with a backpack on sits on the curb moving her skateboard\nA store window with a tray of grass and vegetables\nA group of people and a girl holding a cell phone.\nCows and sheep graze a snowy field on a cloudy day\nA large clock sitting on a sidewalk next to a large American flag covered building.\nA lemon hangs from a small tree limb near several leaves.\nA yellow bench by a mosaic brick road with an adult standing and bending over a bicycle, with cars, a tree and a building in background.\nFuzzy cat sitting outside on the window sill\na bicycle in a living room with a tv\nA woman seated in front of a buffet of pizzas.\na tennis player who has just made a shot.\nA bench sitting next to a river next to a bridge\nA man and woman are sitting at the table\nA couple of cows sanding on top of a grass field.\nA white microwave that is under kitchen cabinets.\nCat wedged between two large oak doors trying to get out.\nA dog that is laying down on a couch.\nA group of motor scooters parked in front of a building.\nA parked truck in a parking lot next to a tree.\nA piece of bread that is on a plate.\nA man sitting down on a chair at a table with food.\nA brown horse standing next to a blue car.\nA bathroom with a white toilet next to a sink.\nA very large get liner flying in the sky.\nA person riding a brown horse through a green pasture.\nA city bus is slowly making its way down a very crowded street. \nAn older floor light sits deserted in an abandoned hospital.\nA stop sign is hanging from a metal post.\nSmall black and white dog laying down on top of a bed. \nBeach goers enjoying a sunny day in the sand and surf.\nThere is a truck full of people in front of a building. \nA bench next to three potted plants. \nTwo blue park benches on a beach facing the ocean.\nA man carrying a surfboard out of the ocean.\nA bed with a metal frame with a jacket on it.\nA young man standing in front of a Canon store.\nAn adorable child brushing it's teeth with a toothbrush.\nA man wearing a Tour de France t-shirt stands beside a statue of a cow.\nA man sitting next to a woman while wearing a suit.\nWe are looking at the floor between the toilet and the wall.\nA boy in blue shirt standing with a baseball bat.\nA marble tiled bathroom with double sinks and wooden cabinets\nThe green and white city bus is parked a the curb.\nA white toilet sitting under a bathroom sink.\nPeople rowing several canoes on a small pond.\ngiant colgate clock sits on shore next to water\nA hitter swings at the baseball and misses.\nA fanciful dressed piece of pizza on a plate.\nA woman wearing a red tennis outfit holding onto a racquet.\nA row of motorcycles sitting on top of a parking lot.\na person sitting at a desk with a keyboard and monitor \nA kitchen with a tile floor and a metallic sink.\nA stylized photograph of a really old fire hydrant sitting beside a bent iron handrail.\nYellow shoes sitting next to a suitcase with red lining. \nA row of empty benches alongside a road.\nA woman riding a green bike with a small white dog on the back.\nA man swinging a tennis racquet on top of a tennis court.\nA man riding a surfboard on a small wave in the ocean.\nA group of young women playing a game of soccer.\nA blue and orange bus on street next to buildings.\na computer desk with a laptop another monitor with a keyboard and mouse\na bus with some decorations all over the side of it \nA large group of animals standing in a large grassy field.\nParallel parking between the meters on a city street.\nA person riding on the water in a red row boat.\nA woman eating a chili dog during the day.\nA man is standing on a beach and holding a surfboard.\nA train is sitting beside a railroad track.\na bunch of sheep are standing in a snowy field\nA fire hose sitting on top of a man hole cover near a yellow post.\nA young boy wearing pajamas eating in a kitchen.\nA person riding a paddle boat on top of a wave in the ocean.\nThis must be the Boston Commons on a  spring day when there is a light drizzle.\nA polar bear in a zoo nibbling on a branch\nA bathroom sink shapped like a glass bowl.\nA few kids sitting with teddy bears at a table.\nA group of people riding on top of a ski lift.\nAn orange and white cat, a grey cat and a black cat on a bed with a blue and green cover. \nA yellow bus that is sitting in the grass.\nA bench on a wooden plank in the water\nA group of people sitting at a table having dinner.\nSidewalk in city with store fronts and clock.\nA cat drinking out of a cup on a  night stand.\nA person doing a skateboard trick up a bowl\nA pile of luggage sitting next to a  lamp.\nThere is a black and white photo of a cat behind a fence\nA bedroom with a bed, desk and a television.\nA sandy beach covered in umbrellas near the ocean.\nThe blue and white bus is travelling down the street.\nA hand holding a sandwich in a napkin\na row of boats are lined up in the water\nA giraffe walking across a dirt and grass field.\nA giraffe's head is hunched down looking for grass.\nan image of a person slicing pizza with a knife\nA bus with two people and luggage by the door\nA teddy bear tucked into bed under a blanket.\nA group of children sitting at a table sharing a meal.\nA man riding skis down a snow covered slope.\nSmall passenger train passing through verdant country side. \nA group of people standing around a kitchen preparing food.\nWoman sitting at an outdoor table working on a black laptop. \nSeveral buses and animals pulling carts on a road.\nAll of the people have their motorcycles parked.\nA man jumping on snowboard with mountains and trees in background.\nA tray of chicken with sauce on it and some broccoli.\nA tall clock tower with a massive clock on each of it's sides.\nPeople wait at a public transport station in Thailand.\nTwo trains near railway stops on the tracks. \nA white bowl filled with pasta on a plate with vegetables.\nA well made up bed with lamps above and around it.\nPeople walking and holding ski boards on snow covered ski slopes.\nAn advertisement on a trailer of baseball player\nA person holding piece of cardboard next to desk with speakers.\nAn orange and white cat laying on top of a brown shoe.\nA wooden box filled with birds and rabbits.\nLight poles in the snow with yellow traffic lights mounted on them.\na small bathroom has a small toilet and grate in the floor.\na lady holds a basket of donuts and muffins with a bride in the background\nThe kitchen area of a RV with the window open.\nA baseball player holding a bat and getting ready for the pitch.\nA black plate filled with food by a keyboard\nSome sunscreen that is sitting on the table.\npeople crossing a city street in the rain\nA street scene with people lined up on the sidewalk.\nA bed that can fold into a cabinet when not in use\nA plate of food with vegetables and meat.\nA tree with a bunch of unripe bananas hanging from it.\nA man standing behind a brown horse on top of a field.\nThree hot dogs with ketchup and mustard on a plate\nA tall giraffe is standing by a fence.\nA man reaches into the air with a tennis racket, in an attempt to hit a flying tennis ball.\nTwo people play an interactive video game in a living room.\nA young person riding a skateboard down the street\nThere is a bike that is parked by a bench, and an airplane that is high in the sky\nA tower of a church above a clock and window.\nA restroom with urinals, sinks, and a mirror.\nA wooden area on a ship with lots of food.\nA white toilet sitting next to a wall outdoors.\nA baby smiles with it's stuffed animal. \nA city street filled with lots of traffic.\nA tall two story gray house sitting in front of a street sign that readsd Nirvana Dr.\nA tennis player reaches overhead with her racket.\nA beach lined with colorful umbrellas under palm trees.\nA row of buses sitting next to each other in front of a tall building.\nA girl and boy are sitting together on a bench\na cat lays on the ground playing with a toy \nA black horse standing in a desert field surrounded by mountain.\nthere  is a large blue vase that is empty\na close up of a person kneeling holding a rugby ball\nA man doing a trick on a skateboard on a ramp.\nA very big room full of people with fancy chandeliers.\na neatly made bed in a bedroom iwth a window\nA man is skateboarding down an open road.\nThe monitor is displaying a website for iTV.\nA picture of a person that is about to throw a frisbee.\nA patch of wild flowers growing next to a stop sign.\nA toilet with the seat open sitting in a bathroom. \nA nearly all black snapshot shows a man standing sideways and looking forward, who is wearing a dark coat and hat and a bright pink tie. \nA large sink next to a kitchen in a hotel room.\nGroup of young men playing soccer on a field.\nA couple of bags of luggage sitting on top of a ship.\na public bathroom with a toilet and hand rail\nA small dog playing tug of war with his owner.\nA woman sleeping on a giant piece of pizza.\nThree bikes on the shore while people talk on a small boat.\nan aerial view from a planes window of clouds and a sunset\nBaseball pitchers have their own unique stance when throwing a ball.\nA gray and white cat sitting on top of a table.\nA large gray elephant standing on top of a field.\nA cop riding a motorcycle next to a  white van.\nA desktop computer monitor sitting on top of a desk.\nA zebra lays in front of another zebra\nA large panda bear sitting on top of a wooden post.\nA flock of birds standing on top of a metal set of bars.\nTwo desks rigged to look like the drivers seats of race cars are at the foot of a bed.\nA group of giraffe standing on top of a lush green field.\nA security guard standing next to a no right turn sign.\nWoman and her dog tends to the herd of sheep\nA beach is full of umbrellas and beach chairs.\nBig Ben in London showing the time of 2:25 in the afternoon\nthree people riding surf boards on a small wave\nThere is a big stop sign colored in red and white \na large boat is in the water by a dock\nA large white seagull in flight over blue waters.\nTwo birds stand on the edge of a rail. \nA woman talking on the phone in front of a person selling apples.\nA group of children on bus posing for camera\nA person holding a smart phone in the palm of their hand.\nClose up view of baked pizza served on table.\nA little girl holding a hot dog and a drink.\nThere is a pickle slice and a hot dog on a piece of bread in a tray. \nA green candle and a vase on a table with one chair\nA boy does a jump with a skateboard while a girl watches. \nA plate filled with two sandwiches cut in half next to a bowl of tomato soup.\na man setting up his kite to fly \nTwo credit cards cut in half underneath a pair of scissors.\nA plate filled with a melted cheese covered sandwich and fries.\nA man sitting on a couch in front of a TV.\nPizza on a table at an outdoor restaurant at night\nA picture of a man with his cow named Elsie.\nTwo boaters are white water rafting through rough currents.\nA white toilet sitting in a bathroom under a white cabinet.\nA white bird flying through a light blue beautiful sky.\nA large living room has many items thrown around it.\nSome people that are sitting on a bench.\nA boy sliding down a waterslide at a waterpark.\nA field full of baseball players playing a game of  baseball.\nThe boy is wearing a party hat, and entertaining the table with his noisemaker.\nA row of red and white umbrellas stand above tables in an outdoor eating area.\nA woman cutting a cake while wearing a crown.\nA woman with an umbrella kneels near a child, who also has an umbrella.\nA woman throwing a frisbee on a field.\nA white teddy bear wearing different buttons hanging in a closet.\nParents watching their kids play baseball at the baseball park.\nVarious parts and games for a Nintendo Wii on a bed.\nAltered photograph of a case full of paperback novels\nTwo young elephants stand next to a wooden fence.\nA man carrying a basket filled with fruit and clippers.\nA trash can made to look like a soup can.\nIt is night time and the town is quiet. \na bowl of different kinds of food on it\na close up of a person holding food in napkins\nA herd of cattle walking across a muddy field.\nA dog sniffing a bicycle U-lock attached to a blue bike\nThe chicken has found something to eat in the grass.\nA dog is posted by the window with his reflection in a mirror.\nA man in glasses and tie pointing his finger.\nA wine bottle and glass sit on a table in front of a couch. \nA bathroom showing a necklace rack and toiletries grouped on the sink \nA herd of cattle walking across a beach next to the ocean.\nA young woman poses by a giraffe statue which appears to give her a kiss.\nA person that has some food in her hands.\nA young boy taking a toothbrush off the store shelf.\nA piece of lasagna with cheese and vegetable.\nTwo people that are posing for a picture.\nA baseball game being played before a crowd.\na man is surfing down a narrow river\nsilohette of a man against  the whiteness of the sky surrounding him\nA herd of sheep that are grazing on some grass.\na boy is sitting on a rock with a laptop\nThe encompassing of an outside town in the picture. \nA person aiming the remote at the tv.\nAn adult and baby elephant standing in a grassy field.\nA large black and silver clock in a display case.\na kitchen with white counter tops and cabinets.\nPeople standing around a table with plates on it.\nThree kids sitting with presents and cake, with a lot of books behind them.\nLarge unusual looking plain on the runway surrounded by many people.\nThe pedestrian is walking down the side of the highway by the bus.\nA couple of giraffes that are standing in the grass.\nThe giraffes wander around their cage and eat from the trough on a wall.\nSkiers enjoying a day on the slopes in the sun\nKitchen scene showing a black counter on top of white counters.\nA back yard porch and flower garden being admired by a dog\nA little girl sitting on top of a bed holding an object.\nA modern bathroom with hardwood flooring and counter tops. \nA speed limit sign mounted beneath a green street sign.\nA smiling man holds a bunch of freshly picked bananas\na couple of green chairs in a room\na person walks along a beach as some bird play in the water \nA dog sitting on a couch with its head cocked to the side.\nThe bird sits on a thin branch near berries.\nA large orange and white cat sitting in a field.\nA woman cooking with a large white bot and a cooking board with meat in it in a small kitchen.\nA person is hitting a ball with a racket\na motorcycle is sitting off the side of the road\nA black and white image of a man biting a donut. \nA pair of fathers and sons playing outdoors in the daytime.\nPeople walk on the side of the street past a bus.\nA large bouquet of flowers in a vase one being a sunflower.\nA sidewalk sitting along side of a building at night.\nA white plate topped with vegetables and meat.\nLuggage sitting on and around airline luggage carts on the tarmac\nA closed umbrella sitting on a balcony ledge above traffic.\nA man holding a baby with a laptop in front of them. \nA man and a women who are traversing the terrain on snow skis. \nA white cake decorated with flowers containing a slice of cake and a fork. \nA man on a bike near people on a bench\nA man playing Frisbee near a walking trail.\nA couple enjoying a yummy dark craft beer.\na couple of chairs that are at a table\nA bathroom with sinks, a toilet and a mirror.\nStuffed teddy bears and an eagle on a bamboo wall hanging.\nA plate of chicken with herbs and steamed broccoli.\nA pizza sitting inside of a small cardboard box.\nA white train car lays on its side in the dark while a man with a light is nearby.\nA surfer teeters on the top of a wave.\nMan sitting in an innertube with a hat on the Sidneyville. \nA woman sitting in a chair beneath a sign saying not to sit there.\nA man that is standing next to a bike.\nA white and green rusted fire hydrant spewing out frozen water.\nA cat walking past a potted plant on cement tiles.\nA motorcycle parked on a walkway next to a dog.\nthere is a young boy sitting on the floor using a phone\nA white street sign sitting on the side of a road.\nA man swinging a bat at a baseball on a field.\nA man holding a soccer ball on top of a lush green field.\nA white plate topped with blue and pink cup cakes.\nA freshly made and sliced up pepperoni pizza on a table.\nA tennis player jumps and swats at the ball\nThe black and white photograph of a classroom of schoolchildren is a bit out of focus on the right side of the picture.\nA road and traffic sign that reads \"motorcycles use caution.\"\nA white toilet sitting next to a bathroom sink.\na small girl with sunglasses is hitting a tennis ball\na small opened refrigerator on the ground \nMany plates and dishes line a kitchen cabinet. \nCars parallel-parked on a street with a street-light in the background.\nA close up of a stop sign on a public street.\nA man with a yellow helmet riding a boogie board down a slide\na person riding a snow board on a snowy surface \na group of baseball players playing baseball at a field\nThe child is cutting the birthday cake with a knife.\nA group of three cows eating food while standing behind bars.\nA man sitting on a cement block and kites flying in the air. \nA woman talking on a cell phone in front of a store.\nA side view of a ceiling with rows of windows and a clock. \na panda bear walking on a field near a tree\nA man standing on a  boat holding a knife.\nA man standing on a tennis court holding a racquet.\nA piece of chocolate cake with three different colored icing drops on it.\nA children's playground slide made to look like an elephant\nA plane flying  over a fence away from the airport\nA row of parked motorcycles sitting on the side of a road.\nA herd of zebra walking across a dry grass field.\nA bird is sitting on a bench in the grass.\na piece of bread with some other food on it\nA beautiful young lady talking on a cell phone.\nA bowl of peeled oranges sitting on a white bowl on a kitchen counter.\nA little dog sitting on a wooden bench.\nA man makes a face while holding a video game controller.\nTwo pink flowers in a yellow colored vase. \nA herd of elephants standing on a pond of water.\nA group of stuffed animals that are sitting outside a brick house.\nA beautiful old steam locomotive in the railhouse\na hydrant placed besides a road in the street\nA woman swinging at a tennis ball on the court\nA picture of a red bus waiting for passengers.\nMen standing and one pointing to an object on a street.\nA red surfboard is sticking up from the ocean waves.\nTwo female skiers are standing in the snow wearing purple attire.\nA man riding a wave on top of a surfboard.\nThe room is filled with remarkable items well suited. \nA young woman with a sword standing next to a man over an orange cake.\na room with a desk some couches a table and chairs\nA couple of men standing next to each other.\nTwo women playing with a Frisbee in a field.\nThe tailgate of a car open and two suitcases inside.\nA bowl fulled of vegetables sitting on top of a counter.\na street light is next to a stop sign\nTwo people standing next to a motorcycle on a brick path.\nIntersection of two street signs and a stop sign.\nA man riding a skate board up a metal rail.\nA silver park bench is in the park \nA girl sitting on a bench in front of a stone wall.\nA man riding a bike next to a red stop sign.\na man with a racket prepares to hit a tennis ball \nThere is a red car being towed on a truck\nA toy boat sits on the ground. \nA woman walking across a sandy beach with a surfboard.\nThis smiling skateboarder performs tricks in the skateboard park.\nA woman stands next to a fridge that has several glasses on top.\nA person that is posing for a picture.\nDull red train, 54,  between grass and trees.\nA very tall brick building with bricked up windows.\nA small pizza split into six slices with one missing.\nA couple of people laying on top of a sandy beach.\nA woman wearing a seat belt across her chest.\nA WOMAN IS STANDIGN NEXT TO A WHITE HORSE \nA motor bike parked in front of a building with a cover on it \na baby is reaching up and over an oven\nA baby holding a blue umbrella inside the house.\nA white clock tower next to a brown building at night.\nA bathroom features a picture of a woman a toilet and a sink.\nA man wearing a blue tie taking a selfie in a mirror.\nA park bench is beside a stone wall and a flowering bush.\nAn elephant in the water inside its exhibit.\nA young man riding a rail down some stairs on a skateboard.\nAn old truck and old car buried in snow in a winter yard\nA man serving another man a cake with candles on it.\nA woman standing next to a  white horse in an arena.\nA man kneeling down beside the street and a yellow building. \nA toddler playing with toy trains on a toilet.\nA person sits at a desk in front of a computer and keyboard.\nThe front side of a red truck that has chrome trim.\nA herd of white sheep standing on top of a green field.\nPeople sit on the curb as two large horses pull a carriage down the street.\nA man is walking while holding a racket on a tennis court.\nA man sitting on a motorcycle posing in front of a bay. \nA seagull standing near a body of water. \nA young boy riding a skateboard and wearing a helmet.\nthere are a few people walking on the white sand\nPlate of food sitting on a table while female sits at other end.\nA man with a red helmet on a small moped on a dirt road. \na room in a hotel with two beds a desk and a shutter door\nA man riding on the back of a brown horse through a river.\nA woman holding a piece of fruit and a bag.\nA black plate topped with a pile of different foods.\nA TV sitting in a room at the end of a bed.\nA teapot can be used a vase for fresh flowers.\na small girl chasing a white kite in the air\nA sandwich that is sitting on a napkin on a plate.\nA woman riding skis down a snow covered slope.\nA tray that has plates of waffles on it.\nA beautiful woman in a bikini surfing with her dog.\nA group of avaitors standing on an airport runway.\nThe man wears a nice watch and a colorful tie and cufflinks to complete his dapper look.\nA young woman carrying an umbrella is looking at a cell phone.\nA zookeeper brushes an elephant within its enclosure. \nA building with a very pointy roof and a clock.\nA white plate topped with sliced of pizza.\nAn elephant walking behind a large wire cage.\nTwo zebras eating some grass together in an open area.\nmANY CHEFS WORK ON COOKING FOOD IN THE KITCHEN.\na statue of a person riding a horse in front of a building\nA team of baseball players stand in a field and visit and wait.\nA beautiful young girl riding a skateboard on a sidewalk.\nTwo people in a park who are playing frisbee.\nMen and women are riding on motorcycles on the street\nA man catches a foamy wave on his surfboard.\nA desk with a monitor, keyboard and a laptop next to it. \nA fighter jet plane ascending into the sky.\nA large flag pole with a flag hanging off of it's side.\nA woman sitting behind bananas, cucumbers and a pan.\na shirtless male holding a green and white frisbee\nA number of signs pointing to different businesses.\nA zebra looks after one of its injured brethren.\nA bed sitting next to an open laptop computer.\nA bus with passengers who are getting out of bus with their luggage at their destination.\nA man flying through the air while riding a skateboard.\nA crowd sits on a hill as they watch a baseball player prepare to swing.\nTwo pieces of fried chicken and a side of macaroni and cheese arranged on a table.\nA man with a skateboard that is jumping in the air.\nAn overhead view of dogs sleeping on the couch looking out the window.\nA large Delta passenger jet flying through a blue sky.\nA lady on a very pretty decorated bike with a cute dog.\nTwo young girls in snow-boarding gear sitting down\na large air plane on a run way \nA little girl standing next to a man on top of a park.\nA brown teddy bear sitting in the middle of a road.\nA group of people standing next to a double decker bus.\na close up of a sandwich and a cup of food\nA guy making a funny face and holding something.\nA man riding skis down a snow covered slope.\nA dog in a leash harness posing for a photo.\nA banana and some fruit on a table.\nA group of people sitting at a table having food.\na dining room table that is in a room\nA single elephant standing in the sun in front of fence. \nA neat and tidy, modern, residential, family kitchen\nA bathroom door is opened by a toilet.\nA giraffe running across a grass covered field.\nA desk with a chair, laptop and printer.\nA baseball player in a white and black uniform holds onto a black bat as a ball is in mid air in front of him.\na tennis player swinging a racket on a court \nAn elephant stands in front of a watering hole in his habitat.\nsome people playing tennis for a large crowd to watch \nA white cake with chocolate being poured over the top of it.\nA surfer falling backwards off a surfboard on a little wave.\nA women playing tennis on a blue tennis court.\nSeveral sandwiches sitting on a window display together. \nA guy up to bat in a action in a baseball game.\nA modern open concept kitchen and dining room.\na man wearing a wet suit riding the wave\na person drinking something near a tv \na man and a woman sitting on a bench in front of a building\nA young person laying their head next to a green plate.\nA silver and green train crossing over the tracks\nNan or woman is enjoying a day of surfboarding on a brown/orange board.\nA bird sitting on the back of a giraffe next to a tree.\na person sitting on the ground in front of a stove\nsome sheep eating grass in front of a rock\nA rustic iron fence with bushes in front of it and a blue information sign.\nA bowl of soup that has some carrots, shrimp, and noodles in it.\nA man who is walking across the street.\nA small child is eating a donut fed by another hand.\nA tent in a forest next to a silver and brown RV.\nA bunch of luggage laying on an area rug. \nA car driving through a tunnel under buildings\nSeveral people are standing at a table looking at wine bottles.\nThe image shows a series of a snowboarder's descent down the slope. \nA yellow and white train traveling past a train station.\nA clock statue surrounded by city traffic and streets.\nTwo giraffes standing around in the middle of a field.\nA snowboarder crouching on his board in mid air.\nA group of cars that are driving passed a church.\nFresh red and yellow tulips in a vase.\nA woman in a tie and blue hair. \nA  large air plane flying in the blue sky.\nA passenger train that has had some graffiti written on it.\nA room is shown with a bed and luggage.\nTwo giraffes with necks crossed in the distance.\nA man knees down on the side of a snow filled mountainside.\nThe green and yellow train is rounding the bend of a track.\nMan speaking from lectern at outdoor gathering in urban area.\nA bunch of people at a table eating.\nA skateboarder in the middle of a trick on a concrete rail.\n A Big Ben clock towering over the city of London.\nCat sitting on wood framed mirror looking down at own reflection.\ncolor photo of three zebra standing in all directions\nA young woman using a laptop computer while sitting on a bunk bed.\na white bus is on a busy street\nA stop sign along an empty road lined with a green fence.\na large bus is up by the side of a curb\nA bathroom with two sinks and two mirrors.\nA baseball player pictured running on the field\nA piece of strawberry cheese cake with a fork on a plate.\nA white table topped with a laptop computer sitting next to a phone.\nA little boy flying a kite in a sunny field\nA man flying through the air while riding a skateboard.\nA little girl standing next to a soccer ball about to kick it\nA shelf topped with golden clocks behind a plate of glass.\nThis photo shows a man in a chair with a toddler next to him.\na close up flowers and plants inside of a bowl  \nA roast meat sandwich with a green sauce sits on a plate with something fried to the side. \nThe two zebras are fighting for their own territory.\nA group of men playing frisbee in the park.\nA grey duck flowing in water next to branches.\nA white table topped with a laptop computer next to bowls of food.\nAn unmade bed and a turned on lamp.\nA pot full of vegetables and ready to be cooked. \nA herd of wild animals grazing on green grass next to a lake.\nA white dog laying on top of a couch.\nA plane that is flying in the air.\nA plate topped with a piece of food sitting net to a paper plate with a knife on it.\nA large passenger plane on the tarmac of an airport.\nThe older man uses a computer near library equipment.\nA herd of sheep in an open snowy field\nA railroad crossing sign next to railroad tracks with someone walking on the tracks.\na picture of a girl with a cat on a laptop screen\nThe herd of zebras are traveling together as they walk, eat, and stand.\nA no parking sign posed on the side of a street.\nThe woman stands near the stove near a baby chair on the ground. \na small cat is sitting in the window of a house\nFive dirt bikes are in the garage before the race begins.\nA bathroom with a tub and toilet. \nA man standing on a sidewalk behind a cart of carrots.\nA man is holding several throwing discs with other people standing or sitting around.\ntwo sandwiches with marinara sauce and vegetables on a long white plate\nLufthansa has been a recognizable airline for many years.\nTwo plush teddy bears sitting side by side, one has a bow around its neck\nA bedroom with a bed and chair along with a nightstand with lamp on top of it.\na white cat wall clock with a red handle \nA woman sitting on top of a red motorcycle.\nA group of people riding in the back of a truck.\nA row of motorcycles parked in front of a building.\nA man riding a skateboard into the air.\nA fleet of semi trucks driving through orange traffic cones.\nA pot that has food inside of it.\nA blue bus driving down a street past a park.\nThere is a close up photo of an elephants face wearing a garment\nThere are several people standing near a pizza.\nA crowd of young children sitting next to each other.\nThere is an indoor toilet underneath a sign that says please flush. \nA display case filled with various donuts and other sweets.\nZebras walking in the middle of the road\nA man reaches as high as he can to hit a tennis ball.\nthis is a foot and a skateboard in the ground\nPeople sitting on a bench at the train station.\nTwo baby gray elephants standing in front of each other.\nA group of kids playing a video game system.\nA woman and a kid in a room.\na furry cat sits behind a child's laptop\nA small child on a skateboard photoshopped over a street image.\na shower door a sink a mirror and an outlet\nA man that is riding a skateboard up a ramp.\nA group of people getting onto a bush carrying surfboards.\nA woman playing tennis and holding a racquet in her hand.\nA man sitting on the beach behind his surfboard.\nTwo tall giraffes graze on bushes in an open field.\nTwo trains that are on the rails near a station.\nA kitchen is displayed, showing wooden cabinets and a blue tiled counter top.\nAn elephant with tusks is on the grassy ground.\nA person bent over sleeping in a chair next to others.\nA red double-decker bus parked on a helicopter pad.\na wooden desk with radio equipment in a room \nTwo surfers in the water and one riding a wave.\nA parked motorcycle on the side of the road.\nThe bushels of bananas on display are purple.\nDude on horseback leads herd of sheep with two dogs\nA doorway with a large glass window on top of a wooden floor.\na little kid riding a skateboard at a park\nA couple walking down a path by the waters edge.\nA group of people standing on a beach flying a kite.\na kid eating a cake on  table looking around\nA man riding a paddle board in the middle of a lake.\nA bathroom scene with a toilet, sink and a suitcase.\na bench near a table near a tree \nA man with his back to the camera watching an oncoming train. \nA large amount of kites in the sky\nA green and light blue bus traveling down a highway.\nA bathroom with a decorated shower curtain. \nA large renaissance type building includes a clock tower and upper balcony.\nA cyclist pauses near the water to observe a canoe.\nA couple of men standing on top of a snow covered slope.\nA street post with a one way sign and street name sign along with holiday decorations.\nA large clock near a house is marked, \"1802\".\nA small white car with a small white dog riding in it.\nA  man in a hat riding a horse\nA man standing on a beach with a parachute in the background.\nGuy sitting on ground in the middle of the street with traffic light behind him\nA cat is sitting on the hood of a car in a residential area.\nA batter lined up to hit while the catcher and ump wait for the ball. \na bluish motorcycle parked on sidewalk in park\nthree vases with flowers inside on a table\nAn open laptop computer sitting on top of a bed next to a mouse.\nA person on a court with a tennis racket.\nSeveral people riding on a motorcycle with an umbrella open.\nTwo little birds with white chests sit on barbed wire.\nA kitchen with several appliances sitting near a refrigerator.\nA girl and boy playing on a fire hydrant.\nsome people and some white sheep in their pens \nA small tricolor terrier dog in a pink collar.\nA living room filled with furniture and a table.\nA plate with a starch, vegetable and meat on it.\nA man is standing next to a tree with a surfboard.\nA group of people sitting at a bar as a man prepares food.\nA flock of birds flying over a beach next to the ocean.\nA kitchen with marble counter tops has wooden cabinets and many appliances.\nBlack and white photo of a family with a dog and females holding tennis rackets.\nThe teddy bear is sitting next to the buddha statue,\na cat laying nestled up into a bowl with its head on top of a remote\nA room filled with a pile of black umbrellas.\nTHERE IS A BENCH IN FRONT OF TE LAKE \nVery cute little boy with baseball bat and Yankees hat\nGroup of men standing around a kitchen eating small sides. \nA red and black boat floating on top of water.\nA horse and carriage is on a quiet street as a woman walks down the sidewalk.\nFive cats are sleeping on a bed with a red bedspread.\nA tennis player gets prepared to hit the ball.\nA room that has a small television next to a red chair.\nEight hot dogs on charcoal barbeque on cement\nA man wearing a hat sitting on top of a boat.\ntwo zebras standing by a car in front of some trees\nA sandwich with meat, vegetables and dressing is sitting on a plate.\nFour people sitting on a bench looking at the water\nThe trolley is picking up passengers along the road.\nA street lined with cones with people up and down the sidewalk.\nA pink box filled with donuts next to a bottle of coke.\nA person standing in a field holding a kite.\nA row of United States Army military fighter jets.\nA large filled with lots of purple flowers behind a blue sign \nCouple in dress outfit standing in front of the white table with books on it. \nA person walking in the ocean with a surfboard under their arm. \nA man taking a turkey out of the oven\nA wooden bench sitting next to a fence near a forest.\nA living area with a fireplace, television and couch.\nA large jetliner lading on a runway at an airport.\na big dog leans out the window of a car\nA group of planes sitting on a runway, in the day.\nYoung woman with long brown hair in very dark grey jump top holding electronic instrument like a remote control.\nA cat is  sleeping inside a duffel bag.\nPeople sitting at a bar looking at a map \nTwo men holding baseball bats on a field. \nA KEYBOARD, MOUSE, AND MOUSE PAD SITTING ON A DESK\nA person on a skateboard on a street.\nClouds can be seen beyond the wing of the plane. \nTwo cows standing and grazing in an open pasture.\nA chair that is placed in an alley way. \nTwo dogs resting comfortably on a tiled floor.\nA table filled with plates of food and bread.\nThe bluebird is just sitting quietly on the branch.\nA flower arrangement is standing on a table in a very ornately decorated area.\nA plant in a garden near a white building.\nA bathroom shower with towel hanging from the door.\nA meal laid out on a table outside at a restaurant.\nA bathroom with some of the wall removed during a renovation.\nSeveral zebras on a plain, grazing and congregating.\nA sandwich and sauce is placed on a plate at the dinner table.\nA couple of cars on a city street.\nA boy is crossing the street in front of the buses.\na bunch of people sit around a wooden table \nA man sitting at a table with two waffles on it.\nLarge sandwich sitting on white plate with other food on table. \nA picture of a shaded walk way and benches. \nA ram standing still in an empty pasture.\nA small black pug is wearing a sweater and Santa Claus hot.\nA bowl in a sink and window in a room.\na group of people next to a train with a sky background\nA woman is steering a boat with a pole.\nsome people are on some grass playing frisbee\nThe two images show a dining table and a lamp on another table near a door. \nSomeone looking at a computer monitor in the dark.\nA person is skiing with ropes tied to a broken tree.\nA small dog wearing a pink and purple dress.\nA brown dog pulling on a hand holding a frisbee.\nAn orange and black train with train cars passing trees.\nVery artistic photograph of a house, a lake and a wooden boat\nA cup of coffee sitting next to a banana, apple and glass of orange juice.\nA boy skate boards down a neighborhood street.\nTwo large commercial airplanes sitting on the runway.\nAn intersection of a city with pedestrians in the crosswalk.\nThree women that are finishing a skiing tournament\nTwo women in the kitchen with a plate of spaghetti.\nA train traveling down train tracks next to a tall building.\nA surfer is on his board in the middle of an ocean spraying wave.\nA large orange bus that is rolling down the street.\nA remote control, book and phone sitting on  a bed\nA blue and white sign that doesn't allow something\nA group of people horse back riding on a sandy beach.\nBig clock decorates the outside of a brick wall\nA pond with two ducks swimming on top of it.\na stop light with multiple lights around it\nA woman holding an umbrella in a square.\nA person is riding a wave on a surfboard.\nThree baseball players getting their picture taken by a man.\nCrowd of people walking near trucks outside of large complex.\nThe young girl wearing red and black rides atop the white pony.\nSmall red propeller airplane sitting on an airport runway. \nA backpack next to a television and a gaming system.\nTwo people flying a kite with blue sky in the background.\nA man riding up the side of an empty swimming pool on a skateboard.\nMany people playing a type of sport on a field. \nA woman holding a tennis racquet next to a tree.\na close up of food on a plate on a table\nA young boy who is batting at a baseball game.\nA cat sitting on the back of a bench while looking upward. \nA small ring of raw meat in someone's palm\nA black and white shot of a toothbrush on the sink rim\nPastry baking in a black cast iron skillet.\nA young woman gets ready to serve the ball.\nA park bench next to a serene lake.\na yellow and white concrete truck next to a bus\nA green heron perches on a stump in a swamp.\nA man is in a kitchen making pizzas.\nseveral horses pulling two carriages across sand next to a body of water\nA girl is carrying a bird kite under her arm. \nA very simple bathroom with beige and cream colored decor.\na skate park with multiple kids on skateboards\na couple of kids are holding up pink umbrellas\nI am unable to see the image above.\nPeople with umbrellas walking down a street on a rainy day.\nA yellow sign sitting on the side of a road.\nThe tennis player does not know what to expect with the next serve.\nA wooden post showing different paths to be taken\nA brown teddy bear sitting on the ground next to a comic strip.\nTwo men sell ties at an outdoor market.\nFour cows of various color grazing in a field.\nA group of people sitting at a table with plates and soda.\nA fridge is open and showing the food inside\nA white bathroom is shown with a blue towel.\nA man holding up a bunch of root vegetables for sale.\nA baseball player pitching a ball on top of a field.\nA group of friends hanging out in a kitchen together.\nA dog sitting in the passenger seat of a car.\nThree women who are sitting on surfboards on a beach.\na bird standing on a tree limb next to its nest\nA kitchen area with two refrigerators and a microwave.\nA cat that is sitting between two computers.\nThree people posing for a picture in front of a cell phone case.\nan image of a kitchen setting with ceramic backsplash \nFriends playing a game of Frisbee in a green park\na ship sitting out on the ocean not moving\nTwo beds sitting side by side in a hotel room.\nA red and yellow bus next to some bikes\nTwo brown bears are standing on the rocks. \nA skateboarder performing a stunt in an urban area.\nA stationary train with the door wide open.\nA man in a jean jacket has a red tie.\nA person holding a phone and a lcd screen dial.\nTwo women walking together in the rain with umbrellas.\na stop sign and across the street are some vehicles\nA pizza pan with a slice of pizza on it.\nA large white sheep next to a small black one\nA man on horseback herds cattle on yellow grass.\nA woman with glasses and holding a cell phone on the street\nA group of people and bicycles and an orange sign that reads \"orange.\"\nA group of twenty-five squares of different photos of carrots.\nsome bananas with some stickers and red ends\nA man laying in bed with a book and three cats.\nA rear view of some drinks on a sandy beach. \nA young child swinging a baseball bat during a baseball game.\nA lunch tray features hot dogs and fries with a drink. \nTwo pieces of food sitting on top of a white plate next to a fork.\nA close up of a plate of pasta containing broccoli.\nsome people are sitting on a bench in front of a boat\nA young boy dressed in costume eating a white cookie.\nA small dog running to catch a frisbee in the air.\nA man without a shirt holding a smart phone.\nAdult and juvenile giraffes standing and lying on a dirt clearing.\nA  man getting his collar fixed by another man.\nA woman taking a picture of her rear view mirror with a dog sitting next to her.\nA black and white cow standing next to a barbed wire fence.\na little boy that is hitting a baseball ball\nParachutes fly through the sky above the ocean. \nA group of zebra standing on top of a dry grass field.\nA city with many people waiting for a train.\nA ballplayer on deck practicing for his turn at bat\nA man is flying a kite on the beach.\npeople at costume party dressed up in costumes\nTwo people kissing at a park holding an umbrella. \nA young man holding a baseball in front of a pitcher.\na bathroom with a toilet, tub and window\nHere is a woman lying on a bed pointing her finger.\nA fire hydrant that is red on top and says to open.\nA bus is driving down one side of the street. \nKites fly high in the air over a park.\nA white and blue city bus traveling down a city street.\nSomeone is going thumbs-up to a fresh chocolate cake. \na guy unwraping a big screen tv in his living room\na young blonde standing and playing with her cell phone\nA person wearing all black does a one handed hand stand as he holds a skateboard on his feet.\nSeveral children on teams are running toward a soccer ball\nA baby crib is in the living room under the television.\nA yellow box truck with graffiti on its side.\nMany people are gathered together for the dinner party.\nA big very tasty looking sandwich filled with some meat.\nA small child is holding onto lawn decorations.\nA picture of some people walking across the street.\nThe steering wheel of a bike with many gadgets parked in a mud room.\nA man in the air with a skateboard doing a trick.\nA closeup of a broccoli floret in bloom\nA window with wooden shutters and metal bars across it.\nThree women sitting on a train seat on cellphones.\nA group of traffic lights sitting above an intersection.\nA man holding a tennis racquet on top of a tennis court.\nA person cutting a multi layer cake with a knife.\nA herd of cattle and a dog hanging around on a hay covered ground.\nMany people flying kites at the mall in Washington DC\nSigns showing the intersection of two streets in a European country.\nA large cat sleeping on top of a bed covered in blue and brown blankets.\nA man and two children paddle on top of a surfboard. \nA fleet of green army trucks parked on a grass covered field.\na close up of a giraffe behind a fence\nStop sign at the intersection of Adams and Idaho streets.\nA man playing tennis, with two tennis balls on the ground in front of him. \nA man in black jacket holding a kite in front of another person.\nA large black bear standing in a forest.\nThe bathroom sink and vanity is a little messy. \nA pile of stir fried meat and vegetables covered in a sauce.\nA desk with a computer, a keyboard, a mouse, a bobble head, speakers and a lava lamp on it.\nA very tall giraffe walks through the trees.\na close up of a hot dog next to a drink on a table\nA bathroom with a reflection of a television and a sink.\nA group of giraffes hang around in the zoo.\nAttendants at a fancy event wear long dresses and tuxedos.\nA lot of potted plants sitting on a glass table.\nA view of a kitchen shows large and small appliances and pans on the cabinets.\nA clock that is sitting on top of a pole.\nan old antique clock hanging on the wall \nA group of children are playing on mini laptops.\nTwo horses pulling an older styled coach passing a home.\nThere are some sandwiches and some seafood sitting on a table. \nA hefty rugby player in red shirt and black shorts in the air.\nA man is standing with a group of elephants.\nA bird sitting on a sandy beach next to the ocean.\nA view of a baseball game during the day.\nA bunch of birds that are standing on a pier.\nA tiger cat sitting on the arm of a sofa in a living room.\nA man holding a surf board on a beach. \nTwo giraffes grazing from feeder next to trees.\nA person on a court with a tennis racket.\nTwo women playing tennis on a tennis court.\nA small cat sitting on top of a couch looking out a window at another cat.\nA bunch of bananas sitting on top of a tiled floor.\nA man standing next to a giant elephant.\nTwo people are sitting on an outdoor bench at night.\na line of big trucks that are parked in grass\nA person is sitting at a keyboard near a microphone.\nA bird resting on a birdfeeder hanging on a tree.\nA sandwich with meat in a wrapper on wooden counter.\nA girl in white shirt painting a black umbrella.\nBoiled eggs, tea and donuts on a picnic table\npeople are skiing down a large snowy mountain \nA truck and people on an elefant are travelling down the road.\na bench surrounded by different types of plant life \nSurfer heads to the sea with his surfboard\nA computer desk with a desktop and laptop computer. \nA clock that is on the side of a tower.\nA baseball game in progress with the batter swinging.\nA group of men standing around a sidewalk together.\na bunch of bags that are laying on the ground\nA car, traffic lights and road signage on a city road\nA washer, sink and a refrigerator all in a corner room?\nPassenger rail train moving quickly, everything around indesicriminate blur\nA man on a surfboard riding a wave.\nSomeone roasting hot dogs in a fire outside\nA bunch of flags fly in the sky on a field. \nA man walking beside a horse with a kid on it next to a dog.\nA person in shorts and no shirt running in the sand\nA person touching a big cheesy meat sandwich.\nA beautiful young lady standing in front of a shower.\nan image of a a plane that is flying in the air\nTwo women who are standing in the grass with a frisbee.\nAn airplane on a runway getting some work done.\na sandwhich sitting on a plate next to a glass of tea, bowl of soup\nA girl with a kite running in the grass.\nA person that is holding some food in her hand.\nA plate topped with three different types of doughnuts.\na golf ball sitting in a patch of straw, grass, and pine cones.\nA boat is sitting in the water at a dock\nTwo zebras are heading into the bushes as another is heading in the opposite direction.\nTwo men are playing tennis on a tennis court.\nA man riding a motorcycle with a woman on back of it.\na small kitten inside of a laptop on the floor\nA train car sitting underneath a enclosure near a pole..\nA man and a woman eating lunch outside while sitting under a large umbrella.\nA clock sitting below a city street and a second tier of a store.\nTwo men standing in a living room next to a couch holding Wii controllers.\nA tall building with a large neon side mounted on it's roof.\nA man riding a wave on a surfboard in the ocean.\nA man flying through the air while riding skis.\nTwo children looking at a steam train engine\nA group of people at a table in a room.\nA small dog is laying on a couch with a shoe.\nA bowl of soup with broccoli and brown beans.\nA man jumping through the air catching a frisbee.\nA hamburger and french fries on a plate near two glasses. \nRed and yellow fire hydrant with the lid off.\nA little girl is holding a new teddy bear and glaring at stickers.\nA crowd of people shopping for fruit in a farmers market.\nWoman eating a hot dog standing in front of a fountain.\nA man is leading a cow with a ribbon on its neck.\nA dog and a cat standing side by side.\nA baseball pitcher throwing a ball during a baseball game.\nThis very long room holds many interesting things.\nA group of people riding skis on snow covered ground.\nA picture of a sleezy man in a blue frame on top of a metal and wood shelf.\nA stainless steel table is in the middle of the large room.\nA young girl eating a very tasty looking slice of pizza.\nA kitchen shelf holds an assortment of pots, pans, and utensils.\na public transit bus driving on a city street\nA sidewalk going past many stores near a street.\nA woman is cutting a sheet with scissors.\nA woman in a red robe is sitting at a dining table.\nan elephant standing by some trees with it's trunk in the air \nA yellow school bus driving past a red brick building.\ntwo bears touching noses standing on rocks \nA row of parked motorcycles sitting next to a tall building.\nThe baby lamb is standing on green grass.\nA airplane is on display behind an enclosure with snow on the ground\nA man standing on a tennis court holding a racquet.\nA man wearing a green shirt playing tennis.\na close up of a young baseball player fielding a baseball\nA bus stopped on a street at a cross walk.\na woman is sitting at a small table\nA man and a woman holding a shark kite on a beach.\nA person riding a snowboard into the air next to a tall building.\nA couple of brown cows walking across a green field.\nA photograph of a group of people at a party.\nSome flowers are in a beer bottle vase.\nA man in brown shirt playing with a red frisbee.\nA hotdog, fries and a drink sit on a table beside a book.\nA man with a tennis racquet and a referee in the background.\nBathroom decorated in blues and greens with a mirror over the vanity.\nA white paint holding food that includes broccoli and meat.\nThe long metro train is moving along an elevated track.\nA bunch of remotes that are in cloth holders.\na mouse and keyboard in front of a computer\nA sign on a road that resembles a chess board.\nA bus driving down a street next to a lush green forest.\nA yellow double decker bus on street next to buildings.\nA huge and strange looking clock towers on the building. \nA group of people standing around with two of them holding the Nintendo Wii remote.\nA man riding a motorcycle down a city street.\na man that is standing up with a cord in his hand\nA couple of people riding skis down a snow filled trail.\nThe tennis player perferms in front of a crowd \nA pan topped with two slices of pizza sitting next to a fork.\nA single giraffe standing in an open field.\nA half of a chicken with bread slices next to a wine glass.\nThe car lights are streaking by on the street.\nA competitive skier leans on their skis while going downhill\nMany different boats that are on the water. \nThe woman with a sandwich on her plate is drinking from a wine glass. \nA man riding on the back of a brown horse in front of a truck.\nPASSENGER TRAIN WITH SMOKE BILLOWING IN THE WIND,TRAVELING THROUGH THE TREES\nA dog and a cat are playing in a field\na number of large air planes at terminals \nAn Asian street scene with many people on the street.\na laptop computer sitting on a cushion  open and running\nA man sitting in a chair with a woman cutting his hair.\nMany students sit together and talk in a classroom.\nA number of unmanned small boats tied together.\nA variety of pots are stored in a nook by a fireplace.\nthis is a white van driving in the street\nA kitchen area with dining table and refrigerator.\na horse is walking around outside the barn\nA man biting into a doughnut with a sly look.\nA bathroom has a sink and a bathtub.\na bike sitting by a pole in a narrow alley\nA male standing with an upright surfboard on a beach.\nA group of people in a city park many are flying kites.\nA city street with stores across the street and a bicycle parked on the side of the street with a dog sitting in the front basket.\nA man sitting at a table eating food from a plate.\nA man standing on top of an orange boat on a river.\nA man sitting in the back of a truck.\nA pack of zebra walking around a grass covered forest.\nA glass vase with some red water inside. \nA large group of people on a beach that is next to a mountain range.\nTwo people are riding a small motorcycle off-road.\nA person riding downhill on skis on a snowy hill, with large mountains in the background. \nA man walking a horse next to a boy walking another horse.\nA person carries a surfboard in from the water.\na person on a skateboard that is at a skate parke\na guitar an amp a desk a keyboard and a monitor\nA sign hanging of the side of a building on top of a clock.\nA man that is laying down with his tongue out.\nA plain white bathroom that is completely unfurnished.\na small child riding a horse on a city street\nA clock is shown on a wood panel.\nA living room with a couch sitting under a round mirror.\na young tennis player serving a tennis ball\nAn outdoor meeting with car in the parking lot and banners.\nTwo donuts sitting on top of a paper bag on a dinner table. \nA large goose cleaning itself by the water\nA airplane that is flying in the sky.\nSeveral people sitting at tables in front of a bar.\nA bed that has four pillows on it.\nA woman holding an umbrella in the rain \nA pair of hands in the process of cutting hair\nA plate that has a sandwich on it.\nA person that threw a frisbee in the air.\nthere seems to be a stuffed animal that was left in the street\nA baby giraffe standing next to an adult giraffe.\nThe dog is hanging out of the window.\na man that is riding a motorcycle on a road\na lot of very skinny cows with trees in the background\nA plate with an uneaten sandwich sitting beside a glass of beer.\n A sleepy cat stretched out on a fluffy pillow.\nA large giraffe standing next to a man pushing a bail of hay on a cart.\na bench in the woods covered in snow \nA woman and girl watching donuts being made through a window.\nA bed with white sheets and a night stand.\nThe dog lies on the ground, while the two men talk to each other.\nNumerous individuals are appreciating life and having an incredible time.  \nA large building has a Glass business logo on it.\nAn airplane in the sky with a group of clouds behind it. \nEntryway to a building with people entering and exiting.\na person playing frisbee on a field in sport wear\nA man wearing sun glasses, a tie and a suit.\nA person that is doing a trick in the air.\nA train pulling into a train station pulling a line of train cars behind it.\nA desk with black keyboard, mouse and computer monitor.\nA group of men standing around a luggage cart.\nSigns at a resort pointing in many directions\nA young girl is holding a stuffed bear. \nThis man is sitting on a bench next to a tree.\nA chef in a kitchen preparing a meal.\nSeveral slices of cake sitting on paper plates with forks on top.\nA man standing over a surfboard in the ocean.\nA woman wearing a dress and holding an umbrella.\nA woman in black sweater holding a glass of wine.\nA large herd of horses riding on either side of two men.\nA bike sitting In a glass window in a building\nSmall child holding up a blue and yellow striped umbrella. \nA towel on a drying rack in a bathroom with a wooden stool.\nA man is holding a plate with breakfast food. \nA young woman holding a tennis racquet on a court.\nA cat crawling into a white toilet seat.\nA nice shower has a glass enclosure and sliding door\nA metallic sink in a kitchen with a couple of dirty dishes.\nAnimals walk around a grassy area together. \nA bear is dressed dup to coordinate with the Christmas display behind him.\nAn assortment of foods arranged on a plate.\nA dog kissing a cat on top of a cement road.\nAn old bus makes its way down a city street.\nA view of the mountains is shown from an airplane window.\nA man in a black suit kicking around a soccer ball.\nA man and a dog on the shore near water.\nA group of three men walking horses on a paved country road.\na giraffe is standing on some grass and some trees\nA sexy woman walking down a street with a  phone.\nA smiling man sitting behind several wine glasses.\nA horse drawn carriage goes down this street surrounded with tall buildings.\na baseball player swings at a fast-moving baseball in a crowded stadium.\nVegetable and cheese slice of pizza on white plate.\nPEOPLE WAITING IN LINE TO GET FOOD FROM A FOOD TRUCK\nA young boy trying to get his striped kite to fly.\nA man walking into the ocean while holding a surfboard.\nA pair of children kick a ball together.\nA silver and green fire hydrant next to rows of flowers.\nA young boy is dressed up in a black pinstriped suit and hat.\na single red white and yellow train engine on the tracks\nA building has a fire truck near it on the street with a man on a lift.\nA computer chair at the desk with two computer monitors. \nA white dog laying next to a cat on a bed.\nA woman standing on a beach is surrounded by birds.\nA giraffe standing next to some trees in a field.\nTwo young boys sitting and eating very large carrots.\nA traffic sign has been vandalized to look like a scary face.\na young person at a desk operating a computer\nThe young man is eating a hamburger with a pizza folded into it.\nA person riding a snow board while flying through the air.\nA baby elephant walks in a fenced area next to old wood and a purple sun umbrella on the other side on the fence.\nParents with their children at a library event outside.\nMany people are together in the kitchen. \nAn elephant and gazelle standing at the edge of the woods.\na person that is flying a kite that is sitting on the ground\nWoman on a horse jumping over a pole jump. \nA group of people, sitting in bleachers, watch a boy bat at a little league baseball game.\na red stop sign is hanging on a pole\ntwo men on different styles of motorcycles \nA white toilet on the ground by some junk.\nA cat on the kitchen counter sticking its nose in a cupboard.\na building that has a small clock at top\nTomatoes sit in a black bowl next to a flower.\nAn elephant in a zoo walks toward the camera. \na living room with a couch and television inside of it \nA man with a backpack walking in skis. \nA person jumping down a snowy hill on a snowboard.\nA pizza sitting on top of a pan in the oven.\nthere are two cats that are laying with each other\nA man holds a Frisbee at a park.\nA picture of a man playing a violin in a kitchen.\nA small yellow bird on a small branch.\nA jar of mustard next to a small plate of a sandwich\nA large giraffe is standing in the wilderness.\nTall clock tower with bells above the treeline\nA woman and man shaking hands on the tennis court. \nA person in a suit is crossing the street.\nA flower in a pot is set on a wicker table.\nA woman holding a tennis racquet on a tennis court.\nA group of giraffes in a grassy area by fences.\nAn adorable dog standing on top of a lawn chair next to a BBQ with little hot dogs grilling on it.\nA dog chasing several sheep through a pasture.\nA room filled with furniture and a window covered in curtains.\na plate of food that is on a table\nA skateboarder who is jumping down a flight of stairs\nA blurred tennis player behind the close up of a net.\nA plate with a piece chicken and some broccoli\nA young man holding a blue surfboard on top of a beach.\nA piece of cake sitting on top of a bowl next to a fork.\na close up of a plate with broccoli\nA trio of men drinking wine at a restaurant table\nA skateboarder stands on his board atop a narrow rail. \nA brown dog laying in a red wicker bed.\nA Nintendo Wii controller in a person's hand.\nA woman holding an umbrella while walking in the rain.\nA brown dog running with a yellow frisbee in it's mouth.\nA white plate topped with orange peel slices.\nThere are several beds in this room put together\nThree stuffed teddy bears share a chocolate soda with three straws.\nA woman is sitting down on a chair with a bag.\na close up of the tail section of a large passenger airplane\nA woman sitting at a table with a little girl.\nA picture of two Zebras nuzzling along the ground.\nA man jumping a horse over a blue rail.\nA group of boats sitting on top of a beach.\nA teddy bear is staring at a laptop.\nA white plate topped with different breakfast foods.\na close up of a street sign with trees in the background\nForeign candy in great display, all of color\nA reflection on the exterior window of a vehicle.\na mirror reflecting the platform at a train station\nvendors standing at fruit stands at outdoor market.\nA giraffe running across a large dirt field.\nthis is two people skiing down a hill\nA bus approaches a sidewalk where several people and bicycles are lined up.\nA pitcher in the middle of delivering a pitch.\nCattle lie in the grass to chew their cud.\nA narrow kitchen filled with appliances and cooking utensils.\nA giraffe lying on the ground in a zoo pin.\nA table in the sun with a white cloth, beef sandwich, glass of beer, and bottle of wine.\nA man riding a skateboard across a street.\nA beach patrol vehicle thats performing his duties on the beach.\na young man is holding a blue sur fboard.\nA young boy riding a skateboard across a brick street.\nA group of yellow bananas hanging by a door\nGroup of signs on top of each other on a pole. \nAn open laptop computer sitting on top of a desk.\nFemale tennis player preparing to serve the ball\nThe bathtub and sink of a bathroom with a large mirror.\npeople playing baseball on a baseball field with an umpire\nA chicken cutlet with tomato sauce on a roll\nA charming retail village includes a colorful flower garden and a historical tower clock.\nAn orange and white cat laying on top of a bed.\nA small white boat in the open water.\nA stuffed animal and some cans on a street.\nA white bus sitting on the side of a street.\nA bicycle locked up to a metal pole.\nA husky dog is carrying a frisbee in a park.\nThe dessert includes a decadent chocolate cake on top.\nA bunch of bananas on a leafy stalk.\nA man wearing a baseball hat tossing a frisbee.\nA lamp sitting next to a small bed with a book on top of it.\nA crying woman looking at herself in a mirror.\nA bathroom that has a broken wall in the shower.\nA white plate with vegetables underneath sliced up meat.\nA dog is carrying a blue round Frisbee in his mouth as he walks across the grass. \nA herd of zebra walking across a dry grass field.\nA blurry and out of focus image of a person on a bike riding in a field  towards cows in the distance.\nA white and blue train heading towards a sign in the foreground.\na microwave is built in to a all of a kitchen\nA man holding a pine cone while wearing a name tag.\na woman in black walking down a sidewalk by herself \na man hanging out side of the train looking at something\nA man wearing a bike helmet standing next to a bicycle.\nTwo people standing on a beach next to the ocean.\na hand a cellphone a laptop and a beer coaster\nA black cat sit among a mess of electronic devices on the bed.\nRed bus passing by a famous clock tower. \nA boy is preparing to play on a sport field.\nA guy holding a baseball bat is ready to play ball\nA young boy sitting on the floor at the food of a bed.\nA man standing on beach with a red surfboard under his arm.\nA boy is helping a smaller boy on skis in shallow snow.\nA man riding on the back of a white horse next to other horses.\nShip's clocks and barometers displayed on a rope edged wooden board\nTwo snowboards attached to feet above snow and trees.\nSubaru delivery trucks, employees, and race cars gathered for a group photo.\nA cat sitting beside a laptop on a desk.\nLarge airplane flying below the clouds from underneath\nDifferent types of ice creams  and cold drinks are seen in a shop.\nPeople standing on a crowded sidewalk in the evening, many holding umbrellas.\nA steam engine strain is decorated to look like a character from \"Thomas the Train\" books. \nA blue and white tooth brush sitting on a sink.\nA black and white train is in an underpass.\nA scene featuring a shepard woman is juxtaposed colorful shapes\nA couple of boys playing soccer in the rain.\nA red bench sitting below tall neon lit buildings.\nTHIS IS A IMAGE OF A VAN DRIVING DOWN A STREET\nTwo men riding bicycles or scooters in front of building. \nA man holding a umbrella on the sandy beach.\nA group of zebras grazing in a field.\nHarvest display of vegetables and wines on a shop counter.\nA baby is sitting on the floor with a small cake in front of him.\nSome girls that are dressed up in a parade.\nA man holding a tennis racquet while on a tennis court.\nThere is a train traveling down the tracks.\nAn umpire and catcher kneeling down next to each other during a baseball game.\nA propellor airplane is on a grassy runway.\nMail tennis player very excited during a match\nA refrigerator freezer sitting in a yellow kitchen.\nA green plate topped with two pieces of cake.\nA stop sign with an oriental symbol above the English version.\nA pizza sitting on top of a metal pan with a spatula.\nA display case in  a sandwich shop filled with sandwiches.\nA kid in a camo shirt riding a skateboard down the street.\nWoman standing in a dark wooded kitchen with a carton in her hands.\nA giraffe walking in a sandy enclosure \na man riding a dirt bike in the sand\nA giraffe walking close to a pool of water. \nA dog chasing a red frisbee across a field.\nA pole with multiple traffic signs near trees and bushes. \nA tray with a brown cat sleeping on top of a teddy bear inside\nA women who is holding a tennis racket trying to hit a tennis ball.\nA man swinging a tennis racquet on a tennis court.\nThere are a bunch of wrenches hanging on a wall\nA large black bear walking across a forest.\nA woman kissing a giraffe over a wooden fence.\nA woman standing in an alley way holding an umbrella.\nA black and white photograph of something I cannot quite make out. \n Persons skating in the ice skating rink on the skateboard.\nA young man is sitting in a chair and has mismatched outfit and a name badge.\nA large jetliner sitting on top of an airport runway.\nA woman bending over in a living room to pet her dog.\ntrucks on one side of a road with cars on the other side\nA woman is playing a frisbee with a dog.\nA view of a beer bottle and a beach with chairs, an umbrella and the ocean in the background.\nA woman riding a water ski while being towed by a boat.\na fence some buildings and some different signs\nA skier passing two people on a snowmobile.\nA seagull standing on the sand of a beach\nA sign advertising The Cave Restaurant and Lounge\nA dog laying on top of a bed next to a window.\nA man flying on the back of a boy while holding a white frisbee.\nA white wall mounted toilet in a bathroom.\nYoung boy with T-ball and bat pointing at ball.\nA large bear is walking through its space at the zoo.\na black and yellow fire hydrant is near the street\nA narrow street has numerous blue pointing signs.\nA group of elephants standing together in a field of grass.\nthere are two hot dogs on a paper plate with toppings\nA white stove top oven sitting between two counters.\nThe people are walking the the street and some are wearing ties. \nA series of photographs depicting plates covered in different types of food.\nA family sitting down at a table for a meal.\nA smiling young man sits in a chair with ties on his shoulder. \nStuffed animals on the beach one with a bucket over its head.\nan image of a woman  riding a horse and jumping over bars\nIn the foreground of the picture there are couples riding on motorcycles on a city street\nA ceramic pot is laying in the grass\nThe farmers are attempting to sell their products at market.\na person on the beach while playing with a kite \nA red stop light across from a brick building\na bathroom with a sink and a toilet in it\na row of parked vintage motorcycles and bicycles\nMany brown cows are seen walking in a grassy field.\nA woman on a boogie board riding a wave.\nA man in a wet suit is surfing a wave.\nA couple standing together holding Wii controllers next to a building.\nA group of people with umbrellas on a road.\nA sigh sitting next to a building in a city.\nA baby giraffe standing next to a wire fence.\nA giraffe extending its mouth toward a tree branch.\nA futon with several pillows piled on it and a suitcase next to it.\nA woman and two kids walking with their tennis rackets. \nA baseball player holding a baseball bat is getting filmed by a camera man.\nAn overhead view shows many busses parked in a lot.\na person has an orange cellphone and a laptop\nA cat that is walking underneath a television. \nA line of benches that are snow covered\na woman in full riding gear atop a horse\nA white couch sits in the middle of a very nice looking room.\nA European street of historic red-brick buildings and a spire rising in the background.\nThe van drives down the street behind two people walking a dog. \nA large panda bear hanging off the side of a tree.\nA large bus is parked outside a building.\nA person with ripped jeans on riding on a skateboard. \nA living room area with some couches and a television\nA sexy young woman standing on a tennis court holding a tennis racquet.\nA green street sign mounted to a metal pole\nA street scene with a line up of policeman on horses.\na kitchen counter covered with cleaning supplies and other items\na horse pulling a cart with some people inside of it \nA cat sitting on the keyboard of a computer on a table\nSmall birds in the grass in the sun \nA young girl with a nice booty standing in a living room.\nA computer is connected to speakers and a hard drive on desk.\na group of people playing frisbee out side\nA table topped with two plates of food.\nThis a case full of doughnuts and cinnamon buns.\nAn assortment of ingredients rest both in a bowl and on a surface.\nA passenger bus that is parked in a parking lot.\nA skyscraper reflecting the blue sky near a street lamp\nFour plates with stacks of hot dogs on them\nA young woman riding a surfboard on a wave in the ocean.\nBlack and white photograph of battle reenactment with men on horses\nAn man playing tennis about to hit a ball that is coming toward him.\na small bear resting in between two bare trees\nA wooden bench covered with pots and containers of plants.\na child blows out the candles on a birthday cake.\nTwo people eating biscuits on a brown table. \nKites are flying in the sky over the water at a park.\na toilet sits next to a bath tub as a bunch of tiles sit piled up \nthis is a grey cat laying down on a bed\nA freshly baked pizza setting on a counter\nSeveral buildings right next to each other on a stet with a lot of people on it. \nA train sits on a train track against a shrub\nA person in a ski gear standing on a snowy mountain.\nA cell phone lying on a picture of a young man holding a similar cell phone. \nA white table topped with cakes and nuts.\nA circuit board sitting on top of a map.\nA female child putting cheese on poorly made pizzas.\nA vase filled with red flowers sitting on a counter.\nBoy in bathing suit at beach playing ring toss game. \nA man sitting on a bench looking out to sea.\nA woman in a bright yellow rain slicker stands with a red umbrella next to an old brick structure.\nA couple of children sitting down on a white wall.\nthere are several cows that are seen laying in the grass\nA nice looking sandwich is sitting on the plate. \nA woman is walking through the park while birds fly\nThis is a black and white photo but the bananas are in color\nA white city bus pulling onto a street near a cross walk.\nthere are several stop signs along side the grass\nThe marina is full of several parked boats.\nThe view of a hotel bedroom set up.\na woman walking along a sidewalk while holding a suitcase\nA couple of men sitting at a table using laptop computer.\nA park bench that is sitting in the grass.\nA group of people enjoying pizza and wine.\nThe fire hydrant on the side of the road is painted a bright yellow and orange.\nGlasses of wine, salad and french bread on a wooden table. \na man stands on top of a snowy hill \nA man with a cup of coffee in his hand looking at a laptop.\nA man holding a football on a grassy field\nA herd of zebras is grazing in a grassy field.\nA cow with its baby nursing in a field.\nSign with the words Radar across the bottom.\nSeries of small portions of food being put into a small oven.\nA cake sits on a table, ready to be cut.\nA woman riding a horse and taking a picture at sunset. \nA black and white picture of a building with a neon sign.\nA cowboy on a horse in a rodeo show \nA large living room with a wall painted green\nAn adult and two baby elephants standing near a fence.\nA man holding a game controller in his right hand.\nA bat with colors and nails in it is shown.\nA cake with animals and candles on it\nToothbrushes, toothpaste, mouthwash, and floss, and other dental accessories. \nA zebra rolling around on it's back in a  field.\nA street corner showing University Street, Gerard Schwarz Pl and 3rd Avenue, with a building in the background\na reflection of a man taking a photo\nA man that is in the air with a skateboard.\nA herd of elephants standing around a dry grass field.\nA plate with pancakes that have fruit on top and with a cup \nA field full of lots of yellow flowers with a train passing it by.\na scene of old cars possibly from the nineteen fifties and an old fire hydrant  \na little plane landing on the water \nA person hitting a tennis ball with a racquet.\nA group of girls sitting on a towel under an umbrella.\nSome women who are walking while holding red umbrellas.\nA glass vase made to look like a plant.\nA woman holding up a doughnut over a table.\nThis zoo exhibit is home to a large group of girrafes\nAn open beige toilet with some sort of meter across the seat.\nA cat sits on a stool in a living room.\nA woman and a little boy playing the Nintendo Wii.\na school advertising on its store front window\nA blue motor scooter parked in a parking lot.\nThe woman smiles as she is talking on her cell phone. \na child is fitting inside a small suitcase \nA blue and white bus parked in front of a brick house.\nA small bear holding a larger bear around the neck while standing on a rock in a river.\na kitchen that has a sink and a laptop\nA train trailing a plume of white smoke crosses a bridge.\nA cat wearing a neck tie laying on top of a pillow.\nA person skis with mountains in the background.\nA black and white photo of a man in the air with his skateboard.\nthree little kids that have different ties on\na close up of many different vegetables on a table\nA brown horse pulling a white carriage down a street.\nA red train is on the tracks by the grass and trees.\nA strawberry blond cat is cuddled up between a pair of ladies business shoes. \nsome people on a park bench in a field\nSeveral people looking at a television screen, one of whom holds a camera.\na person sitting down in front of a couch\nA pile of apples sitting next to a pile of green apples.\nOne woman wits on a chair beneath a blue umbrella t the beach as a guy walks down the shoreline.\nA bunch of people are standing in the snow\nA wooden cutting board topped with veggies and a knife.\nA motorcycle is parked amongst the cars at a store.\nA man sniffing wine inside of a glass.\nA man wearing a visor holding a neon frisbee.\nThe dogs are looking like they are interested in the game.\nA surfer in a black body suit balances on a wave.\nA foggy day shows buildings in the background as a woman in a blue jacket has skates on in a brick courtyard.\nA row of motor scooters at a motorcycle festival.\nA couple of birds sitting on a grass covered field.\nA man sitting using a laptop computer and other people watching tv.\nA mattress is laying on a shiny wooden floor.\nAn old brick building contains an appliance store.\nA pizza with a lot of vegetables on top.\na large elephant that has people on its back \na red and black miniature train engine is pulling a red train car\nPeople at the beach sitting in the sand and under umbrellas.\nA few people are playing soccer on a soccer field.\nthis lady is walking along the shore on a beach\nA dog hanging out of a side window on a car.\nA large white bush driving down a city street.\nA large clock sitting in front of a tall building.\nTwo dogs lay next to each other on a brown couch.\nA family standing around a small white sheep.\nA man wearing snow gear poses for a photo while standing on skis\ntwo people in a kitchen area preparing food on a stove\nA polar bear is walking around the water\nA baby giraffe drinking milk from it's parent.\nA young boy and girl holding stuffed animals in a park. \nA pizza with purple cabbage topping on a table next to white bowl.\nVintage picture of a man and a horse on the farm.\nA skateboarder is doing a trick on cement steps.\nA red fire hydrant along the curb at night.\nA small dog is looking out a car window.\nBlack and white photograph of potted plants and gardening tools.\nA long counter holding an assortment of coffee related items.\nA man with glasses sitting at a desktop computer.\nA group of people boarding in airplane on a runway..\nA living room scene is shown with a couch and table.\nA pile of garbage sitting next to a trash can.\nA large cheese pizza with slices missing from it.\nA train next to a station as a man walks beside it\nA zeppelin flying in the air as a water spouts occurs in a city lake.\nOne giraffe sitting on the grass and another giraffe standing up. \nA dog sitting on the floor watching the tv\nA women riding a bike with an umbrella. \nA group of animals such as sheeps are walking together on the grass\nMen in uniform watching two other men in uniform cut a cake. \nA young woman holding a gun on a stove top oven sitting in a field.\na girl jumping in the air to catch a frisbee\nA trio of dogs sitting in their owner's lap in a red convertible.\nA tennis player hitting the ball on a tennis court. \nA kid with a glove and a ball.\nA foot stool sitting in a room under a mirror.\nA picture of a polar bear resting on a rock in his exhibit.\nA black and white cat in front of a laptop and a monitor.\nA flock of birds standing on top of a grass hill.\nA painting of a white vase holding yellow tulips.\nThe skateboarder has his hands in the air.\nA parking meter  in front of an over grown wall.\nA brown bird perched on top of a metal fence.\nA fridge sits closed in a neutral room. \nthere is a man riding a skateboard over a ramp\nA plate holds a good size portion of a cooked, mixed dish that includes broccoli and pasta. \nFuzzy palm tree and clock town on wide town street.\nA person sitting on top of a wooden bench near a field.\na stop sign sits on a street corner \nA green stand holding several bananas for sale. \nThe show girl is posing on a blue motorcycle on display. \nA smaller kitchen with a very decorated fridge. \nA man standing on top of snow next to a snowboard.\nA man playing tennis who is about to return a serve.\nA man flying through the air while riding a snowboard.\nCloseup of various oranges and bananas in pile.\nAn action shot of a baseball player swinging at the pitch\nsunset reflecting on the water with a silhouette of a boat and trees\nA man is posing with two young ladies, while holding his drink. \nA red apple with a clock inside of it.\nIt's wondrous how that big airplane manages to stay up in the sky.\nA toilet is on a tile floor in a bathroom.\nYoung people are flying kites at a park.\nA pizza sitting on a table, with a spatula in the back.\nA group of people riding surfboards on waves in the ocean.\nA photo of a person being taken in this picture. \nA white sink and mirror in a room.\nA man walking in front of an open umbrella.\nSomeone picks up a slice of fresh pizza with one hand.\nsome people walking into the water with some surfboards \nA cat is observing the dishwasher in the kitchen. \na black refrigerator a light a clock and a red floor\nA blender seems to have some veggies ready to be mixed. \nA stop sign has been altered to read stop the war. \nThe dog is laying in the green grass with a red frisbee.\nA boy in a white shirt and jeans standing in front of people.\nCity bus loading on a busy metropolitan street. \na person is standing in skies in the snow\nClothes hanging on a rope over an unfinished patio.\nA man sitting at a table looking at a box of cupcakes. \nA dark colored umbrella hanging on a wooden rail in the woods.\nA large black bear standing by a tree.\nA young man riding skis down a snow covered slope.\nA small propeller plane sitting on top of an airport tarmac.\nA little girl that is standing with an umbrella.\nA blue and white double decker bus next to a barrier.\nthere is a glass vase with a cloudy liquid in it\nan elephant playing with a piece of wood and a fence \nA living room filled with furniture and a fire place.\nA man on a cellphone near two other men.\nA person is doing a high jump on some skis.\nA very big elephant that is keeping an eye on the photographer. \nA cat laying next to a laptop and a computer mouse.\nA new black backpack with tags still attached.\nA woman standing on a beach holding a blue bag.\nA man wearing a neck tie and a green shirt.\nA man riding a board on top of a foamy wave.\nA boy is going up a ramp on a skateboard.\nA doge stands outside of a car, which has another dog peeking out the back.\nA women with a tennis racquet in one hand and a towel in the other.\nA zebra looking alertly at the camera while in the field.\nA parking meter with a no parking sign on it.\nA young man standing next to a race car with the red sox logo on it's hood.\nCliffs rise on the edge of a placid lake.\nThe man is walking down the street with no shirt on.\nA man is holding a tennis racket while on the court\nA boat that is on a pier and not in the water.\nA blue and yellow train going down the train track\nA shopping plaza with a clock on the building.\na man in the ocean surfing holding on to a kite.\nA guy with a white shirt and jeans riding a skateboard.\nA closeup of a zebra eating fresh green grass.\nYellow taxi parked on the side of the road with a meter in front of it. \nCloseup of a cellphone with a keyboard and a computer keyboard in the background.\nA travel guide taking a photo as the tour bus arrives\nA yellow and green bus passing in front of a building.\nBoats are parked by the pier under the moon.\nA man sitting on a toilet that isn't connected to anything. \na pepperoni pizza that hasn't been cooked yet\nCats sits on arm of chair blocking view of laptop\nThe man is surfing on a wave as another surfer is in the water nearby. \nTwo kids are flying kites on a beach\nA man in a plaid shirt riding a skateboard.\nA group of people on a field playing baseball.\nA room with various blue and white signs and a television.\nA kitchen with a microwave oven next to a stove top oven.\nTwo toothbrushes and toothpaste in cardboard and plastic packaging\nA airplane that is flying over a mountain.\nA red caboose with a man hanging off the back of it.\na colorful motorcycle sitting next to a fence \nArticulated bus and taxi in light traffic crossing an intersection.\na bathroom with a sink a mirror and a toilet\nA train is pulling up towards the empty station.\nThree elephants are walking near rocks and boulders in the habitat. \nSeveral street signs are mounted in an urban neighborhood.\nA kid sitting on a snow pile next to a Morningside Ct. street sign.\nTwo personal sized pizzas are being prepared on a pan.\nA street between two buildings with a clock tower in the background.\nA red double stacked bus traveling down the road.\nA couple of couches and a coffee table sitting by a window in the living room.\nA woman pours canned tomatoes into a blender. \nHigh speed train stopped at the train station.\nA woman's feet leave the ground as she swings her tennis racket.\nA young man using his smart phone while perched on cement.\nA basket filled with lots of fruit on a table.\nA large white airplane sitting on a runway.\nA paper sitting on top of a white plate near a small bird.\na close up of a giraffe drinking water\nA delicious looking bunt cake on a table next to fruit.\nThe man in a black tie sits in a chair with his shirt sleeves rolled up.\na animal standing in the grassy area next to a building\nAn empty hospital room with a bed and religious peripherals\nA man in yellow jacket skiing on a snowy trail.\nA large plane with people alighting at the airport\nA bathroom containing a toilet, sink, window, and bath tub.\nA city bus is parked along the side of a street.\nA woman is making her way out of a rather large suitcase.\nA person on snow skis, with a backpack, skiing down a mountain.\nA herd of zebra standing on a field.\nMan on a marked field holding a frisbee in his hand. \nA man standing on a clay tennis court with a racquet.\nA plate with meat and vegetables next to a fork.\na person on his back on the ground playing with a frisbee\nAn uneaten traditional pizza served at a table.\nA train traveling under a bridge next to a bunch of trees.\na cat is outside looking at a computer screen\nA man and woman are playing a video game\nA plate with eggs, sausage and bacon sitting on a table.\nA stuffed teddy bear covered in dirt on the ground.\nA girl with a baseball glove is standing in the grass.\nA person is standing on top of ski resort with the sun behind them.\nA man with a camouflage umbrella hat is taking a picture.\nsome kids are riding skateboards on a ramp\ntwo ladies filling their plates with lots of food\nA modern bathroom with square sink and backlit mirror.\nA woman riding a skateboard at a skateboard park. \na buffalo and a giraffe are in a field\nTwo kids making a smoothie in a blender.\nThe fruit are arranges on the surface in a brown wicker basket.\nA base ball player holding a bat standing on a  field.\nTwo people standing next to each other on a ski slope.\nA man and a woman standing in a field flying kites.\nA man carrying a surfboard across a field.\nA bathroom with the toilet tank high up on the wall.  \nThere is a man on a surf board in the ocean.\nA group of people walking past a tall clock.\na bathroom with a toilet and a sink and a bath tub\nA group of skiiers smile as they pose together.\nA boy carrying a surfboard on a busy sidewalk.\nA woman wearing black and white holds a tennis racket.\nA BOY TAKING A BITE OUT OF A HOT DOG\nA computer keyboard sitting next to a mouse.\nA large black bear walking across a grass covered field.\nA couple of baseball players in uniform standing in a field.\nA mother bird feeds her little baby chicks.\nA woman is holding her daughter in front of a birthday cake with candles while another lady stands nearby \nA group of people who are flying kites.\nA baseball player holding a bat while standing on a field.\na female tennis player in a blue dress playing tennis\nA shower door with a white towel hanging from it.\nA picture of a livestock with the american flag and blue and white ribbons hanging from the ceiling. \nA refrigerator that has a microwave above it in the kitchen.\nA train traveling down train tracks next to two buildings.\nA tall clear glass window with two cats sitting at the base of it.\nA monitor showing a film on an airplane.\nA group of three parked buses in front of a tall building.\nA young man crouches on a moving skateboard.\nA picture of a tennis player yelling passionately.\nA parked car can be seen through a windshield.\nA man holding a tennis racquet on a tennis court.\na man sitting on a motorcycle in a bike shop\na person siting at a table with a plate of pasta\nAssortment of doughnuts and other snack items on a serving tray.\nA man in blue and white shirt on street next to bunches of bananas.\na close up photo of a shaggy dog in a car\nA boy does tricks on a scooter. \nStuffed bears sit in the window of a store.\nA woman and dog on a surfboard in water.\nA person with an umbrella walking across the street.\nAll of these sheep have coats that are ready for shearing.\na man that is playing a wii game\nThe living room has a large display case in it. \ncowboys on horses are herding some cattle down a road\nA purple and yellow train traveling down train tracks.\nA dog wearing a yellow hat with a smiley face on it.\nA little elephant who is standing with to larger elephants.\nA man holding a surfboard while standing on top of a beach.\nA jet liner flying above in the clear blue sky.\na close up of a plastic container of food\nA giraffe walks on the tundra tree-lined park.\nA picture of the head of a brown cow wearing a halter.\nA family pet who has gotten its head stuck inside a article of clothing.\na person riding a surf board on a wave\nA large herd of cattle crossing a country road.\nA chef preparing vegetables at a counter in a kitchen.\nA vase that has some yellow flowers in it.\nA bathroom with a blue toilet next to a sink\nThree woman with their backs turned in a kitchen.\nBaseball batter misses getting hit by the ball\nA person on a cell phone in a room.\nA woman walking down a flight of stairs.\nA large elephant walking next to a fallen tree.\nTwo cooks standing at the counter on a kithchen next to bottles.\nA green wallet on top of a folded t-shirt and an assortment of other items on a night stand table. \nA woman washing carrots on a counter in a kitchen.\nA herd of sheep are grazing in a green field.\nA red fire hydrant sitting next to a sandwich sign.\nA group of people on a city street.\na surfing instructor teaches students with surfboards on a beach in front of large hotel buildings.\nOld vase with red and white decorations on it. \nWoman getting piece from a two-tier blue and white cake with star decorations.\na stove that has some food on it\nan orange tree with fresh fruit growing from it\nA man plays tennis during a competition while a crowd looks on. \nA boy playing tennis on a blue and green tennis court. \na cat that is sitting in a sink\nA happy man making sandwiches in a kitchen\nA dog watches a cat intently while they both relax on an armchair.\na yellow table some books a monitor and a computer\nOriental woman preparing to put a toothbrush into her mouth.\nThe long couches are sitting in front of the windows.\na sail boat and umbrella along a beach with tall grass\nA three tier wedding cake sitting on a table\nA red boat is along the waters edge with houses on the land.\nA man on a skateboard captured in each step of a trick.\nThe young man is stirring his pot of food with a wooden spoon.\nA group of three men standing on a baseball field.\nA plate featuring steak with sauce, broccoli, and mushrooms.\nA man is posing with two young boys holding rackets. \nA close of up a half eaten chocolate cake.\nA beautiful young woman swinging a tennis racquet on a tennis court.\nA white bowl filled with leafy greens on a rain soaked ground.\nA yellow and black traffic sign with buildings in background.\na statue of a cat sits next to some scissors \nVarious different pictures of food in a bowl.\nA zebra grazing on grass on top of a dry field.\nA group of Navy men cutting a large sheet cake.\nA piece of luggage painted with the Eiffel tower on the side of it.\nLong line of cards on a busy street at night.\nA parked motorcycle sitting on a dirty road.\nA large and over-sized stuffed teddy bear sitting in a chair.\nA person on a surfboard in the water.\nA homemade pizza sitting on a cutting board on a counter.\nA train pulling into a station with a red bench seat.\nA red container filled with office supplies on top of a table.\nA red stop sign sitting on the side of a road.\nA broccoli plant has very large leaves. \nA group of people standing on top of a snow covered slope.\ntwo trains parked on the tracks next to some platforms \nThe display case has two levels of various pastries in it.\nView of a small kitchen in an empty apartment\na close up of a sandwich in a paper plate\nAnd elephant eating grass at the zoo with other elephants behind him.\ntwo men  playing tennis on a court inside a fence\nA couple of cops walking towards a double decker bus.\nA cat on a bed looking at a laptop \nBed with two pillows tucked between two walls.\nA living room are with a fireplace and wooden furniture.\nA wooden bench sitting up against a wall.\nGroup of people standing at a dinner table with different color plates. \nA red car sitting on to of a black boat.\nA large garden in a lush green house.\na living room arrangement in a furniture store\nA very large bridge spanning over the width of a river.\nA small dog on a leach sitting near a window.\na gray bird about to perch on a branch\nA large two level bus near a tall structure.\nA train traveling on a lush green hillside.\nPlates of food placed on a colorful bed.\nA man sits in a room and looks at two laptops \nA desk with five different computers on a blue table cloth. \nA pizza sitting on top of a pan on a table.\nA lot of people that are sitting around together.\nThere is some weeds growing by the fire hydrant on the side of the road.\na sausage pizza a butter knife and a black platter and plate\nShears and knives are in a cutting block.\nA teddy bear sitting at a computer desk with headphones on.\nA brown bear standing on a rock in forest area.\nA young woman plays tennis on a tennis court.\nA man on a skateboard jumping onto a concrete bench. \nA crowd of people standing on the edge of a cliff next to the ocean.\nThree dogs running around a field with a woman holding a frisbee.\nA crowd of people standing on snow covered ground.\nA man is flying a kite with two strings\nThe family is ready to enjoy a nice dinner together.\nA man sitting in a window ledge with a cell phone in his hand.\nThe man is in the water with a boat.\nA view of  person in a mask holding up a tooth  brush.\nA couple of jetliner sitting on top of an airport runway.\nA baseball player swinging at a baseball during a baseball game.\nA cat playing with it's reflection in a mirror.\nTubes of breast milk in a refrigerator. \nA double decker bus on a road next to a cyclist and two people walking.\nA black cat half-submerged in a toilet while drinking out of it.\na clock tower in the middle of a paved area in a park\nA man hitting a tennis ball on the court \nA laptop sitting on a desk with books and other accessories. \nA man checks his cell phone in a waiting area. \nA tennis player taking a swing at a ball.\nA woman playing tennis in a white outfit\nA woman holding a tennis racquet while wearing glasses.\nA group of people playing with interactive gaming units.\nAn item inside the picture which appears to be truly astounding. \na little cat stretching by some apples \nTwo tennis players, walking in opposite directions in between plays.\nA large jetliner sitting in front of a tall building.\na wire with a street light hanging from it\nA yellow train going down the train track. \nRemnants of a meal sit on a square plate on a colorful surface.\nDecorated bedroom ready for clean sheets and new guests\nA black and brown car on concrete floor.\nIndians ride tandem on a motorcycle through a busy street.\nA person holding a huge teddy bear while riding a bike in the street.\nA kitchen with metallic appliances and a trash can.\na toilet sitting in a tile covered floor in a single room\nA man with a guitar in front of a microphone.\nA train traveling down tracks near a loading platform.\nA clean bathroom is pictured in this image.\na close up of a street sign with a moon in the background\nA large airplane flying through a blue sky.\nA glass container with different compartments filled with food.\nA long black train traveling through a train station.\nA person is holding up some kind of sandwich to the camera.\nA bicycle store shows two males leaning toward a bike.\nAn airplane parked in front of a small airport.\nA couple of men standing on a beach flying a kite.\nA dog sitting behind a pair of black shoes.\nA woman standing in a batting cage with a bat.\nA person riding a surfboard in the waves.\nA man swinging a tennis racquet towards a tennis ball.\nA city bus driving past a group of men riding skateboards.\nA group of horses pulling a man on a cart.\nA man and a woman posing for a picture while on  a ski mountain.\nTwo people in a living room with wii remotes.\na double deckered bus on a city street near a building\nA small bird is perched on an empty bird feeder.\nTwo women and one man pose for a picture.\nTwo ducks stand in shallow water and cast shadows\nA semi truck riding on top of a faerie.\nTwo favorite kitty activities are sleeping and perusing the outdoors from a windowsill.\nA child holding an umbrella in front of a house.\nA talented young surfer riding a large wave.\na phone with lines running on the sreen\nA baseball player hits a ball during a game.\nA clock sitting on top of a wooden mantle.\nthere is a man walking in the street holding a umbrella\nA piece of pizza sitting on top of a plate.\nA large red barn with a large clock in front of it.\nAntique black and white photograph of people walking by large stone buildings\nThis sandwich has a side of salad on the plate\nA bunch of suitcases that are on a sidewalk.\nA fire place sitting in a living room next to a TV.\nA man in black shirt using urinal in bathroom.\na single parking meter sitting next to some plants and a tree \nA view of a street at night shows a yellow fire hydrant.\nA tray filled with lots of different flavored donuts.\na number of cars stopped on a city street \nA man wearing a tie and a white shirt with glasses.\nA man and little kids flying kites in a cloudy sky.\nA bowl full of broccoli with spoons on a table.\nA man holding a half eaten chocolate donut\nA person that is doing a trick in the air.\nTwo people are standing and talking to each other with a bus in the background.\nA boy in green jersey playing in a baseball game.\ncars parked near a all black corner store\nThe boat is in the middle of a huge strom\nTwo adorable birds perched on a piece of bamboo.\na cat that has a shirt on its back\nA small bathroom with a shower, sink, and two toilets.\nTwo green buses parked along the side of a city street.\nA crowd of people standing around a field.\nA toasted sandwich sits on a wooden cutting board.\nThe red bus is parked at the traffic signal near other cars. \nTennis player and blue-and-white outfit holding a racket. \nA cat sitting on a wooden bench outside.\na big umbrella sitting on the beach \nA large black bear standing on top of a large rock.\nTwo cattle grazing on a lush green hillside.\nA person that is swinging a baseball bat.\nA large green couch located in a living room.  \nA women serving a tennis ball on a tennis court. \nThough not the smartest animals in the world, the cow still has a friendly face.\nDozens of people walking around a metro area\nA man in a green military uniform and another man standing by next to a dead elephant.\na upside down boat is on top of a big hil\nA group of people standing on top of a field playing baseball.\nA dog rides on the back of a sheep.\nA man on skis stands on the hill.\nA woman walking across a street in short shorts.\nA kitchen counter with a rounded edge and shelves\nA bathroom with a bunch of white tiles in it.\nA lone giraffe is walking around his enclosure\nA large pastry has been decorated with cherries and yellow icing.\nA young man riding a skateboard down a street.\nThe woman is eating her doughnut while sitting out on the bench. \nA doll sitting at a table with fake food. \nTwo laptop computers sitting on top of a desk.\nA person riding on a horse while jumping it over an obstacle.\nA plane on the runway is being led by a tow cart\nA blender glass with several green vegetables in it.\nA young boy wearing a catchers mitt while standing on top of a field.\nSomeone sitting down with their finger on an ipad.\nTwo people parasailing in the ocean while onlookers watch from the beach.\nA green traffic light shines above a street with light traffic.\nTwo people standing on the beach with surfboards.\nVery cute cat laying on couch holding the remote control\nA laptop and a computer mouse on a desk.\nTwo sheep standing next to each other on a  field.\nTwo trucks parked next to one another in a lot.\na pizza in its cardboard box sitting on a table\nA road wet from rain, and clouds still on the mountain. \nA beautiful women holding a large yellow banana with her mouth wide open.\nA woman riding on a duck boat on the lake\nAn explorer or adventurer hikes in a remote area in challenging weather.\nA couple of yellow buses driving down a city street.\nA laptop keyboard with three small bear figurines sitting on top.\nA man that has a skateboard that is in the air.\nA person holding a sausage on a bun with peppers.\nA man in a tuxedo is holding a rale.\nA man sits on the couch with two cats on his lap.\nA park with lots of benches under trees.\nA two-story house with palm trees, a chain link  fence. and a decorative border.\nA man holding a tennis racquet up to the side of his face.\nA bathroom sink with a large mirror above it next to a doorway.\nThe ship is sailing on the water as the people swim.\na close up photo of a stop sign and a street sign\nA large clock mounted on the wall of a stone building\nTwo people flying a kite in the snow near a snow covered mountain.\na woman standing next to a pit cooking hot dogs\nthere are many plates of different foods on this table\nA baby sitting on a females lap staring into the camera.\nA large bed sitting in a bedroom with a giant head board.\nA small dog running on a field with a Frisbee.\nPicnic tables on a patio covered in snow.\nA person rides on the back of a horse.\na black orange and white cat and some bricks\nA group of people riding skateboards down the middle of a road.\nSkateboarding preforming a mid-air stunt in a park.\nA man who is standing by a sign that says lost children. \nTwo women holding umbrellas while standing on a city street.\nA dog running in a field with people around.\nLooking up at a stone and brick clock tower\nA airliner pulled up to the gate for loading and unloading of passengers.\na bedroom with a bed and a window \nA old train station with trains on the tracks.\nA smiling woman is holding up an uneaten sandwich as she stands in front of a beach.\nSomeone has placed a can of beer on the edge of a laptop.\nA skier riding down a snow covered slope.\nPeople at a beach playing in the water or carrying water boards.\nMan in period costume rides vintage motorcycle with German flag on back\nA man sitting on top of a bench next to a bird.\nA group of people riding skis on a snow covered summit.\nA large brown bear on a rock slab.\nMen are playing a video game on a wii.\nA person skis down a slope of snow\nTwo people standing next to each other while flying a kite.\nA baseball player swinging his bat during a game.  \nA horse that is standing with a cart near birds.\nTwo plates filled with hot dogs sitting on a wooden counter next to drinks.\nA brown and white dog runs on some brown grass near a Frisbee that is just sailing above the ground.\nA kid sitting on a bed with a remote.\na train being run on a train track near trees\nthree boys are enjoying a video game at home\na dark cat with green eyes is laying on a blue bed\nA cat looking inside of a green mug on a table.\nA giraffe looking at something in some bush.\nSeveral pairs of scissors with black handles lay on a counter.\nA sign on small post in grass corner of residential parking lot.\nA kitchen with wooden counter tops and a stove top oven.\nSeveral skiers glide down a hilly landscape covered in snow. \nA person holding a camera phone in their left hand.\nA very happy older couple cutting a cake together.\nA guy gives a thumbs up while holding a toothbrush.\nA woman and child that are inside of the water.\nA man standing next to a herd of sheep and cattle on a lush green field.\nA cup of coffee sitting next to a sandwich & chips.\nA empty park bench that is near some flowers.\nBaby bear climbing large rock near pine tree.\nA woman talking on a cell phone while holding a cup of coffee.\nA large metal clock hanging off the side of a tall building.\nSinks in a public restroom with exposed brick and plumbing.\nA large clock tower next to a small white church.\nPeople play Wii while wearing colorful clothing and posing for the camera.\nA group of cows have shadows on the grass.\nA street scene of the intersection with people and cars.\nA man walking down a street next to a road filled with cars.\nCow lays in a straw bed during a convention. \nA male doll has a striped shirt on with a tie along with a pair of jeans. \nA black and white cat sleeps next to a stuffed bear.\nA cat laying in a leather chair near a wall.\na person in a kimono looking at computer mice in the store\nA few people sitting by a busy street\nCrowd of people watching people guide elephant by standing on them.\nA snowboarder looks at the camera while on the slopes.\nA man is playing tennis with a racket on the tennis court\nthere are many cows that are laying in this barn\na male baseball pitcher in the middle of the field throwing a ball\na man taking a nap on the bench in the middle of a park\nA white plate with a sliced up piece of food on top of it.\nA group of men doing tricks on skateboard next to ramp.\nA clock with street lights on the sidewalk near a white building.\nA horse standing in the grass near trees in the woods. \nA guy on a snowboard doing tricks on a rail.\nA boy prepares to hit a ball at a baseball game.\nA very tall brick clock tower with a clock on each of it's sides.\nTwo cows overlooking a mountain range and one is looking in the opposite direction of the other one.\nA picture of four yellow flowers in a glass vase sitting on a table.\na male tennis player volleying a tennis ball at a match\nA man holding a child on top of a skateboard.\nA building tower has two clocks on it. \nThe man is holding a banana beside the fence\nTwo children playing in the sand at beach with a frisbee\nA large pair of black scissors on top of a table.\nRows of unripe bananas on display in a store.\nA herd of elephants walking into a large body of water.\nAirplanes are lined up at a small airport.\nA bear with its mouth open and swiping a paw at another bear.\na man walking along the beach while holding a surf board\nthere are two young boys with no shirts sitting on the floor\nA man who is using a hair dryer to dry his hair.\na fancy parking meter sits on the road next to a black car\nA toilet is outside on the sidewalk by a door.\nA large passenger jet sitting on an airport tarmac.\nBlack and white photograph of people with surfboards next to a car.\nA group of baseball players are giving high fives.\nA glass vase on white tiled window sill.\nA young boy holding a baseball bat on a field.\nA hand holding an open remote control next to the arm of a couch.\nA black leather couch in a living room with two chairs, a table and a book case.\nA man smiling wearing a suit jacket, dress shirt and red tie with polka dots with a table and beer in the background.\nA clock that is on the side of a building.\nThree men sitting on a ski lift at ski resort.\nA girl is throwing a Frisbee near some tents at a campground.\nA group of people standing around a TV with a video game on it's display.\nThis person is frying her bananas on the stove.\nA group of people walking down a snow covered path with cats and horses.\nA kitchen that has a table and a chair.\nA bedroom with a bed and other furniture in it\nA stop top oven in a kitchen next to a couple of windows.\nA large clock tower with a massive clock at the center of it's top.\nThe painting is of a vase of flowers on a table.\nA yellow street sign that reads safe passage\nThere are people on the snow bank and snow lift chairs are above\nA puppy laying on a skateboard on a brick sidewalk.\na man on a skate board looks like he is falling\nA faded red fire hydrant sitting on the side of a street.\nThe Big Ben clock tower towering over the city of London.\nA bearded man in glasses is celebrating a birthday. \nA person that is standing and holding a game controller. \nTwo elephants are walking through some green bushes.\nTwo children playing in a living room with hardwood floors.\nTwo trains traveling down a street lined with tall buildings.\nA bus is driving on a wet road with many green trees on the roadside.\nA woman wearing a short skirt and a plaid shirt.\nA train on tracks in a city with high rises.\nA man making a sandwich on a lunch truck.\nA blanket covered bed sitting under a bedroom window.\nAn attic bedroom with a bed and a couch.\nA man and a young boy dressed in matching white dress shirts and ties.\nA man wearing a baseball uniform while standing on a field.\nA street scene with people on motorcycles and people sitting on benches.\nTwo signs that are attached to a metal pole.\nA beige living room with a cabinet,flowers, lamp and armchair.\nThe outdoor show features a dog who can catch a frisbee.\nA couple of men standing next to each other.\na hallway next to a bedroom doorway and a blue padded chair.\nMuffins and other pastries on display ground and purchase\nA man riding on the back of an elephant through a city street.\na group of people stand on a stage in front of a display \nThe dish in the pot contains several different kinds of vegetables.\na woman holding a tennis racquet on a court.\nA man standing on a paddle boat with his dog on the front end of it.\nhalf of an orange in a small bowl.\nA group of people standing under an umbrella on the side of a street.\nA silver and red train traveling down a busy city street.\nA kitchen with a refrigerator, sink, drawers and cabinets. \nA row of three wall mounted urinals in a bathroom.\nA couple is walking three horses through a river.\nA man in an inflatable sumo suit walking by with a snowboard.\nA pizza sitting on top of a table with olives, sausage and cheese.\nA man standing in front of an old truck.\na woman lying on a bed underneath a blanket\nA man on a tennis court who has just returned a hit\nA car with an argyle racing stripe in the rain. \nA very modern living room with a black couch plus using accent colors in the shades of purple.\nA woman looks around a very small kitchen. \nA dog with his tongue hanging out in a field.\nA large red stop sign on a metal pole.\nThe dark mirror shows a bathroom in it's reflection.\nA bunch of cows that are standing in the grass.\nA couple of zebra standing next to each other.\nTwo people walk through the snow behind a dog.\na snow skier doing a high jump into the air\nVarious items from the book bag are lying on the floor.\nA building with a large front space with people on it.\nPeople standing on beach with kites and bicycles with cloudy sky\nA male tennis player holds balls and the racket\nA group of people sitting under umbrellas drinking beer.\nthe man is swinging a tennis racket while jumping\nA stop sign and fire hydrant on the side of the road.\nA large brown bear wading through a  pool of water.\nA group of people on a street next to a bus.\nA cat sitting in behind a window looking out.\nThe bath room is clean with brown tile, white sink and large mirror.\nMan in formal attire sitting on bench using laptop computer.\nA field full of zebras and giraffes at a zoo.\nA city street lined with vintage cars and pedestrians.\na cute baby giraffe standing next to a bigger giraffe \nA cat laying on the floor next to a keyboard.\nA person playing tennis on a tennis court.\n a passenger train sitting on a track next to a building \nA jetliner sitting on top of an airport tarmac.\nTwo men play against each other in Wii Bowling.\nA crowd of people standing on a beach flying kites.\na man is on a court with a tennis racket\nA group of men playing baseball with people watching.\nA blue basket filled with green leafy vegetables. \nThe cat is laying down squashing one side of its face.\nTrain wreck fallen down into a body of water.\nMultiple pizzas sitting on top of a wooden counter next to a crowd of people.\nA person standing by a truck with many bananas on the back.\nA man and woman that are standing with a surfboard.\nA cat sitting in a black office chair.\nA woman sitting in a chair with a towel over the back of it.\nCows walking down a street near a tour bus. \nA red fire hydrant is in the snow near a mountain.\nA cell phone that is pointing at a shirt.\nTwo men in living room playing a game with a Nintendo Wii controller.\nA kitchen filled with a metal stove top oven.\na polar bear near rock formations in an enclosed area\nA group of people sit in a room with tables and one leans over to help another on a laptop.\nA woman standing on a tennis court holding a racquet.\nA person standing over a bike next to a store.\nA room with table, chair, tv monitor and stand\nA white bus driving down a street near buildings.\nGlass shelves on a display with tags on items.\nBaseball players in the middle of a game with a small crowd.\na bunch of veggies like broccoli and some onions \nthere are many people looking in the store windows\nA close up shot of a cat looking at a computer.\nA black cat is huddled in the bathroom sink for a perfect fit.\na man is reaching back with a tennis racket\nThe woman is talking on a cell phone\na dirty room packed with a bunch of stuff\na white framed bed with no mattress in a small room\nA white toilet sitting in a bathroom next to a sink.\nA pitcher stands on his mound, about to throw his baseball.\nTwo deer running in the woods by a parking meter.\nA herd of black and white cattle standing on a lush green hillside.\nA group of cows grazing near a beach as one cow looks up.\nTHIS IS A YUCKY PICTURE OF A LARGE AND SMALL TOILETS\nA person that is blowing out some candles in a cake.\nThe pastry has a substance in the middle of it\nA slice of pizza on the table with a cup of soda. \nA ceiling with lots of multi colored umbrellas hanging from it.\nA train traveling down railroad tracks through a countryside.\nA cow grazing on the side of a hill.\nA woman standing next to a podium holding a tennis racquet.\na store with a fridge and some cabinets and a customer\nMr. and Mrs. Santa Clause standing on the side of a road as Santa points to the sky.\nThree pastry desserts and two glasses of wine are on a table. \nA person on a horse that has a decorated hat on its head and covering it's ears, with another horse next to it that has a mask covering it's eyes.\nA woman sitting under a hair dryer in a salon.\nA stuffed animal laying on top of a blue bed.\nA sheet cake with a farm scene on top of it.\na red and white sign and a tree water and a building\nA black/white photo of a poolside dining area with the umbrellas colored.\nA pink flower in a can in front of a mirror.\nA couple that is eating some food together.\nFour adults and a child are rafting through river rapids.\nA bench sitting on the side of a road.\nGirl in a bakery pointing at a donut display.\nWe are looking at an ornate old clock tower.\nThe parade features these people riding or even standing atop elephants\nA big cow and a smaller cow standing beside a road.\nThree men in a booth making juice to sell.\nA man that is standing in the street near a bus.\nA pile of fresh fruits and vegetables sitting on display.\nA time clock with a white hard hat on shelf.\nA parking meter machine covered in ice surrounded by snow.\nA wet suitcase with a single shoe in it.\nA red Frisbee floating in a lake with dark water.\nA skateboarder does a trick in the middle of the street.  \nA long white passenger train traveling through lush green countryside.\nA woman is carrying many packages in an office building\na building sits in front of a parking meter \nTHERE IS A MAN THAT IS STANDING ON THE BEACH \nA pool with lots of coverings and umbrellas sitting along side of it.\nA series of photos of two plates with different desserts and another plate with a cup of coffee.\nA group of baseball players at the pitch\nA man and a boy standing next to each other.\nA man wearing ski gear models an outfit in a fashion show.\nA computer is turned on with its mouse in a cluttered office area. \na man on skies is coming down a snowy slope\nA car and a motorcycle viewed from through a windshield.\nA bunch of different fruits and vegetables such as garlic, tomotates, red peppers, and bannanas \nA skateboarder salutes the sky as he jumps his board.\nA person standing next to some trees taking a picture.\nThree Zebras grazing on the grass in a field.\nA Pooh bear is sitting in a high chair.\nAn adult black bear let's his long tongue protrude.\nA man wearing a shirt and tie topped with a motor cycle helmet.\nA cat sitting on a table outside with a dog laying on the ground \nA baseball player pitching a ball to a batter.\nA black and white photo of a pair of shoes on a bench.\nA multi colored parking meter sitting in front of a stairway.\nA man holds his bat during a baseball game.\nA couple of wooden benches sitting across from each other.\nA person holding a bowl of rice, broccoli, carrots, peas and chicken.\nA stop sign in the middle of two streets.\nA cut in half sandwich sitting on top of a white plate.\nA man pouring wine into two other mens wine glasses\nA horse figurine sitting on a red chair on the sidewalk.\nA sub sandwich on a plate with sides.\nGold tone clock tower inside a shopping mall plaza.\na red traffic light sitting next to a  brick wall.\nAn open laptop computer next to two other open laptops.\nAn adult skier is holding the hand of a child skier.\nA grey and orange fire hydrant next to a street.\na close up of a keyboard and a mouse on a desk\nA cake with an American flag motif in the layers.\nTwo dogs in a living room watching outside through a glass door.\nA young farmer using a Sunshine Milker machine to milk a cow.\nA baseball player holding a bat standing on a  field.\nA baseball player holding a bat while standing next to other players.\nTwo giraffes are standing together outside near a wall.\nA man in a wetsuit surfing a wave on a surf board.\nA lone zebra is grazing in the large open field.\nAn empty brown bench standing in a field next to a wooded area.\nTwo men check a white surfboard on a bench.\nCostumed friends walking down the street arm in arm in a parade\nA woman underneath a umbrella on a street.\nA yellow fire hydrant sitting in front of a building.\nTwo men next to each other holding wine glasses. \nA bathroom that has tools on the floor.\nA man walks across a street with a stop sign in the foreground.\nA man stands in front of an airport with many airliners on it.\nA woman standing next to statues of giraffes.\nA dog that is in front of an open refrigerator.\nA group of four people riding skis while holding ski poles.\nA yellow traffic light lined with lots of birds.\nElevated bridge runs alongside the railroad tracks and over land.\na kitchen that makes food has pots and pans.\nView down a city walkway and street, with grass, pedestrians, trees, cars on street and parked on side of street, a bench, and some buildings in distance.\nA row of wall mounted urinals under aquariums.\nA painting of a yellow train car sitting on train tracks.\nWoman laying head on pillow with a cat on it\ntwo cows outside one laying down and the other standing near a building \nThe front of a motor cycle against a black and white tiled floor.\nA man getting some food in an army uniform. \nA very tall building with a giant clock on it's face.\nA man with an odd look taking a selfie.\nA view of a bunch of toys hanging on a net.\nA parking meter sitting on a sidewalk next to a parked red car.\nA sandwich filled with meat and mustard.sitting on top of a plate.\nA close up view of a pizza sitting on a table with a soda in the back.\nAn intersection with a post showing street signs.\nA bunch of people standing around and posing for a picture.\nA large train car labeled \"buffet\" and \"first class\" is parked in a train yard.\nA man wearing a suit and tie and carrying something walkling down the street.\na man is holding up a box of doughnuts\nA cat bites into a doughnut offered by a person's hand.\nDozens of opened umbrellas hanging above in multicolors\nGroup of teddy bears with holiday clothes on a red carpet. \nA baby sleeping on its stomach on a bed.\nA rainbow colored kite next to an airplane in the sky.\nSuitcases sitting on the carpet in the middle of a room. \nTwo zebra laying on a ground next to each other.\nFour elephants partake in shade underneath a tree.\nA person who is standing on a snowboard.\nA college student holds open the refrigerator doors\nA living room with a person sitting in a chair next to a sliding glass door.\nA street corner with a brown and white building on it.\nTwo scissors that are interlocked on a table.\na few boats are docked by a large pier\nA white car is parked next to a telephone booth.\nA person looking at another person with bananas on a bike.\nA building with a clock on the front and other buildings in front of it.\nA bunch of book bags and suitcases lay on the floor.\nA small kitten is walking on a computer keyboard. \nA man waling his bike along a road with cars.\nFruits and vegetables lay on a counter to prepare a meal.\nA bathroom with a toilet and a sink next to a tub.\nA stove top has many different items cooking on it\nMan stands behind a very large kite inside a building. \nA young man on a skateboard performing a stunt near a curb.\na stuffed animal and a figurine are sitting on a bench and water\na young girl in the bathroom using a hairdryer\nThe ballplayer waits in the batter's box, watching the umpire defend his call.\nA duck standing on a pile of debris in water\nCloseup of a decorative gold and grey clock.\na cat is standing next to a picture of a fish\nSome very cute cows in a nice shaded area.\nA person surfing the waves in a wet suit.\na cat is standing inside of a bathroom sink\nJet liner flying off into the distance on an overcast day\nA sign sitting next to a sidewalk with a garbage can, traffic cone, and several fire hydrants on it.\nAn olive colored toilet sitting inside of a room.\nA yellow bus carrying passengers riding along the road.\nA train traveling down tracks net to a  bridge.\nMultiple pairs of scissors attached by a beaded metal string. \na couple of signs are hanging on a white pole\nA stuffed teddy bear sits on a tree branch.\nA plate topped with lots of food on a table.\nA hand picking up a game remote from a table.\nA person sitting on a couch with a cat and a laptop on their lap.\na group of elephants standing around with some people sitting on their backs \ntwo people smiling and using cellular phones in a group of people.\nTwo women wearing sunglasses enjoying a glass of alcohol.\nA herd of animals grazing on top of a grass field.\nA group of people eating at tables under umbrellas in front of a restaurant.\nSeveral young soccer players playing soccer on a field.\nA living room with a fire place and a red couch.\nA polar bear paws over the ground of an enclosure. \nThe SWAT team approaching a school parking lot.\nA man sitting on the ground and working on a motorcycle.\nA congested boat stop with lots of boats parked within\nA flock of birds floating on top of a lake.\nFull course dinner served on large plate including drinks and dessert.\nA giant blue gummy bear sitting next to smaller gummy bears.\nA group of people stare at a group of elephants.\nA fruit stand with many varieties of fruit.\nA little girl sitting on a plastic elephant toy.\nA man hitting a tennis ball with a racket\nA zebra standing next to a lush green forest.\nAn antique flat bed truck pulled up at a traffic signal \nA wooden table topped with carrot cake donuts.\nA woman holding a small child that is trying to pet a cow.\nan image of a train that has a bike sign on the side\nA man riding a skateboard over a rope.\nA young man is on his skateboard with headphones in. \nA girls soccer game is in the works onthe field.\nMeatball pizza on a pan next to a glass of beer.\nA restaurant employee is serving food at a buffet.\nBus 811 is pulling into a bus stop. \nA very pretty young lady doing some shopping.\nA bench sits along the side of a lake.\nTwo giraffes near a tree in the wild.\nThe shades are partly drawn on this black and white motif room.\nBears sitting in the water in a fenced in enclosure.\nA long white train traveling through a lush green hillside.\nA buffet of casserole dishes on a kitchen counter.\nA street sign is posted near the two story building.\nA woman standing next to a miniature train at a park.\nA plate of food, including a sandwich and salad, is pictured here.\nA bob laying down on a comforter of a bed.\nA pitcher throws the ball towards the batter while other players watch.\nA person on a motorcycle high in the air.\nTwo skiiers are riding on a ski lift\na number of people on bikes under a traffic light\nA young woman is laying in bed with a phone.\nA woman with large breast, sitting next to a fedora hat.\nA hot dog and a bowl on a table.\na couple of birds are perched on some branches\na black bicycle parked near a large branch carrying bananas\nA cardinal sits on a wooden rail in his home environment \nAn uncut pizza sits on a serving plate\nA store with a display with lots of yellow bananas.\na man with a racket get ready to swing it \na lot of trains that are parked next to each other\nYoung couple wearing ties outdoors showing celebratory emotions.\nThis men's bathroom has two urinals and a sinks.\na man standing next to a kitchen counter preparing food.\nA group of bikers riding down the road together.\nA man standing among clusters of ripening bananas\nYoung women playing an organized soccer match on a grass field.\nA table with two TVs on top of it next to four remote controls.\nA bunch of garbage is outside a black gate.\nA suitcase that is on the ground with some shoes.\nA group of people playing a game of baseball on a field.\nThe front of a Chinese postal store with people walking by.\nTwo people with hats on riding horses in the grass near a hill.\ntwo men in a kitchen making stuffed potatoes \na couple of kids are standing in a grassy field\nA boy and an older woman sitting on a couch\na man with a hat using a lap top with a mouse\nA group of people gather underneath some umbrellas.\nA person getting ready to use an apple slicer\nAn elephant is walking forward in a field.\nA catcher kneels as a batter prepares for a pitch.\nA man wearing glasses eating a hot dog.\na person standing on a surfboard riding a short little wave \nA cake made to look like a white pimp hat.\nA white plate topped with a cheesy green pizza.\nA man talking on a cell phone on a city street.\nThe man is going over the speech that he will be giving in a few hours.\nA baseball player in red and white contorts his body as a ball hovers in the air above him.\nA bench that has fallen apart, sitting in a forest.\nThis microwave is sitting on top of a box.\nThe skateboarder is doing a trick in the air on his skateboard.\nA bus pulling away from a bus stop with the destination marked on it.\nA giraffe out in the wild on a cloudy day \nTwo giraffes are eating a leafy branch together.\nA kitchen with an island and window over the sink.\nA frosted old-fashioned doughnut sits on a white paper.\nSome older men and woman at a winery sampling some wine.\nA group of people standing next to each other.\nA man helps his friend with his suit.\nA man looks excited and holds up his kite\nPeople walking on a street near a building underpass.\nA person standing next to skis in the snow.\nTwo trains traveling down tracks in a station.\nA man holds a racket and goes to hit a ball.\nTable full of hot dogs, ribs, burgers and other party food\nA stop sign with a sticker that says \"worrying\" fastened to it.\nA stop sign is hanging from a post.\na hotdog with cheese, with a side of chili fries\nA woman rolling down a sand dune with a red frisbee.\nA man standing in front of a bathroom mirror.\nA horned animal is eating weeds at the side of the road.\nA plate with grated coconut and decorations on the table\nA commuter train going across a bridge next to a road\na man wearing a backpack and green jacket\nBoats docked in a harbor next to tall buildings.\nA man holding a tennis racquet on a tennis court.\na couple in black and white walking down a rainy street\nA group of firefighters near fire engines parked on a street.\nA female toddler who just finished eating with a bow in her hair\nSome hot air balloons are in the air above wires.\na dog jumping up to catch a frisbee in front a man with leg bent\nThe inside of a building is shown with benches.\nA long haired dog walking through the grass in the back yard.\na red park bench that is by some water\nThe two white birds are flying in the clear sky.\nThis a view from an airplane of the landscape below.\ntwo people exchanging phone numbers at a table\nCars stopped at an intersection on a dark night\nA giraffe is standing erect on a dirt path and grass and trees are in the background.\nTwo women having lunch together while man stood by them.\nA gray cat lying on a carpet in a room\nA man riding skis down a snow covered ski slope.\nCompetitive spirit during a competition in mid air\nA pair of scissors and a booklet on the table\nA dog holding a red ball in it's mouth next to a brown and white dog.\nA large brown horse walking across a grass covered field.\nTwo men sit on boxes with their motorcycle on the side of the road. \nA group of people on a field playing with a Frisbee.\nA large panda bear walking along a dirt road.\nA baseball batter holds his bat above his head. \nA red and yellow trimmed plane sitting on tarmac.\nA man in white shirt laying in a hospital bed next to a television.\nA combination of black and white sheep grazing in a meadow\nDoorway view of a bathroom that includes a toilet and tub.\nThe black and white cat lies next to a pair of sneakers.\nA baseball player holding a baseball bat while standing on a baseball field.\nSkateboarder is riding his skateboard down the steps.\na guy holding a fork sitting in front of his birthday cake\na plate with cut slices of pizza and peppeoni\nTwo airplane shaped kites flying through a blue sky.\nA white toilet sitting under a bathroom mirror.\nA woman sitting at table with a man eating food.\na person laying in a field of grass with a frisbee near by\nA man on a motorcycle going down the street.\nA vase filled with flowers on a counter top.\nthere is a an standing on top of a mountain\nA large man is sleeping in his bed.\nA bear standing next to a tree flying a colorful kite.\nGuy takes a picture  of his dog in the backseat through his side mirror. \nA cat that is on top of a microwave.\nWe are looking at a small airline toilet.\nA man in a tie with a shirt jacket thrown over his shoulder.\nA small baby seated while holding a fruit\nGroup of brown cows standing on a field next to each other. \nPeople on skis are entering a snow tunnel. \nA no parking sign mounted to the side of a pole.\nAn infant is sitting in a highchair with a small cake placed on the tray.\nA young child eating a pizza at a picnic table.\nA brown and white dog on street next to a blue car.\nThe intersection of spring st and 6th avenue.\nthis bathroom is very big and has lots of room\nA couple of suit cases sitting on top of a wooden block.\nThe moon in the sky above a jetliner.\nA saute pan of broccoli and onions stirred by a wooden spoon\nA cooling rack on a baking pan with freshly made doughnuts.\nTwo boats are floating on the river near the shore.\nA broccoli dish with meat and potatoes on a plate.\nA kitchen with a table, chairs and a refrigerator.\nA giraffe standing on top of a dirt field near trees.\na number of people on a beach with a frisbee\nA large green bird feeder with a bird on it.\nA group of kites being flown at the beach.\nModern espresso machine on counter in residential kitchen.\na little bathroom with just a toilet in it\nA muffin sitting on a plate with a fork while customers sit in the background. \nA group of girls sitting with a white and grey dog.\nA person skiing down a hill with poles\nA couple cuddle together in the cab of a lovingly restored flat bed Ford\na glass vase with some flowers coming out of it \nA row of motorcycles is sitting on the sidewalk.\nA group of navy men cutting a massive cake on top of a white table.\nAn expressway sign is informing of how much further to the next destination.\nAn adult sheep leaning towards a newborn sheep in a hay filled area.\nHorses pulling a carriage and a subway car in the background.\nA flower is on an object that is lit. \nA zebras rump is up close for a photo.\nA man holding a snowboard stands on a hill in the snow while a mountain range is in the distance.\nThe man standing beside a tree has thrown a Frisbee.\npeople sitting at a table with plates of food\na made bed with a picture behind it\nA person that is going out some candles.\nA yellow city bus traveling down a busy street.\nA vase filled with flowers and greens on a shelf.\nMan sitting on the sidewalk talking on a phone.\nA wall with three different framed photos of tennis players and a tennis racket under each frame.\nA large gray elephant standing under a blue covering.\na man is holding a baseball bat in front of a banner\nTwo giraffes leaning over a fence to eat leaves. \nA person riding on top of a surfboard on water.\nLuggage on a carousel at a crowded airport.\nA modified motorcycle parked with other motorcycles on the pavement.\nA horse standing in the snow with a wagon behind it.\nA sink and refrigerator in a small room.\nA person in a suit takes a photo of themselves in the mirror.\na bunch of tents set up on a beach\nA HORSE TRAILER WITH THE HORSE AND JOCKEY PICTURED ON IT\nA ladder sitting against a bathroom wall next to a toilet.\nA cat in a black and white picture sleeping on a table. \nA pickup truck parked on a street near a crowd.\nA commuter train crosses over a train bridge in a down town city area.\nA mattress leaning up against a wall under track lighting.\nA woman sitting at a table with two bottles of beer next to a pizza.\na man sitting on a bench talking on his cell phone\nsome people are watching two people playing tennis\nA woman standing under a bunch of unripe bananas.\nA surfer hits a wipe out on a big wave.\nA group of skiers adjusts their gear during a heavy snow.\nA baseball player has just thrown a pitch.\ntable with small blue and green coat hanging off back of chair\nA cat walking under a black open umbrella.\nA small child is reaching for the camera.\nblack kids lying on a bench posing on a photo\nA man riding a skateboard down a side walk.\nA young man riding down the side of a skateboard ramp.\nthere is a young boy rinding a skateboard on a ledge\nA cow grazing on grass and flowers next to a river.\nA man and woman leaning over a baby.\nPeople watching off the side of a cruise ship as a life boat is lowered.\nA man standing on one leg on a tennis court.\nA horse pokes his head over the metal railing.\nA long train alongside a brightly it train station. \nA woman riding on the back of a brown horse.\na hand a white plate with a square pizza\nA microwave sitting on a brown shelf. \na kitchen filled with lots of counter top space and cooking utensils.\nAn airplane flying through a blue sky with propellers.\nTwo people that are looking at a laptop together. \nA man walking down the street carrying a suitcase.\nTwo motorcycles sitting in a trailer that's being pulled behind an RV.\nPeople waiting to cross a busy street at night.\nA man eating a hot dog with cheese and onions.\nTwo people laying on surfboards riding a wave.\nA bathroom with a tiled floor and a sink.\nA woman laying on top of a couch using a laptop computer.\nA couple uses a knife to cut the cake. \nA person makes a sandwich on a paper plate.\nA man trekking  through the snowy woods on skis\nAn empty intersection with two red lights glowing\nA group of boats with passengers docked at a fenced wall with a crowd at the fence.\na close up of a bench with a dog laying on the ground\nA row of wooden benches sitting next to a lake.\nA stand with four tiers holds bunches of bananas.\nVet supplies laying on the floor of a room.\nA little alien toy sitting on top of a slice of lemon.\na woman standing around some tables with a bunch of crabs on them\nA man getting ready to throw a Frisbee on a field.\nA person in wetsuit on white surfboards in water.\nA kitchen table with a stove top and an open laptop computer.\nA woman bending over and looking inside of a mini fridge.\nA person standing on a surfboard surfing the waves.\na close up of a bottle and glass of wine\nBoats floating down a river going through a small town.\na barthroom with green walls and a  purple rug \nA set of three park benches sitting next to a park.\nA man in yellow jacket on black motorcycle with a tan teddy bear.\nA plane that is flying high up in the air.\nSparse office with antique computer and dial telephone\nSmall black dog with paw on man's knee.\nAn older man sitting at a table with a birthday  cake in front of him with candles on it.\nThe large freight train is pulling many cars of cargo. \nAn old fashioned steam engine train traveling down railroad tracks.\nTop of a fire hydrant covered in pink paint.\nA skillet of food has broccoli as one of its ingredients.\nA black and white cow standing next to a wire fence.\nA cat sleeping on a pillow next to a book.\nA man that is holding a cellphone to his face.\na black and white cat sitting on a sink and a mirror\nA man holding a bottle and a group of people near an umbrella. \nA clock adorned with angel sculptures mounted below a bright double lamp.\nTwo small white dogs looking out small windows of a building.\na kid performs a trick off of some steps \nGALA APPLES ON DISPLAY IN A PRODUCE DEPARTMENT\nA man walking down a road in front of a double decker bus.\ntwo people riding skate boards on a city street\nTwo men smiling and taking a picture together. \ntwo benches, a small statue and some street signs stand between a street curb and the brick facade of a large building. \nA cat is sitting outdoors near a park bench. \na public transit bus on a city street \nA man standing behind a white frisbee on a green field.\na small mug of coffee and a pair of glasses\nA group of people snowboarding in the mountains.\na male in a gray suit checked tie and silver watch\na wet road busy with traffic like a taxi and bus\nA carrot and a knife are resting on a cutting board.\nA skateboarder is riding along a blue pipe.\nA boat and a child holding a surfboard on a beach.\nA man sitting on a chair on a boat dock.\nTwo women wearing hats standing near a fence.\na big giraffe walks next to some zebras \nA horse grazes on grass in the shadow of a mountain.\nA man and a boy who has a black and brown baseball mitt.\nA small laptop with a cat laying behind the screen.\nThis laptop and monitor are surrounded by many wires\nA colorful jet is sitting patiently on a runway.\nA green bathroom with a mirror and a pink sink.\nA man hitting a tennis ball on a tennis court.\nThe room has two couches in front of a tv. \nA street at night is lit up by streetlights.\nA car parked behind a fence next to a red train.\nA few Zebras are standing in the wild together. \nA bird walking through some gravel as its baby chicks follow.\nTwo jumbo jets display their company emblems on a runway.\nOne adult and three kids standing at a table singing happy birthday. \nPlaying tennis and going for a difficult shot.\nA young boy in a red shirt looking at a cell phone\nA pair of parking meters reflecting expired times.\nTwo headless mannequins display fashionable clothing in front of a pink background.\nA large body of water filled with lots of boats near tall buildings.\nMany kids are on the field playing soccer as the adults look on. \nA toilet with an illuminated seat in a restroom.\nA white plate topped with pasta and vegetables surrounded by garlic bread.\nA wooden clock sitting up against a white wall.\nTwo young men standing next to two dogs.\nTwo zebra standing next to each other on a dry grass field.\nVery complex design clock on the side of a building.\nA table topped with three computer monitors next to a green plant covered wall.\nA young boy swinging a baseball bat towards  a ball.\nTwo buses hitched together sitting on the street.\na couple of women that have a dog on a leash\nA group of people riding surfboards on top of the ocean.\nBananas sitting on top of apples, pears, and other fruits.\nAn uncomfortable looking bed situated in an alcove.\na snowboarder in a red hat is bending over \na t.v. stand that has a t.v. and some other electrical equipment\nTwo large giraffe standing next to each other and an ostrich.\nA black cat sitting under an umbrella sitting on a table.\na man that is cutting some kind of paper \nMan and woman using pay phones at adjacent booths.\nA man sitting next to a red piece of luggage in a parking lot.\nMany people are dining at a public restaurant.\nA wooden bench near two barrels with flowers. \nA couple of young men walking down a street together.\na small child is sitting on a bed\nA group of young children riding skateboards in a building.\nFlowers sitting on the deck of a light green boat.\nA herd of sheep standing on top of a lush green field.\nA red stop sign mounted on the side of a light pole.\nMany street signs are located within close vicinity of each other\nA man placing a pizza pie in the oven\nA large group of people cleaning up a large mess.\nA person in wind breaker pants holding a pillow and suit case.\nA man with glasses riding in a car with an adorable dog in the backseat.\nA closeup of two zebras standing near one another\na couple of men that are walking around on some grass\nDog watching a guinea pig on a bed sheet.\nA beer and pizza sitting on a picnic table.\nA fighter jet taking off from an airport runway.\nThe sculpture is of five people in clown costumes riding one long bike.\nA tennis player holding a racket and a tennis ball.\nA baseball game being watched through a fence. \nA shirtless man doing skateboarding tricks near a stream\nA grey and white cat laying in window sill next to a curtain.\nA man surfing with the waves in the sea.\na man on skis stands on a snowy hill side \nA yellow tanker truck parked on top of a dirt field.\na track carrying a tank at the back of it\na number of people on a beach with a kite flying above\nSome very cute sheep in a big field.\nThe people are riding bicycles in the bicycle lane of the road. \na couple of people are outside near some trees\nAn unfinished bathroom with a toilet is being worked on.\nSeveral people seated in chairs in a waiting room with a Snapple vending machine in the far corner of the room.\nThree people on a park bench look at the phone of the person in the middle.\nA frying pan filled with vegetables and apples.\nAn elephant with large white tusk standing next to a  forest.\na bench in the middle of a field with trees near by\na grey colored jet plane flying over a snowy mountain range.\nA glass vase that has a cat laying near it.\na group of people standing around while looking a bunch of little birds \nA group of sheep standing in the road.\nRiding a horse through a field at dusk.\nA woman posing for a pic in front of a mountain, near the water.\nA laptop next to a book and someones lunch.\nA trash truck driving down a street past a red stop sign.\nA child and a man hold Nintendo Wii controllers.\nA large slice of angel food cake sitting on top of a plate.\nA red bus parked in front of a building.\nA group of little boys playing a game of softball.\nA flock of swan swimming on top of a river.\nA man swinging a tennis racket at a ball on a field.\nA store covered in graffiti on a street corner.\nA wooden box filled with flowers sitting on top of a wooden floor.\nA city street with cars parked on it under a ball building.\nwomen in black coats walk along the sidewalk\nOnion rings, a hot dog, and a sandwich are on a tray.\nA black and white kitten sitting on top of a laptop computer.\na toilet seat in a bathroom with the lid down.\nA person riding a wave on a skateboard.\nVarious types of animals standing in a fenced in area.\nA group of men standing on top of a grass covered field.\nMany young boys kick a soccer ball around. \nThe little girl poses with her dog for a photo. \nBright room with a couch and various different dressers.\nA giraffe standing next to a tree with no leaves.\nAn older man with a green sports coat and blue tie with a flower on it.\nA plane is flying away from the airport\nA man kneeling down in front of a refrigerator.\nThere is no image to describe for this question.\nA fully furnished living room with a television leads into a bed room.\nA city bus traveling down a rod next to a stadium.\nA large passenger jet flying over the top of a large body of water.\nA man running towards a kick ball on a field.\nAn individual is capture in the stillness of the picture. \nA young woman leaning on a ski pole as she puts on her skis\nA white sink sitting under a mirror in a bathroom.\nA long bus drives through a wide city street\nA large Siamese cat sitting on top of a laptop computer.\nThe doors on a subway car are slightly opened.\nA close up of a street sign stating street table.\nWhite truck parked on street with trees and man\nA baseball player captured while throwing a ball.\nA person holding a red umbrella sitting on a pier.\nA woman's hand holding a glass of wine.\nA man sanding on a colorful rug wearing a tie.\nA row of colorful tents sitting on top of a beach.\nA pile of luggage sitting inside of a building next to a bench.\nA plate filled with different food on a table.\nA woman in a wheel chair sitting next to a red fire hydrant.\nA large professional kitchen has a stainless steel counter.\nA big zebra and a small zebra are standing in a grassy field. \nA shack with a  floor covered with dirt and straws.\nA dog and a cat sitting in a chair.\nA herd of sheep standing on top of a lush green hill.\nThree mini cupcakes are displayed with two forks.\nTwo children in a bunk bed with white blankets \na train sitting on the rails under power lines\nA street with street lights and palm trees. \nA bulldog looks at himself in a mirror. \nA man standing near a baseball base while holding a baseball bat.\nAn overview picture of a street at night.\nA man holding a surfboard walking on a beach next to the ocean.\nAn animal surrounded by a flock of birds\nThe person stands in a field flying a yellow kite. \nA plate filled with sliced beef a bun and potatoes.\nA row of skis sitting up against a fence.\nA pizza and beer sit next to a finished painting.\nA prepared dinner on a plate sits on a table.\nA man in a suit lean over his seat.\nA man and a young boy play a wii game together.\nA city street filled with traffic and traffic lights.\nA fire hydrant and a car parked near a house.\nA pair of scissors sticking out of a wooden table.\nA man flying through the air while riding a snowboard.\nA large clock tower in the center of a city.\nStreet sign showing \"Pete Rose Way\" at an intersection.\nA woman and a little girl standing on top of a beach.\nan image of a man sitting in front of desert at a restaurant\nTwo baby horses playing together in a field\nA group of men who are standing behind a banner that has various flags on it.\na bathroom with a toilet and a sink\nA train in the middle of an area with trees\na person sitting on a couch in a living room\nA baby zebra nursing off the mother zebra.\na cat lays down next to a glass with a straw in it \nA white stove top oven sitting inside of a kitchen.\nTwo people lying on beds in a hotel room \nA light blue bicycle chained to a pole on the sidewalk in front of a red building.\na display of items for sale on a shelf\na man standing next to a red train near a train track \nA person in sneakers on a skateboard hitting a cone.\nA sidewalk lined with lush green foliage and homes.\nA skateboarder is riding along the top of a rail.\nA red table topped with a laptop and a monitor.\nA group of three people splashing on top of a wave.\nA desktop computer sitting on top of a glass table.\nA small dog laying next to a door.\nA plate of food being heated in a microwave.\nSnow skiers at the base of the mountain slope.\nA large long train with man inside on the track.\nA man flying through the air while riding skis.\nA cat sitting on top of a bed with a purple blanket.\nThe zebra is wondering about the shadow that he sees.\nA photo-shopped picture of grass umbrellas on a beach\nsome frosted cakes with little decorations on top in a display case for sale\nA man is smiling behind a large dog.\nA white truck with a red car sitting in it's back.\nA man riding a snowboard down the side of a snow covered slope.\na refrigerator with drinks inside next to two tables and chairs\nA woman holding a tennis racquet on a tennis court.\na living room with a bunch of figurines \nThree young kids are playing with Wiffle bats in the yard. \nA skateboarder is making a rim turn and resting on edge.\nTwo jet liners sitting on top of an airport runway.\nBaseball players watching whats going on in the field\na plate with  a sandwich, fires, and coleslaw sitting side by side\nA person on the beach next to the ocean. \nA train with open doors waiting on passengers at a train station.\nA giraffe stands in a field as birds perch on its neck.\nA man crouches down and extends his hand, as he anticipates catching a flying disc.\nA boy in the grass kicking a soccer ball and another player standing near the net. \nAn open field with cows grazing and a lake in the background.\nAn elephant is seen wandering around on a sunny day.\nThe man gives a thumbs up while standing near a kite.\nA cat lying across the top of the microwave\nA man wearing goggles and standing in the snow.\nSeveral pieces of a pie with broccoli on it among other things. \nA man eating a giant piece of bread.\nA man riding his horse in some deep water.\nTwo boys at outdoor picnic holding hot dogs dressed similarly, jeans, yellow sport shirts but with different caps, one yellow the other red.\nSomeone flying a kite right above the trees.\nTwo airplanes on a landing strip next to green field and wired fence.\nthis is a dog resting on a computer\nAn indoor garden show which focus on a large vase.\nDog lying under desk next to chair in home setting.\nA woman holds a little girl who stands on top of a skateboard. \nA man is about to eat a slice of pizza at a restaurant. \nA red double decker bus on the street next to a car.\nA giraffe is crossing a dirt road and walking away from the trees.\nA sparse room with a bed sitting in the corner.\nA boat sitting on the side of a white building.\nA very nice looking train by a plat form.\na person and their dog are browsing on the mac book\nA truck parked on the side of the road covered in graffiti.\na big clock on a blue pole in a small downtown town\nA blue van parked in a desert field under a kite.\nA man stands poised with a baseball bat.\nA stack of folded clothing on the edge of a table.\nCity traffic and pedestrians are headed in multiple directions on the street.\nA street sign in front of a tall building with lots of windows.\nA boat pulling two water skiers in a body of water.\nA couple of older men sitting on top of a bench.\nA  cat sitting on the floor watching television\nTwo skiiers kneeling in the snow by an orange flag.\nA group of people behind a white picket fence watching a person in the grass with a dog and small group of sheep.\nA man kicking a soccer ball on a field.\nA group of boys are running around playing little league.\nA very young boy is trying to bat a ball being thrown to him.\nthis is a few heads of broccoli in a box\nA large range of mountains stretch across the sky.\nA young blond woman swinging a tennis racquet at a ball.\nA crowd of people flying kites on a field.\nThere's a kitchen with toaster sitting on the counter between the oven and stove\nA couple of women sitting at a table next to drinks.\nA man holding a baseball bat while standing next to home plate.\nA cubicle with two computers at the desk. \nA commercial air plane taking off from the runway strip.\nA city made out of stone brick with large arches.\nTwo people wearing hats that double as umbrellas.\nA fire hydrant by a sidewalk marked with paint.\nA woman sitting at a table with bottles of wine.\nan old rusty refrigerator is abandoned in a field. \nA woman with a umbrella on a city street.\nA herd of zebras are in a dirt area near scrub brush.\nBunches of ripe bananas hanging from hooks inside a store.\nA giraffe standing next to a pile of dead wood.\nA little girl that is standing near a toilet.\na yellow and brown fire hydrant on the side of the road\nProfessional athletes conversing on field inside stadium area.\nA bowl of prepared food including rice, meat and broccoli.\nA man on a motorcycle with a group of people standing around it.\nAn attractive lady riding a cow while leaping over a set of poles.\na close up of a child sleeping holding a stuffed animal\na spotted dog sitting underneath the kitchen counter\nTwo sheep in a muddy area with a  wall in the background.\nA train on a track traveling through a countryside. \nA small white boat sits on some calm water under a snow capped mountain.\na horse is pulling a carriage with people down a street\nThree bananas that are sitting next to a laptop and cellphones.\nA man takes something out of an oven in a well organized kitchen.\nA young man riding a board on top of a wave.\nThe orange peal is on the wooden bench \na batter lifting a foot as he stands at home plate \na table with pots and pitchers with knives in a cupboard\nA close up of dozens of of oranges stacked.\nan old photo of a large group of children\nA man holding a glass filled with dark liquid next to a table.\nSome cows are hanging out on the beach.\nThere is a skateboarder at the top of a small ramp.\nA stop light with green arrows on Woodbine Ave. \nfour people playing tennis on a tennis court.\nA rusty fire hydrant sitting on a city sidewalk.\na living room with a couch some chairs and a tv\nA beautiful young woman eating a giant slice of cheese pizza.\nA corgi dog running on a lawn to catch a Frisbee\nThe woman is playing tennis while a crowd watches.\nA train traveling through a rural country side.\nA young boy riding in the street on a skateboard.\nA minimalist room features white appliances and beige walls.\nA girl in a park area flies a multi-colored kite.\nThe grazing sheep don't notice the truck in the field.\nA vase sitting on a table near a plant.\nTwo homemade pizzas on pans in an oven.\nA man riding a skateboard up the side of a ramp.\nA small white dog hanging its head out the side of a window.\nfour scenes with each showing a smiley face doll\nA woman wearing a blue outfit while holding a tennis racquet.\na computer that has a mouse and a keyboard\nA couple of men standing next to each other holding a ring box.\nA long train is driving away from a nuclear power plant.\nA heavy old truck sits in the dirt.\nA herd of zebra are taking a stance while posing for a photo.\na couple of elephants that are standing next to each other\nA couple of people standing on top of a green yard.\na living room with a pair of coaches and a big table\nA plant is growing on the window sill in the bathroom.\nA MAN TAKING A SWING AT A TENNIS BALL.\nA guy does tricks on his skateboard in the street\nA man running to hit a tennis ball with a racket. \nThe young kids are playing Frisbee in the field. \nA plate holding a slice of pizza with assorted vegetables.\nA laptop on a table with some chairs.\nA table prepared with food is seen in this image.\nA pirstine white and black bathroom with a tub by a window\nThis is an image of a woman with an umbrella with a sign on it.\nA large United States Air Force plane sitting on a tarmac at an airport.\nthere are two men playing fetch with a dog in the field\nA note written on a banana reagarding a story.\nA sign near a wooden fence and a tree.\nA view of a person walking towards a house boat.\nA street sign next to a public road in a city.\nA cut in half bagel sandwich sitting on top of a plate.\nA Man skis using a sail in open snow-packed field.\nA man adjusting his tie while wearing a jacket.\na small sheep is standing in a pin\nTwo empty beach chairs laying on the sand.\nA group of flowers is displayed in a vase.\nA child standing in the grass with a colorful kite. \na living room that has some furniture in it\nTwo pieces of bread with a leafy green on top of it.\nA beautiful young lady sitting on a cement block in front of a gray car.\nA sandwich is on a long bun in paper wrapping.\nA person bending over by the side of a parked car.\nCar parked at meter with license plate that says SUPABAAD.\nA horse's head poking through a window in a barn\nA pizza sitting on top of a pan over a stove.\nA young person riding a skate board up the side of a ramp.\nA bike parked next to a red door on the front of a house.\nThere is a battleship floating in the water.\na very tall giraffe standing in the wilderness\nA group of different colored teddy bears sitting on top of a blue table.\nA young boy wearing  a catchers mitt while standing on top of a field.\nA man standing on a roof holding an ax.\nThe young zebra has begun to form his adult stripes. \nTwo small children are on the dirt with an umbrella.\nA paperback book thats sitting on a desk with a skull shaped lamp.\nA little girl is standing in a ladybug raincoat with a ladybug umbrella. \nA stove with two kettles and a pan of pizza on it. \nModel of two cars with a man near a blue phonebooth.\nA group of people walk around in a business area.\nA crowd of people sitting next to each other at a meeting.\nA group of people riding on the back of motor bikes.\na person attempting to surf through a wave\nA woman standing in front of a bench covered in luggage.\nA white toilet sitting in the corner of a bathroom.\nA male tennis player walking on the tennis court.\nA street filled with buses and a white van.\nA man that is in the air with a skateboard.\nA man with a chef outfit is talking on the phone.\nA small employee break room with a table and microwave.\nA surfer on his board performing a trick.  \nA very tall building with a large tower and a clock on it's side.\nA crowd of people walking on a sidewalk while holding umbrellas.\nA sandwich and some sides sit on a tray on a table.\na table full of bananas being sold outside\nA giraffe is standing under a tall tree.\nA young man holding a yellow frisbee in his hands.\nA tray filled with lots of fries next to a hot dog.\nBathroom view, brightly lit, blue square basin, commode on right, shower curtain on left and heater and window on far end.\nA kitchen counter filled with lots of dishes.\nA herd of cattle grazing on a lush green field.\nA green street sign next to peoples houses.\nA jumbo-sized submarine sandwich lies on a table next to plates. \nA man's open hand with tiny bananas with sand as the background.\nThree brown cows grazing on a muddy grass field.\nSeveral bicycles lined up against a brick building.\nGroup of black chairs sitting underneath a blue umbrella. \nFour vases with purple flower in it. There are two different shapes and sizes.\nA blue and white train engine pulling a red train car.\nPeople playing Frisbee with a drown and white dog.\nA baby next to a stuffed bear of some sort.\nA den with a television, compact discs, dvds and a couch.\nAn interesting kitchen renovation with brick and wood\nA very large pizza on top of a pan on a table.\nBlack and white historical photo man next to motorized bicycle.\nA feast of meat, potatos, and veggies on a plate\nA man hitting a tennis ball with a bat.\nA group of animals are standing in the snow. \nSeveral people walking through an airport near luggage.\nA group of people riding on a cart traveling down a street.\nA woman lays on her bed with her dog while using the mirror to take a picture.\nA train with steam coming out is on the tracks.\nA man riding a skateboard down a street.\nA pile of hair, scissors, razor, hand mirror and larger mirror.\nA street with several vendor stalls and people walking around.\nTwo men shaking hands while standing on a tennis court.\nA red fire hydrant placed near a building\nA woman is in the kitchen and cooking. \nA table set with fancy plates, glasses and candles.\nA street filled with traffic under a blue sky.\nA picture of some kites that are flying in the air.\nSpectators are watching a baseball game in the stands. \nA bird perched on a metal bar next to the sea\nA baseball player winds up for a powerful pitch.\nA boat is parked alongside a row of parked bicycles.\na female sitting at a table next to a cake with candles in it\nA Zebra is walking alone in the green gas. \na close up of a plate of pizza near a computer keyboard\nA man flying through the air while riding skis.\nBlack and white photograph of a living room's large television\nA business window with an \"ATM INSIDE\" sign,  reflecting a clock tower.\na vase on top of a table with a weird looking flower in it.\nA young man popping a wheelie on a skateboard.\n A cut in half sandwich sitting inside of a microwave.\na cow walking on a city street near people \nAn eagle statue in front of paintings overlooks an ornate room.\nTwo skate boards sitting side by side next to each other on a floor.\nA man eating a slice of pizza next to food stands.\na street image with parked vehicles along side the curb \nA plate holding a sandwich with peanut butter and bananas.\na yellow train parked at a platfrom with a bright light \nA small bird perched on the lip of a teacup. \nA man riding on the back of a motorcycle on a field next to a dog.\nA heard of sheep together in a wheat field. \nA man talking on a phone standing in front of a building.\nA man is trying to catch a red Frisbee.\nTwo trains riding side by side on two tracks\nTwo remotes on a mattress with an adjustable sleep number one in the middle\nThat tub is usually one found in a nursing home.\nA man riding on top of a surfboard next to a  woman in the ocean.\nThe cat is on the mans lap even when he is trying to use his laptop.\nA woman holding a tennis racquet next to two tennis balls.\nA baseball player holding a bat over his head.\na lady that is on some skies on some snow\nA Nokia cell phone is sitting atop the box it came in.\nA bathroom sink sitting underneath a mirror mounted on it's wall.\na bus moving down the street next to a corner\nA plate of vegetables is placed on the dinner table.\nLarge black street light in front of a setting sun.\nA woman in a pink top serving a ball in a tennis match.\nA yellow and blue bus driving down a curvy road.\nTwo women are sitting on benches and one has a purse and shopping bag beside her.\nA large body of water with a small sailboat red and white mast\nA foam container filled with a hot dog and a piece of water melon.\nMan on blue and white motorcycle riding on one wheel. \na kitty sitting in a plant with two glass mushrooms in the planter\nA rusty old red fire hydrant in the weeds.\nThe zebra stands eating from tall brown grass.\nA laptop computer sitting on top of a table.\nA bunch of statues that are standing on the ground.\nA young man holding a Nintendo Wii game controller.\nA man riding a skateboard down a set of steps.\nOpen refrigerator and freezer containing only two bottles of wine.\na bear sticking his head under the water \nA traffic light turns green on the corner of a city street.\nBoy wearing shorts and flip flops holding a bat.\nPeople walking toward an airplane to board it.\nA person brushes a tied up horse. \nBig Ben seen in the background behind tree branches.\nA black pen is laying on top of a red pair of scissors.\na restaurant called time to eat on lincoln avenue \na lady petting a white horse that is pulling a carriage \nRed ties hanging like nooses in a museum. \nsome zebras and giraffes are walking around \nA brown bear walks in dried grass and branches.\na elephant that is in some tall grass\nA herd of sheep standing on top of a dirt field.\nA girl uses a phone next to a dog\nA parking meter next to a handicap parking space.\nA green traffic light suspended above a street.\nA baseball player preparing to throw a pitch during a game.\nLarge whole pizza pie with cheese and olive toppings.\na girl kneeling and posing by a black suitcase\nA woman walks on a sidewalk talking on her phone while others stand near.\na street sign on a city street near some tall bushes\nA baby boy sitting on top of a toilet reading a book.\nA man flying through the air while riding a snow board.\nThe lounge chairs are waiting for the kite fliers to finish.\nA group of people gathered at the rivers edge with their dogs.\nA man riding on the back of another mans bike in the street\nthere are many people standing ion a field playing frisbee\nA toilet and sink side by side in a bathroom and a mirror. \nPeople walking down a residential street where cars are parked.\nAn elephant in a zoo near a watering hole.\nA baby elephant standing in front of a brick building.\nA woman that is sitting down with a hotdog.\nA person riding a skateboard on the corner next to a busy street.\nA woman in tight pants holding a Wii game controller.\nA group of people are lined up skiing.\nA bathroom with a sink, paper roll, toilet, towel rack and mirror.\nA phone that is laying next to a stocking cap.\nA person playing tennis stands surrounded by strawberries.\nA picture of a man in a blue baseball uniform pitching for his team."
  },
  {
    "path": "evaluations/t2i/evaluation.py",
    "content": "# Modified from:\n#   GigaGAN: https://github.com/mingukkang/GigaGAN\nimport os\nimport torch\nimport numpy as np\nimport re\nimport io\nimport random\n\nfrom pathlib import Path\nfrom tqdm import tqdm\nfrom PIL import Image\nimport torch.nn.functional as F\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision.datasets import CocoCaptions\nfrom torchvision.datasets import ImageFolder\nfrom torchvision.transforms import InterpolationMode\nfrom PIL import Image\nimport torchvision.transforms as transforms\nimport glob\n\n\nresizer_collection = {\"nearest\": InterpolationMode.NEAREST,\n                      \"box\": InterpolationMode.BOX,\n                      \"bilinear\": InterpolationMode.BILINEAR,\n                      \"hamming\": InterpolationMode.HAMMING,\n                      \"bicubic\": InterpolationMode.BICUBIC,\n                      \"lanczos\": InterpolationMode.LANCZOS}\n\n\nclass CenterCropLongEdge(object):\n    \"\"\"\n    this code is borrowed from https://github.com/ajbrock/BigGAN-PyTorch\n    MIT License\n    Copyright (c) 2019 Andy Brock\n    \"\"\" \n    def __call__(self, img):\n        return transforms.functional.center_crop(img, min(img.size))\n\n    def __repr__(self):\n        return self.__class__.__name__\n\n\nclass EvalDataset(Dataset):\n    def __init__(self,\n                 data_name,\n                 data_dir,\n                 data_type,\n                 crop_long_edge=False,\n                 resize_size=None,\n                 resizer=\"lanczos\",\n                 normalize=True,\n                 load_txt_from_file=False,\n                 ):\n        super(EvalDataset, self).__init__()\n        self.data_name = data_name\n        self.data_dir = data_dir\n        self.data_type = data_type\n        self.resize_size = resize_size\n        self.normalize = normalize\n        self.load_txt_from_file = load_txt_from_file\n\n        self.trsf_list = [CenterCropLongEdge()]\n        if isinstance(self.resize_size, int):\n            self.trsf_list += [transforms.Resize(self.resize_size,\n                                                 interpolation=resizer_collection[resizer])]\n        if self.normalize:\n            self.trsf_list += [transforms.ToTensor()]\n            self.trsf_list += [transforms.Normalize([0.5, 0.5, 0.5],\n                                                    [0.5, 0.5, 0.5])]\n        else:\n            self.trsf_list += [transforms.PILToTensor()]\n        self.trsf = transforms.Compose(self.trsf_list)\n\n        self.load_dataset()\n\n    def natural_sort(self, l): \n        convert = lambda text: int(text) if text.isdigit() else text.lower()\n        alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]\n        return sorted(l, key=alphanum_key)\n\n    def load_dataset(self):\n        if self.data_name == \"coco2014\":\n            if self.load_txt_from_file:\n                self.imagelist = self.natural_sort(glob.glob(os.path.join(self.data_dir, self.data_type, \"*.%s\" % \"png\")))\n                captionfile = os.path.join(self.data_dir, \"captions.txt\")\n                with io.open(captionfile, 'r', encoding=\"utf-8\") as f:\n                    self.captions = f.read().splitlines()\n                self.data = list(zip(self.imagelist, self.captions))\n            else:\n                self.data = CocoCaptions(root=os.path.join(self.data_dir,\n                                                        \"val2014\"),\n                                        annFile=os.path.join(self.data_dir,\n                                                            \"annotations\",\n                                                            \"captions_val2014.json\"))\n        else:\n            root = os.path.join(self.data_dir, self.data_type)\n            self.data = ImageFolder(root=root)\n\n    def __len__(self):\n        num_dataset = len(self.data)\n        return num_dataset\n\n    def __getitem__(self, index):\n        if self.data_name == \"coco2014\":\n            img, txt = self.data[index]\n            if isinstance(img, str):\n                img = Image.open(img).convert(\"RGB\")\n            if isinstance(txt, list):\n                txt = txt[random.randint(0, 4)]\n            return self.trsf(img), txt\n        else:\n            img, label = self.data[index]\n            return self.trsf(img), int(label)\n\n\ndef tensor2pil(image: torch.Tensor):\n    ''' output image : tensor to PIL\n    '''\n    if isinstance(image, list) or image.ndim == 4:\n        return [tensor2pil(im) for im in image]\n\n    assert image.ndim == 3\n    output_image = Image.fromarray(((image + 1.0) * 127.5).clamp(\n        0.0, 255.0).to(torch.uint8).permute(1, 2, 0).detach().cpu().numpy())\n    return output_image\n\n\n@torch.no_grad()\ndef compute_clip_score(\n    dataset: DataLoader, clip_model=\"ViT-B/32\", device=\"cuda\", how_many=5000):\n    print(\"Computing CLIP score\")\n    import clip as openai_clip \n    if clip_model == \"ViT-B/32\":\n        clip, clip_preprocessor = openai_clip.load(\"ViT-B/32\", device=device)\n        clip = clip.eval()\n    elif clip_model == \"ViT-G/14\":\n        import open_clip\n        clip, _, clip_preprocessor = open_clip.create_model_and_transforms(\"ViT-g-14\", pretrained=\"laion2b_s12b_b42k\")\n        clip = clip.to(device)\n        clip = clip.eval()\n        clip = clip.float()\n    else:\n        raise NotImplementedError\n\n    cos_sims = []\n    count = 0\n    for imgs, txts in tqdm(dataset):\n        imgs_pil = [clip_preprocessor(tensor2pil(img)) for img in imgs]\n        imgs = torch.stack(imgs_pil, dim=0).to(device)\n        tokens = openai_clip.tokenize(txts, truncate=True).to(device)\n        # Prepending text prompts with \"A photo depicts \"\n        # https://arxiv.org/abs/2104.08718\n        prepend_text = \"A photo depicts \"\n        prepend_text_token = openai_clip.tokenize(prepend_text)[:, 1:4].to(device)\n        prepend_text_tokens = prepend_text_token.expand(tokens.shape[0], -1)\n        \n        start_tokens = tokens[:, :1]\n        new_text_tokens = torch.cat(\n            [start_tokens, prepend_text_tokens, tokens[:, 1:]], dim=1)[:, :77]\n        last_cols = new_text_tokens[:, 77 - 1:77]\n        last_cols[last_cols > 0] = 49407  # eot token\n        new_text_tokens = torch.cat([new_text_tokens[:, :76], last_cols], dim=1)\n        \n        img_embs = clip.encode_image(imgs)\n        text_embs = clip.encode_text(new_text_tokens)\n\n        similarities = F.cosine_similarity(img_embs, text_embs, dim=1)\n        cos_sims.append(similarities)\n        count += similarities.shape[0]\n        if count >= how_many:\n            break\n    \n    clip_score = torch.cat(cos_sims, dim=0)[:how_many].mean()\n    clip_score = clip_score.detach().cpu().numpy()\n    return clip_score\n\n\n@torch.no_grad()\ndef compute_fid(fake_dir: Path, gt_dir: Path,\n    resize_size=None, feature_extractor=\"clip\"):\n    from cleanfid import fid\n    center_crop_trsf = CenterCropLongEdge()\n    def resize_and_center_crop(image_np):\n        image_pil = Image.fromarray(image_np) \n        image_pil = center_crop_trsf(image_pil)\n\n        if resize_size is not None:\n            image_pil = image_pil.resize((resize_size, resize_size),\n                                         Image.LANCZOS)\n        return np.array(image_pil)\n\n    if feature_extractor == \"inception\":\n        model_name = \"inception_v3\"\n    elif feature_extractor == \"clip\":\n        model_name = \"clip_vit_b_32\"\n    else:\n        raise ValueError(\n            \"Unrecognized feature extractor [%s]\" % feature_extractor)\n    fid = fid.compute_fid(gt_dir,\n                          fake_dir,\n                          model_name=model_name,\n                          custom_image_tranform=resize_and_center_crop)\n    return fid\n\n\ndef evaluate_model(opt):\n    ### Generated images\n    dset2 = EvalDataset(data_name=opt.ref_data,\n                        data_dir=opt.fake_dir,\n                        data_type=\"images\",\n                        crop_long_edge=True,\n                        resize_size=opt.eval_res,\n                        resizer=\"lanczos\",\n                        normalize=True,\n                        load_txt_from_file=True if opt.ref_data == \"coco2014\" else False)\n\n    dset2_dataloader = DataLoader(dataset=dset2,\n                                  batch_size=opt.batch_size,\n                                  shuffle=False,\n                                  pin_memory=True,\n                                  drop_last=False)\n\n    if opt.ref_data == \"coco2014\":\n        clip_score = compute_clip_score(dset2_dataloader, clip_model=opt.clip_model4eval, how_many=opt.how_many)\n        print(f\"CLIP score: {clip_score}\")\n\n    ref_sub_folder_name = \"val2014\" if opt.ref_data == \"coco2014\" else opt.ref_type\n    fake_sub_folder_name = \"images\"\n    fid = compute_fid(\n        os.path.join(opt.ref_dir, ref_sub_folder_name),\n        os.path.join(opt.fake_dir, fake_sub_folder_name),\n        resize_size=opt.eval_res,\n        feature_extractor=\"inception\")\n    print(f\"FID_{opt.eval_res}px: {fid}\")\n\n    txt_path = opt.fake_dir + '/score.txt'\n    print(\"writing to {}\".format(txt_path))\n    with open(txt_path, 'w') as f:\n        print(f\"CLIP score: {clip_score}\", file=f)\n        print(f\"FID_{opt.eval_res}px: {fid}\", file=f)\n\n    return\n\n\nif __name__ == \"__main__\":\n    import argparse \n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--fake_dir\", required=True, default=\"/home/GigaGAN_images/\", help=\"location of fake images for evaluation\")\n    parser.add_argument(\"--ref_dir\",  required=True, default=\"/home/COCO/\", help=\"location of the reference images for evaluation\")\n    parser.add_argument(\"--ref_data\", default=\"coco2014\", type=str, help=\"in [imagenet2012, coco2014, laion4k]\")\n    parser.add_argument(\"--ref_type\", default=\"train/valid/test\", help=\"Type of reference dataset\")\n\n    parser.add_argument(\"--how_many\", default=30000, type=int)\n    parser.add_argument(\"--clip_model4eval\", default=\"ViT-B/32\", type=str, help=\"[WO, ViT-B/32, ViT-G/14]\")\n    parser.add_argument(\"--eval_res\", default=256, type=int)\n    parser.add_argument(\"--batch_size\", default=8, type=int)\n    \n    opt, _ = parser.parse_known_args()\n    evaluate_model(opt)"
  },
  {
    "path": "language/README.md",
    "content": "## Language models for text-conditional image generation\n\n### Requirements\n```\npip install ftfy\npip install transformers\npip install accelerate\npip install sentencepiece\npip install pandas\npip install bs4\n```\n\n### Language Models\nDownload flan-t5-xl models from [flan-t5-xl](https://huggingface.co/google/flan-t5-xl) and put into the folder of `./pretrained_models/t5-ckpt/`\n"
  },
  {
    "path": "language/extract_t5_feature.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nimport numpy as np\nimport argparse\nimport os\nimport json\n\nfrom utils.distributed import init_distributed_mode\nfrom language.t5 import T5Embedder\n\nCAPTION_KEY = {\n    'blip': 0,\n    'llava': 1,\n    'llava_first': 2,\n}\n#################################################################################\n#                             Training Helper Functions                         #\n#################################################################################\nclass CustomDataset(Dataset):\n    def __init__(self, lst_dir, start, end, caption_key, trunc_caption=False):\n        img_path_list = []\n        for lst_name in sorted(os.listdir(lst_dir))[start: end+1]:\n            if not lst_name.endswith('.jsonl'):\n                continue\n            file_path = os.path.join(lst_dir, lst_name)\n            with open(file_path, 'r') as file:\n                for line_idx, line in enumerate(file):\n                    data = json.loads(line)\n                    # caption = data[caption_key]\n                    caption = data['text'][CAPTION_KEY[caption_key]]\n                    code_dir = file_path.split('/')[-1].split('.')[0]\n                    if trunc_caption:\n                        caption = caption.split('.')[0]\n                    img_path_list.append((caption, code_dir, line_idx))\n        self.img_path_list = img_path_list\n\n    def __len__(self):\n        return len(self.img_path_list)\n\n    def __getitem__(self, index):\n        caption, code_dir, code_name = self.img_path_list[index]\n        return caption, code_dir, code_name\n\n\n        \n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\ndef main(args):\n    \"\"\"\n    Trains a new DiT model.\n    \"\"\"\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n\n    # Setup DDP:\n    # dist.init_process_group(\"nccl\")\n    init_distributed_mode(args)\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # Setup a feature folder:\n    if rank == 0:\n        os.makedirs(args.t5_path, exist_ok=True)\n\n    # Setup data:\n    print(f\"Dataset is preparing...\")\n    dataset = CustomDataset(args.data_path, args.data_start, args.data_end, args.caption_key, args.trunc_caption)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=1, # important!\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )\n    print(f\"Dataset contains {len(dataset):,} images\")\n\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    assert os.path.exists(args.t5_model_path)\n    t5_xxl = T5Embedder(\n        device=device, \n        local_cache=True, \n        cache_dir=args.t5_model_path, \n        dir_or_name=args.t5_model_type,\n        torch_dtype=precision\n    )\n\n    for caption, code_dir, code_name in loader:\n        caption_embs, emb_masks = t5_xxl.get_text_embeddings(caption)\n        valid_caption_embs = caption_embs[:, :emb_masks.sum()]\n        x = valid_caption_embs.to(torch.float32).detach().cpu().numpy()\n        os.makedirs(os.path.join(args.t5_path, code_dir[0]), exist_ok=True)\n        np.save(os.path.join(args.t5_path, code_dir[0], '{}.npy'.format(code_name.item())), x)\n        print(code_name.item())\n\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--t5-path\", type=str, required=True)\n    parser.add_argument(\"--data-start\", type=int, required=True)\n    parser.add_argument(\"--data-end\", type=int, required=True)\n    parser.add_argument(\"--caption-key\", type=str, default='blip', choices=list(CAPTION_KEY.keys()))\n    parser.add_argument(\"--trunc-caption\", action='store_true', default=False)\n    parser.add_argument(\"--t5-model-path\", type=str, default='./pretrained_models/t5-ckpt')\n    parser.add_argument(\"--t5-model-type\", type=str, default='flan-t5-xl')\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"])\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=24)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "language/t5.py",
    "content": "# Modified from:\n#   PixArt: https://github.com/PixArt-alpha/PixArt-alpha/blob/master/diffusion/model/t5.py\nimport os\nimport re\nimport html\nimport urllib.parse as ul\n\nimport ftfy\nimport torch\nfrom bs4 import BeautifulSoup\nfrom transformers import T5EncoderModel, AutoTokenizer\nfrom huggingface_hub import hf_hub_download\n\n\nclass T5Embedder:\n    available_models = ['t5-v1_1-xxl', 't5-v1_1-xl', 'flan-t5-xl']\n    bad_punct_regex = re.compile(r'['+'#®•©™&@·º½¾¿¡§~'+'\\)'+'\\('+'\\]'+'\\['+'\\}'+'\\{'+'\\|'+'\\\\'+'\\/'+'\\*' + r']{1,}')  # noqa\n\n    def __init__(self, device, dir_or_name='t5-v1_1-xxl', *, local_cache=False, cache_dir=None, hf_token=None, use_text_preprocessing=True,\n                 t5_model_kwargs=None, torch_dtype=None, use_offload_folder=None, model_max_length=120):\n        self.device = torch.device(device)\n        self.torch_dtype = torch_dtype or torch.bfloat16\n        if t5_model_kwargs is None:\n            t5_model_kwargs = {'low_cpu_mem_usage': True, 'torch_dtype': self.torch_dtype}\n            t5_model_kwargs['device_map'] = {'shared': self.device, 'encoder': self.device}\n\n        self.use_text_preprocessing = use_text_preprocessing\n        self.hf_token = hf_token\n        self.cache_dir = cache_dir or os.path.expanduser('~/.cache/IF_')\n        self.dir_or_name = dir_or_name\n        tokenizer_path, path = dir_or_name, dir_or_name\n        if local_cache:\n            cache_dir = os.path.join(self.cache_dir, dir_or_name)\n            tokenizer_path, path = cache_dir, cache_dir\n        elif dir_or_name in self.available_models:\n            cache_dir = os.path.join(self.cache_dir, dir_or_name)\n            for filename in [\n                'config.json', 'special_tokens_map.json', 'spiece.model', 'tokenizer_config.json',\n                'pytorch_model.bin.index.json', 'pytorch_model-00001-of-00002.bin', 'pytorch_model-00002-of-00002.bin'\n            ]:\n                hf_hub_download(repo_id=f'DeepFloyd/{dir_or_name}', filename=filename, cache_dir=cache_dir,\n                                force_filename=filename, token=self.hf_token)\n            tokenizer_path, path = cache_dir, cache_dir\n        else:\n            cache_dir = os.path.join(self.cache_dir, 't5-v1_1-xxl')\n            for filename in [\n                'config.json', 'special_tokens_map.json', 'spiece.model', 'tokenizer_config.json',\n            ]:\n                hf_hub_download(repo_id='DeepFloyd/t5-v1_1-xxl', filename=filename, cache_dir=cache_dir,\n                                force_filename=filename, token=self.hf_token)\n            tokenizer_path = cache_dir\n\n        print(tokenizer_path)\n        self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_path)\n        self.model = T5EncoderModel.from_pretrained(path, **t5_model_kwargs).eval()\n        self.model_max_length = model_max_length\n\n    def get_text_embeddings(self, texts):\n        texts = [self.text_preprocessing(text) for text in texts]\n\n        text_tokens_and_mask = self.tokenizer(\n            texts,\n            max_length=self.model_max_length,\n            padding='max_length',\n            truncation=True,\n            return_attention_mask=True,\n            add_special_tokens=True,\n            return_tensors='pt'\n        )\n\n        text_tokens_and_mask['input_ids'] = text_tokens_and_mask['input_ids']\n        text_tokens_and_mask['attention_mask'] = text_tokens_and_mask['attention_mask']\n\n        with torch.no_grad():\n            text_encoder_embs = self.model(\n                input_ids=text_tokens_and_mask['input_ids'].to(self.device),\n                attention_mask=text_tokens_and_mask['attention_mask'].to(self.device),\n            )['last_hidden_state'].detach()\n        return text_encoder_embs, text_tokens_and_mask['attention_mask'].to(self.device)\n\n    def text_preprocessing(self, text):\n        if self.use_text_preprocessing:\n            # The exact text cleaning as was in the training stage:\n            text = self.clean_caption(text)\n            text = self.clean_caption(text)\n            return text\n        else:\n            return text.lower().strip()\n\n    @staticmethod\n    def basic_clean(text):\n        text = ftfy.fix_text(text)\n        text = html.unescape(html.unescape(text))\n        return text.strip()\n\n    def clean_caption(self, caption):\n        caption = str(caption)\n        caption = ul.unquote_plus(caption)\n        caption = caption.strip().lower()\n        caption = re.sub('<person>', 'person', caption)\n        # urls:\n        caption = re.sub(\n            r'\\b((?:https?:(?:\\/{1,3}|[a-zA-Z0-9%])|[a-zA-Z0-9.\\-]+[.](?:com|co|ru|net|org|edu|gov|it)[\\w/-]*\\b\\/?(?!@)))',  # noqa\n            '', caption)  # regex for urls\n        caption = re.sub(\n            r'\\b((?:www:(?:\\/{1,3}|[a-zA-Z0-9%])|[a-zA-Z0-9.\\-]+[.](?:com|co|ru|net|org|edu|gov|it)[\\w/-]*\\b\\/?(?!@)))',  # noqa\n            '', caption)  # regex for urls\n        # html:\n        caption = BeautifulSoup(caption, features='html.parser').text\n\n        # @<nickname>\n        caption = re.sub(r'@[\\w\\d]+\\b', '', caption)\n\n        # 31C0—31EF CJK Strokes\n        # 31F0—31FF Katakana Phonetic Extensions\n        # 3200—32FF Enclosed CJK Letters and Months\n        # 3300—33FF CJK Compatibility\n        # 3400—4DBF CJK Unified Ideographs Extension A\n        # 4DC0—4DFF Yijing Hexagram Symbols\n        # 4E00—9FFF CJK Unified Ideographs\n        caption = re.sub(r'[\\u31c0-\\u31ef]+', '', caption)\n        caption = re.sub(r'[\\u31f0-\\u31ff]+', '', caption)\n        caption = re.sub(r'[\\u3200-\\u32ff]+', '', caption)\n        caption = re.sub(r'[\\u3300-\\u33ff]+', '', caption)\n        caption = re.sub(r'[\\u3400-\\u4dbf]+', '', caption)\n        caption = re.sub(r'[\\u4dc0-\\u4dff]+', '', caption)\n        caption = re.sub(r'[\\u4e00-\\u9fff]+', '', caption)\n        #######################################################\n\n        # все виды тире / all types of dash --> \"-\"\n        caption = re.sub(\n            r'[\\u002D\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u2E40\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D]+',  # noqa\n            '-', caption)\n\n        # кавычки к одному стандарту\n        caption = re.sub(r'[`´«»“”¨]', '\"', caption)\n        caption = re.sub(r'[‘’]', \"'\", caption)\n\n        # &quot;\n        caption = re.sub(r'&quot;?', '', caption)\n        # &amp\n        caption = re.sub(r'&amp', '', caption)\n\n        # ip adresses:\n        caption = re.sub(r'\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}', ' ', caption)\n\n        # article ids:\n        caption = re.sub(r'\\d:\\d\\d\\s+$', '', caption)\n\n        # \\n\n        caption = re.sub(r'\\\\n', ' ', caption)\n\n        # \"#123\"\n        caption = re.sub(r'#\\d{1,3}\\b', '', caption)\n        # \"#12345..\"\n        caption = re.sub(r'#\\d{5,}\\b', '', caption)\n        # \"123456..\"\n        caption = re.sub(r'\\b\\d{6,}\\b', '', caption)\n        # filenames:\n        caption = re.sub(r'[\\S]+\\.(?:png|jpg|jpeg|bmp|webp|eps|pdf|apk|mp4)', '', caption)\n\n        #\n        caption = re.sub(r'[\\\"\\']{2,}', r'\"', caption)  # \"\"\"AUSVERKAUFT\"\"\"\n        caption = re.sub(r'[\\.]{2,}', r' ', caption)  # \"\"\"AUSVERKAUFT\"\"\"\n\n        caption = re.sub(self.bad_punct_regex, r' ', caption)  # ***AUSVERKAUFT***, #AUSVERKAUFT\n        caption = re.sub(r'\\s+\\.\\s+', r' ', caption)  # \" . \"\n\n        # this-is-my-cute-cat / this_is_my_cute_cat\n        regex2 = re.compile(r'(?:\\-|\\_)')\n        if len(re.findall(regex2, caption)) > 3:\n            caption = re.sub(regex2, ' ', caption)\n\n        caption = self.basic_clean(caption)\n\n        caption = re.sub(r'\\b[a-zA-Z]{1,3}\\d{3,15}\\b', '', caption)  # jc6640\n        caption = re.sub(r'\\b[a-zA-Z]+\\d+[a-zA-Z]+\\b', '', caption)  # jc6640vc\n        caption = re.sub(r'\\b\\d+[a-zA-Z]+\\d+\\b', '', caption)  # 6640vc231\n\n        caption = re.sub(r'(worldwide\\s+)?(free\\s+)?shipping', '', caption)\n        caption = re.sub(r'(free\\s)?download(\\sfree)?', '', caption)\n        caption = re.sub(r'\\bclick\\b\\s(?:for|on)\\s\\w+', '', caption)\n        caption = re.sub(r'\\b(?:png|jpg|jpeg|bmp|webp|eps|pdf|apk|mp4)(\\simage[s]?)?', '', caption)\n        caption = re.sub(r'\\bpage\\s+\\d+\\b', '', caption)\n\n        caption = re.sub(r'\\b\\d*[a-zA-Z]+\\d+[a-zA-Z]+\\d+[a-zA-Z\\d]*\\b', r' ', caption)  # j2d1a2a...\n\n        caption = re.sub(r'\\b\\d+\\.?\\d*[xх×]\\d+\\.?\\d*\\b', '', caption)\n\n        caption = re.sub(r'\\b\\s+\\:\\s+', r': ', caption)\n        caption = re.sub(r'(\\D[,\\./])\\b', r'\\1 ', caption)\n        caption = re.sub(r'\\s+', ' ', caption)\n\n        caption.strip()\n\n        caption = re.sub(r'^[\\\"\\']([\\w\\W]+)[\\\"\\']$', r'\\1', caption)\n        caption = re.sub(r'^[\\'\\_,\\-\\:;]', r'', caption)\n        caption = re.sub(r'[\\'\\_,\\-\\:\\-\\+]$', r'', caption)\n        caption = re.sub(r'^\\.\\S+$', '', caption)\n\n        return caption.strip()"
  },
  {
    "path": "requirements.txt",
    "content": "torchvision==0.16.2\nopencv-python==4.9.0.80\nmatplotlib==3.9.0\nnumpy==1.26.4\neinops\ndatasets\ntensorflow==2.16.1\nscikit-learn\nscikit-image\nftfy\nbs4\ntimm\ntorchmetrics\naccelerate\ncontrolnet_aux\nftfy\nclean-fid\nsafetensors\ntransformers\ntiktoken\nsentencepiece\nbasicsr"
  },
  {
    "path": "scripts/autoregressive/extract_codes_c2i.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=2 --node_rank=0 \\\n--master_port=12335 \\\nautoregressive/train/extract_codes_c2i.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/extract_file_ade.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12336 \\\nautoregressive/train/extract_file_ade.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/extract_file_cocostuff.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12336 \\\nautoregressive/train/extract_file_cocostuff.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/extract_file_imagenet.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12336 \\\nautoregressive/train/extract_file_imagenet.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/extract_file_multigen.sh",
    "content": "# !/bin/bash\n\n# sleep 21600\n\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12336 \\\nautoregressive/train/extract_file_multigen.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/sample_c2i.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_port=12346 \\\nautoregressive/sample/sample_c2i_ddp.py \\\n--vq-ckpt ./pretrained_models/vq_ds16_c2i.pt \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/sample_t2i_coco.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12346 \\\nautoregressive/sample/sample_t2i_ddp.py \\\n--prompt-csv evaluations/t2i/coco_captions.csv \\\n--sample-dir samples_coco \\\n--vq-ckpt ./pretrained_models/vq_ds16_t2i.pt \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/sample_t2i_parti.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12347 \\\nautoregressive/sample/sample_t2i_ddp.py \\\n--prompt-csv evaluations/t2i/PartiPrompts.tsv \\\n--sample-dir samples_parti \\\n--vq-ckpt ./pretrained_models/vq_ds16_t2i.pt \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/test_c2i.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12349 \\\nautoregressive/test/test_c2i.py \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/test_t2i.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12349 \\\nautoregressive/test/test_t2i.py \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_c2i.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12345 \\\nautoregressive/train/train_c2i.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_c2i_canny.sh",
    "content": "# !/bin/bash\n# sleep 43200\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12345 \\\nautoregressive/train/train_c2i_canny.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_c2i_depth.sh",
    "content": "# !/bin/bash\n# sleep 39600\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12345 \\\nautoregressive/train/train_c2i_depth.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_c2i_fsdp.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=$nnodes --nproc_per_node=$nproc_per_node --node_rank=$node_rank \\\n--master_addr=$master_addr --master_port=$master_port \\\nautoregressive/train/train_c2i_fsdp.py \"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_canny.sh",
    "content": "# !/bin/bash\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_canny.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_depth.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_depth.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_depth_multiscale.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_depth_multiscale.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 768 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n--no-compile\n# --adapter-size base \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_hed.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_hed.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n--adapter-size base \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_hed_multiscale.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_hed_multiscale.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 768 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n--no-compile\n# --adapter-size base \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_lineart.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_lineart.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_lineart_multiscale.sh",
    "content": "# !/bin/bash\n# sleep 36000\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_lineart_multiscale.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 768 \\\n--cloud-save-path output \\\n--code-path data/MultiGen20M/train \\\n--no-compile\n# --adapter-size base \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_seg.sh",
    "content": "# !/bin/bash\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_seg.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/Captioned_ADE20K/train \\\n--code-path2 data/Captioned_COCOStuff/train \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_seg_multiscale.sh",
    "content": "# !/bin/bash\nset -x\nexport TOKENIZERS_PARALLELISM=true\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12346 \\\nautoregressive/train/train_t2i_seg_multiscale.py \\\n--vq-ckpt checkpoints/vq/vq_ds16_t2i.pt \\\n--gpt-ckpt checkpoints/llamagen/t2i_XL_stage2_512.pt \\\n--data-path /path/to/high_aesthetic_10M \\\n--dataset t2i_control \\\n--image-size 512 \\\n--cloud-save-path output \\\n--code-path data/Captioned_COCOStuff/train \\\n--code-path2 data/Captioned_ADE20K/train \\\n--no-compile\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_stage1.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=$nnodes --nproc_per_node=$nproc_per_node --node_rank=$node_rank \\\n--master_addr=$master_addr --master_port=$master_port \\\nautoregressive/train/train_t2i.py \\\n--vq-ckpt ./pretrained_models/vq_ds16_t2i.pt \\\n--data-path /path/to/laion_coco50M \\\n--t5-feat-path /path/to/laion_coco50M_flan_t5_xl \\\n--dataset t2i \\\n--image-size 256 \\\n\"$@\"\n"
  },
  {
    "path": "scripts/autoregressive/train_t2i_stage2.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=$nnodes --nproc_per_node=$nproc_per_node --node_rank=$node_rank \\\n--master_addr=$master_addr --master_port=$master_port \\\nautoregressive/train/train_t2i.py \\\n--vq-ckpt ./pretrained_models/vq_ds16_t2i.pt \\\n--data-path /path/to/high_aesthetic_10M \\\n--t5-feat-path /path/to/high_aesthetic_10M_flan_t5_xl \\\n--short-t5-feat-path /path/to/high_aesthetic_10M_trunc_flan_t5_xl \\\n--dataset t2i \\\n--image-size 512 \\\n\"$@\"\n"
  },
  {
    "path": "scripts/language/extract_flan_t5_feat_laion_coco_stage1.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12337 \\\nlanguage/extract_t5_feature.py \\\n--data-path /path/to/laion_coco50M \\\n--t5-path /path/to/laion_coco50M_flan_t5_xl \\\n--caption-key blip \\\n\"$@\"\n"
  },
  {
    "path": "scripts/language/extract_flan_t5_feat_stage2.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12337 \\\nlanguage/extract_t5_feature.py \\\n--data-path /path/to/high_aesthetic_10M \\\n--t5-path /path/to/high_aesthetic_10M_flan_t5_xl \\\n\"$@\"\n"
  },
  {
    "path": "scripts/language/extract_flan_t5_feat_trunc_stage2.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12337 \\\nlanguage/extract_t5_feature.py \\\n--data-path /path/to/high_aesthetic_10M \\\n--t5-path /path/to/high_aesthetic_10M_trunc_flan_t5_xl \\\n--trunc-caption \\\n\"$@\"\n"
  },
  {
    "path": "scripts/tokenizer/reconstruction_consistency_decoder.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12344 \\\ntokenizer/consistencydecoder/reconstruction_cd_ddp.py \\\n\"$@\""
  },
  {
    "path": "scripts/tokenizer/reconstruction_vae.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12344 \\\ntokenizer/vae/reconstruction_vae_ddp.py \\\n\"$@\""
  },
  {
    "path": "scripts/tokenizer/reconstruction_vq.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=1 --node_rank=0 \\\n--master_port=12344 \\\ntokenizer/tokenizer_image/reconstruction_vq_ddp.py \\\n\"$@\""
  },
  {
    "path": "scripts/tokenizer/reconstruction_vqgan.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=8 --node_rank=0 \\\n--master_port=12344 \\\ntokenizer/vqgan/reconstruction_vqgan_ddp.py \\\n\"$@\""
  },
  {
    "path": "scripts/tokenizer/train_vq.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12345 \\\ntokenizer/tokenizer_image/vq_train.py \"$@\""
  },
  {
    "path": "scripts/tokenizer/train_vq_finetune.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_addr=127.0.0.1 --master_port=12345 \\\ntokenizer/tokenizer_image/vq_train.py \\\n--finetune \\\n--disc-start 0 \\\n--vq-ckpt vq_ds16_c2i.pt \\\n--dataset imagenet_code \\\n--cloud-save-path output/cloud_disk \\\n\"$@\"\n\n"
  },
  {
    "path": "scripts/tokenizer/train_vq_finetune_continue.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=$nnodes --nproc_per_node=$nproc_per_node --node_rank=$node_rank \\\n--master_addr=$master_addr --master_port=$master_port \\\ntokenizer/tokenizer_image/vq_train.py \\\n--disc-start 0 \\\n--dataset t2i_image \\\n--data-path /path/to/high_aesthetic_10M \\\n--data-face-path /path/to/face_2M \\\n--cloud-save-path /path/to/cloud_disk \\\n\"$@\"\n\n# --vq-ckpt xxx.pt"
  },
  {
    "path": "scripts/tokenizer/val.sh",
    "content": "# !/bin/bash\nset -x\n\ntorchrun \\\n--nnodes=1 --nproc_per_node=4 --node_rank=0 \\\n--master_port=12343 \\\ntokenizer/validation/val_ddp.py \\\n\"$@\""
  },
  {
    "path": "tokenizer/consistencydecoder/README.md",
    "content": "## Consistency Decoder from OpenAI\n\n### install\n```\npip install diffusers\npip install accelerate\n```\n\n### demo\n```\ncd ${THIS_REPO_ROOT}\npython3 tokenizer/consistencydecoder/cd_demo.py\n```\n\n"
  },
  {
    "path": "tokenizer/consistencydecoder/cd_demo.py",
    "content": "import argparse\nimport torch\nimport torch.nn.functional as F\nimport numpy as np\nfrom PIL import Image\nfrom diffusers import ConsistencyDecoderVAE\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vae = ConsistencyDecoderVAE.from_pretrained(\"openai/consistency-decoder\", torch_dtype=torch.float16).to(device)\n\n    # load image\n    img_path = args.image_path\n    out_path = args.image_path.replace('.jpg', '_cd.jpg').replace('.jpeg', '_cd.jpeg').replace('.png', '_cd.png')\n    input_size = args.image_size\n    img = Image.open(img_path).convert(\"RGB\")\n\n    # preprocess\n    size_org = img.size\n    img = img.resize((input_size, input_size))\n    img = np.array(img) / 255.\n    x = 2.0 * img - 1.0 # x value is between [-1, 1]\n    x = torch.tensor(x)\n    x = x.unsqueeze(dim=0)\n    x = torch.einsum('nhwc->nchw', x)\n    x_input = x.half().to(device)\n\n    # inference\n    with torch.no_grad():\n        # Map input images to latent space + normalize latents:\n        latent = vae.encode(x_input).latent_dist.sample().mul_(0.18215)\n        # reconstruct:\n        output = vae.decode(latent / 0.18215).sample # output value is between [-1, 1]\n\n    # postprocess\n    output = F.interpolate(output, size=[size_org[1], size_org[0]], mode='bilinear').permute(0, 2, 3, 1)[0]\n    sample = torch.clamp(127.5 * output + 128.0, 0, 255).to(\"cpu\", dtype=torch.uint8).numpy()\n\n    # save        \n    Image.fromarray(sample).save(out_path)\n    print(\"Reconstructed image is saved to {}\".format(out_path))\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--image-path\", type=str, default=\"assets/example.jpg\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512, 1024], default=512)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "tokenizer/consistencydecoder/reconstruction_cd_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision.datasets import ImageFolder\nfrom torchvision import transforms\nfrom tqdm import tqdm\nimport os\nimport itertools\nfrom PIL import Image\nimport numpy as np\nimport argparse\nimport random\n\nfrom skimage.metrics import peak_signal_noise_ratio as psnr_loss\nfrom skimage.metrics import structural_similarity as ssim_loss\nfrom diffusers.models import ConsistencyDecoderVAE\n\n\nclass SingleFolderDataset(Dataset):\n    def __init__(self, directory, transform=None):\n        super().__init__()\n        self.directory = directory\n        self.transform = transform\n        self.image_paths = [os.path.join(directory, file_name) for file_name in os.listdir(directory)\n                            if os.path.isfile(os.path.join(directory, file_name))]\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        image_path = self.image_paths[idx]\n        image = Image.open(image_path).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n\n    random.shuffle(samples) # This is very important for IS(Inception Score) !!!\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup env\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load model\n    vae = ConsistencyDecoderVAE.from_pretrained(\"openai/consistency-decoder\", torch_dtype=torch.float16).to(\"cuda:{}\".format(device))\n\n    # Create folder to save samples:\n    folder_name = f\"openai-consistencydecoder-{args.dataset}-size-{args.image_size}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    if args.dataset == 'imagenet':\n        dataset = ImageFolder(args.data_path, transform=transform)\n        num_fid_samples = 50000\n    elif args.dataset == 'coco':\n        dataset = SingleFolderDataset(args.data_path, transform=transform)\n        num_fid_samples = 5000\n    else:\n        raise Exception(\"please check dataset\")\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    psnr_val_rgb = []\n    ssim_val_rgb = []\n\n    loader = tqdm(loader) if rank == 0 else loader\n    total = 0\n    for x, _ in loader:\n        rgb_gts = x\n        rgb_gts = (rgb_gts.permute(0, 2, 3, 1).to(\"cpu\").numpy() + 1.0) / 2.0 # rgb_gt value is between [0, 1]\n        x = x.half().to(\"cuda:{}\".format(device))\n        with torch.no_grad():\n            # Map input images to latent space + normalize latents:\n            latent = vae.encode(x).latent_dist.sample().mul_(0.18215)\n            # reconstruct:\n            samples = vae.decode(latent / 0.18215).sample # output value is between [-1, 1]\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        \n        # Save samples to disk as individual .png files\n        for i, (sample, rgb_gt) in enumerate(zip(samples, rgb_gts)):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n            # metric\n            rgb_restored = sample.astype(np.float32) / 255. # rgb_restored value is between [0, 1]\n            psnr = psnr_loss(rgb_restored, rgb_gt)\n            ssim = ssim_loss(rgb_restored, rgb_gt, multichannel=True, data_range=2.0, channel_axis=-1)\n            psnr_val_rgb.append(psnr)\n            ssim_val_rgb.append(ssim)\n        total += global_batch_size\n\n    # ------------------------------------\n    #       Summary\n    # ------------------------------------\n    # Make sure all processes have finished saving their samples\n    dist.barrier()\n    world_size = dist.get_world_size()\n    gather_psnr_val = [None for _ in range(world_size)]\n    gather_ssim_val = [None for _ in range(world_size)]\n    dist.all_gather_object(gather_psnr_val, psnr_val_rgb)\n    dist.all_gather_object(gather_ssim_val, ssim_val_rgb)\n\n    if rank == 0:\n        gather_psnr_val = list(itertools.chain(*gather_psnr_val))\n        gather_ssim_val = list(itertools.chain(*gather_ssim_val))        \n        psnr_val_rgb = sum(gather_psnr_val) / len(gather_psnr_val)\n        ssim_val_rgb = sum(gather_ssim_val) / len(gather_ssim_val)\n        print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb))\n\n        result_file = f\"{sample_folder_dir}_results.txt\"\n        print(\"writing results to {}\".format(result_file))\n        with open(result_file, 'w') as f:\n            print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb), file=f)\n\n        create_npz_from_sample_folder(sample_folder_dir, num_fid_samples)\n        print(\"Done.\")\n    \n    dist.barrier()\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco'], default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512], default=256)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"reconstructions\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=4)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/tokenizer_image/discriminator.py",
    "content": "# Modified from:\n#   taming-transformers:  https://github.com/CompVis/taming-transformers\n#   stylegan2-pytorch:    https://github.com/rosinality/stylegan2-pytorch/blob/master/model.py\n#   maskgit: https://github.com/google-research/maskgit/blob/main/maskgit/nets/discriminator.py\nimport functools\nimport math\nimport torch\nimport torch.nn as nn\ntry:\n    from kornia.filters import filter2d\nexcept:\n    pass\n\n#################################################################################\n#                                    PatchGAN                                   #\n#################################################################################\nclass PatchGANDiscriminator(nn.Module):\n    \"\"\"Defines a PatchGAN discriminator as in Pix2Pix\n        --> see https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/blob/master/models/networks.py\n    \"\"\"\n    def __init__(self, input_nc=3, ndf=64, n_layers=3, use_actnorm=False):\n        \"\"\"Construct a PatchGAN discriminator\n        Parameters:\n            input_nc (int)  -- the number of channels in input images\n            ndf (int)       -- the number of filters in the last conv layer\n            n_layers (int)  -- the number of conv layers in the discriminator\n            norm_layer      -- normalization layer\n        \"\"\"\n        super(PatchGANDiscriminator, self).__init__()\n        if not use_actnorm:\n            norm_layer = nn.BatchNorm2d\n        else:\n            norm_layer = ActNorm\n        if type(norm_layer) == functools.partial:  # no need to use bias as BatchNorm2d has affine parameters\n            use_bias = norm_layer.func != nn.BatchNorm2d\n        else:\n            use_bias = norm_layer != nn.BatchNorm2d\n\n        kw = 4\n        padw = 1\n        sequence = [nn.Conv2d(input_nc, ndf, kernel_size=kw, stride=2, padding=padw), nn.LeakyReLU(0.2, True)]\n        nf_mult = 1\n        nf_mult_prev = 1\n        for n in range(1, n_layers):  # gradually increase the number of filters\n            nf_mult_prev = nf_mult\n            nf_mult = min(2 ** n, 8)\n            sequence += [\n                nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=2, padding=padw, bias=use_bias),\n                norm_layer(ndf * nf_mult),\n                nn.LeakyReLU(0.2, True)\n            ]\n\n        nf_mult_prev = nf_mult\n        nf_mult = min(2 ** n_layers, 8)\n        sequence += [\n            nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=1, padding=padw, bias=use_bias),\n            norm_layer(ndf * nf_mult),\n            nn.LeakyReLU(0.2, True)\n        ]\n\n        sequence += [\n            nn.Conv2d(ndf * nf_mult, 1, kernel_size=kw, stride=1, padding=padw)]  # output 1 channel prediction map\n        self.main = nn.Sequential(*sequence)\n\n        self.apply(self._init_weights)\n    \n    def _init_weights(self, module):    \n        if isinstance(module, nn.Conv2d):\n            nn.init.normal_(module.weight.data, 0.0, 0.02)\n        elif isinstance(module, nn.BatchNorm2d):\n            nn.init.normal_(module.weight.data, 1.0, 0.02)\n            nn.init.constant_(module.bias.data, 0)\n\n    def forward(self, input):\n        \"\"\"Standard forward.\"\"\"\n        return self.main(input)\n\n\nclass ActNorm(nn.Module):\n    def __init__(self, num_features, logdet=False, affine=True,\n                 allow_reverse_init=False):\n        assert affine\n        super().__init__()\n        self.logdet = logdet\n        self.loc = nn.Parameter(torch.zeros(1, num_features, 1, 1))\n        self.scale = nn.Parameter(torch.ones(1, num_features, 1, 1))\n        self.allow_reverse_init = allow_reverse_init\n\n        self.register_buffer('initialized', torch.tensor(0, dtype=torch.uint8))\n\n    def initialize(self, input):\n        with torch.no_grad():\n            flatten = input.permute(1, 0, 2, 3).contiguous().view(input.shape[1], -1)\n            mean = (\n                flatten.mean(1)\n                .unsqueeze(1)\n                .unsqueeze(2)\n                .unsqueeze(3)\n                .permute(1, 0, 2, 3)\n            )\n            std = (\n                flatten.std(1)\n                .unsqueeze(1)\n                .unsqueeze(2)\n                .unsqueeze(3)\n                .permute(1, 0, 2, 3)\n            )\n\n            self.loc.data.copy_(-mean)\n            self.scale.data.copy_(1 / (std + 1e-6))\n\n    def forward(self, input, reverse=False):\n        if reverse:\n            return self.reverse(input)\n        if len(input.shape) == 2:\n            input = input[:,:,None,None]\n            squeeze = True\n        else:\n            squeeze = False\n\n        _, _, height, width = input.shape\n\n        if self.training and self.initialized.item() == 0:\n            self.initialize(input)\n            self.initialized.fill_(1)\n\n        h = self.scale * (input + self.loc)\n\n        if squeeze:\n            h = h.squeeze(-1).squeeze(-1)\n\n        if self.logdet:\n            log_abs = torch.log(torch.abs(self.scale))\n            logdet = height*width*torch.sum(log_abs)\n            logdet = logdet * torch.ones(input.shape[0]).to(input)\n            return h, logdet\n\n        return h\n\n    def reverse(self, output):\n        if self.training and self.initialized.item() == 0:\n            if not self.allow_reverse_init:\n                raise RuntimeError(\n                    \"Initializing ActNorm in reverse direction is \"\n                    \"disabled by default. Use allow_reverse_init=True to enable.\"\n                )\n            else:\n                self.initialize(output)\n                self.initialized.fill_(1)\n\n        if len(output.shape) == 2:\n            output = output[:,:,None,None]\n            squeeze = True\n        else:\n            squeeze = False\n\n        h = output / self.scale - self.loc\n\n        if squeeze:\n            h = h.squeeze(-1).squeeze(-1)\n        return h\n\n\n\n#################################################################################\n#                                    StyleGAN                                   #\n#################################################################################\nclass StyleGANDiscriminator(nn.Module):\n    def __init__(self, input_nc=3, ndf=64, n_layers=3, channel_multiplier=1, image_size=256):\n        super().__init__()\n        channels = {\n            4: 512,\n            8: 512,\n            16: 512,\n            32: 512,\n            64: 256 * channel_multiplier,\n            128: 128 * channel_multiplier,\n            256: 64 * channel_multiplier,\n            512: 32 * channel_multiplier,\n            1024: 16 * channel_multiplier,\n        }\n        \n        log_size = int(math.log(image_size, 2))\n        in_channel = channels[image_size]\n\n        blocks = [nn.Conv2d(input_nc, in_channel, 3, padding=1), leaky_relu()]\n        for i in range(log_size, 2, -1):\n            out_channel = channels[2 ** (i - 1)]\n            blocks.append(DiscriminatorBlock(in_channel, out_channel))\n            in_channel = out_channel\n        self.blocks = nn.ModuleList(blocks)\n\n        self.final_conv = nn.Sequential(\n            nn.Conv2d(in_channel, channels[4], 3, padding=1),\n            leaky_relu(),\n        )\n        self.final_linear = nn.Sequential(\n            nn.Linear(channels[4] * 4 * 4, channels[4]),\n            leaky_relu(),\n            nn.Linear(channels[4], 1)\n        )\n    \n    def forward(self, x):\n        for block in self.blocks:\n            x = block(x)\n        x = self.final_conv(x)\n        x = x.view(x.shape[0], -1)\n        x = self.final_linear(x)\n        return x\n\n\nclass DiscriminatorBlock(nn.Module):\n    def __init__(self, input_channels, filters, downsample=True):\n        super().__init__()\n        self.conv_res = nn.Conv2d(input_channels, filters, 1, stride = (2 if downsample else 1))\n\n        self.net = nn.Sequential(\n            nn.Conv2d(input_channels, filters, 3, padding=1),\n            leaky_relu(),\n            nn.Conv2d(filters, filters, 3, padding=1),\n            leaky_relu()\n        )\n\n        self.downsample = nn.Sequential(\n            Blur(),\n            nn.Conv2d(filters, filters, 3, padding = 1, stride = 2)\n        ) if downsample else None\n\n    def forward(self, x):\n        res = self.conv_res(x)\n        x = self.net(x)\n        if exists(self.downsample):\n            x = self.downsample(x)\n        x = (x + res) * (1 / math.sqrt(2))\n        return x\n\n\nclass Blur(nn.Module):\n    def __init__(self):\n        super().__init__()\n        f = torch.Tensor([1, 2, 1])\n        self.register_buffer('f', f)\n    \n    def forward(self, x):\n        f = self.f\n        f = f[None, None, :] * f [None, :, None]\n        return filter2d(x, f, normalized=True)\n\n\ndef leaky_relu(p=0.2):\n    return nn.LeakyReLU(p, inplace=True)\n\n\ndef exists(val):\n    return val is not None"
  },
  {
    "path": "tokenizer/tokenizer_image/discriminator_patchgan.py",
    "content": "# Modified from:\n#   taming-transformers:  https://github.com/CompVis/taming-transformers\nimport functools\nimport torch\nimport torch.nn as nn\n\n\nclass NLayerDiscriminator(nn.Module):\n    \"\"\"Defines a PatchGAN discriminator as in Pix2Pix\n        --> see https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/blob/master/models/networks.py\n    \"\"\"\n    def __init__(self, input_nc=3, ndf=64, n_layers=3, use_actnorm=False):\n        \"\"\"Construct a PatchGAN discriminator\n        Parameters:\n            input_nc (int)  -- the number of channels in input images\n            ndf (int)       -- the number of filters in the last conv layer\n            n_layers (int)  -- the number of conv layers in the discriminator\n            norm_layer      -- normalization layer\n        \"\"\"\n        super(NLayerDiscriminator, self).__init__()\n        if not use_actnorm:\n            norm_layer = nn.BatchNorm2d\n        else:\n            norm_layer = ActNorm\n        if type(norm_layer) == functools.partial:  # no need to use bias as BatchNorm2d has affine parameters\n            use_bias = norm_layer.func != nn.BatchNorm2d\n        else:\n            use_bias = norm_layer != nn.BatchNorm2d\n\n        kw = 4\n        padw = 1\n        sequence = [nn.Conv2d(input_nc, ndf, kernel_size=kw, stride=2, padding=padw), nn.LeakyReLU(0.2, True)]\n        nf_mult = 1\n        nf_mult_prev = 1\n        for n in range(1, n_layers):  # gradually increase the number of filters\n            nf_mult_prev = nf_mult\n            nf_mult = min(2 ** n, 8)\n            sequence += [\n                nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=2, padding=padw, bias=use_bias),\n                norm_layer(ndf * nf_mult),\n                nn.LeakyReLU(0.2, True)\n            ]\n\n        nf_mult_prev = nf_mult\n        nf_mult = min(2 ** n_layers, 8)\n        sequence += [\n            nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=1, padding=padw, bias=use_bias),\n            norm_layer(ndf * nf_mult),\n            nn.LeakyReLU(0.2, True)\n        ]\n\n        sequence += [\n            nn.Conv2d(ndf * nf_mult, 1, kernel_size=kw, stride=1, padding=padw)]  # output 1 channel prediction map\n        self.main = nn.Sequential(*sequence)\n\n        self.apply(self._init_weights)\n    \n    def _init_weights(self, module):    \n        if isinstance(module, nn.Conv2d):\n            nn.init.normal_(module.weight.data, 0.0, 0.02)\n        elif isinstance(module, nn.BatchNorm2d):\n            nn.init.normal_(module.weight.data, 1.0, 0.02)\n            nn.init.constant_(module.bias.data, 0)\n\n    def forward(self, input):\n        \"\"\"Standard forward.\"\"\"\n        return self.main(input)\n\n\nclass ActNorm(nn.Module):\n    def __init__(self, num_features, logdet=False, affine=True,\n                 allow_reverse_init=False):\n        assert affine\n        super().__init__()\n        self.logdet = logdet\n        self.loc = nn.Parameter(torch.zeros(1, num_features, 1, 1))\n        self.scale = nn.Parameter(torch.ones(1, num_features, 1, 1))\n        self.allow_reverse_init = allow_reverse_init\n\n        self.register_buffer('initialized', torch.tensor(0, dtype=torch.uint8))\n\n    def initialize(self, input):\n        with torch.no_grad():\n            flatten = input.permute(1, 0, 2, 3).contiguous().view(input.shape[1], -1)\n            mean = (\n                flatten.mean(1)\n                .unsqueeze(1)\n                .unsqueeze(2)\n                .unsqueeze(3)\n                .permute(1, 0, 2, 3)\n            )\n            std = (\n                flatten.std(1)\n                .unsqueeze(1)\n                .unsqueeze(2)\n                .unsqueeze(3)\n                .permute(1, 0, 2, 3)\n            )\n\n            self.loc.data.copy_(-mean)\n            self.scale.data.copy_(1 / (std + 1e-6))\n\n    def forward(self, input, reverse=False):\n        if reverse:\n            return self.reverse(input)\n        if len(input.shape) == 2:\n            input = input[:,:,None,None]\n            squeeze = True\n        else:\n            squeeze = False\n\n        _, _, height, width = input.shape\n\n        if self.training and self.initialized.item() == 0:\n            self.initialize(input)\n            self.initialized.fill_(1)\n\n        h = self.scale * (input + self.loc)\n\n        if squeeze:\n            h = h.squeeze(-1).squeeze(-1)\n\n        if self.logdet:\n            log_abs = torch.log(torch.abs(self.scale))\n            logdet = height*width*torch.sum(log_abs)\n            logdet = logdet * torch.ones(input.shape[0]).to(input)\n            return h, logdet\n\n        return h\n\n    def reverse(self, output):\n        if self.training and self.initialized.item() == 0:\n            if not self.allow_reverse_init:\n                raise RuntimeError(\n                    \"Initializing ActNorm in reverse direction is \"\n                    \"disabled by default. Use allow_reverse_init=True to enable.\"\n                )\n            else:\n                self.initialize(output)\n                self.initialized.fill_(1)\n\n        if len(output.shape) == 2:\n            output = output[:,:,None,None]\n            squeeze = True\n        else:\n            squeeze = False\n\n        h = output / self.scale - self.loc\n\n        if squeeze:\n            h = h.squeeze(-1).squeeze(-1)\n        return h"
  },
  {
    "path": "tokenizer/tokenizer_image/discriminator_stylegan.py",
    "content": "# Modified from:\n#   stylegan2-pytorch: https://github.com/lucidrains/stylegan2-pytorch/blob/master/stylegan2_pytorch/stylegan2_pytorch.py\n#   stylegan2-pytorch: https://github.com/rosinality/stylegan2-pytorch/blob/master/model.py\n#   maskgit: https://github.com/google-research/maskgit/blob/main/maskgit/nets/discriminator.py\nimport math\nimport torch\nimport torch.nn as nn\ntry:\n    from kornia.filters import filter2d\nexcept:\n    pass\n\nclass Discriminator(nn.Module):\n    def __init__(self, input_nc=3, ndf=64, n_layers=3, channel_multiplier=1, image_size=256):\n        super().__init__()\n        channels = {\n            4: 512,\n            8: 512,\n            16: 512,\n            32: 512,\n            64: 256 * channel_multiplier,\n            128: 128 * channel_multiplier,\n            256: 64 * channel_multiplier,\n            512: 32 * channel_multiplier,\n            1024: 16 * channel_multiplier,\n        }\n        \n        log_size = int(math.log(image_size, 2))\n        in_channel = channels[image_size]\n\n        blocks = [nn.Conv2d(input_nc, in_channel, 3, padding=1), leaky_relu()]\n        for i in range(log_size, 2, -1):\n            out_channel = channels[2 ** (i - 1)]\n            blocks.append(DiscriminatorBlock(in_channel, out_channel))\n            in_channel = out_channel\n        self.blocks = nn.ModuleList(blocks)\n\n        self.final_conv = nn.Sequential(\n            nn.Conv2d(in_channel, channels[4], 3, padding=1),\n            leaky_relu(),\n        )\n        self.final_linear = nn.Sequential(\n            nn.Linear(channels[4] * 4 * 4, channels[4]),\n            leaky_relu(),\n            nn.Linear(channels[4], 1)\n        )\n    \n    def forward(self, x):\n        for block in self.blocks:\n            x = block(x)\n        x = self.final_conv(x)\n        x = x.view(x.shape[0], -1)\n        x = self.final_linear(x)\n        return x\n\n\nclass DiscriminatorBlock(nn.Module):\n    def __init__(self, input_channels, filters, downsample=True):\n        super().__init__()\n        self.conv_res = nn.Conv2d(input_channels, filters, 1, stride = (2 if downsample else 1))\n\n        self.net = nn.Sequential(\n            nn.Conv2d(input_channels, filters, 3, padding=1),\n            leaky_relu(),\n            nn.Conv2d(filters, filters, 3, padding=1),\n            leaky_relu()\n        )\n\n        self.downsample = nn.Sequential(\n            Blur(),\n            nn.Conv2d(filters, filters, 3, padding = 1, stride = 2)\n        ) if downsample else None\n\n    def forward(self, x):\n        res = self.conv_res(x)\n        x = self.net(x)\n        if exists(self.downsample):\n            x = self.downsample(x)\n        x = (x + res) * (1 / math.sqrt(2))\n        return x\n\n\n\nclass Blur(nn.Module):\n    def __init__(self):\n        super().__init__()\n        f = torch.Tensor([1, 2, 1])\n        self.register_buffer('f', f)\n    \n    def forward(self, x):\n        f = self.f\n        f = f[None, None, :] * f [None, :, None]\n        return filter2d(x, f, normalized=True)\n\n\ndef leaky_relu(p=0.2):\n    return nn.LeakyReLU(p, inplace=True)\n\n\ndef exists(val):\n    return val is not None\n"
  },
  {
    "path": "tokenizer/tokenizer_image/lpips.py",
    "content": "\"\"\"Stripped version of https://github.com/richzhang/PerceptualSimilarity/tree/master/models\"\"\"\n\nimport os, hashlib\nimport requests\nfrom tqdm import tqdm\n\nimport torch\nimport torch.nn as nn\nfrom torchvision import models\nfrom collections import namedtuple\n\nURL_MAP = {\n    \"vgg_lpips\": \"https://heibox.uni-heidelberg.de/f/607503859c864bc1b30b/?dl=1\"\n}\n\nCKPT_MAP = {\n    \"vgg_lpips\": \"vgg.pth\"\n}\n\nMD5_MAP = {\n    \"vgg_lpips\": \"d507d7349b931f0638a25a48a722f98a\"\n}\n\ndef download(url, local_path, chunk_size=1024):\n    os.makedirs(os.path.split(local_path)[0], exist_ok=True)\n    with requests.get(url, stream=True) as r:\n        total_size = int(r.headers.get(\"content-length\", 0))\n        with tqdm(total=total_size, unit=\"B\", unit_scale=True) as pbar:\n            with open(local_path, \"wb\") as f:\n                for data in r.iter_content(chunk_size=chunk_size):\n                    if data:\n                        f.write(data)\n                        pbar.update(chunk_size)\n\n\ndef md5_hash(path):\n    with open(path, \"rb\") as f:\n        content = f.read()\n    return hashlib.md5(content).hexdigest()\n\n\ndef get_ckpt_path(name, root, check=False):\n    assert name in URL_MAP\n    path = os.path.join(root, CKPT_MAP[name])\n    if not os.path.exists(path) or (check and not md5_hash(path) == MD5_MAP[name]):\n        print(\"Downloading {} model from {} to {}\".format(name, URL_MAP[name], path))\n        download(URL_MAP[name], path)\n        md5 = md5_hash(path)\n        assert md5 == MD5_MAP[name], md5\n    return path\n\n\nclass LPIPS(nn.Module):\n    # Learned perceptual metric\n    def __init__(self, use_dropout=True):\n        super().__init__()\n        self.scaling_layer = ScalingLayer()\n        self.chns = [64, 128, 256, 512, 512]  # vg16 features\n        self.net = vgg16(pretrained=True, requires_grad=False)\n        self.lin0 = NetLinLayer(self.chns[0], use_dropout=use_dropout)\n        self.lin1 = NetLinLayer(self.chns[1], use_dropout=use_dropout)\n        self.lin2 = NetLinLayer(self.chns[2], use_dropout=use_dropout)\n        self.lin3 = NetLinLayer(self.chns[3], use_dropout=use_dropout)\n        self.lin4 = NetLinLayer(self.chns[4], use_dropout=use_dropout)\n        self.load_from_pretrained()\n        for param in self.parameters():\n            param.requires_grad = False\n\n    def load_from_pretrained(self, name=\"vgg_lpips\"):\n        ckpt = get_ckpt_path(name, os.path.join(os.path.dirname(os.path.abspath(__file__)), \"cache\"))\n        self.load_state_dict(torch.load(ckpt, map_location=torch.device(\"cpu\")), strict=False)\n        print(\"loaded pretrained LPIPS loss from {}\".format(ckpt))\n\n    @classmethod\n    def from_pretrained(cls, name=\"vgg_lpips\"):\n        if name != \"vgg_lpips\":\n            raise NotImplementedError\n        model = cls()\n        ckpt = get_ckpt_path(name, os.path.join(os.path.dirname(os.path.abspath(__file__)), \"cache\"))\n        model.load_state_dict(torch.load(ckpt, map_location=torch.device(\"cpu\")), strict=False)\n        return model\n\n    def forward(self, input, target):\n        in0_input, in1_input = (self.scaling_layer(input), self.scaling_layer(target))\n        outs0, outs1 = self.net(in0_input), self.net(in1_input)\n        feats0, feats1, diffs = {}, {}, {}\n        lins = [self.lin0, self.lin1, self.lin2, self.lin3, self.lin4]\n        for kk in range(len(self.chns)):\n            feats0[kk], feats1[kk] = normalize_tensor(outs0[kk]), normalize_tensor(outs1[kk])\n            diffs[kk] = (feats0[kk] - feats1[kk]) ** 2\n\n        res = [spatial_average(lins[kk].model(diffs[kk]), keepdim=True) for kk in range(len(self.chns))]\n        val = res[0]\n        for l in range(1, len(self.chns)):\n            val += res[l]\n        return val\n\n\nclass ScalingLayer(nn.Module):\n    def __init__(self):\n        super(ScalingLayer, self).__init__()\n        self.register_buffer('shift', torch.Tensor([-.030, -.088, -.188])[None, :, None, None])\n        self.register_buffer('scale', torch.Tensor([.458, .448, .450])[None, :, None, None])\n\n    def forward(self, inp):\n        return (inp - self.shift) / self.scale\n\n\nclass NetLinLayer(nn.Module):\n    \"\"\" A single linear layer which does a 1x1 conv \"\"\"\n    def __init__(self, chn_in, chn_out=1, use_dropout=False):\n        super(NetLinLayer, self).__init__()\n        layers = [nn.Dropout(), ] if (use_dropout) else []\n        layers += [nn.Conv2d(chn_in, chn_out, 1, stride=1, padding=0, bias=False), ]\n        self.model = nn.Sequential(*layers)\n\n\nclass vgg16(torch.nn.Module):\n    def __init__(self, requires_grad=False, pretrained=True):\n        super(vgg16, self).__init__()\n        vgg_pretrained_features = models.vgg16(pretrained=pretrained).features\n        self.slice1 = torch.nn.Sequential()\n        self.slice2 = torch.nn.Sequential()\n        self.slice3 = torch.nn.Sequential()\n        self.slice4 = torch.nn.Sequential()\n        self.slice5 = torch.nn.Sequential()\n        self.N_slices = 5\n        for x in range(4):\n            self.slice1.add_module(str(x), vgg_pretrained_features[x])\n        for x in range(4, 9):\n            self.slice2.add_module(str(x), vgg_pretrained_features[x])\n        for x in range(9, 16):\n            self.slice3.add_module(str(x), vgg_pretrained_features[x])\n        for x in range(16, 23):\n            self.slice4.add_module(str(x), vgg_pretrained_features[x])\n        for x in range(23, 30):\n            self.slice5.add_module(str(x), vgg_pretrained_features[x])\n        if not requires_grad:\n            for param in self.parameters():\n                param.requires_grad = False\n\n    def forward(self, X):\n        h = self.slice1(X)\n        h_relu1_2 = h\n        h = self.slice2(h)\n        h_relu2_2 = h\n        h = self.slice3(h)\n        h_relu3_3 = h\n        h = self.slice4(h)\n        h_relu4_3 = h\n        h = self.slice5(h)\n        h_relu5_3 = h\n        vgg_outputs = namedtuple(\"VggOutputs\", ['relu1_2', 'relu2_2', 'relu3_3', 'relu4_3', 'relu5_3'])\n        out = vgg_outputs(h_relu1_2, h_relu2_2, h_relu3_3, h_relu4_3, h_relu5_3)\n        return out\n\n\ndef normalize_tensor(x,eps=1e-10):\n    norm_factor = torch.sqrt(torch.sum(x**2,dim=1,keepdim=True))\n    return x/(norm_factor+eps)\n\n\ndef spatial_average(x, keepdim=True):\n    return x.mean([2,3],keepdim=keepdim)"
  },
  {
    "path": "tokenizer/tokenizer_image/reconstruction_vq_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.nn.functional as F\nimport torch.distributed as dist\nfrom torch.utils.data import DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision import transforms\nfrom tqdm import tqdm\nimport os\nfrom PIL import Image\nimport numpy as np\nimport argparse\nimport itertools\n\nfrom skimage.metrics import peak_signal_noise_ratio as psnr_loss\nfrom skimage.metrics import structural_similarity as ssim_loss\nfrom dataset.augmentation import center_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\n\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    if \"ema\" in checkpoint:  # ema\n        model_weight = checkpoint[\"ema\"]\n    elif \"model\" in checkpoint:  # ddp\n        model_weight = checkpoint[\"model\"]\n    elif \"state_dict\" in checkpoint:\n        model_weight = checkpoint[\"state_dict\"]\n    else:\n        raise Exception(\"please check model weight\")\n    vq_model.load_state_dict(model_weight)\n    del checkpoint\n\n    # Create folder to save samples:\n    folder_name = (f\"{args.vq_model}-{args.dataset}-size-{args.image_size}-size-{args.image_size_eval}\"\n                  f\"-codebook-size-{args.codebook_size}-dim-{args.codebook_embed_dim}-seed-{args.global_seed}\")\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n\n    if args.dataset == 'imagenet':\n        dataset = build_dataset(args, transform=transform)\n        num_fid_samples = 50000\n    elif args.dataset == 'coco':\n        dataset = build_dataset(args, transform=transform)\n        num_fid_samples = 5000\n    elif args.dataset == 'imagenet_code':\n        dataset = build_dataset(args)\n        num_fid_samples = 50000\n    else:\n        raise Exception(\"please check dataset\")\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    \n    psnr_val_rgb = []\n    ssim_val_rgb = []\n    loader = tqdm(loader) if rank == 0 else loader\n    total = 0\n    # for x, _ in loader:\n    for batch in loader:\n        x = batch['condition_imgs'].repeat(1,3,1,1)\n        # import pdb \n        # pdb.set_trace()\n        if args.image_size_eval != args.image_size:\n            rgb_gts = F.interpolate(x, size=(args.image_size_eval, args.image_size_eval), mode='bicubic')\n        else:\n            rgb_gts = x\n        rgb_gts = (rgb_gts.permute(0, 2, 3, 1).to(\"cpu\").numpy() + 1.0) / 2.0 # rgb_gt value is between [0, 1]\n        x = x.to(device, non_blocking=True)\n        with torch.no_grad():\n            latent, _, [_, _, indices] = vq_model.encode(x.float())\n            import pdb;pdb.set_trace()\n            samples = vq_model.decode_code(indices, latent.shape) # output value is between [-1, 1]\n            if args.image_size_eval != args.image_size:\n                samples = F.interpolate(samples, size=(args.image_size_eval, args.image_size_eval), mode='bicubic')\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n\n        # Save samples to disk as individual .png files\n        for i, (sample, rgb_gt) in enumerate(zip(samples, rgb_gts)):\n            index = i * dist.get_world_size() + rank + total\n            # Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n            # metric\n            rgb_restored = sample.astype(np.float32) / 255. # rgb_restored value is between [0, 1]\n            psnr = psnr_loss(rgb_restored, rgb_gt)\n            ssim = ssim_loss(rgb_restored, rgb_gt, multichannel=True, data_range=2.0, channel_axis=-1)\n            psnr_val_rgb.append(psnr)\n            ssim_val_rgb.append(ssim)\n            \n        total += global_batch_size\n\n    # ------------------------------------\n    #       Summary\n    # ------------------------------------\n    # Make sure all processes have finished saving their samples\n    dist.barrier()\n    world_size = dist.get_world_size()\n    gather_psnr_val = [None for _ in range(world_size)]\n    gather_ssim_val = [None for _ in range(world_size)]\n    dist.all_gather_object(gather_psnr_val, psnr_val_rgb)\n    dist.all_gather_object(gather_ssim_val, ssim_val_rgb)\n\n    if rank == 0:\n        gather_psnr_val = list(itertools.chain(*gather_psnr_val))\n        gather_ssim_val = list(itertools.chain(*gather_ssim_val))        \n        psnr_val_rgb = sum(gather_psnr_val) / len(gather_psnr_val)\n        ssim_val_rgb = sum(gather_ssim_val) / len(gather_ssim_val)\n        print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb))\n\n        result_file = f\"{sample_folder_dir}_results.txt\"\n        print(\"writing results to {}\".format(result_file))\n        with open(result_file, 'w') as f:\n            print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb), file=f)\n\n        create_npz_from_sample_folder(sample_folder_dir, num_fid_samples)\n        print(\"Done.\")\n    \n    dist.barrier()\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, default=None)\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco', 'imagenet_code'], default='imagenet')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--image-size-eval\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"reconstructions\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=4)\n    parser.add_argument(\"--condition\", type=str, choices=['canny', 'hed'], default='canny')\n    parser.add_argument(\"--get-condition-img\", type=bool, default=False)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/tokenizer_image/vq_demo.py",
    "content": "import torch\nimport torch.nn.functional as F\n\nimport os\nimport argparse\nimport numpy as np\nfrom PIL import Image\n\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom dataset.augmentation import center_crop_arr\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n    \n    # create and load model\n    model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    model.to(device)\n    model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    if \"ema\" in checkpoint:  # ema\n        model_weight = checkpoint[\"ema\"]\n    elif \"model\" in checkpoint:  # ddp\n        model_weight = checkpoint[\"model\"]\n    elif \"state_dict\" in checkpoint:\n        model_weight = checkpoint[\"state_dict\"]\n    else:\n        raise Exception(\"please check model weight\")\n    model.load_state_dict(model_weight)\n    del checkpoint\n\n    # output dir\n    os.makedirs(args.output_dir, exist_ok=True)\n    out_path = args.image_path.replace('.jpg', '_{}.jpg'.format(args.suffix))\n    out_path = out_path.replace('.jpeg', '_{}.jpeg'.format(args.suffix))\n    out_path = out_path.replace('.png', '_{}.png'.format(args.suffix))\n    out_filename = out_path.split('/')[-1]\n    out_path = os.path.join(args.output_dir, out_filename)\n    \n    # load image\n    pil_image = Image.open(args.image_path).convert(\"RGB\")\n    img = center_crop_arr(pil_image, args.image_size)\n    # # preprocess\n    # size_org = img.size\n    # img = img.resize((input_size, input_size))\n    img = np.array(img) / 255.\n    x = 2.0 * img - 1.0 # x value is between [-1, 1]\n    x = torch.tensor(x)\n    x = x.unsqueeze(dim=0)\n    x = torch.einsum('nhwc->nchw', x)\n    x_input = x.float().to(\"cuda\")\n\n    # inference\n    with torch.no_grad():\n        latent, _, [_, _, indices] = model.encode(x_input)\n        output = model.decode_code(indices, latent.shape) # output value is between [-1, 1]\n\n    # postprocess\n    output = F.interpolate(output, size=[args.image_size, args.image_size], mode='bicubic').permute(0, 2, 3, 1)[0]\n    sample = torch.clamp(127.5 * output + 128.0, 0, 255).to(\"cpu\", dtype=torch.uint8).numpy()\n\n    # save        \n    Image.fromarray(sample).save(out_path)\n    print(\"Reconstructed image is saved to {}\".format(out_path))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--image-path\", type=str, default=\"assets/example.jpg\")\n    parser.add_argument(\"--output-dir\", type=str, default=\"output_vq_demo\")\n    parser.add_argument(\"--suffix\", type=str, default=\"tokenizer_image\")\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512, 1024], default=512)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/tokenizer_image/vq_loss.py",
    "content": "# Modified from:\n#   taming-transformers:  https://github.com/CompVis/taming-transformers\n#   muse-maskgit-pytorch: https://github.com/lucidrains/muse-maskgit-pytorch/blob/main/muse_maskgit_pytorch/vqgan_vae.py\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom tokenizer.tokenizer_image.lpips import LPIPS\nfrom tokenizer.tokenizer_image.discriminator_patchgan import NLayerDiscriminator as PatchGANDiscriminator\nfrom tokenizer.tokenizer_image.discriminator_stylegan import Discriminator as StyleGANDiscriminator\n\n\n\ndef hinge_d_loss(logits_real, logits_fake):\n    loss_real = torch.mean(F.relu(1. - logits_real))\n    loss_fake = torch.mean(F.relu(1. + logits_fake))\n    d_loss = 0.5 * (loss_real + loss_fake)\n    return d_loss\n\n\ndef vanilla_d_loss(logits_real, logits_fake):\n    loss_real = torch.mean(F.softplus(-logits_real))\n    loss_fake = torch.mean(F.softplus(logits_fake))\n    d_loss = 0.5 * (loss_real + loss_fake)\n    return d_loss\n\n\ndef non_saturating_d_loss(logits_real, logits_fake):\n    loss_real = torch.mean(F.binary_cross_entropy_with_logits(torch.ones_like(logits_real),  logits_real))\n    loss_fake = torch.mean(F.binary_cross_entropy_with_logits(torch.zeros_like(logits_fake), logits_fake))\n    d_loss = 0.5 * (loss_real + loss_fake)\n    return d_loss\n\n\ndef hinge_gen_loss(logit_fake):\n    return -torch.mean(logit_fake)\n\n\ndef non_saturating_gen_loss(logit_fake):\n    return torch.mean(F.binary_cross_entropy_with_logits(torch.ones_like(logit_fake),  logit_fake))\n\n\ndef adopt_weight(weight, global_step, threshold=0, value=0.):\n    if global_step < threshold:\n        weight = value\n    return weight\n\n\nclass VQLoss(nn.Module):\n    def __init__(self, disc_start, disc_loss=\"hinge\", disc_dim=64, disc_type='patchgan', image_size=256,\n                 disc_num_layers=3, disc_in_channels=3, disc_weight=1.0, disc_adaptive_weight = False,\n                 gen_adv_loss='hinge', reconstruction_loss='l2', reconstruction_weight=1.0, \n                 codebook_weight=1.0, perceptual_weight=1.0, \n    ):\n        super().__init__()\n        # discriminator loss\n        assert disc_type in [\"patchgan\", \"stylegan\"]\n        assert disc_loss in [\"hinge\", \"vanilla\", \"non-saturating\"]\n        if disc_type == \"patchgan\":\n            self.discriminator = PatchGANDiscriminator(\n                input_nc=disc_in_channels, \n                n_layers=disc_num_layers,\n                ndf=disc_dim,\n            )\n        elif disc_type == \"stylegan\":\n            self.discriminator = StyleGANDiscriminator(\n                input_nc=disc_in_channels, \n                image_size=image_size,\n            )\n        else:\n            raise ValueError(f\"Unknown GAN discriminator type '{disc_type}'.\")\n        if disc_loss == \"hinge\":\n            self.disc_loss = hinge_d_loss\n        elif disc_loss == \"vanilla\":\n            self.disc_loss = vanilla_d_loss\n        elif disc_loss == \"non-saturating\":\n            self.disc_loss = non_saturating_d_loss\n        else:\n            raise ValueError(f\"Unknown GAN discriminator loss '{disc_loss}'.\")\n        self.discriminator_iter_start = disc_start\n        self.disc_weight = disc_weight\n        self.disc_adaptive_weight = disc_adaptive_weight\n\n        assert gen_adv_loss in [\"hinge\", \"non-saturating\"]\n        # gen_adv_loss\n        if gen_adv_loss == \"hinge\":\n            self.gen_adv_loss = hinge_gen_loss\n        elif gen_adv_loss == \"non-saturating\":\n            self.gen_adv_loss = non_saturating_gen_loss\n        else:\n            raise ValueError(f\"Unknown GAN generator loss '{gen_adv_loss}'.\")\n\n        # perceptual loss\n        self.perceptual_loss = LPIPS().eval()\n        self.perceptual_weight = perceptual_weight\n\n        # reconstruction loss\n        if reconstruction_loss == \"l1\":\n            self.rec_loss = F.l1_loss\n        elif reconstruction_loss == \"l2\":\n            self.rec_loss = F.mse_loss\n        else:\n            raise ValueError(f\"Unknown rec loss '{reconstruction_loss}'.\")\n        self.rec_weight = reconstruction_weight\n\n        # codebook loss\n        self.codebook_weight = codebook_weight\n\n    def calculate_adaptive_weight(self, nll_loss, g_loss, last_layer):\n        nll_grads = torch.autograd.grad(nll_loss, last_layer, retain_graph=True)[0]\n        g_grads = torch.autograd.grad(g_loss, last_layer, retain_graph=True)[0]\n\n        d_weight = torch.norm(nll_grads) / (torch.norm(g_grads) + 1e-4)\n        d_weight = torch.clamp(d_weight, 0.0, 1e4).detach()\n        return d_weight.detach()\n\n    def forward(self, codebook_loss, inputs, reconstructions, optimizer_idx, global_step, last_layer=None, \n                logger=None, log_every=100):\n        # generator update\n        if optimizer_idx == 0:\n            # reconstruction loss\n            rec_loss = self.rec_loss(inputs.contiguous(), reconstructions.contiguous())\n\n            # perceptual loss\n            p_loss = self.perceptual_loss(inputs.contiguous(), reconstructions.contiguous())\n            p_loss = torch.mean(p_loss)\n\n            # discriminator loss\n            logits_fake = self.discriminator(reconstructions.contiguous())\n            generator_adv_loss = self.gen_adv_loss(logits_fake)\n            \n            if self.disc_adaptive_weight:\n                null_loss = self.rec_weight * rec_loss + self.perceptual_weight * p_loss\n                disc_adaptive_weight = self.calculate_adaptive_weight(null_loss, generator_adv_loss, last_layer=last_layer)\n            else:\n                disc_adaptive_weight = 1\n            disc_weight = adopt_weight(self.disc_weight, global_step, threshold=self.discriminator_iter_start)\n            \n            loss = self.rec_weight * rec_loss + \\\n                self.perceptual_weight * p_loss + \\\n                disc_adaptive_weight * disc_weight * generator_adv_loss + \\\n                codebook_loss[0] + codebook_loss[1] + codebook_loss[2]\n            \n            if global_step % log_every == 0:\n                rec_loss = self.rec_weight * rec_loss\n                p_loss = self.perceptual_weight * p_loss\n                generator_adv_loss = disc_adaptive_weight * disc_weight * generator_adv_loss\n                logger.info(f\"(Generator) rec_loss: {rec_loss:.4f}, perceptual_loss: {p_loss:.4f}, \"\n                            f\"vq_loss: {codebook_loss[0]:.4f}, commit_loss: {codebook_loss[1]:.4f}, entropy_loss: {codebook_loss[2]:.4f}, \"\n                            f\"codebook_usage: {codebook_loss[3]:.4f}, generator_adv_loss: {generator_adv_loss:.4f}, \"\n                            f\"disc_adaptive_weight: {disc_adaptive_weight:.4f}, disc_weight: {disc_weight:.4f}\")\n            return loss\n\n        # discriminator update\n        if optimizer_idx == 1:\n            logits_real = self.discriminator(inputs.contiguous().detach())\n            logits_fake = self.discriminator(reconstructions.contiguous().detach())\n\n            disc_weight = adopt_weight(self.disc_weight, global_step, threshold=self.discriminator_iter_start)\n            d_adversarial_loss = disc_weight * self.disc_loss(logits_real, logits_fake)\n            \n            if global_step % log_every == 0:\n                logits_real = logits_real.detach().mean()\n                logits_fake = logits_fake.detach().mean()\n                logger.info(f\"(Discriminator) \" \n                            f\"discriminator_adv_loss: {d_adversarial_loss:.4f}, disc_weight: {disc_weight:.4f}, \"\n                            f\"logits_real: {logits_real:.4f}, logits_fake: {logits_fake:.4f}\")\n            return d_adversarial_loss"
  },
  {
    "path": "tokenizer/tokenizer_image/vq_model.py",
    "content": "# Modified from:\n#   taming-transformers: https://github.com/CompVis/taming-transformers\n#   maskgit: https://github.com/google-research/maskgit\nfrom dataclasses import dataclass, field\nfrom typing import List\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\n@dataclass\nclass ModelArgs:\n    codebook_size: int = 16384\n    codebook_embed_dim: int = 8\n    codebook_l2_norm: bool = True\n    codebook_show_usage: bool = True\n    commit_loss_beta: float = 0.25\n    entropy_loss_ratio: float = 0.0\n    \n    encoder_ch_mult: List[int] = field(default_factory=lambda: [1, 1, 2, 2, 4])\n    decoder_ch_mult: List[int] = field(default_factory=lambda: [1, 1, 2, 2, 4])\n    z_channels: int = 256\n    dropout_p: float = 0.0\n\n\n\nclass VQModel(nn.Module):\n    def __init__(self, config: ModelArgs):\n        super().__init__()\n        self.config = config\n        self.encoder = Encoder(ch_mult=config.encoder_ch_mult, z_channels=config.z_channels, dropout=config.dropout_p)\n        self.decoder = Decoder(ch_mult=config.decoder_ch_mult, z_channels=config.z_channels, dropout=config.dropout_p)\n\n        self.quantize = VectorQuantizer(config.codebook_size, config.codebook_embed_dim, \n                                        config.commit_loss_beta, config.entropy_loss_ratio,\n                                        config.codebook_l2_norm, config.codebook_show_usage)\n        self.quant_conv = nn.Conv2d(config.z_channels, config.codebook_embed_dim, 1)\n        self.post_quant_conv = nn.Conv2d(config.codebook_embed_dim, config.z_channels, 1)\n\n    def encode(self, x):\n        #import pdb; pdb.set_trace()\n        h = self.encoder(x)\n        h = self.quant_conv(h)\n        quant, emb_loss, info = self.quantize(h)\n        return quant, emb_loss, info\n\n    def decode(self, quant):\n        quant = self.post_quant_conv(quant)\n        dec = self.decoder(quant)\n        return dec\n\n    def decode_code(self, code_b, shape=None, channel_first=True):\n        quant_b = self.quantize.get_codebook_entry(code_b, shape, channel_first)\n        dec = self.decode(quant_b)\n        return dec\n\n    def forward(self, input):\n        quant, diff, _ = self.encode(input)\n        dec = self.decode(quant)\n        return dec, diff\n\n\n\nclass Encoder(nn.Module):\n    def __init__(self, in_channels=3, ch=128, ch_mult=(1,1,2,2,4), num_res_blocks=2, \n                 norm_type='group', dropout=0.0, resamp_with_conv=True, z_channels=256):\n        super().__init__()\n        self.num_resolutions = len(ch_mult)\n        self.num_res_blocks = num_res_blocks\n        self.conv_in = nn.Conv2d(in_channels, ch, kernel_size=3, stride=1, padding=1)\n\n        # downsampling\n        in_ch_mult = (1,) + tuple(ch_mult)\n        self.conv_blocks = nn.ModuleList()\n        for i_level in range(self.num_resolutions):\n            conv_block = nn.Module()\n            # res & attn\n            res_block = nn.ModuleList()\n            attn_block = nn.ModuleList()\n            block_in = ch*in_ch_mult[i_level]\n            block_out = ch*ch_mult[i_level]\n            for _ in range(self.num_res_blocks):\n                res_block.append(ResnetBlock(block_in, block_out, dropout=dropout, norm_type=norm_type))\n                block_in = block_out\n                if i_level == self.num_resolutions - 1:\n                    attn_block.append(AttnBlock(block_in, norm_type))\n            conv_block.res = res_block\n            conv_block.attn = attn_block\n            # downsample\n            if i_level != self.num_resolutions-1:\n                conv_block.downsample = Downsample(block_in, resamp_with_conv)\n            self.conv_blocks.append(conv_block)\n\n        # middle\n        self.mid = nn.ModuleList()\n        self.mid.append(ResnetBlock(block_in, block_in, dropout=dropout, norm_type=norm_type))\n        self.mid.append(AttnBlock(block_in, norm_type=norm_type))\n        self.mid.append(ResnetBlock(block_in, block_in, dropout=dropout, norm_type=norm_type))\n\n        # end\n        self.norm_out = Normalize(block_in, norm_type)\n        self.conv_out = nn.Conv2d(block_in, z_channels, kernel_size=3, stride=1, padding=1)\n\n\n    def forward(self, x):\n        h = self.conv_in(x)\n        # downsampling\n        for i_level, block in enumerate(self.conv_blocks):\n            for i_block in range(self.num_res_blocks):\n                h = block.res[i_block](h)\n                if len(block.attn) > 0:\n                    h = block.attn[i_block](h)\n            if i_level != self.num_resolutions - 1:\n                h = block.downsample(h)\n        \n        # middle\n        for mid_block in self.mid:\n            h = mid_block(h)\n        \n        # end\n        h = self.norm_out(h)\n        h = nonlinearity(h)\n        h = self.conv_out(h)\n        return h\n\n\n\nclass Decoder(nn.Module):\n    def __init__(self, z_channels=256, ch=128, ch_mult=(1,1,2,2,4), num_res_blocks=2, norm_type=\"group\",\n                 dropout=0.0, resamp_with_conv=True, out_channels=3):\n        super().__init__()\n        self.num_resolutions = len(ch_mult)\n        self.num_res_blocks = num_res_blocks\n\n        block_in = ch*ch_mult[self.num_resolutions-1]\n        # z to block_in\n        self.conv_in = nn.Conv2d(z_channels, block_in, kernel_size=3, stride=1, padding=1)\n\n       # middle\n        self.mid = nn.ModuleList()\n        self.mid.append(ResnetBlock(block_in, block_in, dropout=dropout, norm_type=norm_type))\n        self.mid.append(AttnBlock(block_in, norm_type=norm_type))\n        self.mid.append(ResnetBlock(block_in, block_in, dropout=dropout, norm_type=norm_type))\n\n        # upsampling\n        self.conv_blocks = nn.ModuleList()\n        for i_level in reversed(range(self.num_resolutions)):\n            conv_block = nn.Module()\n            # res & attn\n            res_block = nn.ModuleList()\n            attn_block = nn.ModuleList()\n            block_out = ch*ch_mult[i_level]\n            for _ in range(self.num_res_blocks + 1):\n                res_block.append(ResnetBlock(block_in, block_out, dropout=dropout, norm_type=norm_type))\n                block_in = block_out\n                if i_level == self.num_resolutions - 1:\n                    attn_block.append(AttnBlock(block_in, norm_type))\n            conv_block.res = res_block\n            conv_block.attn = attn_block\n            # downsample\n            if i_level != 0:\n                conv_block.upsample = Upsample(block_in, resamp_with_conv)\n            self.conv_blocks.append(conv_block)\n\n        # end\n        self.norm_out = Normalize(block_in, norm_type)\n        self.conv_out = nn.Conv2d(block_in, out_channels, kernel_size=3, stride=1, padding=1)\n\n    @property\n    def last_layer(self):\n        return self.conv_out.weight\n    \n    def forward(self, z):\n        # z to block_in\n        h = self.conv_in(z)\n\n        # middle\n        for mid_block in self.mid:\n            h = mid_block(h)\n        \n        # upsampling\n        for i_level, block in enumerate(self.conv_blocks):\n            for i_block in range(self.num_res_blocks + 1):\n                h = block.res[i_block](h)\n                if len(block.attn) > 0:\n                    h = block.attn[i_block](h)\n            if i_level != self.num_resolutions - 1:\n                h = block.upsample(h)\n\n        # end\n        h = self.norm_out(h)\n        h = nonlinearity(h)\n        h = self.conv_out(h)\n        return h\n\n\nclass VectorQuantizer(nn.Module):\n    def __init__(self, n_e, e_dim, beta, entropy_loss_ratio, l2_norm, show_usage):\n        super().__init__()\n        self.n_e = n_e\n        self.e_dim = e_dim\n        self.beta = beta\n        self.entropy_loss_ratio = entropy_loss_ratio\n        self.l2_norm = l2_norm\n        self.show_usage = show_usage\n\n        self.embedding = nn.Embedding(self.n_e, self.e_dim)\n        self.embedding.weight.data.uniform_(-1.0 / self.n_e, 1.0 / self.n_e)\n        if self.l2_norm:\n            self.embedding.weight.data = F.normalize(self.embedding.weight.data, p=2, dim=-1)\n        if self.show_usage:\n            self.register_buffer(\"codebook_used\", nn.Parameter(torch.zeros(65536)))\n\n    \n    def forward(self, z):\n        # reshape z -> (batch, height, width, channel) and flatten\n        z = torch.einsum('b c h w -> b h w c', z).contiguous()\n        z_flattened = z.view(-1, self.e_dim)\n        # distances from z to embeddings e_j (z - e)^2 = z^2 + e^2 - 2 e * z\n\n        if self.l2_norm:\n            z = F.normalize(z, p=2, dim=-1)\n            z_flattened = F.normalize(z_flattened, p=2, dim=-1)\n            embedding = F.normalize(self.embedding.weight, p=2, dim=-1)\n        else:\n            embedding = self.embedding.weight\n\n        d = torch.sum(z_flattened ** 2, dim=1, keepdim=True) + \\\n            torch.sum(embedding**2, dim=1) - 2 * \\\n            torch.einsum('bd,dn->bn', z_flattened, torch.einsum('n d -> d n', embedding))\n\n        min_encoding_indices = torch.argmin(d, dim=1)\n        z_q = embedding[min_encoding_indices].view(z.shape)\n        perplexity = None\n        min_encodings = None\n        vq_loss = None\n        commit_loss = None\n        entropy_loss = None\n        codebook_usage = 0\n\n        if self.show_usage and self.training:\n            cur_len = min_encoding_indices.shape[0]\n            self.codebook_used[:-cur_len] = self.codebook_used[cur_len:].clone()\n            self.codebook_used[-cur_len:] = min_encoding_indices\n            codebook_usage = len(torch.unique(self.codebook_used)) / self.n_e\n\n        # compute loss for embedding\n        if self.training:\n            vq_loss = torch.mean((z_q - z.detach()) ** 2) \n            commit_loss = self.beta * torch.mean((z_q.detach() - z) ** 2) \n            entropy_loss = self.entropy_loss_ratio * compute_entropy_loss(-d)\n\n        # preserve gradients\n        z_q = z + (z_q - z).detach()\n\n        # reshape back to match original input shape\n        z_q = torch.einsum('b h w c -> b c h w', z_q)\n\n        return z_q, (vq_loss, commit_loss, entropy_loss, codebook_usage), (perplexity, min_encodings, min_encoding_indices)\n\n    def get_codebook_entry(self, indices, shape=None, channel_first=True):\n        # shape = (batch, channel, height, width) if channel_first else (batch, height, width, channel)\n        if self.l2_norm:\n            embedding = F.normalize(self.embedding.weight, p=2, dim=-1)\n        else:\n            embedding = self.embedding.weight\n        z_q = embedding[indices]  # (b*h*w, c)\n\n        if shape is not None:\n            if channel_first:\n                z_q = z_q.reshape(shape[0], shape[2], shape[3], shape[1])\n                # reshape back to match original input shape\n                z_q = z_q.permute(0, 3, 1, 2).contiguous()\n            else:\n                z_q = z_q.view(shape)\n        return z_q\n\n\nclass ResnetBlock(nn.Module):\n    def __init__(self, in_channels, out_channels=None, conv_shortcut=False, dropout=0.0, norm_type='group'):\n        super().__init__()\n        self.in_channels = in_channels\n        out_channels = in_channels if out_channels is None else out_channels\n        self.out_channels = out_channels\n        self.use_conv_shortcut = conv_shortcut\n\n        self.norm1 = Normalize(in_channels, norm_type)\n        self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=1, padding=1)\n        self.norm2 = Normalize(out_channels, norm_type)\n        self.dropout = nn.Dropout(dropout)\n        self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, stride=1, padding=1)\n\n        if self.in_channels != self.out_channels:\n            if self.use_conv_shortcut:\n                self.conv_shortcut = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=1, padding=1)\n            else:\n                self.nin_shortcut = nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=1, padding=0)\n\n    def forward(self, x):\n        h = x\n        h = self.norm1(h)\n        h = nonlinearity(h)\n        h = self.conv1(h)\n        h = self.norm2(h)\n        h = nonlinearity(h)\n        h = self.dropout(h)\n        h = self.conv2(h)\n\n        if self.in_channels != self.out_channels:\n            if self.use_conv_shortcut:\n                x = self.conv_shortcut(x)\n            else:\n                x = self.nin_shortcut(x)\n        return x+h\n\n\nclass AttnBlock(nn.Module):\n    def __init__(self, in_channels, norm_type='group'):\n        super().__init__()\n        self.norm = Normalize(in_channels, norm_type)\n        self.q = nn.Conv2d(in_channels, in_channels, kernel_size=1, stride=1, padding=0)\n        self.k = nn.Conv2d(in_channels, in_channels, kernel_size=1, stride=1, padding=0)\n        self.v = nn.Conv2d(in_channels, in_channels, kernel_size=1, stride=1, padding=0)\n        self.proj_out = nn.Conv2d(in_channels, in_channels, kernel_size=1, stride=1, padding=0)\n\n\n    def forward(self, x):\n        h_ = x\n        h_ = self.norm(h_)\n        q = self.q(h_)\n        k = self.k(h_)\n        v = self.v(h_)\n\n        # compute attention\n        b,c,h,w = q.shape\n        q = q.reshape(b,c,h*w)\n        q = q.permute(0,2,1)   # b,hw,c\n        k = k.reshape(b,c,h*w) # b,c,hw\n        w_ = torch.bmm(q,k)     # b,hw,hw    w[b,i,j]=sum_c q[b,i,c]k[b,c,j]\n        w_ = w_ * (int(c)**(-0.5))\n        w_ = F.softmax(w_, dim=2)\n\n        # attend to values\n        v = v.reshape(b,c,h*w)\n        w_ = w_.permute(0,2,1)   # b,hw,hw (first hw of k, second of q)\n        h_ = torch.bmm(v,w_)     # b, c,hw (hw of q) h_[b,c,j] = sum_i v[b,c,i] w_[b,i,j]\n        h_ = h_.reshape(b,c,h,w)\n\n        h_ = self.proj_out(h_)\n\n        return x+h_\n\n\ndef nonlinearity(x):\n    # swish\n    return x*torch.sigmoid(x)\n\n\ndef Normalize(in_channels, norm_type='group'):\n    assert norm_type in ['group', 'batch']\n    if norm_type == 'group':\n        return nn.GroupNorm(num_groups=32, num_channels=in_channels, eps=1e-6, affine=True)\n    elif norm_type == 'batch':\n        return nn.SyncBatchNorm(in_channels)\n\n\nclass Upsample(nn.Module):\n    def __init__(self, in_channels, with_conv):\n        super().__init__()\n        self.with_conv = with_conv\n        if self.with_conv:\n            self.conv = nn.Conv2d(in_channels, in_channels, kernel_size=3, stride=1, padding=1)\n\n    def forward(self, x):\n        x = F.interpolate(x, scale_factor=2.0, mode=\"nearest\")\n        if self.with_conv:\n            x = self.conv(x)\n        return x\n\n\nclass Downsample(nn.Module):\n    def __init__(self, in_channels, with_conv):\n        super().__init__()\n        self.with_conv = with_conv\n        if self.with_conv:\n            # no asymmetric padding in torch conv, must do it ourselves\n            self.conv = nn.Conv2d(in_channels, in_channels, kernel_size=3, stride=2, padding=0)\n\n    def forward(self, x):\n        if self.with_conv:\n            pad = (0,1,0,1)\n            x = F.pad(x, pad, mode=\"constant\", value=0)\n            x = self.conv(x)\n        else:\n            x = F.avg_pool2d(x, kernel_size=2, stride=2)\n        return x\n\n\ndef compute_entropy_loss(affinity, loss_type=\"softmax\", temperature=0.01):\n    flat_affinity = affinity.reshape(-1, affinity.shape[-1])\n    flat_affinity /= temperature\n    probs = F.softmax(flat_affinity, dim=-1)\n    log_probs = F.log_softmax(flat_affinity + 1e-5, dim=-1)\n    if loss_type == \"softmax\":\n        target_probs = probs\n    else:\n        raise ValueError(\"Entropy loss {} not supported\".format(loss_type))\n    avg_probs = torch.mean(target_probs, dim=0)\n    avg_entropy = - torch.sum(avg_probs * torch.log(avg_probs + 1e-5))\n    sample_entropy = - torch.mean(torch.sum(target_probs * log_probs, dim=-1))\n    loss = sample_entropy - avg_entropy\n    return loss\n\n\n#################################################################################\n#                              VQ Model Configs                                 #\n#################################################################################\ndef VQ_8(**kwargs):\n    return VQModel(ModelArgs(encoder_ch_mult=[1, 2, 2, 4], decoder_ch_mult=[1, 2, 2, 4], **kwargs))\n\ndef VQ_16(**kwargs):\n    return VQModel(ModelArgs(encoder_ch_mult=[1, 1, 2, 2, 4], decoder_ch_mult=[1, 1, 2, 2, 4], **kwargs))\n\nVQ_models = {'VQ-16': VQ_16, 'VQ-8': VQ_8}"
  },
  {
    "path": "tokenizer/tokenizer_image/vq_model_hf.py",
    "content": "from huggingface_hub import PyTorchModelHubMixin\n\nfrom tokenizer.tokenizer_image.vq_model import ModelArgs, VQModel\n\nclass VQModelHF(VQModel, PyTorchModelHubMixin, repo_url=\"https://github.com/FoundationVision/LlamaGen\", license=\"mit\", tags=[\"llamagen\", \"text-to-image\"]):\n    pass\n\n#################################################################################\n#                              VQ Model Configs                                 #\n#################################################################################\ndef VQ_8(**kwargs):\n    return VQModelHF(ModelArgs(encoder_ch_mult=[1, 2, 2, 4], decoder_ch_mult=[1, 2, 2, 4], **kwargs))\n\ndef VQ_16(**kwargs):\n    return VQModelHF(ModelArgs(encoder_ch_mult=[1, 1, 2, 2, 4], decoder_ch_mult=[1, 1, 2, 2, 4], **kwargs))\n\nVQ_models_HF = {'VQ-16': VQ_16, 'VQ-8': VQ_8}\n"
  },
  {
    "path": "tokenizer/tokenizer_image/vq_train.py",
    "content": "# Modified from:\n#   fast-DiT: https://github.com/chuanyangjin/fast-DiT/blob/main/train.py\n#   nanoGPT: https://github.com/karpathy/nanoGPT/blob/master/model.py\nimport torch\n# the first flag below was False when we tested this script but True makes A100 training a lot faster:\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.nn.parallel import DistributedDataParallel as DDP\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision.datasets import ImageFolder\nfrom torchvision import transforms\n\nimport os\nimport time\nimport argparse\nfrom glob import glob\nfrom copy import deepcopy\n# import sys\n# sys.path.append('/data/vjuicefs_sz_cv_v2/11171709/ControlAR')\nfrom utils.logger import create_logger\nfrom utils.distributed import init_distributed_mode\nfrom utils.ema import update_ema, requires_grad\nfrom dataset.augmentation import random_crop_arr\nfrom dataset.build import build_dataset\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom tokenizer.tokenizer_image.vq_loss import VQLoss\n\nimport warnings\nwarnings.filterwarnings('ignore')\n\n#################################################################################\n#                                  Training Loop                                #\n#################################################################################\n\ndef main(args):\n    \"\"\"\n    Trains a new model.\n    \"\"\"\n    assert torch.cuda.is_available(), \"Training currently requires at least one GPU.\"\n    \n    # Setup DDP:\n    init_distributed_mode(args)\n    assert args.global_batch_size % dist.get_world_size() == 0, f\"Batch size must be divisible by world size.\"\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n\n    # Setup an experiment folder:\n    if rank == 0:\n        os.makedirs(args.results_dir, exist_ok=True)  # Make results folder (holds all experiment subfolders)\n        experiment_index = len(glob(f\"{args.results_dir}/*\"))\n        model_string_name = args.vq_model.replace(\"/\", \"-\")\n        experiment_dir = f\"{args.results_dir}/{experiment_index:03d}-{model_string_name}\"  # Create an experiment folder\n        checkpoint_dir = f\"{experiment_dir}/checkpoints\"  # Stores saved model checkpoints\n        os.makedirs(checkpoint_dir, exist_ok=True)\n        logger = create_logger(experiment_dir)\n        logger.info(f\"Experiment directory created at {experiment_dir}\")\n\n        time_record = time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.localtime())\n        cloud_results_dir = f\"{args.cloud_save_path}/{time_record}\"\n        cloud_checkpoint_dir = f\"{cloud_results_dir}/{experiment_index:03d}-{model_string_name}/checkpoints\"\n        os.makedirs(cloud_checkpoint_dir, exist_ok=True)\n        logger.info(f\"Experiment directory created in cloud at {cloud_checkpoint_dir}\")\n    \n    else:\n        logger = create_logger(None)\n\n    # training args\n    logger.info(f\"{args}\")\n\n    # training env\n    logger.info(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim,\n        commit_loss_beta=args.commit_loss_beta,\n        entropy_loss_ratio=args.entropy_loss_ratio,\n        dropout_p=args.dropout_p,\n    )\n    logger.info(f\"VQ Model Parameters: {sum(p.numel() for p in vq_model.parameters()):,}\")\n    if args.ema:\n        ema = deepcopy(vq_model).to(device)  # Create an EMA of the model for use after training\n        requires_grad(ema, False)\n        logger.info(f\"VQ Model EMA Parameters: {sum(p.numel() for p in ema.parameters()):,}\")\n    vq_model = vq_model.to(device)\n\n    vq_loss = VQLoss(\n        disc_start=args.disc_start, \n        disc_weight=args.disc_weight,\n        disc_type=args.disc_type,\n        disc_loss=args.disc_loss,\n        gen_adv_loss=args.gen_loss,\n        image_size=args.image_size,\n        perceptual_weight=args.perceptual_weight,\n        reconstruction_weight=args.reconstruction_weight,\n        reconstruction_loss=args.reconstruction_loss,\n        codebook_weight=args.codebook_weight,  \n    ).to(device)\n    logger.info(f\"Discriminator Parameters: {sum(p.numel() for p in vq_loss.discriminator.parameters()):,}\")\n\n    # initialize a GradScaler. If enabled=False scaler is a no-op\n    scaler = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    scaler_disc = torch.cuda.amp.GradScaler(enabled=(args.mixed_precision =='fp16'))\n    # Setup optimizer\n    optimizer = torch.optim.Adam(vq_model.parameters(), lr=args.lr, betas=(args.beta1, args.beta2))\n    optimizer_disc = torch.optim.Adam(vq_loss.discriminator.parameters(), lr=args.lr, betas=(args.beta1, args.beta2))\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: random_crop_arr(pil_image, args.image_size)),\n        transforms.RandomHorizontalFlip(),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    if args.dataset == 'imagenet_code':\n        dataset = build_dataset(args)\n    else:\n        dataset = build_dataset(args, transform=transform)\n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=True,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=int(args.global_batch_size // dist.get_world_size()),\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=True\n    )\n    logger.info(f\"Dataset contains {len(dataset):,} images ({args.data_path})\")\n    \n\n    # Prepare models for training:\n    if args.vq_ckpt:\n        checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n        vq_model.load_state_dict(checkpoint[\"model\"])\n        if args.ema:\n            ema.load_state_dict(checkpoint[\"ema\"])\n        optimizer.load_state_dict(checkpoint[\"optimizer\"])\n        vq_loss.discriminator.load_state_dict(checkpoint[\"discriminator\"])\n        optimizer_disc.load_state_dict(checkpoint[\"optimizer_disc\"])\n        if not args.finetune:\n            train_steps = checkpoint[\"steps\"] if \"steps\" in checkpoint else int(args.vq_ckpt.split('/')[-1].split('.')[0])\n            start_epoch = int(train_steps / int(len(dataset) / args.global_batch_size))\n            train_steps = int(start_epoch * int(len(dataset) / args.global_batch_size))\n        else:\n            train_steps = 0\n            start_epoch = 0           \n        del checkpoint\n        logger.info(f\"Resume training from checkpoint: {args.vq_ckpt}\")\n        logger.info(f\"Initial state: steps={train_steps}, epochs={start_epoch}\")\n    else:\n        train_steps = 0\n        start_epoch = 0\n        if args.ema:\n            update_ema(ema, vq_model, decay=0)  # Ensure EMA is initialized with synced weights\n    \n    if args.compile:\n        logger.info(\"compiling the model... (may take several minutes)\")\n        vq_model = torch.compile(vq_model) # requires PyTorch 2.0        \n    \n    vq_model = DDP(vq_model.to(device), device_ids=[args.gpu])\n    vq_model.train()\n    if args.ema:\n        ema.eval()  # EMA model should always be in eval mode\n    vq_loss = DDP(vq_loss.to(device), device_ids=[args.gpu])\n    vq_loss.train()\n\n    ptdtype = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.mixed_precision]\n\n    # Variables for monitoring/logging purposes:\n    log_steps = 0\n    running_loss = 0\n    start_time = time.time()\n\n    logger.info(f\"Training for {args.epochs} epochs...\")\n    for epoch in range(start_epoch, args.epochs):\n        sampler.set_epoch(epoch)\n        logger.info(f\"Beginning epoch {epoch}...\")\n        for x, y in loader:\n            imgs = x.to(device, non_blocking=True)\n\n            # generator training\n            optimizer.zero_grad()\n            with torch.cuda.amp.autocast(dtype=ptdtype):  \n                recons_imgs, codebook_loss = vq_model(imgs)\n                loss_gen = vq_loss(codebook_loss, imgs, recons_imgs, optimizer_idx=0, global_step=train_steps+1, \n                                   last_layer=vq_model.module.decoder.last_layer, \n                                   logger=logger, log_every=args.log_every)\n            scaler.scale(loss_gen).backward()\n            if args.max_grad_norm != 0.0:\n                scaler.unscale_(optimizer)\n                torch.nn.utils.clip_grad_norm_(vq_model.parameters(), args.max_grad_norm)\n            scaler.step(optimizer)\n            scaler.update()\n            if args.ema:\n                update_ema(ema, vq_model.module._orig_mod if args.compile else vq_model.module)\n\n            # discriminator training            \n            optimizer_disc.zero_grad()\n            with torch.cuda.amp.autocast(dtype=ptdtype):\n                loss_disc = vq_loss(codebook_loss, imgs, recons_imgs, optimizer_idx=1, global_step=train_steps+1,\n                                    logger=logger, log_every=args.log_every)\n            scaler_disc.scale(loss_disc).backward()\n            if args.max_grad_norm != 0.0:\n                scaler_disc.unscale_(optimizer_disc)\n                torch.nn.utils.clip_grad_norm_(vq_loss.module.discriminator.parameters(), args.max_grad_norm)\n            scaler_disc.step(optimizer_disc)\n            scaler_disc.update()\n            \n            # # Log loss values:\n            running_loss += loss_gen.item() + loss_disc.item()\n            \n            log_steps += 1\n            train_steps += 1\n            if train_steps % args.log_every == 0:\n                # Measure training speed:\n                torch.cuda.synchronize()\n                end_time = time.time()\n                steps_per_sec = log_steps / (end_time - start_time)\n                # Reduce loss history over all processes:\n                avg_loss = torch.tensor(running_loss / log_steps, device=device)\n                dist.all_reduce(avg_loss, op=dist.ReduceOp.SUM)\n                avg_loss = avg_loss.item() / dist.get_world_size()\n                logger.info(f\"(step={train_steps:07d}) Train Loss: {avg_loss:.4f}, Train Steps/Sec: {steps_per_sec:.2f}\")\n                # Reset monitoring variables:\n                running_loss = 0\n                log_steps = 0\n                start_time = time.time()\n\n            # Save checkpoint:\n            if train_steps % args.ckpt_every == 0 and train_steps > 0:\n                if rank == 0:\n                    if args.compile:\n                        model_weight = vq_model.module._orig_mod.state_dict()\n                    else:\n                        model_weight = vq_model.module.state_dict()  \n                    checkpoint = {\n                        \"model\": model_weight,\n                        \"optimizer\": optimizer.state_dict(),\n                        \"discriminator\": vq_loss.module.discriminator.state_dict(),\n                        \"optimizer_disc\": optimizer_disc.state_dict(),\n                        \"steps\": train_steps,\n                        \"args\": args\n                    }\n                    if args.ema:\n                        checkpoint[\"ema\"] = ema.state_dict()\n                    if not args.no_local_save:\n                        checkpoint_path = f\"{checkpoint_dir}/{train_steps:07d}.pt\"\n                        torch.save(checkpoint, checkpoint_path)\n                        logger.info(f\"Saved checkpoint to {checkpoint_path}\")\n                    \n                    cloud_checkpoint_path = f\"{cloud_checkpoint_dir}/{train_steps:07d}.pt\"\n                    torch.save(checkpoint, cloud_checkpoint_path)\n                    logger.info(f\"Saved checkpoint in cloud to {cloud_checkpoint_path}\")\n                dist.barrier()\n\n    vq_model.eval()  # important! This disables randomized embedding dropout\n    # do any sampling/FID calculation/etc. with ema (or model) in eval mode ...\n\n    logger.info(\"Done!\")\n    dist.destroy_process_group()\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, default=None)\n    parser.add_argument(\"--code-path\", type=str, default=None)\n    parser.add_argument(\"--data-face-path\", type=str, default=None, help=\"face datasets to improve vq model\")\n    parser.add_argument(\"--cloud-save-path\", type=str, required=True, help='please specify a cloud disk path, if not, local path')\n    parser.add_argument(\"--no-local-save\", action='store_true', help='no save checkpoints to local path for limited disk volume')\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for resume training\")\n    parser.add_argument(\"--finetune\", action='store_true', help=\"finetune a pre-trained vq model\")\n    parser.add_argument(\"--ema\", action='store_true', help=\"whether using ema training\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--codebook-l2-norm\", action='store_true', default=True, help=\"l2 norm codebook\")\n    parser.add_argument(\"--codebook-weight\", type=float, default=1.0, help=\"codebook loss weight for vector quantization\")\n    parser.add_argument(\"--entropy-loss-ratio\", type=float, default=0.0, help=\"entropy loss ratio in codebook loss\")\n    parser.add_argument(\"--commit-loss-beta\", type=float, default=0.25, help=\"commit loss beta in codebook loss\")\n    parser.add_argument(\"--reconstruction-weight\", type=float, default=1.0, help=\"reconstruction loss weight of image pixel\")\n    parser.add_argument(\"--reconstruction-loss\", type=str, default='l2', help=\"reconstruction loss type of image pixel\")\n    parser.add_argument(\"--perceptual-weight\", type=float, default=1.0, help=\"perceptual loss weight of LPIPS\")\n    parser.add_argument(\"--disc-weight\", type=float, default=0.5, help=\"discriminator loss weight for gan training\")\n    parser.add_argument(\"--disc-start\", type=int, default=20000, help=\"iteration to start discriminator training and loss\")\n    parser.add_argument(\"--disc-type\", type=str, choices=['patchgan', 'stylegan'], default='patchgan', help=\"discriminator type\")\n    parser.add_argument(\"--disc-loss\", type=str, choices=['hinge', 'vanilla', 'non-saturating'], default='hinge', help=\"discriminator loss\")\n    parser.add_argument(\"--gen-loss\", type=str, choices=['hinge', 'non-saturating'], default='hinge', help=\"generator loss for gan training\")\n    parser.add_argument(\"--compile\", action='store_true', default=False)\n    parser.add_argument(\"--dropout-p\", type=float, default=0.0, help=\"dropout_p\")\n    parser.add_argument(\"--results-dir\", type=str, default=\"results_tokenizer_image\")\n    parser.add_argument(\"--dataset\", type=str, default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512], default=256)\n    parser.add_argument(\"--epochs\", type=int, default=40)\n    parser.add_argument(\"--lr\", type=float, default=1e-4)\n    parser.add_argument(\"--weight-decay\", type=float, default=5e-2, help=\"Weight decay to use.\")\n    parser.add_argument(\"--beta1\", type=float, default=0.9, help=\"The beta1 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--beta2\", type=float, default=0.95, help=\"The beta2 parameter for the Adam optimizer.\")\n    parser.add_argument(\"--max-grad-norm\", default=1.0, type=float, help=\"Max gradient norm.\")\n    parser.add_argument(\"--global-batch-size\", type=int, default=64)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=16)\n    parser.add_argument(\"--log-every\", type=int, default=100)\n    parser.add_argument(\"--ckpt-every\", type=int, default=5000)\n    parser.add_argument(\"--gradient-accumulation-steps\", type=int, default=1)\n    parser.add_argument(\"--mixed-precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--condition\", type=str, default='hed')\n    parser.add_argument(\"--get-condition-img\", type=bool, default=False)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "tokenizer/vae/README.md",
    "content": "## VAE Models from Stable Diffusion\n\n### install\n```\npip install diffusers\npip install accelerate\n```\n\n### demo\n```\ncd ${THIS_REPO_ROOT}\npython3 tokenizer/vae/sd_vae_demo.py\n```\n\n"
  },
  {
    "path": "tokenizer/vae/reconstruction_vae_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision.datasets import ImageFolder\nfrom torchvision import transforms\nfrom tqdm import tqdm\nimport os\nimport itertools\nfrom PIL import Image\nimport numpy as np\nimport argparse\nimport random\n\nfrom skimage.metrics import peak_signal_noise_ratio as psnr_loss\nfrom skimage.metrics import structural_similarity as ssim_loss\nfrom diffusers.models import AutoencoderKL\n\n\nclass SingleFolderDataset(Dataset):\n    def __init__(self, directory, transform=None):\n        super().__init__()\n        self.directory = directory\n        self.transform = transform\n        self.image_paths = [os.path.join(directory, file_name) for file_name in os.listdir(directory)\n                            if os.path.isfile(os.path.join(directory, file_name))]\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        image_path = self.image_paths[idx]\n        image = Image.open(image_path).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n    \n    random.shuffle(samples) # This is very important for IS(Inception Score) !!!\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # load vae\n    vae = AutoencoderKL.from_pretrained(f\"stabilityai/{args.vae}\").to(device)\n\n    # Create folder to save samples:\n    folder_name = f\"stabilityai-{args.vae}-{args.dataset}-size-{args.image_size}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n    if args.dataset == 'imagenet':\n        dataset = ImageFolder(args.data_path, transform=transform)\n        num_fid_samples = 50000\n    elif args.dataset == 'coco':\n        dataset = SingleFolderDataset(args.data_path, transform=transform)\n        num_fid_samples = 5000\n    else:\n        raise Exception(\"please check dataset\")\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    \n    psnr_val_rgb = []\n    ssim_val_rgb = []\n    loader = tqdm(loader) if rank == 0 else loader\n    total = 0\n    for x, _ in loader:\n        rgb_gts = x\n        rgb_gts = (rgb_gts.permute(0, 2, 3, 1).to(\"cpu\").numpy() + 1.0) / 2.0 # rgb_gt value is between [0, 1]\n        x = x.to(device)\n        with torch.no_grad():\n            # Map input images to latent space + normalize latents:\n            latent = vae.encode(x).latent_dist.sample().mul_(0.18215)\n            # reconstruct:\n            samples = vae.decode(latent / 0.18215).sample # output value is between [-1, 1]\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        \n        # Save samples to disk as individual .png files\n        for i, (sample, rgb_gt) in enumerate(zip(samples, rgb_gts)):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n            # metric\n            rgb_restored = sample.astype(np.float32) / 255. # rgb_restored value is between [0, 1]\n            psnr = psnr_loss(rgb_restored, rgb_gt)\n            ssim = ssim_loss(rgb_restored, rgb_gt, multichannel=True, data_range=2.0, channel_axis=-1)\n            psnr_val_rgb.append(psnr)\n            ssim_val_rgb.append(ssim)\n        total += global_batch_size\n\n    # ------------------------------------\n    #       Summary\n    # ------------------------------------\n    # Make sure all processes have finished saving their samples\n    dist.barrier()\n    world_size = dist.get_world_size()\n    gather_psnr_val = [None for _ in range(world_size)]\n    gather_ssim_val = [None for _ in range(world_size)]\n    dist.all_gather_object(gather_psnr_val, psnr_val_rgb)\n    dist.all_gather_object(gather_ssim_val, ssim_val_rgb)\n\n    if rank == 0:\n        gather_psnr_val = list(itertools.chain(*gather_psnr_val))\n        gather_ssim_val = list(itertools.chain(*gather_ssim_val))        \n        psnr_val_rgb = sum(gather_psnr_val) / len(gather_psnr_val)\n        ssim_val_rgb = sum(gather_ssim_val) / len(gather_ssim_val)\n        print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb))\n\n        result_file = f\"{sample_folder_dir}_results.txt\"\n        print(\"writing results to {}\".format(result_file))\n        with open(result_file, 'w') as f:\n            print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb), file=f)\n\n        create_npz_from_sample_folder(sample_folder_dir, num_fid_samples)\n        print(\"Done.\")\n    \n    dist.barrier()\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco'], default='imagenet')\n    parser.add_argument(\"--vae\", type=str, choices=[\"sdxl-vae\", \"sd-vae-ft-mse\"], default=\"sd-vae-ft-mse\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512], default=256)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"reconstructions\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=4)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/vae/sd_vae_demo.py",
    "content": "import argparse\nimport torch\nimport torch.nn.functional as F\nimport numpy as np\nfrom PIL import Image\nfrom diffusers.models import AutoencoderKL\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n    # create and load model\n    vae = AutoencoderKL.from_pretrained(f\"stabilityai/{args.vae}\").to(device)\n\n    # load image\n    img_path = args.image_path\n    out_path = args.image_path.replace('.jpg', '_vae.jpg').replace('.jpeg', '_vae.jpeg').replace('.png', '_vae.png')\n    input_size = args.image_size\n    img = Image.open(img_path).convert(\"RGB\")\n\n    # preprocess\n    size_org = img.size\n    img = img.resize((input_size, input_size))\n    img = np.array(img) / 255.\n    x = 2.0 * img - 1.0 # x value is between [-1, 1]\n    x = torch.tensor(x)\n    x = x.unsqueeze(dim=0)\n    x = torch.einsum('nhwc->nchw', x)\n    x_input = x.float().to(\"cuda\")\n\n    # inference\n    with torch.no_grad():\n        # Map input images to latent space + normalize latents:\n        latent = vae.encode(x_input).latent_dist.sample().mul_(0.18215)\n        # reconstruct:\n        output = vae.decode(latent / 0.18215).sample # output value is between [-1, 1]\n\n    # postprocess\n    output = F.interpolate(output, size=[size_org[1], size_org[0]], mode='bilinear').permute(0, 2, 3, 1)[0]\n    sample = torch.clamp(127.5 * output + 128.0, 0, 255).to(\"cpu\", dtype=torch.uint8).numpy()\n\n    # save        \n    Image.fromarray(sample).save(out_path)\n    print(\"Reconstructed image is saved to {}\".format(out_path))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--image-path\", type=str, default=\"assets/example.jpg\")\n    parser.add_argument(\"--vae\", type=str, choices=[\"sdxl-vae\", \"sd-vae-ft-mse\"], default=\"sd-vae-ft-mse\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512, 1024], default=512)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/validation/val_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision.datasets import ImageFolder\nfrom torchvision import transforms\nfrom tqdm import tqdm\nimport os\nfrom PIL import Image\nimport numpy as np\nimport argparse\nimport random\n\n\nclass SingleFolderDataset(Dataset):\n    def __init__(self, directory, transform=None):\n        super().__init__()\n        self.directory = directory\n        self.transform = transform\n        self.image_paths = [os.path.join(directory, file_name) for file_name in os.listdir(directory)\n                            if os.path.isfile(os.path.join(directory, file_name))]\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        image_path = self.image_paths[idx]\n        image = Image.open(image_path).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n\n    random.shuffle(samples) # This is very important for IS(Inception Score) !!!\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup env\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # Create folder to save samples:\n    folder_name = f\"val_{args.dataset}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n\n    if args.dataset == 'imagenet':\n        dataset = ImageFolder(args.data_path, transform=transform)\n        num_fid_samples = 50000\n    elif args.dataset == 'coco':\n        dataset = SingleFolderDataset(args.data_path, transform=transform)\n        num_fid_samples = 5000\n    else:\n        raise Exception(\"please check dataset\")\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n\n    loader = tqdm(loader) if rank == 0 else loader\n    total = 0\n    for x, _ in loader:\n        samples = torch.clamp(127.5 * x + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        # Save samples to disk as individual .png files\n        for i, sample in enumerate(samples):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n\n        total += global_batch_size\n\n    # Make sure all processes have finished saving their samples before attempting to convert to .npz\n    dist.barrier()\n    if rank == 0:\n        create_npz_from_sample_folder(sample_folder_dir, num_fid_samples)\n        print(\"Done.\")\n    dist.barrier()\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco'], default='imagenet')\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512], default=256)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"reconstructions\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=4)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/vqgan/README.md",
    "content": "## Pretrained VQVAE Models\n\n### install\n```\npip install omegaconf\npip install einops\n```\n* download all needed models from https://github.com/CompVis/taming-transformers and put in pretrained_models/\n* pip install pytorch_lightning\n* python3 tools/convert_pytorch_lightning_to_torch.py\n* pip uninstall pytorch_lightning\n\n### demo\n```\ncd ${THIS_REPO_ROOT}\npython3 tokenizer/vqgan/taming_vqgan_demo.py\n```\n\n### acknowledge\nCodes in this folder are modified from from https://github.com/CompVis/taming-transformers\n\n"
  },
  {
    "path": "tokenizer/vqgan/configs/vqgan_imagenet_f16_1024.yaml",
    "content": "model:\n  base_learning_rate: 4.5e-06\n  target: taming.models.vqgan.VQModel\n  params:\n    embed_dim: 256\n    n_embed: 1024\n    ddconfig:\n      double_z: false\n      z_channels: 256\n      resolution: 256\n      in_channels: 3\n      out_ch: 3\n      ch: 128\n      ch_mult:\n      - 1\n      - 1\n      - 2\n      - 2\n      - 4\n      num_res_blocks: 2\n      attn_resolutions:\n      - 16\n      dropout: 0.0\n    lossconfig:\n      target: taming.modules.losses.vqperceptual.VQLPIPSWithDiscriminator\n      params:\n        disc_conditional: false\n        disc_in_channels: 3\n        disc_start: 0\n        disc_weight: 0.8\n        codebook_weight: 1.0\n        \n"
  },
  {
    "path": "tokenizer/vqgan/configs/vqgan_imagenet_f16_16384.yaml",
    "content": "model:\n  base_learning_rate: 4.5e-06\n  target: taming.models.vqgan.VQModel\n  params:\n    embed_dim: 256\n    n_embed: 16384\n    monitor: val/rec_loss\n    ddconfig:\n      double_z: false\n      z_channels: 256\n      resolution: 256\n      in_channels: 3\n      out_ch: 3\n      ch: 128\n      ch_mult:\n      - 1\n      - 1\n      - 2\n      - 2\n      - 4\n      num_res_blocks: 2\n      attn_resolutions:\n      - 16\n      dropout: 0.0\n    lossconfig:\n      target: taming.modules.losses.vqperceptual.VQLPIPSWithDiscriminator\n      params:\n        disc_conditional: false\n        disc_in_channels: 3\n        disc_start: 0\n        disc_weight: 0.75\n        disc_num_layers: 2\n        codebook_weight: 1.0\n\n"
  },
  {
    "path": "tokenizer/vqgan/configs/vqgan_openimage_f8_16384.yaml",
    "content": "model:\n  params:\n    embed_dim: 4\n    n_embed: 16384\n    ddconfig:\n      double_z: false\n      z_channels: 4\n      resolution: 256\n      in_channels: 3\n      out_ch: 3\n      ch: 128\n      ch_mult:\n      - 1\n      - 2\n      - 2\n      - 4\n      num_res_blocks: 2\n      attn_resolutions:\n      - 32\n      dropout: 0.0"
  },
  {
    "path": "tokenizer/vqgan/configs/vqgan_openimage_f8_256.yaml",
    "content": "model:\n  params:\n    embed_dim: 4\n    n_embed: 256\n    ddconfig:\n      double_z: false\n      z_channels: 4\n      resolution: 256\n      in_channels: 3\n      out_ch: 3\n      ch: 128\n      ch_mult:\n      - 1\n      - 2\n      - 2\n      - 4\n      num_res_blocks: 2\n      attn_resolutions:\n      - 32\n      dropout: 0.0"
  },
  {
    "path": "tokenizer/vqgan/layer.py",
    "content": "# pytorch_diffusion + derived encoder decoder\nimport math\nimport torch\nimport torch.nn as nn\nimport numpy as np\n\n\ndef nonlinearity(x):\n    # swish\n    return x*torch.sigmoid(x)\n\n\ndef Normalize(in_channels):\n    return torch.nn.GroupNorm(num_groups=32, num_channels=in_channels, eps=1e-6, affine=True)\n\n\nclass Upsample(nn.Module):\n    def __init__(self, in_channels, with_conv):\n        super().__init__()\n        self.with_conv = with_conv\n        if self.with_conv:\n            self.conv = torch.nn.Conv2d(in_channels,\n                                        in_channels,\n                                        kernel_size=3,\n                                        stride=1,\n                                        padding=1)\n\n    def forward(self, x):\n        x = torch.nn.functional.interpolate(x, scale_factor=2.0, mode=\"nearest\")\n        if self.with_conv:\n            x = self.conv(x)\n        return x\n\n\nclass Downsample(nn.Module):\n    def __init__(self, in_channels, with_conv):\n        super().__init__()\n        self.with_conv = with_conv\n        if self.with_conv:\n            # no asymmetric padding in torch conv, must do it ourselves\n            self.conv = torch.nn.Conv2d(in_channels,\n                                        in_channels,\n                                        kernel_size=3,\n                                        stride=2,\n                                        padding=0)\n\n    def forward(self, x):\n        if self.with_conv:\n            pad = (0,1,0,1)\n            x = torch.nn.functional.pad(x, pad, mode=\"constant\", value=0)\n            x = self.conv(x)\n        else:\n            x = torch.nn.functional.avg_pool2d(x, kernel_size=2, stride=2)\n        return x\n\n\nclass ResnetBlock(nn.Module):\n    def __init__(self, *, in_channels, out_channels=None, conv_shortcut=False,\n                 dropout, temb_channels=512):\n        super().__init__()\n        self.in_channels = in_channels\n        out_channels = in_channels if out_channels is None else out_channels\n        self.out_channels = out_channels\n        self.use_conv_shortcut = conv_shortcut\n\n        self.norm1 = Normalize(in_channels)\n        self.conv1 = torch.nn.Conv2d(in_channels,\n                                     out_channels,\n                                     kernel_size=3,\n                                     stride=1,\n                                     padding=1)\n        if temb_channels > 0:\n            self.temb_proj = torch.nn.Linear(temb_channels,\n                                             out_channels)\n        self.norm2 = Normalize(out_channels)\n        self.dropout = torch.nn.Dropout(dropout)\n        self.conv2 = torch.nn.Conv2d(out_channels,\n                                     out_channels,\n                                     kernel_size=3,\n                                     stride=1,\n                                     padding=1)\n        if self.in_channels != self.out_channels:\n            if self.use_conv_shortcut:\n                self.conv_shortcut = torch.nn.Conv2d(in_channels,\n                                                     out_channels,\n                                                     kernel_size=3,\n                                                     stride=1,\n                                                     padding=1)\n            else:\n                self.nin_shortcut = torch.nn.Conv2d(in_channels,\n                                                    out_channels,\n                                                    kernel_size=1,\n                                                    stride=1,\n                                                    padding=0)\n\n    def forward(self, x, temb):\n        h = x\n        h = self.norm1(h)\n        h = nonlinearity(h)\n        h = self.conv1(h)\n\n        if temb is not None:\n            h = h + self.temb_proj(nonlinearity(temb))[:,:,None,None]\n\n        h = self.norm2(h)\n        h = nonlinearity(h)\n        h = self.dropout(h)\n        h = self.conv2(h)\n\n        if self.in_channels != self.out_channels:\n            if self.use_conv_shortcut:\n                x = self.conv_shortcut(x)\n            else:\n                x = self.nin_shortcut(x)\n\n        return x+h\n\n\nclass AttnBlock(nn.Module):\n    def __init__(self, in_channels):\n        super().__init__()\n        self.in_channels = in_channels\n\n        self.norm = Normalize(in_channels)\n        self.q = torch.nn.Conv2d(in_channels,\n                                 in_channels,\n                                 kernel_size=1,\n                                 stride=1,\n                                 padding=0)\n        self.k = torch.nn.Conv2d(in_channels,\n                                 in_channels,\n                                 kernel_size=1,\n                                 stride=1,\n                                 padding=0)\n        self.v = torch.nn.Conv2d(in_channels,\n                                 in_channels,\n                                 kernel_size=1,\n                                 stride=1,\n                                 padding=0)\n        self.proj_out = torch.nn.Conv2d(in_channels,\n                                        in_channels,\n                                        kernel_size=1,\n                                        stride=1,\n                                        padding=0)\n\n\n    def forward(self, x):\n        h_ = x\n        h_ = self.norm(h_)\n        q = self.q(h_)\n        k = self.k(h_)\n        v = self.v(h_)\n\n        # compute attention\n        b,c,h,w = q.shape\n        q = q.reshape(b,c,h*w)\n        q = q.permute(0,2,1)   # b,hw,c\n        k = k.reshape(b,c,h*w) # b,c,hw\n        w_ = torch.bmm(q,k)     # b,hw,hw    w[b,i,j]=sum_c q[b,i,c]k[b,c,j]\n        w_ = w_ * (int(c)**(-0.5))\n        w_ = torch.nn.functional.softmax(w_, dim=2)\n\n        # attend to values\n        v = v.reshape(b,c,h*w)\n        w_ = w_.permute(0,2,1)   # b,hw,hw (first hw of k, second of q)\n        h_ = torch.bmm(v,w_)     # b, c,hw (hw of q) h_[b,c,j] = sum_i v[b,c,i] w_[b,i,j]\n        h_ = h_.reshape(b,c,h,w)\n\n        h_ = self.proj_out(h_)\n\n        return x+h_\n\n\n\nclass Encoder(nn.Module):\n    def __init__(self, *, ch, out_ch, ch_mult=(1,2,4,8), num_res_blocks,\n                 attn_resolutions, dropout=0.0, resamp_with_conv=True, in_channels,\n                 resolution, z_channels, double_z=True, **ignore_kwargs):\n        super().__init__()\n        self.ch = ch\n        self.temb_ch = 0\n        self.num_resolutions = len(ch_mult)\n        self.num_res_blocks = num_res_blocks\n        self.resolution = resolution\n        self.in_channels = in_channels\n\n        # downsampling\n        self.conv_in = torch.nn.Conv2d(in_channels,\n                                       self.ch,\n                                       kernel_size=3,\n                                       stride=1,\n                                       padding=1)\n\n        curr_res = resolution\n        in_ch_mult = (1,)+tuple(ch_mult)\n        self.down = nn.ModuleList()\n        for i_level in range(self.num_resolutions):\n            block = nn.ModuleList()\n            attn = nn.ModuleList()\n            block_in = ch*in_ch_mult[i_level]\n            block_out = ch*ch_mult[i_level]\n            for i_block in range(self.num_res_blocks):\n                block.append(ResnetBlock(in_channels=block_in,\n                                         out_channels=block_out,\n                                         temb_channels=self.temb_ch,\n                                         dropout=dropout))\n                block_in = block_out\n                if curr_res in attn_resolutions:\n                    attn.append(AttnBlock(block_in))\n            down = nn.Module()\n            down.block = block\n            down.attn = attn\n            if i_level != self.num_resolutions-1:\n                down.downsample = Downsample(block_in, resamp_with_conv)\n                curr_res = curr_res // 2\n            self.down.append(down)\n\n        # middle\n        self.mid = nn.Module()\n        self.mid.block_1 = ResnetBlock(in_channels=block_in,\n                                       out_channels=block_in,\n                                       temb_channels=self.temb_ch,\n                                       dropout=dropout)\n        self.mid.attn_1 = AttnBlock(block_in)\n        self.mid.block_2 = ResnetBlock(in_channels=block_in,\n                                       out_channels=block_in,\n                                       temb_channels=self.temb_ch,\n                                       dropout=dropout)\n\n        # end\n        self.norm_out = Normalize(block_in)\n        self.conv_out = torch.nn.Conv2d(block_in,\n                                        2*z_channels if double_z else z_channels,\n                                        kernel_size=3,\n                                        stride=1,\n                                        padding=1)\n\n\n    def forward(self, x):\n        #assert x.shape[2] == x.shape[3] == self.resolution, \"{}, {}, {}\".format(x.shape[2], x.shape[3], self.resolution)\n\n        # timestep embedding\n        temb = None\n\n        # downsampling\n        hs = [self.conv_in(x)]\n        for i_level in range(self.num_resolutions):\n            for i_block in range(self.num_res_blocks):\n                h = self.down[i_level].block[i_block](hs[-1], temb)\n                if len(self.down[i_level].attn) > 0:\n                    h = self.down[i_level].attn[i_block](h)\n                hs.append(h)\n            if i_level != self.num_resolutions-1:\n                hs.append(self.down[i_level].downsample(hs[-1]))\n\n        # middle\n        h = hs[-1]\n        h = self.mid.block_1(h, temb)\n        h = self.mid.attn_1(h)\n        h = self.mid.block_2(h, temb)\n\n        # end\n        h = self.norm_out(h)\n        h = nonlinearity(h)\n        h = self.conv_out(h)\n        return h\n\n\nclass Decoder(nn.Module):\n    def __init__(self, *, ch, out_ch, ch_mult=(1,2,4,8), num_res_blocks,\n                 attn_resolutions, dropout=0.0, resamp_with_conv=True, in_channels,\n                 resolution, z_channels, give_pre_end=False, **ignorekwargs):\n        super().__init__()\n        self.ch = ch\n        self.temb_ch = 0\n        self.num_resolutions = len(ch_mult)\n        self.num_res_blocks = num_res_blocks\n        self.resolution = resolution\n        self.in_channels = in_channels\n        self.give_pre_end = give_pre_end\n\n        # compute in_ch_mult, block_in and curr_res at lowest res\n        in_ch_mult = (1,)+tuple(ch_mult)\n        block_in = ch*ch_mult[self.num_resolutions-1]\n        curr_res = resolution // 2**(self.num_resolutions-1)\n        self.z_shape = (1,z_channels,curr_res,curr_res)\n        print(\"Working with z of shape {} = {} dimensions.\".format(\n            self.z_shape, np.prod(self.z_shape)))\n\n        # z to block_in\n        self.conv_in = torch.nn.Conv2d(z_channels,\n                                       block_in,\n                                       kernel_size=3,\n                                       stride=1,\n                                       padding=1)\n\n        # middle\n        self.mid = nn.Module()\n        self.mid.block_1 = ResnetBlock(in_channels=block_in,\n                                       out_channels=block_in,\n                                       temb_channels=self.temb_ch,\n                                       dropout=dropout)\n        self.mid.attn_1 = AttnBlock(block_in)\n        self.mid.block_2 = ResnetBlock(in_channels=block_in,\n                                       out_channels=block_in,\n                                       temb_channels=self.temb_ch,\n                                       dropout=dropout)\n\n        # upsampling\n        self.up = nn.ModuleList()\n        for i_level in reversed(range(self.num_resolutions)):\n            block = nn.ModuleList()\n            attn = nn.ModuleList()\n            block_out = ch*ch_mult[i_level]\n            for i_block in range(self.num_res_blocks+1):\n                block.append(ResnetBlock(in_channels=block_in,\n                                         out_channels=block_out,\n                                         temb_channels=self.temb_ch,\n                                         dropout=dropout))\n                block_in = block_out\n                if curr_res in attn_resolutions:\n                    attn.append(AttnBlock(block_in))\n            up = nn.Module()\n            up.block = block\n            up.attn = attn\n            if i_level != 0:\n                up.upsample = Upsample(block_in, resamp_with_conv)\n                curr_res = curr_res * 2\n            self.up.insert(0, up) # prepend to get consistent order\n\n        # end\n        self.norm_out = Normalize(block_in)\n        self.conv_out = torch.nn.Conv2d(block_in,\n                                        out_ch,\n                                        kernel_size=3,\n                                        stride=1,\n                                        padding=1)\n\n    def forward(self, z):\n        #assert z.shape[1:] == self.z_shape[1:]\n        self.last_z_shape = z.shape\n\n        # timestep embedding\n        temb = None\n\n        # z to block_in\n        h = self.conv_in(z)\n\n        # middle\n        h = self.mid.block_1(h, temb)\n        h = self.mid.attn_1(h)\n        h = self.mid.block_2(h, temb)\n\n        # upsampling\n        for i_level in reversed(range(self.num_resolutions)):\n            for i_block in range(self.num_res_blocks+1):\n                h = self.up[i_level].block[i_block](h, temb)\n                if len(self.up[i_level].attn) > 0:\n                    h = self.up[i_level].attn[i_block](h)\n            if i_level != 0:\n                h = self.up[i_level].upsample(h)\n\n        # end\n        if self.give_pre_end:\n            return h\n\n        h = self.norm_out(h)\n        h = nonlinearity(h)\n        h = self.conv_out(h)\n        return h\n\n\n"
  },
  {
    "path": "tokenizer/vqgan/model.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom tokenizer.vqgan.layer import Encoder, Decoder\nfrom tokenizer.vqgan.quantize import VectorQuantizer2 as VectorQuantizer\n\n\nVQGAN_FROM_TAMING = {\n    'vqgan_imagenet_f16_1024': (\n        'tokenizer/vqgan/configs/vqgan_imagenet_f16_1024.yaml',\n        'pretrained_models/vqgan_imagenet_f16_1024/ckpts/last.pth'),\n    'vqgan_imagenet_f16_16384': (\n        'tokenizer/vqgan/configs/vqgan_imagenet_f16_16384.yaml', \n        'pretrained_models/vqgan_imagenet_f16_16384/ckpts/last.pth'),\n    'vqgan_openimage_f8_256': (\n        'tokenizer/vqgan/configs/vqgan_openimage_f8_256.yaml', \n        'pretrained_models/vq-f8-n256/model.pth'),\n    'vqgan_openimage_f8_16384': (\n        'tokenizer/vqgan/configs/vqgan_openimage_f8_16384.yaml',\n        'pretrained_models/vq-f8/model.pth'),\n}\n\nclass VQModel(nn.Module):\n    def __init__(self,\n                 ddconfig,\n                 n_embed,\n                 embed_dim,\n                 ckpt_path=None,\n                 ignore_keys=[],\n                 image_key=\"image\",\n                 colorize_nlabels=None,\n                 monitor=None,\n                 remap=None,\n                 sane_index_shape=False,  # tell vector quantizer to return indices as bhw\n                 **kwargs,\n                 ):\n        super().__init__()\n        self.image_key = image_key\n        self.encoder = Encoder(**ddconfig)\n        self.decoder = Decoder(**ddconfig)\n        self.quantize = VectorQuantizer(n_embed, embed_dim, beta=0.25,\n                                        remap=remap, sane_index_shape=sane_index_shape)\n        self.quant_conv = torch.nn.Conv2d(ddconfig[\"z_channels\"], embed_dim, 1)\n        self.post_quant_conv = torch.nn.Conv2d(embed_dim, ddconfig[\"z_channels\"], 1)\n        if ckpt_path is not None:\n            self.init_from_ckpt(ckpt_path, ignore_keys=ignore_keys)\n        self.image_key = image_key\n        if colorize_nlabels is not None:\n            assert type(colorize_nlabels)==int\n            self.register_buffer(\"colorize\", torch.randn(3, colorize_nlabels, 1, 1))\n        if monitor is not None:\n            self.monitor = monitor\n\n    def init_from_ckpt(self, path, ignore_keys=list(), logging=True):\n        model_weight = torch.load(path, map_location=\"cpu\")[\"state_dict\"]\n        keys = list(model_weight.keys())\n        for k in keys:\n            for ik in ignore_keys:\n                if k.startswith(ik):\n                    print(\"Deleting key {} from state_dict.\".format(k))\n                    del model_weight[k]\n        missing, unexpected = self.load_state_dict(model_weight, strict=False)\n        if logging:\n            print(f\"Restored from {path}\")\n            print(f\"Missing Keys in State Dict: {missing}\")\n            print(f\"Unexpected Keys in State Dict: {unexpected}\")\n\n    def encode(self, x):\n        h = self.encoder(x)\n        h = self.quant_conv(h)\n        quant, emb_loss, info = self.quantize(h)\n        return quant, emb_loss, info\n\n    def decode(self, quant):\n        quant = self.post_quant_conv(quant)\n        dec = self.decoder(quant)\n        return dec\n\n    def decode_code(self, code_b, shape, channel_first=True):\n        quant_b = self.quantize.get_codebook_entry(code_b, shape, channel_first)\n        dec = self.decode(quant_b)\n        return dec\n\n    def forward(self, input):\n        quant, diff, _ = self.encode(input)\n        dec = self.decode(quant)\n        return dec, diff\n"
  },
  {
    "path": "tokenizer/vqgan/quantize.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport numpy as np\nfrom torch import einsum\nfrom einops import rearrange\n\n\nclass VectorQuantizer(nn.Module):\n    \"\"\"\n    see https://github.com/MishaLaskin/vqvae/blob/d761a999e2267766400dc646d82d3ac3657771d4/models/quantizer.py\n    ____________________________________________\n    Discretization bottleneck part of the VQ-VAE.\n    Inputs:\n    - n_e : number of embeddings\n    - e_dim : dimension of embedding\n    - beta : commitment cost used in loss term, beta * ||z_e(x)-sg[e]||^2\n    _____________________________________________\n    \"\"\"\n\n    # NOTE: this class contains a bug regarding beta; see VectorQuantizer2 for\n    # a fix and use legacy=False to apply that fix. VectorQuantizer2 can be\n    # used wherever VectorQuantizer has been used before and is additionally\n    # more efficient.\n    def __init__(self, n_e, e_dim, beta):\n        super(VectorQuantizer, self).__init__()\n        self.n_e = n_e\n        self.e_dim = e_dim\n        self.beta = beta\n\n        self.embedding = nn.Embedding(self.n_e, self.e_dim)\n        self.embedding.weight.data.uniform_(-1.0 / self.n_e, 1.0 / self.n_e)\n\n    def forward(self, z):\n        \"\"\"\n        Inputs the output of the encoder network z and maps it to a discrete\n        one-hot vector that is the index of the closest embedding vector e_j\n        z (continuous) -> z_q (discrete)\n        z.shape = (batch, channel, height, width)\n        quantization pipeline:\n            1. get encoder input (B,C,H,W)\n            2. flatten input to (B*H*W,C)\n        \"\"\"\n        # reshape z -> (batch, height, width, channel) and flatten\n        z = z.permute(0, 2, 3, 1).contiguous()\n        z_flattened = z.view(-1, self.e_dim)\n        # distances from z to embeddings e_j (z - e)^2 = z^2 + e^2 - 2 e * z\n\n        d = torch.sum(z_flattened ** 2, dim=1, keepdim=True) + \\\n            torch.sum(self.embedding.weight**2, dim=1) - 2 * \\\n            torch.matmul(z_flattened, self.embedding.weight.t())\n\n        ## could possible replace this here\n        # #\\start...\n        # find closest encodings\n        min_encoding_indices = torch.argmin(d, dim=1).unsqueeze(1)\n\n        min_encodings = torch.zeros(\n            min_encoding_indices.shape[0], self.n_e).to(z)\n        min_encodings.scatter_(1, min_encoding_indices, 1)\n\n        # dtype min encodings: torch.float32\n        # min_encodings shape: torch.Size([2048, 512])\n        # min_encoding_indices.shape: torch.Size([2048, 1])\n\n        # get quantized latent vectors\n        z_q = torch.matmul(min_encodings, self.embedding.weight).view(z.shape)\n        #.........\\end\n\n        # with:\n        # .........\\start\n        #min_encoding_indices = torch.argmin(d, dim=1)\n        #z_q = self.embedding(min_encoding_indices)\n        # ......\\end......... (TODO)\n\n        # compute loss for embedding\n        loss = torch.mean((z_q.detach()-z)**2) + self.beta * \\\n            torch.mean((z_q - z.detach()) ** 2)\n\n        # preserve gradients\n        z_q = z + (z_q - z).detach()\n\n        # perplexity\n        e_mean = torch.mean(min_encodings, dim=0)\n        perplexity = torch.exp(-torch.sum(e_mean * torch.log(e_mean + 1e-10)))\n\n        # reshape back to match original input shape\n        z_q = z_q.permute(0, 3, 1, 2).contiguous()\n\n        return z_q, loss, (perplexity, min_encodings, min_encoding_indices)\n\n    def get_codebook_entry(self, indices, shape):\n        # shape specifying (batch, height, width, channel)\n        # TODO: check for more easy handling with nn.Embedding\n        min_encodings = torch.zeros(indices.shape[0], self.n_e).to(indices)\n        min_encodings.scatter_(1, indices[:,None], 1)\n\n        # get quantized latent vectors\n        z_q = torch.matmul(min_encodings.float(), self.embedding.weight)\n\n        if shape is not None:\n            z_q = z_q.view(shape)\n\n            # reshape back to match original input shape\n            z_q = z_q.permute(0, 3, 1, 2).contiguous()\n\n        return z_q\n\n\nclass VectorQuantizer2(nn.Module):\n    \"\"\"\n    Improved version over VectorQuantizer, can be used as a drop-in replacement. Mostly\n    avoids costly matrix multiplications and allows for post-hoc remapping of indices.\n    \"\"\"\n    # NOTE: due to a bug the beta term was applied to the wrong term. for\n    # backwards compatibility we use the buggy version by default, but you can\n    # specify legacy=False to fix it.\n    def __init__(self, n_e, e_dim, beta, remap=None, unknown_index=\"random\",\n                 sane_index_shape=False, legacy=True):\n        super().__init__()\n        self.n_e = n_e\n        self.e_dim = e_dim\n        self.beta = beta\n        self.legacy = legacy\n\n        self.embedding = nn.Embedding(self.n_e, self.e_dim)\n        self.embedding.weight.data.uniform_(-1.0 / self.n_e, 1.0 / self.n_e)\n\n        self.remap = remap\n        if self.remap is not None:\n            self.register_buffer(\"used\", torch.tensor(np.load(self.remap)))\n            self.re_embed = self.used.shape[0]\n            self.unknown_index = unknown_index # \"random\" or \"extra\" or integer\n            if self.unknown_index == \"extra\":\n                self.unknown_index = self.re_embed\n                self.re_embed = self.re_embed+1\n            print(f\"Remapping {self.n_e} indices to {self.re_embed} indices. \"\n                  f\"Using {self.unknown_index} for unknown indices.\")\n        else:\n            self.re_embed = n_e\n\n        self.sane_index_shape = sane_index_shape\n\n    def remap_to_used(self, inds):\n        ishape = inds.shape\n        assert len(ishape)>1\n        inds = inds.reshape(ishape[0],-1)\n        used = self.used.to(inds)\n        match = (inds[:,:,None]==used[None,None,...]).long()\n        new = match.argmax(-1)\n        unknown = match.sum(2)<1\n        if self.unknown_index == \"random\":\n            new[unknown]=torch.randint(0,self.re_embed,size=new[unknown].shape).to(device=new.device)\n        else:\n            new[unknown] = self.unknown_index\n        return new.reshape(ishape)\n\n    def unmap_to_all(self, inds):\n        ishape = inds.shape\n        assert len(ishape)>1\n        inds = inds.reshape(ishape[0],-1)\n        used = self.used.to(inds)\n        if self.re_embed > self.used.shape[0]: # extra token\n            inds[inds>=self.used.shape[0]] = 0 # simply set to zero\n        back=torch.gather(used[None,:][inds.shape[0]*[0],:], 1, inds)\n        return back.reshape(ishape)\n\n    def forward(self, z, temp=None, rescale_logits=False, return_logits=False):\n        assert temp is None or temp==1.0, \"Only for interface compatible with Gumbel\"\n        assert rescale_logits==False, \"Only for interface compatible with Gumbel\"\n        assert return_logits==False, \"Only for interface compatible with Gumbel\"\n        # reshape z -> (batch, height, width, channel) and flatten\n        z = rearrange(z, 'b c h w -> b h w c').contiguous()\n        z_flattened = z.view(-1, self.e_dim)\n        # distances from z to embeddings e_j (z - e)^2 = z^2 + e^2 - 2 e * z\n\n        d = torch.sum(z_flattened ** 2, dim=1, keepdim=True) + \\\n            torch.sum(self.embedding.weight**2, dim=1) - 2 * \\\n            torch.einsum('bd,dn->bn', z_flattened, rearrange(self.embedding.weight, 'n d -> d n'))\n\n        min_encoding_indices = torch.argmin(d, dim=1)\n        z_q = self.embedding(min_encoding_indices).view(z.shape)\n        perplexity = None\n        min_encodings = None\n\n        # compute loss for embedding\n        if not self.legacy:\n            loss = self.beta * torch.mean((z_q.detach()-z)**2) + \\\n                   torch.mean((z_q - z.detach()) ** 2)\n        else:\n            loss = torch.mean((z_q.detach()-z)**2) + self.beta * \\\n                   torch.mean((z_q - z.detach()) ** 2)\n\n        # preserve gradients\n        z_q = z + (z_q - z).detach()\n\n        # reshape back to match original input shape\n        z_q = rearrange(z_q, 'b h w c -> b c h w').contiguous()\n\n        if self.remap is not None:\n            min_encoding_indices = min_encoding_indices.reshape(z.shape[0],-1) # add batch axis\n            min_encoding_indices = self.remap_to_used(min_encoding_indices)\n            min_encoding_indices = min_encoding_indices.reshape(-1,1) # flatten\n\n        if self.sane_index_shape:\n            min_encoding_indices = min_encoding_indices.reshape(\n                z_q.shape[0], z_q.shape[2], z_q.shape[3])\n\n        return z_q, loss, (perplexity, min_encodings, min_encoding_indices)\n\n    def get_codebook_entry(self, indices, shape, channel_first=True):\n        # shape = (batch, channel, height, width) if channel_first else (batch, height, width, channel)\n        if self.remap is not None:\n            indices = indices.reshape(shape[0],-1) # add batch axis\n            indices = self.unmap_to_all(indices)\n            indices = indices.reshape(-1) # flatten again\n\n        # get quantized latent vectors\n        z_q = self.embedding(indices)  # (b*h*w, c)\n\n        if shape is not None:\n            if channel_first:\n                z_q = z_q.reshape(shape[0], shape[2], shape[3], shape[1])\n                # reshape back to match original input shape\n                z_q = z_q.permute(0, 3, 1, 2).contiguous()\n            else:\n                z_q = z_q.view(shape)\n\n        return z_q"
  },
  {
    "path": "tokenizer/vqgan/reconstruction_vqgan_ddp.py",
    "content": "import torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport torch.distributed as dist\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.utils.data.distributed import DistributedSampler\nfrom torchvision.datasets import ImageFolder\nfrom torchvision import transforms\nfrom tqdm import tqdm\nimport os\nfrom PIL import Image\nimport numpy as np\nimport itertools\nimport argparse\nimport random\n\nfrom skimage.metrics import peak_signal_noise_ratio as psnr_loss\nfrom skimage.metrics import structural_similarity as ssim_loss\nfrom omegaconf import OmegaConf\nfrom tokenizer.vqgan.model import VQModel\nfrom tokenizer.vqgan.model import VQGAN_FROM_TAMING\n\n\nclass SingleFolderDataset(Dataset):\n    def __init__(self, directory, transform=None):\n        super().__init__()\n        self.directory = directory\n        self.transform = transform\n        self.image_paths = [os.path.join(directory, file_name) for file_name in os.listdir(directory)\n                            if os.path.isfile(os.path.join(directory, file_name))]\n\n    def __len__(self):\n        return len(self.image_paths)\n\n    def __getitem__(self, idx):\n        image_path = self.image_paths[idx]\n        image = Image.open(image_path).convert('RGB')\n        if self.transform:\n            image = self.transform(image)\n        return image, torch.tensor(0)\n\n\ndef create_npz_from_sample_folder(sample_dir, num=50_000):\n    \"\"\"\n    Builds a single .npz file from a folder of .png samples.\n    \"\"\"\n    samples = []\n    for i in tqdm(range(num), desc=\"Building .npz file from samples\"):\n        sample_pil = Image.open(f\"{sample_dir}/{i:06d}.png\")\n        sample_np = np.asarray(sample_pil).astype(np.uint8)\n        samples.append(sample_np)\n\n    random.shuffle(samples) # This is very important for IS(Inception Score) !!!\n    samples = np.stack(samples)\n    assert samples.shape == (num, samples.shape[1], samples.shape[2], 3)\n    npz_path = f\"{sample_dir}.npz\"\n    np.savez(npz_path, arr_0=samples)\n    print(f\"Saved .npz file to {npz_path} [shape={samples.shape}].\")\n    return npz_path\n\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])\n\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # Setup DDP:\n    dist.init_process_group(\"nccl\")\n    rank = dist.get_rank()\n    device = rank % torch.cuda.device_count()\n    seed = args.global_seed * dist.get_world_size() + rank\n    torch.manual_seed(seed)\n    torch.cuda.set_device(device)\n    print(f\"Starting rank={rank}, seed={seed}, world_size={dist.get_world_size()}.\")\n\n    # create and load vqgan\n    cfg, ckpt = VQGAN_FROM_TAMING[args.vqgan]\n    config = OmegaConf.load(cfg)\n    vq_model = VQModel(**config.model.get(\"params\", dict())).to(device)\n    vq_model.init_from_ckpt(ckpt, logging=False)\n    vq_model.eval()\n\n    # Create folder to save samples:\n    folder_name = f\"{args.vqgan}-{args.dataset}-size-{args.image_size}-seed-{args.global_seed}\"\n    sample_folder_dir = f\"{args.sample_dir}/{folder_name}\"\n    if rank == 0:\n        os.makedirs(sample_folder_dir, exist_ok=True)\n        print(f\"Saving .png samples at {sample_folder_dir}\")\n    dist.barrier()\n\n    # Setup data:\n    transform = transforms.Compose([\n        transforms.Lambda(lambda pil_image: center_crop_arr(pil_image, args.image_size)),\n        transforms.ToTensor(),\n        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], inplace=True)\n    ])\n\n    if args.dataset == 'imagenet':\n        dataset = ImageFolder(args.data_path, transform=transform)\n        num_fid_samples = 50000\n    elif args.dataset == 'coco':\n        dataset = SingleFolderDataset(args.data_path, transform=transform)\n        num_fid_samples = 5000\n    else:\n        raise Exception(\"please check dataset\")\n    \n    sampler = DistributedSampler(\n        dataset,\n        num_replicas=dist.get_world_size(),\n        rank=rank,\n        shuffle=False,\n        seed=args.global_seed\n    )\n    loader = DataLoader(\n        dataset,\n        batch_size=args.per_proc_batch_size,\n        shuffle=False,\n        sampler=sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n        drop_last=False\n    )    \n\n    # Figure out how many samples we need to generate on each GPU and how many iterations we need to run:\n    n = args.per_proc_batch_size\n    global_batch_size = n * dist.get_world_size()\n    \n    psnr_val_rgb = []\n    ssim_val_rgb = []\n    loader = tqdm(loader) if rank == 0 else loader\n    total = 0\n    for x, _ in loader:\n        rgb_gts = x\n        rgb_gts = (rgb_gts.permute(0, 2, 3, 1).to(\"cpu\").numpy() + 1.0) / 2.0 # rgb_gt value is between [0, 1]\n        x = x.to(device)\n        with torch.no_grad():\n            latent, _, [_, _, indices] = vq_model.encode(x)\n            samples = vq_model.decode_code(indices, latent.shape) # output value is between [-1, 1]\n        samples = torch.clamp(127.5 * samples + 128.0, 0, 255).permute(0, 2, 3, 1).to(\"cpu\", dtype=torch.uint8).numpy()\n        \n        # Save samples to disk as individual .png files\n        for i, (sample, rgb_gt) in enumerate(zip(samples, rgb_gts)):\n            index = i * dist.get_world_size() + rank + total\n            Image.fromarray(sample).save(f\"{sample_folder_dir}/{index:06d}.png\")\n            # metric\n            rgb_restored = sample.astype(np.float32) / 255. # rgb_restored value is between [0, 1]\n            psnr = psnr_loss(rgb_restored, rgb_gt)\n            ssim = ssim_loss(rgb_restored, rgb_gt, multichannel=True, data_range=2.0, channel_axis=-1)\n            psnr_val_rgb.append(psnr)\n            ssim_val_rgb.append(ssim)\n        total += global_batch_size\n\n    # ------------------------------------\n    #       Summary\n    # ------------------------------------\n    # Make sure all processes have finished saving their samples\n    dist.barrier()\n    world_size = dist.get_world_size()\n    gather_psnr_val = [None for _ in range(world_size)]\n    gather_ssim_val = [None for _ in range(world_size)]\n    dist.all_gather_object(gather_psnr_val, psnr_val_rgb)\n    dist.all_gather_object(gather_ssim_val, ssim_val_rgb)\n\n    if rank == 0:\n        gather_psnr_val = list(itertools.chain(*gather_psnr_val))\n        gather_ssim_val = list(itertools.chain(*gather_ssim_val))        \n        psnr_val_rgb = sum(gather_psnr_val) / len(gather_psnr_val)\n        ssim_val_rgb = sum(gather_ssim_val) / len(gather_ssim_val)\n        print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb))\n\n        result_file = f\"{sample_folder_dir}_results.txt\"\n        print(\"writing results to {}\".format(result_file))\n        with open(result_file, 'w') as f:\n            print(\"PSNR: %f, SSIM: %f \" % (psnr_val_rgb, ssim_val_rgb), file=f)\n\n        create_npz_from_sample_folder(sample_folder_dir, num_fid_samples)\n        print(\"Done.\")\n    \n    dist.barrier()\n    dist.destroy_process_group()\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    parser.add_argument(\"--dataset\", type=str, choices=['imagenet', 'coco'], default='imagenet')\n    parser.add_argument(\"--vqgan\", type=str, choices=list(VQGAN_FROM_TAMING.keys()), default=\"vqgan_imagenet_f16_16384\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512], default=256)\n    parser.add_argument(\"--sample-dir\", type=str, default=\"reconstructions\")\n    parser.add_argument(\"--per-proc-batch-size\", type=int, default=32)\n    parser.add_argument(\"--global-seed\", type=int, default=0)\n    parser.add_argument(\"--num-workers\", type=int, default=4)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tokenizer/vqgan/taming_vqgan_demo.py",
    "content": "import argparse\nimport torch\nimport torch.nn.functional as F\nimport numpy as np\nfrom PIL import Image\nfrom omegaconf import OmegaConf\nfrom tokenizer.vqgan.model import VQModel\nfrom tokenizer.vqgan.model import VQGAN_FROM_TAMING\n\n# before running demo, make sure to:\n# (1) download all needed models from https://github.com/CompVis/taming-transformers and put in pretrained_models/\n# (2) pip install pytorch_lightning\n# (3) python3 tools/convert_pytorch_lightning_to_torch.py\n# (4) pip uninstall pytorch_lightning\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n    \n    # create and load model\n    cfg, ckpt = VQGAN_FROM_TAMING[args.vqgan]\n    config = OmegaConf.load(cfg)\n    model = VQModel(**config.model.get(\"params\", dict()))\n    model.init_from_ckpt(ckpt)\n    model.to(device)\n    model.eval()\n\n    # load image\n    img_path = args.image_path\n    out_path = args.image_path.replace('.jpg', '_vqgan.jpg').replace('.jpeg', '_vqgan.jpeg').replace('.png', '_vqgan.png')\n    input_size = args.image_size\n    img = Image.open(img_path).convert(\"RGB\")\n\n    # preprocess\n    size_org = img.size\n    img = img.resize((input_size, input_size))\n    img = np.array(img) / 255.\n    x = 2.0 * img - 1.0 # x value is between [-1, 1]\n    x = torch.tensor(x)\n    x = x.unsqueeze(dim=0)\n    x = torch.einsum('nhwc->nchw', x)\n    x_input = x.float().to(\"cuda\")\n\n    # inference\n    with torch.no_grad():\n        latent, _, [_, _, indices] = model.encode(x_input)\n        output = model.decode_code(indices, latent.shape) # output value is between [-1, 1]\n\n    # postprocess\n    output = F.interpolate(output, size=[size_org[1], size_org[0]], mode='bilinear').permute(0, 2, 3, 1)[0]\n    sample = torch.clamp(127.5 * output + 128.0, 0, 255).to(\"cpu\", dtype=torch.uint8).numpy()\n\n    # save        \n    Image.fromarray(sample).save(out_path)\n    print(\"Reconstructed image is saved to {}\".format(out_path))\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--image-path\", type=str, default=\"assets/example.jpg\")\n    parser.add_argument(\"--vqgan\", type=str, choices=list(VQGAN_FROM_TAMING.keys()), default=\"vqgan_openimage_f8_16384\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 512, 1024], default=512)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    args = parser.parse_args()\n    main(args)\n"
  },
  {
    "path": "tools/check_image_codes.py",
    "content": "import argparse\nimport torch\nimport numpy as np\n\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom torchvision.utils import save_image\n\n\ndef main(args):\n    # Setup PyTorch:\n    torch.manual_seed(args.seed)\n    torch.set_grad_enabled(False)\n    device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n    \n    # create and load model\n    vq_model = VQ_models[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.to(device)\n    vq_model.eval()\n    checkpoint = torch.load(args.vq_ckpt, map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n\n    # load image code\n    latent_dim = args.codebook_embed_dim\n    latent_size = args.image_size // args.downsample_size\n    codes = torch.from_numpy(np.load(args.code_path)).to(device)\n    if codes.ndim == 3: # flip augmentation\n        qzshape = (codes.shape[1], latent_dim, latent_size, latent_size)\n    else:\n        qzshape = (1, latent_dim, latent_size, latent_size)\n    index_sample = codes.reshape(-1)\n    samples = vq_model.decode_code(index_sample, qzshape) # output value is between [-1, 1]\n\n    # save\n    out_path = \"sample_image_code.png\"\n    nrow = max(4, int(codes.shape[1]//2))\n    save_image(samples, out_path, nrow=nrow, normalize=True, value_range=(-1, 1))\n    print(\"Reconstructed image is saved to {}\".format(out_path))\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--code-path\", type=str, required=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 448, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--seed\", type=int, default=0)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tools/convert_pytorch_lightning_to_torch.py",
    "content": "import os\nimport torch\n\nMODEL_PATH = 'pretrained_models'\npt_lightnings = [\n    'vqgan_imagenet_f16_1024/ckpts/last.ckpt',\n    'vqgan_imagenet_f16_16384/ckpts/last.ckpt',\n    'vq-f8-n256/model.ckpt',\n    'vq-f8/model.ckpt',\n]\npts = [\n    'vqgan_imagenet_f16_1024/ckpts/last.pth',\n    'vqgan_imagenet_f16_16384/ckpts/last.pth',\n    'vq-f8-n256/model.pth',\n    'vq-f8/model.pth',\n]\n\nfor pt_l, pt in zip(pt_lightnings, pts):\n    pt_l_weight = torch.load(os.path.join(MODEL_PATH, pt_l), map_location='cpu')\n    pt_weight = {\n        'state_dict': pt_l_weight['state_dict']\n    }\n    pt_path = os.path.join(MODEL_PATH, pt)\n    torch.save(pt_weight, pt_path)\n    print(f'saving to {pt_path}')\n"
  },
  {
    "path": "tools/draw_figure.py",
    "content": "import matplotlib.pyplot as plt\nimport numpy as np\n\nfont_size = 14\n\ndef fid_scaling_law_no_cfg():\n    # data\n    steps = np.array([50, 100, 200, 300,])\n    loss_b = np.array([41.025, 33.442, 32.105, 32.196])\n    loss_l = np.array([25.889, 24.654, 19.742, 19.070])\n    loss_xl = np.array([19.820, 18.037, 14.772, 15.549])\n\n    steps_ = np.array([50, 200, 300,])\n    loss_xxl = np.array([17.195, 13.997, 14.648])\n    loss_3b = np.array([16.431, 9.949, 9.380])\n    # Plot\n    plt.figure(figsize=(6, 4))\n\n    plt.plot(steps, loss_b, 'o-', label='B', color='red')\n    plt.plot(steps, loss_l, 'o-', label='L', color='orange')\n    plt.plot(steps, loss_xl, 'o-', label='XL', color='green')\n    plt.plot(steps_, loss_xxl, 'o-', label='XXL', color='blue')\n    plt.plot(steps_, loss_3b, 'o-', label='3B', color='purple')\n\n    plt.xlabel('Training Epochs', fontsize=font_size)\n    plt.ylabel('FID', fontsize=font_size)\n    # plt.grid(True)\n    # plt.yscale('log')\n\n    # Customize the plot to match the appearance of the provided figure\n    plt.legend(loc='upper right', framealpha=0.5, fontsize=font_size, facecolor='white')\n\n    # Customizing the x and y axis ticks (to match the example's steps)\n    # plt.xticks(np.linspace(0, 800000, 5), ['0', '200K', '400K', '600K', '800K'])\n    plt.yticks(np.arange(5, 50, step=5))\n\n    # Show plot\n    plt.tight_layout()\n    plt.savefig('fid_scaling_law_no_cfg.png', dpi=600)\n\n\n\ndef fid_scaling_law_cfg():\n    # data\n    steps = np.array([50, 100, 200, 300,])\n    loss_b_cfg = np.array([8.309, 7.256, 6.542, 6.249])\n    loss_l_cfg = np.array([4.240, 3.705, 3.220, 3.075])\n    loss_xl_cfg = np.array([3.420, 3.089, 2.617, 2.629])\n\n    steps_ = np.array([50, 200, 300,])\n    loss_xxl_cfg = np.array([2.893, 2.331, 2.340])\n    loss_3b_cfg = np.array([2.611, 2.381, 2.329])\n    # Plot\n    plt.figure(figsize=(6, 4))\n\n    plt.plot(steps, loss_b_cfg, 'o-', label='B', color='red')\n    plt.plot(steps, loss_l_cfg, 'o-', label='L', color='orange')\n    plt.plot(steps, loss_xl_cfg, 'o-', label='XL', color='green')\n    plt.plot(steps_, loss_xxl_cfg, 'o-', label='XXL', color='blue')\n    plt.plot(steps_, loss_3b_cfg, 'o-', label='3B', color='purple')\n\n    plt.xlabel('Training Epochs', fontsize=font_size)\n    plt.ylabel('FID', fontsize=font_size)\n    # plt.grid(True)\n    # plt.yscale('log')\n\n    # Customize the plot to match the appearance of the provided figure\n    plt.legend(loc='upper right', framealpha=0.5, fontsize=font_size, facecolor='white')\n\n    # Customizing the x and y axis ticks (to match the example's steps)\n    # plt.xticks(np.linspace(0, 800000, 5), ['0', '200K', '400K', '600K', '800K'])\n    plt.yticks(np.arange(2, 9, step=1))\n\n    # Show plot\n    plt.tight_layout()\n    plt.savefig('fid_scaling_law_cfg.png', dpi=600)\n\n\n\ndef sample_topk():\n    # Data\n    top_k = np.array([16384, 10000, 8000, 6000, 4000, 2000, 1000])\n    fid_values = np.array([3.075, 3.369, 3.643, 3.969, 4.635, 5.998, 7.428])\n    inception_scores = np.array([256.067, 265.222, 268.237, 270.159, 271.455, 267.278, 251.268])\n\n    fig, ax1 = plt.subplots()\n    # Create first y-axis\n    ax1.set_xlabel('top-k', fontsize=font_size)\n    ax1.set_ylabel('FID', color='teal', fontsize=font_size)\n    ax1.plot(top_k, fid_values, 'o-', color='teal', label=\"FID\")\n    ax1.tick_params(axis='y', labelcolor='teal')\n    ax1.tick_params(axis='x')\n\n    # Create second y-axis\n    ax2 = ax1.twinx()\n    ax2.set_ylabel('Inception Score', color='brown', fontsize=font_size)\n    ax2.plot(top_k, inception_scores, 'o-', color='brown', label=\"Inception Score\")\n    ax2.tick_params(axis='y', labelcolor='brown')\n\n    # Adding a legend\n    fig.legend(loc='upper right', bbox_to_anchor=(1.0, 1.0), bbox_transform=ax1.transAxes, fontsize=font_size)\n\n    fig.tight_layout()  # Adjust layout to prevent overlap\n    plt.savefig('effect_topk.png', dpi=600)\n\n\n\ndef sample_cfg():\n    # Data\n    cfg = np.array([1.5, 1.75, 2.00, 2.25])\n    fid_values = np.array([4.743, 3.151, 3.075, 3.620])\n    inception_scores = np.array([165.381, 214.152, 256.067, 291.695])\n\n    plt.figure(figsize=(10, 4))\n    fig, ax1 = plt.subplots()\n    # Create first y-axis\n    ax1.set_xlabel('cfg', fontsize=font_size)\n    ax1.set_ylabel('FID', color='teal', fontsize=font_size)\n    ax1.plot(cfg, fid_values, 'o-', color='teal', label=\"FID\")\n    ax1.tick_params(axis='y', labelcolor='teal')\n    ax1.tick_params(axis='x')\n\n    # Create second y-axis\n    ax2 = ax1.twinx()\n    ax2.set_ylabel('Inception Score', color='brown', fontsize=font_size)\n    ax2.plot(cfg, inception_scores, 'o-', color='brown', label=\"Inception Score\")\n    ax2.tick_params(axis='y', labelcolor='brown')\n\n    # Adding a legend\n    fig.legend(loc='upper right', bbox_to_anchor=(1.0, 1.0), bbox_transform=ax1.transAxes, fontsize=font_size)\n\n    fig.tight_layout()  # Adjust layout to prevent overlap\n    plt.savefig('effect_cfg.png', dpi=600)\n\n\n\nif __name__ == \"__main__\":\n    fid_scaling_law_no_cfg()\n    fid_scaling_law_cfg()\n    sample_cfg()\n    sample_topk()\n"
  },
  {
    "path": "tools/imagenet_en_cn.py",
    "content": "IMAGENET_1K_CLASSES = {\n  0: 'tench, Tinca tinca [丁鲷]',\n  1: 'goldfish, Carassius auratus [金鱼]',\n  2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias [大白鲨]',\n  3: 'tiger shark, Galeocerdo cuvieri [虎鲨]',\n  4: 'hammerhead, hammerhead shark [锤头鲨]',\n  5: 'electric ray, crampfish, numbfish, torpedo [电鳐]',\n  6: 'stingray [黄貂鱼]',\n  7: 'cock [公鸡]',\n  8: 'hen [母鸡]',\n  9: 'ostrich, Struthio camelus [鸵鸟]',\n  10: 'brambling, Fringilla montifringilla [燕雀]',\n  11: 'goldfinch, Carduelis carduelis [金翅雀]',\n  12: 'house finch, linnet, Carpodacus mexicanus [家朱雀]',\n  13: 'junco, snowbird [灯芯草雀]',\n  14: 'indigo bunting, indigo finch, indigo bird, Passerina cyanea [靛蓝雀,靛蓝鸟]',\n  15: 'robin, American robin, Turdus migratorius [蓝鹀]',\n  16: 'bulbul [夜莺]',\n  17: 'jay [松鸦]',\n  18: 'magpie [喜鹊]',\n  19: 'chickadee [山雀]',\n  20: 'water ouzel, dipper [河鸟]',\n  21: 'kite [鸢（猛禽）]',\n  22: 'bald eagle, American eagle, Haliaeetus leucocephalus [秃头鹰]',\n  23: 'vulture [秃鹫]',\n  24: 'great grey owl, great gray owl, Strix nebulosa [大灰猫头鹰]',\n  25: 'European fire salamander, Salamandra salamandra [欧洲火蝾螈]',\n  26: 'common newt, Triturus vulgaris [普通蝾螈]',\n  27: 'eft [水蜥]',\n  28: 'spotted salamander, Ambystoma maculatum [斑点蝾螈]',\n  29: 'axolotl, mud puppy, Ambystoma mexicanum [蝾螈,泥狗]',\n  30: 'bullfrog, Rana catesbeiana [牛蛙]',\n  31: 'tree frog, tree-frog [树蛙]',\n  32: 'tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui [尾蛙,铃蟾蜍,肋蟾蜍,尾蟾蜍]',\n  33: 'loggerhead, loggerhead turtle, Caretta caretta [红海龟]',\n  34: 'leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea [皮革龟]',\n  35: 'mud turtle [泥龟]',\n  36: 'terrapin [淡水龟]',\n  37: 'box turtle, box tortoise [箱龟]',\n  38: 'banded gecko [带状壁虎]',\n  39: 'common iguana, iguana, Iguana iguana [普通鬣蜥]',\n  40: 'American chameleon, anole, Anolis carolinensis [美国变色龙]',\n  41: 'whiptail, whiptail lizard [鞭尾蜥蜴]',\n  42: 'agama [飞龙科蜥蜴]',\n  43: 'frilled lizard, Chlamydosaurus kingi [褶边蜥蜴]',\n  44: 'alligator lizard [鳄鱼蜥蜴]',\n  45: 'Gila monster, Heloderma suspectum [毒蜥]',\n  46: 'green lizard, Lacerta viridis [绿蜥蜴]',\n  47: 'African chameleon, Chamaeleo chamaeleon [非洲变色龙]',\n  48: 'Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis [科莫多蜥蜴]',\n  49: 'African crocodile, Nile crocodile, Crocodylus niloticus [非洲鳄,尼罗河鳄鱼]',\n  50: 'American alligator, Alligator mississipiensis [美国鳄鱼,鳄鱼]',\n  51: 'triceratops [三角龙]',\n  52: 'thunder snake, worm snake, Carphophis amoenus [雷蛇,蠕虫蛇]',\n  53: 'ringneck snake, ring-necked snake, ring snake [环蛇,环颈蛇]',\n  54: 'hognose snake, puff adder, sand viper [希腊蛇]',\n  55: 'green snake, grass snake [绿蛇,草蛇]',\n  56: 'king snake, kingsnake [国王蛇]',\n  57: 'garter snake, grass snake [袜带蛇,草蛇]',\n  58: 'water snake [水蛇]',\n  59: 'vine snake [藤蛇]',\n  60: 'night snake, Hypsiglena torquata [夜蛇]',\n  61: 'boa constrictor, Constrictor constrictor [大蟒蛇]',\n  62: 'rock python, rock snake, Python sebae [岩石蟒蛇,岩蛇,蟒蛇]',\n  63: 'Indian cobra, Naja naja [印度眼镜蛇]',\n  64: 'green mamba [绿曼巴]',\n  65: 'sea snake [海蛇]',\n  66: 'horned viper, cerastes, sand viper, horned asp, Cerastes cornutus [角腹蛇]',\n  67: 'diamondback, diamondback rattlesnake, Crotalus adamanteus [菱纹响尾蛇]',\n  68: 'sidewinder, horned rattlesnake, Crotalus cerastes [角响尾蛇]',\n  69: 'trilobite [三叶虫]',\n  70: 'harvestman, daddy longlegs, Phalangium opilio [盲蜘蛛]',\n  71: 'scorpion [蝎子]',\n  72: 'black and gold garden spider, Argiope aurantia [黑金花园蜘蛛]',\n  73: 'barn spider, Araneus cavaticus [谷仓蜘蛛]',\n  74: 'garden spider, Aranea diademata [花园蜘蛛]',\n  75: 'black widow, Latrodectus mactans [黑寡妇蜘蛛]',\n  76: 'tarantula [狼蛛]',\n  77: 'wolf spider, hunting spider [狼蜘蛛,狩猎蜘蛛]',\n  78: 'tick [壁虱]',\n  79: 'centipede [蜈蚣]',\n  80: 'black grouse [黑松鸡]',\n  81: 'ptarmigan [松鸡,雷鸟]',\n  82: 'ruffed grouse, partridge, Bonasa umbellus [披肩鸡,披肩榛鸡]',\n  83: 'prairie chicken, prairie grouse, prairie fowl [草原鸡,草原松鸡]',\n  84: 'peacock [孔雀]',\n  85: 'quail [鹌鹑]',\n  86: 'partridge [鹧鸪]',\n  87: 'African grey, African gray, Psittacus erithacus [非洲灰鹦鹉]',\n  88: 'macaw [金刚鹦鹉]',\n  89: 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita [硫冠鹦鹉]',\n  90: 'lorikeet [短尾鹦鹉]',\n  91: 'coucal [褐翅鸦鹃]',\n  92: 'bee eater [蜜蜂]',\n  93: 'hornbill [犀鸟]',\n  94: 'hummingbird [蜂鸟]',\n  95: 'jacamar [鹟䴕]',\n  96: 'toucan [犀鸟]',\n  97: 'drake [野鸭]',\n  98: 'red-breasted merganser, Mergus serrator [红胸秋沙鸭]',\n  99: 'goose [鹅]',\n  100: 'black swan, Cygnus atratus [黑天鹅]',\n  101: 'tusker [大象]',\n  102: 'echidna, spiny anteater, anteater [针鼹鼠]',\n  103: 'platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus [鸭嘴兽]',\n  104: 'wallaby, brush kangaroo [沙袋鼠]',\n  105: 'koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus [考拉,考拉熊]',\n  106: 'wombat [袋熊]',\n  107: 'jellyfish [水母]',\n  108: 'sea anemone, anemone [海葵]',\n  109: 'brain coral [脑珊瑚]',\n  110: 'flatworm, platyhelminth [扁形虫扁虫]',\n  111: 'nematode, nematode worm, roundworm [线虫,蛔虫]',\n  112: 'conch [海螺]',\n  113: 'snail [蜗牛]',\n  114: 'slug [鼻涕虫]',\n  115: 'sea slug, nudibranch [海参]',\n  116: 'chiton, coat-of-mail shell, sea cradle, polyplacophore [石鳖]',\n  117: 'chambered nautilus, pearly nautilus, nautilus [鹦鹉螺]',\n  118: 'Dungeness crab, Cancer magister [珍宝蟹]',\n  119: 'rock crab, Cancer irroratus [石蟹]',\n  120: 'fiddler crab [招潮蟹]',\n  121: 'king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica [帝王蟹,阿拉斯加蟹,阿拉斯加帝王蟹]',\n  122: 'American lobster, Northern lobster, Maine lobster, Homarus americanus [美国龙虾,缅因州龙虾]',\n  123: 'spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish [大螯虾]',\n  124: 'crayfish, crawfish, crawdad, crawdaddy [小龙虾]',\n  125: 'hermit crab [寄居蟹]',\n  126: 'isopod [等足目动物(明虾和螃蟹近亲)]',\n  127: 'white stork, Ciconia ciconia [白鹳]',\n  128: 'black stork, Ciconia nigra [黑鹳]',\n  129: 'spoonbill [鹭]',\n  130: 'flamingo [火烈鸟]',\n  131: 'little blue heron, Egretta caerulea [小蓝鹭]',\n  132: 'American egret, great white heron, Egretta albus [美国鹭,大白鹭]',\n  133: 'bittern [麻鸦]',\n  134: 'crane [鹤]',\n  135: 'limpkin, Aramus pictus [秧鹤]',\n  136: 'European gallinule, Porphyrio porphyrio [欧洲水鸡,紫水鸡]',\n  137: 'American coot, marsh hen, mud hen, water hen, Fulica americana [沼泽泥母鸡,水母鸡]',\n  138: 'bustard [鸨]',\n  139: 'ruddy turnstone, Arenaria interpres [红翻石鹬]',\n  140: 'red-backed sandpiper, dunlin, Erolia alpina [红背鹬,黑腹滨鹬]',\n  141: 'redshank, Tringa totanus [红脚鹬]',\n  142: 'dowitcher [半蹼鹬]',\n  143: 'oystercatcher, oyster catcher [蛎鹬]',\n  144: 'pelican [鹈鹕]',\n  145: 'king penguin, Aptenodytes patagonica [国王企鹅]',\n  146: 'albatross, mollymawk [信天翁,大海鸟]',\n  147: 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus [灰鲸]',\n  148: 'killer whale, killer, orca, grampus, sea wolf, Orcinus orca [杀人鲸,逆戟鲸,虎鲸]',\n  149: 'dugong, Dugong dugon [海牛]',\n  150: 'sea lion [海狮]',\n  151: 'Chihuahua [奇瓦瓦]',\n  152: 'Japanese spaniel [日本猎犬]',\n  153: 'Maltese dog, Maltese terrier, Maltese [马尔济斯犬]',\n  154: 'Pekinese, Pekingese, Peke [狮子狗]',\n  155: 'Shih-Tzu [西施犬]',\n  156: 'Blenheim spaniel [布莱尼姆猎犬]',\n  157: 'papillon [巴比狗]',\n  158: 'toy terrier [玩具犬]',\n  159: 'Rhodesian ridgeback [罗得西亚长背猎狗]',\n  160: 'Afghan hound, Afghan [阿富汗猎犬]',\n  161: 'basset, basset hound [猎犬]',\n  162: 'beagle [比格犬,猎兔犬]',\n  163: 'bloodhound, sleuthhound [侦探犬]',\n  164: 'bluetick [蓝色快狗]',\n  165: 'black-and-tan coonhound [黑褐猎浣熊犬]',\n  166: 'Walker hound, Walker foxhound [沃克猎犬]',\n  167: 'English foxhound [英国猎狐犬]',\n  168: 'redbone [美洲赤狗]',\n  169: 'borzoi, Russian wolfhound [俄罗斯猎狼犬]',\n  170: 'Irish wolfhound [爱尔兰猎狼犬]',\n  171: 'Italian greyhound [意大利灰狗]',\n  172: 'whippet [惠比特犬]',\n  173: 'Ibizan hound, Ibizan Podenco [依比沙猎犬]',\n  174: 'Norwegian elkhound, elkhound [挪威猎犬]',\n  175: 'otterhound, otter hound [奥达猎犬,水獭猎犬]',\n  176: 'Saluki, gazelle hound [沙克犬,瞪羚猎犬]',\n  177: 'Scottish deerhound, deerhound [苏格兰猎鹿犬,猎鹿犬]',\n  178: 'Weimaraner [威玛猎犬]',\n  179: 'Staffordshire bullterrier, Staffordshire bull terrier [斯塔福德郡牛头梗,斯塔福德郡斗牛梗]',\n  180: 'American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier [美国斯塔福德郡梗,美国比特斗牛梗,斗牛梗]',\n  181: 'Bedlington terrier [贝德灵顿梗]',\n  182: 'Border terrier [边境梗]',\n  183: 'Kerry blue terrier [凯丽蓝梗]',\n  184: 'Irish terrier [爱尔兰梗]',\n  185: 'Norfolk terrier [诺福克梗]',\n  186: 'Norwich terrier [诺维奇梗]',\n  187: 'Yorkshire terrier [约克郡梗]',\n  188: 'wire-haired fox terrier [刚毛猎狐梗]',\n  189: 'Lakeland terrier [莱克兰梗]',\n  190: 'Sealyham terrier, Sealyham [锡利哈姆梗]',\n  191: 'Airedale, Airedale terrier [艾尔谷犬]',\n  192: 'cairn, cairn terrier [凯恩梗]',\n  193: 'Australian terrier [澳大利亚梗]',\n  194: 'Dandie Dinmont, Dandie Dinmont terrier [丹迪丁蒙梗]',\n  195: 'Boston bull, Boston terrier [波士顿梗]',\n  196: 'miniature schnauzer [迷你雪纳瑞犬]',\n  197: 'giant schnauzer [巨型雪纳瑞犬]',\n  198: 'standard schnauzer [标准雪纳瑞犬]',\n  199: 'Scotch terrier, Scottish terrier, Scottie [苏格兰梗]',\n  200: 'Tibetan terrier, chrysanthemum dog [西藏梗,菊花狗]',\n  201: 'silky terrier, Sydney silky [丝毛梗]',\n  202: 'soft-coated wheaten terrier [软毛麦色梗]',\n  203: 'West Highland white terrier [西高地白梗]',\n  204: 'Lhasa, Lhasa apso [拉萨阿普索犬]',\n  205: 'flat-coated retriever [平毛寻回犬]',\n  206: 'curly-coated retriever [卷毛寻回犬]',\n  207: 'golden retriever [金毛猎犬]',\n  208: 'Labrador retriever [拉布拉多猎犬]',\n  209: 'Chesapeake Bay retriever [乞沙比克猎犬]',\n  210: 'German short-haired pointer [德国短毛猎犬]',\n  211: 'vizsla, Hungarian pointer [维兹拉犬]',\n  212: 'English setter [英国谍犬]',\n  213: 'Irish setter, red setter [爱尔兰雪达犬,红色猎犬]',\n  214: 'Gordon setter [戈登雪达犬]',\n  215: 'Brittany spaniel [布列塔尼犬猎犬]',\n  216: 'clumber, clumber spaniel [黄毛,黄毛猎犬]',\n  217: 'English springer, English springer spaniel [英国史宾格犬]',\n  218: 'Welsh springer spaniel [威尔士史宾格犬]',\n  219: 'cocker spaniel, English cocker spaniel, cocker [可卡犬,英国可卡犬]',\n  220: 'Sussex spaniel [萨塞克斯猎犬]',\n  221: 'Irish water spaniel [爱尔兰水猎犬]',\n  222: 'kuvasz [哥威斯犬]',\n  223: 'schipperke [舒柏奇犬]',\n  224: 'groenendael [比利时牧羊犬]',\n  225: 'malinois [马里努阿犬]',\n  226: 'briard [伯瑞犬]',\n  227: 'kelpie [凯尔皮犬]',\n  228: 'komondor [匈牙利牧羊犬]',\n  229: 'Old English sheepdog, bobtail [老英国牧羊犬]',\n  230: 'Shetland sheepdog, Shetland sheep dog, Shetland [喜乐蒂牧羊犬]',\n  231: 'collie [牧羊犬]',\n  232: 'Border collie [边境牧羊犬]',\n  233: 'Bouvier des Flandres, Bouviers des Flandres [法兰德斯牧牛狗]',\n  234: 'Rottweiler [罗特韦尔犬]',\n  235: 'German shepherd, German shepherd dog, German police dog, alsatian [德国牧羊犬,德国警犬,阿尔萨斯]',\n  236: 'Doberman, Doberman pinscher [多伯曼犬,杜宾犬]',\n  237: 'miniature pinscher [迷你杜宾犬]',\n  238: 'Greater Swiss Mountain dog [大瑞士山地犬]',\n  239: 'Bernese mountain dog [伯恩山犬]',\n  240: 'Appenzeller [Appenzeller狗]',\n  241: 'EntleBucher [EntleBucher狗]',\n  242: 'boxer [拳师狗]',\n  243: 'bull mastiff [斗牛獒]',\n  244: 'Tibetan mastiff [藏獒]',\n  245: 'French bulldog [法国斗牛犬]',\n  246: 'Great Dane [大丹犬]',\n  247: 'Saint Bernard, St Bernard [圣伯纳德狗]',\n  248: 'Eskimo dog, husky [爱斯基摩犬,哈士奇]',\n  249: 'malamute, malemute, Alaskan malamute [雪橇犬,阿拉斯加爱斯基摩狗]',\n  250: 'Siberian husky [哈士奇]',\n  251: 'dalmatian, coach dog, carriage dog [达尔马提亚,教练车狗]',\n  252: 'affenpinscher, monkey pinscher, monkey dog [狮毛狗]',\n  253: 'basenji [巴辛吉狗]',\n  254: 'pug, pug-dog [哈巴狗,狮子狗]',\n  255: 'Leonberg [莱昂贝格狗]',\n  256: 'Newfoundland, Newfoundland dog [纽芬兰岛狗]',\n  257: 'Great Pyrenees [大白熊犬]',\n  258: 'Samoyed, Samoyede [萨摩耶犬]',\n  259: 'Pomeranian [博美犬]',\n  260: 'chow, chow chow [松狮,松狮]',\n  261: 'keeshond [荷兰卷尾狮毛狗]',\n  262: 'Brabancon griffon [布鲁塞尔格林芬犬]',\n  263: 'Pembroke, Pembroke Welsh corgi [彭布洛克威尔士科基犬]',\n  264: 'Cardigan, Cardigan Welsh corgi [威尔士柯基犬]',\n  265: 'toy poodle [玩具贵宾犬]',\n  266: 'miniature poodle [迷你贵宾犬]',\n  267: 'standard poodle [标准贵宾犬]',\n  268: 'Mexican hairless [墨西哥无毛犬]',\n  269: 'timber wolf, grey wolf, gray wolf, Canis lupus [灰狼]',\n  270: 'white wolf, Arctic wolf, Canis lupus tundrarum [白狼,北极狼]',\n  271: 'red wolf, maned wolf, Canis rufus, Canis niger [红太狼,鬃狼,犬犬鲁弗斯]',\n  272: 'coyote, prairie wolf, brush wolf, Canis latrans [狼,草原狼,刷狼,郊狼]',\n  273: 'dingo, warrigal, warragal, Canis dingo [澳洲野狗,澳大利亚野犬]',\n  274: 'dhole, Cuon alpinus [豺]',\n  275: 'African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus [非洲猎犬,土狼犬]',\n  276: 'hyena, hyaena [鬣狗]',\n  277: 'red fox, Vulpes vulpes [红狐狸]',\n  278: 'kit fox, Vulpes macrotis [沙狐]',\n  279: 'Arctic fox, white fox, Alopex lagopus [北极狐狸,白狐狸]',\n  280: 'grey fox, gray fox, Urocyon cinereoargenteus [灰狐狸]',\n  281: 'tabby, tabby cat [虎斑猫]',\n  282: 'tiger cat [山猫,虎猫]',\n  283: 'Persian cat [波斯猫]',\n  284: 'Siamese cat, Siamese [暹罗暹罗猫,]',\n  285: 'Egyptian cat [埃及猫]',\n  286: 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor [美洲狮,美洲豹]',\n  287: 'lynx, catamount [猞猁,山猫]',\n  288: 'leopard, Panthera pardus [豹子]',\n  289: 'snow leopard, ounce, Panthera uncia [雪豹]',\n  290: 'jaguar, panther, Panthera onca, Felis onca [美洲虎]',\n  291: 'lion, king of beasts, Panthera leo [狮子]',\n  292: 'tiger, Panthera tigris [老虎]',\n  293: 'cheetah, chetah, Acinonyx jubatus [猎豹]',\n  294: 'brown bear, bruin, Ursus arctos [棕熊]',\n  295: 'American black bear, black bear, Ursus americanus, Euarctos americanus [美洲黑熊]',\n  296: 'ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus [冰熊,北极熊]',\n  297: 'sloth bear, Melursus ursinus, Ursus ursinus [懒熊]',\n  298: 'mongoose [猫鼬]',\n  299: 'meerkat, mierkat [猫鼬,海猫]',\n  300: 'tiger beetle [虎甲虫]',\n  301: 'ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle [瓢虫]',\n  302: 'ground beetle, carabid beetle [土鳖虫]',\n  303: 'long-horned beetle, longicorn, longicorn beetle [天牛]',\n  304: 'leaf beetle, chrysomelid [龟甲虫]',\n  305: 'dung beetle [粪甲虫]',\n  306: 'rhinoceros beetle [犀牛甲虫]',\n  307: 'weevil [象甲]',\n  308: 'fly [苍蝇]',\n  309: 'bee [蜜蜂]',\n  310: 'ant, emmet, pismire [蚂蚁]',\n  311: 'grasshopper, hopper [蚱蜢]',\n  312: 'cricket [蟋蟀]',\n  313: 'walking stick, walkingstick, stick insect [竹节虫]',\n  314: 'cockroach, roach [蟑螂]',\n  315: 'mantis, mantid [螳螂]',\n  316: 'cicada, cicala [蝉]',\n  317: 'leafhopper [叶蝉]',\n  318: 'lacewing, lacewing fly [草蜻蛉]',\n  319: 'dragonfly, darning needle, devils darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk [蜻蜓]',\n  320: 'damselfly [豆娘,蜻蛉]',\n  321: 'admiral [优红蛱蝶]',\n  322: 'ringlet, ringlet butterfly [小环蝴蝶]',\n  323: 'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus [君主蝴蝶,大斑蝶]',\n  324: 'cabbage butterfly [菜粉蝶]',\n  325: 'sulphur butterfly, sulfur butterfly [白蝴蝶]',\n  326: 'lycaenid, lycaenid butterfly [灰蝶]',\n  327: 'starfish, sea star [海星]',\n  328: 'sea urchin [海胆]',\n  329: 'sea cucumber, holothurian [海参,海黄瓜]',\n  330: 'wood rabbit, cottontail, cottontail rabbit [野兔]',\n  331: 'hare [兔]',\n  332: 'Angora, Angora rabbit [安哥拉兔]',\n  333: 'hamster [仓鼠]',\n  334: 'porcupine, hedgehog [刺猬,豪猪,]',\n  335: 'fox squirrel, eastern fox squirrel, Sciurus niger [黑松鼠]',\n  336: 'marmot [土拨鼠]',\n  337: 'beaver [海狸]',\n  338: 'guinea pig, Cavia cobaya [豚鼠,豚鼠]',\n  339: 'sorrel [栗色马]',\n  340: 'zebra [斑马]',\n  341: 'hog, pig, grunter, squealer, Sus scrofa [猪]',\n  342: 'wild boar, boar, Sus scrofa [野猪]',\n  343: 'warthog [疣猪]',\n  344: 'hippopotamus, hippo, river horse, Hippopotamus amphibius [河马]',\n  345: 'ox [牛]',\n  346: 'water buffalo, water ox, Asiatic buffalo, Bubalus bubalis [水牛,亚洲水牛]',\n  347: 'bison [野牛]',\n  348: 'ram, tup [公羊]',\n  349: 'bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis [大角羊,洛矶山大角羊]',\n  350: 'ibex, Capra ibex [山羊]',\n  351: 'hartebeest [狷羚]',\n  352: 'impala, Aepyceros melampus [黑斑羚]',\n  353: 'gazelle [瞪羚]',\n  354: 'Arabian camel, dromedary, Camelus dromedarius [阿拉伯单峰骆驼,骆驼]',\n  355: 'llama [骆驼]',\n  356: 'weasel [黄鼠狼]',\n  357: 'mink [水貂]',\n  358: 'polecat, fitch, foulmart, foumart, Mustela putorius [臭猫]',\n  359: 'black-footed ferret, ferret, Mustela nigripes [黑足鼬]',\n  360: 'otter [水獭]',\n  361: 'skunk, polecat, wood pussy [臭鼬,木猫]',\n  362: 'badger [獾]',\n  363: 'armadillo [犰狳]',\n  364: 'three-toed sloth, ai, Bradypus tridactylus [树懒]',\n  365: 'orangutan, orang, orangutang, Pongo pygmaeus [猩猩,婆罗洲猩猩]',\n  366: 'gorilla, Gorilla gorilla [大猩猩]',\n  367: 'chimpanzee, chimp, Pan troglodytes [黑猩猩]',\n  368: 'gibbon, Hylobates lar [长臂猿]',\n  369: 'siamang, Hylobates syndactylus, Symphalangus syndactylus [合趾猿长臂猿,合趾猿]',\n  370: 'guenon, guenon monkey [长尾猴]',\n  371: 'patas, hussar monkey, Erythrocebus patas [赤猴]',\n  372: 'baboon [狒狒]',\n  373: 'macaque [恒河猴,猕猴]',\n  374: 'langur [白头叶猴]',\n  375: 'colobus, colobus monkey [疣猴]',\n  376: 'proboscis monkey, Nasalis larvatus [长鼻猴]',\n  377: 'marmoset [狨（美洲产小型长尾猴）]',\n  378: 'capuchin, ringtail, Cebus capucinus [卷尾猴]',\n  379: 'howler monkey, howler [吼猴]',\n  380: 'titi, titi monkey [伶猴]',\n  381: 'spider monkey, Ateles geoffroyi [蜘蛛猴]',\n  382: 'squirrel monkey, Saimiri sciureus [松鼠猴]',\n  383: 'Madagascar cat, ring-tailed lemur, Lemur catta [马达加斯加环尾狐猴,鼠狐猴]',\n  384: 'indri, indris, Indri indri, Indri brevicaudatus [大狐猴,马达加斯加大狐猴]',\n  385: 'Indian elephant, Elephas maximus [印度大象,亚洲象]',\n  386: 'African elephant, Loxodonta africana [非洲象,非洲象]',\n  387: 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens [小熊猫]',\n  388: 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca [大熊猫]',\n  389: 'barracouta, snoek [杖鱼]',\n  390: 'eel [鳗鱼]',\n  391: 'coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch [银鲑,银鲑鱼]',\n  392: 'rock beauty, Holocanthus tricolor [三色刺蝶鱼]',\n  393: 'anemone fish [海葵鱼]',\n  394: 'sturgeon [鲟鱼]',\n  395: 'gar, garfish, garpike, billfish, Lepisosteus osseus [雀鳝]',\n  396: 'lionfish [狮子鱼]',\n  397: 'puffer, pufferfish, blowfish, globefish [河豚]',\n  398: 'abacus [算盘]',\n  399: 'abaya [长袍]',\n  400: 'academic gown, academic robe, judge robe [学位袍]',\n  401: 'accordion, piano accordion, squeeze box [手风琴]',\n  402: 'acoustic guitar [原声吉他]',\n  403: 'aircraft carrier, carrier, flattop, attack aircraft carrier [航空母舰]',\n  404: 'airliner [客机]',\n  405: 'airship, dirigible [飞艇]',\n  406: 'altar [祭坛]',\n  407: 'ambulance [救护车]',\n  408: 'amphibian, amphibious vehicle [水陆两用车]',\n  409: 'analog clock [模拟时钟]',\n  410: 'apiary, bee house [蜂房]',\n  411: 'apron [围裙]',\n  412: 'ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin [垃圾桶]',\n  413: 'assault rifle, assault gun [攻击步枪,枪]',\n  414: 'backpack, back pack, knapsack, packsack, rucksack, haversack [背包]',\n  415: 'bakery, bakeshop, bakehouse [面包店,面包铺,]',\n  416: 'balance beam, beam [平衡木]',\n  417: 'balloon [热气球]',\n  418: 'ballpoint, ballpoint pen, ballpen, Biro [圆珠笔]',\n  419: 'Band Aid [创可贴]',\n  420: 'banjo [班卓琴]',\n  421: 'bannister, banister, balustrade, balusters, handrail [栏杆,楼梯扶手]',\n  422: 'barbell [杠铃]',\n  423: 'barber chair [理发师的椅子]',\n  424: 'barbershop [理发店]',\n  425: 'barn [牲口棚]',\n  426: 'barometer [晴雨表]',\n  427: 'barrel, cask [圆筒]',\n  428: 'barrow, garden cart, lawn cart, wheelbarrow [园地小车,手推车]',\n  429: 'baseball [棒球]',\n  430: 'basketball [篮球]',\n  431: 'bassinet [婴儿床]',\n  432: 'bassoon [巴松管,低音管]',\n  433: 'bathing cap, swimming cap [游泳帽]',\n  434: 'bath towel [沐浴毛巾]',\n  435: 'bathtub, bathing tub, bath, tub [浴缸,澡盆]',\n  436: 'beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon [沙滩车,旅行车]',\n  437: 'beacon, lighthouse, beacon light, pharos [灯塔]',\n  438: 'beaker [高脚杯]',\n  439: 'bearskin, busby, shako [熊皮高帽]',\n  440: 'beer bottle [啤酒瓶]',\n  441: 'beer glass [啤酒杯]',\n  442: 'bell cote, bell cot [钟塔]',\n  443: 'bib [（小儿用的）围嘴]',\n  444: 'bicycle-built-for-two, tandem bicycle, tandem [串联自行车,]',\n  445: 'bikini, two-piece [比基尼]',\n  446: 'binder, ring-binder [装订册]',\n  447: 'binoculars, field glasses, opera glasses [双筒望远镜]',\n  448: 'birdhouse [鸟舍]',\n  449: 'boathouse [船库]',\n  450: 'bobsled, bobsleigh, bob [雪橇]',\n  451: 'bolo tie, bolo, bola tie, bola [饰扣式领带]',\n  452: 'bonnet, poke bonnet [阔边女帽]',\n  453: 'bookcase [书橱]',\n  454: 'bookshop, bookstore, bookstall [书店,书摊]',\n  455: 'bottlecap [瓶盖]',\n  456: 'bow [弓箭]',\n  457: 'bow tie, bow-tie, bowtie [蝴蝶结领结]',\n  458: 'brass, memorial tablet, plaque [铜制牌位]',\n  459: 'brassiere, bra, bandeau [奶罩]',\n  460: 'breakwater, groin, groyne, mole, bulwark, seawall, jetty [防波堤,海堤]',\n  461: 'breastplate, aegis, egis [铠甲]',\n  462: 'broom [扫帚]',\n  463: 'bucket, pail [桶]',\n  464: 'buckle [扣环]',\n  465: 'bulletproof vest [防弹背心]',\n  466: 'bullet train, bullet [动车,子弹头列车]',\n  467: 'butcher shop, meat market [肉铺,肉菜市场]',\n  468: 'cab, hack, taxi, taxicab [出租车]',\n  469: 'caldron, cauldron [大锅]',\n  470: 'candle, taper, wax light [蜡烛]',\n  471: 'cannon [大炮]',\n  472: 'canoe [独木舟]',\n  473: 'can opener, tin opener [开瓶器,开罐器]',\n  474: 'cardigan [开衫]',\n  475: 'car mirror [车镜]',\n  476: 'carousel, carrousel, merry-go-round, roundabout, whirligig [旋转木马]',\n  477: 'carpenters kit, tool kit [木匠的工具包,工具包]',\n  478: 'carton [纸箱]',\n  479: 'car wheel [车轮]',\n  480: 'cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM [取款机,自动取款机]',\n  481: 'cassette [盒式录音带]',\n  482: 'cassette player [卡带播放器]',\n  483: 'castle [城堡]',\n  484: 'catamaran [双体船]',\n  485: 'CD player [CD播放器]',\n  486: 'cello, violoncello [大提琴]',\n  487: 'cellular telephone, cellular phone, cellphone, cell, mobile phone [移动电话,手机]',\n  488: 'chain [铁链]',\n  489: 'chainlink fence [围栏]',\n  490: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour [链甲]',\n  491: 'chain saw, chainsaw [电锯,油锯]',\n  492: 'chest [箱子]',\n  493: 'chiffonier, commode [衣柜,洗脸台]',\n  494: 'chime, bell, gong [编钟,钟,锣]',\n  495: 'china cabinet, china closet [中国橱柜]',\n  496: 'Christmas stocking [圣诞袜]',\n  497: 'church, church building [教堂,教堂建筑]',\n  498: 'cinema, movie theater, movie theatre, movie house, picture palace [电影院,剧场]',\n  499: 'cleaver, meat cleaver, chopper [切肉刀,菜刀]',\n  500: 'cliff dwelling [悬崖屋]',\n  501: 'cloak [斗篷]',\n  502: 'clog, geta, patten, sabot [木屐,木鞋]',\n  503: 'cocktail shaker [鸡尾酒调酒器]',\n  504: 'coffee mug [咖啡杯]',\n  505: 'coffeepot [咖啡壶]',\n  506: 'coil, spiral, volute, whorl, helix [螺旋结构（楼梯）]',\n  507: 'combination lock [组合锁]',\n  508: 'computer keyboard, keypad [电脑键盘,键盘]',\n  509: 'confectionery, confectionary, candy store [糖果,糖果店]',\n  510: 'container ship, containership, container vessel [集装箱船]',\n  511: 'convertible [敞篷车]',\n  512: 'corkscrew, bottle screw [开瓶器,瓶螺杆]',\n  513: 'cornet, horn, trumpet, trump [短号,喇叭]',\n  514: 'cowboy boot [牛仔靴]',\n  515: 'cowboy hat, ten-gallon hat [牛仔帽]',\n  516: 'cradle [摇篮]',\n  517: 'crane [起重机]',\n  518: 'crash helmet [头盔]',\n  519: 'crate [板条箱]',\n  520: 'crib, cot [小儿床]',\n  521: 'Crock Pot [砂锅]',\n  522: 'croquet ball [槌球]',\n  523: 'crutch [拐杖]',\n  524: 'cuirass [胸甲]',\n  525: 'dam, dike, dyke [大坝,堤防]',\n  526: 'desk [书桌]',\n  527: 'desktop computer [台式电脑]',\n  528: 'dial telephone, dial phone [有线电话]',\n  529: 'diaper, nappy, napkin [尿布湿]',\n  530: 'digital clock [数字时钟]',\n  531: 'digital watch [数字手表]',\n  532: 'dining table, board [餐桌板]',\n  533: 'dishrag, dishcloth [抹布]',\n  534: 'dishwasher, dish washer, dishwashing machine [洗碗机,洗碟机]',\n  535: 'disk brake, disc brake [盘式制动器]',\n  536: 'dock, dockage, docking facility [码头,船坞,码头设施]',\n  537: 'dogsled, dog sled, dog sleigh [狗拉雪橇]',\n  538: 'dome [圆顶]',\n  539: 'doormat, welcome mat [门垫,垫子]',\n  540: 'drilling platform, offshore rig [钻井平台,海上钻井]',\n  541: 'drum, membranophone, tympan [鼓,乐器,鼓膜]',\n  542: 'drumstick [鼓槌]',\n  543: 'dumbbell [哑铃]',\n  544: 'Dutch oven [荷兰烤箱]',\n  545: 'electric fan, blower [电风扇,鼓风机]',\n  546: 'electric guitar [电吉他]',\n  547: 'electric locomotive [电力机车]',\n  548: 'entertainment center [电视,电视柜]',\n  549: 'envelope [信封]',\n  550: 'espresso maker [浓缩咖啡机]',\n  551: 'face powder [扑面粉]',\n  552: 'feather boa, boa [女用长围巾]',\n  553: 'file, file cabinet, filing cabinet [文件,文件柜,档案柜]',\n  554: 'fireboat [消防船]',\n  555: 'fire engine, fire truck [消防车]',\n  556: 'fire screen, fireguard [火炉栏]',\n  557: 'flagpole, flagstaff [旗杆]',\n  558: 'flute, transverse flute [长笛]',\n  559: 'folding chair [折叠椅]',\n  560: 'football helmet [橄榄球头盔]',\n  561: 'forklift [叉车]',\n  562: 'fountain [喷泉]',\n  563: 'fountain pen [钢笔]',\n  564: 'four-poster [有四根帷柱的床]',\n  565: 'freight car [运货车厢]',\n  566: 'French horn, horn [圆号,喇叭]',\n  567: 'frying pan, frypan, skillet [煎锅]',\n  568: 'fur coat [裘皮大衣]',\n  569: 'garbage truck, dustcart [垃圾车]',\n  570: 'gasmask, respirator, gas helmet [防毒面具,呼吸器]',\n  571: 'gas pump, gasoline pump, petrol pump, island dispenser [汽油泵]',\n  572: 'goblet [高脚杯]',\n  573: 'go-kart [卡丁车]',\n  574: 'golf ball [高尔夫球]',\n  575: 'golfcart, golf cart [高尔夫球车]',\n  576: 'gondola [狭长小船]',\n  577: 'gong, tam-tam [锣]',\n  578: 'gown [礼服]',\n  579: 'grand piano, grand [钢琴]',\n  580: 'greenhouse, nursery, glasshouse [温室,苗圃]',\n  581: 'grille, radiator grille [散热器格栅]',\n  582: 'grocery store, grocery, food market, market [杂货店,食品市场]',\n  583: 'guillotine [断头台]',\n  584: 'hair slide [小发夹]',\n  585: 'hair spray [头发喷雾]',\n  586: 'half track [半履带装甲车]',\n  587: 'hammer [锤子]',\n  588: 'hamper [大篮子]',\n  589: 'hand blower, blow dryer, blow drier, hair dryer, hair drier [手摇鼓风机,吹风机]',\n  590: 'hand-held computer, hand-held microcomputer [手提电脑]',\n  591: 'handkerchief, hankie, hanky, hankey [手帕]',\n  592: 'hard disc, hard disk, fixed disk [硬盘]',\n  593: 'harmonica, mouth organ, harp, mouth harp [口琴,口风琴]',\n  594: 'harp [竖琴]',\n  595: 'harvester, reaper [收割机]',\n  596: 'hatchet [斧头]',\n  597: 'holster [手枪皮套]',\n  598: 'home theater, home theatre [家庭影院]',\n  599: 'honeycomb [蜂窝]',\n  600: 'hook, claw [钩爪]',\n  601: 'hoopskirt, crinoline [衬裙]',\n  602: 'horizontal bar, high bar [单杠]',\n  603: 'horse cart, horse-cart [马车]',\n  604: 'hourglass [沙漏]',\n  605: 'iPod [手机，iPad]',\n  606: 'iron, smoothing iron [熨斗]',\n  607: 'jack-o-lantern [南瓜灯笼]',\n  608: 'jean, blue jean, denim [牛仔裤,蓝色牛仔裤]',\n  609: 'jeep, landrover [吉普车]',\n  610: 'jersey, T-shirt, tee shirt [运动衫,T恤]',\n  611: 'jigsaw puzzle [拼图]',\n  612: 'jinrikisha, ricksha, rickshaw [人力车]',\n  613: 'joystick [操纵杆]',\n  614: 'kimono [和服]',\n  615: 'knee pad [护膝]',\n  616: 'knot [蝴蝶结]',\n  617: 'lab coat, laboratory coat [大褂,实验室外套]',\n  618: 'ladle [长柄勺]',\n  619: 'lampshade, lamp shade [灯罩]',\n  620: 'laptop, laptop computer [笔记本电脑]',\n  621: 'lawn mower, mower [割草机]',\n  622: 'lens cap, lens cover [镜头盖]',\n  623: 'letter opener, paper knife, paperknife [开信刀,裁纸刀]',\n  624: 'library [图书馆]',\n  625: 'lifeboat [救生艇]',\n  626: 'lighter, light, igniter, ignitor [点火器,打火机]',\n  627: 'limousine, limo [豪华轿车]',\n  628: 'liner, ocean liner [远洋班轮]',\n  629: 'lipstick, lip rouge [唇膏,口红]',\n  630: 'Loafer [平底便鞋]',\n  631: 'lotion [洗剂]',\n  632: 'loudspeaker, speaker, speaker unit, loudspeaker system, speaker system [扬声器]',\n  633: 'loupe, jewelers loupe [放大镜]',\n  634: 'lumbermill, sawmill [锯木厂]',\n  635: 'magnetic compass [磁罗盘]',\n  636: 'mailbag, postbag [邮袋]',\n  637: 'mailbox, letter box [信箱]',\n  638: 'maillot [女游泳衣]',\n  639: 'maillot, tank suit [有肩带浴衣]',\n  640: 'manhole cover [窨井盖]',\n  641: 'maraca [沙球（一种打击乐器）]',\n  642: 'marimba, xylophone [马林巴木琴]',\n  643: 'mask [面膜]',\n  644: 'matchstick [火柴]',\n  645: 'maypole [花柱]',\n  646: 'maze, labyrinth [迷宫]',\n  647: 'measuring cup [量杯]',\n  648: 'medicine chest, medicine cabinet [药箱]',\n  649: 'megalith, megalithic structure [巨石,巨石结构]',\n  650: 'microphone, mike [麦克风]',\n  651: 'microwave, microwave oven [微波炉]',\n  652: 'military uniform [军装]',\n  653: 'milk can [奶桶]',\n  654: 'minibus [迷你巴士]',\n  655: 'miniskirt, mini [迷你裙]',\n  656: 'minivan [面包车]',\n  657: 'missile [导弹]',\n  658: 'mitten [连指手套]',\n  659: 'mixing bowl [搅拌钵]',\n  660: 'mobile home, manufactured home [活动房屋（由汽车拖拉的）]',\n  661: 'Model T [T型发动机小汽车]',\n  662: 'modem [调制解调器]',\n  663: 'monastery [修道院]',\n  664: 'monitor [显示器]',\n  665: 'moped [电瓶车]',\n  666: 'mortar [砂浆]',\n  667: 'mortarboard [学士]',\n  668: 'mosque [清真寺]',\n  669: 'mosquito net [蚊帐]',\n  670: 'motor scooter, scooter [摩托车]',\n  671: 'mountain bike, all-terrain bike, off-roader [山地自行车]',\n  672: 'mountain tent [登山帐]',\n  673: 'mouse, computer mouse [鼠标,电脑鼠标]',\n  674: 'mousetrap [捕鼠器]',\n  675: 'moving van [搬家车]',\n  676: 'muzzle [口套]',\n  677: 'nail [钉子]',\n  678: 'neck brace [颈托]',\n  679: 'necklace [项链]',\n  680: 'nipple [乳头（瓶）]',\n  681: 'notebook, notebook computer [笔记本,笔记本电脑]',\n  682: 'obelisk [方尖碑]',\n  683: 'oboe, hautboy, hautbois [双簧管]',\n  684: 'ocarina, sweet potato [陶笛,卵形笛]',\n  685: 'odometer, hodometer, mileometer, milometer [里程表]',\n  686: 'oil filter [滤油器]',\n  687: 'organ, pipe organ [风琴,管风琴]',\n  688: 'oscilloscope, scope, cathode-ray oscilloscope, CRO [示波器]',\n  689: 'overskirt [罩裙]',\n  690: 'oxcart [牛车]',\n  691: 'oxygen mask [氧气面罩]',\n  692: 'packet [包装]',\n  693: 'paddle, boat paddle [船桨]',\n  694: 'paddlewheel, paddle wheel [明轮,桨轮]',\n  695: 'padlock [挂锁,扣锁]',\n  696: 'paintbrush [画笔]',\n  697: 'pajama, pyjama, pjs, jammies [睡衣]',\n  698: 'palace [宫殿]',\n  699: 'panpipe, pandean pipe, syrinx [排箫,鸣管]',\n  700: 'paper towel [纸巾]',\n  701: 'parachute, chute [降落伞]',\n  702: 'parallel bars, bars [双杠]',\n  703: 'park bench [公园长椅]',\n  704: 'parking meter [停车收费表,停车计时器]',\n  705: 'passenger car, coach, carriage [客车,教练车]',\n  706: 'patio, terrace [露台,阳台]',\n  707: 'pay-phone, pay-station [付费电话]',\n  708: 'pedestal, plinth, footstall [基座,基脚]',\n  709: 'pencil box, pencil case [铅笔盒]',\n  710: 'pencil sharpener [卷笔刀]',\n  711: 'perfume, essence [香水（瓶）]',\n  712: 'Petri dish [培养皿]',\n  713: 'photocopier [复印机]',\n  714: 'pick, plectrum, plectron [拨弦片,拨子]',\n  715: 'pickelhaube [尖顶头盔]',\n  716: 'picket fence, paling [栅栏,栅栏]',\n  717: 'pickup, pickup truck [皮卡,皮卡车]',\n  718: 'pier [桥墩]',\n  719: 'piggy bank, penny bank [存钱罐]',\n  720: 'pill bottle [药瓶]',\n  721: 'pillow [枕头]',\n  722: 'ping-pong ball [乒乓球]',\n  723: 'pinwheel [风车]',\n  724: 'pirate, pirate ship [海盗船]',\n  725: 'pitcher, ewer [水罐]',\n  726: 'plane, carpenters plane, woodworking plane [木工刨]',\n  727: 'planetarium [天文馆]',\n  728: 'plastic bag [塑料袋]',\n  729: 'plate rack [板架]',\n  730: 'plow, plough [犁型铲雪机]',\n  731: 'plunger, plumbers helper [手压皮碗泵]',\n  732: 'Polaroid camera, Polaroid Land camera [宝丽来相机]',\n  733: 'pole [电线杆]',\n  734: 'police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria [警车,巡逻车]',\n  735: 'poncho [雨披]',\n  736: 'pool table, billiard table, snooker table [台球桌]',\n  737: 'pop bottle, soda bottle [充气饮料瓶]',\n  738: 'pot, flowerpot [花盆]',\n  739: 'potters wheel [陶工旋盘]',\n  740: 'power drill [电钻]',\n  741: 'prayer rug, prayer mat [祈祷垫,地毯]',\n  742: 'printer [打印机]',\n  743: 'prison, prison house [监狱]',\n  744: 'projectile, missile [炮弹,导弹]',\n  745: 'projector [投影仪]',\n  746: 'puck, hockey puck [冰球]',\n  747: 'punching bag, punch bag, punching ball, punchball [沙包,吊球]',\n  748: 'purse [钱包]',\n  749: 'quill, quill pen [羽管笔]',\n  750: 'quilt, comforter, comfort, puff [被子]',\n  751: 'racer, race car, racing car [赛车]',\n  752: 'racket, racquet [球拍]',\n  753: 'radiator [散热器]',\n  754: 'radio, wireless [收音机]',\n  755: 'radio telescope, radio reflector [射电望远镜,无线电反射器]',\n  756: 'rain barrel [雨桶]',\n  757: 'recreational vehicle, RV, R.V. [休闲车,房车]',\n  758: 'reel [卷轴,卷筒]',\n  759: 'reflex camera [反射式照相机]',\n  760: 'refrigerator, icebox [冰箱,冰柜]',\n  761: 'remote control, remote [遥控器]',\n  762: 'restaurant, eating house, eating place, eatery [餐厅,饮食店,食堂]',\n  763: 'revolver, six-gun, six-shooter [左轮手枪]',\n  764: 'rifle [步枪]',\n  765: 'rocking chair, rocker [摇椅]',\n  766: 'rotisserie [电转烤肉架]',\n  767: 'rubber eraser, rubber, pencil eraser [橡皮]',\n  768: 'rugby ball [橄榄球]',\n  769: 'rule, ruler [直尺]',\n  770: 'running shoe [跑步鞋]',\n  771: 'safe [保险柜]',\n  772: 'safety pin [安全别针]',\n  773: 'saltshaker, salt shaker [盐瓶（调味用）]',\n  774: 'sandal [凉鞋]',\n  775: 'sarong [纱笼,围裙]',\n  776: 'sax, saxophone [萨克斯管]',\n  777: 'scabbard [剑鞘]',\n  778: 'scale, weighing machine [秤,称重机]',\n  779: 'school bus [校车]',\n  780: 'schooner [帆船]',\n  781: 'scoreboard [记分牌]',\n  782: 'screen, CRT screen [屏幕]',\n  783: 'screw [螺丝]',\n  784: 'screwdriver [螺丝刀]',\n  785: 'seat belt, seatbelt [安全带]',\n  786: 'sewing machine [缝纫机]',\n  787: 'shield, buckler [盾牌,盾牌]',\n  788: 'shoe shop, shoe-shop, shoe store [皮鞋店,鞋店]',\n  789: 'shoji [障子]',\n  790: 'shopping basket [购物篮]',\n  791: 'shopping cart [购物车]',\n  792: 'shovel [铁锹]',\n  793: 'shower cap [浴帽]',\n  794: 'shower curtain [浴帘]',\n  795: 'ski [滑雪板]',\n  796: 'ski mask [滑雪面罩]',\n  797: 'sleeping bag [睡袋]',\n  798: 'slide rule, slipstick [滑尺]',\n  799: 'sliding door [滑动门]',\n  800: 'slot, one-armed bandit [角子老虎机]',\n  801: 'snorkel [潜水通气管]',\n  802: 'snowmobile [雪橇]',\n  803: 'snowplow, snowplough [扫雪机,扫雪机]',\n  804: 'soap dispenser [皂液器]',\n  805: 'soccer ball [足球]',\n  806: 'sock [袜子]',\n  807: 'solar dish, solar collector, solar furnace [碟式太阳能,太阳能集热器,太阳能炉]',\n  808: 'sombrero [宽边帽]',\n  809: 'soup bowl [汤碗]',\n  810: 'space bar [空格键]',\n  811: 'space heater [空间加热器]',\n  812: 'space shuttle [航天飞机]',\n  813: 'spatula [铲（搅拌或涂敷用的）]',\n  814: 'speedboat [快艇]',\n  815: 'spider web, spiders web [蜘蛛网]',\n  816: 'spindle [纺锤,纱锭]',\n  817: 'sports car, sport car [跑车]',\n  818: 'spotlight, spot [聚光灯]',\n  819: 'stage [舞台]',\n  820: 'steam locomotive [蒸汽机车]',\n  821: 'steel arch bridge [钢拱桥]',\n  822: 'steel drum [钢滚筒]',\n  823: 'stethoscope [听诊器]',\n  824: 'stole [女用披肩]',\n  825: 'stone wall [石头墙]',\n  826: 'stopwatch, stop watch [秒表]',\n  827: 'stove [火炉]',\n  828: 'strainer [过滤器]',\n  829: 'streetcar, tram, tramcar, trolley, trolley car [有轨电车,电车]',\n  830: 'stretcher [担架]',\n  831: 'studio couch, day bed [沙发床]',\n  832: 'stupa, tope [佛塔]',\n  833: 'submarine, pigboat, sub, U-boat [潜艇,潜水艇]',\n  834: 'suit, suit of clothes [套装,衣服]',\n  835: 'sundial [日晷]',\n  836: 'sunglass [太阳镜]',\n  837: 'sunglasses, dark glasses, shades [太阳镜,墨镜]',\n  838: 'sunscreen, sunblock, sun blocker [防晒霜,防晒剂]',\n  839: 'suspension bridge [悬索桥]',\n  840: 'swab, swob, mop [拖把]',\n  841: 'sweatshirt [运动衫]',\n  842: 'swimming trunks, bathing trunks [游泳裤]',\n  843: 'swing [秋千]',\n  844: 'switch, electric switch, electrical switch [开关,电器开关]',\n  845: 'syringe [注射器]',\n  846: 'table lamp [台灯]',\n  847: 'tank, army tank, armored combat vehicle, armoured combat vehicle [坦克,装甲战车,装甲战斗车辆]',\n  848: 'tape player [磁带播放器]',\n  849: 'teapot [茶壶]',\n  850: 'teddy, teddy bear [泰迪,泰迪熊]',\n  851: 'television, television system [电视]',\n  852: 'tennis ball [网球]',\n  853: 'thatch, thatched roof [茅草,茅草屋顶]',\n  854: 'theater curtain, theatre curtain [幕布,剧院的帷幕]',\n  855: 'thimble [顶针]',\n  856: 'thresher, thrasher, threshing machine [脱粒机]',\n  857: 'throne [宝座]',\n  858: 'tile roof [瓦屋顶]',\n  859: 'toaster [烤面包机]',\n  860: 'tobacco shop, tobacconist shop, tobacconist [烟草店,烟草]',\n  861: 'toilet seat [马桶]',\n  862: 'torch [火炬]',\n  863: 'totem pole [图腾柱]',\n  864: 'tow truck, tow car, wrecker [拖车,牵引车,清障车]',\n  865: 'toyshop [玩具店]',\n  866: 'tractor [拖拉机]',\n  867: 'trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi [拖车,铰接式卡车]',\n  868: 'tray [托盘]',\n  869: 'trench coat [风衣]',\n  870: 'tricycle, trike, velocipede [三轮车]',\n  871: 'trimaran [三体船]',\n  872: 'tripod [三脚架]',\n  873: 'triumphal arch [凯旋门]',\n  874: 'trolleybus, trolley coach, trackless trolley [无轨电车]',\n  875: 'trombone [长号]',\n  876: 'tub, vat [浴盆,浴缸]',\n  877: 'turnstile [旋转式栅门]',\n  878: 'typewriter keyboard [打字机键盘]',\n  879: 'umbrella [伞]',\n  880: 'unicycle, monocycle [独轮车]',\n  881: 'upright, upright piano [直立式钢琴]',\n  882: 'vacuum, vacuum cleaner [真空吸尘器]',\n  883: 'vase [花瓶]',\n  884: 'vault [拱顶]',\n  885: 'velvet [天鹅绒]',\n  886: 'vending machine [自动售货机]',\n  887: 'vestment [祭服]',\n  888: 'viaduct [高架桥]',\n  889: 'violin, fiddle [小提琴,小提琴]',\n  890: 'volleyball [排球]',\n  891: 'waffle iron [松饼机]',\n  892: 'wall clock [挂钟]',\n  893: 'wallet, billfold, notecase, pocketbook [钱包,皮夹]',\n  894: 'wardrobe, closet, press [衣柜,壁橱]',\n  895: 'warplane, military plane [军用飞机]',\n  896: 'washbasin, handbasin, washbowl, lavabo, wash-hand basin [洗脸盆,洗手盆]',\n  897: 'washer, automatic washer, washing machine [洗衣机,自动洗衣机]',\n  898: 'water bottle [水瓶]',\n  899: 'water jug [水壶]',\n  900: 'water tower [水塔]',\n  901: 'whiskey jug [威士忌壶]',\n  902: 'whistle [哨子]',\n  903: 'wig [假发]',\n  904: 'window screen [纱窗]',\n  905: 'window shade [百叶窗]',\n  906: 'Windsor tie [温莎领带]',\n  907: 'wine bottle [葡萄酒瓶]',\n  908: 'wing [飞机翅膀,飞机]',\n  909: 'wok [炒菜锅]',\n  910: 'wooden spoon [木制的勺子]',\n  911: 'wool, woolen, woollen [毛织品,羊绒]',\n  912: 'worm fence, snake fence, snake-rail fence, Virginia fence [栅栏,围栏]',\n  913: 'wreck [沉船]',\n  914: 'yawl [双桅船]',\n  915: 'yurt [蒙古包]',\n  916: 'web site, website, internet site, site [网站,互联网网站]',\n  917: 'comic book [漫画]',\n  918: 'crossword puzzle, crossword [纵横字谜]',\n  919: 'street sign [路标]',\n  920: 'traffic light, traffic signal, stoplight [交通信号灯]',\n  921: 'book jacket, dust cover, dust jacket, dust wrapper [防尘罩,书皮]',\n  922: 'menu [菜单]',\n  923: 'plate [盘子]',\n  924: 'guacamole [鳄梨酱]',\n  925: 'consomme [清汤]',\n  926: 'hot pot, hotpot [罐焖土豆烧肉]',\n  927: 'trifle [蛋糕]',\n  928: 'ice cream, icecream [冰淇淋]',\n  929: 'ice lolly, lolly, lollipop, popsicle [雪糕,冰棍,冰棒]',\n  930: 'French loaf [法式面包]',\n  931: 'bagel, beigel [百吉饼]',\n  932: 'pretzel [椒盐脆饼]',\n  933: 'cheeseburger [芝士汉堡]',\n  934: 'hotdog, hot dog, red hot [热狗]',\n  935: 'mashed potato [土豆泥]',\n  936: 'head cabbage [结球甘蓝]',\n  937: 'broccoli [西兰花]',\n  938: 'cauliflower [菜花]',\n  939: 'zucchini, courgette [绿皮密生西葫芦]',\n  940: 'spaghetti squash [西葫芦]',\n  941: 'acorn squash [小青南瓜]',\n  942: 'butternut squash [南瓜]',\n  943: 'cucumber, cuke [黄瓜]',\n  944: 'artichoke, globe artichoke [朝鲜蓟]',\n  945: 'bell pepper [甜椒]',\n  946: 'cardoon [刺棘蓟]',\n  947: 'mushroom [蘑菇]',\n  948: 'Granny Smith [绿苹果]',\n  949: 'strawberry [草莓]',\n  950: 'orange [橘子]',\n  951: 'lemon [柠檬]',\n  952: 'fig [无花果]',\n  953: 'pineapple, ananas [菠萝]',\n  954: 'banana [香蕉]',\n  955: 'jackfruit, jak, jack [菠萝蜜]',\n  956: 'custard apple [蛋奶冻苹果]',\n  957: 'pomegranate [石榴]',\n  958: 'hay [干草]',\n  959: 'carbonara [烤面条加干酪沙司]',\n  960: 'chocolate sauce, chocolate syrup [巧克力酱,巧克力糖浆]',\n  961: 'dough [面团]',\n  962: 'meat loaf, meatloaf [瑞士肉包,肉饼]',\n  963: 'pizza, pizza pie [披萨,披萨饼]',\n  964: 'potpie [馅饼]',\n  965: 'burrito [卷饼]',\n  966: 'red wine [红葡萄酒]',\n  967: 'espresso [意大利浓咖啡]',\n  968: 'cup [杯子]',\n  969: 'eggnog [蛋酒]',\n  970: 'alp [高山]',\n  971: 'bubble [泡泡]',\n  972: 'cliff, drop, drop-off [悬崖]',\n  973: 'coral reef [珊瑚礁]',\n  974: 'geyser [间歇泉]',\n  975: 'lakeside, lakeshore [湖边,湖岸]',\n  976: 'promontory, headland, head, foreland [海角]',\n  977: 'sandbar, sand bar [沙洲,沙坝]',\n  978: 'seashore, coast, seacoast, sea-coast [海滨,海岸]',\n  979: 'valley, vale [峡谷]',\n  980: 'volcano [火山]',\n  981: 'ballplayer, baseball player [棒球,棒球运动员]',\n  982: 'groom, bridegroom [新郎]',\n  983: 'scuba diver [潜水员]',\n  984: 'rapeseed [油菜]',\n  985: 'daisy [雏菊]',\n  986: 'yellow ladys slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum [杓兰]',\n  987: 'corn [玉米]',\n  988: 'acorn [橡子]',\n  989: 'hip, rose hip, rosehip [玫瑰果]',\n  990: 'buckeye, horse chestnut, conker [七叶树果实]',\n  991: 'coral fungus [珊瑚菌]',\n  992: 'agaric [木耳]',\n  993: 'gyromitra [鹿花菌]',\n  994: 'stinkhorn, carrion fungus [鬼笔菌]',\n  995: 'earthstar [地星（菌类）]',\n  996: 'hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa [多叶奇果菌]',\n  997: 'bolete [牛肝菌]',\n  998: 'ear, spike, capitulum [玉米穗]',\n  999: 'toilet tissue, toilet paper, bathroom tissue [卫生纸]',\n}"
  },
  {
    "path": "tools/openimage_json.py",
    "content": "import argparse\nimport os\nimport json\nfrom PIL import Image\nimport multiprocessing as mp\n\nimport warnings\nwarnings.filterwarnings('ignore')\n\n\ndef check_image(image_path):\n    try:\n        Image.open(image_path)\n        return True\n    except Exception as e:\n        print(f\"Error details: {str(e)}\")\n        return False\n\n\ndef check_image_path(image_info):\n    data_path, image_path_list = image_info  # Unpack the info\n    valid_image_paths = []\n    for image_path in image_path_list:\n        if check_image(os.path.join(data_path, image_path)):\n            valid_image_paths.append(image_path)\n    return valid_image_paths\n\n\ndef load_image_path(image_info):\n    folder_name, data_path, image_extensions = image_info  # Unpack the info\n    print(folder_name)\n\n    folder_path = os.path.join(data_path, folder_name)\n    local_image_paths = []\n    for image_path in os.listdir(folder_path):\n        _, file_extension = os.path.splitext(image_path)\n        if file_extension.lower() in image_extensions:\n            image_path_full = os.path.join(folder_name, image_path)\n            local_image_paths.append(image_path_full)\n    return local_image_paths\n\n\n\ndef main(args):\n    data_path = args.data_path\n    image_extensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.webp']\n\n    num_processes = 47\n    work_list = [('openimages_{:0>4}'.format(idx), data_path, image_extensions) for idx in range(1, 48)]\n    with mp.Pool(processes=num_processes) as pool:\n        results = pool.map(load_image_path, work_list)\n    image_paths = [image_path for sublist in results for image_path in sublist]\n    print('image_paths is loaded')\n\n\n    num_processes = max(mp.cpu_count() // 2, 4)\n    unit = len(image_paths) // num_processes\n    work_list = [(data_path, image_paths[idx*unit:(idx+1)*unit]) for idx in range(num_processes)]\n    with mp.Pool(processes=num_processes) as pool:\n        results = pool.map(check_image_path, work_list)\n    valid_image_paths = [image_path for sublist in results for image_path in sublist]\n    print('image_paths is checked')\n\n\n    output_json_file_path = os.path.join(data_path, 'image_paths.json')\n    with open(output_json_file_path, 'w') as outfile:\n        json.dump(valid_image_paths, outfile, indent=4)\n    print(f\"Image paths have been saved to {output_json_file_path}\")\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--data-path\", type=str, required=True)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tools/push_gpt_to_hf.py",
    "content": "# Modified from:\n#   DiT:  https://github.com/facebookresearch/DiT/blob/main/sample_ddp.py\nimport torch\ntorch.backends.cuda.matmul.allow_tf32 = True\ntorch.backends.cudnn.allow_tf32 = True\nimport argparse\n\nfrom tokenizer.tokenizer_image.vq_model import VQ_models\nfrom autoregressive.models.gpt_hf import GPT_models_HF, TransformerHF\n\ndevice = \"cuda\" if torch.cuda_is_available() else \"cpu\"\n\ndef main(args):\n    # Setup PyTorch:\n    assert torch.cuda.is_available(), \"Sampling with DDP requires at least one GPU. sample.py supports CPU-only usage\"\n    torch.set_grad_enabled(False)\n\n    # create and load gpt model\n    precision = {'none': torch.float32, 'bf16': torch.bfloat16, 'fp16': torch.float16}[args.precision]\n    latent_size = args.image_size // args.downsample_size\n    gpt_model = GPT_models_HF[args.gpt_model](\n        vocab_size=args.codebook_size,\n        block_size=latent_size ** 2,\n        num_classes=args.num_classes,\n        cls_token_num=args.cls_token_num,\n        model_type=args.gpt_type,\n    ).to(device=device, dtype=precision)\n    checkpoint = torch.load(args.gpt_ckpt, map_location=\"cpu\")\n    if args.from_fsdp: # fsdp\n        model_weight = checkpoint\n    elif \"model\" in checkpoint:  # ddp\n        model_weight = checkpoint[\"model\"]\n    elif \"module\" in checkpoint: # deepspeed\n        model_weight = checkpoint[\"module\"]\n    elif \"state_dict\" in checkpoint:\n        model_weight = checkpoint[\"state_dict\"]\n    else:\n        raise Exception(\"please check model weight, maybe add --from-fsdp to run command\")\n\n    # load weights\n    gpt_model.load_state_dict(model_weight, strict=False)\n    gpt_model.eval()\n    del checkpoint\n\n    # push to hub\n    repo_id = f\"FoundationVision/{args.gpt_model}-{args.image_size}\"\n    gpt_model.push_to_hub(repo_id)\n\n    # reload\n    model = TransformerHF.from_pretrained(repo_id)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--gpt-model\", type=str, choices=list(GPT_models.keys()), default=\"GPT-B\")\n    parser.add_argument(\"--gpt-ckpt\", type=str, default=None)\n    parser.add_argument(\"--gpt-type\", type=str, choices=['c2i', 't2i'], default=\"c2i\", help=\"class-conditional or text-conditional\")\n    parser.add_argument(\"--from-fsdp\", action='store_true')\n    parser.add_argument(\"--cls-token-num\", type=int, default=1, help=\"max token number of condition input\")\n    parser.add_argument(\"--precision\", type=str, default='bf16', choices=[\"none\", \"fp16\", \"bf16\"]) \n    parser.add_argument(\"--compile\", action='store_true', default=True)\n    parser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models.keys()), default=\"VQ-16\")\n    parser.add_argument(\"--vq-ckpt\", type=str, default=None, help=\"ckpt path for vq model\")\n    parser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\n    parser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\n    parser.add_argument(\"--image-size\", type=int, choices=[256, 384, 512], default=384)\n    parser.add_argument(\"--image-size-eval\", type=int, choices=[256, 384, 512], default=256)\n    parser.add_argument(\"--downsample-size\", type=int, choices=[8, 16], default=16)\n    parser.add_argument(\"--num-classes\", type=int, default=1000)\n    args = parser.parse_args()\n    main(args)"
  },
  {
    "path": "tools/push_vae_to_hf.py",
    "content": "\"\"\"\nScript to push and load custom PyTorch models to/from the Hugging Face Hub.\n\"\"\"\n\nimport argparse\nimport torch\nfrom tokenizer.tokenizer_image.vq_model_hf import VQ_models_HF, VQModelHF\n\nfrom huggingface_hub import hf_hub_download\n\n\nmodel2ckpt = {\n    \"GPT-XL\": (\"vq_ds16_c2i.pt\", \"c2i_XL_384.pt\", 384),\n    \"GPT-B\": (\"vq_ds16_c2i.pt\", \"c2i_B_256.pt\", 256),\n}\n\ndef load_model(args):\n    ckpt_folder = \"./\"\n    vq_ckpt, gpt_ckpt, _ = model2ckpt[args.gpt_model]\n    hf_hub_download(repo_id=\"FoundationVision/LlamaGen\", filename=vq_ckpt, local_dir=ckpt_folder)\n    hf_hub_download(repo_id=\"FoundationVision/LlamaGen\", filename=gpt_ckpt, local_dir=ckpt_folder)\n    # create and load model\n    vq_model = VQ_models_HF[args.vq_model](\n        codebook_size=args.codebook_size,\n        codebook_embed_dim=args.codebook_embed_dim)\n    vq_model.eval()\n    checkpoint = torch.load(f\"{ckpt_folder}{vq_ckpt}\", map_location=\"cpu\")\n    vq_model.load_state_dict(checkpoint[\"model\"])\n    del checkpoint\n    print(f\"image tokenizer is loaded\")\n    return vq_model\n\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"--gpt-model\", type=str, default=\"GPT-XL\")\nparser.add_argument(\"--vq-model\", type=str, choices=list(VQ_models_HF.keys()), default=\"VQ-16\")\nparser.add_argument(\"--codebook-size\", type=int, default=16384, help=\"codebook size for vector quantization\")\nparser.add_argument(\"--codebook-embed-dim\", type=int, default=8, help=\"codebook dimension for vector quantization\")\nargs = parser.parse_args()\n\n# load weights\nvq_model = load_model(args)\n\n# push to hub\nvq_model.push_to_hub(\"FoundationVision/vq-ds16-c2i\")\n\n# reload\nmodel = VQModelHF.from_pretrained(\"FoundationVision/vq-ds16-c2i\")"
  },
  {
    "path": "utils/data.py",
    "content": "import numpy as np\nfrom PIL import Image\n\ndef center_crop_arr(pil_image, image_size):\n    \"\"\"\n    Center cropping implementation from ADM.\n    https://github.com/openai/guided-diffusion/blob/8fb3ad9197f16bbc40620447b2742e13458d2831/guided_diffusion/image_datasets.py#L126\n    \"\"\"\n    while min(*pil_image.size) >= 2 * image_size:\n        pil_image = pil_image.resize(\n            tuple(x // 2 for x in pil_image.size), resample=Image.BOX\n        )\n\n    scale = image_size / min(*pil_image.size)\n    pil_image = pil_image.resize(\n        tuple(round(x * scale) for x in pil_image.size), resample=Image.BICUBIC\n    )\n\n    arr = np.array(pil_image)\n    crop_y = (arr.shape[0] - image_size) // 2\n    crop_x = (arr.shape[1] - image_size) // 2\n    return Image.fromarray(arr[crop_y: crop_y + image_size, crop_x: crop_x + image_size])"
  },
  {
    "path": "utils/deepspeed.py",
    "content": "def create_deepspeed_config(args):\n    ds_config = {\n        \"steps_per_print\": 1000,\n        \"train_batch_size\": args.global_batch_size,\n        \"gradient_accumulation_steps\": args.gradient_accumulation_steps,\n        # \"train_micro_batch_size_per_gpu\": args.batch_size, # determined by (train_batch_size, gradient_accumulation_steps) \n        \"optimizer\": {\n            \"type\": \"Adam\",\n            \"adam_w_mode\": True,\n            \"params\": {\n                \"lr\": args.lr,\n                \"weight_decay\": args.weight_decay,\n                \"bias_correction\": True,\n                \"betas\": [\n                    args.beta1,\n                    args.beta2\n                ],\n            }\n        },\n        \"fp16\": {\n            \"enabled\": args.mixed_precision == 'fp16',\n            \"loss_scale\": 0,\n            \"initial_scale_power\": 16,\n            \"loss_scale_window\": 1000,\n            \"hysteresis\": 2,\n            \"min_loss_scale\": 1\n        },\n        \"bf16\": {\n            \"enabled\": args.mixed_precision == 'bf16',\n        },\n        # \"flops_profiler\": {\n        #     \"enabled\": True,\n        #     \"profile_step\": -1,\n        #     \"module_depth\": -1,\n        #     \"top_modules\": 1,\n        #     \"detailed\": True,\n        # },\n        \"zero_allow_untested_optimizer\": True\n    }\n\n    if args.clip_grad is not None:\n        ds_config.update({'gradient_clipping': args.clip_grad})\n\n    if args.zero_stage == 0:\n        ds_config.update({\"zero_optimization\": \n        {\n            \"stage\": args.zero_stage, \n            \"contiguous_gradients\": True,\n            \"overlap_comm\": True,\n        }\n    })\n    elif args.zero_stage == 1:\n        ds_config.update({\"zero_optimization\": \n        {\n            \"stage\": args.zero_stage,\n            \"contiguous_gradients\": True,\n            \"overlap_comm\": True,\n            \"reduce_bucket_size\": 5e8,\n        }\n    })\n    elif args.zero_stage == 2:\n        ds_config.update({\"zero_optimization\": \n        {\n            \"stage\": args.zero_stage, \n            \"contiguous_gradients\": True,\n            \"overlap_comm\": True,\n            \"reduce_scatter\": True,\n            \"reduce_bucket_size\": 5e8,\n            \"allgather_bucket_size\": 5e8,\n        }\n    })\n    elif args.zero_stage == 3:\n        ds_config.update({\"zero_optimization\": \n        {\n            \"stage\": args.zero_stage, \n            \"contiguous_gradients\": True,\n            \"overlap_comm\": True,\n            \"reduce_bucket_size\": 5e8,\n            \"stage3_prefetch_bucket_size\": 5e8,\n            \"stage3_param_persistence_threshold\": 1e6,\n            \"stage3_max_live_parameters\": 1e9,\n            \"stage3_max_reuse_distance\": 1e9,\n            \"stage3_gather_16bit_weights_on_model_save\": True\n        }\n    })\n\n    return ds_config\n"
  },
  {
    "path": "utils/distributed.py",
    "content": "import os\nimport torch\nimport subprocess\n\n\ndef setup_for_distributed(is_master):\n    \"\"\"\n    This function disables printing when not in master process\n    \"\"\"\n    import builtins as __builtin__\n    builtin_print = __builtin__.print\n\n    def print(*args, **kwargs):\n        force = kwargs.pop('force', False)\n        if is_master or force:\n            builtin_print(*args, **kwargs)\n\n    __builtin__.print = print\n\ndef init_distributed_mode(args):\n    if 'RANK' in os.environ and 'WORLD_SIZE' in os.environ:\n        args.rank = int(os.environ[\"RANK\"])\n        args.world_size = int(os.environ['WORLD_SIZE'])\n        args.gpu = int(os.environ['LOCAL_RANK'])\n        args.dist_url = 'env://'\n        os.environ['LOCAL_SIZE'] = str(torch.cuda.device_count())\n    elif 'SLURM_PROCID' in os.environ:\n        proc_id = int(os.environ['SLURM_PROCID'])\n        ntasks = int(os.environ['SLURM_NTASKS'])\n        node_list = os.environ['SLURM_NODELIST']\n        num_gpus = torch.cuda.device_count()\n        addr = subprocess.getoutput(\n            'scontrol show hostname {} | head -n1'.format(node_list))\n        os.environ['MASTER_PORT'] = os.environ.get('MASTER_PORT', '29500')\n        os.environ['MASTER_ADDR'] = addr\n        os.environ['WORLD_SIZE'] = str(ntasks)\n        os.environ['RANK'] = str(proc_id)\n        os.environ['LOCAL_RANK'] = str(proc_id % num_gpus)\n        os.environ['LOCAL_SIZE'] = str(num_gpus)\n        args.dist_url = 'env://'\n        args.world_size = ntasks\n        args.rank = proc_id\n        args.gpu = proc_id % num_gpus\n    else:\n        print('Not using distributed mode')\n        args.distributed = False\n        return\n\n    args.distributed = True\n\n    torch.cuda.set_device(args.gpu)\n    args.dist_backend = 'nccl'\n    print('| distributed init (rank {}): {}'.format(\n        args.rank, args.dist_url), flush=True)\n    torch.distributed.init_process_group(backend=args.dist_backend, init_method=args.dist_url,\n                                         world_size=args.world_size, rank=args.rank)\n    torch.distributed.barrier()\n    setup_for_distributed(args.rank == 0)\n"
  },
  {
    "path": "utils/drop_path.py",
    "content": "# from timm.models.layers import DropPath\nimport torch\n\ndef drop_path(x, drop_prob: float = 0., training: bool = False, scale_by_keep: bool = True):\n    \"\"\"Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).\n\n    This is the same as the DropConnect impl I created for EfficientNet, etc networks, however,\n    the original name is misleading as 'Drop Connect' is a different form of dropout in a separate paper...\n    See discussion: https://github.com/tensorflow/tpu/issues/494#issuecomment-532968956 ... I've opted for\n    changing the layer and argument names to 'drop path' rather than mix DropConnect as a layer name and use\n    'survival rate' as the argument.\n\n    \"\"\"\n    if drop_prob == 0. or not training:\n        return x\n    keep_prob = 1 - drop_prob\n    shape = (x.shape[0],) + (1,) * (x.ndim - 1)  # work with diff dim tensors, not just 2D ConvNets\n    random_tensor = x.new_empty(shape).bernoulli_(keep_prob)\n    if keep_prob > 0.0 and scale_by_keep:\n        random_tensor.div_(keep_prob)\n    return x * random_tensor\n\n\nclass DropPath(torch.nn.Module):\n    \"\"\"Drop paths (Stochastic Depth) per sample  (when applied in main path of residual blocks).\n    \"\"\"\n    def __init__(self, drop_prob: float = 0., scale_by_keep: bool = True):\n        super(DropPath, self).__init__()\n        self.drop_prob = drop_prob\n        self.scale_by_keep = scale_by_keep\n\n    def forward(self, x):\n        return drop_path(x, self.drop_prob, self.training, self.scale_by_keep)\n\n    def extra_repr(self):\n        return f'drop_prob={round(self.drop_prob,3):0.3f}'"
  },
  {
    "path": "utils/ema.py",
    "content": "import torch\nfrom collections import OrderedDict\n\n@torch.no_grad()\ndef update_ema(ema_model, model, decay=0.9999):\n    \"\"\"\n    Step the EMA model towards the current model.\n    \"\"\"\n    ema_params = OrderedDict(ema_model.named_parameters())\n    model_params = OrderedDict(model.named_parameters())\n\n    for name, param in model_params.items():\n        # TODO: Consider applying only to params that require_grad to avoid small numerical changes of pos_embed\n        ema_params[name].mul_(decay).add_(param.data, alpha=1 - decay)\n\n\ndef requires_grad(model, flag=True):\n    \"\"\"\n    Set requires_grad flag for all parameters in a model.\n    \"\"\"\n    for p in model.parameters():\n        p.requires_grad = flag"
  },
  {
    "path": "utils/logger.py",
    "content": "import logging\nimport torch.distributed as dist\n\ndef create_logger(logging_dir):\n    \"\"\"\n    Create a logger that writes to a log file and stdout.\n    \"\"\"\n    if dist.get_rank() == 0:  # real logger\n        logging.basicConfig(\n            level=logging.INFO,\n            format='[\\033[34m%(asctime)s\\033[0m] %(message)s',\n            datefmt='%Y-%m-%d %H:%M:%S',\n            handlers=[logging.StreamHandler(), logging.FileHandler(f\"{logging_dir}/log.txt\")]\n        )\n        logger = logging.getLogger(__name__)\n    else:  # dummy logger (does nothing)\n        logger = logging.getLogger(__name__)\n        logger.addHandler(logging.NullHandler())\n    return logger"
  },
  {
    "path": "utils/video.py",
    "content": "import math\nimport numpy as np\nimport skvideo.io\nfrom PIL import Image\n\n# Shifts src_tf dim to dest dim\n# i.e. shift_dim(x, 1, -1) would be (b, c, t, h, w) -> (b, t, h, w, c)\ndef shift_dim(x, src_dim=-1, dest_dim=-1, make_contiguous=True):\n    n_dims = len(x.shape)\n    if src_dim < 0:\n        src_dim = n_dims + src_dim\n    if dest_dim < 0:\n        dest_dim = n_dims + dest_dim\n\n    assert 0 <= src_dim < n_dims and 0 <= dest_dim < n_dims\n\n    dims = list(range(n_dims))\n    del dims[src_dim]\n\n    permutation = []\n    ctr = 0\n    for i in range(n_dims):\n        if i == dest_dim:\n            permutation.append(src_dim)\n        else:\n            permutation.append(dims[ctr])\n            ctr += 1\n    x = x.permute(permutation)\n    if make_contiguous:\n        x = x.contiguous()\n    return x\n\n# reshapes tensor start from dim i (inclusive)\n# to dim j (exclusive) to the desired shape\n# e.g. if x.shape = (b, thw, c) then\n# view_range(x, 1, 2, (t, h, w)) returns\n# x of shape (b, t, h, w, c)\ndef view_range(x, i, j, shape):\n    shape = tuple(shape)\n\n    n_dims = len(x.shape)\n    if i < 0:\n        i = n_dims + i\n\n    if j is None:\n        j = n_dims\n    elif j < 0:\n        j = n_dims + j\n\n    assert 0 <= i < j <= n_dims\n\n    x_shape = x.shape\n    target_shape = x_shape[:i] + shape + x_shape[j:]\n    return x.view(target_shape)\n\n    \ndef tensor_slice(x, begin, size):\n    assert all([b >= 0 for b in begin])\n    size = [l - b if s == -1 else s\n            for s, b, l in zip(size, begin, x.shape)]\n    assert all([s >= 0 for s in size])\n\n    slices = [slice(b, b + s) for b, s in zip(begin, size)]\n    return x[slices]\n\n\ndef save_video_grid(video, fname, nrow=None, fps=5):\n    b, c, t, h, w = video.shape\n    video = video.permute(0, 2, 3, 4, 1)\n    video = (video.cpu().numpy() * 255).astype('uint8')\n\n    if nrow is None:\n        nrow = math.ceil(math.sqrt(b))\n    ncol = math.ceil(b / nrow)\n    padding = 1\n    video_grid = np.zeros((t, (padding + h) * nrow + padding,\n                           (padding + w) * ncol + padding, c), dtype='uint8')\n    for i in range(b):\n        r = i // ncol\n        c = i % ncol\n\n        start_r = (padding + h) * r\n        start_c = (padding + w) * c\n        video_grid[:, start_r:start_r + h, start_c:start_c + w] = video[i]\n\n    skvideo.io.vwrite(fname, video_grid, inputdict={'-r': '{}'.format(fps)})\n\n\ndef save_gif_grid(video, file_name, nrow=None, fps=5):\n    b, c, t, h, w = video.shape\n    video = video.permute(0, 2, 3, 4, 1)\n    video = (video.cpu().numpy() * 255).astype('uint8')\n\n    if nrow is None:\n        nrow = math.ceil(math.sqrt(b))\n    ncol = math.ceil(b / nrow)\n    padding = 1\n    video_grid = np.zeros((t, (padding + h) * nrow + padding,\n                           (padding + w) * ncol + padding, c), dtype='uint8')\n    for i in range(b):\n        r = i // ncol\n        c = i % ncol\n\n        start_r = (padding + h) * r\n        start_c = (padding + w) * c\n        video_grid[:, start_r:start_r + h, start_c:start_c + w] = video[i]\n\n    images = []\n    for frame in video_grid:\n        images.append(Image.fromarray(frame))\n    \n    # Save the first image and append the rest of the images as frames in the GIF\n    images[0].save(file_name, save_all=True, append_images=images[1:], optimize=False, duration=int(1000/fps), loop=0)\n\n    # The 'duration' parameter defines the display time for each frame in milliseconds\n    # The 'loop' parameter defines the number of loops the GIF should make (0 for infinite loop)\n"
  }
]