Esquisse is a light and quick tool for when you need to prototype a generative AI workflow, one level or two above basic prompt engineering.
Draft and test AI ideas, move up from basic prompts to your own mini AI apps.
I (https://github.com/juliendorra) originally built this web-tool so my design students could prototype mini AI-apps in a couple of hours: a fantasy football club generator, with logo and jersey; a user interview template that auto-update according to answers; an idea helper for products; and more!
To give users a malleable and generic way to draft AI usages one level or two up from just "prompting". Without code, my design students managed to build AI pipelines… and also asked for a few updates that I added and tested with them 😅
You can use Esquisse on you own computer by cloning and running the repo: Local usage
Or you can easily deploy on Deno Deploy: Deploy
You will need OpenAI and Stability API keys.
- Adds text and image generation blocks
- Reference and use the result from a text block in another text or image block top 'Data' cell by using either
#name
(no white space, for example a single word block name) or[name of the block]
(white space allowed in the name of the block) - You can mix and match several text results with static text:
head face [character for head] #style
- ⟳ button refresh a block result by sending a new request
- The structure of your AI cells is saved in the URL: names, data text, transform text. Share the URL to share the structure (not the results). You can go back to reload a previous structure.
- 📥 button set the block as an entry block, only the data cell is writable.
- 🔒 button set the block as an locked block, no cell is writable.
These are purely UI/UX hints to help you organize your mini-app, and can be reversed any time. These cells keeps updating normally when the results they reference update.
Building an AI Cadavre Exquis app in 12 minutes (sped up!)
Esquisse.Building.an.AI.Cadavre.Exquis.app.in.12.minutes.-.01.mp4
[early version] Screenshot of a simple app that generates three images combining a character and scene as paintings from the the 16th, 17th and 19th century:
![screenshot of a simple app that generates three images combining a character and scene as paintings from the the 16th, 17th and 19th century](https://private-user-images.githubusercontent.com/109677/241988208-2d42c609-91b9-49de-80d2-839322a3faae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5NDMzMjUsIm5iZiI6MTcyMDk0MzAyNSwicGF0aCI6Ii8xMDk2NzcvMjQxOTg4MjA4LTJkNDJjNjA5LTkxYjktNDlkZS04MGQyLTgzOTMyMmEzZmFhZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxNFQwNzQzNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05NzY2MzVhYzBkNDg4MGVmOWFlM2UzYzZjYThhMDY4OWYzYjc4OWJiYWFjZmU0YjczNzU4MmNmMWM2Nzc5YWQyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.nO62262aQjHcJiptqvHEbLgGjHp4w8hd73u0i0XnxsQ)
Students at Strate in the process of creating apps:
![](https://private-user-images.githubusercontent.com/109677/241988583-9213c7fc-d86c-47ef-a9ce-a52fa3271394.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5NDMzMjUsIm5iZiI6MTcyMDk0MzAyNSwicGF0aCI6Ii8xMDk2NzcvMjQxOTg4NTgzLTkyMTNjN2ZjLWQ4NmMtNDdlZi1hOWNlLWE1MmZhMzI3MTM5NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxNFQwNzQzNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNGFjMDBmMTdjOTMyMDFiM2RhZDM5ZWNjZGQ4MTU0NDQwNjE2YTA2YzY3MThhZmFmMDcyYTc1ZWZmODZkNzliJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.MVdsSYmz4D5OIe9MNQ4-DCPKvqvYp6RMvYCmTKHEdTE)
![](https://private-user-images.githubusercontent.com/109677/241988667-9faeded3-d248-4456-81e6-cce76358b28f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5NDMzMjUsIm5iZiI6MTcyMDk0MzAyNSwicGF0aCI6Ii8xMDk2NzcvMjQxOTg4NjY3LTlmYWVkZWQzLWQyNDgtNDQ1Ni04MWU2LWNjZTc2MzU4YjI4Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxNFQwNzQzNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02NjhhYzhkODY0NmE4MWRmY2E0ZTBiMTAyM2I1ZTg4ZTA2OWFkMzNkYmM1NWI1ZWU1OGMwYzMyYzI4NDk1Y2ZkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.prJjYnU98UKgwrItL-kCLR8zt3SSsbfeNAdtfxSgpZs)
-
install Deno locally https://docs.deno.com/runtime/manual/
-
clone the repo locally
-
create your local .env file based on .env.SAMPLE
-
add your OpenAI and Stability API keys
-
add at least one local user
-
for quick local dev you can copy the users from the .env.SAMPLE
-
deno cache main.ts
-
deno task dev
-
visit http://127.0.0.1:8000/ to use
The code has been written with deployement on Deno Deploy in mind, in a few easy steps:
- Add your OpenAI and Stability API keys in your Deno Deploy Settings / Environnements Variables
- Add users for your instance. Prefixed user name as key and Bcrypt hashed password as value.
- Prefix the user name with USER_
- You can use a tool like https://bcrypt.online to generate the password hashes
![screenshot of Deno Deploy Settings / Environnements Variables with API keys and an user being added](https://private-user-images.githubusercontent.com/109677/273464820-6ceef65e-02a4-4e69-8f01-066f5848e802.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5NDMzMjUsIm5iZiI6MTcyMDk0MzAyNSwicGF0aCI6Ii8xMDk2NzcvMjczNDY0ODIwLTZjZWVmNjVlLTAyYTQtNGU2OS04ZjAxLTA2NmY1ODQ4ZTgwMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxNFQwNzQzNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mM2Q1ODZmNjQ4M2UxZGU4ZmNjZDFmOTEwM2FhNzczYTI4ZGE3NTk5YjliYTczZjVhYjc0ZTk0MTc5ODYzNjkyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.yx33gx1buVNHhaC-RahRZG2nXnxwQBCSlJwADOMKHpA)
- link the repo in Deno Deploy Dashboard in automatic mode
- pick main.ts as the entry point