День 2. 16 апреля, 16:39–22:32. Shot2, Shot3, Shot4 и правило reference-to-video

Evolink лёг

16:39 — Evolink пополнен. Первый прогон shot_legs_backlight_5lite с M1 + mockup → generation_timeout. Второй — то же самое. Задача болталась на 95% и падала по серверному таймауту.

«Последняя таска отработала task-unified-1776347645-4ao4jaji»

Пользователь сам подсказал ID отработавшей задачи. Скачал — это shot_legs_backlight_5lite.png:

shot_legs_backlight_5lite — Сидрим с M1 + mockup

shot_legs_backlight_5lite — Сидрим с M1 + mockup

«Не, фон не размылся, к сожалению. Наверное это не было в промпте»

Добавил shallow depth of field → shot_legs_backlight_dof.png:

shot_legs_backlight_dof — первая попытка с DOF

shot_legs_backlight_dof — первая попытка с DOF

«А можно сильнее DOF?»

Три следующих запроса (f/1.4, extreme bokeh) — все упали по timeout. Каждый висел 10 минут на 95%. Evolink стабильно не отвечал.

/compact → SSL → прокси в seedream_gen.py

17:25 контекст затёрся (/compact). Пользователь попросил перечитать всё и запустить снова. Новый запуск — SSLError EOFError на upload к Evolink.

Агент вспомнил, что в seedance_video.py прокси есть, а в seedream_gen.py нет. Добавил прокси из .config.json во все 4 вызова requests (upload, generate, poll, download). Плюс fix encoding cp1251 на ошибочных print'ах.

Три запуска подряд с прокси — всё равно generation_timeout. Evolink сервер просто лежит.

Flux как запасной путь

Переключился на Flux через OpenRouter (он не зависает). Без слова "hanging" в промпте.

shot_legs_backlight_dof2_flux — первый, два рефа

shot_legs_backlight_dof2_flux — первый, два рефа
params flux · flux.2-pro · 16:9
prompt
Black and white cinematic photograph. Two legs dangling in front of a bright window, backlit. Background completely blurred and out of focus, only the shoes are in sharp focus. Room is dark with light streaming through the window behind the legs. 35mm film grain, high contrast, shallow depth of field.

DOF недостаточный, фон почти в фокусе. Переделал: один ref (mockup), агрессивнее про размытие:

shot_legs_backlight_dof3_flux — сильнее DOF, голые щиколотки

shot_legs_backlight_dof3_flux — сильнее DOF, голые щиколотки
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film. Detail shot: two feet in dark shoes dangling in the air in front of a bright window. Camera focused only on the shoes, everything else is a soft blur — the window behind is just a bright white glow with no detail, the curtains are unrecognizable shapes. Extreme shallow depth of field. Dark room, strong backlight from window creating rim light on the shoes. High contrast, heavy grain.

«Dof3 хорош, но я сейчас понял, что на других кадрах штаны закрывали туфли, а тут голые ноги видно. Это можно поправить или нужно с 0 весь пайплайн?»

Не с 0 — правим промпт. Добавил "trousers cover the legs completely":

shot_legs_backlight_dof4_flux — штаны ок, ботинки в расфокусе

shot_legs_backlight_dof4_flux — штаны ок, ботинки в расфокусе
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film. Detail shot: two feet in dark shoes dangling in the air in front of a bright window. Long dark trousers cover the legs completely down to the shoes, no bare skin visible. Camera focused only on the shoes, everything else is a soft blur — the window behind is just a bright white glow with no detail, the curtains are unrecognizable shapes. Extreme shallow depth of field. Dark room, strong backlight from window creating rim light on the shoes. High contrast, heavy grain.

shot_legs_backlight_dof5_flux — штаны+ботинки резко, фон резкий

shot_legs_backlight_dof5_flux — штаны+ботинки резко, фон резкий
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film. Detail shot: two feet in dark lace-up shoes dangling in the air, centered in frame. Long dark trousers cover the legs completely down to the shoes, no bare skin visible. The shoes are in razor-sharp focus. Behind the feet is a bright window, completely blown out into a soft white glow. Dark room walls on both sides, heavily blurred. Strong backlight from window creating rim light outline on the shoes. High contrast, heavy grain, shallow depth of field.

