Cuando los niños miran libros ilustrados, a menudo se quedan mirando una imagen durante mucho tiempo. ¿Se están moviendo las hojas? ¿Qué hay dentro del frasco que sostiene el pequeño zorro? ¿Esa luciérnaga encontró su hogar después?

Si hacemos que las orejas de la imagen se muevan suavemente, que la luz de la luna caiga poco a poco dentro del frasco y añadimos una frase de narración suave, la historia adquiere otra forma de ser contada.

Este tipo de periódico ilustrado animado puede usarse para cuentos antes de dormir, presentaciones de cuentos cortos en el aula, y también es adecuado para probar a hacer storyboards de animación infantil. No necesariamente tiene que tener movimientos complejos. Si la imagen es agradable, los personajes mantienen coherencia de principio a fin y los niños pueden entenderla mientras la siguen, ya es un buen comienzo.

Esta vez, usaremos Ace Data Cloud Studio y GPT Image 2.6 para crear una pequeña historia: El pequeño zorro toma prestada la luz de la luna. Primero dibujaremos la historia, luego haremos que las imágenes cobren vida y, por último, añadiremos sonido para convertirla en un video que se pueda reproducir.

Ilustración de la historia «El pequeño zorro toma prestada la luz de la luna»

La historia no tiene que ser larga; primero hay que contarla con claridad

Una noche iluminada por la luna, el pequeño zorro se encontró con una pequeña luciérnaga perdida. El bosque estaba demasiado oscuro y la pequeña luciérnaga no podía encontrar el camino de regreso a casa. El pequeño zorro levantó un frasco de vidrio, tomó prestada un poco de luz de la luna y la acompañó a través del bosque hasta volver junto a sus compañeros. Antes de irse, el pequeño zorro agitó la mano y no olvidó levantar la cabeza para agradecer a la luna.

Esta historia es corta, pero tiene un encuentro, ayuda y despedida. Para convertirla en un periódico ilustrado de cuatro viñetas, basta justo para contar la historia completa.

Abrimos Ace Data Cloud Studio y escribimos en el diálogo el contenido que queremos crear. Además de la historia en sí, también dejamos claros el estilo artístico, los personajes y los accesorios.

Introducir los requisitos de creación de la historia en Ace Data Cloud Studio

Se puede describir así:

Usa GPT Image 2.6 para crear un periódico ilustrado de cuatro viñetas de El pequeño zorro toma prestada la luz de la luna, con orden de lectura arriba a la izquierda, arriba a la derecha, abajo a la izquierda y abajo a la derecha, representando respectivamente el encuentro, tomar prestada la luz, caminar juntos y volver a casa. Adopta un estilo suave de acuarela dibujada a mano y conserva la textura del papel. Mantén coherentes la apariencia del pequeño zorro, el color de su bufanda y el frasco de vidrio en las cuatro imágenes. El bosque debe usar principalmente azul oscuro suave y verde grisáceo, y la luz de la luna y la luz dentro del frasco deben representarse en dorado cálido, sin que deslumbre. No deben aparecer texto, globos de diálogo ni marcas de agua en las imágenes.

Aquí hay un pequeño hábito muy práctico: primero definir los personajes y el estilo artístico, y después organizar lo que ocurre en cada viñeta. De lo contrario, cada imagen individual puede verse bien, pero juntas parecen cuatro historias diferentes.

Primero hacemos cuatro viñetas y comprobamos si la historia fluye bien

Esta vez es una demostración, así que primero usamos una cuadrícula sencilla de cuatro viñetas. No hay muchas imágenes, por lo que es más fácil comprobar: si el pequeño zorro tiene la misma apariencia, si la bufanda ha cambiado de color, si el frasco de vidrio cambia de tamaño y si se puede entender al unir las cuatro viñetas.

Organizar el contenido de la historia de cuatro viñetas en Studio

Si se quiere hacer una historia más larga, se puede dividir la parte de «caminar juntos». Por ejemplo, primero cruzan un arroyo, luego pasan junto a las raíces de un árbol y, por último, ven los pequeños puntos de luz dentro de un hueco del árbol. Cada imagen cuenta solo una acción, lo que también facilita organizar después la animación y la narración.

