The video factory with agents|INEMA.CLUB-PRO

Lesson 4 · 16 min

A narrated documentary and your own version of a reference video

Two engines start from different places. docflow starts from a topic and delivers a short narrated documentary. refazvideo starts from a reference video and delivers your version in Portuguese, with your own thesis and script. In both, the file the agent writes is checked before any generation.

Start the lesson
Dark research desk with an old unlabeled map, a magnifying glass, printed photos of deserts and ruins, and a monitor showing a desert scene and the narration waveform.

In this lesson you will

  1. 1The docflow tema.yaml: the answers that become script, images, narration, and assembly
  2. 2Which docflow commands call a model or generator and which are local
  3. 3The refazvideo validator: every screen cue must be in the speech
  4. 4The rules refazvideo doesn't negotiate: original author's face covered, approval before the avatar

Goal: read the topic of a docflow documentary and validate the visual script of a refazvideo before any generation.

01Two paths to the narrated video

Click each step. The ones marked as paid are left out of the practice.

Click each block in the diagram to see what it does.

docflow 0.8.0 (commit f1ed75e) and refazvideo 1.4.1 (commit e1f369e), read on October 19, 2026.

02docflow without generating anything

Version, styles and the theme of the model video. Local commands only.

Terminal · read docflow
E=${TMPDIR:-/tmp}/ensaio-fabrica/a4; rm -rf "$E"; mkdir -p "$E"; cd "$E"
git clone -q https://github.com/inematds/docflow.git && cd docflow && git checkout -q f1ed75e
./docflow --version
./docflow estilos | head -4
grep -E "^(slug|estilo|duracao_total|duracao_cena|formato|motor|voz):" temas/egito.yaml
Example from the repository
0.8.0
docflow 0.8.0 · estilos (use `estilo: <nome>` no tema)

  documentario
    Documentário narrado com cenas geradas por IA (imagem -> vídeo), ritmo calmo.
slug: egito-antigo
estilo: "realistic cinematic documentary, natural golden light, 35mm film look"
duracao_total: 60
duracao_cena: 10
formato: "16:9"
motor: agnes          # flow | agnes | local
voz: nei              # voz do inemavox (chatterbox): nei, nei2, bella...

The engine and the voice live in the theme, not in the code. Note: voz: nei is Nei's own cloned voice, used with his consent. In your copy, swap it for a stock voice or your own, with a consent form (lesson 7). The total duration divided by the scene duration gives the number of scenes (60 ÷ 10 = 6).

03The model documentary

Ancient Egypt in one minute: the video this theme generated (55 s, 16:9, local narration).

Ancient Egypt in one minute: docflow's model documentary · 55 sVideo page with script →

04The refazvideo validator

The real example from the repository: the script in PT and the two-block visual script. Each screen enters on a cue (at) that has to be in the speech.

Terminal · validate the visual script
E=${TMPDIR:-/tmp}/ensaio-fabrica/a4; cd "$E"
git clone -q https://github.com/inematds/refazvideo.git && cd refazvideo && git checkout -q e1f369e
cat VERSION
X=exemplos/decisions-jev
python3 ferramentas/validar_visual.py $X/roteiro-pt.json $X/pt-b01.json $X/pt-b02.json; echo "saída: $?"
Example from the repository
1.4.1
aviso exemplos/decisions-jev/pt-b02.json cena 7: 'no visible damage' aparece 2x, casa com a 1ª
OK 1 aviso(s)
saída: 0

A warning doesn't fail the check: the cue appears twice in the speech and the screen enters on the first one. If that's not what you want, swap the cue for a unique excerpt.

05A cue that isn't in the speech

Same validation with one cue swapped ("Faz poucas semanas" in place of "Há poucas semanas").

Terminal · wrong cue
E=${TMPDIR:-/tmp}/ensaio-fabrica/a4; cd "$E/refazvideo"; X=exemplos/decisions-jev
sed '0,/"at": "Há poucas semanas"/s//"at": "Faz poucas semanas"/' $X/pt-b01.json > "$E/pt-b01-errado.json"
python3 ferramentas/validar_visual.py $X/roteiro-pt.json "$E/pt-b01-errado.json" $X/pt-b02.json; echo "saída: $?"
Example from the repository
ERRO /tmp/ensaio-fabrica/a4/pt-b01-errado.json cena 1: cue não está na fala: 'Faz poucas semanas'
aviso exemplos/decisions-jev/pt-b02.json cena 7: 'no visible damage' aparece 2x, casa com a 1ª
1 erro(s) 1 aviso(s)
saída: 1

Without the validator, that screen would never make it into the video, and you'd only find out after the avatar was generated.

06The refazvideo rules

Read from AGENTS.md at commit e1f369e. They apply before any production.

1. Version, not copy

The reference video gives you the topic; the thesis, the script and the speech are yours, in natural Portuguese. Technical terms stay as they are.

07Practice

A topic of your own and a cue of your own, checked.

E1 · The docflow, read

5 min

Run the "ler o docflow" block.

Done when: The output shows 0.8.0, documentario and slug: egito-antigo with duracao_total: 60.

E2 · Validator

5 min

Run "validar o roteiro visual" and "deixa errada".

Done when: OK 1 aviso(s) with saída: 0, and then cue não está na fala: 'Faz poucas semanas', 1 erro(s) 1 aviso(s) and saída: 1.

E3 · Your topic

15 min

Copy temas/egito.yaml to temas/meu-tema.yaml in the dry-run clone and change slug, theme, estilo, voice and the durations for a documentary of your own with 6 to 8 scenes. Do not run roteiro or gerar.

Done when: cd ${TMPDIR:-/tmp}/ensaio-fabrica/a4/docflow && python3 -c "import yaml; t=yaml.safe_load(open('temas/meu-tema.yaml')); print(t['slug'], t['duracao_total'] // t['duracao_cena'], 'cenas', 'voz própria' if t['voz'] != 'nei' else 'voz do Nei')" → your slug and a number from 6 to 8 followed by cenas voz própria.

08Lesson quiz

The explanation appears after you answer.

Question 1 of 3

Which docflow commands call a model or a video generator?

09In three sentences

Themein docflow you write the YAML; engine and voice (yours, with a consent form) are one line each.
Cuein refazvideo, each screen comes in on a sentence that has to be in the speech.
Gateroteiro, gerar and avatar come after the check and the approval.

Going further

Previous lessonNext lesson