«И штаны некрасивые, нужно ещё пробовать»

Три варианта параллельно — разная одежда:

shot_legs_v6a_flux — костюм+кожаные ботинки, фон резкий

shot_legs_v6a_flux — костюм+кожаные ботинки, фон резкий
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film grain. Detail close-up: two feet in worn leather boots hanging in the air, centered in frame. Loose wide-leg suit trousers drape over the boots, fabric bunching slightly at the ankles. Behind the feet a bright window is blown out into pure white light. Room walls dark and blurred. Strong backlight silhouette. High contrast, shallow depth of field, background out of focus.

shot_legs_v6b_flux — джинсы+кеды, DOF наконец-то

shot_legs_v6b_flux — джинсы+кеды, DOF наконец-то
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film grain. Detail close-up: two feet in old dirty sneakers dangling in the air, centered in frame. Baggy dark jeans cover the legs down to the sneakers. Behind the feet a bright window glows pure white, completely overexposed. Dark room, walls barely visible in deep shadow. Rim light outlines the shoes from behind. High contrast, shallow depth of field, blurred background.

v6c (босые ноги) — Flux зацензурил: "bare feet hanging" триггернуло safety.

«Какие кеды? Посмотри мастер-кадр утверждённый, чел в костюме и туфлях»

Костюмные брюки + туфли с DOF от v6b:

shot_legs_v7a_flux — костюм+туфли+DOF, но щиколотка

shot_legs_v7a_flux — костюм+туфли+DOF, но щиколотка
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, heavy grain. Detail close-up: two feet in polished dark oxford shoes dangling in the air, centered in frame. Dark suit trousers drape naturally over the shoes. The shoes are sharp and detailed. Everything behind the feet is heavily out of focus — a bright window reduced to a soft white glow, dark room walls dissolved into shadow. Very shallow depth of field, only the shoes are in focus. Strong backlight from behind creating a thin rim of light around the shoes. High contrast.

v7b с corpse ref перетянул всё на общий план вместо детали. v7c ("full break trousers") — Flux поставил на пол.

shot_legs_v7d_flux — suspended high, floor out of frame

shot_legs_v7d_flux — suspended high, floor out of frame
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, heavy grain, high contrast. Close-up of two feet suspended high above the floor, not touching anything. Dark suit trousers cover the ankles, fabric resting on top of polished dark shoes. The floor is far below, out of frame. Behind the feet a bright window is a soft white blur. Dark room, shallow depth of field, strong backlight creating rim light on the shoes. The feet hang motionless in empty space.

shot_legs_v7e_flux — camera looking up

shot_legs_v7e_flux — camera looking up
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, heavy grain, high contrast. Camera looking up at two feet hanging in the air against bright window light. Dark formal trousers drape down over dark leather shoes. No floor visible. The window behind is blown out white. Everything except the shoes is blurred. Noir atmosphere, dramatic backlight, shallow depth of field.

Flux бьётся между "висят" и "штаны закрывают ботинки": когда штаны длинные — ставит на пол, когда висят — щиколотки.

Попытка v7b с shot1_pinata_corpse.png как вторым ref — перетянул на общий план:

shot_legs_v7b_flux — corpse ref перетянул композицию

shot_legs_v7b_flux — corpse ref перетянул композицию
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, heavy grain. Extreme close-up of two feet in dark dress shoes suspended in mid-air. Dark wool suit pants fall straight down covering the ankles completely. Shallow depth of field — the shoes are tack sharp, the background is a creamy blur of bright window light. Dark vignette around edges. Backlit silhouette feeling. High contrast, moody, noir.

v7c с "full break trousers, no skin" — Flux поставил на пол:

shot_legs_v7c_flux — full break → стоит на полу

shot_legs_v7c_flux — full break → стоит на полу
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, heavy grain. Detail close-up: two feet in polished dark oxford shoes dangling in the air, centered. Dark suit trousers with full break — the fabric falls over the top of the shoes, covering the ankles completely, no skin visible between trouser and shoe. The shoes are sharp and detailed. Everything behind is heavily out of focus — bright window reduced to a soft white glow, dark room walls dissolved into shadow. Very shallow depth of field. Strong backlight rim. High contrast.

Gemini edit на dof3

