{"id":264724,"date":"2026-09-07T05:47:41","date_gmt":"2026-09-07T12:47:41","guid":{"rendered":"https:\/\/picsart.com\/blog\/?p=264724"},"modified":"2026-09-07T05:47:41","modified_gmt":"2026-09-07T12:47:41","slug":"how-to-make-ai-bedtime-story","status":"publish","type":"post","link":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/","title":{"rendered":"How to make an AI bedtime story video from one photo"},"content":{"rendered":"<p>An AI bedtime story starts with one photo. Pick the hero your child already loves, type their name, choose tonight&#8217;s lesson, and the workflow returns a three beat story with a moral, rendered as a 30 second film.<\/p>\n<p>No writing, no drawing, no editing timeline. The <a href=\"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c\">Bedtime Story Starring Your Child&#8217;s Hero<\/a> template in Picsart Flow does the whole run, with <a href=\"https:\/\/picsart.com\/ai-models\/nano-banana-pro\/\">Nano Banana Pro<\/a> drawing the scenes and <a href=\"https:\/\/picsart.com\/ai-models\/kling-3-0\/\">Kling 3.0<\/a> animating them.<\/p>\n<p>Here is how to build one tonight.<\/p>\n<h2><span id=\"What_an_AI_bedtime_story_actually_is\">What an AI bedtime story actually is<\/span><\/h2>\n<p>Most tools that call themselves an AI bedtime story generator give you text. You get a page of words and you still have to perform it yourself, which is fine, but it is not a film.<\/p>\n<p>This one hands back a finished bedtime story video with the narration already rendered. So it doubles as audio bedtime stories if your child would rather listen with their eyes shut, and it plays on a phone or casts to a screen if they want to watch.<\/p>\n<p>It also means you are not making a one off. You are starting a series, for reasons that become clear once you see how the workflow is put together.<\/p>\n<h2><span id=\"What_you_need_before_you_start\">What you need before you start<\/span><\/h2>\n<p>Three inputs, numbered on the canvas so you know exactly what to touch:<\/p>\n<ul>\n<li><strong>A hero image<\/strong> to replace in node 1. One photo of the character your child wants in the story. A stuffed animal, a drawing they made, a favorite toy, a pet.<\/li>\n<li><strong>Your child&#8217;s name<\/strong> to type into node 2. This is what makes it a personalized bedtime story rather than a generic one.<\/li>\n<li><strong>Tonight&#8217;s lesson<\/strong> to type into node 3. Something like sharing what you love most, or telling the truth when nobody saw.<\/li>\n<\/ul>\n<p>Every other node is already wired and runs on its own.<\/p>\n<h2><span id=\"How_to_make_an_AI_bedtime_story_video_step_by_step\">How to make an AI bedtime story video, step by step<\/span><\/h2>\n<p>Open the <a href=\"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c\">Bedtime Story Starring Your Child&#8217;s Hero<\/a> template and work through the three input nodes on the left.<\/p>\n<section class=\"section_how_to\">\n            <h2 class=\"how_to_title\" id=\"How_to_make_an_AI_bedtime_story_video_step_by_step\">How to make an AI bedtime story video, step by step<\/h2>\n    \n        <div class=\"how_to_steps\">\n                                        <div class=\"how_to_step how_to_step--highlighted\">\n                    <div class=\"how_to_step_content\">\n                        <p class=\"how_to_step_title\">\n                            <span class=\"how_to_step_number\">1.<\/span>\n                            Open the template                        <\/p>\n                                                    <p class=\"how_to_step_description\">It opens as a finished workflow called Bedtime Moral Story, with the three input nodes on the left and the rest of the chain already connected. You are editing three nodes, not building a graph.<\/p>\n                                                                    <\/div>\n                <\/div>\n                                                <div class=\"how_to_step how_to_step--highlighted\">\n                    <div class=\"how_to_step_content\">\n                        <p class=\"how_to_step_title\">\n                            <span class=\"how_to_step_number\">2.<\/span>\n                            Replace the hero image                        <\/p>\n                                                    <p class=\"how_to_step_description\">Node 1 is labeled REPLACE. Swap in your photo. Everything downstream is built from this one image, so a well lit shot with the full character visible against a plain wall gives the chain the most to work with. Use their own object rather than a stock character, because the stuffed rabbit on their bed beats a generic rabbit every time. A drawing they made works just as well.<\/p>\n                                                                    <\/div>\n                <\/div>\n                                                <div class=\"how_to_step how_to_step--highlighted\">\n                    <div class=\"how_to_step_content\">\n                        <p class=\"how_to_step_title\">\n                            <span class=\"how_to_step_number\">3.<\/span>\n                            Edit your child&#039;s name                        <\/p>\n                                                    <p class=\"how_to_step_description\">Node 2 is a text node. Type the name exactly as your child hears it, so nicknames rather than full legal names, because the point here is recognition rather than formality. The name goes into the story and into the title. The sample run is named Mila, and the story came back as Mila&#039;s Moonlight Marshmallows.<\/p>\n                                                                    <\/div>\n                <\/div>\n                                                <div class=\"how_to_step how_to_step--highlighted\">\n                    <div class=\"how_to_step_content\">\n                        <p class=\"how_to_step_title\">\n                            <span class=\"how_to_step_number\">4.<\/span>\n                            Edit tonight&#039;s lesson                        <\/p>\n                                                    <p class=\"how_to_step_description\">Node 3 is the second text node, and it is the one that steers the story. The sample run uses sharing what you love most. The workflow builds a three beat structure around whatever you put here: a setup, a problem, and a resolution where the lesson pays off.<\/p>\n                                                                    <\/div>\n                <\/div>\n                                                <div class=\"how_to_step how_to_step--highlighted\">\n                    <div class=\"how_to_step_content\">\n                        <p class=\"how_to_step_title\">\n                            <span class=\"how_to_step_number\">5.<\/span>\n                            Run it                        <\/p>\n                                                    <p class=\"how_to_step_description\">Start the run. Everything downstream fires in order, and what comes back is a stitched film you can play immediately.<\/p>\n                                                                    <\/div>\n                <\/div>\n                        <\/div>\n    <\/section>\n\n<script type=\"application\/ld+json\">\n{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"HowTo\",\n    \"name\": \"How to make an AI bedtime story video, step by step\",\n    \"step\": [\n        {\n            \"@type\": \"HowToStep\",\n            \"position\": 1,\n            \"name\": \"Open the template\",\n            \"text\": \"It opens as a finished workflow called Bedtime Moral Story, with the three input nodes on the left and the rest of the chain already connected. You are editing three nodes, not building a graph.\"\n        },\n        {\n            \"@type\": \"HowToStep\",\n            \"position\": 2,\n            \"name\": \"Replace the hero image\",\n            \"text\": \"Node 1 is labeled REPLACE. Swap in your photo. Everything downstream is built from this one image, so a well lit shot with the full character visible against a plain wall gives the chain the most to work with. Use their own object rather than a stock character, because the stuffed rabbit on their bed beats a generic rabbit every time. A drawing they made works just as well.\"\n        },\n        {\n            \"@type\": \"HowToStep\",\n            \"position\": 3,\n            \"name\": \"Edit your child's name\",\n            \"text\": \"Node 2 is a text node. Type the name exactly as your child hears it, so nicknames rather than full legal names, because the point here is recognition rather than formality. The name goes into the story and into the title. The sample run is named Mila, and the story came back as Mila's Moonlight Marshmallows.\"\n        },\n        {\n            \"@type\": \"HowToStep\",\n            \"position\": 4,\n            \"name\": \"Edit tonight's lesson\",\n            \"text\": \"Node 3 is the second text node, and it is the one that steers the story. The sample run uses sharing what you love most. The workflow builds a three beat structure around whatever you put here: a setup, a problem, and a resolution where the lesson pays off.\"\n        },\n        {\n            \"@type\": \"HowToStep\",\n            \"position\": 5,\n            \"name\": \"Run it\",\n            \"text\": \"Start the run. Everything downstream fires in order, and what comes back is a stitched film you can play immediately.\"\n        }\n    ]\n}<\/script>\n\n<script>\n(function() {\n    function uploadFallback(file) {\n        var UPLOAD_URL = 'https:\/\/upload.picsart.com\/files';\n        var UPLOAD_URL_STAGE2 = 'https:\/\/upload-stage.picsartstage2.com\/files';\n        var hostname = window.location.hostname;\n        var isStage2 = hostname.indexOf('picsartstage2.com') !== -1 || hostname.indexOf('stage2') !== -1;\n        var url = isStage2 ? UPLOAD_URL_STAGE2 : UPLOAD_URL;\n        var isSafari = \/Safari\/i.test(navigator.userAgent) && !\/Chrome|Chromium|FxiOS|Edg|OPR\/i.test(navigator.userAgent);\n        if (isSafari) {\n            return new Promise(function(resolve, reject) {\n                var formData = new FormData();\n                formData.append('type', 'editing-temp-landings');\n                formData.append('file', file);\n                formData.append('url', '');\n                formData.append('metainfo', '');\n                var xhr = new XMLHttpRequest();\n                xhr.open('POST', url);\n                xhr.onload = function() {\n                    try {\n                        var data = xhr.responseText ? JSON.parse(xhr.responseText) : null;\n                        if (xhr.status >= 200 && xhr.status < 300 && data && data.result && data.result.url) {\n                            resolve(data.result.url);\n                        } else {\n                            reject(new Error('Upload failed'));\n                        }\n                    } catch (e) { reject(new Error('Upload failed')); }\n                };\n                xhr.onerror = xhr.ontimeout = function() { reject(new Error('Upload failed')); };\n                xhr.timeout = 60000;\n                xhr.send(formData);\n            });\n        }\n        var formData = new FormData();\n        formData.append('type', 'editing-temp-landings');\n        formData.append('file', file);\n        formData.append('url', '');\n        formData.append('metainfo', '');\n        return fetch(url, { method: 'POST', body: formData, mode: 'cors', cache: 'no-store' })\n            .then(function(res) { return res.text(); })\n            .then(function(text) {\n                try {\n                    var data = text ? JSON.parse(text) : null;\n                    if (data && data.result && data.result.url) return data.result.url;\n                } catch (e) { }\n                throw new Error('Upload failed');\n            });\n    }\n    var uploadFileToCDN = window.HowToUpload && window.HowToUpload.uploadFileToCDN\n        ? window.HowToUpload.uploadFileToCDN\n        : uploadFallback;\n\n    if (window._howToUploadBound) return;\n    window._howToUploadBound = true;\n\n    document.addEventListener('click', function(e) {\n        var btn = e.target && e.target.closest && e.target.closest('.how_to_cta_button');\n        if (!btn) return;\n        var uploadId = btn.getAttribute('data-upload-id');\n        var input = uploadId ? document.getElementById(uploadId) : null;\n        if (input) {\n            e.preventDefault();\n            input.click();\n        }\n    }, true);\n\n    document.addEventListener('change', function(e) {\n        if (!e.target || !e.target.classList || !e.target.classList.contains('how_to_upload_input')) return;\n        var file = e.target.files && e.target.files[0];\n        if (!file) return;\n        var inputEl = e.target;\n        var deeplink = inputEl.getAttribute('data-deeplink');\n        var button = document.querySelector('.how_to_cta_button[data-upload-id=\"' + inputEl.id + '\"]');\n        var labelSpan = button ? button.querySelector('span') : null;\n        var originalLabelText = labelSpan ? labelSpan.textContent : '';\n        if (button) {\n            button.disabled = true;\n            if (labelSpan) labelSpan.textContent = 'Uploading\u2026';\n        }\n        uploadFileToCDN(file)\n            .then(function(cdnUrl) {\n                var separator = deeplink.indexOf('?') !== -1 ? '&' : '?';\n                var params = 'ref=blog&image=' + encodeURIComponent(cdnUrl);\n                var redirectUrl = deeplink + separator + params;\n                inputEl.value = '';\n                setTimeout(function() {\n                    window.location.assign(redirectUrl);\n                }, 0);\n            })\n            .catch(function() {\n                if (button) button.disabled = false;\n                if (labelSpan) labelSpan.textContent = originalLabelText;\n                inputEl.value = '';\n                alert('Upload failed. Please try again.');\n            });\n    }, true);\n})();\n<\/script>\n\n<h2><span id=\"What_the_chain_does_that_a_single_prompt_cannot\">What the chain does that a single prompt cannot<\/span><\/h2>\n<p>This is why the output holds together instead of looking like three unrelated pictures.<\/p>\n<ul>\n<li><strong>The hero image becomes a character sheet.<\/strong> Nano Banana Pro turns your one photo into a multi view turnaround of the same character. That sheet, not the original photo, feeds every scene, which is how the hero keeps the same face, hair, and clothes from the first scene to the last.<\/li>\n<li><strong>The name and lesson become the story.<\/strong> A text node writes the full three beat story, roughly 230 words, broken into labeled beats.<\/li>\n<li><strong>The story becomes picture briefs.<\/strong> A second text node converts each beat into a shot brief with its own scene, action, mood, and camera lines. This is the step that turns prose into something an image model can render consistently, one brief per shot.<\/li>\n<li><strong>The briefs become three keyframes.<\/strong> Nano Banana Pro renders one still per beat, each built from the character sheet plus its brief.<\/li>\n<li><strong>Each keyframe becomes a clip.<\/strong> Kling 3.0 animates each still into a scene video: the ordinary world, the beat where the problem lands, and the beat where the lesson pays off.<\/li>\n<li><strong>The clips become one film.<\/strong> The three scenes are stitched into a single 30 second piece.<\/li>\n<li><strong>The final scene saves its last frame.<\/strong> A separate output holds that frame, so tomorrow&#8217;s episode can open exactly where tonight&#8217;s closed. That is what makes a series possible rather than a pile of unrelated videos.<\/li>\n<\/ul>\n<p>Ask a single prompt for a three scene bedtime story and you get three drawings of three different children. The character sheet and the picture briefs are what stop that happening.<\/p>\n<h2><span id=\"Bedtime_story_ideas_for_tonights_lesson\">Bedtime story ideas for tonight&#8217;s lesson<\/span><\/h2>\n<p>The lesson field steers everything, so it is worth keeping a list. These are bedtime story prompts you can drop straight into node 3.<\/p>\n<p>For the classic morals:<\/p>\n<p><section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Sharing<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5bbb-text\">sharing what you love most<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5bbb-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<br \/>\n<section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Bravery<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5be3-text\">doing the small scary thing before the big one<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5be3-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<br \/>\n<section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Honesty<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5bf6-text\">telling the truth when nobody saw<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5bf6-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<\/p>\n<p>For the ones that come up in real life:<\/p>\n<p><section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Patience<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5c07-text\">waiting for something good without complaining<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5c07-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<br \/>\n<section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Trying again<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5c18-text\">getting it right on the third try<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5c18-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<br \/>\n<section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Apologizing<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5c26-text\">saying sorry and then fixing it<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5c26-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<br \/>\n<section class=\"try_prompt_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"try_prompt_title\">Including others<\/h3>\n\n    <div class=\"try_prompt_card\" data-pulse-section=\"blog article_try prompt\">\n        <p class=\"try_prompt_text\" id=\"try-prompt-6a9edc6ba5c30-text\">noticing who got left out of the game<\/p>\n\n        <button type=\"button\"\n                class=\"try_prompt_copy\"\n                data-copy-target=\"#try-prompt-6a9edc6ba5c30-text\"\n                aria-label=\"Copy prompt\"\n                title=\"Copy prompt\"\n                data-pulse-name=\"try prompt - copy\">\n            <img class=\"try_prompt_copy_icon\"\n                 src=\"https:\/\/cdn-cms-uploads.picsart.com\/cms-uploads\/79a9b2ac-f4c9-436b-b388-a05a484adf00.png\"\n                 alt=\"\"\n                 width=\"20\" height=\"20\"\n                 loading=\"lazy\" decoding=\"async\">\n            <svg class=\"try_prompt_check_icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                <polyline points=\"5,12 10,17 19,7\"><\/polyline>\n            <\/svg>\n            <span class=\"try_prompt_copy_tooltip\" role=\"status\" aria-live=\"polite\">Copied<\/span>\n        <\/button>\n    <\/div>\n\n    <\/section>\n<\/p>\n<p>Notice that none of these is a bare virtue. Each names a situation, which is what gives the middle beat something concrete to turn on. Point it at the thing that actually happened this week and the story lands harder than any generic moral will.<\/p>\n<p>This field is also the easiest one to hand over. Letting your child choose tomorrow&#8217;s lesson is what turns a personalized bedtime story into their story rather than yours.<\/p>\n<p><section class=\"tips_block\" data-pulse-section-group=\"blog article\">\n    <h3 class=\"tips_title\">Tips for a better bedtime story video<\/h3>\n\n    <div class=\"tips_list\" data-pulse-section=\"blog article_tips\">\n                    <article class=\"tips_item\">\n                <div class=\"tips_item_header\">\n                    <span class=\"tips_item_icon\" aria-hidden=\"true\"><\/span>\n                    <h4 class=\"tips_item_title\">Keep the lesson to one idea<\/h4>\n                <\/div>\n                <p class=\"tips_item_body\">Sharing and honesty in the same story splits the moral and weakens both.<\/p>\n            <\/article>\n                    <article class=\"tips_item\">\n                <div class=\"tips_item_header\">\n                    <span class=\"tips_item_icon\" aria-hidden=\"true\"><\/span>\n                    <h4 class=\"tips_item_title\">Run it before bath time, not at lights out<\/h4>\n                <\/div>\n                <p class=\"tips_item_body\">The render is quick, but a tired child waiting is a tired child.<\/p>\n            <\/article>\n                    <article class=\"tips_item\">\n                <div class=\"tips_item_header\">\n                    <span class=\"tips_item_icon\" aria-hidden=\"true\"><\/span>\n                    <h4 class=\"tips_item_title\">Run the episodes in order<\/h4>\n                <\/div>\n                <p class=\"tips_item_body\">Because each one opens on the previous last frame, watching them in sequence reads as a continuing story.<\/p>\n            <\/article>\n                    <article class=\"tips_item\">\n                <div class=\"tips_item_header\">\n                    <span class=\"tips_item_icon\" aria-hidden=\"true\"><\/span>\n                    <h4 class=\"tips_item_title\">Save the finished films<\/h4>\n                <\/div>\n                <p class=\"tips_item_body\">A folder of episodes becomes something your child asks for by name.<\/p>\n            <\/article>\n                    <article class=\"tips_item\">\n                <div class=\"tips_item_header\">\n                    <span class=\"tips_item_icon\" aria-hidden=\"true\"><\/span>\n                    <h4 class=\"tips_item_title\">Rotate heroes occasionally<\/h4>\n                <\/div>\n                <p class=\"tips_item_body\">A second character keeps the format from wearing out.<\/p>\n            <\/article>\n            <\/div>\n<\/section>\n<br \/>\n<section class=\"section_faq\" id=\"faq-faq-6a9edc6ba6070\">\n            <h2 class=\"faq_title\" id=\"Get_answers_to_common_questions\">Get answers to common questions<\/h2>\n    \n    <div class=\"faq_items\">\n                    <div class=\"faq_item faq_item--active\">\n                <button type=\"button\" class=\"faq_question\" aria-expanded=\"true\">\n                    <span class=\"faq_question_text\">How long should a bedtime story be?<\/span>\n                    <svg class=\"faq_chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                        <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/button>\n                <div class=\"faq_answer\" aria-hidden=\"false\">\n                    <div class=\"faq_answer_content\"><p>For most young children, short is better. Thirty seconds sits comfortably inside a wind down rather than becoming the main event.<\/p>\n<\/div>\n                <\/div>\n                <div class=\"faq_divider\"><\/div>\n            <\/div>\n                    <div class=\"faq_item \">\n                <button type=\"button\" class=\"faq_question\" aria-expanded=\"false\">\n                    <span class=\"faq_question_text\">What age is this best for?<\/span>\n                    <svg class=\"faq_chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                        <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/button>\n                <div class=\"faq_answer\" aria-hidden=\"true\" data-collapsed>\n                    <div class=\"faq_answer_content\"><p>It works best for the age that still wants a story at bedtime, so roughly toddler through early primary. The best bedtime stories for toddlers are short and repetitive, which suits a 30 second format.<\/p>\n<\/div>\n                <\/div>\n                <div class=\"faq_divider\"><\/div>\n            <\/div>\n                    <div class=\"faq_item \">\n                <button type=\"button\" class=\"faq_question\" aria-expanded=\"false\">\n                    <span class=\"faq_question_text\">Will I get the same story if I run the same lesson twice?<\/span>\n                    <svg class=\"faq_chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                        <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/button>\n                <div class=\"faq_answer\" aria-hidden=\"true\" data-collapsed>\n                    <div class=\"faq_answer_content\"><p>No. The story is written fresh each run, so the same lesson produces a different situation and a different title.<\/p>\n<\/div>\n                <\/div>\n                <div class=\"faq_divider\"><\/div>\n            <\/div>\n                    <div class=\"faq_item \">\n                <button type=\"button\" class=\"faq_question\" aria-expanded=\"false\">\n                    <span class=\"faq_question_text\">What if my child wants a different lesson every night?<\/span>\n                    <svg class=\"faq_chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                        <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/button>\n                <div class=\"faq_answer\" aria-hidden=\"true\" data-collapsed>\n                    <div class=\"faq_answer_content\"><p>That is the intended use. Change one field and run it again.<\/p>\n<\/div>\n                <\/div>\n                <div class=\"faq_divider\"><\/div>\n            <\/div>\n            <\/div>\n<\/section>\n\n<script type=\"application\/ld+json\">\n{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How long should a bedtime story be?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"For most young children, short is better. Thirty seconds sits comfortably inside a wind down rather than becoming the main event.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What age is this best for?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"It works best for the age that still wants a story at bedtime, so roughly toddler through early primary. The best bedtime stories for toddlers are short and repetitive, which suits a 30 second format.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Will I get the same story if I run the same lesson twice?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"No. The story is written fresh each run, so the same lesson produces a different situation and a different title.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What if my child wants a different lesson every night?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"That is the intended use. Change one field and run it again.\"\n            }\n        }\n    ]\n}<\/script>\n\n<script>\n(function() {\n    var container = document.getElementById('faq-faq-6a9edc6ba6070');\n    if (!container) return;\n\n    var items = container.querySelectorAll('.faq_item');\n    items.forEach(function(item) {\n        var button = item.querySelector('.faq_question');\n        var answer = item.querySelector('.faq_answer');\n        if (!button || !answer) return;\n\n        button.addEventListener('click', function() {\n            var isActive = item.classList.contains('faq_item--active');\n\n            if (isActive) {\n                item.classList.remove('faq_item--active');\n                button.setAttribute('aria-expanded', 'false');\n                answer.setAttribute('aria-hidden', 'true');\n                answer.setAttribute('data-collapsed', '');\n            } else {\n                items.forEach(function(other) {\n                    var otherBtn = other.querySelector('.faq_question');\n                    var otherAnswer = other.querySelector('.faq_answer');\n                    other.classList.remove('faq_item--active');\n                    if (otherBtn) otherBtn.setAttribute('aria-expanded', 'false');\n                    if (otherAnswer) {\n                        otherAnswer.setAttribute('aria-hidden', 'true');\n                        otherAnswer.setAttribute('data-collapsed', '');\n                    }\n                });\n                item.classList.add('faq_item--active');\n                button.setAttribute('aria-expanded', 'true');\n                answer.removeAttribute('data-collapsed');\n                answer.setAttribute('aria-hidden', 'false');\n            }\n        });\n    });\n})();\n<\/script>\n<\/p>\n<h2><span id=\"Start_tonights_episode\">Start tonight&#8217;s episode<\/span><\/h2>\n<p>Pick the photo, type the name, choose the lesson. Open <a href=\"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c\">Bedtime Story Starring Your Child&#8217;s Hero<\/a> and make the first episode, then let your child pick tomorrow&#8217;s.<\/p>\n<p>More workflows like this one are in the <a href=\"https:\/\/picsart.com\/flow\/templates\/\">Picsart Flow template library<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An AI bedtime story starts with one photo. Pick the hero your child already loves, type their name, choose tonight&#8217;s lesson, and the workflow returns a three beat story with a moral, rendered as a 30 second film. No writing, no drawing, no editing timeline. The Bedtime Story Starring Your Child&#8217;s Hero template in Picsart &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;How to make an AI bedtime story video from one photo&#8221;<\/span><\/a><\/p>\n","protected":false},"author":146,"featured_media":253773,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_title":"How to make an AI bedtime story video from one photo %%page%% %%sep%% %%sitename%%","_yoast_wpseo_metadesc":"Turn one photo into a 30 second AI bedtime story starring your child's own hero. Pick the image, add a name, set tonight's lesson. Here is the full workflow.","faq_show":true,"faq_enable_schema":true,"how_to_show":true,"how_to_show_on_single":false,"how_to_enable_schema":true,"how_to_is_upload":true,"faq_title":"Get answers to common questions","how_to_title":"How to make an AI bedtime story video, step by step","how_to_layout":"default","how_to_cta_text":"","how_to_cta_url":"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c","how_to_image_alt":"","how_to_display_image":0,"faq_items":null,"how_to_steps":null,"prompt_box_show":false,"prompt_box_placeholder":"","prompt_box_deeplink":"","prompt_box_submit_label":"","footnotes":""},"categories":[3181,1673],"tags":[3453],"class_list":["post-264724","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-how-tos","tag-picsart-flow","entry"],"acf":{"footer_banner_name":"Make tonight's episode","footer_banner_link_":"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c","footer_banner_button_text_":"Open the template","faq_show":true,"faq_title":"Get answers to common questions","faq_enable_schema":true,"faq_items":[{"question":"How long should a bedtime story be?","answer":"For most young children, short is better. Thirty seconds sits comfortably inside a wind down rather than becoming the main event."},{"question":"What age is this best for?","answer":"It works best for the age that still wants a story at bedtime, so roughly toddler through early primary. The best bedtime stories for toddlers are short and repetitive, which suits a 30 second format."},{"question":"Will I get the same story if I run the same lesson twice?","answer":"No. The story is written fresh each run, so the same lesson produces a different situation and a different title."},{"question":"What if my child wants a different lesson every night?","answer":"That is the intended use. Change one field and run it again."}],"how_to_show":true,"how_to_show_on_single":false,"how_to_title":"How to make an AI bedtime story video, step by step","how_to_layout":"default","how_to_steps":[{"step_title":"Open the template","step_description":"It opens as a finished workflow called Bedtime Moral Story, with the three input nodes on the left and the rest of the chain already connected. You are editing three nodes, not building a graph.","show_cta_button":false},{"step_title":"Replace the hero image","step_description":"Node 1 is labeled REPLACE. Swap in your photo. Everything downstream is built from this one image, so a well lit shot with the full character visible against a plain wall gives the chain the most to work with. Use their own object rather than a stock character, because the stuffed rabbit on their bed beats a generic rabbit every time. A drawing they made works just as well.","show_cta_button":false},{"step_title":"Edit your child's name","step_description":"Node 2 is a text node. Type the name exactly as your child hears it, so nicknames rather than full legal names, because the point here is recognition rather than formality. The name goes into the story and into the title. The sample run is named Mila, and the story came back as Mila's Moonlight Marshmallows.","show_cta_button":false},{"step_title":"Edit tonight's lesson","step_description":"Node 3 is the second text node, and it is the one that steers the story. The sample run uses sharing what you love most. The workflow builds a three beat structure around whatever you put here: a setup, a problem, and a resolution where the lesson pays off.","show_cta_button":false},{"step_title":"Run it","step_description":"Start the run. Everything downstream fires in order, and what comes back is a stitched film you can play immediately.","show_cta_button":false}],"how_to_enable_schema":true,"how_to_is_upload":true,"how_to_cta_text":"","how_to_cta_url":"https:\/\/picsart.com\/flow\/templates\/8e862b1534264d3b71ad211ff88fe5d358adfdfca097d3ac9c5a113ab51c0b4c","how_to_display_image":"","how_to_image_alt":"","prompt_box_show":false,"prompt_box_placeholder":"","prompt_box_deeplink":"https:\/\/picsart.com\/create\/editor?category=miniapps&app=com.picsart.aura","prompt_box_submit_label":"Create","try_prompt_show":false,"try_prompt_title":"Try this prompt","try_prompt_text":"","try_prompt_deeplink":"","tips_show":true,"tips_title":"Tips for a better bedtime story video","tips_items":[{"title":"Keep the lesson to one idea","body":"Sharing and honesty in the same story splits the moral and weakens both."},{"title":"Run it before bath time, not at lights out","body":"The render is quick, but a tired child waiting is a tired child."},{"title":"Run the episodes in order","body":"Because each one opens on the previous last frame, watching them in sequence reads as a continuing story."},{"title":"Save the finished films","body":"A folder of episodes becomes something your child asks for by name."},{"title":"Rotate heroes occasionally","body":"A second character keeps the format from wearing out."}],"cta_banner_show":false,"cta_banner_title":"Need more space?","cta_banner_subtitle":"Extend any image in any direction with AI.","cta_banner_button_label":"Expand image","cta_banner_button_url":"","related_tools_title":"Related tools","related_tools_items":null,"post_level":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to make an AI bedtime story video from one photo - Picsart Blog<\/title>\n<meta name=\"description\" content=\"Turn one photo into a 30 second AI bedtime story starring your child&#039;s own hero. Pick the image, add a name, set tonight&#039;s lesson. Here is the full workflow.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to make an AI bedtime story video from one photo - Picsart Blog\" \/>\n<meta property=\"og:description\" content=\"Turn one photo into a 30 second AI bedtime story starring your child&#039;s own hero. Pick the image, add a name, set tonight&#039;s lesson. Here is the full workflow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/\" \/>\n<meta property=\"og:site_name\" content=\"Picsart Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/picsart\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-07T12:47:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1264\" \/>\n\t<meta property=\"og:image:height\" content=\"848\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Julia Tovmasyan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PicsArtStudio\" \/>\n<meta name=\"twitter:site\" content=\"@PicsArtStudio\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julia Tovmasyan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to make an AI bedtime story video from one photo - Picsart Blog","description":"Turn one photo into a 30 second AI bedtime story starring your child's own hero. Pick the image, add a name, set tonight's lesson. Here is the full workflow.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/","og_locale":"en_US","og_type":"article","og_title":"How to make an AI bedtime story video from one photo - Picsart Blog","og_description":"Turn one photo into a 30 second AI bedtime story starring your child's own hero. Pick the image, add a name, set tonight's lesson. Here is the full workflow.","og_url":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/","og_site_name":"Picsart Blog","article_publisher":"https:\/\/www.facebook.com\/picsart","article_published_time":"2026-09-07T12:47:41+00:00","og_image":[{"width":1264,"height":848,"url":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","type":"image\/webp"}],"author":"Julia Tovmasyan","twitter_card":"summary_large_image","twitter_creator":"@PicsArtStudio","twitter_site":"@PicsArtStudio","twitter_misc":{"Written by":"Julia Tovmasyan","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#article","isPartOf":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/"},"author":{"name":"Julia Tovmasyan","@id":"https:\/\/picsart.com\/blog\/ko\/#\/schema\/person\/74b70f3125250c23596a5306775b702d"},"headline":"How to make an AI bedtime story video from one photo","datePublished":"2026-09-07T12:47:41+00:00","mainEntityOfPage":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/"},"wordCount":894,"publisher":{"@id":"https:\/\/picsart.com\/blog\/ko\/#organization"},"image":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","keywords":["Picsart Flow"],"articleSection":["AI","Tutorials"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/","url":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/","name":"How to make an AI bedtime story video from one photo - Picsart Blog","isPartOf":{"@id":"https:\/\/picsart.com\/blog\/ko\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#primaryimage"},"image":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","datePublished":"2026-09-07T12:47:41+00:00","description":"Turn one photo into a 30 second AI bedtime story starring your child's own hero. Pick the image, add a name, set tonight's lesson. Here is the full workflow.","breadcrumb":{"@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#primaryimage","url":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","contentUrl":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","width":1264,"height":848},{"@type":"BreadcrumbList","@id":"https:\/\/picsart.com\/blog\/how-to-make-ai-bedtime-story\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picsart.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to make an AI bedtime story video from one photo"}]},{"@type":"WebSite","@id":"https:\/\/picsart.com\/blog\/ko\/#website","url":"https:\/\/picsart.com\/blog\/ko\/","name":"Picsart Blog","description":"Keep up with the latest news in photo editing, digital photography, and art trends.","publisher":{"@id":"https:\/\/picsart.com\/blog\/ko\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picsart.com\/blog\/ko\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/picsart.com\/blog\/ko\/#organization","name":"PicsArt Inc.","url":"https:\/\/picsart.com\/blog\/ko\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picsart.com\/blog\/ko\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.picsart.com\/2016\/02\/PicsArt-logo.png","contentUrl":"https:\/\/cdnblog.picsart.com\/2016\/02\/PicsArt-logo.png","width":195,"height":43,"caption":"PicsArt Inc."},"image":{"@id":"https:\/\/picsart.com\/blog\/ko\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/picsart","https:\/\/x.com\/PicsArtStudio","https:\/\/www.instagram.com\/picsart","https:\/\/www.linkedin.com\/company\/picsart-photo-studio","https:\/\/www.pinterest.com\/picsart"]},{"@type":"Person","@id":"https:\/\/picsart.com\/blog\/ko\/#\/schema\/person\/74b70f3125250c23596a5306775b702d","name":"Julia Tovmasyan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picsart.com\/blog\/ko\/#\/schema\/person\/image\/","url":"https:\/\/cdnblog.picsart.com\/2026\/03\/3285C16C-FD87-4868-A2F0-04B6A0815CE1-150x150.jpg","contentUrl":"https:\/\/cdnblog.picsart.com\/2026\/03\/3285C16C-FD87-4868-A2F0-04B6A0815CE1-150x150.jpg","caption":"Julia Tovmasyan"}}]}},"featured_image":{"url":"https:\/\/cdnblog.picsart.com\/2021\/02\/storybook.webp","dimensions":[]},"_links":{"self":[{"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/posts\/264724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/users\/146"}],"replies":[{"embeddable":true,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/comments?post=264724"}],"version-history":[{"count":3,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/posts\/264724\/revisions"}],"predecessor-version":[{"id":264727,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/posts\/264724\/revisions\/264727"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/media\/253773"}],"wp:attachment":[{"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/media?parent=264724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/categories?post=264724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picsart.com\/blog\/wp-json\/wp\/v2\/tags?post=264724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}