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)) -.-> Adobe
generative 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 .-> assets
App/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 M
links 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 extension