«А может из dof3 делать редактирование — чисто удлинить штаны?»

Отличная идея. Flux edit "extend trousers" не понял (края щиколоток остались):

shot_legs_dof3_edit_flux — Flux edit слабо реагирует

shot_legs_dof3_edit_flux — Flux edit слабо реагирует
params flux · flux.2-pro · 16:9
prompt
Edit this photograph: extend the dark suit trousers so they cover the ankles completely and rest on top of the shoes. The trousers should drape over the shoes with a full break. Keep everything else exactly the same — the shoes, the background blur, the lighting, the grain, the composition. Only change the trouser length.

Переключился на Gemini. Первый запрос — google/gemini-2.5-flash-preview → 400 invalid model. gemini-3-flash-preview → 404 "no image output". gemini-3-pro-image-preview — единственная Gemini с image output:

shot_legs_dof3_edit_gemini — штаны закрыли, ноги висят

shot_legs_dof3_edit_gemini — штаны закрыли, ноги висят
params banana · google/gemini-2.5-flash-preview · openrouter
prompt
Edit this image: make the dark suit trousers longer so they completely cover the bare ankles and drape over the top of the shoes. No bare skin should be visible between the trouser hem and the shoes. Keep everything else identical — same shoes, same background, same blur, same grain, same lighting, same composition.

«Не, всё шикарно. Утверждаю от Gemini версию»

shot2_legs_backlight — УТВЕРЖДЁН

shot2_legs_backlight — УТВЕРЖДЁН

Второй утверждённый кадр. Gemini 3 Pro Image Preview встал в инструментарий — для точечных правок на готовом изображении он лучше Flux-edit'а.

Уборка архива

«Дальше коммит»

1ccac69 — 41 файл (shot2 + все итерации + прокси в seedream_gen).

«Только ты в архив лишнее не убрал»

Перенёс 32 итерации body_ref_side_legs_*, m2_window_*, shot_legs_* в archive/. 887fc8a.

«А зачем нам мокапы ног, мы же уже их использовали?»

Ещё два файла (m2_legs_mockup.png, m2_window_tight_v2.png) → archive. d710eac.

Shot2 видео — 6 итераций про движение

«Теперь нужно на основе кадра сделать видео на 8 секунд Seedance-ом, где ноги немного покачиваются (чел же висит в петле)»

Минимальный промпт из гайда image-to-video: не описывать внешность (модель видит картинку), @Image1 as first frame, физическое описание движения, negatives.

v1: "feet sway gently side to side in slow pendulum motion".

shot2_legs_video_v1 — pendulum sway
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. The hanging feet sway gently side to side in a slow pendulum motion, continuous and repetitive. The trouser fabric shifts slightly with each sway. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid bent limbs, avoid fast motion.

«Да, но там проблема — он ими шевелит, чел живой )»

v2: "feet are completely limp, dead weight, slight draft causes body to rotate slowly":

shot2_legs_video_v2 — dead weight + rotation
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. The feet are completely limp and motionless, hanging from above by a rope. A slight draft causes the body to rotate very slowly clockwise, then back. The feet do not move on their own — they are dead weight, only shifting because the whole body turns slightly. The trouser fabric hangs still. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid any voluntary movement of the feet.