A continuación se muestra el periódico ilustrado de cuatro viñetas creado para este artículo. Se deja un poco de blanco del papel para que se filtren los colores del bosque y la luz de la luna; no es necesario llenar cada rincón de la imagen.

Periódico ilustrado de cuatro viñetas de «El pequeño zorro toma prestada la luz de la luna»: encuentro, tomar prestada la luz, caminar juntos, volver a casa

La siguiente imagen es el periódico ilustrado de cuatro viñetas utilizado en la demostración original. Los GIF y el script de composición posteriores de este artículo siguen utilizando este conjunto de materiales de demostración para facilitar la reproducción directa; las nuevas imágenes de arriba se usan para mostrar la historia, no mezcles los dos conjuntos de materiales como si fueran los dibujos originales de una misma animación.

Periódico ilustrado de cuatro viñetas utilizado en la demostración original

Basta con que la imagen se mueva un poco

Después de preparar las ilustraciones originales, seguimos pidiendo a Studio que escriba Prompts dinámicos para los cuatro fragmentos.

No se necesitan demasiados movimientos para el periódico ilustrado. Un leve movimiento de las orejas, un suave balanceo de las briznas de hierba y la luz del frasco subiendo y bajando lentamente: estos pequeños cambios pueden hacer que la imagen cobre vida. En cambio, correr mucho o cambiar de plano con frecuencia puede alterar fácilmente la sensación tranquila original.

La siguiente versión de las indicaciones completa el fragmento de «volver a casa» y también deja clara la relación entre cada ilustración original y su animación correspondiente:

四段 GIF 的动态 Prompt

通用约束:沿用对应原画的人物、围巾、玻璃罐和水彩纸纹;固定镜头,只做小幅动作,不新增角色,不出现文字,首尾尽量衔接。每段只使用指定的一格原画,并扩展为单幅画面,不要把整张四宫格一起做成动画。

相遇
选取左上格并扩展为单幅画面。狐狸轻轻低头,耳朵微动;叶片上的萤火虫缓慢明灭,周围草叶轻晃。保持狐狸身体比例与背景构图稳定。

借光
选取右上格并扩展为单幅画面。狐狸保持举罐姿势,细柔月光缓缓流入玻璃罐,罐内金光轻柔起伏。玻璃罐的形状保持不变,光线柔和,不出现强烈闪烁。

同行
选取左下格并扩展为单幅画面。狐狸小步行走,围巾与尾巴轻摆,提罐略微晃动;萤火虫在罐旁漂浮,背景保持稳定。动作幅度小,尽量形成自然循环。

回家
选取右下格并扩展为单幅画面。狐狸缓缓挥手,树洞旁已有的萤火虫小范围盘旋,地面的月光轻柔起伏,草叶微微摇动。保持树洞、玻璃罐和狐狸的位置基本稳定,结尾自然回到接近开头的姿态。

A continuación, indica claramente en Studio: utiliza la función de animación GIF de GPT Image 2.6 para generar estos cuatro fragmentos por separado y devolver sus respectivos archivos GIF.

Aquí se hacen animaciones cortas en bucle, no se genera directamente un video largo completo. Cuando termine la tarea, tendremos cuatro imágenes en movimiento y luego las uniremos con la narración para crear un video.

A continuación se muestran los cuatro GIF generados en la demostración original.

Encuentro

Encuentro: el pequeño zorro descubre una pequeña luciérnaga perdida

Préstamo de luz

Préstamo de luz: el pequeño zorro levanta un frasco de vidrio para atrapar la luz de la luna

Juntos en el camino

Juntos en el camino: el pequeño zorro lleva la luz de la luna y acompaña a la luciérnaga a través del bosque

Regreso a casa

Regreso a casa: la luciérnaga regresa junto a sus compañeras, y el pequeño zorro se despide con la mano

Si en algún fragmento cambian la bufanda, el frasco o la apariencia del personaje, primero corrige ese fragmento; no es necesario rehacer todo el conjunto de materiales. Cuando las imágenes estén confirmadas, continúa con la locución.

