{"id":23480,"date":"2026-01-16T05:12:00","date_gmt":"2026-01-16T13:12:00","guid":{"rendered":"https:\/\/jnack.com\/blog\/?p=23480"},"modified":"2026-01-15T17:15:28","modified_gmt":"2026-01-16T01:15:28","slug":"a-slick-little-camera-control-ui-for-generative-ai","status":"publish","type":"post","link":"https:\/\/jnack.com\/blog\/2026\/01\/16\/a-slick-little-camera-control-ui-for-generative-ai\/","title":{"rendered":"A slick little camera control UI for generative AI"},"content":{"rendered":"\n<p><em>Less prompting, more direct physicality<\/em>: that&#8217;s what we need to see in Photoshop &amp; beyond.<\/p>\n\n\n\n<p>As an example, developer apolinario <a href=\"https:\/\/x.com\/multimodalart\/status\/2009292129261031570\">writes<\/a>, &#8220;I&#8217;ve built a custom camera control @gradio component for camera control LoRAs for image models Here&#8217;s a demo of @fal&#8217;s Qwen-Image-Edit-2511-Multiple-Angles-LoRA using the interactive camera component&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/jnack.com\/blog\/wp-content\/uploads\/2026\/01\/Camera-Control.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Less prompting, more direct physicality: that&#8217;s what we need to see in Photoshop &amp; beyond. As an example, developer apolinario writes, &#8220;I&#8217;ve built a custom camera control @gradio component for camera control LoRAs for image models Here&#8217;s a demo of @fal&#8217;s Qwen-Image-Edit-2511-Multiple-Angles-LoRA using the interactive camera component&#8221;:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":[],"categories":[66,7],"tags":[],"_links":{"self":[{"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/posts\/23480"}],"collection":[{"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/comments?post=23480"}],"version-history":[{"count":3,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/posts\/23480\/revisions"}],"predecessor-version":[{"id":23485,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/posts\/23480\/revisions\/23485"}],"wp:attachment":[{"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/media?parent=23480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/categories?post=23480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jnack.com\/blog\/wp-json\/wp\/v2\/tags?post=23480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}