«Они мёртвые, но они не качаются как маятник, а крутятся ((»

v3: убрал rotate, вернул pendulum с "dead weight, lifeless":

shot2_legs_video_v3 — pendulum no rotation
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. The feet are dead weight, hanging limp from a rope above. They sway very gently left and right like a pendulum, driven only by air movement in the room. No voluntary motion, no rotation. The legs and feet remain completely rigid and lifeless throughout. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid rotation, avoid any voluntary movement.

«Ну неплохо, единственно, ноги двигаются независимо, а не вместе как если бы их двигало туловище. И само движение нужно ещё меньше, ещё незаметнее»

v4: "body drifts as one rigid unit, both legs together, millimeters of drift":

shot2_legs_video_v4 — rigid unit, millimeters
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. A body hangs from a rope, only the lower legs and shoes are visible. The entire body drifts as one rigid unit, almost imperceptibly, left and right. Both legs move together as one solid piece — they are connected to the same body above. The movement is extremely subtle, barely visible, just a few millimeters of drift. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid independent leg movement, avoid rotation, avoid any large motion.

«Движение слишком большое к сожалению, и поворот тоже появился»

Закономерность: Seedance чем больше описываешь движение, тем больше добавляет. Обратный подход — почти полная неподвижность, только атмосфера:

v5: "almost completely still, feet are frozen, dust particles float, curtain shifts slightly":

shot2_legs_video_v5 — near-static, атмосфера
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. Almost completely still scene. The hanging feet and legs are frozen, barely moving. Dust particles float slowly in the window light behind. The curtain shifts very slightly from a draft. The feet themselves are nearly static — only the faintest, almost invisible micro-sway. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid rotation, avoid large motion, avoid any noticeable movement of the feet.

«Блин, а теперь они вообще не качаются (((»

v6: золотая середина с метриками ("5 сантиметров"). Пользователь:

«Он не математик и не нужно писать в сантиметрах»

Переписал: "like a weight on a string". Без метрик, две фразы:

shot2_legs_video_v6 — weight on string
params 720p · 8s · 16:9
prompt
@Image1 is the first frame. The two feet hang from above, connected to the same body. Both feet move together as a single rigid object, swaying gently left and right like a weight on a string. No independent leg movement, no rotation, no bending. Fixed camera. Avoid jitter, avoid temporal flicker, avoid rotation.

«Ладно, давай берём v5 как утверждённый, переделаем старые кадры»

shot2_legs_video — v5 УТВЕРЖДЁН

Третий утверждённый видео-шот. Правило: для "едва-заметного движения" в Seedance нужна формула "almost completely still + атмосфера (пыль, шторы) + faintest micro-sway", а не прямое описание маятника.

Ноги на shot1_door_closed

«Shot1_door_closed — тут нужно по левому краю кадра повесить ноги (по пояс), чтоб носки смотрели вправо и на нас под 45»

«А думаешь банана не сможет сразу ноги нарисовать? Или Flux?»

Запустил оба edit'а параллельно.

shot1_door_legs_flux_v1 — Flux: ноги стоят, идут

shot1_door_legs_flux_v1 — Flux: ноги стоят, идут
params flux · flux.2-pro · 16:9
prompt
Edit this photograph: add hanging legs of a man visible from waist down on the left edge of the frame. Dark suit trousers and dark leather shoes. The body faces 45 degrees toward the camera, toes pointing right. Legs hang limp and straight, not touching the floor. Keep the room, door, and everything else exactly the same.

shot1_door_legs_gemini_v1 — Gemini: висят, но стул под ними

shot1_door_legs_gemini_v1 — Gemini: висят, но стул под ними
params banana · google/gemini-3-pro-image-preview · openrouter
prompt
Edit this photograph: add hanging legs of a man visible from waist down on the left edge of the frame. Dark suit trousers and dark leather shoes. The body faces 45 degrees toward the camera, toes pointing right. Legs hang limp and straight, not touching the floor. Keep the room, door, and everything else exactly the same.

Попробовал уточнить Gemini — убрать стул, развернуть ноги под 45°:

shot1_door_legs_gemini_v2 — стул ушёл, ноги всё равно фронтально

shot1_door_legs_gemini_v2 — стул ушёл, ноги всё равно фронтально
params banana · google/gemini-3-pro-image-preview · openrouter
prompt
Edit this photograph: add hanging legs of a man on the left edge of the frame, visible from waist down. The man hangs from a rope attached to the ceiling. Dark suit trousers cover the ankles, dark leather shoes. The body is turned so the toes point to the right side of the frame, viewed from a 45 degree angle. Legs hang limp and straight, suspended in the air far above the floor. Do not add any furniture or objects. Keep the room, door, walls, and floor exactly as they are.

«shot1_door_with_foot_v2.png — вот, я сам сделал»

shot1_door_with_foot_v2 — пользователь сам собрал

shot1_door_with_foot_v2 — пользователь сам собрал

Shot1 door_foot video

«Теперь нужно видео на 5с, где есть вот это микродвижение из пред одобренного видео, дверь не надо открывать, только движение ног»

Тот же промпт что работал на shot2_legs_video_v5. Запустил → 402 insufficient_quota (67.5 надо, 28.3 осталось).

«Пополнил»

v1 — shot1_door_foot_video_v1.mp4:

shot1_door_foot_video_v1 — "они летают"
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. Almost completely still scene. The hanging feet and legs are frozen, barely moving. The feet themselves are nearly static — only the faintest, almost invisible micro-sway. The door remains closed and still. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid rotation, avoid large motion, avoid opening the door.

«Нет, они летают. И ещё проблема — я забыл сделать кадр 16:9, нужно заново»
«Я уже сделал»

v2 — минималистичнее промпт (как v5):

shot1_door_foot_video_v2 — УТВЕРЖДЁН, 1.6MB, 232с
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. Almost completely still scene. The hanging feet and legs are frozen, barely moving. The door remains closed and still. Only the faintest micro-sway of the feet, almost invisible. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid rotation, avoid large motion, avoid opening the door, avoid any noticeable movement.

«Вышло. Теперь я это уже на после скрестил с выбиванием и вышло неплохо»

Мастер-кадр corpse — 5 итераций про движение

«Давай мастер-кадр shot1_pinata_corpse_16_9. 5с то же микродвижение»

v1: тот же "almost completely still" промпт.

shot1_corpse_video_v1 — обман, 0 движения
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. Almost completely still scene. The hanging body is frozen, barely moving. Only the faintest micro-sway, almost invisible. Dust particles float slowly in the light from the window. Nothing else moves. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid rotation, avoid large motion, avoid any noticeable movement of the body.

«Это просто обман, движения нет вообще в кадре, это просто статический кадр на 5с. Пыль не летает, тело вообще 0 движения»

v2: вернул движение "sways forward and backward toward camera":

shot1_corpse_video_v2 — болтается с огромной амплитудой
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. The hanging body sways very gently forward and backward, toward and away from the camera. Both the body and legs move together as one piece. Dust particles drift through the beams of light from the window. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid independent limb movement.

«Хуйня, он прям болтается с огромной амплитудой. Знал я блин, что хуйня это всё про маятники»

v3: атмосфера только, тело motionless:

shot1_corpse_video_v3 — пыль есть, тело 0
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. A still, eerie scene. Dust particles float slowly through the sunlight beams from the window. The light on the floor shifts very slightly as clouds pass outside. The rope is taut and still. The body hangs motionless. Fixed camera. Avoid jitter, avoid temporal flicker, avoid any movement of the body, avoid swaying.

«Пыль 2, но тело заморожено, 0 движения, а минимальное нужно»

Агент предложил "tremor, fabric ripples":

«Ну какой нахуй тремор, он его оживит»

Упростили до:

«Оставь только very slightly. Ну помоги как сформулировать»

v4: "The hanging body moves very slightly. Dust particles float. Fixed camera." — две фразы, без направлений.

shot1_corpse_video_v4 → УТВЕРЖДЁН как shot1_corpse_video.mp4

reference-to-video и video_urls

Параллельно пользователь заметил:

«Может ему дать готовое видео и сказать "возьми этого референса движение тела"? Вот отсюда — shot1_door_foot_video_v2.mp4»

Агент начал объяснять что в скрипте только картинки и что это потребует image-to-video → reference-to-video. Пользователь:

«А зачем ты блять используешь image-to-video вообще? А не всегда берёшь reference? Там же мощнее, до 9 рефов, и первый кадр тот же»

Прав. Переписал seedance_video.py:
- Убрал --model, всегда seedance-2.0-reference-to-video.
- Upload поддерживает и картинки, и видео (.mp4/.mov/.webm/.avi).
- До 12 рефов.

Первый запуск с видео-рефом → 400. Evolink не принимает видео в image_urls. Поправил payload — разделил image_urls и video_urls:

shot1_corpse_video_v5 — с video motion ref (но v4 уже приняли)
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. @Video1 is the motion reference — use the same type and amount of movement for the body. The hanging body moves very slightly. Dust particles float through the sunlight from the window. Fixed camera. Avoid jitter, avoid temporal flicker.

«Ладно, я взял v4 и на посте из него что-то сделал, беру v4»

Третья стена — часы

Коммит 4bc49fa (видео в approved + rewrite seedance_video.py).

«m1_priton_v7_max — теперь берём этот кадр и генерим противоположную стену. Flux, 16:9, просто обои и часы в левой части кадра»

Агент включил "16:9" в промпт.

«16 разве в промпте? Не в параметрах?»
«Ты чё блять. Я спросил, разве 16:9 — это промпт? Это же параметры генерации»

Правда, параметры. Убрал из промпта, передал через --aspect 16:9:

m3_opposite_wall_v1 — обои, паркет, часы по центру

m3_opposite_wall_v1 — обои, паркет, часы по центру
params flux · flux.2-pro · 16:9
prompt
Black and white photograph, 35mm film, high contrast, heavy grain. The opposite wall of this room — same floral wallpaper pattern, same style. A large old wall clock hangs on the left side of the frame. The wall is bare except for the clock. Herringbone parquet floor visible at the bottom. Dim, moody lighting.

Часы получились по центру, не слева. Пользователь:

«Да не, норм»

Shot3 POV — камера на верёвке

«Теперь нужно сделать видео, которое будто из глаз трупа, будто камера на верёвке»

v1: POV, камера качается как маятник:

shot3_pov_corpse_v1 — POV на верёвке
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. POV shot from a body hanging on a rope. The camera looks at the wall with the clock. The camera sways very gently and slowly, like a pendulum — drifting slightly left, then right. The movement is smooth and heavy. Fixed view on the wall, only the camera moves. Avoid jitter, avoid temporal flicker.

«Давай неподвижный кадр, только часы идут. Движение на посте сделаю»

v2: "only the clock moves, pendulum swings slowly, second hand ticks":

shot3_pov_corpse_v2 — УТВЕРЖДЁН, только часы
params 720p · 5s · 16:9
prompt
@Image1 is the first frame. Completely still scene. The only movement is the clock — the pendulum swings slowly and the second hand ticks. Everything else is frozen. Fixed camera, no movement. Avoid jitter, avoid temporal flicker, avoid any camera movement.

Правило подтвердилось: сложное движение на посте, модель делает простой анимированный атом. Коммит 495321f.

Shot4 — бандит в открытой двери

«m1_priton_v7_max — сделай этот кадр 16:9 (копию), обрежь по центру. Потом сгенерируй копию Флюксом, чтоб дверь была открыта и стоял наш бандит»

Обрезал M1 до 16:9 → m1_priton_16_9.png. Flux edit: "a man in a dark suit stands in the open doorway":

m1_priton_16_9 — обрезка мастер-кадра

m1_priton_16_9 — обрезка мастер-кадра

«Какой ещё блять дарк сьют, вот наш бандит char_bandit_front»

Переписал под реального персонажа: "bald, stocky, worn leather jacket, backlit from hallway":

[missing] shot4_bandit_door_v2
../archive/shot4_bandit_door_v2.png

На этом сессия прервалась — пользователь ушёл в следующий день с новой задачей про биту на стене.

Итог дня 2 (вечер)

За шесть часов:
- shot2_legs_backlight.png — утверждён (Gemini edit на Flux dof3).
- shot2_legs_video.mp4 — v5 "almost completely still" формула для near-static шотов.
- shot1_door_with_foot_v2.png — пользователь сам собрал в Photoshop (Flux/Gemini edit не справились).
- shot1_door_foot_video_v2.mp4 — микродвижение перед закрытой дверью, склеено с door_kick на посте.
- shot1_corpse_video.mp4 — v4 "moves very slightly + dust" формула для мастер-кадра.
- m3_opposite_wall_v1.png — третья стена с часами.
- shot3_pov_corpse_v2.mp4 — POV трупа (только часы, движение камеры на посте).
- m1_priton_16_9.png — обрезка мастера под 16:9.
- shot4_bandit_door_v2 — первая композиция бандита в открытой двери.
- Прокси в seedream_gen.py — фикс SSL из РФ (критично).
- reference-to-video — всегда, убрали image-to-video как ограниченный режим.
- video_urls vs image_urls — раздельные поля в Evolink payload.
- Gemini 3 Pro Image Preview — единственная Gemini с image output, используем для точечных правок на готовом изображении.
- Формула "near-static + атмосфера" в Seedance — единственный рабочий способ для минимального движения, прямое описание маятника всегда даёт либо 0, либо огромную амплитуду.
- "16:9 — параметры, не промпт" — правило, попавшее в память.