La locución debe sonar como un cuento antes de dormir, sin recitar demasiado

Después de que las imágenes se muevan, continuamos introduciendo los requisitos de locución en Studio. Genera las cuatro narraciones por separado, así después será más fácil hacer corresponder cada una con su imagen.

Introducir los requisitos de narración en Studio

Puedes decirlo así:

Genera cuatro fragmentos independientes de narración en chino para «El pequeño zorro pide prestada la luz de la luna» y devuelve los enlaces de audio por separado. Utiliza una voz femenina suave y natural, como si contaras un cuento antes de dormir a un niño; no uses un tono de locutora ni finjas ternura deliberadamente. Mantén el mismo timbre de voz en los cuatro fragmentos, con un ritmo pausado, y deja una pequeña pausa al final de cada frase. Primero genera solo la narración, sin música de fondo. Encuentro: Bajo la luz de la luna, el pequeño zorro se encuentra con una pequeña luciérnaga perdida. Préstamo de luz: El pequeño zorro le pide prestada a la luna una luz suave. Juntos en el camino: Lleva la luz de la luna y acompaña a la pequeña luciérnaga a través del bosque. Regreso a casa: La luciérnaga regresa junto a sus compañeras, y el pequeño zorro también le da las gracias a la luna.

Las cuatro frases bastan para contar la historia; no hace falta añadir un largo párrafo de explicación. Deja que las imágenes también hablen un poco, sonará más agradable.

Después de generar la locución, es mejor escuchar cada fragmento una vez. Confirma aquí si hay caracteres mal pronunciados, si las pausas son naturales y si cada fragmento puede terminarse dentro del tiempo previsto. El siguiente guion de demostración utiliza los enlaces de cuatro audios existentes; si generas de nuevo la locución, recuerda sustituirlos por tus propios enlaces.

Por último, compón el libro ilustrado en un video localmente

Cuando los materiales estén listos, haz que Studio prepare un guion de composición con FFmpeg y luego ejecútalo en el ordenador local.

Este guion creará un libro ilustrado horizontal de doble página: a la izquierda estarán el título del capítulo y el texto de la historia, y a la derecha se reproducirá el GIF. Las cuatro páginas se conectarán según el orden de la historia, con sus respectivas narraciones.

Antes de ejecutarlo, debes instalar FFmpeg y cambiar FONT por una ruta de fuente china que realmente exista en el ordenador. FFmpeg también debe admitir el filtro drawtext utilizado por el guion, la codificación H.264 y la codificación AAC. El guion es adecuado para ejecutarse con Bash en entornos Linux, macOS o WSL de Windows; no lo pegues directamente en PowerShell.

A continuación se conservan los enlaces de los materiales de demostración, y el nombre del archivo de salida y los títulos de las páginas se han unificado como «El pequeño zorro pide prestada la luz de la luna». Este es un guion para ejecutarse localmente; este texto no lo ejecuta localmente en lugar del lector.

bash <<'BASH'
set -euo pipefail

# ===== 只需修改这里 =====

GIF1="https://cdn.acedata2.cloud/gpt-image/d8d0bdffeb50f57fa700e3b0e973541e62361c1bce243f795c66b12c27a79ada.gif"
GIF2="https://cdn.acedata2.cloud/gpt-image/2361e32502087a5d14a1030ec26c94bade43ad7abddff7f51294ae70cffabd03.gif"
GIF3="https://cdn.acedata2.cloud/gpt-image/c9091c98a64df06baecc7be2e5bb4b7521deff9caa3a0f67bca46c5409b92133.gif"
GIF4="https://cdn.acedata2.cloud/gpt-image/e6f322e1dea87af933a00e6053166cd5ce2f9a7ab59358c37f7b79d3b0126885.gif"

# 中文字体路径,请根据实际情况修改:
# Linux 示例:/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc
# macOS 示例:/System/Library/Fonts/PingFang.ttc
FONT="/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc"

OUTPUT="小狐狸借月光.mp4"

# ===== 四段已有配音 =====

