惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
WordPress大学
WordPress大学
小众软件
小众软件
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
腾讯CDC
量子位
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
Jina AI
Jina AI
Attack and Defense Labs
Attack and Defense Labs
S
SegmentFault 最新的问题
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
Google Online Security Blog
Google Online Security Blog
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
罗磊的独立博客
L
LINUX DO - 最新话题
博客园 - Franky
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
The Last Watchdog
The Last Watchdog
J
Java Code Geeks
AI
AI
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
I
Intezer
S
Securelist

Ittavern.com

Wimage - Hosting Open-Source Image Uploader with Podman and external S3 Storage Switching from Hugo to picopaper Encryption using SSH Keys with age in Linux ETag in nginx - Simple Resource Caching Sending nginx Logs to Loki with Grafana Alloy How to: Cisco ISE backup to SFTP repository with public key authentication Dummy IP & MAC Addresses for Documentation & Sanitization Deploying ISSO Commenting System for Static Content using Docker Generate a Vanity v3 Hidden Service Onion Address with mkp224o ssh-audit Primer - Audit your SSH Server mtr - More Detailed Traceroute - Network Troubleshooting My Personal Backup Strategy - August 2024 iperf3 - User Authentication with Password and RSA Public Keypair Adding a trash can to Linux with trash-cli Bandwidth Measurement using netcat on Linux Getting started with rsync - Comprehensive Guide Cron Jobs on Linux - Comprehensive Guide with Examples SSH Server Hardening Guide v2 Port Knocking with knockd and Linux - Server Hardening Getting started with rclone - Data transmission Getting started with dig - DNS troubleshooting Getting started with Fail2Ban on Linux Getting started with netcat on Linux with examples URL explained - The Fundamentals Troubleshooting Asking The Right Questions Create tmux layouts using bash scripts Getting started with tcpdump - Ittavern.com Curl on Linux - Reference Guide Getting started with nmap scripts My Offsite Backup - March 2023 Getting started with iperf3 - Network Troubleshooting ICMP echo requests on Linux and Windows - Reference Guide Simulate an unreliable network connection with tc and netem on Linux Detecting Rogue DHCP Server - Ittavern.com Basics of the Linux Bash Command History with Examples Getting started with GNU screen - Beginners Guide Basics of Power over Ethernet (PoE) Difference between RSS and Atom SSH Troubleshooting Guide - Ittavern.com Backup Guide - how to secure crucial data SSH - run script or command at login Linux - unmount a busy target safely Visual guide to SSH tunneling and port forwarding Guide to Wireshark display filters Online Security Guide - Ittavern.com My IT EDC tool kit v2212 SSH - How to use public key authentication on Linux Ways to support open-source projects Getting started with nmap - Ittavern.com nginx - simple and native authentication function Linux - How to work with complex commands EICAR test file - riskless method to test your antivirus and firewall solution Linux - connect to a serial port with screen Podman / Docker - expose port only to the localhost of the host machine Tmux - reload .tmux.conf configuration file My use cases for CyberChef Nginx - simple permanent or temporary redirects Getting started with tmux - Ittavern.com Tmux - synchronize the input of all panes within a window Nginx - check your public IP CyberChef - How to remove empty lines
10 prompts - 1000 AI generated images - openAI Dall-E
2022-12-15 · via Ittavern.com

Table of content #

  • 1 - Cats
  • 2 - Robot
  • 3 - Donut
  • 4 - Dackel
  • 5 - Poster
  • 6 - Citylife
  • 7 - Dolphin
  • 8 - Light
  • 9 - Monster
  • 10 - Cyberpunk
  • Technical write-up

What is this all about? #

We were curious about how much variance the AI has. So, what would be the results if we were to request 100 images with the same prompt? - I won't review the results and rather just present the results to you.

These prompts are a result of a quick brain storming. If you have suggestions, please let me know. I might create more posts like this in the future. The goal was to have a wide range to motives, styles, and so.

These images are unedited. Generated - downloaded - created a montage; that is it. These images are free for personal or commercial use and do not require any form of mentioning. Dall-e gives ownership of the images to me, and I give you permission to do with it, whatever you want.

The resolution of the originals is 1024x1024 and I might provide a download link at some point. If you want a single image, feel free to reach out.

