(TODO) Generative AI
Generative AI
As AI assistants and agents grow exponentially, they also replicate human creativity. While humans continue to evolve linearly, carrying forward our creative experiences from the past into the future, collaborating with AI introduces new creative experiences for us—perhaps AI feels the same way.
graph TB
subgraph assets[App/book/assets]
subgraph audios
short
long
subgraph sync
mp3
timecode[timecode txt]
end
end
subgraph images
page1
page2
page3
end
subgraph videos
end
subgraph spreadsheets
end
end
descriptors -.-> prompts-.-> AI -. files .-> Adobe
creatorA((generative artist)) --> notebook
creatorA -->descriptors
subgraph Adobe[Media Files Library]
Photoshop
Illustrator
Animate
Premiere
AfterEffects
Audition
end
Photoshop -.-> UXP
UXP[kwik extension] -. png jpg path .->images
Animate -.-> spreadsheets
Premiere -.-> videos
AfterEffects-.->videos
Audition -.- audios
Illustrator -. svg, png, jpg .->images
creatorC((content creator)) -.-> Adobegenerative AI
graph TB
subgraph descriptors[media descriptors]
fountain[fountain screenplay]
description[image/video/audio descriptions]
end
subgraph notebook[jupyter notebook]
python[python scripts/curl/wget ..]
prompts
OCR
text[extracted text]
OCR-.->text
end
subgraph AI[gen AI]
SML
eleventhLabs
suno
stableDiffusion[SD/Midjourney]
end
SML -. anew or refined .->descriptors
subgraph assets[App/book/assets]
subgraph audios
short
long
subgraph sync
mp3
timecode[timecode txt]
end
end
subgraph images
page1
page2
page3
end
subgraph videos
end
subgraph spreadsheets
end
end
descriptors -.-> prompts-.-> AI -. files .-> Adobe[(Media Files Library)]
creatorA((generative artist)) --> notebook
creatorA -->descriptors
Adobe -. publish .-> assetsApp/book/assets/model.lua
local M = { -- audios = {}, sprites = {}, -- videos = {} audios = { { name = "click.mp3", path = "audios/short", links = {{page = "page1"}, {page = "page2"}} } }, videos = { { name = "videoA.mp4", path = "videos", links = { {page= "page01", layers = {"layerA1", "layerA10"}}, {page= "page02", layers = {"layerA2", "layerA20"}} }, }, { name = "videoB.mp4", path = "videos", links = {{page= "page01", layers = {"layerB"}}} } }, } return Mlinks are updated when creating/deleting a compoenet(audio, video etc) in kwik editor
read with self.assetsSelector:onClick or selectBook.loadPage()
editor/assets/index.lua
local function readAsset(path, folder, map, parent) -- print(path.."/"..folder) local entries = {} local success = lfs.chdir( path.."/"..folder ) if success then for file in lfs.dir( path.."/"..folder ) do if util.isDir(file) and file~="." and file~=".." then -- print("", "@Found dir " .. file ) local children = readAsset(path.."/"..folder, file, map, folder) for i=1, #children do entries[#entries + 1] = children[i] end elseif file~="." and file~=".." and file:find(".lua") == nil and file:find("@") == nil and file:find(".json") == nil then local mapEntry = map[file] if mapEntry == nil then if parent==nil then entries[#entries + 1] = {name=file, path=folder, links={}} else local v = parent.."/"..folder entries[#entries + 1] = {name=file, path=v:gsub("audios/",""), links={}} end else mapEntry.isExist = true entries[#entries + 1] = {name=mapEntry.name, path=mapEntry.path, links=mapEntry.links} end end end lfs.chdir( path ) end return entries end
Image Tile View - a vscode extension