AUDIO1="https://platform2.cdn.acedata.cloud/fish/bb9140fc-c0c5-4397-995c-5a4eba813ef6.mp3"
AUDIO2="https://platform2.cdn.acedata.cloud/fish/ffe157ea-7fc4-422c-b153-e3bdb7db59ad.mp3"
AUDIO3="https://platform2.cdn.acedata.cloud/fish/2eb05b03-e833-48b9-9373-38b4c6a6456c.mp3"
AUDIO4="https://platform2.cdn.acedata.cloud/fish/429392ee-4012-4775-b1d9-fec7b88ddf1f.mp3"

command -v ffmpeg >/dev/null || {
  echo "请先安装 FFmpeg"
  exit 1
}

[[ -f "$FONT" ]] || {
  echo "找不到中文字体,请修改 FONT:$FONT"
  exit 1
}

gifs=("$GIF1" "$GIF2" "$GIF3" "$GIF4")
audios=("$AUDIO1" "$AUDIO2" "$AUDIO3" "$AUDIO4")

titles=("相遇" "借光" "同行" "回家")
lines1=(
  "月光下,小狐狸遇见了"
  "小狐狸向月亮借来了"
  "他提着月光,陪小萤火虫"
  "萤火虫回到了伙伴身边"
)
lines2=(
  "一只迷路的小萤火虫。"
  "一盏温柔的光。"
  "一起穿过了森林。"
  "小狐狸也向月亮道谢。"
)

# 每章固定时长;旁白结束后的剩余部分保持安静。
# 总时长:19 秒。超出章节时长的旁白会被截断。
durations=("5" "4.5" "4.5" "5")

inputs=()
filters=""

for i in 0 1 2 3; do
  vi=$((i * 2))
  ai=$((vi + 1))
  page=$((i + 1))
  d="${durations[$i]}"

  # 禁用 GIF 内部循环标记,统一由 stream_loop 无限循环。
  inputs+=(
    -stream_loop -1 -ignore_loop 1 -i "${gifs[$i]}"
    -i "${audios[$i]}"
  )

  # 书本底图:暖色桌面、双页纸张、书脊与左侧文字。
  filters+="
color=c=0xD6C7B3:s=1920x1080:r=30:d=${d},
drawbox=x=72:y=64:w=1788:h=972:color=0xB6A38C:t=fill,
drawbox=x=60:y=50:w=900:h=970:color=0xFFF9EE:t=fill,
drawbox=x=960:y=50:w=900:h=970:color=0xFFF9EE:t=fill,
drawbox=x=940:y=50:w=20:h=970:color=0xE2D6C3:t=fill,
drawbox=x=960:y=50:w=12:h=970:color=0xEFE5D5:t=fill,
drawbox=x=150:y=320:w=110:h=4:color=0xB28A60:t=fill,
drawtext=fontfile='${FONT}':text='小狐狸借月光':x=150:y=155:fontsize=28:fontcolor=0x927A60,
drawtext=fontfile='${FONT}':text='${titles[$i]}':x=150:y=235:fontsize=64:fontcolor=0x493A2C,
drawtext=fontfile='${FONT}':text='${lines1[$i]}':x=150:y=400:fontsize=36:fontcolor=0x685846,
drawtext=fontfile='${FONT}':text='${lines2[$i]}':x=150:y=465:fontsize=36:fontcolor=0x685846,
drawtext=fontfile='${FONT}':text='${page} / 4':x=150:y=910:fontsize=24:fontcolor=0xA28D76
[book${i}];

[${vi}:v]
setpts=PTS-STARTPTS,
fps=30,
scale=780:800:force_original_aspect_ratio=decrease:force_divisible_by=2,
setsar=1,
format=rgba
[gif${i}];

[book${i}][gif${i}]
overlay=x='1020+(780-overlay_w)/2':y='130+(800-overlay_h)/2':shortest=1,
trim=duration=${d},
setpts=PTS-STARTPTS,
format=yuv420p
[v${i}];