With testing, the total costs were around 20 EUR. I'd say that it is acceptable.

You can find a technical write-up at the end of the post. But as a disclaimer: not best-practice. Feedback is still appreciated.

So, enjoy!

1 - Cats #

photo of a kitten on a carpet in the living room, digital art

cats


2 - Robot #

small robot wandering around in an post-apocalyptic world, digital art

robot


3 - Donut #

minimalist logo of a donut shop

donut


4 - Dackel #

dackel in a suit in a library, digital art

dackel


5 - Poster #

movie poster for an action movie from the 80s, digital art

poster


6 - Citylife #

a black and white photo of the life in new york

citylife


7 - Dolphin #

sticker illustration of a cute dolphin

dolphin


8 - Light #

area view of a city with street lights at night, digital art

light


9 - Monster #

detailed sketch of an evil monster, digital art

monster


10 - Cyberpunk #

realistic photo of a colorful cyberpunk city in the rain at night, digital art

cyberpunk


Tech write-up #

Side note: To be clear, this is not best-practice. It got its job done, and that is all I needed. Still, feel free to reach out, happy to learn!

First, openai Dall-E API offers to generate the following sizes, with 3 different prices:

Resolution  Price
1024×1024   $0.020 / image
512×512     $0.018 / image
256×256     $0.016 / image

I've generated the largest resolution.

Limitations #

So, I've decided to use the API via curl, the first limit I encountered is the '10 images per request'.

{
  "error": {
    "code": null,
    "message": "20 is greater than the maximum of 10 - 'n'",
    "param": null,
    "type": "invalid_request_error"
  }
}

The next one would be the rate limit of 50 images per 5 minutes.

{
  "error": {
    "code": null,
    "message": "Rate limit reached for images per minute. Limit: 50/5min. Current: 60/5min. Please visit https://help.openai.com/en/articles/68839691 to learn how to increase your rate limit.",
    "param": null,
    "type": "requests"
  }
}

In the end, the download of the generated images was limited too. After every category I had to switch to another VPN server location to bypass the limit.

Script to download them all! #

I did a small break after every category to check the result of the script, and whether all images were generated and downloaded.

I'll add some comments later, but in short:
generate images and put curl response to file
get URL from output file and remove the quotation marks "
download images via curl
wait one minute to avoid rate limit
#!/bin/bash

# For for-loop for the whole script due to the limitations
# Curl request to generate the images via API, and the save the output via -o flag to a file

for i in {1..10};
do
  echo $i

  curl -o output.txt https://api.openai.com/v1/images/generations \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer sk-sdsdskdsdsdsdeefefe" \
    -d '{
      "prompt": "small robot wandering around in an post-apocalyptic world, digital art",
      "n":10,
      "size":"1024x1024"
    }'

# Gets the URLs of the generate images, removes quotation marks, and saves it to a new file (one URL per line)
  cat output.txt | jq '.data[].url' | sed 's/"//g' > output_url.txt

# Finally, download images with curl to the current directory. I was told that this is not bet practice, but it worked.
  cat output_url.txt  | while read f; do curl "${f}" -O; done;

# wait 60 seconds before we start it all over again
  sleep 60
done

Things to improve: start/stop, logs, error and information notification, speed

Rename everything #

In the next step, I had to rename all the files. The file names were cryptic and difficult to work with.

#!/bin/bash
a=1
n=cats
for i in ./1_cats/*; do
  new=$(printf "./1_cats/"$n"_%04d.jpg" "$a")
  mv -i -- "$i" "$new"
  let a=a+1
done

The name scheme would look like: cats_0001.png

Create montage with imagemagick #

In the last step, I used imagemagick to create a montage with the following command.

montage -geometry 200x200+2+2 -tile 4x -set label '%f' *.jpg montag.jpg

Explanation:
montage # imagemagick function to create montages
-geometry 200x200+2+2 # size per image + min size of the padding between the images
-tile 4x # setting for the layout, 4 columns, unlimited rows. 3x4 would be a limit of 3 columns and 4 rows
-set label '%f' # adds the filename of the image on the montage
*.jpg # use ALL .jpg file within this directory for the montage
montag.jpg # name and format of the final montage