This is a squahed commit of the 'options-ftw' comment.

Short story is this PR provides

  • An abstract API for AI model clients
  • Providing portable client request options while still allowing vendor specific options when required.  Implemented only for StabilityAI/OpenAI ImageClient

Open TODOs are to

  • implement the options design pattern across the code base

Look at the commit a0f71f7c9bc87dba73234cac41c1cc040946af66 for the details of the squashed commits that went into this PR

Comment From: tzolov

Pushed a commit(s) to add the missing code license blocks.

Comment From: markpollack

merged in 243cef976c6ff6e2f8ae4aaee75cccdde45051a6