[${ai}:a]
asetpts=PTS-STARTPTS,
aresample=48000,
aformat=sample_fmts=fltp:channel_layouts=stereo,
apad,
atrim=duration=${d},
asetpts=PTS-STARTPTS
[a${i}];
"
done

filters+="
[v0][a0][v1][a1][v2][a2][v3][a3]
concat=n=4:v=1:a=1[vout][aout]
"

# 一次执行:合成全部书页、动画和配音。
ffmpeg -hide_banner -y \
  "${inputs[@]}" \
  -filter_complex "$filters" \
  -map "[vout]" \
  -map "[aout]" \
  -c:v libx264 \
  -preset medium \
  -crf 18 \
  -pix_fmt yuv420p \
  -c:a aac \
  -b:a 192k \
  -ar 48000 \
  -movflags +faststart \
  "$OUTPUT"

printf '\n已生成:%s\n' "$OUTPUT"
BASH

Este script establece la duración de las cuatro páginas en 5 segundos, 4,5 segundos, 4,5 segundos y 5 segundos, para un total de 19 segundos. El GIF se repetirá hasta que termine esta página; cuando la narración sea más corta, la parte restante posterior permanecerá en silencio.

Hay que prestar especial atención: si la narración es más larga que esta página, el script recortará la parte excedente. Al regenerar la narración, primero escúchala completa y luego decide si alargar durations; no hagas que la página se pase a mitad de la historia solo para completar 19 segundos.

Durante la ejecución se requiere conexión a Internet para leer los recursos. Si encuentras que los enlaces no son accesibles, primero puedes descargar los GIF y MP3 localmente y luego cambiar las variables correspondientes por rutas de archivos. El -y del script sobrescribirá el archivo de salida con el mismo nombre; si ya tienes un video terminado, cambia primero el nombre del archivo. Según los registros proporcionados en la demostración, los créditos de generación de materiales para esta muestra son de aproximadamente 1 crédito. Este valor es solo de referencia para esta demostración, no es un plan fijo, ni significa que cualquier video de 19 segundos solo necesite 1 crédito. La versión del modelo, el tamaño de la imagen, la calidad, la duración de la locución y el número de reintentos afectarán el consumo real; prevalecerán los cargos mostrados por Studio. Este último paso consiste en realizar la composición localmente con FFmpeg, no en volver a llamar al servicio de generación de video en la nube.

Poner todo el proceso en una sola imagen

Mirándolo de nuevo, la cosa no es complicada: primero se piensa la historia, se dibujan cuatro viñetas, se hace que cada una se mueva un poco, luego se añade la narración y, al final, se compone localmente.

Studio se encarga de ayudarnos a preparar la historia, las ilustraciones originales, los GIF y los materiales de locución; FFmpeg se encarga de ordenar los materiales como páginas de un libro, unir el sonido y generar un MP4. Al separar estas dos partes, si alguna página no resulta satisfactoria, se modifica esa página.

Flujo de producción desde la concepción de la historia, las ilustraciones originales de cuatro viñetas, la animación GIF y la narración hasta la composición local

Un poco de luz de luna basta para contar una historia

«El pequeño zorro toma prestada la luz de la luna» no tiene muchos personajes ni grandes escenas bulliciosas. Solo deja que un pequeño zorro acompañe a una luciérnaga perdida durante un tramo del camino.

Al hacer un cartel de historia como este, los aspectos en los que vale la pena dedicar tiempo suelen ser también estos pequeños detalles: si el zorro en las cuatro ilustraciones tiene el mismo aspecto, si la luz dentro del frasco es lo bastante suave, si la narración permite escucharla con tranquilidad.

Si tú también quieres probarlo, puedes empezar con una pequeña historia de cuatro viñetas. En Ace Data Cloud Studio, explica claramente el estilo artístico y los personajes, revisa bien las ilustraciones originales y luego añade poco a poco movimiento y sonido. Primero hacer bien una historia corta, en lugar de desplegar una historia muy larga desde el principio, facilita encontrar la sensación que te gusta.

Cuando la imagen y el sonido sean adecuados, pasa unas cuantas páginas más. Así se va creando poco a poco un pequeño libro ilustrado que se mueve.